wenn ich /kick odda /ban odda /makadmin eingebe passiert nix

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
  • Guten Morgen,


    Wie in der Überschrift schon geschrieben steht habe ich probleme mit diesen befehlen:


    wenn ich /kick eingebe:


    Spoiler anzeigen
    if(strcmp(cmd, "/kick", true) == 0)
    {
    new giveplayerid,string[256], length = strlen(cmdtext),offset = idx, result[64],year, month,day;
    result[idx - offset] = EOS;
    if(PlayerLogged[playerid] == 1) {
    if(IsPlayerAnAdmin(playerid, 2)) {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp) || !strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /kick [playerid] [Grund]"); return 1; }
    giveplayerid = ReturnUser(tmp);
    while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; }
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; }
    if(PlayerLogged[giveplayerid] == 1) {
    if(PlayerInfo[giveplayerid][AdminLevel] > PlayerInfo[playerid][AdminLevel]) { SendClientMessage(playerid, COLOR_GRAD2, "Du kannst diesen Spieler nicht kicken, da er ein höheres Adminlevel hat als du!"); return 1; }
    getdate(year, month, day);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gekickt, Grund: %s (%d-%d-%d)", UserName(giveplayerid), UserName(playerid), (result),month,day,year);
    KickLog(string);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gekickt, Grund: %s", UserName(giveplayerid), UserName(playerid), (result));
    SCMTA(COLOR_LIGHTRED, string);
    Kick(giveplayerid);
    TogglePlayerControllable(giveplayerid,0);
    return 1;
    }
    }
    }
    return 1;
    }


    mit nur:

    Code
    Verwendung: /kick [playerid] [Grund]


    und wenn ich /ban eingeben:


    Spoiler anzeigen
    if (strcmp("/ban", cmdtext, true, 10) == 0) {
    if(PlayerLogged[playerid] == 1) {
    if(IsPlayerAnAdmin(playerid, 1337)) {
    new mitteilung[256], length = strlen(cmdtext), para1;
    tmp = strtok(cmdtext, idx);
    while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; }
    new offset = idx, x_nr[64];
    while ((idx < length) && ((idx - offset) < (sizeof(x_nr) - 1))) {
    x_nr[idx - offset] = cmdtext[idx];
    idx++;
    }
    x_nr[idx - offset] = EOS;
    if(!strlen(tmp) && !strlen(x_nr)) {
    SCM(playerid, COLOR_GRAD2, "Verwendung: /ban [playerid/Playername] [Grund]");
    return true;
    }
    para1 = ReturnUser(tmp);
    if(PlayerLogged[para1] == 1) {
    if(para1 != INVALID_PLAYER_ID) {
    format(mitteilung,sizeof mitteilung,"[AdmCmd]: %s wurde dem Admin/Supporter %s gebannt.[Grund: %s]",UserName(para1),UserName(playerid),(x_nr));
    SCMTA(COLOR_LIGHTRED,mitteilung);
    PlayerInfo[playerid][Banned] = 1;
    Kick(para1);
    TogglePlayerControllable(para1,0);
    return 1;
    }return SCM(playerid,COLOR_YELLOW," Du kannst dich nicht selber bannen!.");
    }return SCM(playerid,COLOR_YELLOW," Dieser Spieler ist nicht Online.");
    }else SCM(playerid,COLOR_GRAD2," ** INFO: Das ist ein Adminbefehl, du bist kein Admin!");
    }
    return 1;
    }

    kommt:


    Code
    SERVER: Unknown Command!


    und bei /admin :


    Spoiler anzeigen
    if (strcmp("/makeadmin", cmdtext, true, 10) == 0) {
    if(PlayerLogged[playerid] == 1) {
    if(IsPlayerAnAdmin(playerid, 2001) || IsPlayerAdmin(playerid)) {
    if(!strlen(tmp)) {
    SCM(playerid, COLOR_GRAD2, " /makeadmin [playerid/Name] [Nummer(0-2003)]");
    return true;
    }
    new para1, level,s[256],string[256];
    tmp = strtok(cmdtext, idx);
    para1 = ReturnUser(tmp);
    level = strval(tmp);
    if(level > 2003 || level < 0) return SCM(playerid, COLOR_GREY, " Geh nicht tiefer als Nummer 0, oder höher als Nummer 2003!");
    switch(level) {
    case 0:{s ="Kein Admin";}
    case 1:{s ="Probe Supporter";}
    case 2:{s ="Supporter";}
    case 3:{s ="Probe Admin";}
    case 1337:{s ="Admin";}
    case 1338:{s ="High Admin";}
    case 2001:{s ="stelv. Projectleitung";}
    case 2003:{s ="Projectleitung";}
    }
    if(PlayerLogged[para1] == 1) {
    if(para1 != INVALID_PLAYER_ID) {
    PlayerInfo[playerid][AdminLevel] = level;
    format(string,sizeof(string),"Du hast %s auf den Admin rank %s gesetzt.",UserName(para1),s);
    SCM(playerid, COLOR_LIGHTRED, string);
    format(string, sizeof(string), "[AdmCmd]: Admin/Supporter %s hat dich auf den Admin Rank %s gesetzt.", UserName(playerid),s);
    SCM(para1, COLOR_LIGHTRED, string);
    return true;
    }return SCM(playerid,COLOR_YELLOW," Du kannst dir nicht selber Admin rechte geben!.");
    }return SCM(playerid,COLOR_YELLOW," Dieser Spieler ist nicht Online.");
    }else SCM(playerid,COLOR_GRAD2," ** INFO: Das ist ein Adminbefehl, du bist kein Admin!");
    } return 1;
    }


    kommt nur:


    Code
    /makeadmin [playerid/Name] [Nummer(0-2003)]


    ich hoffe mir kann jemand helfen
    danke im vorraus


    Gruß Fabi.StaR 8)

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • ////////////////////////////////////////////////////////////////////////////////
    #include <a_samp> //
    #include <dini> //
    #include <color> //
    #include <streamer> //
    #include <md5> //
    #include <utils> //
    #include <gps> //
    ////////////////////////////////////////////////////////////////////////////////

    Mit freundlichen Grüßen,


    Fabi.StaR :love::saint:


  • Versuchs mal mit der banfix.inc
    füge die include unter deinen mit ein und versuchs dann nochmal ;)


    Was hat es mit seinem Kick Ban Befehl zu tun?? das hat nur was mit SentClientMessage also dein BAnfix :|

  • bei mir hats damals auch funktioniert. wenn ich nen befehl eingegeben habe kahm der text ich hätte id sowieso gekickt aber derjenige war noch auf dem server.
    nachdem einfügen der banfix.inc ging es auf einmal ... nen versuch wäre es wert ;)


    Nimmt nur die Zeit weg, schau dir das Include an, hat nur was damit zu tun, das man später /gekickt/gebannt wird damit man die nachricht liest


    #if defined _banfix_included
    #endinput
    #endif
    #define _banfix_included


    native B_Kick(playerid) = Kick;
    native B_Ban(playerid) = Ban;
    native B_BanEx(playerid,const reason[]) = BanEx;


    forward kickplayer(playerid);
    forward banplayer(playerid);
    forward banexplayer(playerid,const reason[]);


    stock _Kick(playerid)
    {
    SetTimerEx("kickplayer",100,0,"d",playerid);
    return 1;
    }


    stock _Ban(playerid)
    {
    SetTimerEx("banplayer",100,0,"d",playerid);
    return 1;
    }


    stock _BanEx(playerid,const reason[])
    {
    SetTimerEx("banexplayer",100,0,"ds",playerid,reason);
    return 1;
    }


    public kickplayer(playerid)
    return B_Kick(playerid);


    public banplayer(playerid)
    return B_Ban(playerid);

    public banexplayer(playerid,const reason[])
    return B_BanEx(playerid,reason);

    #if defined _ALS_Kick
    #undef Kick
    #else
    #define _ALS_Kick
    #endif
    #define Kick _Kick


    #if defined _ALS_Ban
    #undef Ban
    #else
    #define _ALS_Ban
    #endif
    #define Ban _Ban


    #if defined _ALS_BanEx
    #undef BanEx
    #else
    #define _ALS_BanEx
    #endif
    #define BanEx _BanEx

  • Makeadmin:

    if(level > 2003 || level < 0) return SCM(playerid, COLOR_GREY, " Geh nicht tiefer als Nummer 0, oder höher als Nummer 2003!");

    zu

    if(level < 0 || level > 2003) return SCM(playerid, COLOR_GREY, " Geh nicht tiefer als Nummer 0, oder höher als Nummer 2003!");