[Pedido] daradmin
#1

alguem pode fazer uma base daradmin ? pra eu estudar
Reply
#2

Estб em inglкs, mas e уtimo.
Reply
#3

CZ Faзo da seguinte maneira,

Crio a variavel para todos os players no inicio da GM.
PHP код:
new Admin[MAX_PLAYERS]; 
Com essa variavel vai saber se o player й administrador ou nгo, e posso fazer com ela propria varios cargos.
na public OnPlayerCommandText irei fazer um comando para o rcon pode daradmin e colocar essas variaveis para funcionar o comando:
PHP код:
new cmd[128],
        
tmp[128],
        
idx;
    
cmd strtok(cmdtextidx);
if(
strcmp(cmd,"/daradmin"true)==0)
    {
        if(
IsPlayerAdmin(playerid))
        {
            new 
plidskin;
            
tmp strtok(cmdtextidx);
            if(!
strlen(tmp))return SendClientMessage(playerid0xFF0000AA"[x] Digite: \"/daradmin [id] [Level]\"");
            
plid strval(tmp);
            
tmp strtok(cmdtextidx);
            if(!
strlen(tmp))return SendClientMessage(playerid0xFF0000AA"[x] Digite: \"/daradmin[id] [Level]\"");
            
skin strval(tmp);
            if(
skin>=4)return SendClientMessage(playeridVermelho"[x] O level permitido para administrador й 0 а 3");
            new 
string[248];
            if(
IsPlayerConnected(plid))
            {
                
Admin[plid] = skin;
                if(
skin == 1)
                {
                    
format(stringsizeof(string), "| INFO-SERVER | O Administrador(a) %s (%d) (») Promoveu: %s (%d) para Ajudante (»)"Nome(playerid),playerid,Nome(plid),plid);
                    
SendClientMessageToAll(0x03966AAAstring);
                }
                if(
skin == 2)
                {
                    
format(stringsizeof(string), "| INFO-SERVER | O Administrador(a) %s (%d) (») Promoveu: %s (%d) para Moderador(a) (»)"Nome(playerid),playerid,Nome(plid),plid);
                    
SendClientMessageToAll(0x03966AAAstring);
                }
                if(
skin == 3)
                {
                    
format(stringsizeof(string), "| INFO-SERVER | O Administrador(a) %s (%d) (») Promoveu: %s (%d) para Administrador(a) (»)"Nome(playerid),playerid,Nome(plid),plid);
                    
SendClientMessageToAll(0x03966AAAstring);
                }
                if(
skin == 0)
                {
                    
format(stringsizeof(string), "| INFO-SERVER | O Administrador(a) %s (%d) (») Retirou o Admin do jogador: %s (ID: %d)"Nome(playerid),playerid,Nome(plid),plid);
                    
SendClientMessageToAll(0x03966AAAstring);
                }
                return 
1;
            }else{
                
SendClientMessage(playerid0xFF0000AA"[x] Jogador nгo conectado.");
                return 
1;
            }
        }
    } 
