Nabend,
ich habe da ein problem mit meinem Prod System. Der fehler ist das ich Produkte verkaufen kann obwohl ich keine Produkte geladen habe. Heisst ich kann z.b -200/100 haben. Finde den fehler selber nicht. Weiss jemand hilfe ? Hier der Code
if(strcmp(cmd, "/produkte", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] >= 0 || PlayerInfo[playerid][pLeader] >= 0)
{
tmp = strtok(cmdtext, idx);
new aktion[200];
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GOLD, "____________________________|Prdoukthilfe|____________________________");
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /produkte [Aktion]");
SendClientMessage(playerid, COLOR_WHITE, "Verfügbare Funktionen: kaufen, verkaufen, anzeigen");
return 1;
}
if(strcmp(tmp, "kaufen", true) == 0)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 456)
{
SendClientMessage(playerid, COLOR_GRAD1, "Dieses Fahrzeug kann keine Produkte ausliefern!");
return 1;
}
if(!IsPlayerInRangeOfPoint(playerid, 50, 1957.5536,-2183.4856,13.5469))
{
SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht am Eingang vom Los Santos Airport!");
return 1;
}
aktion = strtok(cmdtext, idx);
if(!strlen(aktion))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /produkte kaufen [Anzahl]");
SendClientMessage(playerid, COLOR_GRAD1, "*Preis pro Produkt: 50$, Maximale Produkte: 100");
return 1;
}
new menge;
menge = strval(aktion);
new preis = menge*50;
if(menge > LSAWaren)
{
SendClientMessage(playerid, COLOR_GRAD1, "Derzeit haben wir nicht soviele Produkte auf Lager!");
return 1;
}
if(menge < 1 || menge > 100)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst mindestens 1 Produkt und höchstens 100 Produkte kaufen!");
return 1;
}
if(menge + ProdsDabei[playerid] > 100)
{
SendClientMessage(playerid, COLOR_GRAD1, "So viele Produkte passen nicht mehr rein!");
format(string, sizeof(string), "Produkte dabei: %d/100",ProdsDabei[playerid]);
SendClientMessage(playerid, COLOR_GRAD1, string);
return 1;
}
if(preis > GetPlayerMoney(playerid))
{
SendClientMessage(playerid, COLOR_GRAD1, "Du hast nicht genug Geld!");
return 1;
}
ProdsDabei[playerid] = menge;
LSAWaren -= menge;
GivePlayerMoney(playerid, -preis);
format(string, sizeof(string), "*Du hast %d Produkte für %d$ gekauft.", menge, preis);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du kannst sie nun an Geschäfte verkaufen.");
new string2[200];
format(string2, sizeof(string2), "[Produktverkauf]\nPreis pro Produkt: 50$\nProdukte auf Lager: %d\nKaufen mit /produkt\nEinkauf nur mit Prodlaster", LSAWaren);
Update3DTextLabelText(LSWText, 0xFFFFFFFF, string2);
SaveStuff();
return 1;
}
else if(strcmp(tmp, "verkaufen", true) == 0)
{
aktion = strtok(cmdtext, idx);
if(!strlen(aktion))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /produkte verkaufen [Anzahl]");
return 1;
}
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 456)
{
SendClientMessage(playerid, COLOR_GRAD1, "Dieses Fahrzeug kann keine Produkte ausliefern!");
return 1;
}
for(new i = 0; i < sizeof(BizzInfo); i++)
{
new menge = strval(aktion);
new preis = menge*BizzInfo[i][bPriceProd];
if (IsPlayerInRangeOfPoint(playerid,10.0,BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]) && BizzInfo[i][bOwned] == 1)
{
if(BizzInfo[i][bProducts] + menge > BizzInfo[i][bMaxProducts])
{
GameTextForPlayer(playerid, "~r~Das Biz braucht soviele Produkte nicht!", 5000, 1);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
return 1;
}
if(preis > BizzInfo[i][bTill])
{
GameTextForPlayer(playerid, "~r~Das Biz hatt kein Geld mehr!", 5000, 1);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
return 1;
}
ProdsDabei[playerid] -= menge;
GivePlayerMoney(playerid, preis);
BizzInfo[i][bProducts] += menge;
BizzInfo[i][bTill] -= preis;
new string3[200];
format(string3, sizeof(string3), "[%s]\nInhaber: %s\nTeilhaber: %s\nEintrittspreis: %d$\nLevel: %d\nProdukte: %d/%d\nPreis pro Produkt: %d", BizzInfo[i][bMessage],BizzInfo[i][bOwner],BizzInfo[i][bExtortion],BizzInfo[i][bEntranceCost],BizzInfo[i][bLevelNeeded],BizzInfo[i][bProducts],BizzInfo[i][bMaxProducts],BizzInfo[i][bPriceProd]);
Update3DTextLabelText(BizzInfo[i][bText],COLOR_BUYED,string3);
format(string, sizeof(string), "%d Produkte für %d$ verkauft, Produkte: %d/100.", menge,preis,ProdsDabei[playerid]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
ConsumingMoney[playerid] = 1;
OnPropUpdate();
return 1;
}
}