Hallo zusammen!
COMMAND:fcars(playerid,params[])
{
if(GetPVarInt(playerid,"Fraktion") == 0) return SCM(playerid,COLOR_GREY,"Du bist in keiner Fraktion.");
if(GetPVarInt(playerid,"Leader") == 0) return SCM(playerid,COLOR_GREY,"Du bist kein Leader.");
new var,string[1256],lol[1256];
printf("1");
for(new i=0;i<MAX_FRAKCARS;i++)
{
if(FrakCarInfo[i][f_Fraktion] == GetPVarInt(playerid,"Fraktion"))
{
format(string,sizeof(string),"%s\n%s: Model: %i Vehicleid: %i",string,GetVehicleName(FrakCarInfo[i][f_ID]),FrakCarInfo[i][f_Model],FrakCarInfo[i][f_ID]);
var++;
printf("%i",FrakCarInfo[i][f_ID]);
}
}
printf("1");
if(!var) return SCM(playerid,COLOR_GREY,"Zurzeit besitzt deine Fraktion keine Fahrzeuge.");
printf("1");
format(lol,sizeof(lol),"{FFFFFF}Folgende Fahrzeuge besitzt deine Fraktion:\n\n%s",string);
ShowPlayerDialog(playerid,DIALOG_ALL,DIALOG_STYLE_MSGBOX,"{FF9900}Fraktionsfahrzeuge",lol,"OK","");
printf("1");
return 1;
}
Die Schleife läuft korrekt durch und gibt auch über printf(); die korrekten Fahrzeug IDs zurück.
Nur alles was nach der Schleife kommt wird nicht ausgeführt. Das Problem taucht aber erst auf, nachdem ein Fahrzeug gelöscht/verkauft wurde.
Ein Beispiel für einen "Lösch"-Command (/verkfcar):
COMMAND:verkfcar(playerid,params[])
{
if(!IsPlayerInAnyVehicle(playerid)) return 1;
if(GetPVarInt(playerid,"Fraktion") == 0) return SCM(playerid,COLOR_GREY,"Du bist in keiner Fraktion.");
if(GetPVarInt(playerid,"Leader") == 0) return SCM(playerid,COLOR_GREY,"Du bist kein Leader.");
if(IsAFrakCar(GetPlayerVehicleID(playerid)) != -1)
{
new car = IsAFrakCar(GetPlayerVehicleID(playerid));
GivePlayerMoneyEx(playerid,FrakCarInfo[car][f_Preis]/2);
format(squery,sizeof(squery),"DELETE FROM `Fraktionsfahrzeuge` WHERE `ID` = '%d'",car);
mysql_query(squery);
KillFrakCar(car);
SCM(playerid,COLOR_GREY,"Fraktionsfahrzeug verkauft.");
}
else
{
SCM(playerid,COLOR_GREY,"Du sitzt in keinem Fraktionsfahrzeug.");
}
return 1;
}