Kleines Bizz-System Problem :/

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
  • Guten Morgen :)



    Ich habe ein kleines Problem und zwar bin ich gerade dabei das Bizz System zu erweitern nur habe ich da ein kleines Problem ..


    Und zwar eig wollte ich das zwar in ein Timer machen aber fürs erste zum testen habe ich das mit ein Befehl gemacht. Das Problem ist wenn ich das nun mache sollen die Bizz Produkte weniger werden jedoch werden die Bizz Produkte nicht nur bei den Verkauften Bizz´s weniger sondern bei allen außerdem wenn bei einem Bizz die Prods auf 0 sind wir bei ALLEN Bizz´s nicht mehr weiter reduziert ...



    Test-Befehl
    if(strcmp("/Testemich2", cmdtext, true, 10) == 0)
    {
    for(new bizzid=1;bizzid<MAX_BIZZES;bizzid++)
    {
    if(Keyy[playerid] != 1) return SendClientMessage(playerid,0xffff0000,"Du hast kein Bizz");
    if(BizzInfo[bizzid][pProds] == 0) return SendClientMessage(playerid,0xffff0000,"Diese Bizz hat keine Prods mehr");
    BizzInfo[bizzid][pProds] -= 25;
    SB(bizzid);
    KB(bizzid);
    LB(bizzid);
    }
    return 1;
    }




    Und hier der Befehl zum Beliefern (Funktioniert Kopier ich nur noch mal so rein eventuell wird was aus dem Befehl benötigt)
    dcmd_beliefern(playerid,params[])
    {
    for(new bizzid=1;bizzid<MAX_BIZZES;bizzid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,BizzInfo[bizzid][bx],BizzInfo[bizzid][by],BizzInfo[bizzid][bz]))
    {
    new anzahl;
    if(Produkte[playerid] == 0) return SendClientMessage(playerid,0xffff0000,"keine Produkte bei ihnen!");
    if(BizzInfo[bizzid][pProds] == 500) return SendClientMessage(playerid,0xffff0000,"Diese Bizz hat volle Prods");
    if(sscanf(params,"i",anzahl)) return SendClientMessage(playerid,0xffff0000,"Benutzung: /beliefern [Prods]");
    if(anzahl > Produkte[playerid]) return SendClientMessage(playerid,0xffff0000,"nicht genug Produkte dabei");
    new string[256];
    format(string,sizeof(string),"Die Bizz hätte dann über 500Prods\n Derzeit: %d/500",BizzInfo[bizzid][pProds]);
    if(anzahl + BizzInfo[bizzid][pProds] > 500) return SendClientMessage(playerid,0xffffffff,string);
    BizzInfo[bizzid][pProds] += anzahl;
    Produkte[playerid] -= anzahl;
    SB(bizzid);
    KB(bizzid);
    LB(bizzid);
    }
    }
    return 1;
    }



    Ich hoffe ihr könnt mir helfen :/



    Mfg.

  • Okey Danke Es klappt :) aber jetzt habe ich noch eine Kleine Frage
    Die Zeile Macht Probleme. :
    if(25 - BizzInfo[bizzid][pProds] <= 0) continue; SendClientMessage(playerid,0xffff0000,"Das sind sonst zu wenig Produkte");


    Ich will das wenn das bizz z.B noch 10 Prods hat und die 25 dann abgezogen werden das nicht im Minus ist .. sondern das dann einfach garnichts mehr abgezogen wird. Nur mit der Zeile wie ich es gemacht habe klappt das nicht so klappt i.wie garnicht mehr :/
    So Siehts in moment aus :


    if(strcmp("/Testemich2", cmdtext, true, 10) == 0)
    {
    for(new bizzid=1;bizzid<MAX_BIZZES;bizzid++)
    {
    if(BizzInfo[bizzid][bBesitzt] == 1)
    {
    if(25 - BizzInfo[bizzid][pProds] <= 0) continue; SendClientMessage(playerid,0xffff0000,"Das sind sonst zu wenig Produkte");
    if(Keyy[playerid] != 1) continue; SendClientMessage(playerid,0xffff0000,"Du hast kein Bizz");
    if(BizzInfo[bizzid][pProds] == 0) continue; SendClientMessage(playerid,0xffff0000,"Diese Bizz hat keine Prods mehr");
    BizzInfo[bizzid][pProds] -= 25;
    SB(bizzid);
    KB(bizzid);
    LB(bizzid);
    }
    }
    return 1;
    }