Oko respawna vozila


Započeo Fr0z3n, Mart 25, 2020, 17:21:31 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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   
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 :D

Ovo ti je iz jednog moda, ubiti je jako lagano za napravitii nadam se da ces shvatiti

Prvo dodas funkciju za vreme

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
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.

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

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
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