problem bei /makeadmin

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 bin gerade dabei ein eigenen GM zu machen.. jetzt habe ich ein Problem mit meinem /makeadmin
    Immer wenn ich /makeadmin [ID} [alvl] sagt der server Unkown Command
    mache ich nur /makeadmin kommt die fehler meldung


    if(strcmp(cmdtext,"/makeadmin",true)==0)
    {
    new save[128];
    new ziel = strval(strget(cmdtext,1));
    new alvl = strval(strget(cmdtext,2));
    if(pInfo[playerid][alevel] == 3) return SendClientMessage(playerid, COLOR_RED, "Du bist kein Head-Admin!");
    {
    if(alvl==1){ pInfo[ziel][alevel] = 1; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Supporter (Adminlevel: 1) gemacht.");}
    if(alvl==2){ pInfo[ziel][alevel] = 2; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Admin (Adminlevel: 2) gemacht.");}
    if(alvl==3){ pInfo[ziel][alevel] = 3; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Head-Admin (Adminlevel: 3) gemacht.");}
    return 1;
    }
    }


    Hoffe ihr könnt mir helfen

  • if(strcmp(cmdtext,"/makeadmin",true)==0)
    {
    new save[128];
    new ziel = strval(strget(cmdtext,1));
    new alvl = strval(strget(cmdtext,2));
    if(pInfo[playerid][alevel] == 3) return SendClientMessage(playerid, COLOR_RED, "Du bist kein Head-Admin!");
    {
    if(alvl==1){ pInfo[ziel][alevel] = 1; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Supporter (Adminlevel: 1) gemacht.");}
    if(alvl==2){ pInfo[ziel][alevel] = 2; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Admin (Adminlevel: 2) gemacht.");}
    if(alvl==3){ pInfo[ziel][alevel] = 3; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Head-Admin (Adminlevel: 3) gemacht.");}}
    return 1;
    }

  • ehm so gehts garnicht xD dennf helt ja ein }
    der cmd funzt ja, also wenn man nur makeadmin macht kommt ne fehlermeldung.
    macht man /makeadmin id alvl kommt erst : SERVER: Unknwon Command

  • if(strcmp(cmdtext,"/makeadmin",true)==0)
    {
    new save[128];

    tmp = strtok(cmdtext, idx);

    new ziel;
    ziel = strval(tmp);

    if(!strlen(tmp))
    {
    SendClientMessage(playerid, farbe, "Benutze: /makeadmin [ID] [Level]");
    return 1;
    }

    new alvl;
    alvl = strval(tmp);

    if(!strlen(tmp))
    {
    SendClientMessage(playerid, farbe, "Benutze: /makeadmin [ID] [Level]");
    return 1;
    }

    if(pInfo[playerid][alevel] == 3)
    {
    if(alvl==1){ pInfo[ziel][alevel] = 1; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Supporter (Adminlevel: 1) gemacht.");}
    if(alvl==2){ pInfo[ziel][alevel] = 2; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Admin (Adminlevel: 2) gemacht.");}
    if(alvl==3){ pInfo[ziel][alevel] = 3; dini_IntSet(save,"alevel",pInfo[ziel][alevel]); SendClientMessage(ziel, COLOR_YELLOW, "Du wurdest zum Head-Admin (Adminlevel: 3) gemacht.");}
    }
    else
    {
    SendCLientMessage(playerid, farbe, "Du bist kein Head-Admin");
    }
    return 1;
    }
    Ich hätte es so gemacht aber gibt bessere lösungen aber die geht auch

  • xD ich habe kA von DCMD und sscanf
    bin froh, dass ich schon mit dini arbeiten kann


    //edit:
    @SenZe B
    in dem code passiert das gleiche:
    mache ich /makeadmin ID Level Sagt der SERVER: Unknown Error
    mache ich nur /makeadmin sagt er mir: Benutze: /makeadmin ID Level


    was kann das sein?

  • hm keine ahnung ich sxchreibe meine befehl dann glei ich arbeite ja auch jetzt mit dini da poste ich dir dann mein befehl und wegen dcmd mag sein das das besser ist aber ich habe mich jertzt erst mal an das gewöhnt ^^ und poste ihn dir das oben war ja ungetestet

  • Hier mal ein makeadmin aus meinem Script:


    Ersmal ganz oben
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    Dann ganz nach unten den sscanf teil : http://wiki.sa-mp.com/wiki/Sscanf_code ( Fängt mit stock sscanf(string[], format[], {Float,_}:...)
    an)


    Dann unter OnPlayerCommand. Unter den Letzen Befehl
    dcmd(makeadmin,9,cmdtext);


    Dann darunter


    dcmd_makeadmin(playerid,params[])
    {
    new zielid;
    new ziellevel;


    if(sscanf(params, "ud",zielid,ziellevel))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /makeadmin [ID] [Admin-Level]");
    }


    if(IsAnAdmin[playerid] == 1)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerConnected(zielid))
    {
    SendClientMessage(playerid,rot,"Es existiert kein Spieler mit dieser ID");
    return 1;
    }
    else
    {
    if(zielid == playerid)
    {
    SendClientMessage(playerid,rot,"Du solltest dir dein Admin-Level besser nicht selber verändern");
    return 1;
    }
    else
    {
    new admin[MAX_PLAYER_NAME];
    new string[256];
    GetPlayerName(playerid,admin,sizeof(admin));
    format(string,sizeof(string),"Du hast von Admin %s den Adminlevel %d bekommen",admin,ziellevel);
    SendClientMessage(zielid,grün,string);


    new string2[256];
    new zielname[MAX_PLAYER_NAME];
    GetPlayerName(zielid,zielname,sizeof(zielname));
    format(string2,sizeof(string),"Admin-Command: Admin %s hat %s den Adminlevel %d gegeben",admin,zielname,ziellevel);


    new string3[256];
    format(string3,sizeof(string3),"%s.dini",zielname);


    PlayerInfo[zielid][pAdmin] = ziellevel;
    dini_IntSet(string3,"Admin",PlayerInfo[zielid][pAdmin]);


    SendClientMessageToAll(grün,string2);


    print("-----");
    print(string2);


    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"Du besitzt nicht die nötige Einstufung zur Ausführung dieses Befehls");
    return 1;
    }
    }


    Der Command ist als Rcon ausführbar.
    Hoffe ich konnte helfen