Interligando variбveis Game mode x Filterscript -
ipsBruno - 15.06.2012
Interligando variбveis Game mode x Filterscript
Percebi algumas dъvidas em alguns tуpicos aqui no fуrum e erros relacionados a interligaзгo de variбveis no game mode e filterscript. A maioria sabe, mas alguns iniciantes acabam se perdendo nessa hora. Enfim
Problema
O problema ocorre por exemplo em casos: Quando definimos
no game mode e tentamos usar
acaba dando erro
Porque isto ocorre?
Ocorre pois quando damos
new (assim como static) em um script, seja game mode ou seja filterscript. A variбvel sу serб definida naquele script e nгo em outro script, por mais que ambos sejam carregados no servidor.
Interligando
Para interligar, existem vбrias formas: De as mais dinвmicas atй as mais lentas. Ah quem diga que usando arquivos й melhor, ah quem diga que usando arquivos й melhor.
Para interligar, podemos usar variбveis pъblicas. Com o caso do abcAmigo. Ficaria algo mais ou menos assim:
Game mode:
pawn Код:
forward link_abcAmigo(); public link_abcAmigo() return abcAmigo;
// Note: abcAmigo amigo estб no retorno, assim quando chamada link_abcAmigo irб retornar o valor de abcAmigo
Apуs isto, apenas colocar o seguinte no filterscript:
pawn Код:
#define returnabcAmigo CallRemoteFunction("link_abcAmigo", "")
Assim, quando chamar "returnabcAmigo" no filterscript. O valor de abcAmigo no gamemode, passarб para variбvel PЪBLICA link_abcAmigo que poderiormente passa para o funзгo CallRemoteFunction que retorna o valor dos mesmo para a define returnabcAmigo .. Assim interligando o valor das variбveis.
Para colocar valor nas variбveis й o mesmo processo:
Game mode:
pawn Код:
forward link_abcAmigo(valor); public link_abcAmigo(valor) return abcAmigo = valor;
// Note: abcAmigo amigo estб no retorno, assim quando chamada link_abcAmigo irб retornar o valor de abcAmigo
Apуs isto, apenas colocar o seguinte no filterscript:
pawn Код:
#define setabcAmigo(%1) CallRemoteFunction("link_abcAmigo", "i", %1)
Assim quando digitamos: setabcAmigo(131) o valor 131 passa para a CallRemoteFunction. Que passarб link_abcAmigo(131) para o gamemode, que posteriormente o game mode faz abcAmigo = 131. Alterando o valor da variбvel, atravйs da pъblica.
Incrнvel nгo? Й bastante simples, basta entender as funзхes.
Nгo posso explicar detalhadamente qual funзгo disto, estou ensinando como interligar e nгo porque interligar, mas aqui tem um bom exemplo de quem precisou:
https://sampforum.blast.hk/showthread.php?tid=351128
** Notem meu post, lб eu uso um sistema para interligar as variбveis ..
Enfim, tambйm pode-se interligar usando arquivos, mas o processo й menos otimizado por usar OUTRAS e mais funзхes.
Espero que tenham gostado

Atй mais gente
Re: Interligando variбveis Game mode x Filterscript -
EditPawn - 15.06.2012
Bom tutorial, parabйns. Irei usar para meus FS's
Re: Interligando variбveis Game mode x Filterscript -
steki. - 15.06.2012
Tambйm funciona com arrays estruturadas:
-
pawn Код:
enum pinfo
{
plevel,
Float:phealth
}
new PlayerInfo[MAX_PLAYERS][pinfo];
- forward get_playerinfo(playerid, item);
public get_playerinfo(playerid, item)
{
if(numargs() > 2)
{
PlayerInfo[playerid][pinfo:item] = getarg(2);
return 0;
}
return _:PlayerInfo[playerid][pinfo:item];
}
- Ja tinha pensado nisso, mas nunca veio a necessidade...
Re: Interligando variбveis Game mode x Filterscript -
Ricop522 - 15.06.2012
SetPVarInt
Re: Interligando variбveis Game mode x Filterscript -
steki. - 15.06.2012
Quote:
Originally Posted by Stewie`
Tambйm funciona com arrays estruturadas:
*exemplo*
|
4char
Respuesta: Re: Interligando variбveis Game mode x Filterscript -
CidadeNovaRP - 15.06.2012
Quote:
Originally Posted by Ricop522
SetPVarInt
|
Bem mais simples euoeueoue
Re: Interligando variбveis Game mode x Filterscript -
paulor - 15.06.2012
Nunca precisei usar vars de um FS para o GM. Boa dica!
Re: Interligando variбveis Game mode x Filterscript -
ipsBruno - 15.06.2012
SetPVarInt й exclusivo para jogadores, apesar de haver a possibilidade de fazer isto uma GVar. Nгo й aconselhбvel. Para isto, use getproperty e setproperty