[Ajuda] Rcars automatico
#1

Bom a duvida й simples, um spawn de veнculos automбtico, eu quero que der spawn em alguns horбrios, como 3 da manha, 7 da manha, 12 horas etc, ja tentei uma vez criar um settimer verificando a hora a cada segundo, na logica daria certo, mais nao dei, ele verificava a hora a cada segundo exemplo:

SetTimer( " rcars " a cada 1 segundo e bla bla ...);

forward rcars ...
public rcars ...

{

aki dava spawn e mandava a menssagem pra geral. ;

}

esse mйtodo que usei dava spawn mais й como se a public fosse chamada varias vezes seguidas, mandando um flod bem loko no chat tipo

todos os carros foram spawnados !
todos os carros foram spawnados !
todos os carros foram spawnados !
todos os carros foram spawnados !
todos os carros foram spawnados !
todos os carros foram spawnados !
...

e ai ? alguma dica ?

@edit o settimer chamava outra public pra verificar a hora, dai entao essa public chamava a outra !
Reply
#2

Coloque as funзхes dentro de um timer de minuto, e coloque um if na funзгo pra que se for o horбrio que vocк informar dar o comando.
Reply
#3

Acho que isso resolve, talvez tenha alguma forma mais otimizada!
PHP код:
SetTimer("rcars" 1000false);
forward rcars();
public 
rcars()
{
   new 
hora=0;
   
gettime(hora);
   switch(
hora)
   {
        case 
3:
        {
             for(new 
vehicleid=0;vehicleid<MAX_VEHICLESvehicleid++){
                 
SetVehicleToRespawn(vehicleid);
             }
        }
        case 
7:
        {
            for(new 
vehicleid=0;vehicleid<MAX_VEHICLESvehicleid++){
                 
SetVehicleToRespawn(vehicleid);
             }
        }
        case 
12:
        {
            for(new 
vehicleid=0;vehicleid<MAX_VEHICLESvehicleid++){
                 
SetVehicleToRespawn(vehicleid);
             }
        }
        
//[...]
   
}
   return 
SetTimer("rcars" 1000false);

Reply
#4

Sim, tem:
Код:
public OnGameModeInit()
{
   SetTimer("rcars" 60*1000, true);
   return 1;
}

forward rcars();
public rcars()
{
   new hora=0;
   gettime(hora);
   switch(hora)
   {
        case 3, 7, 12:
        {
             for(new vehicleid=0;vehicleid<MAX_VEHICLES; vehicleid++) SetVehicleToRespawn(vehicleid);
        }
   }
   return 1;
}
Reply
#5

Faзa uma funзгo para verificar se o veнculo estб em uso por que ninguйm merece fica apй
Reply
#6

Mais se eu fizer oque vcs disseram, iria dar spawn nos carros com muita frequencia ne ? pq ia verificar a "hora", a cara 1 minuto se fosse 3 roras, de 03:01, 03:02, 03:03... iria dar spawn, oque me dizem ?

@edit me corigam se eu tiver errado,

nesta parte

new hora = 0;
gettime(hora);
switch(hora)
{ ....

vai conferir apenas se "hora" for por exemplo 3 horas em ponto ?
Reply
#7

Vai fazer uma checagem na hora do servidor a cada 1 minuto, caso for tais horas irб respawnar.
Reply
#8

Quote:
Originally Posted by Andinho
Посмотреть сообщение
Mais se eu fizer oque vcs disseram, iria dar spawn nos carros com muita frequencia ne ? pq ia verificar a "hora", a cara 1 minuto se fosse 3 roras, de 03:01, 03:02, 03:03... iria dar spawn, oque me dizem ?

@edit me corigam se eu tiver errado,

nesta parte

new hora = 0;
gettime(hora);
switch(hora)
{ ....

vai conferir apenas se "hora" for por exemplo 3 horas em ponto ?
realmente do jeito que passaram vai acontecer isso... mas vocк pode colocar o timer para cada 1 hora ou 2 sem verificar a hora .. nгo й necessбrio complicar algo que й fбcil 1 segundo = 1000milisegundos.

60*1000*60*2
Reply
#9

Deu certo aki, obg a quem ajudou ^^ acabou ficando assim

settimer de 1 segundo se repetindo // no ongamemodint

forward Spawn();
public Spawn()
{
new hora=0;
new mins=0;
new segs=0;
gettime(hora,mins,segs);
switch(hora)
{
case 3, 6, 9, 12, 15, 18, 21, 0:
{
switch(mins)
{
case 0:
{
switch(segs)
{
case 0:
{
new inVeh;
for( new i = 0; i < MAX_VEHICLES; i++ )
{
inVeh = 0;
for( new j = 0; j < GetMaxPlayers(); j++ )
{
if(IsPlayerInVehicle( j, i ))
{
inVeh = 1;
break;
}
}
if(!inVeh)
{
SetVehicleToRespawn(i);
}
}
SendClientMessageToAll(0xEEE685FF, "{EEE685}[{ffffff}SPAWN{EEE685}] Todos os veiculos do servidor foram spawnados !");
}
}
}
}

}

}
return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)