Autó getelés!

Indította ProPeti, 2014. augusztus 09. - 16:17:17

Előző téma - Következő téma

ProPeti

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
\"width=500http://kepfeltoltes.hu/140809/kep_www.kepfeltoltes.hu_.png\" rel=\"external nofollow\">http://kepfeltoltes.hu/140809/kep_www.kepfeltoltes.hu_.png[/img]
)

BackUP

#1
    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. :)

ProPeti

Most nincs error de a kocsit sajna nem geteli hozzám =(

Dfoglalo

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.

ProPeti

#4
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?

BackUP

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.

TengeriMalac

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.

ProPeti

#7
É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.

Dfoglalo

[mod]A téma mégsem oldódott meg, ezért ki lett nyitva.[/mod]
 
Idézetet írta: ProPeti date=1407692016\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49972\" data-ipsquote-contentclass=\"forums_TopicSziasztok!
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);
}

 


TengeriMalac

tudsz írni rendszámra egy példát?

ProPeti


TengeriMalac

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..

ProPeti

Valami nem jó mert ha megadok paramétert akkor mindig ismeretlen parancsot ír

TengeriMalac

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..

ProPeti

#14
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