Beiträge von InternetInk aka Benjamin

    Du machst das sehr durcheinander und nicht ganz Nachvollziehbar.
    Unter der vorraussetzung das die Werte Korrekt gelesen werden:


    Also ich reflektiere mal, du willst die BizStatistik von dem User anzeigenlassen der diesen Befehl eingibt.
    Und er soll die Statistik seines Biz sehen.


    Dazu gehst du, oder bzw. willst du alle Dateien durchgehen und prüfen ob der User Besitzer von einem Biz ist.
    Gute Idee, aber wozu brauchst du den Dateipfad wenn do sowieso nicht aus der Datei liest?
    Du vergleichst mit dem Array, da brauchst du keinen Pfad.


    Die Zeile
    if(strcmp(BSystem[i][Biz_Besitzer],name) != 0) return SendClientMessage(playerid,ROT,"Du hast noch keine Firma");
    Ist unsinnig, warum? Wenn dem Spieler das erste Biz nicht gehört brichst du die Schleife ab mit der Nachricht "Du hast noch keine Firma"
    Ihm könnte aber Biz ID 2 gehören. Das return rausnehmen ist ebenfalls keine Lösung, für jedes Biz das ihm nicht gehört würde er diese Nachricht bekommen = Spam.


    So nun zum eigentlich Teil dem formatieren, wieso so komisch? string in einen neuen string formatieren?
    Besser wäre es einen kleinen zu haben, den immer neu zu formatieren und ihn dann in einen größeren zu packen.
    Das ergebniss wird erst am ende der Schleife ausgegeben, könnte ja sein das jemand mehrere Biz hat, so werden dann alle anzeigt.
    Achja ich habs mal zu einer MSGBOX gemacht.



    ocmd:bizstats(playerid,params[])
    {
    #pragma unused params
    new gesamterstring[128],teilstring[20],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    for(new i=0;i<MAX_BIZZES;i++)
    {
    if(strcmp(BSystem[i][Biz_Besitzer],name) == 0)
    {
    //Erste Teil
    format(teilstring,sizeof(teilstring),"Name: %s\n\n",BSystem[i][Biz_Name]);
    strins(gesamterstring,teilstring,strlen(gesamterstring));
    //Zweiter Teil
    format(teilstring,sizeof(teilstring),"Einahmen: %i\n",BSystem[i][Biz_einahmen]);
    strins(gesamterstring,teilstring,strlen(gesamterstring));
    //Dritter Teil
    format(teilstring,sizeof(teilstring),"Produkte: %i\n",BSystem[i][Biz_Produkte]);
    strins(gesamterstring,teilstring,strlen(gesamterstring));
    }
    }
    //Ergebniss
    ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, 0, "Firmen Infomationen", gesamterstring, "Schließen", "");
    return 1;
    }


    Nicht getestet.
    //edit
    ShowPlayerDialog korrigiert

    @ Threadersteller


    Du solltest dich mal stark damit beschäftigen was du da eigentlich schreibst. Viele Funktionen haben garnicht so viele Parameter wie du angegeben hast.
    sscanf und andere Funktionen wurden falsch genutzt, du solltest dir vllt jemanden suchen der dir das erklärt.
    Du kannst sämtliche normalen funktionen auch in der Wiki-Suchleiste eingeben, dann bekommst du eine Übersicht aller Möglichen Parameter und immer ein Beispiel.



    ocmd:veh(playerid,params[])
    {
    new vID,Float:X, Float:Y, Float:Z, vC1, vC2, nschild[32];
    if(PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid,0xFFFFFFFF,"You don´t have permissons!");
    if(sscanf(params,"ddds[32]",vID,vC1, vC2, nschild)) return SendClientMessage(playerid,0xFFFFFFFF,"Benutzung: /veh [vID] [Color1] [Color2] [Nummernschild]");
    GetPlayerPos(playerid,X,Y,Z);
    new myveh = CreateVehicle(vID,X+2.0,Y+2.0,Z,0.0,vC1,vC2,-1);
    SetVehicleNumberPlate(myveh,nschild);
    LinkVehicleToInterior(myveh,GetPlayerInterior(playerid));
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast ein Vehicle gespawnt!");
    return 1;
    }

    Ja den ganzen Rest kannste im grunde ebenfalls wegschmeißen, mit sscanf ist der Befehl schnell gemacht...



    ocmd:cnn(playerid,params[])
    {
    new string[128],text[128];
    if (IsPlayerAnAdmin(playerid,2))
    {
    if(sscanf(params,"s",text))
    {
    SendClientMessage(playerid,GRAU,"[INFO]: /cnn [Text]");
    return 1;
    }
    format( string, sizeof(string), "~w~%s",text);
    GameTextForAll( string, 5000, 3 );
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du bist kein Admin!");
    }
    return 1;
    }

    Beitrag Bearbeiten > Code löschen > Über dem Text Feld über der Grauen Leiste Von "Editor" zu "Quellcode" wechseln > drücken den Code zwischen die Klammern ] & [ kopieren und erneut absenden


    So ist er eingerückt und deutlich besser lesbar...


    Merken, danke...