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
Sa: 24 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

    Tempest Gerät Farmzonen

    • T.Sup
    • 25. August 2016 um 12:41
    • Geschlossen
    • Erledigt
    • T.Sup
      Frischling
      Reaktionen
      2
      Trophäen
      9
      Beiträge
      12
      • 25. August 2016 um 12:41
      • #1

      Guten Tag,
      ich habe derzeit folgendes Problem.
      Ich möchte, dass der Tempest Gerät nur in bestimmten Zonen farmen kann. In den vorherigen Versionen war das alles kein Problem - einfach bei resourcezones geändert.

      Aber in der 4.4r3 sieht das etwas anders aus:

      Code: fn_deviceMine.sqf
      #include "..\..\script_macros.hpp"
      /*
          File: fn_deviceMine.sqf
          Author: Bryan "Tonic" Boardwine
          Modified: Devilfloh
          Description:
          Starts automated mining of resource from the tempest device. Not integrated with percents.
      */
      private["_vehicle","_resourceZones","_zone","_weight","_resource","_vInv","_itemIndex","_items","_sum","_itemWeight","_isMineral"];
      _vehicle = param [0,objNull,[objNull]];
      _isMineral = true;
      if (isNull _vehicle) exitWith {};
      
      
      
      
      if (!isNil {_vehicle getVariable "mining"}) exitWith {
          hint localize "STR_NOTF_DeviceIsMining";
      };
      
      
      
      
      if (fuel _vehicle isEqualTo 0) exitWith {
          titleText[localize "STR_NOTF_OutOfFuel","PLAIN"];
      };
      
      
      
      
      closeDialog 0; //Close the interaction menu.
      life_action_inUse = true; //Lock out the interaction menu for a bit..
      
      
      
      
      _weight = [_vehicle] call life_fnc_vehicleWeight;
      if ((_weight select 1) >= (_weight select 0)) exitWith {
          hint localize "STR_NOTF_DeviceFull";
          life_action_inUse = false;
      };
      
      
      
      
      //check if we are in the resource zone for any of the resources
      _zone = "";
      
      
      
      
      _resourceCfg = missionConfigFile >> "CfgGather" >> "Resources";
      for "_i" from 0 to count(_resourceCfg)-1 do {
          _curConfig = (_resourceCfg select _i);
          _resource = configName(_curConfig);
          _resourceZones = getArray(_curConfig >> "zones");
          _zoneSize = getNumber(_curConfig >> "zoneSize");
      
      
      
      
          {
              if ((player distance (getMarkerPos _x)) < _zoneSize) exitWith {
                  _zone = _x;
              };
          } forEach _resourceZones;
      
      
      
      
          if (_zone != "") exitWith {_isMineral = false;};
      };
      
      
      
      
      _resourceCfg = missionConfigFile >> "CfgGather" >> "Minerals";
      for "_i" from 0 to count(_resourceCfg)-1 do {
          private ["_curConfig","_resourceZones","_resources","_mined"];
      
      
      
      
          if (!_isMineral) exitWith {};
          _curConfig = (_resourceCfg select _i);
          _resources = getArray(_curConfig >> "mined");
          _resourceZones = getArray(_curConfig >> "zones");
          _zoneSize = getNumber(_curConfig >> "zoneSize");
      
      
      
      
          if (!(_resources select 0 isEqualType [])) then {
              _mined = _resources select 0;
          } else {
              _mined = (_resources select 0) select 0;
          };
      
      
      
      
          {
              if ((player distance (getMarkerPos _x)) < _zoneSize) exitWith {
                  _zone = _x;
              };
          } forEach _resourceZones;
      
      
      
      
          if (_zone != "") exitWith {_resource = _mined};
      };
      
      
      
      
      if (_zone isEqualTo "") exitWith {
          hint localize "STR_NOTF_notNearResource";
          life_action_inUse = false;
      };
      
      
      
      
      _vehicle setVariable ["mining",true,true]; //Lock the device
      _vehicle remoteExec ["life_fnc_soundDevice",RCLIENT]; //Broadcast the 'mining' sound of the device for nearby units.
      
      
      
      
      life_action_inUse = false; //Unlock it since it's going to do it's own thing...
      
      
      
      
      for "_i" from 0 to 1 step 0 do {
          if (!alive _vehicle || isNull _vehicle) exitWith {};
      
      
      
      
          if ((isEngineOn _vehicle) || ((speed _vehicle) > 5)) exitWith {
              titleText[localize "STR_NOTF_MiningStopped","PLAIN"];
          };
      
      
      
      
          if (fuel _vehicle isEqualTo 0) exitWith {
              titleText[localize "STR_NOTF_OutOfFuel","PLAIN"];
          };
      
      
      
      
          titleText[localize "STR_NOTF_DeviceMining","PLAIN"];
          _time = time + 27;
      
      
      
      
          //Wait for 27 seconds with a 'delta-time' wait.
          waitUntil {
              if ((isEngineOn _vehicle) || ((speed _vehicle) > 5)) exitWith {
                  _vehicle setVariable ["mining",nil,true];
                  titleText[localize "STR_NOTF_MiningStopped","PLAIN"];
                  true
              };
      
      
      
      
              if (round(_time - time) < 1) exitWith {
                  true
              };
      
      
      
      
              if (fuel _vehicle < 0.1) exitWith {
                  _vehicle setVariable ["mining",nil,true];
                  titleText[localize "STR_NOTF_OutOfFuel","PLAIN"];
                  true
              };
      
      
      
      
              sleep 0.2;
              false
          };
      
      
      
      
          if ((isEngineOn _vehicle) || ((speed _vehicle) > 5)) exitWith {
              _vehicle setVariable ["mining",nil,true];
              titleText[localize "STR_NOTF_MiningStopped","PLAIN"];
          };
      
      
      
      
          _vehicle_data = _vehicle getVariable ["Trunk",[[],0]];
          _inv = (_vehicle_data select 0);
          _space = (_vehicle_data select 1);
          _itemIndex = [_resource,_inv] call TON_fnc_index;
          _weight = [_vehicle] call life_fnc_vehicleWeight;
          _random = 10 + round((random(10)));
          _sum = [_resource,_random,(_weight select 1),(_weight select 0)] call life_fnc_calWeightDiff; // Get a sum base of the remaining weight..
      
      
      
      
          if (_sum < 1) exitWith {
              titleText[localize "STR_NOTF_DeviceFull","PLAIN"];
              _vehicle setVariable ["mining",nil,true];
          };
      
      
      
      
          if (_itemIndex isEqualTo -1) then {
              _inv pushBack [_resource,_sum];
          } else {
              _val = (_inv select _itemIndex) select 1;
              _inv set[_itemIndex,[_resource,_val + _sum]];
          };
      
      
      
      
          if (fuel _vehicle < 0.1) exitWith {
              _vehicle setVariable ["mining",nil,true];
              titleText[localize "STR_NOTF_OutOfFuel","PLAIN"];
          };
      
      
      
      
          //Locality checks...
          if (local _vehicle) then {
              _vehicle setFuel (fuel _vehicle)-0.05;
          } else {
              [_vehicle,(fuel _vehicle)-0.05] remoteExec ["life_fnc_setFuel",_vehicle];
          };
      
      
      
      
          if (fuel _vehicle < 0.1) exitWith {
              titleText[localize "STR_NOTF_OutOfFuel","PLAIN"];
              _vehicle setVariable ["mining",nil,true];
          };
      
      
      
      
          _itemName = M_CONFIG(getText,"VirtualItems",_resource,"displayName");
          titleText[format[localize "STR_NOTF_DeviceMined",_sum,(localize _itemName)],"PLAIN"];
          _itemWeight = ([_resource] call life_fnc_itemWeight) * _sum;
          _vehicle setVariable ["Trunk",[_inv,_space + _itemWeight],true];
          _weight = [_vehicle] call life_fnc_vehicleWeight;
          _sum = [_resource,_random,(_weight select 1),(_weight select 0)] call life_fnc_calWeightDiff; //Get a sum base of the remaining weight..
      
      
      
      
          if (_sum < 1) exitWith {
              _vehicle setVariable ["mining",nil,true];
              titleText[localize "STR_NOTF_DeviceFull","PLAIN"];
          };
      
      
      
      
          sleep 2;
      };
      
      
      
      
      _vehicle setVariable ["mining",nil,true];
      Alles anzeigen


      Wie bekomme ich diese Spezifikation in 4.4r3 hin?

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 25. August 2016 um 12:45
      • #2

      alles was in der Config_Gather.hpp in der Klasse Minerals eingetragem ist, kann mit dem Tempest Gerät gefarmt werden.

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • T.Sup
      Frischling
      Reaktionen
      2
      Trophäen
      9
      Beiträge
      12
      • 25. August 2016 um 12:59
      • #3

      Hey!
      Vielen Dank für deine schnelle Antwort.
      Leider funktioniert es nicht so wie du es beschreibst.
      Hier mal meine Config.Gather

      Code
      class Minerals {
              class iron_unrefined {
                  amount = 2;
                  zones[] = { "iron_mine" };
                  item = "pickaxe";
                  mined[] = { "iron_unrefined" };
                  zoneSize = 30;
              };		
          };
      Code
      class Resources {
              class cannabis {
                  amount = 3;
                  zones[] = { "weed_1" };
                  item = "";
                  zoneSize = 30;
              };


      Ich kann dennoch Cannabis mit dem Truck farmen. Und Eisen auch.

      Bilder

      • Screenshot_6.png
        • 620,34 kB
        • 777 × 527
        • 232
    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 25. August 2016 um 14:13
      • #4

      stimmt mein Fehler, wer lesen kann ist klar im Vorteil.


      Code: fn_deviceMine.sqf
      _resourceCfg = missionConfigFile >> "CfgGather" >> "Resources";
      for "_i" from 0 to count(_resourceCfg)-1 do {
       _curConfig = (_resourceCfg select _i);
       _resource = configName(_curConfig);
       _resourceZones = getArray(_curConfig >> "zones");
       _zoneSize = getNumber(_curConfig >> "zoneSize");
       {
       if ((player distance (getMarkerPos _x)) < _zoneSize) exitWith {
       _zone = _x;
       };
       } forEach _resourceZones;
       if (_zone != "") exitWith {_isMineral = false;};
      };
      _resourceCfg = missionConfigFile >> "CfgGather" >> "Minerals";
      for "_i" from 0 to count(_resourceCfg)-1 do {
       private ["_curConfig","_resourceZones","_resources","_mined"];
       if (!_isMineral) exitWith {};
       _curConfig = (_resourceCfg select _i);
       _resources = getArray(_curConfig >> "mined");
       _resourceZones = getArray(_curConfig >> "zones");
       _zoneSize = getNumber(_curConfig >> "zoneSize");
       if (!(_resources select 0 isEqualType [])) then {
       _mined = _resources select 0;
       } else {
       _mined = (_resources select 0) select 0;
       };
       {
       if ((player distance (getMarkerPos _x)) < _zoneSize) exitWith {
       _zone = _x;
       };
       } forEach _resourceZones;
       if (_zone != "") exitWith {_resource = _mined};
      };
      Alles anzeigen

      es werden beide Klassen, Mineralien und Resourcen, automatisch gemined.

      Das einzige was mir hier jetzt noch einfällt, ist eine weitere Variable in der Config, wie device = true; oder eben device = false; und das könnte man dann eben mit einer if-Abfrage filtern.

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    • T.Sup
      Frischling
      Reaktionen
      2
      Trophäen
      9
      Beiträge
      12
      • 25. August 2016 um 14:17
      • #5

      Könnte man nicht den Resources Teil ausklammern?

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 25. August 2016 um 14:54
      • #6

      Kannst du testen, aber normal schon.

      23106-logo-schrift-dunkel-390-70-png class=

      Services rund um ArmA RPG Life

      ArmA Bibel: https://community.bistudio.com/wiki/

    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™