Portal SAMP
[Tutorial] Guia básico de programação em PAWNO para SA:MP - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7)
+--- Tópico: [Tutorial] Guia básico de programação em PAWNO para SA:MP (/showthread.php?tid=3406)



Guia básico de programação em PAWNO para SA:MP - strelo - 09/03/2023

Olá! Se você está procurando informações sobre programação de scripts em PAWNO para SA:MP, está no lugar certo. Neste guia, vou explicar os conceitos básicos de programação em PAWNO e fornecer exemplos de código para ajudá-lo a começar.

O que é PAWNO? 

PAWNO é uma linguagem de programação usada para criar scripts para o SA:MP, um mod para o jogo Grand Theft Auto: San Andreas. Com PAWNO, você pode criar scripts personalizados que adicionam novos recursos e funcionalidades ao jogo. É uma linguagem de programação fácil de aprender, especialmente se você já tem experiência com outras linguagens de programação, como C ou C ++.

Configurando o ambiente de desenvolvimento

Conceitos básicos de programação em PAWNO Agora que você configurou o ambiente de desenvolvimento, é hora de começar a aprender os conceitos básicos de programação em PAWNO.

 Antes de começar a programar em PAWNO, você precisa configurar o ambiente de desenvolvimento. Você precisará de um editor de texto para escrever seu código, como o Notepad ++ ou o Sublime Text. Você também precisará do cliente SA:MP para testar seus scripts. Você pode baixar o cliente SA:MP no site oficial do SA:MP.

Variáveis

 Uma variável é um espaço na memória do computador que é usado para armazenar dados. Em PAWNO, você precisa declarar as variáveis antes de usá-las. Por exemplo, para declarar uma variável que armazena um número inteiro, você pode usar o seguinte código:
Código:
new numero_inteiro;

Para atribuir um valor a uma variável, você pode usar o operador "=".
Código:
numero_inteiro = 42;

Tipos de dados

PAWNO suporta diferentes tipos de dados, incluindo: 

int (número inteiro) 
float (número de ponto flutuante) 
string (cadeia de caracteres) 
bool (valor booleano)

Estruturas de controle

As estruturas de controle são usadas para controlar o fluxo do programa. PAWNO suporta as seguintes estruturas de controle:

  • if / else: executa um bloco de código se uma condição for verdadeira e outro bloco de código se a condição for falsa.
Código:
if (numero_inteiro == 42) {
    printf("A resposta para a vida, o universo e tudo mais!");
} else {
    printf("Essa não é a resposta correta.");
}
  • for: executa um bloco de código um número específico de vezes.
Código:
for (new i = 0; i < 10; i++) {
    printf("%d\n", i);
}

  • while: executa um bloco de código enquanto uma condição for verdadeira.
Código:
new i = 0;
while (i < 10) {
    printf("%d\n", i);
    i++;
}


Funções 

As funções são blocos de código que realizam uma tarefa específica. Você pode criar suas próprias funções em PAWNO. Por exemplo, aqui está uma função que recebe dois números inteiros e retorna o maior deles:

Código:
new maximo(num1, num2) {
    if (num1 > num2) {
        return num1;
    } else {
        return num2;
    }
}


Chamando a função:

Código:
new resultado = maximo(42, 84);
printf("O maior número é %d", resultado);


Exemplos de código


Aqui estão alguns exemplos de código que demonstram como usar os conceitos básicos de programação em PAWNO.

Exemplo 1: Exibindo uma mensagem na tela
Código:
public OnGameModeInit() {
    printf("Bem-vindo ao meu servidor!");
    return 1;
}

Este código exibe uma mensagem de boas-vindas na tela do jogador quando o servidor é iniciado.

Exemplo 2: Criando um comando personalizado
Código:
CMD:me(playerid, params[]) {
    new mensagem[128];
    format(mensagem, sizeof(mensagem), "* %s %s", GetPlayerName(playerid), params);
    SendClientMessageToAll(0xFFFFFFAA, mensagem);
    return 1;
}

Este código cria um comando personalizado chamado "/me" que permite que os jogadores exibam uma mensagem personalizada na tela do jogo. Quando um jogador digita "/me" seguido de uma mensagem, a mensagem é exibida na tela de todos os jogadores.

Exemplo 3: Criando um sistema de teleport
Código:
CMD:tp(playerid, params[]) {
    new destino_x, destino_y, destino_z;
    if (sscanf(params, "fff", destino_x, destino_y, destino_z) != 3) {
        SendClientMessage(playerid, 0xFF0000FF, "Use /tp x y z para se teletransportar.");
        return 1;
    }
    SetPlayerPos(playerid, destino_x, destino_y, destino_z);
    SendClientMessage(playerid, 0x00FF00FF, "Você foi teletransportado.");
    return 1;
}

Este código cria um comando personalizado chamado "/tp" que permite que os jogadores se teletransportem para uma posição específica no mapa. Quando um jogador digita "/tp" seguido de três números (representando as coordenadas X, Y e Z), o jogador é teletransportado para a posição especificada.

Conclusão

Espero que este guia tenha ajudado você a entender os conceitos básicos de programação em PAWNO para SA:MP. PAWNO é uma linguagem de programação poderosa que permite criar scripts personalizados para o SA:MP. Com prática e perseverança, você pode criar scripts incríveis que adicionam novos recursos e funcionalidades ao jogo. Boa sorte em sua jornada de programação!


RE: Guia básico de programação em PAWNO para SA:MP - xbruno1000x - 09/03/2023

Muito boa sua contribuição strelo! +REP


RE: Guia básico de programação em PAWNO para SA:MP - Dr Editor - 10/03/2023

Como é um tutorial para iniciantes, acho que se faz necessário algumas correções para evitar confusão.

Funções:
Não se utiliza a palavra-chave new para iniciar uma função.

Comandos (exemplos 1 e 2):
Acho prudente informar a necessidade da biblioteca com base na sintaxe do comando, pois não é nativo. Neste caso Pawn.CMD ou Zcmd.

Exemplo 2:
A função [url=https://team.sa-mp.com/wiki/GetPlayerName.html][/url]GetPlayerName necessita de mais parâmetros e não retorna o nome.


Claramente você é uma pessoa que tem conhecimento para transmitir, porém se um iniciante se basear nos seus exemplos de código e fizer uma recriação pode acabar encontrando alguns erros na compilação e ficando com ainda mais dúvidas.

No geral é um bom tutorial!


RE: Guia básico de programação em PAWNO para SA:MP - White_Blue - 10/03/2023

Outras coisas que estão confusas ou incorretas no tutorial:

1 - Você está usando a função print na callback OnGameModeInit e dizendo que isso exibirá uma mensagem na tela do player, o que não acontece pois a OnGameModeInit não é chamada para o player e a função print apenas imprime uma mensagem no console não no chat;
2 - O tipo "float" com letra minúscula não é usado no SA-MP, o correto é Float(Com F maiúsculo);
3 - Como citado a cima, você iniciou uma função com a palavra chave "new" que serve para declarar variáveis, funções são declaradas no código utilizando uma stock;
4 - A função nativa GetPlayerName não retorna o nome do player diretamente como dito acima.

De resto, o tutorial está correto, mas não custa nada consertar esses erros.