- Introduзгo
Primeiramente,
Pawn й a linguagem,
Pawno й o IDE/Editor de texto padrгo que vem juntamente com o compilador.
Pawn й uma linguagem super simples, imperativa e estruturada, ou seja, vocк deve "dizer" como deve ser feito, por etapas, procedimentos(procedural).
Pawn й uma linguagem de script, ela nгo й compilada para a linguagem de mбquina(0s e 1s), mas sim para bytecode(o que fica em formato
.amx), e esse arquivo й lido/interpretado pela maquina virtual(SA-MP Server).
Quando a maquina virtual й iniciada, ela precisa de um ponto de entrada, onde ela deve comeзar a execuзгo do cуdigo. Й aн que entra o
entry point(
main):
pawn Код:
main()
{
print("Olб Mundo!");
}
A maquina virtual vai procurar por esse ponto de entrada no arquivo .amx e executa-lo primeiramente de tudo.
- Callbacks
A linguagem em si, foi designada para ser implementada em projetos onde se tem a liberdade de criar suas funзхes , normalmente usada para definir eventos, chamados
Callbacks -
Wikipйdia
Nativamente, o SA-MP trabalha com algumas callbacks, usaremos a principal delas como exemplo,
OnPlayerConnect.
pawn Код:
public OnPlayerConnect(playerid)
{
return 1;
}
Mas o que й isso? Quando o jogador se conecta no servidor, a maquina virtual busca por esse trecho de cуdigo, por essa callback, e executa tudo que estб entre as chaves(exceto caso vocк use algum returno em certa parte do cуdigo).
Vocк pode criar suas callbacks personalizadas. Por exemplo:
pawn Код:
forward Oi();
public Oi() return print("Oi");
Certo, agora vocк precisa chamar essa callback em algum ponto, ou seja, "configurar" esse evento.
pawn Код:
public OnPlayerConnect(playerid)
{
Oi();
return 1;
}
Como pode perceber, fazemos chamada a nossa callback personalizada, ou seja, quando o jogador entrar no servidor(
OnPlayerConnect), iremos tambйm fazer chamada a nossa callback.
Vocк pode ver a lista completa de Callbacks neste link:
- Variбveis
Utilizamos da memoria do computador(RAM) para gravar algumas informaзхes e consulta-las posteriormente. A memoria RAM й toda mapeada, ou seja, temos os endereзos(pode-se fazer analogia a uma cidade, ou a quartos de um hotel por exemplo). Ao guardamos informaзгo nessa memoria, precisamos saber onde ela estб, e como podemos fazer isto? Associando seu endereзo a um nome legнvel por nуs humanos, um mnemуnico. Ou seja, quando fazemos chamada a uma variбvel, vocк estб simplesmente consultando aquela porзгo/endereзo da memoria, para obter o valor armazenado na mesma.
Em Pawn, para se declarar uma variбvel, utilizamos a keyword
new.
Vejamos:
Mas o que exatamente й isto? a keyword
new indica a tentativa de alocaзгo de um valor na memoria. O mnemуnico '
Var' vai se associar ao endereзo de memoria, onde iremos armazenar um nъmero, o 5.
Olha, entendendo esses dois assuntos que citei acima, variбveis e callbacks, vocк vai ter meio caminho andado. Tudo que escrevi aqui foi em uma noite de tйdio, logo pode existir erros gramбticais e tentativas falhas de ser o menos teуrico possнvel.
Links ъteis:
Tentei ser o menos teуrico possнvel e usar termos mais simples, portanto nгo vejam esta postagem apenas como uma tentativa de pagar de fodгo e escrever com mil termos.
Nгo existe nada que ensine "letra por letra". Vocк que deve ler o que й possнvel se passar por meio de palavras e compreender isto, ninguйm vai enfiar o conhecimento em sua goela a baixo, portanto, leia e pratique muito, compreenda, busque respostas.
Pronto, sу nгo aprende se nгo quiser.
Ou se tiver perdido o cйrebro por aн.