Stats Befehl Problem - Brauche Hilfe für leichtere und simple Erstellung

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 Leute,


    wie schon in der Überschrifft erwähnt suche ich eine Hilfe bei meinem Stats-befehl!


    Derzeit wird mein Dialog sogar gar nicht mehr angezeigt! :(


    Hier mein Befehl:
    if(strcmp(cmdtext,"/stats", true)==0)
    {
    if(Spieler[playerid][Ausweis] == 1)
    {
    new strP[900];
    format(strP,sizeof(strP),"\n{BDBDBD}Generelle Informationen\n\n[{00FFFF}Name: {FF00FF}%s{BDBDBD}]\n[{00FFFF}Level: {FF00FF} %i{BDBDBD}]\n[{00FFFF}Tode: {FF00FF}%s{BDBDBD}]\n[{00FFFF}Morde: {FF00FF}%s{BDBDBD}]\n[{00FFFF}Skin ID: {FF00FF}%i{BDBDBD}]\n\n Besitztum\n\n[{00FFFF}Bargeld: {FF00FF}%i{BDBDBD}]\n[{00FFFF}Kontoguthaben: {FF00FF}%s{BDBDBD}]\n",SpielerName(playerid),GetPlayerScore(playerid),Spieler[playerid][Tode],Spieler[playerid][Kills],GetPlayerSkin(playerid),GetPlayerMoney(playerid));
    format(strP,sizeof(strP),Spieler[playerid][Bank],"{BDBDBD}[{00FFFF}Drogen:{FF00FF}%s{BDBDBD}]\n",Spieler[playerid][Drogen],"{BDBDBD}[{00FFFF}Materials:{FF00FF}%s{BDBDBD}]\n",Spieler[playerid][Materials]);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Deine Statistik",strP,"OK","");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED, "Du benötigst einen Personalausweis um deine Statistik anzuschauen!");
    return 1;
    }
    }


    Ihr seht, dass ich alle Variablen und Texte in einem String (strP) Auslesen lassen will!
    Außerdem muss ich alles in die format "Geschichte" schreiben! :(


    Habt ihr eine bessere und leichtere Lösung? :)


    Gruß DCF

  • format(strP,sizeof(strP),Spieler[playerid][Bank],"{BDBDBD}[{00FFFF}Drogen:{FF00FF}%s{BDBDBD}]\n",Spieler[playerid][Drogen],"{BDBDBD}[{00FFFF}Materials:{FF00FF}%s{BDBDBD}]\n",Spieler[playerid][Materials]);
    Zu
    format(strP,sizeof(strP),"%s{BDBDBD}[{00FFFF}Drogen:{FF00FF}%s{BDBDBD}]\n""{BDBDBD}[{00FFFF}Materials:{FF00FF}%s{BDBDBD}]\n",strP,Spieler[playerid][Drogen],Spieler[playerid][Materials]);




    Außerdem muss an das obere Format, da lange, ganz an das Ende vor die Klammer noch
    ,Spieler[playerid][Bank]
    hin.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()


  • ocmd:checkid(playerid,params[])
    {
    if(IsPlayerInFraktion(playerid, 0))return 1;
    new fID,pID,Ausweis[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE_ROT,"INFO: /checkid [Playerid]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE_ACCEPT,"Dieser Spieler ist nicht vorhanden.");
    format(Ausweis, sizeof(Ausweis),"Name: %s \nLevel: %d \nFraktion: %s \nWanteds: %d",getPlayerName(pID),sInfo[pID][Level],fInfo[fID][f_name],GetPlayerWantedLevel(pID));
    if(IsPlayerInFraktion(playerid, 1))return ShowPlayerDialog(playerid,DIALOG_AUSWEIS, DIALOG_STYLE_MSGBOX, "Personalausweiss",Ausweis,"Zurückgeben","");
    return 1;
    }

    Ich habe keine Errors aber angezeigt wird auch nichts ^^Kann einer sagen wieso?

    3 Mal editiert, zuletzt von xPatrick ()

  • Kann einer sagen wieso?

    Yes i can :)


    Weil, du den String erst formatierst, nachdem du dem Spieler schon einen Dialog angezeigt hast ^^


    Also mal Zeile 7 und 8 tauschen :D


    Code Logik, ist sehr wichtig :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Dankeschön ganz übersehen. Geht jetzt


    Jetzt habe ich noch ein kleines Problem. Im Dialog wird bei der Fraktion Zivilist ausgegeben obwohl ich LSPD bin.


    Zivilst ist ID 0
    LSPD ID 1


    in der Datenbank steht auch def. ID 1


    Wenn ich jedoch als Admin setleader eingebe mit der ID 1 (LSPD) steht auch da das ich LSPD nun bin, und alle befehle der Fraktion funktioneren


    new fInfo[][FraktionEnum] ={{"Zivilist",FARBE_CHAT},{"Los Santos Police Department",FARBE_BLAU},{"Los Santos Rescue Department",FARBE_ROT}};



    ocmd:checkid(playerid,params[])
    {
    if(IsPlayerInFraktion(playerid, 0))return 1;
    new fID,pID,Ausweis[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE_ROT,"INFO: /checkid [Playerid]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE_ACCEPT,"Dieser Spieler ist nicht vorhanden.");
    format(Ausweis, sizeof(Ausweis),"Name: %s \nLevel: %d \nFraktion: %s \nWanteds: %d",getPlayerName(pID),sInfo[pID][Level],fInfo[fID][f_name],GetPlayerWantedLevel(pID));
    if(IsPlayerInFraktion(playerid, 1))return ShowPlayerDialog(playerid,DIALOG_AUSWEIS, DIALOG_STYLE_MSGBOX, "Personalausweiss",Ausweis,"Zurückgeben","");
    return 1;
    }

    2 Mal editiert, zuletzt von xPatrick ()

  • danke, habs .So gehts



    ocmd:checkid(playerid,params[])
    {
    if(IsPlayerInFraktion(playerid, 0))return 1;
    new fID = sInfo[playerid][Fraktion], pID,Ausweis[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE_ROT,"INFO: /checkid [Playerid]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE_ACCEPT,"Dieser Spieler ist nicht vorhanden.");
    format(Ausweis, sizeof(Ausweis),"Name: %s \nLevel: %d \nFraktion: %s \nWanteds: %d",getPlayerName(pID),sInfo[pID][Level],fInfo[fID][f_name],GetPlayerWantedLevel(pID));
    if(IsPlayerInFraktion(playerid, 1))return ShowPlayerDialog(playerid,DIALOG_AUSWEIS, DIALOG_STYLE_MSGBOX, "Personalausweiss",Ausweis,"Zurückgeben","");
    return 1;
    }

  • So gehts

    So ist das aber falsch, da dann nur die Fraktion von einem selbst angezeigt werden würde. (da du playerid und nicht pID nutzt)


    Schreib das mal so:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S