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
Fr: 23 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. Tutorials & Releases

    [Tutorial] Flüssigkeiten nur in Tankern lagern

      • Altis Life
    • moeck
    • 29. November 2017 um 14:53
    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 29. November 2017 um 14:53
      • #1

      Moin,

      da ich aktuell mal wieder in der Entwicklung für ein neues Update stecke und so einiges umbaue bzw. einfacher mache habe ich mir gedacht ich lasse Euch mal eine Kleinigkeit da. Wir haben aktuell schon die Möglichkeit flüssige Stoffe (Bier, Oil, Kerosin) nur in Tankwagen zu lagern, allerdings ist mir das Ganze zu umständlich und fehleranfällig gewesen, daher habe ich das System mal ein wenig modifiziert. Im folgendem möchte ich Euch kurz zeigen wie man das relativ einfach umsetzen kann.

      Wie immer gilt, das Tutorial darf gern verwendet allerdings nicht in andere Foren kopiert werden ;)

      Gut fangen wir einfach mal an.

      1. Config_vItems.hpp

      Achtung das ist nur ein Auszug und Ihr müsst alle Eure Items dahingehend erweitern!

      C
      class VirtualItems {
          //Virtual Items
          //SellItems
          //Legal
          class cement { //Reifen
              variable = "cement";
              displayName = "STR_Item_CementBag";
              weight = 5;
              buyPrice = -1;
              sellPrice = 2000;
              illegal = false;
              edible = -1;
              icon = "icons\ico_cement.paa";
              showPrice = true;
              liquid=false;
          };
          class oilp { //Öl
              variable = "oilp";
              displayName = "STR_Item_OilP";
              weight = 4;
              buyPrice = -1;
              sellPrice = 5000;
              illegal = false;
              edible = -1;
              icon = "icons\ico_oilProcessed.paa";
              liquid=true;
          };
      };
      Alles anzeigen

      Die VirtualItems werden um ein Attribut erweitert. Dieses lautet liquidund ist true oder false.

      2. Config_Vehicle.hpp

      Auch hier müsste ihr die Änderung für alle Fahrzeuge vornehmen

      C
      class LifeCfgVehicles {
          /*
          *    Vehicle Configs (Contains textures and other stuff)
          *
          *    "price" is the price before any multipliers set in Master_Config are applied.
          *
          *    Default Multiplier Values & Calculations:
          *       Civilian [Purchase, Sell]: [1.0, 0.5]
          *       Cop [Purchase, Sell]: [0.5, 0.5]
          *       Medic [Purchase, Sell]: [0.75, 0.5]
          *       ChopShop: Payout = price * 0.25
          *       GarageSell: Payout = price * [0.5, 0.5, 0.5, -1]
          *       Cop Impound: Payout = price * 0.1
          *       Pull Vehicle from Garage: Cost = price * [1, 0.5, 0.75, -1] * [0.5, 0.5, 0.5, -1]
          *           -- Pull Vehicle & GarageSell Array Explanation = [civ,cop,medic,east]
          *
          *       1: STRING (Condition)
          *    Textures config follows { Texture Name, side, {texture(s)path}, Condition}
          *    Texture(s)path follows this format:
          *    INDEX 0: Texture Layer 0
          *    INDEX 1: Texture Layer 1
          *    INDEX 2: Texture Layer 2
          *    etc etc etc
          *
          */
      
          class Default {
              vItemSpace = -1;
              conditions = "";
              price = -1;
              storeLiquid= false;
              textures[] = {};
          };
          
          class C_Offroad_01_F {
              vItemSpace = 80;
              conditions = "";
              price = 10000;
              storeLiquid= false;
              textures[] = {};
          };
          
          class C_Van_01_fuel_F {
              vItemSpace = 150;
              conditions = "";
              price = 30000;
              storeLiquid= true;
              textures[] = {};
          };
      };
      Alles anzeigen

      Auch hier wurde ein zusätzliches Attribute eingefügt storeLiquidmit den Werten true oder false

      3. fn_vehStoreItem.sqf

      C: fn_vehStoreItem.sqf
      #include "..\..\script_macros.hpp"
      #define ctrlSelData(ctrl) (lbData[##ctrl,(lbCurSel ##ctrl)])
      /*
          File: fn_vehStoreItem.sqf
          Author: Bryan "Tonic" Boardwine
          modified by moeck
      
          Description:
          Used in the vehicle trunk menu, stores the selected item and puts it in the vehicles virtual inventory
          if the vehicle has room for the item.
      */
      private ["_ctrl","_num","_totalWeight","_itemWeight","_veh_data","_inv","_index","_val"];
      disableSerialization;
      if ((life_trunk_vehicle getVariable ["trunk_in_use_by",player]) != player) exitWith { closeDialog 0; hint localize "STR_MISC_VehInvUse"; };
      
      _ctrl = ctrlSelData(3503);
      _num = ctrlText 3506;
      if (!([_num] call TON_fnc_isnumber)) exitWith {hint localize "STR_MISC_WrongNumFormat";};
      _num = parseNumber(_num);
      if (_num < 1) exitWith {hint localize "STR_MISC_Under1";};
      
      _totalWeight = [life_trunk_vehicle] call life_fnc_vehicleWeight;
      
      _itemWeight = ([_ctrl] call life_fnc_itemWeight) * _num;
      _veh_data = life_trunk_vehicle getVariable ["Trunk",[[],0]];
      _inv = _veh_data select 0;
      
      //Hier wird geprüft ob das auch in Fahrzeug passt
      _fueltruck = M_CONFIG(getNumber,"LifeCfgVehicles",(typeOf life_trunk_vehicle),"storeLiquid");
      _liquidItem = M_CONFIG(getNumber,"VirtualItems",_ctrl,"liquid");
      if ((_liquidItem isEqualTo 1) && (_fueltruck isEqualTo 0)) exitWith {hint "BISSU IRRE? Dat Zeug wuerde ueberall auslaufen! Das Fahrzeug kann nur feste Stoffe transportieren!"}; //kann man noch lokalisieren :-P
      if ((_liquidItem isEqualTo 0) && (_fueltruck isEqualTo 1)) exitWith {hint "Ey Jung! Dat passt nich durch den Stutzen! Tankwagen sind für Flüssigkeiten da!"}; //kann man noch lokalisieren :-P
      
      if (_ctrl == "goldbar" && {!(life_trunk_vehicle isKindOf "LandVehicle")}) exitWith {hint localize "STR_NOTF_canOnlyStoreInLandVeh";};
      
      if (_ctrl == "money") then {
          _index = [_ctrl,_inv] call TON_fnc_index;
          if (CASH < _num) exitWith {hint localize "STR_NOTF_notEnoughCashToStoreInVeh";};
          if (_index isEqualTo -1) then {
              _inv pushBack [_ctrl,_num];
          } else {
              _val = _inv select _index select 1;
              _inv set[_index,[_ctrl,_val + _num]];
          };
      
          CASH = CASH - _num;
          [0] call SOCK_fnc_updatePartial;
          life_trunk_vehicle setVariable ["Trunk",[_inv,(_veh_data select 1) + _itemWeight],true];
          [life_trunk_vehicle] call life_fnc_vehInventory;
      } else {
          if (((_totalWeight select 1) + _itemWeight) > (_totalWeight select 0)) exitWith {hint localize "STR_NOTF_VehicleFullOrInsufCap";};
      
          if (!([false,_ctrl,_num] call life_fnc_handleInv)) exitWith {hint localize "STR_CouldNotRemoveItemsToPutInVeh";};
          _index = [_ctrl,_inv] call TON_fnc_index;
          if (_index isEqualTo -1) then {
              _inv pushBack [_ctrl,_num];
          } else {
              _val = _inv select _index select 1;
              _inv set[_index,[_ctrl,_val + _num]];
          };
      
          life_trunk_vehicle setVariable ["Trunk",[_inv,(_veh_data select 1) + _itemWeight],true];
          [life_trunk_vehicle] call life_fnc_vehInventory;
      };
      Alles anzeigen

      Damit sind wir auch schon fertig ;)

      Ist nichts Großes aber ganz hilfreich wenn man nicht nur Sand / Kupfer / ... als Route machen möchte. Natürlich könnte man das auch noch weiterspinnen und die Fahrzeugauswahl auf weitere Sachen einschränken. Dem Ganzen sind eigentlich keine Grenzen gesetzt :P

      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 ?

    • anonop
      Schüler
      Reaktionen
      18
      Trophäen
      9
      Beiträge
      106
      • 29. November 2017 um 16:43
      • #2

      Für alle Item erweitern ? Weil wie soll man eine Flasche Wasser oder taktischen Speck dann einstellen z.b. weil solche Gegenstände will man schon noch beim Farmen einlagern damit der Rucksack leer ist ;)

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 29. November 2017 um 17:33
      • #3
      Zitat von moeck

      1. Config_vItems.hpp


      Achtung das ist nur ein Auszug und Ihr müsst alle Eure Items dahingehend erweitern!
      C
      class VirtualItems {
      //Virtual Items
      //SellItems
      //Legal
      class cement { //Reifen
      variable = "cement";
      displayName = "STR_Item_CementBag";
      weight = 5;
      buyPrice = -1;
      sellPrice = 2000;
      illegal = false;
      edible = -1;
      icon = "icons\ico_cement.paa";
      showPrice = true;
      liquid=false;
      };
      class oilp { //Öl
      variable = "oilp";
      displayName = "STR_Item_OilP";
      weight = 4;
      buyPrice = -1;
      sellPrice = 5000;
      illegal = false;
      edible = -1;
      icon = "icons\ico_oilProcessed.paa";
      liquid=true;
      };
      };Alles anzeigen

      Die VirtualItems werden um ein Attribut erweitert. Dieses lautet liquidund ist true oder false.

      Alles anzeigen

      Da legst du fest was eine Flüssigkeit ist.

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • anonop
      Schüler
      Reaktionen
      18
      Trophäen
      9
      Beiträge
      106
      • 29. November 2017 um 19:17
      • #4

      Richtig ... wenn du mit einem Tanker unterwegs bist und deine Flasche Wasser und dein Essen einlagern willst musste sagen es ist flüssig .... willste aber dann mit deinem HEMTT Box farmen gehen kannste dein Trinken und Essen nicht ins Fahrzeug legen ...

      Wie das Script funktioniert weiß ich wohl ... ich gebe nur Feedback ...

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 29. November 2017 um 20:06
      • #5

      seit wann kann man feststoffe im Tanke lagern, also entweder oder ;)

      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 ?

    • anonop
      Schüler
      Reaktionen
      18
      Trophäen
      9
      Beiträge
      106
      • 29. November 2017 um 20:10
      • #6

      es geht um dinge die man zusätzlich dabei hat ... essen und trinken ... deswegen ist die alte variante die es gibt besser weil man da explizit stoffe festlegt

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 29. November 2017 um 21:02
      • #7

      naja kann man so oder so sehen ^^ , habe es auch in der alten variante schon deaktiviert und mit der geänderten config wird es halt einffacher und man vergisst es nicht

      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 ?

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 29. November 2017 um 21:21
      • #8
      Zitat von anonop

      es geht um dinge die man zusätzlich dabei hat ... essen und trinken ... deswegen ist die alte variante die es gibt besser weil man da explizit stoffe festlegt

      Wenn du das willst, nutzt du statt false/true einfach 0 1 und z.B. -1 und machst ne Abfrage rein, dass wenn -1 ist der Rest ignoriert wird, sprich man diese Items überall einlagern kann.

      Was man auch machen könnte, wäre zu sagen Fahrzeuge haben einen Kofferraum der Größe X (X > 0). Für Feststoffe von kann der Teil Y (Y<=X) genutzt werden, der restliche Lagerplatz Z (Z=X-Y) kann nur für Flüssigkeiten genutzt werden. Müsste man ein bisschen was umschreiben, aber wäre auch ne Lösung wenn du das willst ^^

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • CrypteX
      Fortgeschrittener
      Reaktionen
      23
      Trophäen
      9
      Beiträge
      316
      • 6. März 2018 um 15:12
      • #9

      blackfisch geht das auch bei Fahrzeugen mit dem Wert umlegen? Also sagen wir zB ein Tempest Gerät bekommt dann den Wert -1 und dann kann ich beides reinlagern?

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 7. März 2018 um 09:02
      • #10

      Moin, ja haben wir so implementiert, dass man in bestimmte Fahrzeuge bzw. Häuser auch Flüssigkeiten lagern kann ;)

      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 ?

    • CrypteX
      Fortgeschrittener
      Reaktionen
      23
      Trophäen
      9
      Beiträge
      316
      • 7. März 2018 um 09:25
      • #11

      Jap habs auch so eingestellt, -1 funktioniert. Danke :thumbup:

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 7. März 2018 um 09:26
      • #12

      ich könnte jetzt was behaupten aber ich lasse es mal 8o

      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 ?

    • CrypteX
      Fortgeschrittener
      Reaktionen
      23
      Trophäen
      9
      Beiträge
      316
      • 7. März 2018 um 09:51
      • #13

      schande über mein Haupt ^^ normalerweise teste ich erst und meckere dann 8o

    • CrypteX
      Fortgeschrittener
      Reaktionen
      23
      Trophäen
      9
      Beiträge
      316
      • 3. April 2018 um 20:53
      • #14

      -

      Einmal editiert, zuletzt von CrypteX (3. April 2018 um 21:25) aus folgendem Grund: hat sich erledigt

    • MatzeGam1ngTv
      Kenner
      Reaktionen
      117
      Trophäen
      9
      Beiträge
      487
      Bilder
      60
      • 14. Mai 2018 um 18:03
      • #15

      Ich hab das bei mir eingebaut. Nur kann ich trostdem alles in den Tank Trucks rein machen.

      Woran kann das liegen?

    • CrypteX
      Fortgeschrittener
      Reaktionen
      23
      Trophäen
      9
      Beiträge
      316
      • 14. Mai 2018 um 18:06
      • #16

      Poste mal deine Config_Vehicle, Config_vItem und fn_vehStoreItem.sqf hier rein

    • MatzeGam1ngTv
      Kenner
      Reaktionen
      117
      Trophäen
      9
      Beiträge
      487
      Bilder
      60
      • 14. Mai 2018 um 18:12
      • #17

      Muss ich leider per Rar machen da die Zeichen zu viele sind und hpp nicht Angenommen sind als Anhang.

      Tank.rar

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 14. Mai 2018 um 19:31
      • #18

      in den vitems fehlt noch der Eintrag

      Code
      liquid = false;

      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 ?

    • MatzeGam1ngTv
      Kenner
      Reaktionen
      117
      Trophäen
      9
      Beiträge
      487
      Bilder
      60
      • 14. Mai 2018 um 22:16
      • #19

      moeck Hab das doch drinnen unter ... icon;

      Einmal editiert, zuletzt von MatzeGam1ngTv (14. Mai 2018 um 22:49)

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 14. Mai 2018 um 23:08
      • #20

      ja habe ich gesehen, hänge mal die fn_vehStoreItem.sqf an

      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

    Tags

    • Flüssige Stoffe

    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™