Validando Funзхes !!!, Principal para prender Operadores. -
zSuYaNw - 16.01.2011
Validando funзхes
Introduзгo:
Este tutorial fala sobre a importвncia de vocк validar seu script, limitar o uso de tal comando ou tal variбvel. mas vocк sabe o que й validaзгo? Validaзгo em nosso contexto de programaзгo, й quando limitamos uma funзгo para determinado jogador ou grupo de jogadores. vejamos um exemplo: Temos o comando /banir, este comando tem a principal funзгo de banir algum jogador ele bane qualquer jogador mas nгo podemos deixar qualquer jogador digitar esse comando, temos que criar uma validaзгo que limita para apenas administradores logados na RCON que possam executar este comando. Outro exemplo de validaзгo й quando temos um comando para reparar nosso veнculo /reparar. Tecnicamente a principal funзгo dele й reparar nosso veнculo mas sem a validaзгo poderб acarretar em vбrios bugs.
Agora que falei o bбsico sobre validaзгo, iremos iniciar nosso tutorial. Lembre-se esse tutoral nгo se aplica em apenas PAWN! Ele aplica em todas as linguagens que contйm interaзгo com usuбrio.
Vamos iniciar nosso tutorial com uma validaзгo clбssica, que verifica se determinado jogador й administrador:
PHP код:
if(!strcmp(cmdtext, "/comandos", true)){
// bla bla bla
// comandos de admin
return 1;
}
Como vocк pode notar, no comando acima ele nгo faz essa verificaзгo entгo qualquer jogador poderб acessar este comando sem determinados priviйgios.. Vamos mostrar o comando com uma limitaзгo para que apenas administradores logados na RCON podem ver o conteъdo desse comando:
PHP код:
if(!strcmp(cmdtext, "/comandos", true)){
if(IsPlayerAdmin(playerid)){
SendClientMessage(playerid, -1, "Erro: Vocк nгo pode ver esse comando!");
return 1;
}
// bla bla bla
// comandos de admin
return 1;
}
Ao adicionar a condiзгo IsPlayerAdmin, limitamos o comando para apenas administradores.
Bom agora vamos outro exemplo, vamos listar a quantidade de jogadores e para isso precisaremos usar um loop, se vocк nгo sabe oque й loop podes
clicar aqui que serб direcionado a pбgina sobre o assunto. Vamos listar a quantidade de jogadores online:
PHP код:
new variavel;
for(new i; i < MAX_PLAYERS; ++i)
{
variavel += 1;
}
printf("Temos %d jogadores conectados!");
Como vocк pode notar, esse pequeno algorнtimo tem um pequeno erro de validaзгo! Ele percorre por todos os jogadores porйm nгo verifica se cada jogador estб online! Vou postar agora um algorнtimo parecido:
pawn Код:
new variavel;
for(new i; i < MAX_PLAYERS; ++i)
{
if(IsPlayerConnected(i))
{
variavel += 1;
}
}
printf("Temos %d jogadores conectados!");
Neste exemplo, vocк notou que adicionei a condicional que verifica se o jogador em estб online, mas podemos ir mais alйm ainda!
PHP код:
new variavel;
for(new i; i < MAX_PLAYERS; ++i)
{
if(IsPlayerConnected(i))
{
if(IsPlayerAdmin(i))
{
variavel += 1;
}
}
}
printf("Temos %d administradores conectados!");
Neste cуdigo acima, estou limitando para apenas jogadores que sгo admin online! E como vocк pode notar em alguns GameModes ou FilterScripts eles nгo contйm somente funзхes que fazem verificaзхes. Eles tambйm contйm alguns operadores que podemos utilizar para fazer uma validaзгo em nosso cуdigo e esses operadores se chamam de Operadores Lуgicos!
Operadores Lуgicos:- +
- Adiзгo.
Exemplo:
pawn Код:
Dinheirod[playerid] += GetPlayerMoney(playerid);
- -
- Subtraзгo
Exemplo:
pawn Код:
Dineheiro[playerid] -= GetPlayerMoney(playerid);
- *
- Multiplicaзгo.
Exemplo:
pawn Код:
Dinheiro[playerid] * GetPlayerMoney(playerid);
- /
- Divisгo.
Exemplo:
pawn Код:
Dinheiro[playerid] / GetPlayerMoney(playerid);
- >
- Maior que.
Exemplo:
pawn Код:
if(GetPlayerMone(playerid) > 10) return 0;
- <
- Menor que.
Exemplo:
pawn Код:
if(GetPlayerMoney(playerid) < 10) return true;
- ==
- Igual.
Exemplo:
pawn Код:
if(GetPlayerMoneyplayerid) == 10) return true;
- !=
- Diferente.
Exemplo:
pawn Код:
if(GetPlayerMoney(playerid) != 1) return false
- ||
- Ou
Exemplo:
pawn Код:
if(GetPlayerMoney(playerid) == 10 || GetPlayerMoney(playerid) == 20)
- &&
- E
Exemplo:
pawn Код:
if(GetPlayerMoney(playerid) && IsPlayerConnected(playerid))
Validando variбveis:
Agora que aprendemos o bбsico sobre validaзгo de funзгo, vamos aprender a validar variбveis!
No topo do nosso script,
PHP код:
new Minhau[MAX_PLAYERS];
pawn Код:
if(Minhau[playerid] == 10)
if(Minhau[playerid] == 10) => Se(Minhau[playerid] For Igual a 10. Simples, Nй?
Ou Seja
pawn Код:
if(Minhau[playerid] /* Operador */ /*Numero*/
Validando Variбveis com Tйcnicas de Borleana
Isto й igual a o tutorial a cima ( Validando Varбveis ).
Vamos Usar Esta Varбvel para o tutorial: "new bool:lasanha;"
Primeiro exemplo:
Explicaзгo:
if(lasanha /* Operador */ true) < Se lasanha for SIM
Outro
Explicaзгo:
if(lasanha /*Operador */ false) < Se Lasanha for NВO
[i]
Nota:As tйcinicas de borleana sгo apenas TRUE e FALSE, nгo permitindo nъmeros.
Validaзгo entre Nъmeros & Enumeradores.
Nesta parte do tutorial vamo usar esta variбvel como exemplo:
pawn Код:
enum Info
{
Masho,
Lindu,
OI
}
new Player[MAX_PLAYERS][Info];
Primeiro Exemplo:
pawn Код:
if(Player[playerid][Masho] == 110)
Explicando:
if(Player[playerid][Masho] /*Operador*/ 110) < SE Player(var), Player(playerid), Masho(enumerador) for 110.
Crйditos
[FeK]Garfield
[FeK]Squad
Por favor, nгo poste em outros locais ou em qualquer tipo de comunicaзгo. Obrigado.
Re: Validando Funзхes !!!, Principal para prender Operadores. -
[FeK]Knife - 16.01.2011
Bom Tutorial Parabйns !
@OFF
Carai eu ia fazer um tutorial desse agorinha ._.
Re: Validando Funзхes !!!, Principal para prender Operadores. -
[Ips]Guh - 16.01.2011
Hmmmm Parabens,Bem Explicativo...
Re: Validando Funзхes !!!, Principal para prender Operadores. -
LuaN_ - 16.01.2011
Legal Garfield, bem explicadinho e tudo..
Parabйns.
Re: Validando Funзхes !!!, Principal para prender Operadores. -
jonas_gabriel - 16.01.2011
MIAUUUUU
Boa meu gato gordo zuera bom para novatos
Re: Validando Funзхes !!!, Principal para prender Operadores. -
Xapita_Halls - 16.01.2011
Muito legal
Re: Validando Funзхes !!!, Principal para prender Operadores. -
DeNeR - 16.01.2011
muito bom, bem explicado.
Parabйns.
Re: Validando Funзхes !!!, Principal para prender Operadores. -
TiagoPS - 16.01.2011
Que gatinho paciencioso voЗe hein
parabens ta de parabens
bem explicado e explicativo LOL
Re: Validando Funзхes !!!, Principal para prender Operadores. -
frenetico - 17.01.2011
Legal gato ,super bem explicado
Re: Validando Funзхes !!!, Principal para prender Operadores. -
Trinix_PoS [Bizu] - 17.01.2011
Good Job / Bom Trabalho