Portal SAMP
[Tutorial] Organizando Códigos por Módulos - 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] Organizando Códigos por Módulos (/showthread.php?tid=942)



Organizando Códigos por Módulos - Levi.M - 17/03/2021

Olá irei dar uma explicação breve de como utilizar a criação de Módulos, pra deixar o seu Gamemode mais organizado e para facilitação de correções de bugs que venham ter em seus Códigos.



Apresentação:
[font="Proxima Nova Regular", "Helvetica Neue", Helvetica, Arial, sans-serif][Imagem: U3lx82y.png][/font]




Estou usando VSCODE, para melhor visualização. Para utilizar essa função crie uma pasta na Pasta Principal do seu Gamemode. Com o nome desejado, no meu caso utilize Modulos:

[font="Proxima Nova Regular", "Helvetica Neue", Helvetica, Arial, sans-serif][Imagem: Bv0ODe8.png][/font]




Eu utilizo para deixar comandos mais organizados, como de Admins etc. Mais pode utilizar da forma que desejar com funções que você criou. Infelizmente não sei como utilizar com Callbacks. Mas Vamos lá, no próximo passo, abra o seu editor Pawno e abra um novo arquivo em branco, e pressione para compilar. Ao apertar em compilar abra a pasta criada com o nome desejado, Coloque o nome desejado no seu pwn, usei Comandos.pwn

[font="Proxima Nova Regular", "Helvetica Neue", Helvetica, Arial, sans-serif][Imagem: GyKHflt.png][/font]


Logo após você poderá abrir o seu Gamemode principal, e colocará isso no final do seu Gamemode:
Código PHP:
#include                "..\Modulos\Comandos.pwn" 




Você poderá utilizar da maneira que desejar, mas estou usando o processador de comandos Pawn.CMD e sscanf, portanto ensinarei dessa forma. Depois de ter adicionado isso ao seu Código, Compile-o.      Copie o Comando que irá adicionar em seu arquivo .pwn e apague do seu Gamemode principal. Abra o editor Pawn e vá na pasta criada anteriormente e faça dessa forma:

[font="Proxima Nova Regular", "Helvetica Neue", Helvetica, Arial, sans-serif][Imagem: odOYk3o.png]
[/font]

Se estiver importando Comandos, declare o seu processador de comandos, exemplo: 
Código PHP:
#include <Pawn.CMD> 


E abaixo cole o seu comando, depois disso salve o arquivo compilando. Depois compile seu Gamemode e pronto. Sei que o tutorial está bem raso, mais procurei algo parecido a isso e não encontrei, então fiz esse.


RE: Organizando Códigos por Módulos - Cirilo_Samp - 03/05/2021

Muito obrigado, new sabia tinha como fazer isso kk


RE: Organizando Códigos por Módulos - ProKillerPa - 04/05/2021

Bom, acabei vendo o tópico arrecem agora e li que voce disse que não sabe como fazer os módulos tambem com callbacks. Bom, vamos lá:

Voce precisará utilizar a include:

Código PHP:
#include <YSI_Coding/y_hooks> 

Voce encontra ela na biblioteca YSI.

Depois de adicionar ela no seu GM (main), voce adicionará essa linha no topo de CADA modulo que voce acrescentar e, ao inves de usar public para chamar as callbacks nativas ( como a OnPlayerConnect, por exemplo ) voce utilizará hook. Ex:

// Modulo registro.pwn


Código:
#include <YSI_Coding/y_hooks>

hook OnPlayerConnect(playerid){
//codigo
    return 1;
}



RE: Organizando Códigos por Módulos - xbruno1000x - 05/05/2021

(04/05/2021 16:56)ProKillerPa Escreveu: Bom, acabei vendo o tópico arrecem agora e li que voce disse que não sabe como fazer os módulos tambem com callbacks. Bom, vamos lá:

Voce precisará utilizar a include:

Código PHP:
#include <YSI_Coding/y_hooks> 

Voce encontra ela na biblioteca YSI.

Depois de adicionar ela no seu GM (main), voce adicionará essa linha no topo de CADA modulo que voce acrescentar e, ao inves de usar public para chamar as callbacks nativas ( como a OnPlayerConnect, por exemplo ) voce utilizará hook. Ex:

// Modulo registro.pwn


Código:
#include <YSI_Coding/y_hooks>

hook OnPlayerConnect(playerid){
//codigo
    return 1;
}

