-
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)
-
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;
}
-
Pontosan, eltaláltad tehát igen, nemtudtam lekérdezni hogy meik kocsi áll a közelembe :D
Köszönöm szépen ! :)
-
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
-
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 ;)
-
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 :)
-
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
-
: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ó. ;)
-
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ó
-
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:
-
é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 :)
-
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:
-
Ahj... mostmár bezavarodtam.. :s valaki megírná nekem parancsal együtt? :(
-
#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.