Heure en jeu personnalisée du serveur

De Survival Servers
Aller à la navigation Aller à la recherche

Avec la sortie de DayZ Standalone, plusieurs demandes ont été formulées pour permettre aux propriétaires de serveurs de figer l’heure de la journée sur leur serveur à un moment précis. Par exemple, certains souhaitent que leur serveur reste toujours en plein jour, d’autres préfèrent une obscurité éternelle. Cette page vous aidera donc à installer un petit script côté serveur qui fait exactement cela ! Entrons dans le vif du sujet !

Installation

  1. Arrêtez le serveur en cliquant sur Stop dans le panneau
  2. Connectez-vous à votre client FTP. (Informations ici pour le FTP)
  3. Rendez-vous dans le répertoire suivant : /MPmissions/dayzOffline.chernarusplus
  4. Téléchargez ensuite une copie de Capps' Custom DayZ SA Time. Vous pouvez récupérer une copie du dossier « Scripts » sur GitHub
  5. Extrayez le dossier « Scripts » dans votre répertoire MPMissions\dayzOffline.chernarusplus
  6. Ouvrez votre fichier Init.c
  7. En haut du fichier Init.c, ajoutez directement au-dessus de void main()
  8.    #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\Scripts\\cappsTimeLoop.c"  
       int setStartHour = 10;   
       int setStopHour = 16; 
     
  9. Pour configurer le script, vous devrez ajuster startHour et stopHour. Pour vous donner une idée, 0 correspond à 12:00 h du matin et 23 à 11:00 h de l’après-midi
  10. Ensuite, à l’intérieur du void main(), tout en bas, ajoutez
  11.   cappsTimeLoop(setStartHour,setStopHour,true);
      
  12. Faites ensuite défiler jusqu’à juste en dessous de override void StartingEquipSetup(PlayerBase player, bool clothesChosen), à l’intérieur de class CustomMission: MissionServer:
  13. Vous allez ajouter le code suivant :
  14.  override void TickScheduler (float timeSplice)
    	{
    		GetGame().GetWorld().GetPlayerList(m_Players);
    		if( m_Players.Count() == 0 ) return;
    		for(int i = 0; i < SCHEDULER_PLAYERS_PER_TICK; i++)
    		{
    	     if(m_currentPlayer >= m_Players.Count() )
    	     {
    	        m_currentPlayer = 0;
    	     }
    	     PlayerBase currentPlayer = PlayerBase.Cast(m_Players.Get(m_currentPlayer));
    	     currentPlayer.OnTick();
    	     m_currentPlayer++;
    
    	   }
    		//Ignore above code that is required to keep food,drink and other survival elements working
    
    		int currentTime = GetGame().GetTime() * 0.001;
    		static int newTime = 0;
    		int timeDelay = 180;
    		if (currentTime >= newTime + timeDelay)
    		{
    			//GetGame().ChatPlayer(1,"3 minute check on reset!");//for debug pruposes
    			cappsTimeLoop(setStartHour,setStopHour,false);
    			//GetGame().ChatPlayer(1,"Passed the time switch call");//for debug pruposes
    			newTime = currentTime;
    		}
    	}
    

Vous pouvez héberger votre propre serveur DayZ chez Survival Servers avec une installation instantanée.