[Ajuda] Explicaзхes
#1

Bem, quero aprender mais sobre essa divisгo de levels de admins.
Tou fazendo meu gamemode, falta colocar esses negocios dos [Admins 1/2/3/4/5] e quero saber como colocar.
Tem como alguem mim explicar.

Tipo assim, como fazem.
pawn Код:
if(zAdmin[playerid] == 1 || zAdmin[playerid] == 2 || zAdmin[playerid] == 3 || zAdmin[playerid] == 4 ||
Caso alguem queira explicar mais mim adiciona no MSN.
bielmoura-suporte@hotmail.com.br
Reply
#2

Variбveis.

https://sampforum.blast.hk/showthread.php?tid=235924
Reply
#3

pawn Код:
CMD:leveladmin(playerid)
{
    if(PlayerInfo[playerid][zAdmin] == 0)
    {
        SendClientMessage(playerid, -1, "Voce nao й Admin");    
    }  
    else if(PlayerInfo[playerid][zAdmin] == 1)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 1");    
    }
    else if(PlayerInfo[playerid][zAdmin] == 2)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 2");    
    }
    else if(PlayerInfo[playerid][zAdmin] == 3)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 3");    
    }
    else if(PlayerInfo[playerid][zAdmin] == 4)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 4");    
    }
    else if(PlayerInfo[playerid][zAdmin] == 5)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 5");    
    }
    return 1;
}

// Caso o PlayerInfo nao seja sua variavel troque pela sua ....
Reply
#4

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
pawn Код:
CMD:leveladmin(playerid)
{
    if(PlayerInfo[playerid][zAdmin] == 0)
    {
        SendClientMessage(playerid, -1, "Voce nao й Admin);    
    }  
    else if(PlayerInfo[playerid][zAdmin] == 1)
    {
        SendClientMessage(playerid, -1, "
Voce й Admin Level 1);    
    }
    else if(PlayerInfo[playerid][zAdmin] == 2)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 2);    
    }
    else if(PlayerInfo[playerid][zAdmin] == 3)
    {
        SendClientMessage(playerid, -1, "
Voce й Admin Level 3);    
    }
    else if(PlayerInfo[playerid][zAdmin] == 4)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 4);    
    }
    else if(PlayerInfo[playerid][zAdmin] == 5)
    {
        SendClientMessage(playerid, -1, "
Voce й Admin Level 5);    
    }
    return 1;
}

// Caso o PlayerInfo nao seja sua variavel troque pela sua ....
Olha a falta dos "


Deixa eu ver se consigo te explicar algo, sou horrнvel com explicaзхes, rs.

Entгo, na maioria (ou em todos) dos servidores os administradores sгo divididos por cargos/nнveis/leveis e o cargo de cada jogador fica armazenado numa variбvel. Vamos supor que vocк ganhe o cargo de adm num servidor, o cуdigo vai ser algo como:

pawn Код:
PlayerInfo[giveplayerid][NvlAdm] = nivel;
PlayerInfo = Variбvel + enum que armazena dados dos jogadores
giveplayerid = ID do jogador digitado no comando, no caso serб vocк
NvlAdm = Vai ser o nome dado na enum
nivel = parвmetro digitado no comando (/daradmin [ID] [Nivel])

Se a pessoa que te der o cargo de admin digitar /daradmin Gabriel 5 o
pawn Код:
PlayerInfo[giveplayerid][NvlAdm] = nivel;
Vai ser o mesmo que

pawn Код:
PlayerInfo[giveplayerid][NvlAdm] = 5;
Porйm utilizando da primeira forma й mais fбcil, se nгo vocк teria que utilizar dessa forma:

pawn Код:
if(nivel == 1)
{
  PlayerInfo[giveplayerid][NvlAdm] = 1;
}
else if(nivel == 2)
{
  PlayerInfo[giveplayerid][NvlAdm] = 2;
}
E assim vai indo...

Todo esse cуdigo que coloquei vocк teria que usar algo como:
pawn Код:
enum Jogador // a enum pode armazenar vбrios dados dos jogadores numa variбvel sу
{
   NvlAdm, // armazena o cargo de admin
   Matou, // vai armazenar o tanto de vezes que matou
   Morreu //armazena o tanto de vezes que morreu, etc
};
new PlayerInfo[MAX_PLAYERS][Jogador];
Saindo um pouco de assunto, para usar a Matou e Morreu vocк usa dessa forma (exemplos):
pawn Код:
PlayerInfo[playerid][Matou] ++; //Vai aumentar +1 , se ele tiver matado 5 vai mudar pra 6.
pawn Код:
PlayerInfo[playerid][Morreu] ++; //Vai aumentar  +1, se ele tiver morrido 2 vezes vai mudar pra  3
E o que vocк colocou aн й para verificar se й administrador, vou deixar alguns cуdigos explicados...

pawn Код:
if(PlayerInfo[playerid][NvlAdm] >= 1) // verifica se o jogador й nivel de admin 1 ou maior
pawn Код:
if(PlayerInfo[playerid][NvlAdm] == 5) // verifica se o jogador й admin nivel 5
pawn Код:
if(PlayerInfo[playerid][NvlAdm] > 1) // verifica se o jogador й admin nivel maior que 1
pawn Код:
if(PlayerInfo[playerid][NvlAdm] <= 9) // verifica se o jogador й admin nivel 9 ou menor (9,8,7,6,5,4,3, etc)
pawn Код:
if(PlayerInfo[playerid][NvlAdm] < 11) // verifica se o jogador й admin nivel menor que 11 (10,9,8,7,6,5, etc)

