Explicaзхes -
Gabriel Santana - 20.08.2012
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
Re: Explicaзхes -
Kuddy - 20.08.2012
Variбveis.
https://sampforum.blast.hk/showthread.php?tid=235924
Re: Explicaзхes -
Maklister - 20.08.2012
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 ....
Re: Explicaзхes -
humildadeforever - 20.08.2012
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.
Re: Explicaзхes -
ViniBorn - 20.08.2012
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;
}
Re: Explicaзхes -
Gabriel Santana - 20.08.2012
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.
Re: Explicaзхes -
ViniBorn - 20.08.2012
Ao fim de 'if' nгo se usa ;
Re: Explicaзхes -
Maklister - 20.08.2012
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
Re: Explicaзхes -
humildadeforever - 20.08.2012
Dei uma explicadinha no meu post acima, se servir pra algo eu agradeзo AUAHUAHUA
Re: Explicaзхes -
Gabriel Santana - 20.08.2012
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;
}