PARTNERI:
-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Pomoc] Oko respawna vozila  (Pročitano 77 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže Fr0z3n

  • Transformer
  • *
  • Poruke: 95
  • Pol: Muškarac
  • .CS TEAM
Oko respawna vozila
« poslato: Mart 25, 2020, 17:21:31 posle podne »
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: [Izaberi]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): Ne desava se
Slika ://
Skriper of "MatrixCommunity"
 

Van mreže Arkoo

Odg: Oko respawna vozila
« Odgovor #1 poslato: Mart 26, 2020, 00:10:33 pre podne »
Prvo napravis tajmer npr
 settimer("predrespawn....blabla      //ovaj ide pod ongamemodeinit   
Pawno Code: [Izaberi]
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

Pawno Code: [Izaberi]
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 :D
 

Na mreži Miki11

Odg: Oko respawna vozila
« Odgovor #2 poslato: Mart 26, 2020, 00:36:41 pre podne »
Ovo ti je iz jednog moda, ubiti je jako lagano za napravitii nadam se da ces shvatiti

Prvo dodas funkciju za vreme

Pawno Code: [Izaberi]
task SyncTime[60000]()
{
if( tmpminute == 30 )
{
    defer VehicleRespawn[58000](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
Pawno Code: [Izaberi]
timer VehicleRespawn[10]( vehicleid, provjera )
{
    if(provjera == 1)
{
    foreach( new i : Player )
{
if( IsPlayerInAnyVehicle( i ) )
{
if( !occupied[ GetPlayerVehicleID( i ) ] ) occupied[ GetPlayerVehicleID( i ) ] = true;
}
}
defer VehicleRespawn[2000](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.
 

Van mreže Fr0z3n

  • Transformer
  • *
  • Poruke: 95
  • Pol: Muškarac
  • .CS TEAM
Odg: Oko respawna vozila
« Odgovor #3 poslato: Mart 26, 2020, 15:14:20 posle podne »
Ovo ti je iz jednog moda, ubiti je jako lagano za napravitii nadam se da ces shvatiti

Prvo dodas funkciju za vreme

Pawno Code: [Izaberi]
task SyncTime[60000]()
{
if( tmpminute == 30 )
{
    defer VehicleRespawn[58000](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
Pawno Code: [Izaberi]
timer VehicleRespawn[10]( vehicleid, provjera )
{
    if(provjera == 1)
{
    foreach( new i : Player )
{
if( IsPlayerInAnyVehicle( i ) )
{
if( !occupied[ GetPlayerVehicleID( i ) ] ) occupied[ GetPlayerVehicleID( i ) ] = true;
}
}
defer VehicleRespawn[2000](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
Skriper of "MatrixCommunity"