Makeadmin funktioniert nicht, warum?

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
  • Tag liebe Breadfish Community,
    ich habe ein Scriptfehler und ich weiß nicht wo der Fehler liegt.
    Ich habe keine Errors oder Warnings:
    Ich möchte auch (bitte) keine OCMD Command als Vorschläge :)


    So sieht mein Befehl aus:



    Ich hoffe ihr könnt mir helfen.


    Mit freundlichen Grüßen
    iMan

  • Meines Wissens muss das so aussehen:


    if(strcmp(cmdtext, "/makeadmin", true) == 0)
    {
    if(IsPlayerAnAdmin(playerid,6))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, GRAU, "Benutze /makeadmin [SpielerID] [Level]");
    return 1;
    }
    new level = strval(tmp);
    tmp = strtok(cmdtext, idx);
    new Spieler = ReturnUser(tmp);


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Jetzt habe ich 2 Warnings :(



    Zitat

    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\World~of~Reallife.pwn(252) : warning 204: symbol is assigned a value that is never used: "Spieler"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\World~of~Reallife.pwn(250) : warning 204: symbol is assigned a value that is never used: "level"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.

  • if(strcmp(cmdtext, "/makeadmin", true) == 0){
    if(IsPlayerAnAdmin(playerid,6))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, GRAU, "Benutze /makeadmin [SpielerID] [Level]");
    return 1;
    }
    tmp = strtok(cmdtext, idx);

  • Das funktioniert auch nicht.
    Ich habe schon wieder warnings, die aber nicht im Script stehen.


    Zitat


    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\World~of~Reallife.pwn(550) : warning 203: symbol is never used: "IsNumeric"
    C:\Users\Arash\Desktop\Alle Ordner\World~of~Reallife\gamemodes\World~of~Reallife.pwn(550) : warning 203: symbol is never used: "ReturnUser"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.

    Hat jemand noch mehr Ideen??

    2 Mal editiert, zuletzt von MrZezuma ()

  • Wenn ich nur makeadmin eingebe kommt da :
    Du hast ID 0 zum Admin befördert.


    Aber wenn ich /makeadmin 0 6 eingebe, kommt da, der Befehl existiert nicht.
    Kannst du mir da weiterhelfen??

    Einmal editiert, zuletzt von MrZezuma ()

  • COMMAND:makeadmin(playerid,params[])
    {
    new otherid,string[128],rank;
    new aname[MAX_PLAYER_NAME],otheridname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(playerid,otheridname,sizeof(otheridname));
    if(IsPlayerAnAdmin(playerid,6))
    {
    if(sscanf(params,"ud",otherid,rank))return SendClientMessage(playerid,GRAU,"Benutzung: /makeadmin [ID] [Rank]");
    format(string,sizeof(string),"Du hast %s zu einem Admin des Levels %d befördert.",otheridname,rank);
    SendClientMessage(playerid,ROT,string);
    format(string,sizeof(string),"Du wurdest von %s zu einem Admin des Levels %d befördert.",aname,rank);
    SendClientMessage(otherid,ROT,string);
    pInfo[otherid][pAdmin] = rank;// anpassen!
    SpielerSpeichern(otherid);// anpassen!
    }
    return 1;
    }

    Mit unfreundlichen Grüßen
    Buschmensch

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • if(strcmp(cmd, "/makeadmin", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] == !!!!! || IsPlayerAdmin(playerid)) // Bei !!!! muss der Adminrang den derjenige der jmd zum admin macht sein.
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makeadmin [ID] [Level]");
    return 1;
    }
    new para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    new level = strval(tmp);
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(PlayerInfo[para1][pAdmin] < level)
    {
    format(string, sizeof(string), "Du wurdest durch %s zu einem Level %d Admin befördert", sendername, level);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "Du hast %s zu einem Level %d Admin befördert.", giveplayer,level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    else
    {
    format(string, sizeof(string), "Du wurdest durch %s zu einem Level %d Admin degradiert", sendername, level);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "Du hast %s zu einem Level %d Admin degradiert.", giveplayer,level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    PlayerInfo[para1][pAdmin] = level;
    }
    }
    }
    return 1;
    }

  • Habe jetzt 4 Errors. (habe einige behoben^^)



  • Sry aber ich möchte noch nicht mit Sccanf und zcmd/ocmd arbeiten :/
    Hat sonst keiner ein Vorschlag?
    Vllt kennt ihr ja den Fehler hier für:


    Zitat

    Wenn ich nur makeadmin eingebe kommt da :
    Du hast ID 0 zum Admin befördert.


    Aber wenn ich /makeadmin 0 6 eingebe, kommt da, der Befehl existiert nicht.
    Kannst du mir da weiterhelfen??


    Einmal editiert, zuletzt von MrZezuma ()

  • Da hat mir keiner geantwortet ^^
    Weitere Vorschläge bitte.

    Einmal editiert, zuletzt von MrZezuma ()

  • So hier der komplette Code:
    new idx;
    new cmd[256] = strtok(cmdtext, idx);
    if(strcmp(cmd, "/makeadmin", true) == 0)
    {
    if(IsPlayerAnAdmin(playerid,6))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, GRAU, "Benutze /makeadmin [SpielerID] [Level]");
    new level = strval(tmp);
    tmp = strtok(cmdtext, idx);
    new Spieler = ReturnUser(tmp);
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(Spieler, giveplayer, sizeof(giveplayer));
    format(Spielerdatei,sizeof(Spielerdatei),"/Account's/%s.txt",giveplayer);
    dini_IntSet(Spielerdatei,"Adminlevel",level);
    new string[124];
    format(string,sizeof(string),"Du hast %d zu einem Admin des Levels %s befördert.",giveplayer, level);
    SendClientMessage(playerid,ROT,string);
    new string2[124];
    format(string2,sizeof(string2),"Du wurdest von %d zu einem Admin des Levels %s befördert.",name, level);
    SendClientMessage(Spieler,ROT,string2);
    return 1;
    }
    else return SendClientMessage(playerid,GRAU,"Diesen Befehl darfst du nicht benutzen!");
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Ich hab jetzt 1 Error, den ich nicht verstehe.