Algorнtimos / Lуgica Bбsica -
Spawn* - 07.02.2010
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?
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 ++)
{
}
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:
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 ^^
Re: [TUT] Algorнtimos / Lуgica Bбsica -
Braulio_BcO - 07.02.2010
Bom para iniciante, bem explicadinho!
Re: [TUT] Algorнtimos / Lуgica Bбsica -
gutm4 - 07.02.2010
Nice, Good Work .
Re: [TUT] Algorнtimos / Lуgica Bбsica -
Joaquim_Blakman - 07.02.2010
уtimo, уtimo, уtimo xD
Bom para iniciantes [2] ( como pra mim, eu acho xD )
Re: [TUT] Algorнtimos / Lуgica Bбsica -
[H]unter - 07.02.2010
Muito Bom Mesmo .
..
Re: [TUT] Algorнtimos / Lуgica Bбsica -
Caio_Cartaxo - 08.02.2010
Realmente MUITO BOM
Para iniciantes isso й muito bom.
Ira dar grandes ajudas
Re: [TUT] Algorнtimos / Lуgica Bбsica -
Josma_cmd - 08.02.2010
Se isso e o Basico, como sera o avancado?
cara muito muito bom tutorial, melhor so se tivesse um desse falando sobre dialogs de impttup sabe, igual akeles q o cara digita /skin aparece um dialog pra ele digitar qual skin ele quer
Re: [TUT] Algorнtimos / Lуgica Bбsica -
John_Race - 08.02.2010
Muito bom, deu pra ter uma noзгo.
Re: [TUT] Algorнtimos / Lуgica Bбsica -
Spawn* - 08.02.2010
Fico feliz de saber que gostaram. Em breve estarei postando novos tutoriais ensinando a criar funзхes legais/fundamentais como eu jб havia dito ^^
Re: [TUT] Algorнtimos / Lуgica Bбsica -
Nyafe - 08.02.2010
esta muito interessante esse tutorial, parabens !