(Tutorial) CallRemoteFuncion (dicas)
Página 1 de 1
(Tutorial) CallRemoteFuncion (dicas)
Para os usuários do sa-mp: isso não é exatamente um tutorial, vou explicar um pouco algumas funções,
e dar dicas de algumas formas para aplicação CallRemoteFunction utilizando conceitos de encapsulamento.
e dar dicas de algumas formas para aplicação CallRemoteFunction utilizando conceitos de encapsulamento.
Índice:
- CallRemoteFunction
- Fazendo a conexão FS/GM
- Dicas
---------------------------------------------------------------------------------------------------------
CallRemoteFunction:
Função: Ela chama funções dentro de outros scripts.
parâmetros: (const func[], const format[], {Float,_}...)
func | nome da função public do outro script |
format | parâmetros da função |
{Float,_}... | variáveis que você vai passar para o parâmetro da função chamada |
---------------------------------------------------------------------------------------------------------
Fazendo a conexão FS/GM:
Ex1 - Pegando valor de uma var dentro de um FS
FS:
- Código:
#define PWN::%1(%2) forward %1(%2); public %1(%2)
new value_r = 10;
PWN:: get_val()
{
return value_r;
}
GM:
- Código:
public OnGameModeInit()
{
printf("%d", CallRemoteFunction("get_val", ""));
return 1;
}
Ex2 - Alterando um valor de uma var dentro de um FS
FS:
- Código:
#define PWN::%1(%2) forward %1(%2); public %1(%2)
new value_r = 10;
PWN:: get_val()
{
return value_r;
}
PWN:: set_val(val)
{
value_r = val;
}
GM:
- Código:
public OnGameModeInit()
{
CallRemoteFunction("set_val", "i", 20);
return 1;
}
---------------------------------------------------------------------------------------------------------
Dicas:
Aqui irei mostrar algumas formas que talvez facilitem a manipulação entre variáveis de um FS para um GM.
Ex1: eu recomendo que quando você for mexer com variáveis, utilize métodos de get-set, você cria
2 métodos, um para pegar o valor da variável, e outro para modificar este valor...
De preferência utilize a mesma nomenclatura dos métodos dentro do FS e do GM, por questões de organização.
Você tem uma variável no FS, e você deseja pegar esse valor pelo GM, para fazer uso do mesmo...
FS:
- Código:
#define PWN::%1(%2) forward %1(%2); public %1(%2)
//Variável que você vai usar no GM
new valor_importante;
PWN:: get_val()
{
return valor_importante;
}
GM:
- Código:
PWN:: get_val()
{
return CallRemoteFunction("get_val", "");
}
public OnGameModeInit()
{
new i = get_val();
}
Ex2: Quando for trabalhar com funções, você precisa entender oque está fazendo, algumas funções você tem que chamar sem parâmentros, pois ela não pede parâmetros, outras necessitam de parâmentros....(Não é dica, é explicação).
Funções sem parâmetros:
- Código:
#define PWN::%1(%2) forward %1(%2); public %1(%2)
PWN:: HelloWorld() printf("HELLO WORLD !");
- Código:
CallRemoteFunction("HelloWorld", "");
Função com parâmetros:
- Código:
#define PWN::%1(%2) forward %1(%2); public %1(%2)
PWN:: Msg(msg[]) printf(msg);
- Código:
CallRemoteFunction("Msg", "s", "HELLO WORLD !");
Sejam sempre atentos a funções com parâmetros, pois na hora de utilizar a chamada remota ou local, você precisará informar os parâmetros e seus tipos.
Se a sua função exigir 2 parâmetros inteiros, você estará trabalhando com
- Código:
CallRemoteFunction(func, "ii", n1, n2);
Muitas pessoas acabam se atrapalhando na hora de utilizar os formatos: 's', 'i', 'f', etc... E por isso acabam obtendo erros ou bugs.
---------------------------------------------------------------------------------------------------------
Conclusão:
Espero ter deixado dicas legais sobre o uso desta função,
eu não costumo utilizar essa função pois meus códigos são divididos apenas entre
GM / Includes, nunca trabalho com FilterScript.
Então não posso dizer quais são os beneficios e/ou desvantagens.
eu não costumo utilizar essa função pois meus códigos são divididos apenas entre
GM / Includes, nunca trabalho com FilterScript.
Então não posso dizer quais são os beneficios e/ou desvantagens.
---------------------------------------------------------------------------------------------------------
Referência:
Créditos: Willian Luigi ((c) code.me - 2013)
Tópicos semelhantes
» [Tutorial]Dicas para mapear mtasa/samp
» Duvidas frequentes e algumas dicas.
» Como adicionar o race no mta+dicas para deixar seu video mais legal
» (Tutorial) WinAPI Eventos(pt2)
» (Tutorial) WinAPI Introdução(pt1)
» Duvidas frequentes e algumas dicas.
» Como adicionar o race no mta+dicas para deixar seu video mais legal
» (Tutorial) WinAPI Eventos(pt2)
» (Tutorial) WinAPI Introdução(pt1)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|