GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: dawee0101 - 2013. október 29. - 12:28:47

Cím: szerel , fest
Írta: dawee0101 - 2013. október 29. - 12:28:47
Sziasztok olyan parancsra lenne szükségem hogy
/szerel - a közeledben álló kocsit megjavitod (de csak ha a közelébe vagy)
/fest -  a közeledben álló kocsit lefested (szinkód)
Cím: szerel , fest
Írta: Dfoglalo - 2013. október 29. - 13:23:57
Annyira csak nem vagy buta, hogy ezt magadnak ne tudd megcsinálni... Egy RepairVehicle és egy ChangeVehicleColor függvényt igazán nem nehéz használni... Valószínûleg csak azt nem tudod lekérdezni, hogy melyik kocsi van a játékos közelében. Ebben viszont szívesen segítek.
 
new JID = GetClosestVehicle(playerid, 10.00);
RepairVehicle(JID);
ChangeVehicleColor(JID , 6, 6);
stock GetClosestVehicle(playerid, Float:range)
{
new Float:vx, Float:vy, Float:vz;
new v=1,vehicleid,Float:distance;
while(GetVehicleModel(v))
{
    GetVehiclePos(v,vx,vy,vz);
    if(IsPlayerInRangeOfPoint(playerid,range,vx,vy,vz) && !IsPlayerInVehicle(playerid,v))
    {
        if(!distance || GetDistanceFromPoint(playerid,vx,vy,vz) < distance)
   {
      distance = GetDistanceFromPoint(playerid,vx,vy,vz);
       vehicleid = v;
   }
    }
    v++;
}
return vehicleid;
}
Cím: szerel , fest
Írta: dawee0101 - 2013. október 29. - 13:28:05
Pontosan, eltaláltad tehát igen, nemtudtam lekérdezni hogy meik kocsi áll a közelembe :D
Köszönöm szépen ! :)
Cím: szerel , fest
Írta: Kovacs_Richard - 2013. október 29. - 13:32:52
szerintem ez a sor nem jó ide:
 
while(GetVehicleModel(v))

 
van 4 jármû és közben 1 törölt:
 
400,
421,
0,
560,
521

 
akkor csak 2 jármûvet ellenõriz...szóval az 1. \"rés\" után levõket nem ellenõrzi
Cím: szerel , fest
Írta: Dfoglalo - 2013. október 29. - 13:59:53

szerintem ez a sor nem jó ide:
 
while(GetVehicleModel(v))

 
van 4 jármû és közben 1 törölt:
 
400,
421,
0,
560,
521

 
akkor csak 2 jármûvet ellenõriz...szóval az 1. \"rés\" után levõket nem ellenõrzi
 
[/quote]
10 másodperces guglizás ;)
Cím: szerel , fest
Írta: Kovacs_Richard - 2013. október 29. - 14:20:55

 

szerintem ez a sor nem jó ide:
 
while(GetVehicleModel(v))

 
van 4 jármû és közben 1 törölt:
 
400,
421,
0,
560,
521

 
akkor csak 2 jármûvet ellenõriz...szóval az 1. \"rés\" után levõket nem ellenõrzi
 
[/quote]
10 másodperces guglizás ;)
 
[/quote]
a kódod vagy a megoldás? :D
mondjuk én már a hecc kedvéért is magamnak írnám meg :P
csak gondoltam, jelzem, hogy itt ez a hiba fent áll :)
Cím: szerel , fest
Írta: Dfoglalo - 2013. október 29. - 15:57:48

 

 

szerintem ez a sor nem jó ide:
 
while(GetVehicleModel(v))

 
van 4 jármû és közben 1 törölt:
 
400,
421,
0,
560,
521

 
akkor csak 2 jármûvet ellenõriz...szóval az 1. \"rés\" után levõket nem ellenõrzi
 
[/quote]
10 másodperces guglizás ;)
 
[/quote]
a kódod vagy a megoldás? :D
mondjuk én már a hecc kedvéért is magamnak írnám meg :P
csak gondoltam, jelzem, hogy itt ez a hiba fent áll :)
 