Jб os nнveis de administrador quem decide й vocк. Podendo escolher como exemplo os nнveis 1, 3, 5 e 10, ou 1,2,3,4,5, 10, 20, 70, 1000, etc.

No comando /daradmin para verificar se й o nнvel digitado й um que vocк quer que tenha, vocк faz assim:

pawn Код:
if(nivel == 1 || nivel == 2 || nivel == 10)
{
    //Funcoes
}
else return SendClientMessage(playerid, -1, "Os niveis sгo 1, 2 e 10");
Ou
pawn Код:
switch(nivel)
{
    case 1, 2, 10:
   {
       //funcoes
   }
   default: return SendClientMessage(playerid, -1, "Os niveis sao 1, 2 e 10");
}
Sendo que nivel й o nome dado ao parвmetro, pode ser level, cargo, strval(params), etc.


Nгo dб pra entender direito, mas deve servir pra algo. Qualquer dъvida fala ae.
Reply
#5

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
pawn Код:
CMD:leveladmin(playerid)
{
    if(PlayerInfo[playerid][zAdmin] == 0)
    {
        SendClientMessage(playerid, -1, "Voce nao й Admin);    
    }  
    else if(PlayerInfo[playerid][zAdmin] == 1)
    {
        SendClientMessage(playerid, -1, "
Voce й Admin Level 1);    
    }
    else if(PlayerInfo[playerid][zAdmin] == 2)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 2);    
    }
    else if(PlayerInfo[playerid][zAdmin] == 3)
    {
        SendClientMessage(playerid, -1, "
Voce й Admin Level 3);    
    }
    else if(PlayerInfo[playerid][zAdmin] == 4)
    {
        SendClientMessage(playerid, -1, "Voce й Admin Level 4);    
    }
    else if(PlayerInfo[playerid][zAdmin] == 5)
    {
        SendClientMessage(playerid, -1, "
Voce й Admin Level 5);    
    }
    return 1;
}

// Caso o PlayerInfo nao seja sua variavel troque pela sua ....
Vocк esqueceu de fechar as aspas.

Assim й muito mais fбcil :
pawn Код:
CMD:leveladmin(playerid)
{

    new VBString[24];
    format(VBString, 24, "Vocк й Admin level %d.", zAdmin[playerid]);
    SendClientMessage(playerid, -1, VBString);
    return true;
}
Reply
#6

Pode mim dizer oquк tem de errado aqui?

pawn Код:
CMD:pm(playerid, params[])
{
    new str[256];
    new id, texto[50];
    if(sscanf(params, "us", id, texto)); return SendClientMessage(playerid, AMARELO, "SERVER: Uso correto do comando: /pm [ID] [Mensagem].");
    format(str, sizeof(str),"** Mensagem recebida de %s : %s",Nome(playerid), texto);
    SendClientMessage(id, -1 , str);
    format(str, sizeof(str),"** Mensagem enviada para %s: %s", Nome(id), texto);
    SendClientMessage(playerid, AMARELO, str);
    return 1;
}
Erros:
pawn Код:
C:\Users\Gabriel\Desktop\samp03esvr_win32\gamemodes\aprendendo.pwn(1135) : error 036: empty statement
C:\Users\Gabriel\Desktop\samp03esvr_win32\gamemodes\aprendendo.pwn(1136) : warning 225: unreachable code
Linhas:

1135
pawn Код:
if(sscanf(params, "us", id, texto)); return SendClientMessage(playerid, AMARELO, "SERVER: Uso correto do comando: /pm [ID] [Mensagem].");
1136
pawn Код:
format(str, sizeof(str),"** Mensagem recebida de %s : %s",Nome(playerid), texto);
Vou estudar mais sobre variaveis.
Reply
#7

Ao fim de 'if' nгo se usa ;
Reply
#8

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Vocк esqueceu de fechar as aspas.

Assim й muito mais fбcil :
pawn Код:
CMD:leveladmin(playerid)
{

    new VBString[24];
    format(VBString, 24, "Vocк й Admin level %d.", zAdmin[playerid]);
    SendClientMessage(playerid, -1, VBString);
    return true;
}
Mals realmente esqueci de Fechar os " Obrigado por ter chamado atenзгo

e sim realmente e mais facil assim e que quando ele postou eu nao tinha visto a variavel dele depois que ele deu edit e postou dai nao tinha a variavel pra fazer a string
Reply
#9

Dei uma explicadinha no meu post acima, se servir pra algo eu agradeзo AUAHUAHUA
Reply
#10

Tipo, o comando /asay.
' Se eu quiser colocar para adiministradores lvl 3, como faзo nesse comando? '

pawn Код:
CMD:asay(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, VERMELHO, "ERRO: Vocк nгo й um adiministrador para usar esse comando.");
    if(isnull(params)) return SendClientMessage(playerid, AMARELO, "SERVER: Uso do comando correto: /asay [Texto]");
    new aName[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, aName, MAX_PLAYER_NAME);
    format(string, sizeof(string), "[GLOBAL ADIMINISTRADOR] %s: %s",aName,params);
    SendClientMessageToAll(ASAYADMIN,string);

    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)