[Tutorial] Algorнtimos / Lуgica Bбsica
#1

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 ^^
Reply
#2

Bom para iniciante, bem explicadinho!
Reply
#3

Nice, Good Work .
Reply
#4

уtimo, уtimo, уtimo xD

Bom para iniciantes [2] ( como pra mim, eu acho xD )

Reply
#5

Muito Bom Mesmo .

..
Reply
#6

Realmente MUITO BOM

Para iniciantes isso й muito bom.

Ira dar grandes ajudas
Reply
#7

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
Reply
#8

Muito bom, deu pra ter uma noзгo.
Reply
#9

Fico feliz de saber que gostaram. Em breve estarei postando novos tutoriais ensinando a criar funзхes legais/fundamentais como eu jб havia dito ^^
Reply
#10

esta muito interessante esse tutorial, parabens !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)