Also, ich lasse diese schleife einmal im Dialog aufrufen in einer schleife, und einmal in ein Befehl für Admins.
Soviel hab ich da jetzt nicht verändert.
Jetzt ist ein Fahrzeug auf Slot ID 2 und die anderen 2 auf 0.
Der log:
[09:11:26] Besitzer: | max Slots: 2
[09:11:26] Besitzer: | SlotID: 0
[09:11:33] Besitzer: Pascal | max Slots: 2
[09:11:34] Besitzer: Pascal | SlotID: 1
[09:11:38] Besitzer: Pascal | max Slots: 2
[09:11:38] Besitzer: Pascal | SlotID: 2
[09:11:45] Besitzer: Pascal | Slots: 3
if(dialogid == DIALOG_AHKAUFEN)
{
if(response)
{
for(new b=0; b<sizeof(bsInfo); b++)
{
new id = GetPVarInt(playerid,"BuyCarID");
if(GetPlayerMoney(playerid) < ahCars[id][c_preis])
{
SCM(playerid,COLOR_GELB,"[Autohaus]: Du hast nicht genügend Geld.");
RemovePlayerFromVehicle(playerid);
return 1;
}
else if(GetPlayerScore(playerid) < ahCars[id][c_level])
{
SCM(playerid,COLOR_GELB,"[Autohaus]: Dein Level reicht nicht aus um das Fahrzeug zu kaufen.");
RemovePlayerFromVehicle(playerid);
return 1;
}
for(new i=0; i<sizeof(cInfo); i++)
{
new string[128];
new slotID;
for(new cpx = 0; cpx < sizeof(cInfo); cpx++) if(cInfo[cpx][id_x]!=0 && !strcmp(cInfo[cpx][besitzer], SpielerName(playerid))) slotID++;
if(slotID <= MAX_VEHICLE_SLOT)
{
printf("Besitzer: %s | max Slots: %i",cInfo[i][besitzer], MAX_VEHICLE_SLOT);
cInfo[i][c_slot] = slotID;
printf("Besitzer: %s | SlotID: %i",cInfo[i][besitzer],slotID);
}
else if(slotID >=MAX_VEHICLE_SLOT)
{
format(string,128,"Deine Slots sind voll, verkaufe ein oder mehrere Fahrzeuge damit du wieder freie Slots hast.");
SCM(playerid,COLOR_GRAU,string);
printf("Besitzer: %s | Slots: %i",cInfo[i][besitzer],slotID);
return 1;
}
break;
}
if(ahCars[id][ah_id] == 0 && bsInfo[b][b_id] == 4)
{
if(bsInfo[b][b_prods] >0)
{
pInfo[playerid][pGeld] -=ahCars[id][c_preis];
SetPlayerMoney(playerid,pInfo[playerid][pGeld]);
bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
}
else
{
RemovePlayerFromVehicle(playerid);
SCM(playerid,COLOR_GRAU,"Dieses Autohaus hat nicht genügend Produkte zu verfügung.");
return 1;
}
}
else if(ahCars[id][ah_id] == 1 && bsInfo[b][b_id] == 5)
{
if(bsInfo[b][b_prods] >0)
{
pInfo[playerid][pGeld] -=ahCars[id][c_preis];
SetPlayerMoney(playerid,pInfo[playerid][pGeld]);
bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
}
else
{
RemovePlayerFromVehicle(playerid);
SCM(playerid,COLOR_GRAU,"Dieses Autohaus hat nicht genügend Produkte zu verfügung.");
return 1;
}
}
else if(ahCars[id][ah_id] == 2 && bsInfo[b][b_id] == 6)
{
if(bsInfo[b][b_prods] >0)
{
pInfo[playerid][pGeld] -=ahCars[id][c_preis];
SetPlayerMoney(playerid,pInfo[playerid][pGeld]);
bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
}
else
{
RemovePlayerFromVehicle(playerid);
SCM(playerid,COLOR_GRAU,"Dieses Autohaus hat nicht genügend Produkte zu verfügung.");
return 1;
}
}
else if(ahCars[id][ah_id] == 3 && bsInfo[b][b_id] == 7)
{
if(bsInfo[b][b_prods] >0)
{
pInfo[playerid][pGeld] -=ahCars[id][c_preis];
SetPlayerMoney(playerid,pInfo[playerid][pGeld]);
bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
}
else
{
RemovePlayerFromVehicle(playerid);
SCM(playerid,COLOR_GRAU,"Dieses Autohaus hat nicht genügend Produkte zu verfügung.");
return 1;
}
}
else
{
continue;
}
CreatePlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r],-1,-1,
ahCars[id][c_steuern]);
RemovePlayerFromVehicle(playerid);
bsInfo[b][b_prods] --;
UpdateBiz(b);
SaveBiz(b);
SCM(playerid,COLOR_GELB,"[Autohaus]: Herzlichen Glückwunsch, du hast dir soeben ein Fahrzeug gekauft.");
SCM(playerid,COLOR_GELB,"[Autohaus]: Wir wünschen dir viel Spaß mit dem Fahrzeug, bitte fahren sie Vorsichtig.");
return 1;
}
}
else
{
RemovePlayerFromVehicle(playerid);
}
return 1;
}
ocmd:pcar(playerid,params[])
{
if(pInfo[playerid][pEingeloggt] == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt!");
if(pInfo[playerid][pAdmin] <3)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht befugt diesen Befehl zu nutzen!");
new vID,pID,color1,color2,steuern;
new string[128];
if(sscanf(params,"uiiii",pID,vID,color1,color2,steuern))return SCM(playerid,COLOR_GRAU,"Info: /pcar [playerid/name] [vehicleid] [color1] [color2] [steuern (Pro Payday)]");
if(!IsPlayerConnected(pID))return SCM(playerid,COLOR_GRAU,"Der Spieler ist nicht Online!");
if(vID <400 || vID >611)return SendClientMessage(playerid,COLOR_GRAU,"Wähle bitte eine vehicleID zwischen 400-611 aus.");
if(color1 <0 || color1 >255)return SendClientMessage(playerid,COLOR_GRAU,"Wähle bitte eine Farbe zwischen 0-255 aus.");
if(color2 <0 || color2 >255)return SendClientMessage(playerid,COLOR_GRAU,"Wähle bitte eine Farbe zwischen 0-255 aus.");
for(new i=0; i<sizeof(cInfo); i++)
{
if(!strcmp(cInfo[i][besitzer], SpielerName(playerid)))
{
new slotID;
for(new cpx = 0; cpx < sizeof(cInfo); cpx++) if(cInfo[cpx][id_x]!=0 && !strcmp(cInfo[cpx][besitzer], SpielerName(pID))) slotID++;
if(slotID >=MAX_VEHICLE_SLOT)
{
format(string,128,"Die Slots von %s sind zurzeit voll, er muss entweder ein oder mehrere Fahrzeuge verkaufen.",SpielerName(pID));
SCM(playerid,COLOR_GRAU,string);
return 1;
}
}
}
format(string,128,"%s %s hat dir ein/e %s erstellt. Es ist nun dein Privatcar!",GetAdminName(pID),SpielerName(pID),VehicleName[vID-400]);
SCM(pID,COLOR_BLAU,string);
format(string,128,"Admin %s hat %s das Fahrzeug '%s' erstellt.",SpielerName(pID),SpielerName(playerid),VehicleName[vID-400]);
SAM(COLOR_BLAU,string);
new Float:x,Float:y,Float:z,Float:r;
GetPlayerPos(pID,x,y,z);
GetPlayerFacingAngle(pID,r);
CreatePlayerCar(pID,vID,x,y,z,r,color1,color2,steuern);
SetPVarInt(playerid,"pCar",playerid);
return 1;
}