Produkte System Fail

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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;
    }
    }

  • Versuchs mal so
    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(menge > ProdsDabei[playerid]) {
    GameTextForPlayer(playerid, "~r~Du hast nicht soviele Prods!", 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;
    }
    }
    }