Portal SAMP
[Tutorial] Gamemode/Filterscript no GNU Linux - 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] Gamemode/Filterscript no GNU Linux (/showthread.php?tid=3972)



Gamemode/Filterscript no GNU Linux - JV Nascimento - 16/09/2023

E aí rapaziada... sou usuario linux e talvez outra pessoa que também seja, como eu, já teve ou tem dificuldade pra compilar gamemodes e filsterscripts no sistema. Vou fazer um brevê tutorial de como tornar todo esse processo simples como é no Windows.

Requerimentos:
https://github.com/pawn-lang/compiler/releases/tag/v3.10.10 (compilador)
http://files.sa-mp.com/samp037svr_R2-1.tar.gz (servidor GNU Linux)
http://files.sa-mp.com/samp037_svr_R2-1-1_win32.zip (servidor Windows, para extrair algumas includes)

Opcional:
https://github.com/pawn-lang/pawn-stdlib/archive/refs/heads/master.zip (bibliotecas padrões atualizadas)

Primeiramente, você vai baixar o server e o compilador. Extraia o servidor linux e na mesma pasta do executavel samp03svr você vai criar uma pasta chamada pawncc (o nome da pasta é de sua preferencia). Depois disso, extraia o compilador e copie tudo da pasta bin/ para o seu pawncc/.

Você vai ver algo semelhante a isso depois de um ls em pawncc/:

Código:
pawncc  pawndisasm
[jv@fedora pawncc]$

Aí mesmo faça uma pasta chamada include, onde vai ficar suas includes, obviamente. Você vai extrair elas do ZIP do servidor Windows (não vem includes no servidor GNU Linux) para pasta include. Depois, (caso baixou) extraia o pawn-stdlib e sobreescreva.

Você vai ver algo semelhate a isso depois de um ls em include/:

Código:
a_actor.inc  a_objects.inc  a_samp.inc      core.inc      file.inc    time.inc
a_http.inc   a_players.inc  a_vehicles.inc  datagram.inc  float.inc
a_npc.inc    a_sampdb.inc   console.inc     default.inc   string.inc
[jv@fedora pawncc]$

Tudo pronto para compilar, agora vamos para o comando básico de compilação:

Código:
$ ./pawncc ../gamemodes/example.pwn -i=include/ -o=../gamemodes/example.amx

Esse exemplo é do comando rodando direto da pasta onde fica o executavel pawncc. Agora vamos aos detalhes: primeiro parametro é o código que vamos compilar (especifique o caminho e nome sempre), segundo parametro é a opção -i que aponta o diretorio das includes que vão ser usadas, e por ultimo, a opção -o especifica o cominho e o nome da saida (código compilado). 

Cláro que você não é idiota de digitar esse comando enorme toda vez. Então na pasta raiz do server (onde fica o executavel samp03svr) crie um arquivo chamdo compile.sh (nome é de sua preferencia, mas tem que ter a extensão .sh). Nele você vai colar esse shellscript:

Código:
#!/bin/bash
./pawncc/pawncc gamemodes/$1.pwn -i=pawncc/include/ -o=gamemodes/$1.amx

Der à ele permissão de executavel (sudo chmod +x compile.sh). Agora para executar é muito simples:

Código:
$ ./compile.sh example

O único parametro é o nome do código, sem extensão (desde que seja .pwn) e caminho da pasta.
É isso aí! Qualquer dúvida pode mandar mensagem privada ou aqui no tópico mesmo.  Angel