É importante ressaltar que o Plugin de voz do SA-MP(SAMPVoice) é incompatível com o Y_Hooks. Sendo assim, quem pretende utilizar o SAMPVoice e o Y_Hooks deverá optar por apenas um deles.


RE: Organizando Códigos por Módulos - TheGuilherme020 - 03/09/2022

(17/03/2021 16:54)Levi.M Escreveu: Olá irei dar uma explicação breve de como utilizar a criação de Módulos, pra deixar o seu Gamemode mais organizado e para facilitação de correções de bugs que venham ter em seus Códigos.



Apresentação:
[font="Proxima Nova Regular", "Helvetica Neue", Helvetica, Arial, sans-serif][Imagem: U3lx82y.png][/font]




Estou usando VSCODE, para melhor visualização. Para utilizar essa função crie uma pasta na Pasta Principal do seu Gamemode. Com o nome desejado, no meu caso utilize Modulos:

[font="Proxima Nova Regular", "Helvetica Neue", Helvetica, Arial, sans-serif][Imagem: Bv0ODe8.png][/font]




Eu utilizo para deixar comandos mais organizados, como de Admins etc. Mais pode utilizar da forma que desejar com funções que você criou. Infelizmente não sei como utilizar com Callbacks. Mas Vamos lá, no próximo passo, abra o seu editor Pawno e abra um novo arquivo em branco, e pressione para compilar. Ao apertar em compilar abra a pasta criada com o nome desejado, Coloque o nome desejado no seu pwn, usei Comandos.pwn

[font="Proxima Nova Regular", "Helvetica Neue", Helvetica, Arial, sans-serif][Imagem: GyKHflt.png][/font]


Logo após você poderá abrir o seu Gamemode principal, e colocará isso no final do seu Gamemode:
Código PHP:
#include                "..\Modulos\Comandos.pwn" 




Você poderá utilizar da maneira que desejar, mas estou usando o processador de comandos Pawn.CMD e sscanf, portanto ensinarei dessa forma. Depois de ter adicionado isso ao seu Código, Compile-o.      Copie o Comando que irá adicionar em seu arquivo .pwn e apague do seu Gamemode principal. Abra o editor Pawn e vá na pasta criada anteriormente e faça dessa forma:

[font="Proxima Nova Regular", "Helvetica Neue", Helvetica, Arial, sans-serif][Imagem: odOYk3o.png]
[/font]

Se estiver importando Comandos, declare o seu processador de comandos, exemplo: 
Código PHP:
#include <Pawn.CMD> 


E abaixo cole o seu comando, depois disso salve o arquivo compilando. Depois compile seu Gamemode e pronto. Sei que o tutorial está bem raso, mais procurei algo parecido a isso e não encontrei, então fiz esse.



Eu tentei fazer isso no meu gm com comandos, mas o modulo nao reconhece as variaveis e as cores definidas que estao no gm


RE: Organizando Códigos por Módulos - LouzinDS - 08/09/2022

(04/05/2021 16:56)ProKillerPa Escreveu: Bom, acabei vendo o tópico arrecem agora e li que voce disse que não sabe como fazer os módulos tambem com callbacks. Bom, vamos lá:

Voce precisará utilizar a include:

Código PHP:
#include <YSI_Coding/y_hooks> 

Voce encontra ela na biblioteca YSI.

Depois de adicionar ela no seu GM (main), voce adicionará essa linha no topo de CADA modulo que voce acrescentar e, ao inves de usar public para chamar as callbacks nativas ( como a OnPlayerConnect, por exemplo ) voce utilizará hook. Ex:

// Modulo registro.pwn


Código:
#include <YSI_Coding/y_hooks>

hook OnPlayerConnect(playerid){
//codigo
    return 1;
}

Na verdade nao, ja existe um metodo nativo no samp, o metodo ALS
Exemplo:
Código:
public OnPlayerUpdate(playerid)
{
   
    #if defined new_OnPlayerUpdate
        return new_OnPlayerUpdate(playerid);
    #else
        return 1;
    #endif
}

#if defined _ALS_OnPlayerUpdate
    #undef OnPlayerUpdate
#else
    #define _ALS_OnPlayerUpdate
#endif

#define OnPlayerUpdate new_OnPlayerUpdate
#if defined new_OnPlayerUpdate
    forward new_OnPlayerUpdate(playerid);
#endif