[ajuda] /ban
#1

Sistema de ban ta banindo todos, tem algo errado com o codigo ?

pawn Код:
if(strcmp(cmd, "/ban", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new playersip[64];
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /ban [playerid/Nome] <motivo>");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if (PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
            {
                if(IsPlayerConnected(giveplayerid))
                {
                    if(giveplayerid != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerIp(giveplayerid,playersip,sizeof(playersip));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                            idx++;
                        }
                        new offset = idx;
                        new result[128];
                        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                        {
                            result[idx - offset] = cmdtext[idx];
                            idx++;
                        }
                        result[idx - offset] = EOS;
                        if(!strlen(result))
                        {
                            SendClientMessage(playerid, COLOR_GRAD2, "USE: /ban [playerid/Nome] [motivo]");
                            return 1;
                        }
                        if(giveplayerid != playerid && Untouchable[giveplayerid]) return SendClientMessage(playerid, COLOR_GREY, "* Vocк nгo pode fazer isto com Este Jogador!");
                        new targetlevel = PlayerInfo[giveplayerid][pAdmin];
                        new playerlevel = PlayerInfo[playerid][pAdmin];
                        if(targetlevel > playerlevel) return SendClientMessage(playerid, COLOR_GREY, "* Vocк nгo pode fazer isso com rank maior que o seu!");
                        new y, m, d;
                        new h,mi,s;
                        getdate(y,m,d);
                        gettime(h,mi,s);
                        format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s Foi Banido Pelo Admin %s Motivo: %s",d,m,y,h,mi,s,giveplayer,sendername, (result));
                        BanLog(string);
                        format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Foi Banido Pelo Admin %s - Motivo: %s",d,m,y,h,mi,s,sendername,(result));
                        AddPunishment(giveplayerid, string);
                        format(string, sizeof(string), "%s (%d), Foi Banido Pelo Administrador %s Por %s", giveplayer, giveplayerid, sendername, (result));
                        SendClientMessageToAll(COLOR_NICERED, string);
                        format(string, sizeof(string), "[ADMIN]: %s Foi Adicionado Na Lista De Bans Por %s", playersip, sendername);
                        SendAdminMessage(COLOR_WHITE, string);
                        format(string, sizeof(string), "Vocк Foi Banido Pelo Admin %s Motivo %s", sendername, (result));
                       
                        SafeSetPlayerPos(giveplayerid,264.6288,77.5742,1001.0391);
                        SafeSetPlayerInterior(giveplayerid, 6);
                        PlayerInfo[giveplayerid][pJailTime] = 300;
                        PlayerInfo[giveplayerid][pJailed] = 1;
                        format(string, sizeof(string), "~r~~h~Ban: ~n~~r~%s",(result));
                        GameTextForPlayer(giveplayerid, string, 6000, 3);
                        PlayerInfo[giveplayerid][pPending] = 0;
                        Ban(giveplayerid);
                        return 1;
                    }
                }
            }
            else
            {
                format(string, sizeof(string), "** %d nгo й um jogador ativo.", giveplayerid);
                SendClientMessage(playerid, COLOR_BLUE, string);
            }
        }
        return 1;
    }
Reply
#2

Dei uma modificada no seu comando, retirando coisas desnecessбrias e que podem ter causado esse bug


Provavelmente se o problema continuar, talvez isso ocorra devido б alguma funзгo que sу o seu GM tem.


pawn Код:
if(strcmp(cmd, "/ban", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new playersip[64];
            new result[256];
            result = strtok(cmdtext, idx);
            if(!strlen(result))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /ban [playerid/Nome] [motivo]");
                return 1;
            }
            new giveplayerid = strval(result);
            result = strtok(cmdtext, idx);
            if(!strlen(result))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /ban [playerid/Nome] [motivo]");
                return 1;
            }
            if (PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
            {
                if(IsPlayerConnected(giveplayerid))
                {
                    if(giveplayerid != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerIp(giveplayerid,playersip,sizeof(playersip));
                        if(giveplayerid != playerid && Untouchable[giveplayerid]) return SendClientMessage(playerid, COLOR_GREY, "* Vocк nгo pode fazer isto com Este Jogador!");
                        new targetlevel = PlayerInfo[giveplayerid][pAdmin];
                        new playerlevel = PlayerInfo[playerid][pAdmin];
                        if(targetlevel > playerlevel) return SendClientMessage(playerid, COLOR_GREY, "* Vocк nгo pode fazer isso com rank maior que o seu!");
                        new y, m, d;
                        new h,mi,s;
                        getdate(y,m,d);
                        gettime(h,mi,s);
                        format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s Foi Banido Pelo Admin %s Motivo: %s",d,m,y,h,mi,s,giveplayer,sendername, (result));
                        BanLog(string);
                        format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Foi Banido Pelo Admin %s - Motivo: %s",d,m,y,h,mi,s,sendername,(result));
                        AddPunishment(giveplayerid, string);
                        format(string, sizeof(string), "%s (%d), Foi Banido Pelo Administrador %s Por %s", giveplayer, giveplayerid, sendername, (result));
                        SendClientMessageToAll(COLOR_NICERED, string);
                        format(string, sizeof(string), "[ADMIN]: %s Foi Adicionado Na Lista De Bans Por %s", playersip, sendername);
                        SendAdminMessage(COLOR_WHITE, string);
                        format(string, sizeof(string), "Vocк Foi Banido Pelo Admin %s Motivo %s", sendername, (result));
                        SafeSetPlayerPos(giveplayerid,264.6288,77.5742,1001.0391);
                        SafeSetPlayerInterior(giveplayerid, 6);
                        PlayerInfo[giveplayerid][pJailTime] = 300;
                        PlayerInfo[giveplayerid][pJailed] = 1;
                        format(string, sizeof(string), "~r~~h~Ban: ~n~~r~%s",(result));
                        GameTextForPlayer(giveplayerid, string, 6000, 3);
                        PlayerInfo[giveplayerid][pPending] = 0;
                        Ban(giveplayerid);
                        return 1;
                    }
                }
            }
            else
            {
                format(string, sizeof(string), "** %d nгo й um jogador ativo.", giveplayerid);
                SendClientMessage(playerid, COLOR_BLUE, string);
            }
        }
        return 1;
    }

Espero ter ajudado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)