07.02.2010, 22:11
(
Последний раз редактировалось Lуs; 17.05.2015 в 01:12.
)
Bom, qualquer um que possui um conhecimento um pouco superior, sabe que й fundamental conhecer os algorнtimos da linguagem com qual trabalha para que o seu conhecimento vб alйm e evolua cada dia mais. Abaixo vou deichar os algorнtimos que sгo utilizados em quase 100% das linguagens derivadas de C/C++ e que irб ajudar bastante a galerinha iniciante aн :P
+ > Executa como Adiзгo.
- > Executa como Subtraзгo.
* > Executa como Multiplicaзгo.
/ > Executa como Divisгo.
> > Executa como Maior que.
< > Executa como Menor que.
= > Executa como Igual.
!= > Executa como Diferente.
Listei aqui os principais utilizados no Pawn. Os demais existentes nгo sгo necessбrios, jб que sгo para funзхes realmente complexas, o que praticamente nгo й utilizado no SAMP.
TUTORIAL
Como eu somo 2 valores?
Como eu subtraio 2 valores?
Como eu multiplico 2 valores?
Como eu divido 2 valores?
Como eu verifico se um valor й maior que o outro?
Como eu verifico se um valor й menor que o outro?
// Entendendo:
Quando feito a checagem TicktPrice < Grana[playerid] vocк estб verificando se o valor do Tickt й inferior ao dinheiro atual do jogador, que em nosso caso consideramos como 1000. Entгo se considerarmos que o dinheiro do jogador й 1000 e o valor do Ticket й 500, no script o If terб concordвncia e a execuзгo seguirб em frente. Caso contrбrio ele irб continuar a execuзгo depois da chave ( } ) onde o If й finalizado.
Agora vamos imaginar que a funзгo estб assim:
Consideramos agora que o preзo do Ticket й de $1000 e o dinheiro que o jogador pussui em mгos й $999. O If serб executado mas nгo obterб concordвncia, pois estб sendo verificado se o preзo do Ticket (1000) й menor ou igual que a quantia em dinheiro que o jogador tem. Como ele possui $999 nгo hб sucesso na concordвncia. Para que haja, й necessбrio que o jogador tenha em mгos uma quantia equivalente a $1000 ou mais (daн vem o "menor ou igual").
Como eu igualo duas variбveis?
// Entendendo:
Acabamos de criar a variбvel simples chamada MinhaIdade. Depois disso ela foi igualada com a outra variбvel simples jб criada chamada SuaIdade. Sendo assim, considerando que a variбvel MinhaIdade tivesse valor 0 e a SuaIdade tivesse valor de 5, ambas variбveis teriam o mesmo valor depois da igualaзгo (5).
>> Em caso de Ifs:
Para utilizar a igualaзгo em um If, ou melhor, a checagem de igualaзгo, usa-se 2 sнmbolos, assim:
Como verifico a diferenзa entre 2 valores?
// Entendendo:
Acabamos de criar a variбvel simples chamada MinhaIdade. Depois disso verifiquemos atravйs de um If a outra variбvel simples jб criada chamada SuaIdade. Sendo assim, considerando que a variбvel MinhaIdade tivesse valor 0 e a SuaIdade tivesse valor de 5, as mesmas nгo teriam o mesmo valor, o If nao obteria concordвncia e a execuзгo do cуdigo continuaria depois da chave ({) onde ele й finalizado.
SESSГO 02
Agora vou ensinar algo um pouco mais complicado, um Loop:
Criamos aqui o nosso Loop. Na primeira parte (new Lp = 0;) definimos a nossa variбvel que serб utilizada no Loop e setamos o seu valor para 0, para evitar futuros bugs (as variбveis por padrгo quando criadas sгo automaticamente definidas para valor 0 (nulo), mas como eu disse: "para evitar futuros bugs" estaremos setando-a para 0 novamente).
Na segunda parte (Lp < 100;) estamos definindo que o Loop serб executado atй que a variбvel Lp tenha valor 99, ou seja: menor que 100.
E na terceira parte, por fim, estamos definindo que a variбvel Lp terб seu valor adicionado de 1 (uma) unidade de valor, cada vez que o Loop for executado (e assim ter seu valor aumentando atй que chegue em 99, aonde a funзгo "Lp < 100;" coordena).
Agora vamos embutir esse Loop em uma funзгo simples, que tem como objetivo verificar por intermйdio de uma array (array й qualquer variбvel que possua 2 ou mais valores ao mesmo tempo) se a arma que um jogador tem em mгos, caso ela seja definida como "proibida" ele serб Kickado:
// Entendendo:
Utilizamos o Loop para verificar todas as armas listadas na array ArmasProibidas. Na definiзгo onde define-se o tamanho do Loop, isto й, quantas vezes ele serб executada coloquemos sizeof(ArmasProibidas) para que assim o compilador substitua isso pelo tamanho da array, neste caso, 2.
Depois disso utilizemos a funзгo GetPlayerWeapon para verificar se a arma que aquele jogador tinha em mгos era um das quais estavam presentes na array. Caso esse If obtenha concordвncia o jogador serб automaticamente Kickado.
Dъvidas e Comentбrios sгo bem vindos
OBS: Em breve irei adicionando outras funзхes legais/fundamentais ^^
+ > Executa como Adiзгo.
- > Executa como Subtraзгo.
* > Executa como Multiplicaзгo.
/ > Executa como Divisгo.
> > Executa como Maior que.
< > Executa como Menor que.
= > Executa como Igual.
!= > Executa como Diferente.
Listei aqui os principais utilizados no Pawn. Os demais existentes nгo sгo necessбrios, jб que sгo para funзхes realmente complexas, o que praticamente nгo й utilizado no SAMP.
TUTORIAL
Como eu somo 2 valores?
pawn Код:
format(string, 128, "Esse jogador executou o OnPlayerDeath %d vezes.", (Kills[playerid] + Deaths[playerid]));
SendClientMessage(playerid, 0xFFFFFFFF, string);
Como eu subtraio 2 valores?
pawn Код:
format(string, 128, "Esse jogador tem uma relaзгo de %d Kills/Deaths.", (Kills[playerid] - Deaths[playerid]));
SendClientMessage(playerid, 0xFFFFFFFF, string);
Como eu multiplico 2 valores?
pawn Код:
format(string, 128, "Esse jogador gastou $%d comprando Tickts.", (TicktsPrice * Tickts[playerid]));
SendClientMessage(playerid, 0xFFFFFFFF, string);
Como eu divido 2 valores?
pawn Код:
format(string, 128, "Com o dinheiro que tem em mгos, vocк pode comprar %d Tickts.", (Money[playerid] / TicktsPrice));
SendClientMessage(playerid, 0xFFFFFFFF, string);
Como eu verifico se um valor й maior que o outro?
pawn Код:
if(TicktPrice > Grana[playerid])
{
SendClientMessage(playerid, 0xFFFFFFFF, "Vocк nгo possui dinheiro suficiente.");
return 1;
}
Como eu verifico se um valor й menor que o outro?
pawn Код:
if(TicktPrice < Grana[playerid])
{
SendClientMessage(playerid, 0xFFFFFFFF, "Vocк tem dinheiro para comprar e ainda sobra um trocado para um doce ^^");
return 1;
}
// Entendendo:
Quando feito a checagem TicktPrice < Grana[playerid] vocк estб verificando se o valor do Tickt й inferior ao dinheiro atual do jogador, que em nosso caso consideramos como 1000. Entгo se considerarmos que o dinheiro do jogador й 1000 e o valor do Ticket й 500, no script o If terб concordвncia e a execuзгo seguirб em frente. Caso contrбrio ele irб continuar a execuзгo depois da chave ( } ) onde o If й finalizado.
Agora vamos imaginar que a funзгo estб assim:
pawn Код:
if(TicktPrice <= Grana[playerid])
{
SendClientMessage(playerid, 0xFFFFFFFF, "Vocк tem dinheiro para comprar e ainda sobra um trocado para um doce ^^");
return 1;
}
Consideramos agora que o preзo do Ticket й de $1000 e o dinheiro que o jogador pussui em mгos й $999. O If serб executado mas nгo obterб concordвncia, pois estб sendo verificado se o preзo do Ticket (1000) й menor ou igual que a quantia em dinheiro que o jogador tem. Como ele possui $999 nгo hб sucesso na concordвncia. Para que haja, й necessбrio que o jogador tenha em mгos uma quantia equivalente a $1000 ou mais (daн vem o "menor ou igual").
Como eu igualo duas variбveis?
pawn Код:
new MinhaIdade;
MinhaIdade = SuaIdade;
// Entendendo:
Acabamos de criar a variбvel simples chamada MinhaIdade. Depois disso ela foi igualada com a outra variбvel simples jб criada chamada SuaIdade. Sendo assim, considerando que a variбvel MinhaIdade tivesse valor 0 e a SuaIdade tivesse valor de 5, ambas variбveis teriam o mesmo valor depois da igualaзгo (5).
>> Em caso de Ifs:
Para utilizar a igualaзгo em um If, ou melhor, a checagem de igualaзгo, usa-se 2 sнmbolos, assim:
pawn Код:
if(MinhaIdade == SuaIdade)
{
printf("Somos da mesma idade ^^");
}
Como verifico a diferenзa entre 2 valores?
pawn Код:
new MinhaIdade;
if(MinhaIdade != SuaIdade)
{
printf("Sua idade й diferente da minha ^^");
}
// Entendendo:
Acabamos de criar a variбvel simples chamada MinhaIdade. Depois disso verifiquemos atravйs de um If a outra variбvel simples jб criada chamada SuaIdade. Sendo assim, considerando que a variбvel MinhaIdade tivesse valor 0 e a SuaIdade tivesse valor de 5, as mesmas nгo teriam o mesmo valor, o If nao obteria concordвncia e a execuзгo do cуdigo continuaria depois da chave ({) onde ele й finalizado.
SESSГO 02
Agora vou ensinar algo um pouco mais complicado, um Loop:
pawn Код:
for(new Lp = 0; Lp < 100; Lp ++)
{
}
Na segunda parte (Lp < 100;) estamos definindo que o Loop serб executado atй que a variбvel Lp tenha valor 99, ou seja: menor que 100.
E na terceira parte, por fim, estamos definindo que a variбvel Lp terб seu valor adicionado de 1 (uma) unidade de valor, cada vez que o Loop for executado (e assim ter seu valor aumentando atй que chegue em 99, aonde a funзгo "Lp < 100;" coordena).
Agora vamos embutir esse Loop em uma funзгo simples, que tem como objetivo verificar por intermйdio de uma array (array й qualquer variбvel que possua 2 ou mais valores ao mesmo tempo) se a arma que um jogador tem em mгos, caso ela seja definida como "proibida" ele serб Kickado:
pawn Код:
new ArmasProibidas[2] = {
36,
38
};
for(new Lp = 0; Lp < sizeof(ArmasProibidas); Lp ++)
{
if(GetPlayerWeapon(playerid) == ArmasProibidas[Lp])
{
Kick(playerid);
}
}
// Entendendo:
Utilizamos o Loop para verificar todas as armas listadas na array ArmasProibidas. Na definiзгo onde define-se o tamanho do Loop, isto й, quantas vezes ele serб executada coloquemos sizeof(ArmasProibidas) para que assim o compilador substitua isso pelo tamanho da array, neste caso, 2.
Depois disso utilizemos a funзгo GetPlayerWeapon para verificar se a arma que aquele jogador tinha em mгos era um das quais estavam presentes na array. Caso esse If obtenha concordвncia o jogador serб automaticamente Kickado.
Dъvidas e Comentбrios sгo bem vindos
OBS: Em breve irei adicionando outras funзхes legais/fundamentais ^^