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
Do: 22 Mai 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

    Init der Verarbeiter automatisieren

    • moeck
    • 15. November 2017 um 10:20
    • Erledigt
    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 15. November 2017 um 10:20
      • #1

      Moin,

      ich habe heute mal eine etwas spezielle Frage ;) . Da wir momentan ziemlich viel umbauen und ich auch gewisse Sachen automatisieren möchte, denke ich gerade darüber nach ob es möglich ist die Inits der Verarbeiter zu automatisieren. Wie stelle ich mir das vor aktuell muss man ja bei jedem Verarbeiter die Init selbst eintragen

      z.B.

      C
      init="this enableSimulation false; this allowDamage false; this addAction[localize""STR_Process_Copper"",life_fnc_processAction,""copper"",0,false,false,"""",' life_inv_copperUnrefined > 0 && !life_is_processing && !life_action_inUse']; this addAction[format [""%1 ($%2)"",localize (getText(missionConfigFile >> ""Licenses"" >> ""copper"" >> ""displayName"")), [(getNumber(missionConfigFile >> ""Licenses"" >> ""copper"" >> ""price""))] call life_fnc_numberText],life_fnc_buyLicense,""copper"",0,false,false,"""",' !license_civ_copper && playerSide isEqualTo civilian '];";

      Jetzt würde ich das gern dahin gehend ändern, dass ich in die Init nur noch sowas schreibe

      C
      init="this enableSimulation false; this allowDamage false; [this,""copper""] call life_fnc_checkInvLic;";

      und diese funktion generiert dann allle notwendigen addActions. Die Funktion könnte irgendwie in diese Richtung aussehen

      C
      #include "..\..\script_macros.hpp"
      /*
          file: fn_checkInvLic.sqf
          autor: moeck
          
          Description: checks the inventar and license to generate the init of a processor
      */
      params ["_obj","_process"];
      if ((isNull _obj) || (_process isEqualTo "")) exitWith {};
      
      private _flag = "civ";
      if (playerSide isEqualTo west) then (_flag = "cop");
      if (playerSide isEqualTo independent) then (_flag = "med");
      private _materialsRequired =[];
      private _text = "";
      private _haslicense = false;
      private _addAction = "";
      if (isClass (missionConfigFile >> "ProcessAction" >> _proces)) then {
          
          _materialsRequired = M_CONFIG(getArray,"ProcessAction",_type,"MaterialsReq");
          _text = M_CONFIG(getText,"ProcessAction",_type,"Text");
          _haslicense = LICENSE_VALUE(_process,_flag);
      };
      {
          if (count (_x select 0) isEqualTo 0) exitWith {};
          if (life_is_processing || life_action_inUse) exitWith {};
          _addAction=format ["this addAction[localize""%1"",life_fnc_processAction,""%2"",0,false,false,"""",''];",_text,_process]
      } count _materialsRequired;
      if !(_haslicense) then {
          _string = format[ "this addAction[format [""%1 ($%2)"",localize (getText(missionConfigFile >> ""Licenses"" >> ""%1"" >> ""displayName"")), [(getNumber(missionConfigFile >> ""Licenses"" >> ""%1"" >> ""price""))] call life_fnc_numberText],life_fnc_buyLicense,""%1"",0,false,false,"""",' !license_civ_%1 && playerSide isEqualTo civilian '];",_process];
          _addAction = _addAction + _string;
      };
      _obj call compile _addAction;
      Alles anzeigen

      Hatte sich schon jemand mit dem Thema auseinander gesetzt?

      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 ?

      5 Mal editiert, zuletzt von moeck (15. November 2017 um 15:44)

    • vabene1111
      Schüler
      Reaktionen
      121
      Trophäen
      9
      Beiträge
      72
      • 15. November 2017 um 13:56
      • #2

      ja, wir haben das bei uns so das du in der init des NPC's nur noch angibst welche init aus einer config geladen werden soll, diese wird dann einfach reingeladen.

      wir haben noch das man dem ganzen argumente übergeben kann, dann kann man z.B. sagen garage und übergibt dann als argument noch welche.

      was halt auch noch übergeben werden muss damit das script weiß wo es die actions ran packen soll ist das objekt (also this)

      wenn du genauere Fragen hast sag bescheid :)

      RealLifeRPG Admin & DEV - http://www.realliferpg.de - Modded Arma 3 Roleplay seit 2014

    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 15. November 2017 um 14:27
      • #3

      Du definierst einfach eine Funktion, wie du das ja auch schon gemacht hast mit life_fnc_checkInvLic.

      Allerdings übergibst du als Parameter noch das Object, welches in den Init-Feldern als this abrufbar ist.

      Somit hast du dann am Ende in dem Init-Feld des Editors so etwas wie [this,"copper"] call life_fnc_checkInvLic; stehen.

      Und die Funktion selber fügt dann die AddActions hinzu.

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 15. November 2017 um 15:35
      • #4

      ok, danke ich habe das Script leider noch nicht getestet sondern einfach mal runter geschrieben. muss ich da noch was beachten oder wird es so funzen? habe mal noch was hinzugefügt. Vielleicht könnt ihr nochmal drüber schauen.

      Danke,

      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™