[/quote]
:D Amúgy az jó, ha jelzed, hiszen én nem igazán csekkolom, hogy mükszik e a dolog. Csak leírom, segítségül - elvégre nem muszáj tökéletes választ adni. Csak legalább lássa, hogy kell hozzá egy custom függvény, és lássa, hogyan kell festeni, stb. Csak hogy elinduljon valamin :D Meg ha bugos a függvény, keres/ír másikat (keres, mert írni úgysem fog). Linkelhettem is volna, de az sem biztos, hogy jó lett volna, saaatöbbbíííí... :D Amúgy látom is a sok kommenteden, hogy kicsit \"tudományoskodsz\" pluszban, meg csekkolgatod a megoldásokat, javítgatsz rajtuk, pont pont pont.. :P
Cím: szerel , fest
Írta: SnooP - 2013. október 29. - 16:31:20

:D Amúgy az jó, ha jelzed, hiszen én nem igazán csekkolom, hogy mükszik e a dolog. Csak leírom, segítségül - elvégre nem muszáj tökéletes választ adni.
 
[/quote]
Ha segítsz akkor tökéletes megoldást adj, mert azért neked se volt mindegy, hogy elsõben a tanítónõd a \"b\" betût \"á\"-nak tanította, ugyan úgy itt se mindegy.
 

stock GetClosestVehicleID(playerid)
{
       new
               Float:Pos[3],
               Float:dist,
               Float:closedist=15.0,
               closeveh;
       for(new i=0; i < MAX_VEHICLES; i++)
       {
               if(GetVehiclePos(i, Pos[0], Pos[1], Pos[2]))
               {
                       dist = GetPlayerDistanceFromPoint(playerid, Pos[0], Pos[1], Pos[2]);
                       if(dist < closedist && GetPlayerVehicleID(playerid) !=i)
                       {
                               closedist = dist;
                               closeveh = i;
                       }
               }
       }
       return closeveh;
}

 
Ez viszont tökéletes, annó én írtam át saját magamnak milliószor tesztelve volt szóval nincs vele probléma.
Ha a distanceon állítani akarsz akkor
 Float:closedist=15.0,

 itt teheted meg, a float (lebegõpontos - magyarán tizedestört) változót állítsd kisebb értékre pl: 5.0 vagy hasonló. ;)
Cím: szerel , fest
Írta: Kovacs_Richard - 2013. október 29. - 19:29:14

 

 

 

szerintem ez a sor nem jó ide:
 
while(GetVehicleModel(v))

 
van 4 jármû és közben 1 törölt:
 
400,
421,
0,
560,
521

 
akkor csak 2 jármûvet ellenõriz...szóval az 1. \"rés\" után levõket nem ellenõrzi
 
[/quote]
10 másodperces guglizás ;)
 
[/quote]
a kódod vagy a megoldás? :D
mondjuk én már a hecc kedvéért is magamnak írnám meg :P
csak gondoltam, jelzem, hogy itt ez a hiba fent áll :)
 
[/quote]
:D Amúgy az jó, ha jelzed, hiszen én nem igazán csekkolom, hogy mükszik e a dolog. Csak leírom, segítségül - elvégre nem muszáj tökéletes választ adni. Csak legalább lássa, hogy kell hozzá egy custom függvény, és lássa, hogyan kell festeni, stb. Csak hogy elinduljon valamin :D Meg ha bugos a függvény, keres/ír másikat (keres, mert írni úgysem fog). Linkelhettem is volna, de az sem biztos, hogy jó lett volna, saaatöbbbíííí... :D Amúgy látom is a sok kommenteden, hogy kicsit \"tudományoskodsz\" pluszban, meg csekkolgatod a megoldásokat, javítgatsz rajtuk, pont pont pont.. :P
 
