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: 30 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

    Fahrzeuginventar abrufen

    • Jens Rudolph
    • 4. Mai 2019 um 02:28
    • Erledigt
    • Jens Rudolph
      Frischling
      Trophäen
      7
      Beiträge
      5
      • 4. Mai 2019 um 02:28
      • #1

      Hallo liebe Community,

      das ist mein erster Post und falls ich etwas falsch gemacht habe bitte ich euch mich darauf hinzuweisen :) Danke!

      Es geht mir darum:

      Code
      _vehicle = cursorObject;
      if(_value > 0) then {
          [0,"Ein Fahrzeug wurde durchsucht und es wurden Drogen / Schmuggelware im Wert von $%1 gefunden. Die illegalen Gegenstände wurden beschlagnahmt!",true,[[_value] call life_fnc_numberText]] remoteExecCall ["life_fnc_broadcast",-2];
          min3factorylif3_4tmb4nk = min3factorylif3_4tmb4nk + _value;
      
          private _trunk = _vehicle getVariable["Trunk",[]];
          private _removedIllegal = false;
          _vehicle_data = _vehicle GVAR ["Trunk",[]];
          //hint format ["%1",_vehicle_data];
      
          {
              if(((_vehicle_data select 0) == "cocaine_processed") || ((_vehicle_data select 0) == "cocaine_unprocessed") || ((_vehicle_data select 0) == "heroin_processed") || ((_vehicle_data select 0) == "heroin_unprocessed") || ((_vehicle_data select 0) == "marijuana") || ((_vehicle_data select 0) == "cannabis") || ((_vehicle_data select 0) == "lsdp") || ((_vehicle_data select 0) == "lsdu") || ((_vehicle_data select 0) == "frosch_processed") || ((_vehicle_data select 0) == "frosch_unprocessed") || ((_vehicle_data select 0) == "Crystal") || ((_vehicle_data select 0) == "turtle_raw") || ((_vehicle_data select 0) == "turtle_soup")) then { 
                  _removedIllegal = true;
                  (_trunk select 0) set [_forEachIndex, -1];
                  //hint "Test";
              };
          } forEach (_trunk select 0);
      
          if(_removedIllegal) then {
                _trunk set [0,((_trunk select 0) - [-1])]; 
                 _trunk set [1,[_trunk select 0] call life_fnc_calculateWeight]; 
          };
          ["Illegale Gegenstände gefunden.",false,"fast"] call life_fnc_NachrichtSys;
      } else {
          ["Keine illegalen Gegenstände gefunden.",false,"fast"] call life_fnc_NachrichtSys;
      };
      Alles anzeigen


      Das Problem liegt an folgendem Codestück:

      Code
      if(((_vehicle_data select 0) == "cocaine_processed")...) then {...

      Ich möchte vergleichen, ob ein Item in dem Kofferraum meines Fahrzeuges unverarbeitetes Kokain ist. Das selbe für alle anderen Items. Nur leider gehen diese Stellen nicht.. ich habe es auch mit isEqualTo versucht, hat jedoch nichts gebracht. Ich bin ratlos und weiß nicht mehr was ich versuchen könnte. Es gibt keine Fehlermeldung.. dash;(

      Hoffentlich kann mir jemand von euch helfen :|


      Viele Grüße

      Jens

      Server Adresse: altis.minefactory.eu

      TS: ts.minefactory.eu

      minefactory.eu

    • wepper
      Schüler
      Reaktionen
      25
      Trophäen
      8
      Beiträge
      125
      • 4. Mai 2019 um 11:02
      • #2

      Mach statt _vehicle_data select 0 _x select 0.

      _vehicle_data enthält ein Array nach folgendem Mustrer: [['item1',mengeItem1],['item2',mengeItem2]]; Mit deiner Abfrage vergleichst du den ersten Index (['item1',mengeItem1]) mit "cocaine_unprocessed" -> Was nicht gleich ist.

      _x ist eine magische Variable in der ForEach schleife, die den jeweiligen Eintrag enthält, in diesem Falle ['item1',mengeItem1] usw. Davon willst du den ersten Eintrag (select 0) und diesen kannst du dann vergleichen.

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      10
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 4. Mai 2019 um 11:33
      • #3
      Zitat von Jens Rudolph

      das ist mein erster Post und falls ich etwas falsch gemacht habe bitte ich euch mich darauf hinzuweisen

      auch wenns böse klingt, an dem Code ist nichts richtig.

      zunächst eine Erklärung.

      Die Trunk Variable Auf dem Fahrzeug ist so aufgebaut: [[[Item 1, Anzahl], [Item 2, Anzahl], ..., [Item n, Anzahl]], Gewicht aller Items]

      Fehler in deinem Code mal zusammengefasst:

      • Da _vehicle_data der Variable Trunk (siehe oben) entspricht ist der Vergleich in der forEach (_vehicle_data select 0) == "cocaine_processed" quatsch. Aufgelöst wäre das [[Item 1, Anzahl], [Item 2, Anzahl], ..., [Item n, Anzahl]] == "cocaine_processed" - ergibt keinen Sinn, oder?
      • Du hast zwar eine forEach, nutzt aber nirgends das aktuelle Argument _x sondern pauschal (_vehicle_data select 0) - du machst quasi n-Mal den selben Vergleich.

      Also, verbessern wir das ganze:

      (Hinweis: ich gehe davon aus, du definierst _value auch vorher!!!)

      C
      _vehicle = cursorObject;
      if(_value > 0) then {
          [0,"Ein Fahrzeug wurde durchsucht und es wurden Drogen / Schmuggelware im Wert von $%1 gefunden. Die illegalen Gegenstände wurden beschlagnahmt!",true,[[_value] call life_fnc_numberText]] remoteExecCall ["life_fnc_broadcast",-2];
          min3factorylif3_4tmb4nk = min3factorylif3_4tmb4nk + _value;
          
          private _trunk = _vehicle getVariable["Trunk",[]];
          private _removedIllegal = false;
          _vehicle_data = _vehicle GVAR ["Trunk",[]];
          //hint format ["%1",_vehicle_data];
          
          {
              private _item = _x select 0;
              
              if((_item == "cocaine_processed") || (_item == "cocaine_unprocessed") || (_item == "heroin_processed") || (_item == "heroin_unprocessed") || (_item == "marijuana") || (_item == "cannabis") || (_item == "lsdp") || (_item == "lsdu") || (_item == "frosch_processed") || (_item == "frosch_unprocessed") || (_item == "Crystal") || (_item == "turtle_raw") || (_item == "turtle_soup")) then { 
                  _removedIllegal = true;
                  (_trunk select 0) set [_forEachIndex, -1];
                  //hint "Test";
              };
          } forEach (_trunk select 0);
              
          if(_removedIllegal) then {
              _trunk set [0,((_trunk select 0) - [-1])]; 
              _trunk set [1,[_trunk select 0] call life_fnc_calculateWeight]; 
          };
          ["Illegale Gegenstände gefunden.",false,"fast"] call life_fnc_NachrichtSys;
      } else {
          ["Keine illegalen Gegenstände gefunden.",false,"fast"] call life_fnc_NachrichtSys;
      };
      Alles anzeigen

      Jetzt machen wir noch ein paar Schöneitsänderungen und räumen auf:

      C
      private _vehicle = cursorObject;
      if(_value > 0) then {
          [0,"Ein Fahrzeug wurde durchsucht und es wurden Drogen / Schmuggelware im Wert von $%1 gefunden. Die illegalen Gegenstände wurden beschlagnahmt!",true,[[_value] call life_fnc_numberText]] remoteExecCall ["life_fnc_broadcast",-2];
          min3factorylif3_4tmb4nk = min3factorylif3_4tmb4nk + _value;
          
          private _trunk = _vehicle getVariable["Trunk",[]];
          private _removedIllegal = false;
          
          {
              _x params [
                  ["_item", "", [""]]
              ];
              
              if(_item in ["cocaine_processed", "cocaine_unprocessed", "heroin_processed", "heroin_unprocessed", "marijuana", "cannabis", "lsdp", "lsdu", "frosch_processed", "frosch_unprocessed", "Crystal", "turtle_raw", "turtle_soup"]) then { 
                  _removedIllegal = true;
                  (_trunk select 0) set [_forEachIndex, -1];
              };
          } forEach (_trunk select 0);
              
          if(_removedIllegal) then {
              _trunk set [0,((_trunk select 0) - [-1])]; 
              _trunk set [1,[_trunk select 0] call life_fnc_calculateWeight]; 
          };
          ["Illegale Gegenstände gefunden.",false,"fast"] call life_fnc_NachrichtSys;
      } else {
          ["Keine illegalen Gegenstände gefunden.",false,"fast"] call life_fnc_NachrichtSys;
      };
      Alles anzeigen


      Ich gehe davon auf die life_fnc_calculateWeight funktioniert so wie gedacht, die Datei find ich nur nirgends wird also wohl von euch sein ;)

      Im Anhang ist das ganze als Datei in ordentlich formatiert.

      Dateien

      fixed.sqf 1,26 kB – 117 Downloads

      #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!

      ______________________

    • Jens Rudolph
      Frischling
      Trophäen
      7
      Beiträge
      5
      • 4. Mai 2019 um 11:59
      • #4

      Heyho,

      danke für euer schnelle Hilfe. Ich habe wieder was dazu gelernt :saint:

      Deine Variante funktioniert einwandfrei. blackfisch


      Vielen Dank und viele Grüße

      Jens

      Server Adresse: altis.minefactory.eu

      TS: ts.minefactory.eu

      minefactory.eu

    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™