Befehle mit OCMD funktionieren nicht

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
  • Heyho ich nerve schon wieder :), undzwar wenn ich meine Befehle ingame eingebe z.B. "/makeadmin 0 4", dann kommt nur "INFO: /makeadmin [playerid] [rang]", versteht das einer?


    ocmd:makeadmin(playerid,params[])
    {
    if(sInfo[playerid][alevel] >= 4)
    {
    new pid, a_level, astring[128], bstring[128];
    if(sscanf(params,"ui",pid,a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]");
    sInfo[pid][alevel]= a_level;
    savePlayer(pid);
    format(astring, sizeof(astring), "Admin %s hat dein Adminlevel auf %i geändert.", playerid, a_level);
    SendClientMessage(pid, COLOR_LIGHTBLUE, astring);
    format(bstring, sizeof(bstring), "Du hast %s Adminlevel auf %i geändernt.", pid, a_level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, bstring);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    }
    return 1;
    }


    Danke im Vorraus für die Hilfe ;)

  • Jo, habs mal ausgetauscht, aber selbiges Problem :/


    //EDIT: ist wirklich ein edit, nicht das ich wieder verwarnt werden...
    der einzige Befehl der geht ist dieser hier:
    COMMAND:restart(playerid,params[])
    {
    if(sInfo[playerid][alevel] >= 2)
    {
    SendRconCommand("gmx");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    }
    return 1;
    }


    Hab auch nochmal geschaut, Adminlevel ist 4


  • ocmd:makeadmin(playerid, params[])
    {
    new pID, a_level, String[128];


    if(sInfo[pid][alevel] < 4)return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    if(sscanf(params, "ui", pID, a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]");


    format(String, sizeof(String), "Admin %s hat dein Adminlevel auf %i geändert.", playerid, a_level);
    SendClientMessage(pID, COLOR_LIGHTBLUE, String);


    format(String, sizeof(String), "Du hast %s Adminlevel auf %i geändernt.", pID, a_level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, String);


    sInfo[pid][alevel] = a_level;
    savePlayer(pID);
    return 1;
    }


    könnte an dein sscanf oder ocmd liegen hab dir beides hochgeladen


    Download

  • //EDIT: ist wirklich ein edit, nicht das ich wieder verwarnt werden...

    Die Admins können sehen was editiert wurde und was nicht. "Vorher" und "Nachher" Funktion.
    Also wenn es wirklich ein EDIT ist brauchst du ja nicht dahinter schreiben das es wirklich ein Edit ist :P
    Sie sehen das schon.

  • ocmd:makeadmin(playerid, params[]){ new pID, a_level, String[128]; if(sInfo[pid][alevel] < 4)return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig."); if(sscanf(params, "ui", pID, a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]"); format(String, sizeof(String), "Admin %s hat dein Adminlevel auf %i geändert.", playerid, a_level); SendClientMessage(pID, COLOR_LIGHTBLUE, String); format(String, sizeof(String), "Du hast %s Adminlevel auf %i geändernt.", pID, a_level); SendClientMessage(playerid, COLOR_LIGHTBLUE, String); sInfo[pid][alevel] = a_level; savePlayer(pID); return 1;}


    könnte an dein sscanf oder ocmd liegen hab dir beides hochgeladen


    Download

    Hatte eigentlich von beidem die neuen Dateien heruntergeladen, aber danke jetzt scheints zu funktionieren! Jetzt habe ich aber beim Dialog folgendes Problem

    [10:44:48] Admin hat dein Adminlevel auf 5 geändert.


    [10:44:48] Du hast Adminlevel auf 5 geändernt.


    und die Befehle ( beide getestet ) und funktioniert bei beiden nicht
    ocmd:makeadmin(playerid, params[])
    {
    new pid, a_level, String[128];
    if(sInfo[pid][alevel] < 4)return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    if(sscanf(params, "ui", pid, a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]");
    format(String, sizeof(String), "Admin %s hat dein Adminlevel auf %i geändert.", playerid, a_level);
    SendClientMessage(pid, COLOR_LIGHTBLUE, String);
    format(String, sizeof(String), "Du hast %s Adminlevel auf %i geändernt.", pid, a_level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, String);
    sInfo[pid][alevel] = a_level;
    savePlayer(pid);
    return 1;
    }


    ocmd:makeadmin(playerid,params[])
    {
    if(sInfo[playerid][alevel] >= 4)
    {
    new pid, a_level, astring[128], bstring[128];
    if(sscanf(params,"ui",pid,a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]");
    sInfo[pid][alevel]= a_level;
    savePlayer(pid);
    format(astring, sizeof(astring), "Admin %s hat dein Adminlevel auf %i geändert.", playerid, a_level);
    SendClientMessage(pid, COLOR_LIGHTBLUE, astring);
    format(bstring, sizeof(bstring), "Du hast %s Adminlevel auf %i geändernt.", pid, a_level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, bstring);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    }
    return 1;
    }

  • Pack den stock unten in dein Script rein und ersetze den Befehl dann sollte es gehen



    ocmd:makeadmin(playerid, params[])
    {
    new pID, a_level, String[128];

    if(sInfo[pid][alevel] < 4)return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    if(sscanf(params, "ui", pID, a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]");

    format(String, sizeof(String), "Admin %s hat dein Adminlevel auf %i geändert.", SpielerName(playerid), a_level);
    SendClientMessage(pID, COLOR_LIGHTBLUE, String);

    format(String, sizeof(String), "Du hast %s Adminlevel auf %i geändernt.", SpielerName(pID), a_level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, String);


    sInfo[pid][alevel] = a_level;
    savePlayer(pid);
    return 1;
    }



    stock SpielerName(playerid)
    {
    new getspName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, getspName, sizeof(getspName));
    return getspName;
    }

  • Pack den stock unten in dein Script rein und ersetze den Befehl dann sollte es gehen


    ocmd:makeadmin(playerid, params[]){ new pID, a_level, String[128]; if(sInfo[pid][alevel] < 4)return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig."); if(sscanf(params, "ui", pID, a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]"); format(String, sizeof(String), "Admin %s hat dein Adminlevel auf %i geändert.", SpielerName(playerid), a_level); SendClientMessage(pID, COLOR_LIGHTBLUE, String); format(String, sizeof(String), "Du hast %s Adminlevel auf %i geändernt.", SpielerName(pID), a_level); SendClientMessage(playerid, COLOR_LIGHTBLUE, String); sInfo[pid][alevel] = a_level; savePlayer(pid); return 1;}


    stock SpielerName(playerid){ new getspName[MAX_PLAYER_NAME]; GetPlayerName(playerid, getspName, sizeof(getspName)); return getspName;}

    Ich verstehe es nicht, alles hat früher immer so funktioniert, aber jetzt geht es einfach nicht mehr. Hab deins ebenfalls ausprobiert und es scheint nicht zu funktionieren

  • ocmd:makeadmin(playerid, params[])
    {
    new pID, a_level, string[128];


    if(sInfo[playerid][alevel] < 4)return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    if(sscanf(params, "ui", pID, a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht online.");


    format(string, sizeof(string), "Admin %s hat dein Adminlevel auf %i geändert.", SpielerName(playerid), a_level);
    SendClientMessage(pID, COLOR_LIGHTBLUE, string);


    format(string, sizeof(string), "Du hast %s Adminlevel auf %i geändernt.", SpielerName(pID), a_level);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    sInfo[pID][alevel] = a_level;
    savePlayer(pID);
    return 1;
    }


    Zusammen mit dem Stock SpielerName natürlich.

  • ocmd:makeadmin(playerid, params[]){ new pID, a_level, string[128]; if(sInfo[playerid][alevel] < 4)return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig."); if(sscanf(params, "ui", pID, a_level))return SendClientMessage(playerid, COLOR_YELLOW, "INFO: /makeadmin [playerid] [rang]"); if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht online."); format(string, sizeof(string), "Admin %s hat dein Adminlevel auf %i geändert.", SpielerName(playerid), a_level); SendClientMessage(pID, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "Du hast %s Adminlevel auf %i geändernt.", SpielerName(pID), a_level); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); sInfo[pID][alevel] = a_level; savePlayer(pID); return 1;}


    Zusammen mit dem Stock SpielerName natürlich.

    Jo danke dir! Habe das Grundprinzip wieder drin, zu lange nicht mehr den Rhytmus gehabt und vielleicht war ich auch einfach zu müde ums zu kapieren.