Eigene Ingame-Serverzeit

Aus Survival Servers
Zur Navigation springen Zur Suche springen

Mit dem Release von DayZ Standalone gab es einige Anfragen, Serverbesitzern die Möglichkeit zu geben, die Tageszeit auf ihrem Server auf einen bestimmten Punkt festzulegen. Manche möchten zum Beispiel, dass auf ihrem Server immer Tag ist, andere wollen ewige Dunkelheit. Diese Seite hilft dir deshalb dabei, ein kleines serverseitiges Skript zu installieren, das genau das erledigt! Legen wir direkt los!

Installation

  1. Fahre den Server herunter, indem du im Webinterface auf Stop klickst
  2. Melde dich in deinem FTP-Client an. (Infos dazu hier: FTP)
  3. Wechsle in das folgende Verzeichnis: /MPmissions/dayzOffline.chernarusplus
  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, passt du startHour und stopHour an. Zur Orientierung: 0 ist 12:00 Uhr morgens und 23 ist 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 bis direkt unter override void StartingEquipSetup(PlayerBase player, bool clothesChosen) innerhalb von 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.