Programaзгo Modular -
RafaelOsio - 11.04.2015
Olб galera. Eu gostaria de saber sobre a tal programaзгo modular. Achei vбrios tutoriais e cheguei na conclusгo que isso se trata da divisгo de tudo que farб parte do servidor. Essa divisгo seria feita por arquivos .inc onde iriam conter os sistemas. A minha pergunta й a seguinte: Como eu crio esses arquivos, ou melhor, o que contйm nesses arquivos ? Eu tentei criar um documento em branco e coloquei a include a_samp, logo apуs tentei usar a callback onplayerconnect e colocar uma mensagem, apenas para testar esse tipo de programaзгo. Salvei com a extensгo .inc e ao incluir meu modulo em meu GM, deu um erro. O que fiz estб errado, mas eu gostaria de faze isso, entгo me ajudem por favor.
Re: Programaзгo Modular -
arakuta - 11.04.2015
O arquivo "mуdulo" serб embutido no arquivo principal, entгo se vocк faz isto no seu GM:
PHP Code:
#include <a_samp>
#include <modulo>
public OnPlayerConnect(playerid)
{
// fazer algo algo
return 1;
}
E fizer a mesma coisa no mуdulo, vocк terб o exemplo acima duplicado.
O mуdulo serб embutido no GM final.
Se modulo.inc for
PHP Code:
MinhaFuncao()
{
// Algo
}
o GM final serб:
PHP Code:
#include <a_samp>
MinhaFuncao()
{
// Algo
}
public OnPlayerConnect(playerid)
{
// fazer algo algo
return 1;
}
Re: Programaзгo Modular -
D3sconn3ct - 11.04.2015
Ou poderб criar callback hook
Com a include
y_hooks
Vocк poderar criar mуdulos com calbacks,
GAMEMODE
PHP Code:
#include <a_samp>
#include "modulo.inc"
public OnGameModeInit()
{
// normal
return 1;
}
public OnPlayerConnect(playerid)
{
// normal
return 1;
}
MODULO
PHP Code:
#include <YSI\y_hooks>
hook OnPlayerConnect(playerid)
{
// alguma coisa separada
return 1;
}
Re: Programaзгo Modular -
Bruno13 - 11.04.2015
Programaзгo Modular nгo necessariamente teria de trabalhar com extensхes .inc, mas sim quais preferir, como .models, ou a que couber a seu gosto. A Programaзгo Modular ela trabalha de uma maneira em que vocк pode se organizar melhor inserindo informaзхes e partes de um script em um molde, por exemplo, em meu servidor eu tenho varias etapas: defines, variбveis, callbacks, etc...Entгo para uma melhor organizaзгo, onde ha por exemplo as minhas variбveis, eu as coloco dentro de um arquivo .models em linha corrida, sem ser dentro de quaisquer callbacks e sem possuir a declaraзгo da include a_samp ou outras (uma vez que eu utilizar este molde abaixo as includes declaradas) para ficar mais fбcil de me achar. Irei lhe dar um exemplo:
Meu cуdigo sem moldes:
pawn Code:
#include <a_samp>
new varA;
new varB;
new varC;
new varD[3] = "abc";
public OnGameModeInit()
{
....
Meu cуdigo com moldes:
pawn Code:
#include <a_samp>
#include "modulos/vars.models" //caminho: scriptfiles > modulos > vars.models
public OnGameModeInit()
{
....
E no meu vars.models eu teria simplesmente:
pawn Code:
new varA;
new varB;
new varC;
new varD[3] = "abc";
Re: Programaзгo Modular -
ProKillerpa - 11.04.2015
Se tiver um conhecimento mais avanзado,
leia isso.
Temos tambйm um tutorial sobre isso na board PT-BR,
Aqui.
Re: Programaзгo Modular -
PT - 11.04.2015
Quote:
Originally Posted by gelton
Ou poderб criar callback hook
Com a include y_hooks
Vocк poderar criar mуdulos com calbacks,
GAMEMODE
PHP Code:
#include <a_samp>
#include "modulo.inc"
public OnGameModeInit()
{
// normal
return 1;
}
public OnPlayerConnect(playerid)
{
// normal
return 1;
}
MODULO
PHP Code:
#include <YSI\y_hooks>
hook OnPlayerConnect(playerid)
{
// alguma coisa separada
return 1;
}
|
Eu uso este metodo.
Mas deixe dizer que aconselho a usar 1 hook manual em cada callback para que esta seja sempre a 1Є a ser chamada.
Re: Programaзгo Modular -
D3sconn3ct - 11.04.2015
Quote:
Originally Posted by PT
deixe dizer que aconselho a usar 1 hook manual em cada callback para que esta seja sempre a 1Є a ser chamada.
|
Sim eu faзo isso, coloquei ai so para citar um exemplo
esse metedo e bem fбcil, uso bastante!
Re: Programaзгo Modular -
RafaelOsio - 11.04.2015
Quote:
Originally Posted by arakuta
O arquivo "mуdulo" serб embutido no arquivo principal, entгo se vocк faz isto no seu GM:
PHP Code:
#include <a_samp>
#include <modulo>
public OnPlayerConnect(playerid)
{
// fazer algo algo
return 1;
}
E fizer a mesma coisa no mуdulo, vocк terб o exemplo acima duplicado.
O mуdulo serб embutido no GM final.
Se modulo.inc for
PHP Code:
MinhaFuncao()
{
// Algo
}
o GM final serб:
PHP Code:
#include <a_samp>
MinhaFuncao()
{
// Algo
}
public OnPlayerConnect(playerid)
{
// fazer algo algo
return 1;
}
|
Tentei fazer algo bбsico apenas para testes. Mas ao chamar meu mуdulo, o compilador acusa um erro. Eu crei um arquivo com uma simples variбvel: new haha[123]; e salvei com a extensгo .inc dentro da pasta SCRIPTFILES > MODULOS
Quando eu coloco a #include teste.inc e compilo, apresenta o seguinte erro: fatal error 100: cannot read from file: "teste.inc"
Como devo proceder ?
Re: Programaзгo Modular -
D3sconn3ct - 11.04.2015
Quote:
Originally Posted by RafaelOsio
pasta SCRIPTFILES > MODULOS
Quando eu coloco a #include teste.inc e compilo, apresenta o seguinte erro: fatal error 100: cannot read from file: "teste.inc"
Como devo proceder ?
|
Cria uma pasta
MODULOS na pasta
Gamemodes e coloque o seus modos .inc na tal pasta
Agora va na sua GM e no caminho do modulo mude para
#define "MODULOS/teste.inc"
OBS:
Nгo ficara na pasta scriptfiles, mais sim na pasta gamemodes, teste como mesmo, e fale se funciona
Re: Programaзгo Modular -
RafaelOsio - 11.04.2015
Quote:
Originally Posted by gelton
Cria uma pasta MODULOS na pasta Gamemodes e coloque o seus modos .inc na tal pasta
Agora va na sua GM e no caminho do modulo mude para
#define "MODULOS/teste.inc"
OBS:
Nгo ficara na pasta scriptfiles, mais sim na pasta gamemodes, teste como mesmo, e fale se funciona
|
Funcionou! Muito obrigado.
agora eu tenho outra dъvida: eu tenho um sistema que sera ativado quando eu utilizar um comando, eu posso colocar #define "MODULOS/teste.inc dentro desse comando para chamar o meu modulo ?