Oko respawna vozila

Frozen_Capone Započeo Fr0z3n
pre 5 godina
609
pregleda
4
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
Frozen_Capone
Crime Lord
pre 5 godina
Problem(error/warning): Mozda je glupo pitanje, ali kako da napravim auto respawn svih vozila osim onih u kojima su igraci svakih 30min
i da iskoci u chat tipa pokrenut je respawn svih vozila, vozila ce se respawnovati za 30sec i onda posle 30 sec da se vozila respawnaju i da izadje u chat sva vozila su respawnovana?
Pawno Code:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): Ne desava se
Slika ://
Arkoo
Underboss
pre 5 godina
Prvo napravis tajmer npr
settimer("predrespawn....blabla      //ovaj ide pod ongamemodeinit   
forward predrespawn();
public predrespawn()
{
  //Poruka da ce respawn poceti za npr 30sek
//ovde taj tajmer dole respawnuj
}

to je tajmer koji ce ispisati poruku svim igracima da ce respawn biti za naprimjer 30sekundi i u tom publicu gdje ispisuje poruku dodas jedan tajmer na 30sekundi

settimer(respawnuj bla blabla
forward respawnuj();
public respawnuj()
{
for(new auto = 1; auto <= 1200; auto++)
{
        if(IsVehicleEmpty(auto))
    {
        SetVehicleToRespawn(auto);
}
        }
//ovde mozes poruku da su sva vozila respawnovana
}
//ovo ti je funkcija isvehicleempty
stock IsVehicleEmpty(vehicleid)
{
  for(new i; i < MAX_PLAYERS; i++)
  {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && GetPlayerVehicleID(i) == vehicleid) return 0;
  }
  return 1;
}

Nadam se da ces se snaci 😄
Miki11
Crime Lord
pre 5 godina
Ovo ti je iz jednog moda, ubiti je jako lagano za napravitii nadam se da ces shvatiti

Prvo dodas funkciju za vreme
task SyncTime()
{
if( tmpminute == 30 )
{
    defer VehicleRespawn(0, 1);
SendClientMessageToAll( 0x41BAB4FF, "(RESPAWN): Server je automatski aktivirao respawn svih vozila." );
SendClientMessageToAll( 0x41BAB4FF, "(RESPAWN): Respawn ce biti pokrenut za {FFFFFF}(1) {41BAB4}minut." );
}
return (true);
}
OVO SAD RADI SVAKIH 30min RESPAWN, prilagodi sebi kako ti odgovara, samo umjesto if( tmpminute == 30 ) umjesto ovih 30 stavi koliko minuta zelis

Zatim dodas funkciju koja ce uraditi taj respawn
timer VehicleRespawn( vehicleid, provjera )
{
    if(provjera == 1)
{
    foreach( new i : Player )
{
if( IsPlayerInAnyVehicle( i ) )
{
if( !occupied[ GetPlayerVehicleID( i ) ] ) occupied[ GetPlayerVehicleID( i ) ] = true;
}
}
defer VehicleRespawn(0, 0);
}
else
{
if( vehicleid != IVI )
{
if( Parked[ vehicleid ] != -1 ) occupied[ vehicleid ] = true;
  if( !occupied[ vehicleid ] )
{
          SetVehicleToRespawn( vehicleid );
  }
  else occupied[ vehicleid ] = false;
}
if( vehicleid+1 <= GetVehiclePoolSize() ) defer VehicleRespawn(vehicleid+1, 0);
  else ServerInfo[ RRVehicle ] = false, SendClientMessageToAll( 0x41BAB4FF, "(RESPAWN): Respawn svih vozila zavrsen." );
}
  return(true);
}
Tu se nalazi provjera ako se voilo koristi tocnije ako je igrac u njemu da se to ne respawna, a ostalo da se respawna, te na kraju posalje poruku

Nadam se da si shvatio, ukoliko ti nesto nije jasno javi mi se u PP pa cu ti objasniti ako treba.
Frozen_Capone
Crime Lord
pre 5 godina
Miki11 wrote on March 25, 2020, 11:36 pm:
Ovo ti je iz jednog moda, ubiti je jako lagano za napravitii nadam se da ces shvatiti

Prvo dodas funkciju za vreme
task SyncTime()
{
if( tmpminute == 30 )
{
    defer VehicleRespawn(0, 1);
SendClientMessageToAll( 0x41BAB4FF, "(RESPAWN): Server je automatski aktivirao respawn svih vozila." );
SendClientMessageToAll( 0x41BAB4FF, "(RESPAWN): Respawn ce biti pokrenut za {FFFFFF}(1) {41BAB4}minut." );
}
return (true);
}
OVO SAD RADI SVAKIH 30min RESPAWN, prilagodi sebi kako ti odgovara, samo umjesto if( tmpminute == 30 ) umjesto ovih 30 stavi koliko minuta zelis

Zatim dodas funkciju koja ce uraditi taj respawn
timer VehicleRespawn( vehicleid, provjera )
{
    if(provjera == 1)
{
    foreach( new i : Player )
{
if( IsPlayerInAnyVehicle( i ) )
{
if( !occupied[ GetPlayerVehicleID( i ) ] ) occupied[ GetPlayerVehicleID( i ) ] = true;
}
}
defer VehicleRespawn(0, 0);
}
else
{
if( vehicleid != IVI )
{
if( Parked[ vehicleid ] != -1 ) occupied[ vehicleid ] = true;
  if( !occupied[ vehicleid ] )
{
          SetVehicleToRespawn( vehicleid );
  }
  else occupied[ vehicleid ] = false;
}
if( vehicleid+1 <= GetVehiclePoolSize() ) defer VehicleRespawn(vehicleid+1, 0);
  else ServerInfo[ RRVehicle ] = false, SendClientMessageToAll( 0x41BAB4FF, "(RESPAWN): Respawn svih vozila zavrsen." );
}
  return(true);
}
Tu se nalazi provjera ako se voilo koristi tocnije ako je igrac u njemu da se to ne respawna, a ostalo da se respawna, te na kraju posalje poruku

Nadam se da si shvatio, ukoliko ti nesto nije jasno javi mi se u PP pa cu ti objasniti ako treba.


pm sam ti imam errore

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava