Hey,
ich habe ein Problem bei einer Berechnung.
Ich möchte wenn die neu gekauften Pakete die vom Spieler von 15 überschreiten, das ganze abbricht.
Keine Ahnung wo da der Fehler liegt.
C
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 595.2783,-1249.6595,17.8187))return SendClientMessage(playerid, COLOR_GREY, "** Nicht in der Nähe vom Waffendealer Punkt. (/gps)");
if(sscanf(params, "i", menge))return SendClientMessage(playerid, COLOR_GREY, "** Benutze /getpaket [1-15]");
if(menge<1||menge>15)return SendClientMessage(playerid, COLOR_GREY, "* Wähle eine Menge zwischen 1 bis 15 aus!");
new mengeX = pPackets[playerid];
if((mengeX+menge) >= 15)return SendClientMessage(playerid, COLOR_GREY, "** Soviele Pakete kannst du nicht mitnehmen.");
new preis = (menge*200);
if(GetMoney(playerid) < preis)return SendClientMessage(playerid, COLOR_GREY, ERROR_MONEY);
pPackets[playerid] += menge;
GiveMoney(playerid, -preis);
Danke schonmal.
// Edit
Habs doch noch hinbekommen,
Lösung:
Code
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 595.2783,-1249.6595,17.8187))return SendClientMessage(playerid, COLOR_GREY, "** Nicht in der Nähe vom Waffendealer Punkt. (/gps)");
if(sscanf(params, "i", menge))return SendClientMessage(playerid, COLOR_GREY, "** Benutze /getpaket [1-15]");
if(menge<1||menge>15)return SendClientMessage(playerid, COLOR_GREY, "* Wähle eine Menge zwischen 1 bis 15 aus!");
if((pPackets[playerid]+menge) > 15)return SendClientMessage(playerid, COLOR_GREY, "** Soviele Pakete kannst du nicht mitnehmen.");
new preis = (menge*200);
if(GetMoney(playerid) < preis)return SendClientMessage(playerid, COLOR_GREY, ERROR_MONEY);
pPackets[playerid] += menge;
GiveMoney(playerid, -preis);
format(string, sizeof(string), "* Du hast %d Pakete für $%d gekauft. Bringe diese nun schnell nach San Fierro!", menge, preis);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SetPlayerCheckpointEx(playerid, -2109.5037,-0.4467,34.8972, 4.0, CP_GETPAKET_WD, INVALID_CHECKPOINT_TYPE);
Alles anzeigen
(pPackets[playerid]+menge)" ging irgendwie. Keine Ahnung wieso.