-
Sziasztok!
Ez miért nem mûködik?
A lényege az,hogy beírsz egy V-s kocsi ID-t,és hozzád teleportálja.De minden ID-re azt írja,hogy nincs ilyen.Szerintem jónak kéne lennie,de úgy látszik mégsem.Elõre is köszönöm a segítséget.
if (sscanf(params,\"i\", id)) return SendClientMessage(playerid,SZURKE, \"Használat: /getv [V-s kocsi ID-je]\");
{
for(new i=0;i>=MAX_VEHICLES;i++)
{
if(JarmuInfo[iD] == id)
{
veh = i;
}
}
if(veh == 0) return SendClientMessage(playerid,HIBA,\"Nincs ilyen V-s kocsi!\");
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
SetVehiclePos(veh,x,y,z);
new string[256];
format(string,sizeof(string),\"%s magához teleportáltatta a %d-s ID-jû V-s kocsit!\",GetPlayerNameEx(playerid),id);
AdminnakUzenet(VNARANCS,string,2);
format(string,sizeof(string),\"Magadhoz teleportáltad a %d-s ID-jû V-s kocsi!\",id);
SendClientMessage(playerid,VKEK,string);
}
-
Nem oldja meg a hibát(bár lehet), használj foreach-ot, sokkal gyorsabb ciklust, és nem kell semmit létrehoznod, csupán csinálsz iterátort, beleírod a jármût és már vonatkozhat az összes valódi jármûre.
http://sampforum.hu/index.php?topic=12093.0
-
Nem oldja meg a hibát(bár lehet), használj foreach-ot, sokkal gyorsabb ciklust, és nem kell semmit létrehoznod, csupán csinálsz iterátort, beleírod a jármût és már vonatkozhat az összes valódi jármûre.
http://sampforum.hu/index.php?topic=12093.0
A foreach is for ciklust használ...
Esetleg veh == invaild vehicle id, vagy ugyenz id == -vel?
-
Az nem jó,mert itt nem vehicleid-t nézek.Hanem a jármûveknek csináltam egy változót,ami a V-s kocsi ID-jük.
0 ha normál kocsi(frakció,munka stb.),és valamilyen más pozitív szám,ha van tulajdonosa.
-
Nem oldja meg a hibát(bár lehet), használj foreach-ot, sokkal gyorsabb ciklust, és nem kell semmit létrehoznod, csupán csinálsz iterátort, beleírod a jármût és már vonatkozhat az összes valódi jármûre.
http://sampforum.hu/index.php?topic=12093.0
A foreach is for ciklust használ...
Esetleg veh == invaild vehicle id, vagy ugyenz id == -vel?
[/quote]
hatalmas különbség van ez:
foreach(Playeri, i)
és ez:
for(new i=0;i>=MAX_PLAYERS;i++)
sokkal gyorsabb a for ciklusnál, de a foreach nem csak erre jó, de ha a kérdezõ is ezt használná könnyebb dolga is lenne.
-
De attól még nem lesz jó a scriptem.
Ui.: Ez az iterátor pontosan mit is takar?Rendben,hogy ha az iterátor Player/NPC,akkor playerekön,npc-ken fut le,de mi máson lehet még?
-
Nem tudom hogy hogyan oldottad meg, de nincs szükség szerintem a ciklusra.
CMD:getv(playerid,params[])
{
new id;
if (sscanf(params,\"i\", id)) return SendClientMessage(playerid,SZURKE, \"Használat: /getv [V-s kocsi ID-je]\");
// Ha megadott jármû létezik-e és V-s kocsi, akkor...
if(IsValidVehicle(id) && bool:JarmuInfo[id][Vs_kocsi] == true)
{
new Float:p[3];
GetPlayerPos(playerid,p[0],p[1],p[2]);
SetVehiclePos(id,p[0],p[1],p[2]);
// ...
}
return 1;
}
Foreach csak azért gyorsabb, mert csak annyiszor ismétlõdik, amennyi értéket megadtál/megadott a szerver.
Errõl van egy egszerûbb változata. http://sampforum.hu/index.php?topic=49300
-
for(new i=0;i>=MAX_VEHICLES;i++)
nem tudom hogy címet elolvasva nektek miért nem bökte ki a szemeteket (fõleg a téma nyitónak)...én ránézésbõl megláttam hogy ennek nem így kéne kinéznie!
new i=0;i>=MAX_VEHICLES
i = 0 és a ciklus addig fut amíg i értéke 2000 VAGY ANNÁL NAGYOBB!
ja és ide raknék 1 break-et: (ha már úgyis meg van a jármû azonosító ne nézze tovább...
veh = i;
-
Jaaaj köszi :D::D:D
Nem vettem észre xd
Egyébként kell oda ciklus.
Mert nem vehicleid-t ír be a játékos,hanem a V-s kocsijáak a számát,ami különbözik a vehicleid-tõl.És a játékos csak a kosijának a számát tudja,a vehicleid-t nem.
Köszönöm a segítséget.+1
Zárom!
-
Sziasztok!
Ez miért nem mûködik?
A lényege az,hogy beírsz egy V-s kocsi ID-t,és hozzád teleportálja.De minden ID-re azt írja,hogy nincs ilyen.Szerintem jónak kéne lennie,de úgy látszik mégsem.Elõre is köszönöm a segítséget.
if (sscanf(params,\"i\", id)) return SendClientMessage(playerid,SZURKE, \"Használat: /getv [V-s kocsi ID-je]\");
{
for(new i=0;i>=MAX_VEHICLES;i++)
{
if(JarmuInfo[iD] == id)
{
veh = i;
}
}
if(veh == 0) return SendClientMessage(playerid,HIBA,\"Nincs ilyen V-s kocsi!\");
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
SetVehiclePos(veh,x,y,z);
new string[256];
format(string,sizeof(string),\"%s magához teleportáltatta a %d-s ID-jû V-s kocsit!\",GetPlayerNameEx(playerid),id);
AdminnakUzenet(VNARANCS,string,2);
format(string,sizeof(string),\"Magadhoz teleportáltad a %d-s ID-jû V-s kocsi!\",id);
SendClientMessage(playerid,VKEK,string);
}
-
Nem oldja meg a hibát(bár lehet), használj foreach-ot, sokkal gyorsabb ciklust, és nem kell semmit létrehoznod, csupán csinálsz iterátort, beleírod a jármût és már vonatkozhat az összes valódi jármûre.
http://sampforum.hu/index.php?topic=12093.0
-
Nem oldja meg a hibát(bár lehet), használj foreach-ot, sokkal gyorsabb ciklust, és nem kell semmit létrehoznod, csupán csinálsz iterátort, beleírod a jármût és már vonatkozhat az összes valódi jármûre.
http://sampforum.hu/index.php?topic=12093.0
A foreach is for ciklust használ...
Esetleg veh == invaild vehicle id, vagy ugyenz id == -vel?
-
Az nem jó,mert itt nem vehicleid-t nézek.Hanem a jármûveknek csináltam egy változót,ami a V-s kocsi ID-jük.
0 ha normál kocsi(frakció,munka stb.),és valamilyen más pozitív szám,ha van tulajdonosa.
-
Nem oldja meg a hibát(bár lehet), használj foreach-ot, sokkal gyorsabb ciklust, és nem kell semmit létrehoznod, csupán csinálsz iterátort, beleírod a jármût és már vonatkozhat az összes valódi jármûre.
http://sampforum.hu/index.php?topic=12093.0
A foreach is for ciklust használ...
Esetleg veh == invaild vehicle id, vagy ugyenz id == -vel?
[/quote]
hatalmas különbség van ez:
foreach(Playeri, i)
és ez:
for(new i=0;i>=MAX_PLAYERS;i++)
sokkal gyorsabb a for ciklusnál, de a foreach nem csak erre jó, de ha a kérdezõ is ezt használná könnyebb dolga is lenne.
-
De attól még nem lesz jó a scriptem.
Ui.: Ez az iterátor pontosan mit is takar?Rendben,hogy ha az iterátor Player/NPC,akkor playerekön,npc-ken fut le,de mi máson lehet még?
-
Nem tudom hogy hogyan oldottad meg, de nincs szükség szerintem a ciklusra.
CMD:getv(playerid,params[])
{
new id;
if (sscanf(params,\"i\", id)) return SendClientMessage(playerid,SZURKE, \"Használat: /getv [V-s kocsi ID-je]\");
// Ha megadott jármû létezik-e és V-s kocsi, akkor...
if(IsValidVehicle(id) && bool:JarmuInfo[id][Vs_kocsi] == true)
{
new Float:p[3];
GetPlayerPos(playerid,p[0],p[1],p[2]);
SetVehiclePos(id,p[0],p[1],p[2]);
// ...
}
return 1;
}
Foreach csak azért gyorsabb, mert csak annyiszor ismétlõdik, amennyi értéket megadtál/megadott a szerver.
Errõl van egy egszerûbb változata. http://sampforum.hu/index.php?topic=49300
-
for(new i=0;i>=MAX_VEHICLES;i++)
nem tudom hogy címet elolvasva nektek miért nem bökte ki a szemeteket (fõleg a téma nyitónak)...én ránézésbõl megláttam hogy ennek nem így kéne kinéznie!
new i=0;i>=MAX_VEHICLES
i = 0 és a ciklus addig fut amíg i értéke 2000 VAGY ANNÁL NAGYOBB!
ja és ide raknék 1 break-et: (ha már úgyis meg van a jármû azonosító ne nézze tovább...
veh = i;
-
Jaaaj köszi :D::D:D
Nem vettem észre xd
Egyébként kell oda ciklus.
Mert nem vehicleid-t ír be a játékos,hanem a V-s kocsijáak a számát,ami különbözik a vehicleid-tõl.És a játékos csak a kosijának a számát tudja,a vehicleid-t nem.
Köszönöm a segítséget.+1
Zárom!