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 ://
Prvo napravis tajmer npr
settimer("predrespawn....blabla //ovaj ide pod ongamemodeinit
[pawn]forward predrespawn();
public predrespawn()
{
//Poruka da ce respawn poceti za npr 30sek
//ovde taj tajmer dole respawnuj
}
[/pawn]
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
[pawn]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;
}[/pawn]
Nadam se da ces se snaci :D
Ovo ti je iz jednog moda, ubiti je jako lagano za napravitii nadam se da ces shvatiti
Prvo dodas funkciju za vreme
[pawn]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);
}[/pawn]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
[pawn]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);
}[/pawn] 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.
Citat: Miki11 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
[pawn]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);
}[/pawn]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
[pawn]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);
}[/pawn] 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