[/quote]
én nem tudományoskodom :D csak ha valaki kérdez akkor illik rá megfelelõ választ adni :D
pl ha autószerelõ scriptet akar akkor nem másolok be neki egy ban parancsot :D
de átadom neked a válaszolási lehetõséget :) 1000 hsz után visszavonulok ismét a fórumozástól egy idõre :) ma még nézegetem a fórumot aztán holnaptól megint pár hónap pihi :D
am ha jól emlékszem az alap GFRP-ben a lock parancs jó alap lett volna ide, csak ugye a lock helyett festés és javítás funkció
Cím: szerel , fest
Írta: Dfoglalo - 2013. október 29. - 19:49:34
Richard, jó értelemben mondtam, dicséretként :D Valamint idézõjelben. Azért neveztem így, mert eléggé értesz a pawn nyelvhez (meg gondolom más nyelvekhez is), és ezt nem rejted véka alá; hanem segítesz mindenkinek nagyon részletesen, mindenre kitérve, mint elmagyarázva. :thumbsup:
Cím: szerel , fest
Írta: Kovacs_Richard - 2013. október 29. - 19:54:41
értettem, hogy hogy érted :D jó lett volna anno amikor tanultam a scriptelést egy ilyen fórum vagy ismerni a wiki-t :D mert én a 25.000 soros GFRP-bõl tanultam meg a dolgok nagy részét :D nézegettem és próbálgattam :) 2 év alatt 25.000 sorból csináltam 108.000 sort :D én nem tartozom senkinek, hogy fórumon kelljen válaszolni, csak simán lógok a munka elõl vele :D meg persze segítek a kezdõknek, de sokan sajnos nem forgatják vissza a rájuk szánt energiát és idõt, pedig mind2 oldalnak megéri :) nekem pl azért éri meg mert amit magamnak scriptelek azok sokkal bonyolultabbak és néha kell egy kis kikapcsolódás :D egyszerû kódokat írni :)
Cím: szerel , fest
Írta: Dfoglalo - 2013. október 29. - 20:21:45
Igen, ezt már említetted pár hosszázólásodban. Csak lógsz a meló elõl, meg kikapcsolódsz, stb. :D Jó az. Én is ilyesmit csinálok. Mert lenne dolgom bõven :D Na meg persze néha én kérek segítséget, amelybõl aztán lesz 2-3 oldalnyi beszélgetés, és csak a végén derül ki, milyen egyszerû a megoldás... :P
DE!
Ezt a kis beszélgetést itt és most zárjuk le, mert ez már egy offhalmaz. :whistle:
Cím: szerel , fest
Írta: dawee0101 - 2013. október 30. - 10:19:22
Ahj... mostmár bezavarodtam.. :s valaki megírná nekem parancsal együtt? :(
Cím: szerel , fest
Írta: SnooP - 2013. október 30. - 15:04:06
#include 
#include
#include
stock GetClosestVehicleID(playerid)
{
       new
               Float:Pos[3],
               Float:dist,
               Float:closedist=3.0,
               closeveh;
       for(new i=0; i < MAX_VEHICLES; i++)
       {
               if(GetVehiclePos(i, Pos[0], Pos[1], Pos[2]))
               {
                       dist = GetPlayerDistanceFromPoint(playerid, Pos[0], Pos[1], Pos[2]);
                       if(dist < closedist && GetPlayerVehicleID(playerid) !=i)
                       {
                               closedist = dist;
                               closeveh = i;
                       }
               }
       }
       return closeveh;
}
CMD:szerel(playerid)
{
RepairVehicle(GetClosestVehicleID(playerid));
return 1;
}
CMD:fest(playerid, params[])
{
new alapszin, masodszin;
if(sscanf(params, \"ii\", alapszin, masodszin)) return SendClientMessage(playerid, -1, \"Használat: /fest [szín ID] [szín ID]\");
if(alapszin < 255 && masodszin < 255)
{
ChangeVehicleColor(GetClosestVehicleID(playerid), alapszin, masodszin);
SendClientMessage(playerid, -1, \"Az autó le lett festve, elviheti a tulaja\");
}
else
{
SendClientMessage(playerid, -1, \"HIBA:A két szín ID 0-255 között kell legyen\");
}
return 1;
}

 
Tessék  megírtam neked, le is teszteltem mûködik. Ne felejtsd el betölteni a sscanf plugint.



DFoglalo: Neked csak három dolgot írnék le:
1. Lehet tökéletes munkát készíteni.
2. Ha valamit copy pastezel elõtte gyõzõdj meg róla és rágd át azt a kódot, hogy nincs-e benne hiba.
3. Már kezd kissé barna lenni a nyelved ;)
 
Részemrõl ennyit, szerintem jó ideig megint nem fogok írni. Remélem (bár biztos) jó lesz amit írtam. ;)
Cím: szerel , fest
Írta: dawee0101 - 2013. október 31. - 00:49:36
Köszönöm szépen :)