schleife macht nur ID 0

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
  • Hey bei mir geht er nur bis zu Null da er die Firma 1 schon garnicht mehr findet ihren wie da sagt er mir Bist nicht an der Firma bei Firma 0 geht alles(Fast)
    ocmd:produktepreis(playerid,params[])
    {
    new pPreis,preisinfo[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    for(new firmen=0;firmen<MAX_BIZZES;firmen ++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,BSystem[firmen][BizX],BSystem[firmen][BizY],BSystem[firmen][BizZ]))return SendClientMessage(playerid,ROT,"Du befindest dich nicht an deine Firma");
    if(sscanf(params,"d",pPreis))return SendClientMessage(playerid,ROT,"/produktepreis [Produkte Preis]");
    if(pPreis<100 && pPreis<600)return SendClientMessage(playerid,ROT,"100-600 Einstellbar");
    if(strcmp(BSystem[firmen][Biz_Besitzer],name)==0)
    {
    BSystem[firmen][Biz_ProduktePreis] += pPreis;
    format(preisinfo, sizeof(preisinfo), "Du hast den Produkte Preis bei der Firma %s auf %d gesetzt",BSystem[firmen][Biz_Name],pPreis);
    SendClientMessage(playerid,HELLGRÜN,preisinfo);
    BizesSpeichern(firmen);
    killBizzes(firmen);
    bizzesladen();
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist nicht der Inhaber der Firma.");
    }
    break;
    }
    return 1;
    }
    kann mir wehr helfen?
    lg kifkat

  • Ehm...
    if(pPreis<100 && pPreis<600)return SendClientMessage(playerid,ROT,"100-600 Einstellbar");


    Ist es nicht logisch, falls pPreis = 5 ist und somit < 100, dann auch < 600 sein muss?


    Wohl eher so:
    if(pPreis<100 || pPreis>600)return SendClientMessage(playerid,ROT,"100-600 Einstellbar");

  • Klappt leider nicht den bekomme ich bei id 0 SendClientMessage(playerid,ROT,"Du befindest dich nicht an deine Firma");
    format(preisinfo, sizeof(preisinfo), "Du hast den Produkte Preis bei der Firma %s auf %d gesetzt",BSystem[firmen][Biz_Name],pPreis);und bei id 1SendClientMessage(playerid,ROT,"Du befindest dich nicht an deine Firma");
    @RealGamer
    das ist nicht Mein Problem und ich weis das :D

  • Wollts nur ma erwähnen ^^
    Was mir noch auffällt:
    BSystem[firmen][Biz_ProduktePreis] += pPreis;
    format(preisinfo, sizeof(preisinfo), "Du hast den Produkte Preis bei der Firma %s auf %d gesetzt",BSystem[firmen][Biz_Name],pPreis);
    SendClientMessage(playerid,HELLGRÜN,preisinfo);
    BizesSpeichern(firmen);
    killBizzes(firmen);
    bizzesladen();


    ->

    BizesSpeichern(firmen);
    killBizzes(firmen);
    bizzesladen();


    In jedem Durchlauf alle Bizes entfernen und wieder laden? Welchen Sinn hat das denn...
    Vllt stirbt dir der Code ja in einem dieser Publics ab.


    Du könntest ja ma n paar Debugmeldungen reinmachen, um zu sehen, bis wo der Code kommt.




    /edit : Und das
    BSystem[firmen][Biz_ProduktePreis] += pPreis;
    Sicher, dass das so sein soll? Nich eher:
    BSystem[firmen][Biz_ProduktePreis] = pPreis;



    /edit²


    Bin ich blind? X(
    if(!IsPlayerInRangeOfPoint(playerid,5,BSystem[firmen][BizX],BSystem[firmen][BizY],BSystem[firmen][BizZ]))return SendClientMessage(playerid,ROT,"Du befindest dich nicht an deine Firma");


    Sobald du nichtmehr an Biz 0 stehst, bricht dir der Code ja durch das "return" ab
    -> Du wirst so niemals weiterkommen, außer du packts alle Bizzes an eine Pos
    Mach lieber
    if(!IsPlayerInRangeOfPoint(playerid,5,BSystem[firmen][BizX],BSystem[firmen][BizY],BSystem[firmen][BizZ]))continue;

  • Die BizesSpeichern(firmen);
    killBizzes(firmen);
    bizzesladen();
    hab ich beim beliefern auch Dirne und da klappt es ebenfalls
    ich Debug das mal
    //edit


    ja da dachte ich das das so geht aba ging auch net da hab ich das vergessen zurück zu machen :D
    //edit
    hab das jetzt so genommen if(!IsPlayerInRangeOfPoint(playerid,5,BSystem[firmen][BizX],BSystem[firmen][BizY],BSystem[firmen][BizZ]))continue;und es geht nur Ändert er den preis net

  • Ich hab oben noch was reineditiert, es liegt an:
    if(!IsPlayerInRangeOfPoint(playerid,5,BSystem[firmen][BizX],BSystem[firmen][BizY],BSystem[firmen][BizZ]))return SendClientMessage(playerid,ROT,"Du befindest dich nicht an deine Firma");

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen