/makeadmin ocmd Variable wird nicht verändert

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
  • Ich habe das Problem das in meinem Script bei dem /makeadmin Befehl die Variable nicht verändert wird. Es werden keine Fehler/Warnings ausgegeben.


    Bräuchte mal Hilfe weil ich nicht darauf komme :)
    pID = Der Spieler dessen Adminlevel gesetzt wird
    newlevel = Das neue Adminlevel von pID


    Spoiler anzeigen
    ocmd:makeadmin(playerid,params[])
    {
    new pID;
    new newlevel;
    if(pInfo[playerid][Adminlevel] == 1337)
    {
    if(pInfo[playerid][loggedin] == 1)
    {
    if(sscanf(params,"ui",pID,newlevel))return SendClientMessage(playerid,GRAU,"Befehl: /makeadmin [Spieler] [Adminlevel]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,GRAU,"Konnte den Spieler nicht finden.");
    if(newlevel<0)return SendClientMessage(playerid,GRAU,"Das Level darf nicht niedriger als 1 sein.");
    if(newlevel>2000)return SendClientMessage(playerid,GRAU,"Das Level darf nicht über 2000 sein.");
    new str[128],plname[24],str2[128],str3[128],admin[24],Spielerdatei[64];
    GetPlayerName(pID,plname,sizeof plname);
    GetPlayerName(playerid,admin,sizeof admin);
    format(Spielerdatei,sizeof Spielerdatei,"/Accounts/%s.ini",plname);
    format(str,sizeof str,"Du hast das Adminlevel von %s[ID:%i] auf %i gesetzt!",plname,pID,newlevel);
    format(str2,sizeof str2,"Admin %s hat das Adminlevel von %s[ID:%i] auf %i gesetzt!",admin,plname,pID,newlevel);
    format(str3,sizeof str3,"Dein Adminlevel wurde von %s[ID:%i] auf %i gesetzt!",admin,pID,newlevel);
    //_____Nachricht An Alle Admins_____
    for(new i; i<MAX_PLAYERS;i++)
    {
    if(pInfo[i][Adminlevel]>=1)
    {
    SendClientMessage(i,ORANGE,str2);
    }
    }
    //_____Ende_____
    SendClientMessage(playerid,GRAU,str);
    SendClientMessage(pID,BLAU,str3);
    pInfo[pID][Adminlevel] = newlevel;
    dini_IntSet(Spielerdatei,"Adminlevel",newlevel);
    }
    }
    else return SendClientMessage(playerid,ROT,"Du bist kein Admin oder hast nicht den benötigten Rang.");
    return 1;
    }


    Könnte mir einer sagen wie ich es ändere das der Pawn Code richtig angezeigt wird? :rolleyes:

  • Guck mal mit einem Print, ob der Befehl überhaupt so weit kommt!

  • Das heißt also, der kommt erst gar nicht soweit, dass der Fehler vorher sein muss.

  • So hab jetz den Fehler gefunden, weiß aber immer noch nicht wo dieser steckt.
    Ich hane ein printf gemacht nach dem er eig. das Adminlevel sollte.
    Ich hab mir ausgeben lassen auf welches Level es gesetzt wird und es is mir folgendes aufgefallen:


    So stand es in der Konsole:


    Ausgabe:makeadmin(0,48)


    im Script:


    printf("Ausgabe:makeadmin(%d,%d)",pid,params[]);


    Hat jemand eine ahnung warum da 48 steht?
    Habe das gleiche mit der ausgabe von der Variable probiert - da zeigt er wieder 0 an...


    //edit: Neues rausgefunden

    4 Mal editiert, zuletzt von S33k ()