16.01.2011, 20:28
(
Последний раз редактировалось zSuYaNw; 17.06.2016 в 01:17.
)
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;
}
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;
}
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!");
pawn Код:
new variavel;
for(new i; i < MAX_PLAYERS; ++i)
{
if(IsPlayerConnected(i))
{
variavel += 1;
}
}
printf("Temos %d jogadores conectados!");
PHP код:
new variavel;
for(new i; i < MAX_PLAYERS; ++i)
{
if(IsPlayerConnected(i))
{
if(IsPlayerAdmin(i))
{
variavel += 1;
}
}
}
printf("Temos %d administradores conectados!");
Operadores Lуgicos:
- +
- Adiзгo.
Exemplo:
pawn Код:Dinheirod[playerid] += GetPlayerMoney(playerid);
- Adiзгo.
- -
- Subtraзгo
Exemplo:
pawn Код:Dineheiro[playerid] -= GetPlayerMoney(playerid);
- Subtraзгo
- *
- Multiplicaзгo.
Exemplo:
pawn Код:Dinheiro[playerid] * GetPlayerMoney(playerid);
- Multiplicaзгo.
- /
- Divisгo.
Exemplo:
pawn Код:Dinheiro[playerid] / GetPlayerMoney(playerid);
- Divisгo.
- >
- Maior que.
Exemplo:
pawn Код:if(GetPlayerMone(playerid) > 10) return 0;
- Maior que.
- <
- Menor que.
Exemplo:
pawn Код:if(GetPlayerMoney(playerid) < 10) return true;
- Menor que.
- ==
- Igual.
Exemplo:
pawn Код:if(GetPlayerMoneyplayerid) == 10) return true;
- Igual.
- !=
- Diferente.
Exemplo:
pawn Код:if(GetPlayerMoney(playerid) != 1) return false
- Diferente.
- ||
- Ou
Exemplo:
pawn Код:if(GetPlayerMoney(playerid) == 10 || GetPlayerMoney(playerid) == 20)
- Ou
- &&
- E
Exemplo:
pawn Код:if(GetPlayerMoney(playerid) && IsPlayerConnected(playerid))
- E
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)
Ou Seja
pawn Код:
if(Minhau[playerid] /* Operador */ /*Numero*/
Isto й igual a o tutorial a cima ( Validando Varбveis ).
Vamos Usar Esta Varбvel para o tutorial: "new bool:lasanha;"
Primeiro exemplo:
pawn Код:
if(lasanha == true)
if(lasanha /* Operador */ true) < Se lasanha for SIM
Outro
pawn Код:
if(lasanha == false)
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];
pawn Код:
if(Player[playerid][Masho] == 110)
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.