Sziasztok.Hozzákezdtem egy Járműrendszer megírásához, de sikerült elakadnom.
Egy olyan parancsot szerettem volna, ami kilistázza a saját járműveit az illetőnek.
CMD:tulajdon(playerid,params[])
{
new S[212];
S[0] = EOS;
for(new c=0; c < MAX_VEHICLES; c++)
{
for(new i; i < pInfo[playerid][pKocsi]; i++)
{
if(Compare(Neve(playerid), dini_Get(vehicleFile(c), \"Tulaj\")))
format(S,212, \"Jármű: %d \\n\",vInfo[c][vID] );
}
}
ShowPlayerDialog(playerid, DIALOG_TULAJDON, DIALOG_STYLE_LIST, \"Kocsijaid\", S, \"Rendben\", \"Mégse\");
return 1;
}
De nem működik, mivel a parancs beírásakor csak 1 járművet listáz ki.
for(new i; i < pInfo[playerid][pKocsi]; i++)
Ez csak egy kocsit ment le nem? Vagy minek használsz két ciklust?
Egyébként az is lehet a baj, hogy megformálod a stringet, jön a következő kocsi. De az újraírja az egészet. Használj szerintem strcatot.
Egyébként az is lehet a baj, hogy megformálod a stringet, jön a következő kocsi. De az újraírja az egészet. Használj szerintem strcatot.
Igen, ez a baj.
format(S,212, \"Jármű: %d \\n\",vInfo[c][vID] );
helyett:
format(S,212, \"%sJármű: %d\\n\", S, vInfo[c][vID] );
Nah mostmár gépről vagyok.
Egyébként az is lehet a baj, hogy megformálod a stringet, jön a következő kocsi. De az újraírja az egészet. Használj szerintem strcatot.
Igen, ez a baj.
format(S,212, \"Jármű: %d \\n\",vInfo[c][vID] );
helyett:
format(S,212, \"%sJármű: %d\\n\", S, vInfo[c][vID] );
[/quote]
Vagy pedig:
new str[64] //az elejére
format(str,64,\"Jármű: %d\\n\",vInfo[c][vID]);
strcat(S,str);
mondjuk a formatos nem annyira pazarló és egyszerűbb... na mindegy. :D