Haste vllt aID falsch definiert oder sind die Preise nicht korrekt eingetragen?
Die Preise müssen stimmen, da ich sie als Text anzeige und dort mit den selben Variablen arbeite.
Was aID angeht. Ich definiere aID unter OnGamemodInit als 0 und beim Autokauf wird aID dann um eins erhöht bzw um eins reduziert.
Ganzes "Showscript" (Autos anzeigen/wechseln)
//Autohaus LS
else if(IsPlayerInRangeOfPoint(playerid,1,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]))
{
new string[128];
if(newkeys == KEY_ANALOG_RIGHT)
{
if(aID<1)
{
aID++;
SetPlayerPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
SetPlayerCameraPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
SetPlayerCameraLookAt(playerid,Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz]);
format(string,sizeof(string),"Name: %s Preis: %d",Autokauf[aID][aname],Autokauf[aID][preis]);
SendClientMessage(playerid,weiss,string);
SendClientMessage(playerid,weiss,"Zum Kaufen mit Enter bestätigen");
}
else
{
aID=0;
SetPlayerPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
SetPlayerCameraPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
SetPlayerCameraLookAt(playerid,Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz]);
format(string,sizeof(string),"Name: %s Preis: %d",Autokauf[aID][aname],Autokauf[aID][preis]);
SendClientMessage(playerid,weiss,string);
SendClientMessage(playerid,weiss,"Zum Kaufen mit Enter bestätigen");
}
}
else if (newkeys == KEY_ANALOG_LEFT)
{
if(aID>0)
{
aID--;
SetPlayerPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
SetPlayerCameraPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
SetPlayerCameraLookAt(playerid,Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz]);
format(string,sizeof(string),"Name: %s Preis: %d",Autokauf[aID][aname],Autokauf[aID][preis]);
SendClientMessage(playerid,weiss,string);
SendClientMessage(playerid,weiss,"Zum Kaufen mit Enter bestätigen");
}
else
{
aID=1;
SetPlayerPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
SetPlayerCameraPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
SetPlayerCameraLookAt(playerid,Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz]);
format(string,sizeof(string),"Name: %s Preis: %d",Autokauf[aID][aname],Autokauf[aID][preis]);
SendClientMessage(playerid,weiss,string);
SendClientMessage(playerid,weiss,"Zum Kaufen mit Enter bestätigen");
}
}
else if(newkeys == KEY_SECONDARY_ATTACK)
{
Speichern(playerid);
if(Daten[playerid][Geld]>=Autokauf[aID][preis])
{
SetCameraBehindPlayer(playerid);
SetPlayerVirtualWorld(playerid,0);
TogglePlayerControllable(playerid,1);
GivePlayerMoney(playerid,-Autokauf[aID][preis]);
CreateVehicle(Autokauf[aID][amodelid],Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz],Autokauf[aID][posa],-1,-1,-1);
aID = 0;
return 1;
}
else if(Daten[playerid][Geld]<Autokauf[aID][preis])
{
aID = 0;
SetCameraBehindPlayer(playerid);
SetPlayerVirtualWorld(playerid,0);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid,rot,"Du hast nicht genug Geld!");
return 1;
}
}
}
//edit:
Hab zur Hilfe schnell nen Befehl mit der selben if Abfrage erstellt.
Die Abfragen laufen korrekt, bis ich das erste Auto kaufe.
Geht also alles wunderbar, doch sobald ich ein Auto gekauft habe, hatte man immer genug oder immer zu wenig Geld!