Random para chamar Publics -
Gleisson_. - 11.07.2013
Gostaria de saber uma maneira para criar um Random que chamasse Publics..
por exemplo:
pawn Код:
new RandomEventos[] =
{
EventoRace01,
EventoRace02,
EventoRace03,
EventoTDM01,
EventoTDM02
};
pawn Код:
forward EventoRace01(); public EventoRace01()
{
//
return 1;
}
Deveria ser assim ?
Pois nгo quero que toda vez seja o mesmo evento....
Re: Random para chamar Publics -
SeV_ - 11.07.2013
Usa uma Variavel Com Switch.
Seria Melhor. Deste jeito. acho que nгo dб.
Re: Random para chamar Publics -
WLSF - 11.07.2013
Vocк pode criar as publics tudo com o mesmo nome, adicionando um nъmero diferente no final.
Ai tu aleatoriza um nъmero e faz a junзгo: nomeCallBack + numAleatorio, e joga isso no CallLocalFunction.
Exemplinho:
pawn Код:
forward c0();
forward c1();
forward c2();
public c0() return 1;
public c1() return 1;
public c2() return 1;
public OnGameModeInit()
{
new n = random(3);
new sStr[10];
format(sStr, 10, "c%d", n);
CallLocalFunction(sStr, "");
}
Re: Random para chamar Publics -
Gleisson_. - 11.07.2013
Hum, e qual seria a melhor maneira ?
Re: Random para chamar Publics -
WLSF - 11.07.2013
Acho que vocк tem uma dinamicidade maior da forma que eu te exemplifiquei, sem tirar que nгo faria o uso do switch, em termos de processamento й uma 'treta' a menos.
Com o switch teria que criar as funзхes(уbvio), e uma estrutura com cada caso e seus respectivos valores(randфmicos).
Re: Random para chamar Publics -
Gleisson_. - 11.07.2013
Quote:
Originally Posted by Willian_Luigi
Acho que vocк tem uma dinamicidade maior da forma que eu te exemplifiquei, sem tirar que nгo faria o uso do switch, em termos de processamento й uma 'treta' a menos.
Com o switch teria que criar as funзхes(уbvio), e uma estrutura com cada caso e seus respectivos valores(randфmicos).
|
Hum, valew, vou dar umas testadas aqui, ver se consigo!
Ah, ao return de cada public devo colocar isto: ?
PHP код:
return new n = random(3), new sStr[10], format(sStr, 10, "c%d", n), CallLocalFunction(sStr, "");
Devo colocar isto?
Re: Random para chamar Publics -
WLSF - 11.07.2013
O quк ? nгo entendi muito bem oque vocк quis dizer, eu fiz um exemplo pra testes, vou te mandar espero que dк pra vocк se basear nele.
Exemplinho:
pawn Код:
// INICIALIZADORES
forward t();
forward c0();
forward c1();
forward c2();
forward c3();
forward c4();
forward c5();
forward c6();
forward c7();
forward c8();
main() print("Initializing..");
// CALLBACKS
public OnGameModeInit()
{
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
SetTimer("t", 2000, 1);
return 1;
}
public t()
{
new i = random(9);
new sStr[10];
format(sStr, 10, "c%d", i);
CallLocalFunction(sStr, "");
}
public c0() return printf("oi c1");
public c1() return printf("oi c2");
public c2() return printf("oi c3");
public c3() return printf("oi c4");
public c4() return printf("oi c5");
public c5() return printf("oi c6");
public c6() return printf("oi c7");
public c7() return printf("oi c8");
public c8() return printf("oi c9");
O Timer tб com repeat = 1, ou seja vai ficar repetindo, e ele sempre fica chamando uma funзгo aleatуria.
Copie esse cуdigo e cole em um pwn novo e faзa seus testes, para poder aprimorar e deixar do seu jeito.
Abraзos.
Re: Random para chamar Publics -
Gleisson_. - 11.07.2013
Ah, nem tinha me ligado uaposkpaoskaposaoskaps..
Tenho que fazer isto ao final de Cada public:
PHP код:
public OnGameModeInit() {
SetTimer("CarregarEvento", 180000, false);
return 1;
}
Ja na public
PHP код:
forward CarregarEvento(playerid); public CarregarEvento(playerid) {
new i = random(9);
new sStr[10];
format(sStr, 10, "c%d", i);
CallLocalFunction(sStr, "");
return 1;
}
Re: Random para chamar Publics -
WLSF - 11.07.2013
Praticamente isso, mas se vocк quer que os eventos fiquem acontecendo de hora em hora, ou etc, teria que deixar o timer repeat ativo, mas eu creio que vocк jб saiba disso nй.
Abraзos.
Re: Random para chamar Publics -
Gleisson_. - 12.07.2013
Quote:
Originally Posted by Willian_Luigi
Praticamente isso, mas se vocк quer que os eventos fiquem acontecendo de hora em hora, ou etc, teria que deixar o timer repeat ativo, mas eu creio que vocк jб saiba disso nй.
Abraзos.
|
Apskaopskapsok, eu pretendia colocar
PHP код:
return SetTimer("CarregarEvento", 180000, false);
@EDIT:
Gostaria de colocar 1 player do lado do outro, com uma visгo de longe, que se nгo me engano й
Conforme os jogares iriam para o evento, 1 player ficaria do lado do outro, o mesmo com os carros, para nгo bugarem um em cima do outro...
Tem algum cуdigo assim ?