Com esse cmd jб podemos daradmin para os player, agora no final do GM vocк precisa colocar essas funзхes para nгo dar erro:
PHP код:
strtok(const string[], &index)
{
    new 
length strlen(string);
    while ((
index length) && (string[index] <= ' '))
    {
        
index++;
    }
    new 
offset index;
    new 
result[20];
    while ((
index length) && (string[index] > ' ') && ((index offset) < (sizeof(result) - 1)))
    {
        
result[index offset] = string[index];
        
index++;
    }
    
result[index offset] = EOS;
    return 
result;

PHP код:
stock Nome(playerid)
{
    new 
name[24];
    
GetPlayerName(playeridnamesizeof(name));
    return 
name;

Pronto sistema estб funcionando jб, e para fazer um comando baseado no sistema, para ver se o player й admin precisa fazer a verificaзгo de acordo com o comando por exemplo:
Preciso de um comando que funcione para todos da administraзгo
PHP код:
if(Admin[playerid] >= 1)
{
}
//Coloca isso no comando para verificar se й da administraзгo 
Ahh mas preciso de um comando que sу administrador pode fazer, ajudante e moderador nгo pode
PHP код:
if(Admin[playerid] == 3)
{
}
//Coloca isso no comando para verificar se й administrador 
Reply
#4

eu uso zcmd e sscanf man
Reply
#5

Ai й sу vocк fazer um comando zcmd com o parвmetro que voc quer dar ao player, e setando a variavel Admin[playerid] = params[];

Desculpe se falei alguma besteira nn gosto de usar zcmd e sscanf e por isso sei muito pouco
Reply
#6

Fiz um exemplo supondo que seja um sistema cujo nнvel varia de 0 a 5.

PHP код:
CMD:daradmin(playeridparams[]) {
    if(
Admin[playerid] < 5) {
        return 
1;
    }
    new 
targetidlevel;
    if(
sscanf(params"ud"targetidlevel) || targetid == 0xFFFF) {
        return 
1;
    }
    if(!
IsPlayerConnected(targetid)) {
        return 
1;
    }
    if(!(
<= level <= 5)) {
        return 
1;
    }
    
Admin[targetid] = level;
    return 
1;

Reply
#7

Vlw zPain
Reply
#8

PHP код:
CMD:setadmin(playeridparams[])
{
    new 
Levelidplayeraname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], file[155];
     if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"{FF0000}[ERROR] {FFFFFF}YOU DONT HAVE ACESS FOR COMMAND");
    if(
sscanf(params"dd"idplayerLevel)) return SendClientMessage(playerid, -1"[ ERRO] {FF0000}use: /setadmin [playerid] [level 0-8]");
    if(
Level || Level 5) return SendClientMessage(playerid, -1"Escolha um level de 0 a 5");
    
GetPlayerName(playeridanamesizeof(aname));
    
GetPlayerName(idplayerpnamesizeof(pname));
    
format(filesizeof(file), "Contas/%s.ini"aname);
    
DOF2_SetInt(file"Admin"Level);
    
Player[idplayer][Admin] = Level;
    
SendClientMessage(idplayer,-1," The Leader the clan [ SHEEP ] has give clan for you!!");
    return 
1;

comando para admin
PHP код:
CMD:ballas(playeridparams[])
{
    if(
Player[playerid][Admin] < 1) return SendClientMessage(playerid, -1"[ERROR] VOCК NГO TEM ATURORIZAЗГO PARA USAR ESTE COMANDO");
    
SetPlayerPos(playerid,2000.1458,-1115.6583,27.1318);
    return 
1;

@edit
Код:
espero ter ajudado !
Reply
#9

Com nнveis de 0 a 6

PHP код:
COMMAND:daradmin(playeridparams[])
{
    
// Configs da variavel
    
new OtherPlayerLevelMsg[128], Name[24], AdminName[24], OldLevel;
    
// Mostra quem digitou o comandos "para adms"
    
SendAdminText(playerid"/daradm"params);
    
// Verifica se o player esta logado
    
if (APlayerData[playerid][LoggedIn] == true)
    {
        
// Verifica se quem digitou o comando й adm
        
if (APlayerData[playerid][PlayerLevel] >= 5)
        {
            if (
sscanf(params"ui"OtherPlayerLevel)) SendClientMessage(playerid0xFF0000AA"Digite: \"/daradm <Player> <AdminLevel>\"");
            else
            {
                
// Verifica se o player esta on
                
if (IsPlayerConnected(OtherPlayer))
                {
                    
// Obtem o antigo level
                    
OldLevel APlayerData[OtherPlayer][PlayerLevel];
                    
// Obtem o nome do adm que setou o level
                    
GetPlayerName(playeridAdminNamesizeof(AdminName));
                    
// Obtem o nome do jogador
                    
GetPlayerName(OtherPlayerNamesizeof(Name));
                    
// Guarda o Level do Player
                    
APlayerData[OtherPlayer][PlayerLevel] = Level;
                    if (
OldLevel != Level)
                    {
                        
// Verifique se o jogador foi promovido ou rebaixado
                        
if (OldLevel Level)
                            
format(Msg128"{32CD32}%s {FFFFFF}Foi Promovido a {32CD32}%s {FFFFFF}por {32CD32}%s"NameAdminLevelName[Level], AdminName);
                        if (
OldLevel Level)
                            
format(Msg128"{CD0000}%s {FFFFFF}Foi Rebaixado a {CD0000}%s {FFFFFF}por {CD0000}%s"NameAdminLevelName[Level], AdminName);
                        
SendClientMessageToAll(0x00FFFFFFMsg);
                    }
                    else
                        
SendClientMessage(playerid0xFF0000FF"{CD0000}- {FFFFFF}O Level de outro Jogador nao Foi Alterado");
                }
                else
                    
SendClientMessage(playerid0xFF0000FF"{CD0000}- {FFFFFF}O Player nao esta Online");
            }
        }
        else
            return 
0;
    }
    else
        return 
0;
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)