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
Mi: 21 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

    Vereinfachung fn_clearVehicleAmmo.sqf

      • Altis Life
    • moeck
    • 18. Dezember 2018 um 07:33
    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 18. Dezember 2018 um 07:33
      • #1

      Moin,

      ich würde das hier nicht wirklich als Tutorial bezeichnen aber hier passt es am besten rein.

      Ich war immer genervt beim einfügen von Fahrzeugen, dass ich zusätzlich die vorhanden Waffen anschließend auch noch in der fn_clearVehicleAmmo.sqf eintragen musste sofern man sie nicht benutzen durfte. Daher habe ich mir das Leben jetzt deutlich einfacher gemacht und in der fn_clearVehicleAmmo.sqf alle Waffen standardmäßig ausgeschaltet.

      C: fn_clearVehicleAmmo.sqf
      #include "..\..\script_macros.hpp"
      /*
          File: fn_clearVehicleAmmo.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Clears the vehicle of ammo types that we don't want.
      
          Syntax: _vehicle removeMagazinesTurret [magazineName, turretPath]
          Documentation: https://community.bistudio.com/wiki/removeMagazinesTurret
      */
      params [["_vehicle",objNull,[objNull]]];
      if (isNull _vehicle) exitWith {};
      private _veh = typeOf _vehicle;
      
      {
          if !(_x in ["SportCarHorn","MiniCarHorn","CarHorn","CarHorn","PoliceHorn","PoliceHorn","TruckHorn3","AmbulanceHorn","TruckHorn2"]) then {_vehicle removeWeapon _x};
      } forEach weapons _vehicle;
      {_vehicle removeMagazine _x} forEach magazines _vehicle;
      clearWeaponCargoGlobal _vehicle;
      clearMagazineCargoGlobal _vehicle;
      clearItemCargoGlobal _vehicle;
      clearBackpackCargoGlobal _vehicle;
      Alles anzeigen

      Einziges Problem was dabei aufgetaucht ist, am Anfang funktionierten keine Hupen mehr dash. Falls ihr es noch nicht wusstet, Hupen sind Waffen :D, daher ist auch die Ausnahmebehandlung in der Datei drin 8o.

      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 ?

    • B4v4r!4n_Str!k3r
      Nerd
      Reaktionen
      246
      Trophäen
      11
      Beiträge
      725
      Bilder
      5
      • 18. Dezember 2018 um 09:08
      • #2

      Dein Script funktioniert so nur bedingt. Du hast die Waffen von Panzern vergessen ;)

      Code
      #include "..\..\script_macros.hpp"
      /*
       File: fn_clearVehicleAmmo.sqf
       Author: Bryan "Tonic" Boardwine
       Description:
       Clears the vehicle of ammo types that we don't want.
       Syntax: _vehicle removeMagazinesTurret [magazineName, turretPath]
       Documentation: https://community.bistudio.com/wiki/removeMagazinesTurret
      */
      params [["_vehicle",objNull,[objNull]]];
      if (isNull _vehicle) exitWith {};
      /* funcGetTurretsWeapons: https://community.bistudio.com/wiki/weaponsTurret */
      funcGetTurretsWeapons = { 
           private _result = [];
           private _findRecurse = { 
               private _root = (_this select 0); 
               private _path = +(_this select 1); 
               for "_i" from 0 to count _root -1 do { 
                   private _class = _root select _i; 
                   if (isClass _class) then { 
                       private _currentPath = _path + [_i]; 
                       { 
                           _result set [count _result, [_x, _currentPath]]; 
                       } foreach getArray (_class >> "weapons"); 
                       _class = _class >> "turrets"; 
                       if (isClass _class) then { 
                           [_class, _currentPath] call _findRecurse; 
                       }; 
                   }; 
               }; 
           }; 
           private _class = ( 
               configFile >> "CfgVehicles" >> ( 
                   switch (typeName _this) do { 
                       case "STRING" : {_this}; 
                       case "OBJECT" : {typeOf _this}; 
                       default {nil} 
                   } 
               ) >> "turrets" 
           ); 
           [_class, []] call _findRecurse; 
           _result; 
       };
      {
       if !(_x in ["SportCarHorn","MiniCarHorn","CarHorn","CarHorn","PoliceHorn","PoliceHorn","TruckHorn3","AmbulanceHorn","TruckHorn2"]) then {_vehicle removeWeapon _x};
      } forEach weapons _vehicle;
      {
          _vehicle removeWeaponTurret _x;
      } forEach (_vehicle call funcGetTurretsWeapons);
      clearWeaponCargoGlobal _vehicle;
      clearMagazineCargoGlobal _vehicle;
      clearItemCargoGlobal _vehicle;
      clearBackpackCargoGlobal _vehicle;
      Alles anzeigen

      Wenn dann alle Waffen entfernt worden sind, braucht man auch nicht mehr explizit die Magazine entfernen.

      Jetzt noch die Hupen als Configarray in die Config_Master.hpp übernehmen, dann ist das Script perfekt ;)

      Außerdem könnte man Ausnahmen in der Config_Master.hpp für einzelne Fahrzeuge definieren, damit z.B. der Offroader HMG sein HMG behält.

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

      Services rund um ArmA RPG Life

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

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 18. Dezember 2018 um 09:17
      • #3

      Moin B4v4r!4n_Str!k3r ,

      ja gut Panzer hatte ich bisher noch nicht auf einem Life Server ^^ . Ja das mit den Ausnahmen muss ich bei Gelegenheit mal noch machen.

      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 ?

    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™