1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Mo: 23 Juni 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Script alle zB 2 Wochen ausführen.

    • Saturin78
    • 23. April 2019 um 10:32
    • Erledigt
    • Saturin78
      Profi
      Reaktionen
      409
      Trophäen
      10
      Beiträge
      1.340
      • 23. April 2019 um 10:32
      • #1

      Hallo zusammen.

      Ich frage mich gerade ob es möglich ist ein Script nur alle 2 Wochen auszuführen. Also um zB. Baustellen die eine Woche an der Straße zu spawnen und dass die 2 Wochen lang bei jedem Servers tart und dann nach 2 Wochen ändert er die Positionen und die Baustelle ist dann 2 Wochen lang an ner anderen Position.

      Meine das Possition ändern ist nicht das Problem. Es geht mir darum die Zeit festzulegen zB 2Wochen, an denen das Script ( nennen wir es einfach Baustellen_schupsen.sqf) ausgeführt wird.

      Besten Dank.

      Tapse mich wieder ins Arma3 xxx-Life rein :D

    • Gonzka
      Schüler
      Reaktionen
      143
      Trophäen
      9
      Beiträge
      57
      Dateien
      6
      Bilder
      9
      • 23. April 2019 um 10:57
      • #2

      Mittels eines Scripts kann der Server nach jedem Restart das Datum überprüfen und bei Übereinstimmung eines Tages oder einer Zeitspanne beliebige Befehle ausführen. Leider kann ich den Code hier nicht preisgeben, aber es ist möglich! ;)

      ๑۩ GONZKA ۩๑

      → Die Helmut Müller Story

      → Intruders Spielmodus

    • Saturin78
      Profi
      Reaktionen
      409
      Trophäen
      10
      Beiträge
      1.340
      • 23. April 2019 um 11:11
      • #3

      Die Real Zeit und Datum hab ich bereits auf dem Server. Muss also irgendwie das Datum des letzten Ausführen in der DB speichern und dann immer schauen ob das aktuelle Datum zum DB gespeicherten Datum zB 14 Tage später ist. Hm, das ist en Ansatz, werd ich testen, danke.

      Tapse mich wieder ins Arma3 xxx-Life rein :D

    • wepper
      Schüler
      Reaktionen
      25
      Trophäen
      8
      Beiträge
      125
      • 23. April 2019 um 11:15
      • #4

      Du kannst über die Datenbank das aktuelle Datum (und Uhrzeit) beim Starten abfragen und dann entsprechend verarbeiten.

      Die Abfrage für extdb 3:

      realTime = EXTDB "9:LOCAL_TIME";

      realtime = [Jahr,Monat,Tag,Stunde,Minute,Sekunde];

    • ZorG
      Amateur
      Reaktionen
      84
      Beiträge
      276
      • 23. April 2019 um 11:41
      • #5

      Realtime bekommt man doch auch ohne DB:

      C
      if (isServer) then 
      {
         waitUntil {time > 0};
         setDate (missionStart select [0,5]);
      };
    • wepper
      Schüler
      Reaktionen
      25
      Trophäen
      8
      Beiträge
      125
      • 23. April 2019 um 12:06
      • #6
      Zitat von ZorG

      Realtime bekommt man doch auch ohne DB:

      Huch, die Funktion kannte ich noch nicht.

      Ja, würde mit der dann auch gehen.

    • Saturin78
      Profi
      Reaktionen
      409
      Trophäen
      10
      Beiträge
      1.340
      • 23. April 2019 um 12:10
      • #7
      Zitat von ZorG

      Realtime bekommt man doch auch ohne DB:

      C
      if (isServer) then 
      {
         waitUntil {time > 0};
         setDate (missionStart select [0,5]);
      };

      Sorry, da kann ich dir grad nicht folgen. Wo soll er die denn wissen? Der hat doch normal die Zeit, die er in der nission.sqm drin hat, oder nicht?

      Aber Realtime hab ich Ingame bereits, auch läuft die Zeit bei mir real, also nichts mit 8x Tag und 12 x Nacht.

      Tapse mich wieder ins Arma3 xxx-Life rein :D

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 23. April 2019 um 12:53
      • #8

      Also ich würde es so ungefähr machen (ist nur kurz überlegt wie es funktionieren könnte, mit genaueren Informationen lässt sich das noch verbessern).

      ! PSEUDOCODE !

      Code
      timestamp = timestamp mod (14*24*60*60)
      circle = timestamp mod <ANZAHL>
      switch (circle)
          case 0
              MACHWAS1
          case 1
              MACHWAS2
          case <ANZAHL>-1
              MACHWAS<ANZAHL>-1

      Vorrausgesetzt, es soll sich irgendwann wiederhohlen.


      Als alternative ist einfach ein random möglich, damit ist es jedesmal anders.

    • ZorG
      Amateur
      Reaktionen
      84
      Beiträge
      276
      • 23. April 2019 um 15:53
      • #9
      Zitat von Saturin78

      Wo soll er die denn wissen? Der hat doch normal die Zeit, die er in der nission.sqm drin hat, oder nicht?

      https://community.bistudio.com/wiki/missionStart

      Ist ein ARMA Befehl.

      Daraus kann man etwas basteln, wie z.B.:

      C
      private _tag = missionStart select 2;
      if(_tag <= 15) then { baustelle1};
      if(_tag > 15) then { baustelle2};
    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 24. April 2019 um 10:38
      • #10

      Moin,

      also über missionstart wird das nicht funktionieren aber wenn du eh schon realtime nutzt sollte das kein problem sein. Theoretisch kannst du ja sogar die Position mit in der DB speichern so dass er nach 14 tagen nicht direkt wieder an der selben per random wieder spawned.

      Vom Ansatz her würde ich eine Tabelle "Map_Objects" anlegen und dort als Spalten das folgenden einfügen

      ID Typ Position / Mapmarker
      active Last_use
      1 Baustelle baustelle_1 1 2019-04-24
      2 Baustelle baustelle_2 0 2019-04-20
      3 Trader Trader_1 0 2019-03-20
      4 Trader Trader_2 1 2019-04-10

      Das kannst ja im life_server, das dann abfragen und dann per select random dir dort eine rausholen wenn die Zeit abgelaufen ist. Den Abgleich kann man über Timestamp/Date-Funktionen realisieren.

      Code
      /*
          Demoscript life_server random object spawn
          Autor: moeck
      */
      params [
          ["_type","",[""]]
          ,["_days",14,[0]]
      ];
      private _new = false;
      
      if (_type isEqualto "") exitWith { diaglog "Random object spawn: no type specified!"};
      private _query = format ["select id,type,mapmarker,active,last_use from mapobjects where type = '%1'",_type];
      
      tickTime = diag_tickTime;
      private _queryResult = [_query,2,true] call DB_fnc_asyncCall;
      
      if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
          diag_log "------------- Client Query Request -------------";
          diag_log format ["QUERY: %1",_query];
          diag_log format ["Time to complete: %1 (in seconds)",(diag_tickTime - _tickTime)];
          diag_log format ["Result: %1",_queryResult];
          diag_log "------------------------------------------------";
      };
      
      if (_queryResult isEqualType "") exitWith { diaglog "no db entry existing"};
      if (count _queryResult isEqualTo 0) exitWith { diaglog "no db entry existing"};
      
      // calc the time here
      
      // finish calc
      private _lastmarker = "baustelle_1";
      _new = true; // as result of the calc
      //check time
      private _spawnmarkers = [];
      if (_new && {(count _queryResult > 1)}) then {
          { 
              if !(_x select 2 isEqualTo _lastmarker) then {_spawnmarkers pushbackUnique (_x select 2)};
          } foreach _queryResult;
          _newmarker = selectRandom _spawnmarkers;
          _query = format ["update mapobjects set active = '1' where mapmarker = '%1'",_newmarker];
          _lastmarker = _newmarker;
      };
      _lastmarker call life_fnc_spawnRandomObjects;
      Alles anzeigen

      So natürlich muss Du dann noch die Objekte auf der Karte platzieren und konfigurieren. Vielleicht hilft es als Denkanstoß.

      Gruß,

      moeck

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Benutzer online in diesem Thema

    • 1 Besucher

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™