-
Sziasztok!
Elkezdtem írni egy autó getelés parancsot rendszám alapján, viszont nem nagyon sikerült.
CMD:getcar(playerid, params[])
{
if(PlayerInfo[playerid] > 2)
{
new str[32];
if(sscanf(params, \"s[32]\", str)) return SendClientMessage(playerid, COLOR_WHITE, \"(( Használat: /getcar [rendszam] ))\");
else {
new file[256];
format(file,sizeof(file),\"Jarmuvek/%d.ini\",vehicleid);
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(strcmp(str, VehicleInfo[vRendszam], true) ==0)
{
new Float:x, Float:y, Float:z;
new kocsiid = GetPlayerVehicleID(i);
GetPlayerPos(playerid, Float:x, Float:y, Float:z);
SetVehiclePos(kocsiid, Float:x, Float:y, Float:z);
break;
}
else
{
SendClientMessage(playerid, COLOR_WARNING, \"(( Nem található ilyen rendszámú jármû! ))\");
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, \"(( Ismeretlen parancs! ))\");
}
return 1;
}
Eddig ez van meg és ezt az errort kapok rá:
error 017: undefined symbol \"vehicleid\"
Nem tudom, hogy abból amit megírtam mi jó és mi rossz (az is lehet, hogy full rossz az egész, ezért aki tud segíteni légyszi segítsen.
Elõre is köszönöm!
(Lehet hogy így jobban látszik :D
http://kepfeltoltes.hu/140809/kep_www.kepfeltoltes.hu_.png[/img]
)
-
CMD:getcar(playerid, params[])
{
if(PlayerInfo[playerid] > 2)
{
new str[32];
if(sscanf(params, \"s[32]\", str)) return SendClientMessage(playerid, COLOR_WHITE, \"(( Használat: /getcar [rendszam] ))\");
new file[256];
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(strcmp(str, VehicleInfo[vRendszam], true) ==0)
{
new Float:x, Float:y, Float:z;
new kocsiid = GetPlayerVehicleID(i);
GetPlayerPos(playerid, Float:x, Float:y, Float:z);
SetVehiclePos(kocsiid, Float:x, Float:y, Float:z);
format(file,sizeof(file),\"Jarmuvek/%d.ini\",kocsiid;
break;
} else {
SendClientMessage(playerid, -1, \"(( Nem található ilyen jármû! ))\");
}
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, \"(( Ismeretlen parancs! ))\");
}
return 1;
}
Annyi volt a gond, hogy nem hoztál létre \'vehicleid\' változót, viszont vehicleid-re hivatkozva formáztad a \'file\'-t. File fel sem használtad, nem is kellene de beraktam neked a ciklusba[mert nem annak a jármûvét szeretnénk lekérni aki idehívja, azaz amiben õ ül]. Így beleformázza a file-ba azt a kocsit amit idehívtál.
Szerk: sscanf után nem szükséges \'else\', mivel a returnal megakadályoztad, hogy tovább fusson ha hibát észlel. Számíts arra, hogyha nincs ilyen kocsi, vagy ha van is de épp egy másikat ellenõriz a ciklus floodolni fogja a chatet, hogy nem talált ilyen jármûvet. Ezt direkt nem javítottam, \'break;\' utasítást nem ismerem, lehet hogy ez megakadályozza. Ha igen akkor én is tanulok belõle, így egyszerûbb. :)
-
Most nincs error de a kocsit sajna nem geteli hozzám =(
-
Legközelebb, ha hibát észlelsz, a kiemelt témát használd! Egyébként miért pont rendszám alapján szeretnéd csinálni a dolgot? Sokkal egyszerûbb lenne ID alapján.
-
Szoktunk haverokkal szórakozni és arra a szeróra írok egy \"RP\" modot. 1-2 helyen láttam eddig, hogy rendszám alapján getelnek és gondoltam megcsinálom én is mert az ID már túl egyszerû.
Errõl meg kiderült, hogy túl nehéz ://
Dupla hozzászólás automatikusan összefûzve. ( 2014. augusztus 09. - 17:17:57 )
Az a baj, hogy nem kéri le a kocsi ID-jét a fájlból. Pontosabban a fájl NEVET kéne lekérni. Ebben tudnátok segíteni?
-
Fájl nevet a formattal lekérted, csak nem nyitottad meg a fájlt. De ha bemásolod, hogyna menti le a kocsit, vagy a fájl tartalmát megírom neked.
-
gyerekek...úristen..
CMD:getcar(playerid, params[])
{
new str[32];
if(PlayerInfo[playerid] <= 2) return SendClientMessage(playerid, COLOR_WHITE, \"(( Ismeretlen parancs! ))\");
if(sscanf(params, \"s[32]\", str)) return SendClientMessage(playerid, COLOR_WHITE, \"(( Használat: /getcar [rendszam] ))\");
for(new i = 0; i < MAX_VEHICLES; i++) {
if(strcmp(str, VehicleInfo[vRendszam], true) == 0) {
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, Float:x, Float:y, Float:z);
SetVehiclePos(i, Float:x, Float:y, Float:z);
break;
} else return SendClientMessage(playerid, COLOR_WARNING, \"(( Nem található ilyen rendszámú jármû! ))\");
}
return 1;
}
remélem észreveszed mit b*sztál el.
-
Észreveszek én sok mindent, de a jármûvet még mindig nem geteli :/
Dupla hozzászólás automatikusan összefûzve. ( 2014. augusztus 09. - 23:33:47 )
Megdoldva. Zárom.
-
[mod]A téma mégsem oldódott meg, ezért ki lett nyitva.[/mod]
Sziasztok!
Valamiért csak az 1-es ID-jû jármûvet geteli a többire azt írja h nem létezik.
CMD:getcar(playerid, params[])
{
new str[32];
if(PlayerInfo[playerid] <= 2) return SendClientMessage(playerid, COLOR_WHITE, \"(( Ismeretlen parancs! ))\");
else if(sscanf(params, \"s[32]\", str)) return SendClientMessage(playerid, COLOR_WHITE, \"(( Használat: /getcar [rendszam] ))\");
for(new i = 0; i < MAX_VEHICLES; i++) {
if(strcmp(str, VehicleInfo[vRendszam], true) == 0) {
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, Float:x, Float:y, Float:z);
SetVehiclePos(i, Float:x, Float:y, Float:z);
} else return SendClientMessage(playerid, COLOR_WARNING, \"(( Nem található ilyen rendszámú jármû! ))\");
}
return 1;
}
Kocsi betöltés:
stock Kocsibetolt(vehicleid)
{
new file[128];
format(file,sizeof(file),\"Jarmuvek/%d.ini\",vehicleid);
VehicleInfo[vehicleid][vID] = dini_Int(file, \"vID\");
VehicleInfo[vehicleid][vPosx] = dini_Float(file, \"vPosx\");
VehicleInfo[vehicleid][vPosy] = dini_Float(file, \"vPosy\");
VehicleInfo[vehicleid][vPosz] = dini_Float(file, \"vPosz\");
VehicleInfo[vehicleid][vColor1] = dini_Int(file, \"vColor1\");
VehicleInfo[vehicleid][vColor2] = dini_Int(file, \"vColor2\");
VehicleInfo[vehicleid][vHP] = dini_Int(file, \"vHP\");
VehicleInfo[vehicleid][vAzonosito] = dini_Int(file, \"vAzonosito\");
format(VehicleInfo[vehicleid][vTulaj],30,\"%s\", dini_Get(file, \"vTulaj\"));
format(VehicleInfo[vehicleid][vRendszam],30,\"%s\", dini_Get(file, \"vRendszam\"));
CreateVehicle(VehicleInfo[vehicleid][vID], VehicleInfo[vehicleid][vPosx], VehicleInfo[vehicleid][vPosy], VehicleInfo[vehicleid][vPosz], 0, VehicleInfo[vehicleid][vColor1], VehicleInfo[vehicleid][vColor2], -1);
SetVehicleNumberPlate(vehicleid, VehicleInfo[vehicleid][vRendszam]);
return 1;
}
for(new i = 0; i < 2000; i++)
{
Kocsibetolt(i);
}
-
tudsz írni rendszámra egy példát?
-
AAA-111
-
akkora egy brutálisan nagy f4sz vagyok, hogy hihetetlen....
CMD:getcar(playerid, params[])
{
new str[32];
if(PlayerInfo[playerid] <= 2) return SendClientMessage(playerid, COLOR_WHITE, \"(( Ismeretlen parancs! ))\");
if(sscanf(params, \"s[32]\", str)) return SendClientMessage(playerid, COLOR_WHITE, \"(( Használat: /getcar [rendszam] ))\");
for(new i = 0; i < MAX_VEHICLES; i++) {
if(strcmp(str, VehicleInfo[vRendszam], true) == 0) {
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, Float:x, Float:y, Float:z);
return SetVehiclePos(i, Float:x, Float:y, Float:z);
}
}
SendClientMessage(playerid, COLOR_WARNING, \"(( Nem található ilyen rendszámú jármû! ))\");
return 1;
}
így nézd meg..
-
Valami nem jó mert ha megadok paramétert akkor mindig ismeretlen parancsot ír
-
CMD:getcar(playerid, params[])
{
new str[32];
if(PlayerInfo[playerid] <= 2) return SendClientMessage(playerid, COLOR_WHITE, \"(( Ismeretlen parancs! ))\");
if(sscanf(params, \"s[32]\", str)) return SendClientMessage(playerid, COLOR_WHITE, \"(( Használat: /getcar [rendszam] ))\");
for(new i = 0; i < MAX_VEHICLES; i++) {
if(strcmp(str, VehicleInfo[vRendszam], true) == 0) {
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, Float:x, Float:y, Float:z);
SetVehiclePos(i, Float:x, Float:y, Float:z);
break;
}
}
SendClientMessage(playerid, COLOR_WARNING, \"(( Nem található ilyen rendszámú jármû! ))\");
return 1;
}
így?
õszintén, nincs ötletem..
-
Sajna így sem jó. Így mindenre azt írja, hogy nem található jármû. :/
Azért köszi a próbálkozásokat.
Esetleg más tudja?
Dupla hozzászólás automatikusan összefûzve. ( 2014. augusztus 10. - 21:36:41 )
Juppiiii!!!
Ha kiszedtem a breaket utána geteli normálisan. Köszönöm szépen:P
-
- Felesleges az a [32]-es az s végén, úgysem lesz olyan hosszú a rendszám.
- Próbálj meg egy kötõjel nélküli rendszámot, pl.: AAA111, hátha (ugyanis a minap nálam gondok voltak a kötõjellel egy sizeofos formatnál, bár itt nem az van, de hátha).