Un Comando
#1

Hola amigos!!
Les queria pedir ayuda para Modificar 2 comandos... /kick y /ban xD!
Lo que quiero es que, Un Admin lvl 1 al 4 no puedo banear ni kickear al admin 1337 :S pero el adm 1337 puede kickearlos y banearlos.. se puede?? ayudenme xD!
Aqui les dejo los comandos:

pawn Код:
//--------------------------------------[Ban]----------------------------------------------------
    if(strcmp(cmd, "/ban", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
        tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /ban [playerid/PartOfName] [reason]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if (PlayerInfo[playerid][pAdmin] >= 1)
            {
              if(IsPlayerConnected(giveplayerid))
              {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                      GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                            idx++;
                        }
                        new offset = idx;
                        new result[64];
                        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, "USAGE: /ban [playerid/PartOfName] [reason]");
                            return 1;
                        }
                        new year, month,day;
                        getdate(year, month, day);
                        format(string, sizeof(string), "AdmCmd: %s ha sido baneado por %s, razon: %s ", giveplayer, sendername, (result));
                        BanLog(string);
                        format(string, sizeof(string), "AdmCmd: %s ha sido baneado por %s, razon: %s", giveplayer, sendername, (result));
                        SendClientMessageToAll(COLOR_LIGHTRED, string);
                        PlayerInfo[giveplayerid][pAdmin] = PlayerInfo[giveplayerid][pLevel];
                        PlayerInfo[giveplayerid][pLevel] = -999;
                        Ban(giveplayerid);
                        return 1;
                    }
                }//not connected
            }
            else
            {
                format(string, sizeof(string), "  %d is not an active player.", giveplayerid);
                SendClientMessage(playerid, COLOR_GRAD1, string);
            }
        }
        return 1;
    }

if(strcmp(cmd, "/kick", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
        tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USO: /kick [IdJugador/ParteDelNombre] [razon]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if (PlayerInfo[playerid][pAdmin] >= 1)
            {
                if(IsPlayerConnected(giveplayerid))
                {
                  if(giveplayerid != INVALID_PLAYER_ID)
                  {
                      GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                            idx++;
                        }
                        new offset = idx;
                        new result[64];
                        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, "USO: /kick [IdJugador/ParteDelNombre] [reason]");
                            return 1;
                        }
                        new year, month,day;
                        getdate(year, month, day);
                        format(string, sizeof(string), "AdminCmd: %s ha sido expulsado por %s, razon: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
                        format(string, sizeof(string), "AdmCmd: %s ha sido expulsado por %s, razon: %s", giveplayer, sendername, (result));
                        SendClientMessageToAll(COLOR_LIGHTRED, string);
                        KickLog(string);
                        TogglePlayerControllable(giveplayerid,0);
                        Kick(giveplayerid);
                        return 1;
                    }
                }
            }
            else
            {
                format(string, sizeof(string), "  %d no esta conectado.", giveplayerid);
                SendClientMessage(playerid, COLOR_GRAD1, string);
            }
        }
        return 1;
    }
Reply
#2

eso lo vi en un gm de rol aki te pongo el codigo ahi es de ti para ver como lo acomodas xD ya qe no se mucho jeje

pawn Код:
if(strcmp(cmd, "/ban", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
        tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /ban [playerid/PartOfName] [razon]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
                        if(PlayerInfo[giveplayerid][pAdmin] > 1337)
            {
                SendClientMessage(playerid, COLOR_GRAD2, "No Puedes Banear A Un Admin LVL1338");
                SendClientMessageToAll(COLOR_LIGHTRED, "AdmCmd: Has Sido Baneado Automaticamente Por Intentar Banear A Un Adm LVL1338!");
                Ban(playerid);
                return 1;
            }
            if (PlayerInfo[playerid][pAdmin] >= 1)
            {
              if(IsPlayerConnected(giveplayerid))
              {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                      GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                            idx++;
                        }
                        new offset = idx;
                        new result[64];
                        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, "USAGE: /ban [playerid/PartOfName] [reason]");
                            return 1;
                        }
                        new year, month,day;
                        getdate(year, month, day);
                        format(string, sizeof(string), "AdmCmd: %s A sido baneado por %s, razon: %s ", giveplayer, sendername, (result));
                        BanLog(string);
                        format(string, sizeof(string), "AdmCmd: %s A sido baneado por %s, razon: %s", giveplayer, sendername, (result));
                        SendClientMessageToAll(COLOR_LIGHTRED, string);
                        PlayerInfo[giveplayerid][pAdmin] = PlayerInfo[giveplayerid][pLevel];
                        PlayerInfo[giveplayerid][pLevel] = -999;
                        Ban(giveplayerid);
                        return 1;
                    }
                }//not connected
            }
            else
            {
                format(string, sizeof(string), "  %d is not an active player.", giveplayerid);
                SendClientMessage(playerid, COLOR_GRAD1, string);
            }
        }
        return 1;
    }
y aca el Kick


pawn Код:
if(strcmp(cmd, "/kick", true) == 0)
    {
      if(IsPlayerConnected(playerid))
      {
        tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USO: /kick [IdJugador/ParteDelNombre] [razon]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(PlayerInfo[giveplayerid][pAdmin] > 1337)
            {
                SendClientMessage(playerid, COLOR_GRAD2, "No Puedes Kickear A Un Admin LVL1338!");
                SendClientMessageToAll(COLOR_LIGHTRED, "AdmCmd: Kickeado Automaticamente Por Intentar Banear A Un Adm LVL1338");
                Ban(playerid);
                return 1;
            }
            if (PlayerInfo[playerid][pAdmin] >= 1)
            {
                if(IsPlayerConnected(giveplayerid))
                {
                  if(giveplayerid != INVALID_PLAYER_ID)
                  {
                      GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                            idx++;
                        }
                        new offset = idx;
                        new result[64];
                        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, "USO: /kick [IdJugador/ParteDelNombre] [reason]");
                            return 1;
                        }
                        new year, month,day;
                        getdate(year, month, day);
                        format(string, sizeof(string), "AdminCmd: %s A sido expulsado por %s, razon: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
                        format(string, sizeof(string), "AdmCmd: %s A sido expulsado por %s, razon: %s", giveplayer, sendername, (result));
                        SendClientMessageToAll(COLOR_LIGHTRED, string);
                        KickLog(string);
                        TogglePlayerControllable(giveplayerid,0);
                        Kick(giveplayerid);
                        return 1;
                    }
                }
            }
            else
            {
                format(string, sizeof(string), "  %d no esta conectado.", giveplayerid);
                SendClientMessage(playerid, COLOR_GRAD1, string);
            }
        }
        return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)