Eigene Ingame-Serverzeit

Aus Survival Servers
Zur Navigation springen Zur Suche springen

Seit dem Release von DayZ Standalone gab es immer wieder den Wunsch, dass Serverbesitzer die Tageszeit auf ihrem Server auf einen bestimmten Punkt festlegen können. Manche möchten zum Beispiel, dass auf ihrem Server immer Tag ist, andere wollen ewige Dunkelheit.

Installation

  1. Fahre den Server herunter, indem du auf der Seite deines Servers im Command Center auf STOP klickst
  2. Melde dich in deinem FTP-Client an. (Infos dazu hier: FTP)
  3. Wechsle in das folgende Verzeichnis: /MPmissions/dayzOffline.chernarusplus (auf Livonia ist es dayzOffline.enoch und auf Frostline dayzOffline.sakhal; verwende auch in den Schritten unten den Ordnernamen deiner Map)
  4. Lade als Nächstes eine Kopie von Capps' Custom DayZ SA Time herunter. Eine Kopie des Ordners „Scripts“ bekommst du auf GitHub
  5. Entpacke den Ordner „Scripts“ in dein Verzeichnis MPMissions\dayzOffline.chernarusplus
  6. Öffne deine Datei Init.c
  7. Füge oben in der Datei Init.c direkt über void main() Folgendes ein
  8.    #include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\Scripts\\cappsTimeLoop.c"  
       int setStartHour = 10;   
       int setStopHour = 16; 
     
  9. Um das Skript zu konfigurieren, passe setStartHour und setStopHour an. Zur Orientierung: 0 steht für 12:00 Uhr morgens und 23 für 11:00 Uhr abends
  10. Als Nächstes fügst du innerhalb von void main() ganz unten Folgendes hinzu
  11.   cappsTimeLoop(setStartHour,setStopHour,true);
      
  12. Scrolle als Nächstes nach unten bis direkt unter override void StartingEquipSetup(PlayerBase player, bool clothesChosen) innerhalb der class CustomMission: MissionServer:
  13. Füge den folgenden Code hinzu:
  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;
    		}
    	}
    

Du kannst bei Survival Servers deinen eigenen DayZ Server hosten – sofort einsatzbereit.