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

    [Tutorial] [Ed´s Gungame] Waffen begrenzen / erlauben

      • Mapping & Modding
    • Korbinian
    • 1. November 2016 um 00:24
    • Korbinian
      Amateur
      Reaktionen
      34
      Trophäen
      9
      Beiträge
      170
      • 1. November 2016 um 00:24
      • #1

      Hallo!

      Da ich aktuell kaum was an meinen laufenden Projekten zu tun habe habe ich mich entschieden hier auch mal ein Tutorial zu machen
      Vorab ein paar Informationen.

      Ich bin kein Profi

      Schwierigkeitsgrad 1 (einfach)

      Tutorial: Wie erstelle ich eine Waffen "Whitelist" für Ed´s Gungame
      Ist vllt. nicht so gefragt wie Arma 3 Life, es gibt jedoch viele Gungame Server die sich verbessern könnten. *hust*

      Also fangen wir an hi

      Schritt 1
      Ihr öffnet die dynamicWeapons.sqf die sich im Normalfall in eurem Missionsverzeichnis befindet und ersetzt die Zeilen 65 und 67 die wie folgt aussehen sollten:

      C: dynamicWeapons.sqf
      case 1: {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};
      	case 2: {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};


      mit dem hier:

      C: dynamicWeapons.sqf
      case 1: {if((_x select 0) in _whitelist) then {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};};
      	case 2: {if((_x select 0) in _whitelist) then {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};};


      Schritt 2
      Ihr fügt in der dynamicWeapons.sqf die sich im Normalfall in eurem Missionsverzeichnis befindet folgendes in Zeile 58 ein:

      Code: dynamicWeapons.sqf
      _whitelist = ["Waffe1", "Waffe2",...]; //Waffe1 etc. mit den Waffen Classnames versehen die ihr ERLAUBEN möchtet. Es werden keine anderen Waffen verfügbar sein.

      Hierbei ersetzt ihr Waffe1, 2 etc. mit den Waffenclassnames die ihr im Spiel haben möchtet. Weder im Votingsystem noch in der WaffenGeneration werden andere Waffen zu finden sein, also alle fleißig eintragen!

      EDIT!!
      Für die Blacklist sollte der Eintrag in der Zeile 65 und 67 der dynamicWeapons.sqf so aussehen (ungetestet, sollte aber klappen)
      Dann die Waffen die Verboten werden sollten einfach wieder in die Whitelist schreiben.

      Code: dynamicWeapons.sqf
      case 1: {if((_x select 0) in _whitelist) then {}; else {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};};
      	case 2: {if((_x select 0) in _whitelist) then {}; else {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};};


      FERTIG! hail

      Ich hoffe euch hat mein Tutorial gefallen, bei Fragen könnt ihr euch jeder Zeit an mich wenden.
      Da es mein erstes Tutorial war, wäre Kritik sehr nett gamerico

      Vielen Dank fürs Lesen.
      Ich wünsche euch viel Spaß :3

      Zum Vergleich:
      VORHER

      C: dynamicWeapons.sqf
      _weaponArray = []; //classname, description, type, [magazine class, magazine description, magazine icon], picture, attachments
      _weaponsConfig = configFile >> "CfgWeapons";
      for[{_i = 0},{_i < count(_weaponsConfig)},{_i = _i + 1}] do
      {
      	_currentWeapon = _weaponsConfig select _i;
      	if(isClass _currentWeapon) then {
      		if(getNumber(_currentWeapon >> "scope") == 2) then	{
      			if(count(_currentWeapon >> "LinkedItems") == 0) then {
      			_className = configName(_currentWeapon);
      			_description = getText(_currentWeapon >> "displayName");
      			_type = getNumber(_currentWeapon >> "type");
      			_muzzles = getArray(_currentWeapon >> "muzzles");
      			_magazines = [];
      			{
      				_currentMagazinesArray = [];
      				if(_x != "this") then 
      				{
      					_currentMagazinesArray = _currentMagazinesArray + getArray(_currentWeapon >> _x >> "magazines");
      				} 
      				else 
      				{
      					_currentMagazinesArray = _currentMagazinesArray + getArray(_currentWeapon >> "magazines");
      				};
      				for[{_k = 0}, {_k < count(_currentMagazinesArray)}, {_k = _k + 1}] do
      				{
      					_currentMagazine = _currentMagazinesArray select _k;
      					_magazineClass = configName(configFile >> "cfgMagazines" >> _currentMagazine);
      					_magazineDescription = getText(configFile >> "cfgMagazines" >> _currentMagazine >> "displayName");
      					_magazineIcon = getText(configFile >> "cfgMagazines" >> _currentMagazine >> "picture");
      					_magazines = _magazines + [_magazineClass, _magazineDescription, _magazineIcon];
      				};
      			}foreach (_muzzles);
      			_ammo = getText(configFile >> "CfgMagazines" >> (_magazines select 0) >> "ammo");
      			if(!isNil "_ammo") then {
      			_damage = getNumber(configFile >> "CfgAmmo" >> _ammo >> "hit");
      			_picture = getText(_currentWeapon >> "picture");	
      			_attachments = [getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"),
      			getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems"),
      			getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems")];
      			if(_damage > 0) then {
      				_weaponArray = _weaponArray + [[_className, _description, _type, _magazines, _picture, _attachments]];
      			};
      			};
      			};
      		};
      	};
      };
      
      
      
      
      ED_dynamicWeapons_ThrowPut = []; //0
      ED_dynamicWeapons_Primary = []; //1
      ED_dynamicWeapons_HandGun = []; //2
      ED_dynamicWeapons_LaunchersDetectors = []; //4
      ED_dynamicWeapons_MGunCore = []; //5 (mounted on vehicles)
      ED_dynamicWeapons_VehicleWeapons = []; //65536 (mounted on vehicles)
      ED_dynamicWeapons_Items = []; //131072 (all items like radios, maps, binoculars, clothing, hats, belts)
      
      
      
      
      {
      	_type = _x select 2;
      	switch (_type) do
      	{
      	case 0: {ED_dynamicWeapons_ThrowPut = ED_dynamicWeapons_ThrowPut + [_x];};
      	case 1: {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};
      	case 2: {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};
      	case 4: {ED_dynamicWeapons_LaunchersDetectors = ED_dynamicWeapons_LaunchersDetectors + [_x];};
      	case 5: {ED_dynamicWeapons_MGunCore = ED_dynamicWeapons_MGunCore + [_x];};
      	case 65536: {ED_dynamicWeapons_VehicleWeapons = ED_dynamicWeapons_VehicleWeapons + [_x];};
      	case 131072: {ED_dynamicWeapons_Items = ED_dynamicWeapons_Items + [_x];};
      	};
      }foreach _weaponArray;
      Alles anzeigen

      NACHHER

      C: dynamicWeapons.sqf
      _weaponArray = []; //classname, description, type, [magazine class, magazine description, magazine icon], picture, attachments
      _weaponsConfig = configFile >> "CfgWeapons";
      for[{_i = 0},{_i < count(_weaponsConfig)},{_i = _i + 1}] do
      {
      	_currentWeapon = _weaponsConfig select _i;
      	if(isClass _currentWeapon) then {
      		if(getNumber(_currentWeapon >> "scope") == 2) then	{
      			if(count(_currentWeapon >> "LinkedItems") == 0) then {
      			_className = configName(_currentWeapon);
      			_description = getText(_currentWeapon >> "displayName");
      			_type = getNumber(_currentWeapon >> "type");
      			_muzzles = getArray(_currentWeapon >> "muzzles");
      			_magazines = [];
      			{
      				_currentMagazinesArray = [];
      				if(_x != "this") then 
      				{
      					_currentMagazinesArray = _currentMagazinesArray + getArray(_currentWeapon >> _x >> "magazines");
      				} 
      				else 
      				{
      					_currentMagazinesArray = _currentMagazinesArray + getArray(_currentWeapon >> "magazines");
      				};
      				for[{_k = 0}, {_k < count(_currentMagazinesArray)}, {_k = _k + 1}] do
      				{
      					_currentMagazine = _currentMagazinesArray select _k;
      					_magazineClass = configName(configFile >> "cfgMagazines" >> _currentMagazine);
      					_magazineDescription = getText(configFile >> "cfgMagazines" >> _currentMagazine >> "displayName");
      					_magazineIcon = getText(configFile >> "cfgMagazines" >> _currentMagazine >> "picture");
      					_magazines = _magazines + [_magazineClass, _magazineDescription, _magazineIcon];
      				};
      			}foreach (_muzzles);
      			_ammo = getText(configFile >> "CfgMagazines" >> (_magazines select 0) >> "ammo");
      			if(!isNil "_ammo") then {
      			_damage = getNumber(configFile >> "CfgAmmo" >> _ammo >> "hit");
      			_picture = getText(_currentWeapon >> "picture");	
      			_attachments = [getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"),
      			getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems"),
      			getArray(configFile >> "CfgWeapons" >> _className >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems")];
      			if(_damage > 0) then {
      				_weaponArray = _weaponArray + [[_className, _description, _type, _magazines, _picture, _attachments]];
      			};
      			};
      			};
      		};
      	};
      };
      ED_dynamicWeapons_ThrowPut = []; //0
      ED_dynamicWeapons_Primary = []; //1
      ED_dynamicWeapons_HandGun = []; //2
      ED_dynamicWeapons_LaunchersDetectors = []; //4
      ED_dynamicWeapons_MGunCore = []; //5 (mounted on vehicles)
      ED_dynamicWeapons_VehicleWeapons = []; //65536 (mounted on vehicles)
      ED_dynamicWeapons_Items = []; //131072 (all items like radios, maps, binoculars, clothing, hats, belts)
      _whitelist = ["Waffe1", "Waffe2",...];
      {
      	_type = _x select 2;
      	switch (_type) do
      	{
      	case 0: {ED_dynamicWeapons_ThrowPut = ED_dynamicWeapons_ThrowPut + [_x];};
      	case 1: {if((_x select 0) in _whitelist) then {ED_dynamicWeapons_Primary = ED_dynamicWeapons_Primary + [_x];};};
      	case 2: {if((_x select 0) in _whitelist) then {ED_dynamicWeapons_HandGun = ED_dynamicWeapons_HandGun + [_x];};};
      	case 4: {ED_dynamicWeapons_LaunchersDetectors = ED_dynamicWeapons_LaunchersDetectors + [_x];};
      	case 5: {ED_dynamicWeapons_MGunCore = ED_dynamicWeapons_MGunCore + [_x];};
      	case 65536: {ED_dynamicWeapons_VehicleWeapons = ED_dynamicWeapons_VehicleWeapons + [_x];};
      	case 131072: {ED_dynamicWeapons_Items = ED_dynamicWeapons_Items + [_x];};
      	};
      }foreach _weaponArray;
      Alles anzeigen

      santa

      Einmal editiert, zuletzt von Korbinian (4. November 2016 um 08:50)

    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™