[Tutorial] Interligando variбveis Game mode x Filterscript
#1

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
pawn Код:
new abcAmigo;
no game mode e tentamos usar
pawn Код:
absAmigo = 100;
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
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)