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: 03 Juli 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

    Ermittlung anzahl von Items in einer Box

      • Wasteland
    • Grf-Ttanfall
    • 30. April 2018 um 09:21
    • Erledigt
    • Grf-Ttanfall
      Anfänger
      Reaktionen
      17
      Trophäen
      8
      Beiträge
      65
      • 30. April 2018 um 09:21
      • #1

      Hallo zusammen,

      ich bräuchte mal eure Hilfe.

      ich würde gerne via addAction ein script aufrufen das mir als hint die anzahl eines bestimmten gegenstandes in einer Box ausgibt.

      --> addaction funktioniert soweit

      Fragestellung 2 = script zum auslesen der anzahl eines definierten Items an dem die Addaction hängt

      Fragestellung 2 = am rande da ich das noch später in einem anderen script brauche.... geht es eine bestimmte anzahl von einem bestimmten Item in einer Box zu löschen ? wenn ja wie ?

      der Addaction ist wie folgt aufgebaut

      //Script für den Abbau von Rohstoffen

      // ROHSATOFF Kohle

      _unit = _this select 0; //objekt an dem aus das script hängt

      _caller = _this select 1; // aufrufer

      _action = _this select 2; // action selber

      _st = 0; //startschleife

      _end = 20; //enddurchlauf schleife sprich erzeugt 20 Items

      if ("Grft_Schaufel" in items _caller) then // Prüft ob eine schaufel im I-Inventar ist.

      {

      hint "Kohle wird abgebaut"; // Mitteilung über start des Abbaus

      _unit removeAction _action; // setzt den Menuebefehl außer Kraft solange der Abbau aktiv ist;

      while {_st < _end} do

      {

      _unit addItemCargoGlobal ["Grft_Kohle",1];

      _st = _st +1;

      sleep 1;

      };

      hint "Abbau fertig, -> schau in die Kiste";


      ---> hier soll dann noch zusätzlich ein hint stehen mit der anzahl der "kohle" in der kiste"


      _unit addAction ["Baue Kohle ab","GRFT_scripts\grft_kohleabbau.sqf",nil,1.5,true,true,"","true",2,false,"",""]; // Aktiviert ein erneuter Abbau

      }else{

      hint "dir fehlt die Schaufel";

      };

      grüße GRFT- Titanfall

      Native Network Servervorstellung = TITANFALL-LIFE RP Server ALTIS LIFE 5.0

      Teamspeak: titanfall-life.de

      Discord: https://discord.gg/kSrq3c

      Einmal editiert, zuletzt von Grf-Ttanfall (30. April 2018 um 09:27)

    • Marius1773
      Profi
      Reaktionen
      369
      Trophäen
      9
      Beiträge
      962
      • 30. April 2018 um 10:44
      • #2

      Gibt es wirklich einen schönen Befehl dafür: https://community.bistudio.com/wiki/getItemCargo

      Windows Server :love:

      Das Heilige Buch der Arma 3 Scripter, die Arma 3 Scripter Bibel: https://community.bistudio.com/wiki/Category:Scripting_Commands

    • Grf-Ttanfall
      Anfänger
      Reaktionen
      17
      Trophäen
      8
      Beiträge
      65
      • 30. April 2018 um 10:52
      • #3
      Zitat von Marius1773

      Gibt es wirklich einen schönen Befehl dafür: https://community.bistudio.com/wiki/getItemCargo

      ja irgendwie schon aber komme damjit nicht klar gerade was die fragestellung 2

      sprich ich will ja ein klar definiertes item die anzahl wissen bzw. zu einem klar definierten item eine bestimmte anzahl löschen.

      vielleicht mal an einem bsp.

      also angenommen...

      ich lege in die box

      10x GTFT_Kohle

      20x GTFT_Eisenerz

      theoretisch könnten ja noch andere sachen drinn liegen die aber unberücksichtigt bleiben sollen

      bsp

      5x item irgendwas

      dies möchte ich in 2 variablen speichern

      _ItemKohle = ? // die anzahl von GRFT_Kohle

      _ItemEisenerz = ? // die anzahl von GRFT_Eisenerz

      Native Network Servervorstellung = TITANFALL-LIFE RP Server ALTIS LIFE 5.0

      Teamspeak: titanfall-life.de

      Discord: https://discord.gg/kSrq3c

      Einmal editiert, zuletzt von Grf-Ttanfall (30. April 2018 um 11:00)

    • Marius1773
      Profi
      Reaktionen
      369
      Trophäen
      9
      Beiträge
      962
      • 30. April 2018 um 10:56
      • #4

      Ja der gibt dir die Anzahl raus mit dem item

      Windows Server :love:

      Das Heilige Buch der Arma 3 Scripter, die Arma 3 Scripter Bibel: https://community.bistudio.com/wiki/Category:Scripting_Commands

    • Grf-Ttanfall
      Anfänger
      Reaktionen
      17
      Trophäen
      8
      Beiträge
      65
      • 30. April 2018 um 11:05
      • #5
      Zitat von Marius1773

      Ja der gibt dir die Anzahl raus mit dem item

      ja wirft in einem array aus... bitte verzeih mir meine unkenntniss --> neuling

      letzendlich will ich genau eine zahl zu den definierten Items. es wäre nettt wenn ich vielleicht dazu ein bsp hätte ?

      vielleicht mal an einem bsp.

      also angenommen...

      ich lege in die box

      10x GTFT_Kohle

      20x GTFT_Eisenerz

      theoretisch könnten ja noch andere sachen drinn liegen die aber unberücksichtigt bleiben sollen

      bsp

      5x item irgendwas

      dies möchte ich in 2 variablen speichern

      _ItemKohle = ? // die anzahl von GRFT_Kohle

      _ItemEisenerz = ? // die anzahl von GRFT_Eisenerz

      Native Network Servervorstellung = TITANFALL-LIFE RP Server ALTIS LIFE 5.0

      Teamspeak: titanfall-life.de

      Discord: https://discord.gg/kSrq3c

    • Grf-Ttanfall
      Anfänger
      Reaktionen
      17
      Trophäen
      8
      Beiträge
      65
      • 30. April 2018 um 15:45
      • #6

      Hallo also nachtrag habe das problem nun selbst gelöst.... nun stehe ich vor einem neuen problem.

      Nämlich wie bekomme ich die Items wieder gelöscht.

      zusammengefasst der befehl für das hinzufügen ist ja

      Code
      _unit addItemCargoGlobal ["Grft_Aluminium",1];

      so wer jetzt denkt mit

      Code
      _unit removeMagazineGlobal "Grft_Kohle";

      liegt falsch

      ich habe alle remove befehle ausprobiert nix funzt.

      ps alle Items haben die selbe class "CA_Magazine"

      Native Network Servervorstellung = TITANFALL-LIFE RP Server ALTIS LIFE 5.0

      Teamspeak: titanfall-life.de

      Discord: https://discord.gg/kSrq3c

    • Marius1773
      Profi
      Reaktionen
      369
      Trophäen
      9
      Beiträge
      962
      • 30. April 2018 um 16:16
      • #7
      Code
      clearWeaponCargo _unit        //Laut Wiki kein ";"

      Damit wäre der Cargo dann leer

      ansonsten vielleicht mal das probieren?

      Code
      clearMagazineCargoGlobal _unit;

      oder

      Code
      {_unit removeMagazine _x;} forEach magazines _unit;

      oder

      Code
      _unit removeMagazine "Grft_Kohle"

      Windows Server :love:

      Das Heilige Buch der Arma 3 Scripter, die Arma 3 Scripter Bibel: https://community.bistudio.com/wiki/Category:Scripting_Commands

      Einmal editiert, zuletzt von Marius1773 (30. April 2018 um 16:25)

    • Grf-Ttanfall
      Anfänger
      Reaktionen
      17
      Trophäen
      8
      Beiträge
      65
      • 1. Mai 2018 um 09:31
      • #8

      Danke hat funktioniert.

      Vollständigkeitshalber für den rest der Community mal das ganze Coding.... mir ist bewusst es gibt bestimmt bessere Lösungen....


      Für den Abbau von Rohstoffen

      Code
      //Script für den Abbau von Rohstoffen
      // ROHSATOFF Kohle
      
      _unit = _this select 0;            //objekt an dem aus das script hängt
      _caller = _this select 1;        // aufrufer    
      _action = _this select 2;        // action selber
      
      _st = 0;                            //startschleife
      _end = 20;                            //enddurchlauf schleife sprich erzeugt 20 Items
          
      if ("Grft_Schaufel" in magazines _caller) then    // Prüft ob eine schaufel im I-Inventar ist.
      {
      
          hint "Kohle wird abgebaut";            // Mitteilung über start des Abbaus
          _unit removeAction _action;            // setzt den Menuebefehl auser Kraft solange der Abbau Aktiv ist;
      
          while {_st < _end} do
              {
                  _unit addItemCargoGlobal ["Grft_Kohle",1];
                  //_unit addItemCargo ["Grft_Geld",1];
                  _st = _st +1;
                  sleep 1;
          
              };
          hint "Abbau fertig, -> schau in die Kiste";
                          //_anz = count magazines _unit;
                          //hint str _anz;
                          
          _unit addAction ["Baue Kohle ab","GRFT_scripts\grft_kohleabbau.sqf",nil,1.5,true,true,"","true",2,false,"",""];  // Aktiviert ein erneuter Abbau
      }else{
          hint "dir fehlt die Schaufel";
      };
      Alles anzeigen

      und hier fürs Craften bzw herstellen

      Code
      //Script für die herstellung von Items
      //Platinenherstellung
      
      _unit = _this select 0;                                //objekt an dem aus das script hängt
      _caller = _this select 1;                            // aufrufer    
      _action = _this select 2;                            // action selber
      
      _durchlauf  = 0;
      _inhalt_anz_rel = 0;
      
      // Definition der Benötigten Rohstoffe
      
      _Rohstoff_a = "Grft_Kupferdraht";
      _Rohstoff_a_ben = 3;
      _Rohstoff_a_ist = 0;
      
      _Rohstoff_b = "Grft_Plastikgranulat";
      _Rohstoff_b_ben = 3;
      _Rohstoff_b_ist = 0;
      
      _Rohstoff_c = "";
      _Rohstoff_c_ben = 0;
      _Rohstoff_c_ist = 0;
      
      //Items müssen in Inventar des Players sein und werden nicht verbraucht!
      _Hilfsmittel_a = "Grft_Bauplan_a";
      _Hilfsmittel_bez = "Bauplan A";
      //_Hilfsmittel_b = "";                             //noch nicht integriert!
      
      // Was soll produziert werden 
      _z_Produkt = "Grft_Platine";
      
      // Hilfsvariabeln
      
      _produktion = 0;
      _teiler = 0;
      _z_durchlauf = 0;
          
      _inhalt = getMagazineCargo _unit;                        // ermittelt den Gesamt Inhalt der Box als Array
      _inhalt_anz_rel = count (_inhalt select 0);                // ermittelt gerneral die anzahl der unterschiedlichen items
      
      _unit removeAction _action;    
      
      if (_Hilfsmittel_a in magazines _caller) then            // Prüft ob ein Bauplan vorhanden ist
      {
      
          if (_inhalt_anz_rel > 0) then                            // macht generell erst etwas wenn überhaubt was in der box ist
          {
                                      
              while {_durchlauf  < _inhalt_anz_rel} do
              {
                  _Rohstoff_id =     (_inhalt select 0) select _durchlauf;
                  _Rohstoff_anz = (_inhalt select 1) select _durchlauf;
                                  
                  if (_Rohstoff_id == _Rohstoff_a) then
                  {
                      _Rohstoff_a_ist = _Rohstoff_anz;
                      
                  }else{
                  };
                  
                  if (_Rohstoff_id == _Rohstoff_b) then
                  {
                      _Rohstoff_b_ist = _Rohstoff_anz;
                      
                  }else{
                  };
                  
                  if (_Rohstoff_id == _Rohstoff_c) then
                  {
                      _Rohstoff_c_ist = _Rohstoff_anz;
                      
                  }else{
                  };
                  if (_Rohstoff_id == _z_Produkt) then                //prüft ob schon zielrohstoff da ist und übernimmt diesen
                  {
                      _produktion = _Rohstoff_anz;
                      
                  }else{
                  };
                  
                  _durchlauf = _durchlauf +1;
              };        
              
          // nachdem die Ermittlung durch ist dann soll er mal was machen =)
      
          }else{
              hint "bitte lege die benötigten dinge in die Box";
              sleep 2;
              
          };
          sleep 1;
          _teiler = _Rohstoff_a_ist / _Rohstoff_a_ben;
      
          while {_z_durchlauf < _teiler} do
          {
              if     (_Rohstoff_a_ist >= _Rohstoff_a_ben) then
              {
                  if     (_Rohstoff_b_ist >= _Rohstoff_b_ben) then
                  {
                      if     (_Rohstoff_b_ist >= _Rohstoff_b_ben) then
                      {
                              clearMagazineCargoGlobal _unit;
                                                  
                              _Rohstoff_a_ist = (_Rohstoff_a_ist - _Rohstoff_a_ben);
                              _Rohstoff_b_ist = (_Rohstoff_b_ist - _Rohstoff_b_ben);
                              _Rohstoff_c_ist = (_Rohstoff_c_ist - _Rohstoff_c_ben);
                                  
                              _unit addItemCargoGlobal [_Rohstoff_a, _Rohstoff_a_ist];
                              _unit addItemCargoGlobal [_Rohstoff_b, _Rohstoff_b_ist];
                              _unit addItemCargoGlobal [_Rohstoff_c, _Rohstoff_c_ist];
                              
                              _Produktion = _produktion +1 ;
                              _unit addItemCargoGlobal [_z_Produkt, _produktion];
                  
                      }else{
                              hint "nicht genug rohstoffe";
                          };    
                  }else{
                          hint "nicht genug rohstoffe";
                      };
              }else{
                      hint "nicht genug rohstoffe";
              };
          _z_durchlauf = _z_durchlauf +1;
          sleep 2;
      
          };    
      
          _Produktion = 0;
          _unit addAction addAction ["Stelle Platine her","GRFT_scripts\grft_Platinenherstellung.sqf",nil,1.5,true,true,"","true",2,false,"",""]; 
      
          hint "Produktion ist fertig <-- schaue in die Kiste";
      
      }else{
      hint str ["Besorge dir den richtigen Bauplan!! -->",_Hilfsmittel_bez]
      };
      Alles anzeigen

      Native Network Servervorstellung = TITANFALL-LIFE RP Server ALTIS LIFE 5.0

      Teamspeak: titanfall-life.de

      Discord: https://discord.gg/kSrq3c

    Registrieren oder Einloggen

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

    Registrieren

    Tags

    • Server
    • tutorial
    • script
    • Item
    • Anzeigen

    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™