From 8ea02a8ada520d44e372d175169890b85a94ea18 Mon Sep 17 00:00:00 2001 From: Ghostrider-DbD- Date: Fri, 4 Aug 2017 21:34:10 -0400 Subject: [PATCH 1/5] Update README.md --- README.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index bbc0311..617c14c 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,21 @@ How To Use This Tool. 2) Start the Eden Editor. 3) Open the testConfig.Altis mission. -You are now ready to generate the class names. The tools copy these to the clipboard. All you need to do to generate a list of classnames is select the tool, Alt-Tab out of Arma, and paste the contents of the clipboard into a text editor such as notepad ++. -For each category (e.g., uniforms, weapons, vehicles) there are two tools. -One generates a simple list of class names which could be used when configuring traders for Exile. -The second will generate a pre-configured price list using either Epoch or Exile formats. -You can determine which format of price list will be generated by changing DBD_priceConfiguration in init.sqf. +You are now ready to generate the class names. The tools copy these to the clipboard. +All you need to do to generate a list of classnames: + - is select the tool for the category for which you want to generate lists of class names, + - Alt-Tab out of Arma, + - and paste the contents of the clipboard into a text editor such as notepad ++. + +For each category (e.g., uniforms, weapons, vehicles) the tools will generate three types of lists: + +- a list of class names in quotes, useful for putting together lists of items that are available through certain traders. +- pricelists formated in either Epoch or Exile format (which, of course need prices adjusted). +- a list suitable for addition to either the loot tables in Epoch or the loot table compiler in Exile. + +You can determine which format of price list will be generated by changing GRG_mod in init.sqf. Credits: - This tool uses Kronzky's string library: http://www.kronzky.info/snippets/strings/index.htm The algorithm for extracting weapons class names is derived from one posted by KiloSwiss on EpochMod: https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ @@ -28,13 +35,5 @@ License There is no charge to use these tools. - Please do not charge for items available to players through the use of these tools. You may modify any of the tools as you like. Please give credit to me and those listed above if redistributing modified code. - --------------------------- -License --------------------------- -All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - -http://creativecommons.org/licenses/by-nc-sa/4.0/ From 7eb3db81aab3b4bfaf0a58e5ea4ff973f26a02bc Mon Sep 17 00:00:00 2001 From: Ghostrider-DbD- Date: Mon, 25 Sep 2017 05:40:17 -0400 Subject: [PATCH 2/5] Many bug fixes Tools Redone to take advantage of BIS_fnc_itemType; coding inefficiencies addressed. Output now correctly lists items that were missing in the past including backpacks and glasses. --- testConfig.Altis/init.sqf | 4 +- testConfig.Altis/items.sqf | 180 ++++++++++++++++++ testConfig.Altis/launchersInfo.sqf | 55 ++++++ testConfig.Altis/vehicles.sqf | 101 +++++----- testConfig.Altis/vehiclesTurrets.sqf | 54 ++++++ testConfig.Altis/weapons.sqf | 271 ++++++++------------------- testConfig.Altis/wearables.sqf | 237 +++++++++++++---------- 7 files changed, 563 insertions(+), 339 deletions(-) create mode 100644 testConfig.Altis/items.sqf create mode 100644 testConfig.Altis/launchersInfo.sqf create mode 100644 testConfig.Altis/vehiclesTurrets.sqf diff --git a/testConfig.Altis/init.sqf b/testConfig.Altis/init.sqf index b2701d0..6779d1a 100644 --- a/testConfig.Altis/init.sqf +++ b/testConfig.Altis/init.sqf @@ -21,8 +21,8 @@ player addAction ["Vehicles","vehicles.sqf", [], 9]; player addAction ["Weapons","weapons.sqf",[], 8.9]; player addAction ["Magazines","magazines.sqf", 8.7]; player addAction ["Wearables","wearables.sqf", 8.8]; - - +player addAction ["Items","items.sqf",8.6]; +player addAction ["Turrets","vehiclesTurrets.sqf", 8.5]; diff --git a/testConfig.Altis/items.sqf b/testConfig.Altis/items.sqf new file mode 100644 index 0000000..06700cc --- /dev/null +++ b/testConfig.Altis/items.sqf @@ -0,0 +1,180 @@ +/* + some of the algorithm/script is based on a script by KiloSwiss + https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ + Modified and enhanced by GhostriderDbD + 5/22/17 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ +/* + + Description: + Return item category and type. Recognized types are: + + Weapon / VehicleWeapon + AssaultRifle + BombLauncher + Cannon + GrenadeLauncher + Handgun + Launcher + MachineGun + Magazine + MissileLauncher + Mortar + RocketLauncher + Shotgun + Throw + Rifle + SubmachineGun + SniperRifle + VehicleWeapon + Horn + CounterMeasuresLauncher + LaserDesignator + Item + AccessoryMuzzle + AccessoryPointer + AccessorySights + AccessoryBipod + Binocular + Compass + FirstAidKit + GPS + LaserDesignator + Map + Medikit + MineDetector + NVGoggles + Radio + Toolkit + UAVTerminal + VehicleWeapon + Unknown + UnknownEquipment + UnknownWeapon + Watch + Equipment + Glasses + Headgear + Vest + Uniform + Backpack + Magazine + Artillery + Bullet + CounterMeasures + Flare + Grenade + Laser + Missile + Rocket + Shell + ShotgunShell + SmokeShell + UnknownMagazine + Mine + Mine + MineBounding + MineDirectional + + Parameter(s): + 0: STRING - item class + + Returns: + ARRAY in format [category,type] +*/ +_baseItems = []; +_mines = []; +_lasers = []; +_items = []; +_allItemTypes = ["Equipment"]; +_excludedItemTypes = [ + "AccessoryMuzzle", + "AccessoryPointer", + "AccessorySights", + "AccessoryBipod" +]; +_addedBaseNames = []; +_itemsList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; +_temp = (configfile >> "CfgMagazines") call BIS_fnc_getCfgSubClasses; +_itemsList = _itemsList + _temp; +//_wearablesList sort true; +{ + _itemType = _x call BIS_fnc_itemType; + diag_log format["for Item %1 its ItemType [0] is %2",_x,_itemType select 0]; + if ((_itemType select 0) in _allItemTypes) then + { + if ( !(_x in _baseItems) && !(_x in _addedBaseNames) ) then + { + _baseItems pushBack _x; + diag_log format["_x = %1, _itemType [0] = %2 _itemType[1] = %3",_x, _itemType select 0, _itemType select 1]; + if (_itemType select 0 isEqualTo "Mine" && !(_itemType select 1 in _excludedItemTypes)) then {_mines pushBack _x}; + if (_itemType select 0 isEqualTo "Item" && !(_itemType select 1 in _excludedItemTypes)) then {_items pushBack _x}; + }; + }; +} foreach _itemsList; + +_clipBoard = ""; + +if (GRG_mod == "Exile") then +{ + _clipboard = _clipboard + GRG_Exile_TraderItemLists_Header; +}; +if (GRG_mod == "Epoch") then +{ + _clipboard = _clipboard + GRG_Epoch_ItemLists_Header; +}; +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generateItemList; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Mines",_mines], + ["Lasers",_lasers], + ["Items",_items] +]; + +if (GRG_mod == "Exile") then +{ + _clipboard = _clipBoard + GRG_Exile_Pricelist_Header; +}; +if (GRG_mod == "Epoch") then +{ + _clipboard = _clipBoard + GRG_Epoch_Pricelist_Header; +}; + +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generatePriceList; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Mines",_mines], + ["Lasers",_lasers], + ["Items",_items] +]; + +if (GRG_mod == "Exile") then +{ + _clipboard = _clipBoard + GRG_Exile_Loottable_Header; +}; +if (GRG_mod == "Epoch") then +{ + _clipboard = _clipBoard + GRG_Epoch_Loottable_Header; +}; +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generateLootTableEntries; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Mines",_mines], + ["Lasers",_lasers], + ["Items",_items] +]; +copyToClipboard _clipBoard; +hint format["Wearables Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file diff --git a/testConfig.Altis/launchersInfo.sqf b/testConfig.Altis/launchersInfo.sqf new file mode 100644 index 0000000..017b808 --- /dev/null +++ b/testConfig.Altis/launchersInfo.sqf @@ -0,0 +1,55 @@ +_itemTypes = []; +_itemInformation=[]; +_clips = ""; +{ + _itemInformation = [_x] call BIS_fnc_itemType; + _itemTypes pushBack [_x,_itemInformation select 0, _itemInformation select 1]; + _clips = _clips + format["%1,%2,%3%4",_x,_itemInformation select 0, _itemInformation select 1,endl]; +}forEach +[ +"Launcher", +"Launcher_Base_F", +"launch_NLAW_F", +"launch_RPG32_F", +"launch_Titan_base", +"launch_Titan_short_base", +"launch_B_Titan_F", +"launch_I_Titan_F", +"launch_O_Titan_F", +"launch_Titan_F", +"launch_B_Titan_short_F", +"launch_I_Titan_short_F", +"launch_O_Titan_short_F", +"launch_Titan_short_F", +"CUP_launch_M72A6", +"CUP_launch_M72A6_Special", +"CUP_launch_Igla", +"CUP_launch_Javelin", +"CUP_launch_M136", +"CUP_launch_M47", +"CUP_launch_MAAWS", +"CUP_launch_Metis", +"CUP_launch_NLAW", +"CUP_launch_RPG18", +"CUP_launch_Mk153Mod0", +"CUP_launch_FIM92Stinger", +"CUP_launch_9K32Strela", +"launch_RPG32_ghex_F", +"launch_RPG7_F", +"launch_B_Titan_tna_F", +"launch_B_Titan_short_tna_F", +"launch_O_Titan_ghex_F", +"launch_O_Titan_short_ghex_F", +"CUP_launch_RPG7V", +"CUP_Igla", +"CUP_Javelin", +"CUP_M47Launcher_EP1", +"CUP_M136", +"CUP_MetisLauncher", +"CUP_BAF_NLAW_Launcher", +"CUP_RPG7V", +"CUP_RPG18", +"CUP_Stinger", +"CUP_Strela" +]; +copyToClipboard _clips; \ No newline at end of file diff --git a/testConfig.Altis/vehicles.sqf b/testConfig.Altis/vehicles.sqf index 09427db..0cb082d 100644 --- a/testConfig.Altis/vehicles.sqf +++ b/testConfig.Altis/vehicles.sqf @@ -7,33 +7,49 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ - +_allTanks = +[ + "B_APC_Tracked_01_rcws_F", + "B_APC_Tracked_01_CRV_F", + "B_APC_Tracked_01_AA_F", + "B_MBT_01_arty_F", + "B_MBT_01_mlrs_F", + "B_MBT_01_TUSK_F", + "O_APC_Tracked_02_cannon_F", + "O_APC_Tracked_02_AA_F", + "O_MBT_02_cannon_F", + "O_MBT_02_arty_F", + "O_APC_Wheeled_02_rcws_F", + "I_APC_tracked_03_cannon_F", + "I_MBT_03_cannon_F" +]; + _vehiclesBase = []; #include "ExcludedClassNames\baseVehicles.sqf" _veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; -//_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; +_veh sort true; _index = 0; _cars = []; +_tanks = []; _boats = []; _air = []; +_helis = []; +_planes = []; _exile = 0; { - if (_x isKindOf "Car" && !(_x in _vehiclesBase)) then + if !(_x in _vehiclesBase) then { - _cars pushback _x; + if (_x isKindOf "Tank") then {_tanks pushBack _x;systemChat format["Adding Tank %1",_x];}; + if (_x isKindOf "Car") then {_cars pushBack _x}; + if ((_x isKindOf "Plane")) then {_planes pushBack _x}; + if ((_x isKindOf "Helicopter")) then {_helis pushBack _x}; + if (_x isKindOf "Ship") then {_boats pushback _x;}; }; - if (_x isKindOf "Air" && !(_x in _vehiclesBase)) then - { - _air pushback _x; - }; - if (_x isKindOf "Boat" && !(_x in _vehiclesBase)) then - { - _boat pushback _x; - }; }forEach _veh; +systemChat format["%1 tanks found",count _tanks]; + _clipBoard = ""; if (GRG_mod == "Exile") then @@ -45,15 +61,19 @@ if (GRG_mod == "Epoch") then _clipboard = _clipboard + GRG_Epoch_ItemLists_Header; }; -_clipboard = _clipboard + format["// Cars%1%2",endl,endl,endl]; -_temp = [_cars] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%1// Boats%2%3",endl,endl,endl]; -_temp = [_boats] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%1// Air%2%3",endl,endl,endl]; -_temp = [_air] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; +{ + private _t = ""; + _clipboard = _clipboard + format["%2%2// %1%2%2",_x select 0,endl]; + _t = [_x select 1] call fn_generateItemList; + _clipBoard = _clipBoard + _t; +}forEach[ +["Cars",_cars], +["Tanks",_tanks], +["Boats",_boats], +["Helis",_helis], +["Planes",_planes], +["Other Air",_air] +]; if (GRG_mod == "Exile") then { @@ -63,33 +83,20 @@ if (GRG_mod == "Epoch") then { _clipboard = _clipBoard + GRG_Epoch_Pricelist_Header; }; -_clipboard = _clipboard + format["// Cars%1%2",endl,endl,endl]; -_temp = [_cars] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%1// Boats%2%3",endl,endl,endl]; -_temp = [_boats] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%1// Air%2%3",endl,endl,endl]; -_temp = [_air] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -if (GRG_mod == "Exile") then { - _clipboard = _clipBoard + GRG_Exile_Loottable_Header; -}; -if (GRG_mod == "Epoch") then -{ - _clipboard = _clipBoard + GRG_Epoch_Loottable_Header; -}; -_clipboard = _clipboard + format["// Cars%1%2",endl,endl,endl]; -_temp = [_cars] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%1// Boats%2%3",endl,endl,endl]; -_temp = [_boats] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%1// Air%2%3",endl,endl,endl]; -_temp = [_air] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; + private _t = ""; + _clipboard = _clipboard + format["%2%2// %1%2%2",_x select 0,endl]; + _t = [_x select 1] call fn_generatePriceList; + _clipBoard = _clipBoard + _t; +}forEach[ +["Cars",_cars], +["Tanks",_tanks], +["Boats",_boats], +["Helis",_helis], +["Planes",_planes], +["Other Air",_air] +]; copyToClipboard _clipboard; diff --git a/testConfig.Altis/vehiclesTurrets.sqf b/testConfig.Altis/vehiclesTurrets.sqf new file mode 100644 index 0000000..6755dbe --- /dev/null +++ b/testConfig.Altis/vehiclesTurrets.sqf @@ -0,0 +1,54 @@ + +_vehiclesBase = []; +#include "ExcludedClassNames\baseVehicles.sqf" +_veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; +_veh sort true; + +_cars = []; +_tanks = []; +_boats = []; +_air = []; +_helis = []; +_planes = []; +_exile = 0; + +{ + if !(_x in _vehiclesBase) then + { + if (_x isKindOf "Tank") then {_tanks pushBack _x;systemChat format["Adding Tank %1",_x];}; + if (_x isKindOf "Car") then {_cars pushBack _x}; + if ((_x isKindOf "Plane")) then {_planes pushBack _x}; + if ((_x isKindOf "Helicopter")) then {_helis pushBack _x}; + if (_x isKindOf "Ship") then {_boats pushback _x;}; + }; +}forEach _veh; + +_clipBoard = ""; +_allTurrets = []; +{ + private _vics = _x select 1; + { + private _turrets = getArray(configfile >> "CfgVehicles" >> _x >> "weapons"); + { + if !(_x in _allTurrets) then { + _allTurrets pushBack _x; + systemChat format["Adding turret %1",_x]; + }; + }forEach _turrets; + }forEach _vics; +}forEach[ +["Cars",_cars], +["Tanks",_tanks], +["Boats",_boats], +["Helis",_helis], +["Planes",_planes], +["Other Air",_air] +]; + +{ + _clipboard = _clipboard + format["%1,%2",_x,endl]; +}forEach _allTurrets; + +copyToClipboard _clipboard; + +hint format["Vehicles Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file diff --git a/testConfig.Altis/weapons.sqf b/testConfig.Altis/weapons.sqf index 718b912..118b63b 100644 --- a/testConfig.Altis/weapons.sqf +++ b/testConfig.Altis/weapons.sqf @@ -47,7 +47,13 @@ _wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; } forEach _allWeaponRoots; if (_isKindOf) then { - //if (getnumber (configFile >> "cfgWeapons" >> _x >> "scope") == 2) then { + //_msg = format["weapons classname extractor: _item = %1",_item]; + //diag_log _msg; + //systemChat _msg; + if !(_item in _knownWeapons) then + { + _knownWeapons pushBack _item; + //if (getnumber (configFile >> "cfgWeapons" >> _x >> "scope") == 2) then { _itemType = _x call bis_fnc_itemType; _itemCategory = _itemType select 1; //diag_log format["pullWepClassNames:: _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory]; @@ -97,6 +103,7 @@ _wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; }forEach _underbarrel; }; }; + }; }; } foreach _wpList; @@ -111,69 +118,29 @@ if (GRG_mod == "Epoch") then _clipboard = _clipBoard + GRG_Epoch_ItemLists_Header; }; -_clipboard = _clipboard + format["%2%3// // Assault Rifles %1",endl,endl,endl]; -_temp = [_wpnAR] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Assault Rifles with GL %1",endl,endl,endl]; -_temp = [_wpnARG] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// LMGs %1",endl,endl,endl]; -_temp = [_wpnLMG] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// SMGs %1",endl,endl,endl]; -_temp = [_wpnSMG] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Snipers %1",endl,endl,endl]; -_temp = [_wpnSniper] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// DMRs %1",endl,endl,endl]; -_temp = [_wpnDMR] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Launchers %1",endl,endl,endl]; -_temp = [_wpnLauncher] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Handguns %1",endl,endl,endl]; -_temp = [_wpnHandGun] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Shotguns %1",endl,endl,endl]; -_temp = [_wpnShotGun] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Throwables %1",endl,endl,endl]; -_temp = [_wpnThrow] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Unknown %1",endl,endl,endl]; -_temp = [_wpnUnknown] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Magazines %1",endl,endl,endl]; -_temp = [_wpnMagazines] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Optics %1",endl,endl,endl]; -_temp = [_wpnOptics] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Muzzles %1",endl,endl,endl]; -_temp = [_wpnMuzzles] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Pointers %1",endl,endl,endl]; -_temp = [_wpnPointers] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Underbarrel %1",endl,endl,endl]; -_temp = [_wpnUnderbarrel] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generateItemList; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Assault Rifles ",_wpnAR], + ["Assault Rifles with GL",_wpnARG], + ["LMGs",_wpnLMG], + [" SMGs ",_wpnSMG], + ["Snipers ",_wpnSniper], + ["DMRs ",_wpnDMR], + ["Launchers ",_wpnLauncher], + ["Handguns ",_wpnHandGun], + ["Shotguns ",_wpnShotGun], + ["Throwables ",_wpnThrow], + ["Magazines ",_wpnMagazines], + ["Optics ",_wpnOptics], + ["Muzzles ",_wpnMuzzles], + ["Pointers ",_wpnPointers], + ["Underbarrel ",_wpnUnderbarrel], + ["Unknown ",_wpnUnknown] +]; if (GRG_mod == "Exile") then { @@ -183,71 +150,29 @@ if (GRG_mod == "Epoch") then { _clipboard = _clipBoard + GRG_Epoch_Pricelist_Header; }; - -_clipboard = _clipboard + format["%2%3// // Assault Rifles %1",endl,endl,endl]; -_temp = [_wpnAR] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Assault Rifles with GL %1",endl,endl,endl]; -_temp = [_wpnARG] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// LMGs %1",endl,endl,endl]; -_temp = [_wpnLMG] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// SMGs %1",endl,endl,endl]; -_temp = [_wpnSMG] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Snipers %1",endl,endl,endl]; -_temp = [_wpnSniper] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// DMRs %1",endl,endl,endl]; -_temp = [_wpnDMR] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Launchers %1",endl,endl,endl]; -_temp = [_wpnLauncher] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Handguns %1",endl,endl,endl]; -_temp = [_wpnHandGun] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Shotguns %1",endl,endl,endl]; -_temp = [_wpnShotGun] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Throwables %1",endl,endl,endl]; -_temp = [_wpnThrow] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Unknown %1",endl,endl,endl]; -_temp = [_wpnUnknown] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Magazines %1",endl,endl,endl]; -_temp = [_wpnMagazines] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Optics %1",endl,endl,endl]; -_temp = [_wpnOptics] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Muzzles %1",endl,endl,endl]; -_temp = [_wpnMuzzles] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Pointers %1",endl,endl,endl]; -_temp = [_wpnPointers] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Underbarrel %1",endl,endl,endl]; -_temp = [_wpnUnderbarrel] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; - +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generatePriceList; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Assault Rifles ",_wpnAR], + ["Assault Rifles with GL",_wpnARG], + ["LMGs",_wpnLMG], + [" SMGs ",_wpnSMG], + ["Snipers ",_wpnSniper], + ["DMRs ",_wpnDMR], + ["Launchers ",_wpnLauncher], + ["Handguns ",_wpnHandGun], + ["Shotguns ",_wpnShotGun], + ["Throwables ",_wpnThrow], + ["Magazines ",_wpnMagazines], + ["Optics ",_wpnOptics], + ["Muzzles ",_wpnMuzzles], + ["Pointers ",_wpnPointers], + ["Underbarrel ",_wpnUnderbarrel], + ["Unknown ",_wpnUnknown] +]; if (GRG_mod == "Exile") then { @@ -257,71 +182,29 @@ if (GRG_mod == "Epoch") then { _clipboard = _clipBoard + GRG_Epoch_Loottable_Header; }; - -_clipboard = _clipboard + format["%2%3// // Assault Rifles %1",endl,endl,endl]; -_temp = [_wpnAR] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Assault Rifles with GL %1",endl,endl,endl]; -_temp = [_wpnARG] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// LMGs %1",endl,endl,endl]; -_temp = [_wpnLMG] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// SMGs %1",endl,endl,endl]; -_temp = [_wpnSMG] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Snipers %1",endl,endl,endl]; -_temp = [_wpnSniper] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// DMRs %1",endl,endl,endl]; -_temp = [_wpnDMR] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Launchers %1",endl,endl,endl]; -_temp = [_wpnLauncher] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Handguns %1",endl,endl,endl]; -_temp = [_wpnHandGun] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Shotguns %1",endl,endl,endl]; -_temp = [_wpnShotGun] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Throwables %1",endl,endl,endl]; -_temp = [_wpnThrow] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Unknown %1",endl,endl,endl]; -_temp = [_wpnUnknown] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Magazines %1",endl,endl,endl]; -_temp = [_wpnMagazines] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Optics %1",endl,endl,endl]; -_temp = [_wpnOptics] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Muzzles %1",endl,endl,endl]; -_temp = [_wpnMuzzles] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Pointers %1",endl,endl,endl]; -_temp = [_wpnPointers] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - -_clipboard = _clipboard + format["%2%3// Underbarrel %1",endl,endl,endl]; -_temp = [_wpnUnderbarrel] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generateLootTableEntries; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Assault Rifles ",_wpnAR], + ["Assault Rifles with GL",_wpnARG], + ["LMGs",_wpnLMG], + [" SMGs ",_wpnSMG], + ["Snipers ",_wpnSniper], + ["DMRs ",_wpnDMR], + ["Launchers ",_wpnLauncher], + ["Handguns ",_wpnHandGun], + ["Shotguns ",_wpnShotGun], + ["Throwables ",_wpnThrow], + ["Magazines ",_wpnMagazines], + ["Optics ",_wpnOptics], + ["Muzzles ",_wpnMuzzles], + ["Pointers ",_wpnPointers], + ["Underbarrel ",_wpnUnderbarrel], + ["Unknown ",_wpnUnknown] +]; copyToClipboard _clipBoard; hint format["Weapons Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file diff --git a/testConfig.Altis/wearables.sqf b/testConfig.Altis/wearables.sqf index 0391830..a195b93 100644 --- a/testConfig.Altis/wearables.sqf +++ b/testConfig.Altis/wearables.sqf @@ -8,11 +8,86 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ +/* + Description: + Return item category and type. Recognized types are: + + Weapon / VehicleWeapon + AssaultRifle + BombLauncher + Cannon + GrenadeLauncher + Handgun + Launcher + MachineGun + Magazine + MissileLauncher + Mortar + RocketLauncher + Shotgun + Throw + Rifle + SubmachineGun + SniperRifle + VehicleWeapon + Horn + CounterMeasuresLauncher + LaserDesignator + Item + AccessoryMuzzle + AccessoryPointer + AccessorySights + AccessoryBipod + Binocular + Compass + FirstAidKit + GPS + LaserDesignator + Map + Medikit + MineDetector + NVGoggles + Radio + Toolkit + UAVTerminal + VehicleWeapon + Unknown + UnknownEquipment + UnknownWeapon + Watch + Equipment + Glasses + Headgear + Vest + Uniform + Backpack + Magazine + Artillery + Bullet + CounterMeasures + Flare + Grenade + Laser + Missile + Rocket + Shell + ShotgunShell + SmokeShell + UnknownMagazine + Mine + Mine + MineBounding + MineDirectional + + Parameter(s): + 0: STRING - item class + + Returns: + ARRAY in format [category,type] +*/ _baseWearables = []; #include "ExcludedClassNames\baseWearables.sqf" -_allWearableRoots = ["Pistol","Rifle","Launcher"]; -_allWearableTypes = ["AssaultRifle","MachineGun","SniperRifle","Shotgun","Rifle","Pistol","SubmachineGun","Handgun","MissileLauncher","RocketLauncher","Throw","GrenadeCore"]; _addedBaseNames = []; _allBannedWearables = []; _uniforms = []; @@ -22,39 +97,40 @@ _masks = []; _backpacks = []; _vests = []; _goggles = []; -_binocs = []; + _NVG = []; -_wearablesList = (configfile >> "cfgGlasses") call BIS_fnc_getCfgSubClasses; -{ - if ( !(_x in _baseWearables) && !(_x in _addedBaseNames) ) then - { - _addedBaseNames pushBack _x; - _glasses pushBack _x; - }; -}forEach _wearablesList; - -_aBaseNames = []; _wearablesList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; +_temp = (configFile >> "cfgVehicles") call BIS_fnc_getCfgSubClasses; +_wearablesList = _wearablesList + _temp; +_temp = (configFile >> "CfgGlasses") call BIS_fnc_getCfgSubClasses; +_wearablesList = _wearablesList + _temp; //_wearablesList sort true; { - if ( !(_x in _baseWearables) && !(_x in _addedBaseNames) ) then + _itemType = _x call BIS_fnc_itemType; + diag_log format["for Item %1 its ItemType [0] is %2",_x,_itemType select 0]; + if (_itemType select 0 isEqualTo "Equipment") then { - _addedBaseNames pushBack _x; - // Uniforms - if (_x isKindOF ["Uniform_Base", configFile >> "CfgWeapons"]) then {_uniforms pushBack _x}; - // Headgear / Masks - if ( (_x isKindOF ["HelmetBase", configFile >> "CfgWeapons"]) or (_x isKindOF ["H_HelmetB", configFile >> "CfgWeapons"]) ) then {_headgear pushBack _x}; - // Goggles - if (_x isKindOF ["GoggleItem", configFile >> "CfgWeapons"]) then {_goggles pushBack _x}; - // NVG - if (_x isKindOF ["NVGoggles", configFile >> "CfgWeapons"]) then {_NVG pushBack _x}; - // Masks - - // Vests - if ( (_x isKindOF ["Vest_Camo_Base", configFile >> "CfgWeapons"]) or (_x isKindOF ["Vest_NoCamo_Base", configFile >> "CfgWeapons"]) ) then {_vests pushBack _x}; - // Backpacks - if (_x isKindOF ["Bag_Base", configFile >> "CfgVehicles"]) then {_backpacks pushBack _x}; + if ( !(_x in _baseWearables) && !(_x in _addedBaseNames) ) then + { + _baseWearables pushBack _x; + + diag_log format["_x = %1, _itemType = %2",_x, _itemType select 1]; + // Uniforms + if (_itemType select 1 isEqualTo "Uniform") then {_uniforms pushBack _x}; + // Headgear / Masks + //if ( (_x isKindOF ["HelmetBase", configFile >> "CfgWeapons"]) or (_x isKindOF ["H_HelmetB", configFile >> "CfgWeapons"]) ) then {_headgear pushBack _x}; + if (_itemType select 1 isEqualTo "Headgear") then {_headgear pushBack _x}; + + //if (_x isKindOF ["GoggleItem", configFile >> "CfgWeapons"]) then {_goggles pushBack _x}; + if (_itemType select 1 isEqualTo "Glasses") then {_glasses pushBack _x}; + // Vests + //if ( (_x isKindOF ["Vest_Camo_Base", configFile >> "CfgWeapons"]) or (_x isKindOF ["Vest_NoCamo_Base", configFile >> "CfgWeapons"]) ) then {_vests pushBack _x}; + if (_itemType select 1 isEqualTo "Vest") then {_vests pushBack _x}; + // Backpacks + //if (_x isKindOF ["Bag_Base", configFile >> "CfgVehicles"]) then {_backpacks pushBack _x}; + if (_itemType select 1 isEqualTo "Backpack") then {_backpacks pushBack _x}; + }; }; } foreach _wearablesList; @@ -68,28 +144,18 @@ if (GRG_mod == "Epoch") then { _clipboard = _clipboard + GRG_Epoch_ItemLists_Header; }; - -_clipboard = _clipboard + format["%2%3// // Uniforms %1",endl,endl,endl]; -_temp = [_uniforms] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%2%3// Headgear / Masks %1",endl,endl,endl]; -_temp = [_headgear] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%2%3// Goggles %1",endl,endl,endl]; -_temp = [_goggles] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// Vests %1",endl,endl,endl]; -_temp = [_vests] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// Backpacks %1",endl,endl,endl]; -_temp = [_backpacks] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3//Glasses %1",endl,endl,endl]; -_temp = [_glasses] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// NVG %1",endl,endl,endl]; -_temp = [_NVG] call fn_generateItemList; -_clipBoard = _clipBoard + _temp; +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generateItemList; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Uniforms",_uniforms], + ["Headgear",_headgear], + ["Vests",_vests], + ["Backpacks",_backpacks], + ["Glasses",_glasses] +]; if (GRG_mod == "Exile") then { @@ -100,27 +166,18 @@ if (GRG_mod == "Epoch") then _clipboard = _clipBoard + GRG_Epoch_Pricelist_Header; }; -_clipboard = _clipboard + format["%2%3// // Uniforms %1",endl,endl,endl]; -_temp = [_uniforms] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%2%3// Headgear / Masks %1",endl,endl,endl]; -_temp = [_headgear] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%2%3// Goggles %1",endl,endl,endl]; -_temp = [_goggles] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// Vests %1",endl,endl,endl]; -_temp = [_vests] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// Backpacks %1",endl,endl,endl]; -_temp = [_backpacks] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3//Glasses %1",endl,endl,endl]; -_temp = [_glasses] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// NVG %1",endl,endl,endl]; -_temp = [_NVG] call fn_generatePriceList; -_clipBoard = _clipBoard + _temp; +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generatePriceList; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Uniforms",_uniforms], + ["Headgear",_headgear], + ["Vests",_vests], + ["Backpacks",_backpacks], + ["Glasses",_glasses] +]; if (GRG_mod == "Exile") then { @@ -130,29 +187,17 @@ if (GRG_mod == "Epoch") then { _clipboard = _clipBoard + GRG_Epoch_Loottable_Header; }; - -_clipboard = _clipboard + format["%2%3// // Uniforms %1",endl,endl,endl]; -_temp = [_uniforms] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%2%3// Headgear / Masks %1",endl,endl,endl]; -_temp = [_headgear] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; -_clipboard = _clipboard + format["%2%3// Goggles %1",endl,endl,endl]; -_temp = [_goggles] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// Vests %1",endl,endl,endl]; -_temp = [_vests] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// Backpacks %1",endl,endl,endl]; -_temp = [_backpacks] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3//Glasses %1",endl,endl,endl]; -_temp = [_glasses] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; -_clipBoard = _clipBoard + format["%2%3// NVG %1",endl,endl,endl]; -_temp = [_NVG] call fn_generateLootTableEntries; -_clipBoard = _clipBoard + _temp; - +{ + _clipboard = _clipboard + format["%2%2// %1 %2%2",_x select 0, endl]; + _temp = [_x select 1] call fn_generateLootTableEntries; + _clipBoard = _clipBoard + _temp; +} foreach +[ + ["Uniforms",_uniforms], + ["Headgear",_headgear], + ["Vests",_vests], + ["Backpacks",_backpacks], + ["Glasses",_glasses] +]; copyToClipboard _clipBoard; - hint format["Wearables Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file From 6c2475b18d4e554c907ddd2957fb528864761498 Mon Sep 17 00:00:00 2001 From: Ghostrider-DbD- Date: Wed, 4 Oct 2017 18:35:36 -0400 Subject: [PATCH 3/5] Added one new function, bug-fixes, optimizations --- changelog.hpp | 6 + .../{OldVersions => Code}/KRON_Strings.sqf | 0 .../ExcludedClassNames/excludedMagazines.sqf | 26 + .../ExcludedClassNames/excludedVehicles.sqf | 299 +++++++ .../ExcludedClassNames/excludedWeapons.sqf | 226 +++++ .../ExcludedClassNames/excludedWearables.sqf | 67 ++ testConfig.Altis/OldVersions/airBase.sqf | 266 ------ testConfig.Altis/OldVersions/airConfig.sqf | 18 - testConfig.Altis/OldVersions/airPriceList.sqf | 33 - testConfig.Altis/OldVersions/baseHeadgear.sqf | 174 ---- .../OldVersions/baseMagazines.sqf | 797 ------------------ testConfig.Altis/OldVersions/baseUniforms.sqf | 195 ----- testConfig.Altis/OldVersions/baseVests.sqf | 88 -- testConfig.Altis/OldVersions/baseWeapons.sqf | 275 ------ .../OldVersions/baseWearables.sqf | 500 ----------- .../OldVersions/headgearConfig.sqf | 39 - .../OldVersions/headgearPriceList.sqf | 38 - .../OldVersions/initgobalvariables.sqf | 33 - .../OldVersions/magazinesConfig.sqf | 64 -- .../OldVersions/magazinesPriceList.sqf | 91 -- testConfig.Altis/OldVersions/strtst.sqf | 105 --- .../OldVersions/uniformsConfig.sqf | 37 - .../OldVersions/uniformsPriceList.sqf | 34 - testConfig.Altis/OldVersions/vehiclesBase.sqf | 718 ---------------- .../OldVersions/vehiclesConfig.sqf | 55 -- .../OldVersions/vehiclesPriceList.sqf | 74 -- testConfig.Altis/OldVersions/vestsConfig.sqf | 37 - .../OldVersions/vestsPriceList.sqf | 35 - .../OldVersions/weaponsConfig.sqf | 181 ---- .../OldVersions/weaponsPriceList.sqf | 295 ------- .../OldVersions/wearablesConfig.sqf | 120 --- .../OldVersions/wearablesPriceList.sqf | 197 ----- testConfig.Altis/Readme.hpp | 5 + testConfig.Altis/help.sqf | 71 -- testConfig.Altis/init.sqf | 6 +- testConfig.Altis/items.sqf | 23 +- testConfig.Altis/magazines.sqf | 33 +- testConfig.Altis/mission.sqm | 10 +- testConfig.Altis/testSound.sqf | 2 + testConfig.Altis/vehicles.sqf | 63 +- testConfig.Altis/vehiclesTurrets.sqf | 22 +- testConfig.Altis/weapons.sqf | 54 +- testConfig.Altis/wearables.sqf | 35 +- 43 files changed, 814 insertions(+), 4633 deletions(-) create mode 100644 changelog.hpp rename testConfig.Altis/{OldVersions => Code}/KRON_Strings.sqf (100%) create mode 100644 testConfig.Altis/ExcludedClassNames/excludedMagazines.sqf create mode 100644 testConfig.Altis/ExcludedClassNames/excludedVehicles.sqf create mode 100644 testConfig.Altis/ExcludedClassNames/excludedWeapons.sqf create mode 100644 testConfig.Altis/ExcludedClassNames/excludedWearables.sqf delete mode 100644 testConfig.Altis/OldVersions/airBase.sqf delete mode 100644 testConfig.Altis/OldVersions/airConfig.sqf delete mode 100644 testConfig.Altis/OldVersions/airPriceList.sqf delete mode 100644 testConfig.Altis/OldVersions/baseHeadgear.sqf delete mode 100644 testConfig.Altis/OldVersions/baseMagazines.sqf delete mode 100644 testConfig.Altis/OldVersions/baseUniforms.sqf delete mode 100644 testConfig.Altis/OldVersions/baseVests.sqf delete mode 100644 testConfig.Altis/OldVersions/baseWeapons.sqf delete mode 100644 testConfig.Altis/OldVersions/baseWearables.sqf delete mode 100644 testConfig.Altis/OldVersions/headgearConfig.sqf delete mode 100644 testConfig.Altis/OldVersions/headgearPriceList.sqf delete mode 100644 testConfig.Altis/OldVersions/initgobalvariables.sqf delete mode 100644 testConfig.Altis/OldVersions/magazinesConfig.sqf delete mode 100644 testConfig.Altis/OldVersions/magazinesPriceList.sqf delete mode 100644 testConfig.Altis/OldVersions/strtst.sqf delete mode 100644 testConfig.Altis/OldVersions/uniformsConfig.sqf delete mode 100644 testConfig.Altis/OldVersions/uniformsPriceList.sqf delete mode 100644 testConfig.Altis/OldVersions/vehiclesBase.sqf delete mode 100644 testConfig.Altis/OldVersions/vehiclesConfig.sqf delete mode 100644 testConfig.Altis/OldVersions/vehiclesPriceList.sqf delete mode 100644 testConfig.Altis/OldVersions/vestsConfig.sqf delete mode 100644 testConfig.Altis/OldVersions/vestsPriceList.sqf delete mode 100644 testConfig.Altis/OldVersions/weaponsConfig.sqf delete mode 100644 testConfig.Altis/OldVersions/weaponsPriceList.sqf delete mode 100644 testConfig.Altis/OldVersions/wearablesConfig.sqf delete mode 100644 testConfig.Altis/OldVersions/wearablesPriceList.sqf delete mode 100644 testConfig.Altis/help.sqf create mode 100644 testConfig.Altis/testSound.sqf diff --git a/changelog.hpp b/changelog.hpp new file mode 100644 index 0000000..014406a --- /dev/null +++ b/changelog.hpp @@ -0,0 +1,6 @@ + +10/4/2017 +0.4 Added an option whereby setting GRG_Root = "STR" will only include classnames beginning with STR. + Did some bug fixing and optimization. + Add some output to systemChat so the user knows that things are happening. + diff --git a/testConfig.Altis/OldVersions/KRON_Strings.sqf b/testConfig.Altis/Code/KRON_Strings.sqf similarity index 100% rename from testConfig.Altis/OldVersions/KRON_Strings.sqf rename to testConfig.Altis/Code/KRON_Strings.sqf diff --git a/testConfig.Altis/ExcludedClassNames/excludedMagazines.sqf b/testConfig.Altis/ExcludedClassNames/excludedMagazines.sqf new file mode 100644 index 0000000..30dd21e --- /dev/null +++ b/testConfig.Altis/ExcludedClassNames/excludedMagazines.sqf @@ -0,0 +1,26 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + Lists magazines that should excluded from the output for the script. + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ +// Magazines +/* + Add the class names of any magazines you wish to exclude to _baseMagazines using the formating shown in the example below. + + For example, if you wish to exclude smoke rounds add: + + "VehicleMagazine", + "SmokeLauncherMag", + "SmokeLauncherMag_boat" + +*/ +_excludedMagazines = [ + + +]; diff --git a/testConfig.Altis/ExcludedClassNames/excludedVehicles.sqf b/testConfig.Altis/ExcludedClassNames/excludedVehicles.sqf new file mode 100644 index 0000000..6ce8c67 --- /dev/null +++ b/testConfig.Altis/ExcludedClassNames/excludedVehicles.sqf @@ -0,0 +1,299 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + Lists weapons that should excluded from the output for the script. + + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +/* + + Include any classnames you wish to exclude from the lists generated by the tool by adding them to _airBase using the formating below. + The list below includes the default Arma 3 UAVs of APEX. + + "B_UAV_01_F", + "O_UAV_01_F", + "I_UAV_01_F", + "UAV_02_base_F", + "UAV_02_CAS_base_F", + "B_UAV_02_F", + "O_UAV_02_F", + "I_UAV_02_F", + "B_UAV_02_CAS_F", + "O_UAV_02_CAS_F", + "I_UAV_02_CAS_F" + */ +_excludedVehicles = [ + + +// Cars + +"Exile_Bike_QuadBike_Black", +"Exile_Bike_QuadBike_Blue", +"Exile_Bike_QuadBike_Csat", +"Exile_Bike_QuadBike_Fia", +"Exile_Bike_QuadBike_Guerilla01", +"Exile_Bike_QuadBike_Guerilla02", +"Exile_Bike_QuadBike_Nato", +"Exile_Bike_QuadBike_Red", +"Exile_Bike_QuadBike_White", +"Exile_Car_BRDM2_HQ", +"Exile_Car_BTR40_Camo", +"Exile_Car_BTR40_Green", +"Exile_Car_BTR40_MG_Camo", +"Exile_Car_BTR40_MG_Green", +"Exile_Car_Golf_Black", +"Exile_Car_Golf_Red", +"Exile_Car_Hatchback_Beige", +"Exile_Car_Hatchback_BeigeCustom", +"Exile_Car_Hatchback_Black", +"Exile_Car_Hatchback_Blue", +"Exile_Car_Hatchback_BlueCustom", +"Exile_Car_Hatchback_Dark", +"Exile_Car_Hatchback_Green", +"Exile_Car_Hatchback_Grey", +"Exile_Car_Hatchback_Rusty1", +"Exile_Car_Hatchback_Rusty2", +"Exile_Car_Hatchback_Rusty3", +"Exile_Car_Hatchback_Sport_Admin", +"Exile_Car_Hatchback_Sport_Beige", +"Exile_Car_Hatchback_Sport_Blue", +"Exile_Car_Hatchback_Sport_Green", +"Exile_Car_Hatchback_Sport_Orange", +"Exile_Car_Hatchback_Sport_Red", +"Exile_Car_Hatchback_Sport_White", +"Exile_Car_Hatchback_Yellow", +"Exile_Car_HEMMT", +"Exile_Car_HMMWV_M134_Desert", +"Exile_Car_HMMWV_M134_Green", +"Exile_Car_HMMWV_M2_Desert", +"Exile_Car_HMMWV_M2_Green", +"Exile_Car_HMMWV_MEV_Desert", +"Exile_Car_HMMWV_MEV_Green", +"Exile_Car_HMMWV_UNA_Desert", +"Exile_Car_HMMWV_UNA_Green", +"Exile_Car_Hunter", +"Exile_Car_Ifrit", +"Exile_Car_Ikarus_Blue", +"Exile_Car_Ikarus_Party", +"Exile_Car_Ikarus_Red", +"Exile_Car_Kart_Black", +"Exile_Car_Kart_Blue", +"Exile_Car_Kart_BluKing", +"Exile_Car_Kart_Green", +"Exile_Car_Kart_Orange", +"Exile_Car_Kart_RedStone", +"Exile_Car_Kart_Vrana", +"Exile_Car_Kart_White", +"Exile_Car_Kart_Yellow", +"Exile_Car_Lada_Green", +"Exile_Car_Lada_Hipster", +"Exile_Car_Lada_Red", +"Exile_Car_Lada_Taxi", +"Exile_Car_Lada_White", +"Exile_Car_LandRover_Ambulance_Desert", +"Exile_Car_LandRover_Ambulance_Green", +"Exile_Car_LandRover_Ambulance_Sand", +"Exile_Car_LandRover_Desert", +"Exile_Car_LandRover_Green", +"Exile_Car_LandRover_Red", +"Exile_Car_LandRover_Sand", +"Exile_Car_LandRover_Urban", +"Exile_Car_MB4WD", +"Exile_Car_MB4WDOpen", +"Exile_Car_Octavius_Black", +"Exile_Car_Octavius_White", +"Exile_Car_Offroad_Armed_Guerilla01", +"Exile_Car_Offroad_Armed_Guerilla02", +"Exile_Car_Offroad_Armed_Guerilla03", +"Exile_Car_Offroad_Armed_Guerilla04", +"Exile_Car_Offroad_Armed_Guerilla05", +"Exile_Car_Offroad_Armed_Guerilla06", +"Exile_Car_Offroad_Armed_Guerilla07", +"Exile_Car_Offroad_Armed_Guerilla08", +"Exile_Car_Offroad_Armed_Guerilla09", +"Exile_Car_Offroad_Armed_Guerilla10", +"Exile_Car_Offroad_Armed_Guerilla11", +"Exile_Car_Offroad_Armed_Guerilla12", +"Exile_Car_Offroad_Beige", +"Exile_Car_Offroad_Blue", +"Exile_Car_Offroad_BlueCustom", +"Exile_Car_Offroad_DarkRed", +"Exile_Car_Offroad_Guerilla01", +"Exile_Car_Offroad_Guerilla02", +"Exile_Car_Offroad_Guerilla03", +"Exile_Car_Offroad_Guerilla04", +"Exile_Car_Offroad_Guerilla05", +"Exile_Car_Offroad_Guerilla06", +"Exile_Car_Offroad_Guerilla07", +"Exile_Car_Offroad_Guerilla08", +"Exile_Car_Offroad_Guerilla09", +"Exile_Car_Offroad_Guerilla10", +"Exile_Car_Offroad_Guerilla11", +"Exile_Car_Offroad_Guerilla12", +"Exile_Car_Offroad_Red", +"Exile_Car_Offroad_Repair_Beige", +"Exile_Car_Offroad_Repair_Blue", +"Exile_Car_Offroad_Repair_BlueCustom", +"Exile_Car_Offroad_Repair_Civillian", +"Exile_Car_Offroad_Repair_DarkRed", +"Exile_Car_Offroad_Repair_Guerilla01", +"Exile_Car_Offroad_Repair_Guerilla02", +"Exile_Car_Offroad_Repair_Guerilla03", +"Exile_Car_Offroad_Repair_Guerilla04", +"Exile_Car_Offroad_Repair_Guerilla05", +"Exile_Car_Offroad_Repair_Guerilla06", +"Exile_Car_Offroad_Repair_Guerilla07", +"Exile_Car_Offroad_Repair_Guerilla08", +"Exile_Car_Offroad_Repair_Guerilla09", +"Exile_Car_Offroad_Repair_Guerilla10", +"Exile_Car_Offroad_Repair_Guerilla11", +"Exile_Car_Offroad_Repair_Guerilla12", +"Exile_Car_Offroad_Repair_Red", +"Exile_Car_Offroad_Repair_White", +"Exile_Car_Offroad_Rusty1", +"Exile_Car_Offroad_Rusty2", +"Exile_Car_Offroad_Rusty3", +"Exile_Car_Offroad_White", +"Exile_Car_OldTractor_Red", +"Exile_Car_ProwlerLight", +"Exile_Car_ProwlerUnarmed", +"Exile_Car_QilinUnarmed", +"Exile_Car_Strider", +"Exile_Car_SUV_Armed_Black", +"Exile_Car_SUV_Black", +"Exile_Car_SUV_Grey", +"Exile_Car_SUV_Orange", +"Exile_Car_SUV_Red", +"Exile_Car_SUV_Rusty1", +"Exile_Car_SUV_Rusty2", +"Exile_Car_SUV_Rusty3", +"Exile_Car_SUVXL_Black", +"Exile_Car_Tempest", +"Exile_Car_TowTractor_White", +"Exile_Car_Tractor_Red", +"Exile_Car_UAZ_Green", +"Exile_Car_UAZ_Open_Green", +"Exile_Car_Ural_Covered_Blue", +"Exile_Car_Ural_Covered_Military", +"Exile_Car_Ural_Covered_Worker", +"Exile_Car_Ural_Covered_Yellow", +"Exile_Car_Ural_Open_Blue", +"Exile_Car_Ural_Open_Military", +"Exile_Car_Ural_Open_Worker", +"Exile_Car_Ural_Open_Yellow", +"Exile_Car_V3S_Covered", +"Exile_Car_V3S_Open", +"Exile_Car_Van_Black", +"Exile_Car_Van_Box_Black", +"Exile_Car_Van_Box_Guerilla01", +"Exile_Car_Van_Box_Guerilla02", +"Exile_Car_Van_Box_Guerilla03", +"Exile_Car_Van_Box_Guerilla04", +"Exile_Car_Van_Box_Guerilla05", +"Exile_Car_Van_Box_Guerilla06", +"Exile_Car_Van_Box_Guerilla07", +"Exile_Car_Van_Box_Guerilla08", +"Exile_Car_Van_Box_Red", +"Exile_Car_Van_Box_White", +"Exile_Car_Van_Fuel_Black", +"Exile_Car_Van_Fuel_Guerilla01", +"Exile_Car_Van_Fuel_Guerilla02", +"Exile_Car_Van_Fuel_Guerilla03", +"Exile_Car_Van_Fuel_Red", +"Exile_Car_Van_Fuel_White", +"Exile_Car_Van_Guerilla01", +"Exile_Car_Van_Guerilla02", +"Exile_Car_Van_Guerilla03", +"Exile_Car_Van_Guerilla04", +"Exile_Car_Van_Guerilla05", +"Exile_Car_Van_Guerilla06", +"Exile_Car_Van_Guerilla07", +"Exile_Car_Van_Guerilla08", +"Exile_Car_Van_Red", +"Exile_Car_Van_White", +"Exile_Car_Volha_Black", +"Exile_Car_Volha_Blue", +"Exile_Car_Volha_White", +"Exile_Car_Zamak", + + +// Tanks + + + +// Boats + +"Exile_Boat_MotorBoat_Orange", +"Exile_Boat_MotorBoat_Police", +"Exile_Boat_MotorBoat_White", +"Exile_Boat_RHIB", +"Exile_Boat_RubberDuck_Black", +"Exile_Boat_RubberDuck_Blue", +"Exile_Boat_RubberDuck_CSAT", +"Exile_Boat_RubberDuck_Digital", +"Exile_Boat_RubberDuck_Orange", +"Exile_Boat_SDV_CSAT", +"Exile_Boat_SDV_Digital", +"Exile_Boat_SDV_Grey", +"Exile_Boat_WaterScooter", + + +// Helis + +"Exile_Chopper_Hellcat_FIA", +"Exile_Chopper_Hellcat_Green", +"Exile_Chopper_Huey_Armed_Desert", +"Exile_Chopper_Huey_Armed_Green", +"Exile_Chopper_Huey_Desert", +"Exile_Chopper_Huey_Green", +"Exile_Chopper_Hummingbird_Civillian_Blue", +"Exile_Chopper_Hummingbird_Civillian_BlueLine", +"Exile_Chopper_Hummingbird_Civillian_Digital", +"Exile_Chopper_Hummingbird_Civillian_Elliptical", +"Exile_Chopper_Hummingbird_Civillian_Furious", +"Exile_Chopper_Hummingbird_Civillian_GrayWatcher", +"Exile_Chopper_Hummingbird_Civillian_ION", +"Exile_Chopper_Hummingbird_Civillian_Jeans", +"Exile_Chopper_Hummingbird_Civillian_Light", +"Exile_Chopper_Hummingbird_Civillian_Red", +"Exile_Chopper_Hummingbird_Civillian_Shadow", +"Exile_Chopper_Hummingbird_Civillian_Sheriff", +"Exile_Chopper_Hummingbird_Civillian_Speedy", +"Exile_Chopper_Hummingbird_Civillian_Sunset", +"Exile_Chopper_Hummingbird_Civillian_Vrana", +"Exile_Chopper_Hummingbird_Civillian_Wasp", +"Exile_Chopper_Hummingbird_Civillian_Wave", +"Exile_Chopper_Hummingbird_Green", +"Exile_Chopper_Huron_Black", +"Exile_Chopper_Huron_Green", +"Exile_Chopper_Mohawk_FIA", +"Exile_Chopper_Orca_Black", +"Exile_Chopper_Orca_BlackCustom", +"Exile_Chopper_Orca_CSAT", +"Exile_Chopper_Taru_Black", +"Exile_Chopper_Taru_Covered_Black", +"Exile_Chopper_Taru_Covered_CSAT", +"Exile_Chopper_Taru_CSAT", +"Exile_Chopper_Taru_Transport_Black", +"Exile_Chopper_Taru_Transport_CSAT", + + +// Planes + +"Exile_Plane_AN2_Green", +"Exile_Plane_AN2_Stripe", +"Exile_Plane_AN2_White", +"Exile_Plane_BlackfishInfantry", +"Exile_Plane_BlackfishVehicle", +"Exile_Plane_Ceasar", +"Exile_Plane_Cessna" + + + +]; diff --git a/testConfig.Altis/ExcludedClassNames/excludedWeapons.sqf b/testConfig.Altis/ExcludedClassNames/excludedWeapons.sqf new file mode 100644 index 0000000..e94cf68 --- /dev/null +++ b/testConfig.Altis/ExcludedClassNames/excludedWeapons.sqf @@ -0,0 +1,226 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + Lists weapons that should excluded from the output for the script. + + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +/* + + Include any classnames you wish to exclude from the lists generated by the tool by adding them to _knownWeapons using the formating below. + The list below includes the default Arma 3 MX series of assaault rifles as of APEX. + + "arifle_MX_Base_F", + "arifle_MXC_F", + "arifle_MX_F", + "arifle_MXM_F", + "arifle_MXC_Black_F", + "arifle_MX_Black_F", + "arifle_MXM_Black_F" + */ +_excludedWeapons = [ + + +/* + + Exile Trader Item Lists + +*/ + +// Assault Rifles + +"Exile_Weapon_AK107", +"Exile_Weapon_AK74", +"Exile_Weapon_AK47", +"Exile_Weapon_AKM", +"Exile_Weapon_AKS", +"Exile_Weapon_AKS_Gold", +"exile_arifle_M16A4", +"Exile_Weapon_M16A4", +"exile_arifle_M16A2", +"Exile_Weapon_M16A2", +"exile_arifle_M4", +"Exile_Weapon_M4", +"Exile_Weapon_DMR", +"Exile_Weapon_ksvk", +"Exile_Weapon_LeeEnfield", +"Exile_Weapon_CZ550", +"Exile_Weapon_SVD", +"Exile_Weapon_SVDCamo", +"Exile_Weapon_VSSVintorez", +"Exile_Weapon_RPK", +"Exile_Weapon_M1014", + + +// Assault Rifles with GL + +"Exile_Weapon_AK107_GL", +"Exile_Weapon_AK74_GL", + + +// LMGs + +"Exile_Weapon_PK", +"Exile_Weapon_PKP", + + +// SMGs + + + +// Snipers + +"exile_weapons_m107", +"Exile_Weapon_m107", + + +// DMRs + + + +// Launchers + + + +// Handguns + +"Exile_Weapon_Colt1911", +"Exile_Weapon_Makarov", +"Exile_Weapon_Taurus", +"Exile_Weapon_TaurusGold", +"exile_rifle_SA61", +"Exile_Weapon_SA61", + + +// Shotguns + + + +// Throwables + +"Exile_Melee_Axe", +"Exile_Melee_Shovel", +"Exile_Melee_SledgeHammer", + + +// Magazines + +"Exile_Magazine_Swing", +"Exile_Magazine_Boing", +"Exile_Magazine_Swoosh", +"Exile_Magazine_30Rnd_545x39_AK", +"Exile_Magazine_30Rnd_545x39_AK_Green", +"Exile_Magazine_30Rnd_545x39_AK_Red", +"Exile_Magazine_30Rnd_545x39_AK_White", +"Exile_Magazine_30Rnd_545x39_AK_Yellow", +"Exile_Magazine_30Rnd_762x39_AK", +"30Rnd_556x45_Stanag", +"30Rnd_556x45_Stanag_green", +"30Rnd_556x45_Stanag_red", +"30Rnd_556x45_Stanag_Tracer_Red", +"30Rnd_556x45_Stanag_Tracer_Green", +"30Rnd_556x45_Stanag_Tracer_Yellow", +"Exile_Magazine_20Rnd_762x51_DMR", +"Exile_Magazine_20Rnd_762x51_DMR_Yellow", +"Exile_Magazine_20Rnd_762x51_DMR_Red", +"Exile_Magazine_20Rnd_762x51_DMR_Green", +"Exile_Magazine_5Rnd_127x108_APDS_KSVK", +"Exile_Magazine_5Rnd_127x108_KSVK", +"Exile_Magazine_5Rnd_127x108_KSVK_Bullet_Cam_Mag", +"Exile_Magazine_5Rnd_127x108_APDS_KSVK_Bullet_Cam_Mag", +"10Rnd_127x99_m107", +"Exile_Magazine_10Rnd_127x99_m107", +"Exile_Magazine_10Rnd_127x99_m107_Bullet_Cam_Mag", +"Exile_Magazine_10Rnd_303", +"Exile_Magazine_5Rnd_22LR", +"Exile_Magazine_10Rnd_762x54", +"Exile_Magazine_10Rnd_9x39", +"Exile_Magazine_20Rnd_9x39", +"Exile_Magazine_45Rnd_545x39_RPK_Green", +"Exile_Magazine_75Rnd_545x39_RPK_Green", +"Exile_Magazine_100Rnd_762x54_PK_Green", +"Exile_Magazine_7Rnd_45ACP", +"Exile_Magazine_8Rnd_9x18", +"Exile_Magazine_6Rnd_45ACP", +"10Rnd_765x17ball", +"20Rnd_765x17ball", +"Exile_Magazine_10Rnd_765x17_SA61", +"Exile_Magazine_20Rnd_765x17_SA61", +"Exile_Magazine_8Rnd_74Slug", +"Exile_Magazine_8Rnd_74Pellets", + + +// Optics + +"optic_Nightstalker", +"optic_tws", +"optic_tws_mg", +"optic_NVS", +"optic_DMS", +"optic_LRPS", +"optic_ams", +"optic_AMS_snd", +"optic_AMS_khk", +"optic_KHS_blk", +"optic_KHS_tan", +"optic_KHS_hex", +"optic_KHS_old", +"optic_SOS", +"optic_MRCO", +"optic_Arco", +"optic_aco", +"optic_ACO_grn", +"optic_aco_smg", +"optic_ACO_grn_smg", +"optic_hamr", +"optic_Holosight", +"optic_Holosight_smg", +"optic_Hamr_khk_F", +"optic_SOS_khk_F", +"optic_Arco_ghex_F", +"optic_Arco_blk_F", +"optic_DMS_ghex_F", +"optic_ERCO_blk_F", +"optic_ERCO_khk_F", +"optic_ERCO_snd_F", +"optic_LRPS_ghex_F", +"optic_LRPS_tna_F", +"optic_Holosight_blk_F", +"optic_Holosight_khk_F", +"optic_Holosight_smg_blk_F", +"optic_Holosight_smg_khk_F", +"optic_Hamr", +"optic_AMS", + + +// Muzzles + +"muzzle_snds_M", +"muzzle_snds_L", + + +// Pointers + +"acc_flashlight", +"acc_pointer_IR", + + +// Underbarrel + +"bipod_01_F_snd", +"bipod_01_F_blk", +"bipod_01_F_mtp", +"bipod_01_F_khk", +"bipod_02_F_blk", +"bipod_02_F_tan", +"bipod_02_F_hex", +"bipod_03_F_blk", +"bipod_03_F_oli" + +]; diff --git a/testConfig.Altis/ExcludedClassNames/excludedWearables.sqf b/testConfig.Altis/ExcludedClassNames/excludedWearables.sqf new file mode 100644 index 0000000..11faea0 --- /dev/null +++ b/testConfig.Altis/ExcludedClassNames/excludedWearables.sqf @@ -0,0 +1,67 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + Lists weapons that should excluded from the output for the script. + + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ +/* + + Include any classnames you wish to exclude from the lists generated by the tool using the formating below. + The list below includes certains default Arma 3 glasses as of APEX. + + + "G_Sport_Red", + "G_Tactical_Black", + "G_Aviator", + "G_Lady_Mirror", + "G_Lady_Dark", + "G_Lady_Red", + "G_Lady_Blue", + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving" + */ + +_excludedWearables = [ +// Uniforms + +"Exile_Uniform_BambiOverall", +"Exile_Uniform_ExileCustoms", +"Exile_Uniform_Wetsuit_AAF", +"Exile_Uniform_Wetsuit_CSAT", +"Exile_Uniform_Wetsuit_NATO", +"Exile_Uniform_Woodland", + + +// Headgear + +"Exile_Cap_Exile", +"Exile_Headgear_SafetyHelmet", +"Exile_Headgear_SantaHat", + + +// Vests + +"Exile_Vest_Rebreather_AAF", +"Exile_Vest_Rebreather_CSAT", +"Exile_Vest_Rebreather_NATO", +"Exile_Vest_Snow", + + +// Backpacks + + + +// Glasses + +"Exile_Glasses_Diving_AAF", +"Exile_Glasses_Diving_CSAT", +"Exile_Glasses_Diving_NATO" +]; diff --git a/testConfig.Altis/OldVersions/airBase.sqf b/testConfig.Altis/OldVersions/airBase.sqf deleted file mode 100644 index 6df0ba0..0000000 --- a/testConfig.Altis/OldVersions/airBase.sqf +++ /dev/null @@ -1,266 +0,0 @@ - -_airBase = [ -"Air", -"Helicopter", -"Plane", -"ParachuteBase", -"GNT_C185", -"GNT_C185F", -"GNT_C185T", -"Heli_Transport_02_base_F", -"Heli_Transport_CDN888", -"Heli_Transport_CDN808", -"Heli_Transport_DK09", -"Heli_Transport_DK10", -"Heli_Transport_DZ", -"GunShip", -"TransportHelicopter", -"UAV", -"Fighter", -"CargoAirplane", -"Plane_Base_F", -"Plane_CAS_01_base_F", -"B_Parachute_02_F", -"Helicopter_Base_F", -"Helicopter_Base_H", -"Heli_Light_01_base_F", -"Heli_Light_01_unarmed_base_F", -"Heli_Light_01_civil_base_F", -"Heli_Light_01_armed_base_F", -"Heli_Light_01_dynamicLoadout_base_F", -"B_Heli_Light_01_F", -"B_Heli_Light_01_armed_F", -"B_Heli_Light_01_dynamicLoadout_F", -"C_Heli_Light_01_civil_F", -"C_Heli_light_01_blue_F", -"C_Heli_light_01_red_F", -"C_Heli_light_01_ion_F", -"C_Heli_light_01_blueLine_F", -"C_Heli_light_01_digital_F", -"C_Heli_light_01_elliptical_F", -"C_Heli_light_01_furious_F", -"C_Heli_light_01_graywatcher_F", -"C_Heli_light_01_jeans_F", -"C_Heli_light_01_light_F", -"C_Heli_light_01_shadow_F", -"C_Heli_light_01_sheriff_F", -"C_Heli_light_01_speedy_F", -"C_Heli_light_01_sunset_F", -"C_Heli_light_01_vrana_F", -"C_Heli_light_01_wasp_F", -"C_Heli_light_01_wave_F", -"C_Heli_light_01_stripped_F", -"C_Heli_light_01_luxe_F", -"B_Heli_Light_01_stripped_F", -"Heli_Light_02_base_F", -"Heli_Light_02_unarmed_base_F", -"Heli_Light_02_dynamicLoadout_base_F", -"O_Heli_Light_02_dynamicLoadout_F", -"O_Heli_Light_02_F", -"O_Heli_Light_02_unarmed_F", -"O_Heli_Light_02_v2_F", -"ParachuteWest", -"ParachuteEast", -"ParachuteG", -"Parachute", -"NonSteerable_Parachute_F", -"Paraglide", -"Steerable_Parachute_F", -"Heli_Attack_01_base_F", -"Heli_Attack_01_dynamicLoadout_base_F", -"B_Heli_Attack_01_F", -"B_Heli_Attack_01_dynamicLoadout_F", -"Heli_Attack_02_base_F", -"Heli_Attack_02_dynamicLoadout_base_F", -"O_Heli_Attack_02_F", -"O_Heli_Attack_02_black_F", -"O_Heli_Attack_02_dynamicLoadout_F", -"O_Heli_Attack_02_dynamicLoadout_black_F", -"Heli_Transport_01_base_F", -"B_Heli_Transport_01_F", -"B_Heli_Transport_01_camo_F", -"I_Heli_Transport_02_F", -"Parachute_02_base_F", -"O_Parachute_02_F", -"I_Parachute_02_F", -"Plane_Fighter_03_base_F", -"Plane_Fighter_03_dynamicLoadout_base_F", -"I_Plane_Fighter_03_CAS_F", -"I_Plane_Fighter_03_AA_F", -"I_Plane_Fighter_03_dynamicLoadout_F", -"Heli_light_03_base_F", -"Heli_light_03_dynamicLoadout_base_F", -"Heli_light_03_unarmed_base_F", -"I_Heli_light_03_F", -"I_Heli_light_03_dynamicLoadout_F", -"I_Heli_light_03_unarmed_F", -"I_Heli_light_03_base_F", -"I_Heli_light_03_unarmed_base_F", -"Plane_CAS_01_dynamicLoadout_base_F", -"B_Plane_CAS_01_F", -"B_Plane_CAS_01_dynamicLoadout_F", -"Plane_CAS_02_base_F", -"Plane_CAS_02_dynamicLoadout_base_F", -"O_Plane_CAS_02_F", -"O_Plane_CAS_02_dynamicLoadout_F", -"UAV_01_base_F", -"B_UAV_01_F", -"O_UAV_01_F", -"I_UAV_01_F", -"UAV_02_base_F", -"UAV_02_CAS_base_F", -"B_UAV_02_F", -"O_UAV_02_F", -"I_UAV_02_F", -"B_UAV_02_CAS_F", -"O_UAV_02_CAS_F", -"I_UAV_02_CAS_F", -"UAV_02_dynamicLoadout_base_F", -"B_UAV_02_dynamicLoadout_F", -"O_UAV_02_dynamicLoadout_F", -"I_UAV_02_dynamicLoadout_F", -"Heli_Transport_03_base_F", -"B_Heli_Transport_03_F", -"Heli_Transport_03_unarmed_base_F", -"B_Heli_Transport_03_unarmed_F", -"B_Heli_Transport_03_black_F", -"B_Heli_Transport_03_unarmed_green_F", -"B_Heli_Transport_03_base_F", -"B_Heli_Transport_03_unarmed_base_F", -"Heli_Transport_04_base_F", -"O_Heli_Transport_04_F", -"O_Heli_Transport_04_ammo_F", -"O_Heli_Transport_04_bench_F", -"O_Heli_Transport_04_box_F", -"O_Heli_Transport_04_covered_F", -"O_Heli_Transport_04_fuel_F", -"O_Heli_Transport_04_medevac_F", -"O_Heli_Transport_04_repair_F", -"O_Heli_Transport_04_black_F", -"O_Heli_Transport_04_ammo_black_F", -"O_Heli_Transport_04_bench_black_F", -"O_Heli_Transport_04_box_black_F", -"O_Heli_Transport_04_covered_black_F", -"O_Heli_Transport_04_fuel_black_F", -"O_Heli_Transport_04_medevac_black_F", -"O_Heli_Transport_04_repair_black_F", -"Exile_Chopper_Hellcat_Abstract", -"Exile_Chopper_Hellcat_Green", -"Exile_Chopper_Hellcat_FIA", -"UH1H_Clo", -"Exile_Chopper_Huey_Abstract", -"Exile_Chopper_Huey_Green", -"Exile_Chopper_Huey_Desert", -"UH1H_M240", -"Exile_Chopper_Huey_Armed_Abstract", -"Exile_Chopper_Huey_Armed_Green", -"Exile_Chopper_Huey_Armed_Desert", -"Exile_Chopper_Hummingbird_Abstract", -"Exile_Chopper_Hummingbird_Green", -"Exile_Chopper_Hummingbird_Civillian_Abstract", -"Exile_Chopper_Hummingbird_Civillian_Blue", -"Exile_Chopper_Hummingbird_Civillian_Red", -"Exile_Chopper_Hummingbird_Civillian_ION", -"Exile_Chopper_Hummingbird_Civillian_BlueLine", -"Exile_Chopper_Hummingbird_Civillian_Digital", -"Exile_Chopper_Hummingbird_Civillian_Elliptical", -"Exile_Chopper_Hummingbird_Civillian_Furious", -"Exile_Chopper_Hummingbird_Civillian_GrayWatcher", -"Exile_Chopper_Hummingbird_Civillian_Jeans", -"Exile_Chopper_Hummingbird_Civillian_Light", -"Exile_Chopper_Hummingbird_Civillian_Shadow", -"Exile_Chopper_Hummingbird_Civillian_Sheriff", -"Exile_Chopper_Hummingbird_Civillian_Speedy", -"Exile_Chopper_Hummingbird_Civillian_Sunset", -"Exile_Chopper_Hummingbird_Civillian_Vrana", -"Exile_Chopper_Hummingbird_Civillian_Wasp", -"Exile_Chopper_Hummingbird_Civillian_Wave", -"Exile_Chopper_Huron_Abstract", -"Exile_Chopper_Huron_Black", -"Exile_Chopper_Huron_Green", -"Exile_Chopper_Mohawk_Abstract", -"Exile_Chopper_Mohawk_FIA", -"Exile_Chopper_Orca_Abstract", -"Exile_Chopper_Orca_CSAT", -"Exile_Chopper_Orca_Black", -"Exile_Chopper_Orca_BlackCustom", -"Exile_Chopper_Taru_Abstract", -"Exile_Chopper_Taru_CSAT", -"Exile_Chopper_Taru_Black", -"Exile_Chopper_Taru_Covered_Abstract", -"Exile_Chopper_Taru_Covered_CSAT", -"Exile_Chopper_Taru_Covered_Black", -"Exile_Chopper_Taru_Transport_Abstract", -"Exile_Chopper_Taru_Transport_CSAT", -"Exile_Chopper_Taru_Transport_Black", -"an2_base", -"Exile_Plane_AN2_Abstract", -"Exile_Plane_AN2_Green", -"Exile_Plane_AN2_White", -"Exile_Plane_AN2_Stripe", -"B_T_VTOL_01_infantry_F", -"Exile_Plane_BlackfishInfantry", -"B_T_VTOL_01_vehicle_F", -"Exile_Plane_BlackfishVehicle", -"C_Plane_Civil_01_F", -"Exile_Plane_Ceasar", -"Exile_Plane_Cessna", -"An2_tk", -"An2_af", -"An2_a2", -"UH1H_base", -"UH1HL_base", -"UH1H_Closed", -"UH1H_Closed_TK", -"UH1H_M240_TK", -"VTOL_Base_F", -"I_C_Heli_Light_01_civil_F", -"B_CTRG_Heli_Transport_01_sand_F", -"B_CTRG_Heli_Transport_01_tropic_F", -"Plane_Civil_01_base_F", -"C_Plane_Civil_01_racing_F", -"I_C_Plane_Civil_01_F", -"UAV_03_base_F", -"UAV_03_dynamicLoadout_base_F", -"B_T_UAV_03_F", -"B_T_UAV_03_dynamicLoadout_F", -"UAV_04_base_F", -"O_T_UAV_04_CAS_F", -"VTOL_01_base_F", -"VTOL_01_armed_base_F", -"VTOL_01_unarmed_base_F", -"VTOL_01_infantry_base_F", -"VTOL_01_vehicle_base_F", -"B_T_VTOL_01_armed_F", -"B_T_VTOL_01_infantry_blue_F", -"B_T_VTOL_01_infantry_olive_F", -"B_T_VTOL_01_vehicle_blue_F", -"B_T_VTOL_01_vehicle_olive_F", -"B_T_VTOL_01_armed_blue_F", -"B_T_VTOL_01_armed_olive_F", -"VTOL_02_base_F", -"VTOL_02_infantry_base_F", -"VTOL_02_vehicle_base_F", -"VTOL_02_infantry_dynamicLoadout_base_F", -"VTOL_02_vehicle_dynamicLoadout_base_F", -"O_T_VTOL_02_infantry_F", -"O_T_VTOL_02_vehicle_F", -"O_T_VTOL_02_infantry_dynamicLoadout_F", -"O_T_VTOL_02_vehicle_dynamicLoadout_F", -"O_T_VTOL_02_infantry_hex_F", -"O_T_VTOL_02_infantry_ghex_F", -"O_T_VTOL_02_infantry_grey_F", -"O_T_VTOL_02_vehicle_hex_F", -"O_T_VTOL_02_vehicle_ghex_F", -"O_T_VTOL_02_vehicle_grey_F", -"Plane_Fighter_01_Base_F", -"B_Plane_Fighter_01_F", -"B_Plane_Fighter_01_Stealth_F", -"Plane_Fighter_02_Base_F", -"O_Plane_Fighter_02_F", -"O_Plane_Fighter_02_Stealth_F", -"Plane_Fighter_04_Base_F", -"I_Plane_Fighter_04_F", -"UAV_05_Base_F", -"B_UAV_05_F" -]; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/airConfig.sqf b/testConfig.Altis/OldVersions/airConfig.sqf deleted file mode 100644 index 853b6e8..0000000 --- a/testConfig.Altis/OldVersions/airConfig.sqf +++ /dev/null @@ -1,18 +0,0 @@ -_airBase = []; -#include "airBase.sqf" -_veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; -_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; -_index = 0; -_aircraft = []; - -_clipboard = ""; -{ - if ( (_x isKindOf "Air") && !(_x in _airBase) ) then - { - //_air pushback _x; - _clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; -}forEach _veh; - -copyToClipboard _clipboard; diff --git a/testConfig.Altis/OldVersions/airPriceList.sqf b/testConfig.Altis/OldVersions/airPriceList.sqf deleted file mode 100644 index d16c970..0000000 --- a/testConfig.Altis/OldVersions/airPriceList.sqf +++ /dev/null @@ -1,33 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_vehiclesBase = []; -#include "vehiclesBase.sqf" -_veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; -_veh sort true; -_cars = []; -_clipboard = ""; -{ - if (_x isKindOf "Air" && !(_x in _vehiclesBase)) then - { - _cars pushback _x; - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 15000; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 15000; };%2",_x,endl]; - }; - }; -}forEach _veh; - -copyToClipboard _clipboard; -systemChat "Vehicles Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/baseHeadgear.sqf b/testConfig.Altis/OldVersions/baseHeadgear.sqf deleted file mode 100644 index 9f03d41..0000000 --- a/testConfig.Altis/OldVersions/baseHeadgear.sqf +++ /dev/null @@ -1,174 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - This list of headgear will be excluded from the output of the relevant scripts. - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseHeadgear = [ -"Exile_Cap_Exile", -"H_Bandanna_blu", -"H_Bandanna_camo", -"H_Bandanna_cbr", -"H_Bandanna_gry", -"H_Bandanna_khk", -"H_Bandanna_khk_hs", -"H_Bandanna_mcamo", -"H_Bandanna_sand", -"H_Bandanna_sgg", -"H_Bandanna_surfer", -"H_Bandanna_surfer_blk", -"H_Bandanna_surfer_grn", -"H_BandMask_blk", -"H_BandMask_demon", -"H_BandMask_khk", -"H_BandMask_reaper", -"H_Beret_02", -"H_Beret_blk", -"H_Beret_blk_POLICE", -"H_Beret_brn_SF", -"H_Beret_Colonel", -"H_Beret_gen_F", -"H_Beret_grn", -"H_Beret_grn_SF", -"H_Beret_ocamo", -"H_Beret_red", -"H_Booniehat_dgtl", -"H_Booniehat_dirty", -"H_Booniehat_grn", -"H_Booniehat_indp", -"H_Booniehat_khk", -"H_Booniehat_khk_hs", -"H_Booniehat_mcamo", -"H_Booniehat_oli", -"H_Booniehat_tan", -"H_Booniehat_tna_F", -"H_Cap_blk", -"H_Cap_blk_CMMG", -"H_Cap_blk_ION", -"H_Cap_blk_Raven", -"H_Cap_blk_Syndikat_F", -"H_Cap_blu", -"H_Cap_brn_SPECOPS", -"H_Cap_grn", -"H_Cap_grn_BI", -"H_Cap_grn_Syndikat_F", -"H_Cap_headphones", -"H_Cap_khaki_specops_UK", -"H_Cap_marshal", -"H_Cap_oli", -"H_Cap_oli_hs", -"H_Cap_oli_Syndikat_F", -"H_Cap_police", -"H_Cap_press", -"H_Cap_red", -"H_Cap_surfer", -"H_Cap_tan", -"H_Cap_tan_specops_US", -"H_Cap_tan_Syndikat_F", -"H_Cap_usblack", -"H_CrewHelmetHeli_B", -"H_CrewHelmetHeli_I", -"H_CrewHelmetHeli_O", -"H_Hat_blue", -"H_Hat_brown", -"H_Hat_camo", -"H_Hat_checker", -"H_Hat_grey", -"H_Hat_tan", -"H_Helmet_Kerry", -"H_Helmet_Skate", -"H_HelmetB", -"H_HelmetB_black", -"H_HelmetB_camo", -"H_HelmetB_desert", -"H_HelmetB_Enh_tna_F", -"H_HelmetB_grass", -"H_HelmetB_light", -"H_HelmetB_light_black", -"H_HelmetB_light_desert", -"H_HelmetB_light_grass", -"H_HelmetB_light_sand", -"H_HelmetB_light_snakeskin", -"H_HelmetB_Light_tna_F", -"H_HelmetB_paint", -"H_HelmetB_plain_blk", -"H_HelmetB_plain_mcamo", -"H_HelmetB_sand", -"H_HelmetB_snakeskin", -"H_HelmetB_TI_tna_F", -"H_HelmetB_tna_F", -"H_HelmetCrew_B", -"H_HelmetCrew_I", -"H_HelmetCrew_O", -"H_HelmetCrew_O_ghex_F", -"H_HelmetIA", -"H_HelmetIA_camo", -"H_HelmetIA_net", -"H_HelmetLeaderO_ghex_F", -"H_HelmetLeaderO_ocamo", -"H_HelmetLeaderO_oucamo", -"H_HelmetO_ghex_F", -"H_HelmetO_ocamo", -"H_HelmetO_oucamo", -"H_HelmetO_ViperSP_ghex_F", -"H_HelmetO_ViperSP_hex_F", -"H_HelmetSpecB", -"H_HelmetSpecB_blk", -"H_HelmetSpecB_paint1", -"H_HelmetSpecB_paint2", -"H_HelmetSpecB_sand", -"H_HelmetSpecB_snakeskin", -"H_HelmetSpecO_blk", -"H_HelmetSpecO_ghex_F", -"H_HelmetSpecO_ocamo", -"H_MilCap_blue", -"H_MilCap_dgtl", -"H_MilCap_gen_F", -"H_MilCap_ghex_F", -"H_MilCap_gry", -"H_MilCap_mcamo", -"H_MilCap_ocamo", -"H_MilCap_oucamo", -"H_MilCap_rucamo", -"H_MilCap_tna_F", -"H_PilotHelmetFighter_B", -"H_PilotHelmetFighter_I", -"H_PilotHelmetFighter_O", -"H_PilotHelmetHeli_B", -"H_PilotHelmetHeli_I", -"H_PilotHelmetHeli_O", -"H_RacingHelmet_1_black_F", -"H_RacingHelmet_1_blue_F", -"H_RacingHelmet_1_F", -"H_RacingHelmet_1_green_F", -"H_RacingHelmet_1_orange_F", -"H_RacingHelmet_1_red_F", -"H_RacingHelmet_1_white_F", -"H_RacingHelmet_1_yellow_F", -"H_RacingHelmet_2_F", -"H_RacingHelmet_3_F", -"H_RacingHelmet_4_F", -"H_Shemag_khk", -"H_Shemag_olive", -"H_Shemag_olive_hs", -"H_Shemag_tan", -"H_ShemagOpen_khk", -"H_ShemagOpen_tan", -"H_StrawHat", -"H_StrawHat_dark", -"H_TurbanO_blk", -"H_Watchcap_blk", -"H_Watchcap_camo", -"H_Watchcap_cbr", -"H_Watchcap_khk", -"H_Watchcap_sgg", -"HelmetBase" -]; - - diff --git a/testConfig.Altis/OldVersions/baseMagazines.sqf b/testConfig.Altis/OldVersions/baseMagazines.sqf deleted file mode 100644 index 23d63be..0000000 --- a/testConfig.Altis/OldVersions/baseMagazines.sqf +++ /dev/null @@ -1,797 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - Lists magazines that should excluded from the output for the script. - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseMagazines = [ -// Magazines -"100Rnd_580x42_Mag_F", -"100Rnd_580x42_Mag_Tracer_F", -"100Rnd_65x39_caseless_mag", -"100Rnd_65x39_caseless_mag_Tracer", -"100Rnd_762x54_PK_Tracer_Green", -"100Rnd_762x54_PK_Tracer_Red", -"100Rnd_762x54_PK_Tracer_White", -"100Rnd_762x54_PK_Tracer_Yellow", -"10Rnd_127x54_Mag", -"10Rnd_127x99_m107", -"10Rnd_338_Mag", -"10Rnd_50BW_Mag_F", -"10Rnd_762x51_Mag", -"10Rnd_762x54_Mag", -"10Rnd_762x54_SVD", -"10Rnd_765x17ball", -"10Rnd_93x64_DMR_05_Mag", -"10Rnd_9x21_Mag", -"10Rnd_9x39_VSS", -"10x_303_M", -"11Rnd_45ACP_Mag", -"120Rnd_CMFlare_Chaff_Magazine", -"120Rnd_CMFlareMagazine", -"130Rnd_338_Mag", -"150Rnd_556x45_Drum_Mag_F", -"150Rnd_556x45_Drum_Mag_Tracer_F", -"150Rnd_762x51_Box", -"150Rnd_762x51_Box_Tracer", -"150Rnd_762x54_Box", -"150Rnd_762x54_Box_Tracer", -"150Rnd_93x64_Mag", -"168Rnd_CMFlare_Chaff_Magazine", -"16Rnd_9x21_green_Mag", -"16Rnd_9x21_Mag", -"16Rnd_9x21_red_Mag", -"16Rnd_9x21_yellow_Mag", -"192Rnd_CMFlare_Chaff_Magazine", -"1Rnd_HE_Grenade_shell", -"1Rnd_Smoke_Grenade_shell", -"1Rnd_SmokeBlue_Grenade_shell", -"1Rnd_SmokeGreen_Grenade_shell", -"1Rnd_SmokeOrange_Grenade_shell", -"1Rnd_SmokePurple_Grenade_shell", -"1Rnd_SmokeRed_Grenade_shell", -"1Rnd_SmokeYellow_Grenade_shell", -"200Rnd_556x45_Box_F", -"200Rnd_556x45_Box_Red_F", -"200Rnd_556x45_Box_Tracer_F", -"200Rnd_556x45_Box_Tracer_Red_F", -"200Rnd_65x39_cased_Box", -"200Rnd_65x39_cased_Box_Tracer", -"20Rnd_556x45_UW_mag", -"20Rnd_650x39_Cased_Mag_F", -"20Rnd_762x51_DMR", -"20Rnd_762x51_Mag", -"20Rnd_765x17ball", -"20Rnd_9x39_VSS", -"20Rnd_Green_Tracer_762x51_DMR", -"20Rnd_Red_Tracer_762x51_DMR", -"20Rnd_Yellow_Tracer_762x51_DMR", -"240Rnd_CMFlare_Chaff_Magazine", -"240Rnd_CMFlareMagazine", -"300Rnd_CMFlare_Chaff_Magazine", -"30Rnd_45ACP_Mag_SMG_01", -"30Rnd_45ACP_Mag_SMG_01_Tracer_Green", -"30Rnd_45ACP_Mag_SMG_01_Tracer_Red", -"30Rnd_45ACP_Mag_SMG_01_Tracer_Yellow", -"30Rnd_545x39_AK", -"30Rnd_545x39_Mag_F", -"30Rnd_545x39_Mag_Green_F", -"30Rnd_545x39_Mag_Tracer_F", -"30Rnd_545x39_Mag_Tracer_Green_F", -"30Rnd_556x45_Stanag", -"30Rnd_556x45_Stanag_green", -"30Rnd_556x45_Stanag_red", -"30Rnd_556x45_Stanag_Tracer_Green", -"30Rnd_556x45_Stanag_Tracer_Red", -"30Rnd_556x45_Stanag_Tracer_Yellow", -"30Rnd_580x42_Mag_F", -"30Rnd_580x42_Mag_Tracer_F", -"30Rnd_65x39_caseless_green", -"30Rnd_65x39_caseless_green_mag_Tracer", -"30Rnd_65x39_caseless_mag", -"30Rnd_65x39_caseless_mag_Tracer", -"30Rnd_762x39_AK47_M", -"30Rnd_762x39_Mag_F", -"30Rnd_762x39_Mag_Green_F", -"30Rnd_762x39_Mag_Tracer_F", -"30Rnd_762x39_Mag_Tracer_Green_F", -"30Rnd_9x21_Green_Mag", -"30Rnd_9x21_Mag", -"30Rnd_9x21_Mag_SMG_02", -"30Rnd_9x21_Mag_SMG_02_Tracer_Green", -"30Rnd_9x21_Mag_SMG_02_Tracer_Red", -"30Rnd_9x21_Mag_SMG_02_Tracer_Yellow", -"30Rnd_9x21_Red_Mag", -"30Rnd_9x21_Yellow_Mag", -"30Rnd_Green_Tracer_545x39_AK", -"30Rnd_Red_Tracer_545x39_AK", -"30Rnd_White_Tracer_545x39_AK", -"30Rnd_Yellow_Tracer_545x39_AK", -"3Rnd_HE_Grenade_shell", -"3Rnd_Smoke_Grenade_shell", -"3Rnd_SmokeBlue_Grenade_shell", -"3Rnd_SmokeGreen_Grenade_shell", -"3Rnd_SmokeOrange_Grenade_shell", -"3Rnd_SmokePurple_Grenade_shell", -"3Rnd_SmokeRed_Grenade_shell", -"3Rnd_SmokeYellow_Grenade_shell", -"3Rnd_UGL_FlareCIR_F", -"3Rnd_UGL_FlareGreen_F", -"3Rnd_UGL_FlareRed_F", -"3Rnd_UGL_FlareWhite_F", -"3Rnd_UGL_FlareYellow_F", -"45Rnd_Green_Tracer_545x39_RPK", -"50Rnd_UK59_762x54_Tracer_Green", -"556", -"5Rnd_127x108_APDS_KSVK", -"5Rnd_127x108_APDS_Mag", -"5Rnd_127x108_KSVK", -"5Rnd_127x108_Mag", -"5x_22_LR_17_HMR_M", -"60Rnd_CMFlare_Chaff_Magazine", -"60Rnd_CMFlareMagazine", -"6Rnd_45ACP", -"6Rnd_45ACP_Cylinder", -"6Rnd_GreenSignal_F", -"6Rnd_RedSignal_F", -"75Rnd_Green_Tracer_545x39_RPK", -"762", -"7Rnd_408_Mag", -"7Rnd_45ACP_1911", -"8Rnd_9x18_Makarov", -"8Rnd_9x18_MakarovSD", -"8Rnd_B_Beneli_74Pellets", -"8rnd_B_Beneli_74Slug", -"9Rnd_45ACP_Mag", -"Alsatain_Ck", -"Alsatian_Raw", -"APERSBoundingMine_Range_Mag", -"APERSMine_Range_Mag", -"APERSTripMine_Wire_Mag", -"ATMine_Range_Mag", -"B_IR_Grenade", -"burlap", -"CA_Magazine", -"CatShark_Ck", -"CatShark_Raw", -"Chicken_Ck", -"Chicken_Raw", -"ClaymoreDirectionalMine_Remote_Mag", -"cornerDoubleBarrier_1_kit", -"DemoCharge_Remote_Mag", -"domeSmall_Kit", -"doubleBarrier_1_kit", -"Exile_AbstractItem", -"Exile_Item_AlsatianSteak_Cooked", -"Exile_Item_AlsatianSteak_Raw", -"Exile_Item_Bandage", -"Exile_Item_BaseCameraKit", -"Exile_Item_BBQSandwich", -"Exile_Item_BBQSandwich_Cooked", -"Exile_Item_BeefParts", -"Exile_Item_Beer", -"Exile_Item_BreachingCharge_BigMomma", -"Exile_Item_BreachingCharge_Metal", -"Exile_Item_BreachingCharge_Wood", -"Exile_Item_Bullets_556", -"Exile_Item_Bullets_762", -"Exile_Item_BurlapSack", -"Exile_Item_BushKit_Green", -"Exile_Item_CamoTentKit", -"Exile_Item_CampFireKit", -"Exile_Item_Can_Empty", -"Exile_Item_CanOpener", -"Exile_Item_CarWheel", -"Exile_Item_CatFood", -"Exile_Item_CatFood_Cooked", -"Exile_Item_CatSharkFilet_Cooked", -"Exile_Item_CatSharkFilet_Raw", -"Exile_Item_Cement", -"Exile_Item_Cheathas", -"Exile_Item_ChickenFilet_Cooked", -"Exile_Item_ChickenFilet_Raw", -"Exile_Item_ChocolateMilk", -"Exile_Item_ChristmasTinner", -"Exile_Item_ChristmasTinner_Cooked", -"Exile_Item_CockONut", -"Exile_Item_Codelock", -"Exile_Item_ConcreteDoorKit", -"Exile_Item_ConcreteDoorwayKit", -"Exile_Item_ConcreteFloorKit", -"Exile_Item_ConcreteFloorPortKit", -"Exile_Item_ConcreteGateKit", -"Exile_Item_ConcreteStairsKit", -"Exile_Item_ConcreteSupportKit", -"Exile_Item_ConcreteWallKit", -"Exile_Item_ConcreteWindowKit", -"Exile_Item_CookingPot", -"Exile_Item_CordlessScrewdriver", -"Exile_Item_Defibrillator", -"Exile_Item_DogFood", -"Exile_Item_DogFood_Cooked", -"Exile_Item_DsNuts", -"Exile_Item_DuctTape", -"Exile_Item_EMRE", -"Exile_Item_EnergyDrink", -"Exile_Item_ExtensionCord", -"Exile_Item_FinSteak_Cooked", -"Exile_Item_FinSteak_Raw", -"Exile_Item_FireExtinguisher", -"Exile_Item_Flag", -"Exile_Item_FlagStolen1", -"Exile_Item_FlagStolen10", -"Exile_Item_FlagStolen2", -"Exile_Item_FlagStolen3", -"Exile_Item_FlagStolen4", -"Exile_Item_FlagStolen5", -"Exile_Item_FlagStolen6", -"Exile_Item_FlagStolen7", -"Exile_Item_FlagStolen8", -"Exile_Item_FlagStolen9", -"Exile_Item_FloodLightKit", -"Exile_Item_Foolbox", -"Exile_Item_FortificationUpgrade", -"Exile_Item_FuelBarrelEmpty", -"Exile_Item_FuelBarrelFull", -"Exile_Item_FuelCanisterEmpty", -"Exile_Item_FuelCanisterFull", -"Exile_Item_GloriousKnakworst", -"Exile_Item_GloriousKnakworst_Cooked", -"Exile_Item_GoatSteak_Cooked", -"Exile_Item_GoatSteak_Raw", -"Exile_Item_Grinder", -"Exile_Item_Hammer", -"Exile_Item_Handsaw", -"Exile_Item_HBarrier5Kit", -"Exile_Item_Heatpack", -"Exile_Item_InstaDoc", -"Exile_Item_InstantCoffee", -"Exile_Item_JunkMetal", -"Exile_Item_Knife", -"Exile_Item_Laptop", -"Exile_Item_Leaves", -"Exile_Item_LightBulb", -"Exile_Item_MacasCheese", -"Exile_Item_MacasCheese_Cooked", -"Exile_Item_MackerelFilet_Cooked", -"Exile_Item_MackerelFilet_Raw", -"Exile_Item_Magazine01", -"Exile_Item_Magazine02", -"Exile_Item_Magazine03", -"Exile_Item_Magazine04", -"Exile_Item_Matches", -"Exile_Item_MetalBoard", -"Exile_Item_MetalHedgehogKit", -"Exile_Item_MetalPole", -"Exile_Item_MetalScrews", -"Exile_Item_MetalWire", -"Exile_Item_MobilePhone", -"Exile_Item_Moobar", -"Exile_Item_MountainDupe", -"Exile_Item_MulletFilet_Cooked", -"Exile_Item_MulletFilet_Raw", -"Exile_Item_Noodles", -"Exile_Item_OilCanister", -"Exile_Item_OrnateFilet_Cooked", -"Exile_Item_OrnateFilet_Raw", -"Exile_Item_PlasticBottleCoffee", -"Exile_Item_PlasticBottleDirtyWater", -"Exile_Item_PlasticBottleEmpty", -"Exile_Item_PlasticBottleFreshWater", -"Exile_Item_PlasticBottleSaltWater", -"Exile_Item_Pliers", -"Exile_Item_PortableGeneratorKit", -"Exile_Item_PowerDrink", -"Exile_Item_RabbitSteak_Cooked", -"Exile_Item_RabbitSteak_Raw", -"Exile_Item_Raisins", -"Exile_Item_RazorWireKit", -"Exile_Item_RepairKitConcrete", -"Exile_Item_RepairKitMetal", -"Exile_Item_RepairKitWood", -"Exile_Item_RoosterFilet_Cooked", -"Exile_Item_RoosterFilet_Raw", -"Exile_Item_Rope", -"Exile_Item_RubberDuck", -"Exile_Item_SafeKit", -"Exile_Item_SalemaFilet_Cooked", -"Exile_Item_SalemaFilet_Raw", -"Exile_Item_Sand", -"Exile_Item_SandBagsKit_Corner", -"Exile_Item_SandBagsKit_Long", -"Exile_Item_SausageGravy", -"Exile_Item_SausageGravy_Cooked", -"Exile_Item_Screwdriver", -"Exile_Item_SeedAstics", -"Exile_Item_SheepSteak_Cooked", -"Exile_Item_SheepSteak_Raw", -"Exile_Item_Shovel", -"Exile_Item_SleepingMat", -"Exile_Item_SnakeFilet_Cooked", -"Exile_Item_SnakeFilet_Raw", -"Exile_Item_SprayCan_Black", -"Exile_Item_SprayCan_Blue", -"Exile_Item_SprayCan_Green", -"Exile_Item_SprayCan_Red", -"Exile_Item_SprayCan_White", -"Exile_Item_Storagecratekit", -"Exile_Item_Surstromming", -"Exile_Item_Surstromming_Cooked", -"Exile_Item_ThermalScannerPro", -"Exile_Item_ToiletPaper", -"Exile_Item_TunaFilet_Cooked", -"Exile_Item_TunaFilet_Raw", -"Exile_Item_TurtleFilet_Cooked", -"Exile_Item_TurtleFilet_Raw", -"Exile_Item_Vishpirin", -"Exile_Item_WaterBarrelKit", -"Exile_Item_WaterCanisterDirtyWater", -"Exile_Item_WaterCanisterEmpty", -"Exile_Item_WeaponParts", -"Exile_Item_WireFenceKit", -"Exile_Item_WoodDoorKit", -"Exile_Item_WoodDoorwayKit", -"Exile_Item_WoodDrawBridgeKit", -"Exile_Item_WoodFloorKit", -"Exile_Item_WoodFloorPortKit", -"Exile_Item_WoodFloorPortSmallKit", -"Exile_Item_WoodGateKit", -"Exile_Item_WoodLadderKit", -"Exile_Item_WoodLog", -"Exile_Item_WoodPlank", -"Exile_Item_WoodStairsKit", -"Exile_Item_WoodSticks", -"Exile_Item_WoodSupportKit", -"Exile_Item_WoodWallHalfKit", -"Exile_Item_WoodWallKit", -"Exile_Item_WoodWindowKit", -"Exile_Item_WorkBenchKit", -"Exile_Item_Wrench", -"Exile_Magazine_100Rnd_762x54_PK_Green", -"Exile_Magazine_10Rnd_127x99_m107", -"Exile_Magazine_10Rnd_127x99_m107_Bullet_Cam_Mag", -"Exile_Magazine_10Rnd_303", -"Exile_Magazine_10Rnd_338_Bullet_Cam_Mag", -"Exile_Magazine_10Rnd_762x54", -"Exile_Magazine_10Rnd_765x17_SA61", -"Exile_Magazine_10Rnd_93x64_DMR_05_Bullet_Cam_Mag", -"Exile_Magazine_10Rnd_9x39", -"Exile_Magazine_20Rnd_762x51_DMR", -"Exile_Magazine_20Rnd_762x51_DMR_Green", -"Exile_Magazine_20Rnd_762x51_DMR_Red", -"Exile_Magazine_20Rnd_762x51_DMR_Yellow", -"Exile_Magazine_20Rnd_765x17_SA61", -"Exile_Magazine_20Rnd_9x39", -"Exile_Magazine_30Rnd_545x39_AK", -"Exile_Magazine_30Rnd_545x39_AK_Green", -"Exile_Magazine_30Rnd_545x39_AK_Red", -"Exile_Magazine_30Rnd_545x39_AK_White", -"Exile_Magazine_30Rnd_545x39_AK_Yellow", -"Exile_Magazine_30Rnd_762x39_AK", -"Exile_Magazine_45Rnd_545x39_RPK_Green", -"Exile_Magazine_5Rnd_127x108_APDS_Bullet_Cam_Mag", -"Exile_Magazine_5Rnd_127x108_APDS_KSVK", -"Exile_Magazine_5Rnd_127x108_APDS_KSVK_Bullet_Cam_Mag", -"Exile_Magazine_5Rnd_127x108_Bullet_Cam_Mag", -"Exile_Magazine_5Rnd_127x108_KSVK", -"Exile_Magazine_5Rnd_127x108_KSVK_Bullet_Cam_Mag", -"Exile_Magazine_5Rnd_22LR", -"Exile_Magazine_6Rnd_45ACP", -"Exile_Magazine_75Rnd_545x39_RPK_Green", -"Exile_Magazine_7Rnd_408_Bullet_Cam_Mag", -"Exile_Magazine_7Rnd_45ACP", -"Exile_Magazine_8Rnd_74Pellets", -"Exile_Magazine_8Rnd_74Slug", -"Exile_Magazine_8Rnd_9x18", -"Exile_Magazine_Battery", -"Exile_Magazine_Boing", -"Exile_Magazine_Swing", -"Exile_Magazine_Swoosh", -"Fin_Ck", -"Fin_Raw", -"FlareGreen_F", -"FlareRed_F", -"FlareWhite_F", -"FlareYellow_F", -"gasPump_Kit", -"Goat_Ck", -"Goat_Raw", -"I_IR_Grenade", -"IEDLandBig_Remote_Mag", -"IEDLandSmall_Remote_Mag", -"IEDUrbanBig_Remote_Mag", -"IEDUrbanSmall_Remote_Mag", -"in005_1Rnd_12Gauge_Pellets", -"in005_1Rnd_12Gauge_Slug", -"in005_2Rnd_12Gauge_Pellets", -"in005_2Rnd_12Gauge_Slug", -"ladder_1_kit", -"Laserbatteries", -"longBarrier_1_kit", -"longDoubleBarrier_1_kit", -"Mackrel_Ck", -"Mackrel_Raw", -"metalShelves_Kit", -"MiniGrenade", -"Mullet_Ck", -"Mullet_Raw", -"O_IR_Grenade", -"Ornate_Ck", -"Ornate_Raw", -"Rabbit_Ck", -"Rabbit_Raw", -"rds_dummy_mag", -"Rooster_Ck", -"Rooster_Raw", -"Salema_Ck", -"Salema_Raw", -"SatchelCharge_Remote_Mag", -"Sheep_Ck", -"Sheep_Raw", -"singleBarrier_1_kit", -"SLAMDirectionalMine_Wire_Mag", -"smallBunker_1_kit", -"Snake_Ck", -"Snake_Raw", -"spraycan_blk", -"spraycan_blu", -"spraycan_grn", -"spraycan_red", -"spraycan_wht", -"tallStoneTower_1_kit", -"tallStoneWall_1_kit", -"tallTower_1_kit", -"Tuna_Ck", -"Tuna_Raw", -"Turtle_Ck", -"Turtle_Raw", -"UGL_FlareCIR_F", -"UGL_FlareGreen_F", -"UGL_FlareRed_F", -"UGL_FlareWhite_F", -"UGL_FlareYellow_F", -"wpn_prt", - - -// Grenades, Smoke Grenades, Chemlights and Flares -"Chemlight_blue", -"Chemlight_green", -"Chemlight_red", -"Chemlight_yellow", -"Exile_Item_ZipTie", -"HandGrenade", -"HandGrenade_Stone", -"SmokeShell", -"SmokeShellBlue", -"SmokeShellGreen", -"SmokeShellOrange", -"SmokeShellPurple", -"SmokeShellRed", -"SmokeShellYellow", -"TinCanGrenade_01", - - -// Launcher Rounds -"CA_LauncherMagazine", -"NLAW_F", -"RPG32_F", -"RPG32_HE_F", -"RPG7_F", -"Titan_AA", -"Titan_AP", -"Titan_AT", - - -// Vehicle Ammo -"1000Rnd_20mm_shells", -"1000Rnd_25mm_shells", -"1000Rnd_65x39_Belt", -"1000Rnd_65x39_Belt_Green", -"1000Rnd_65x39_Belt_Tracer_Green", -"1000Rnd_65x39_Belt_Tracer_Red", -"1000Rnd_65x39_Belt_Tracer_Yellow", -"1000Rnd_65x39_Belt_Yellow", -"1000Rnd_762x51_Belt", -"1000Rnd_762x51_Belt_Green", -"1000Rnd_762x51_Belt_Red", -"1000Rnd_762x51_Belt_T_Green", -"1000Rnd_762x51_Belt_T_Red", -"1000Rnd_762x51_Belt_T_Yellow", -"1000Rnd_762x51_Belt_Yellow", -"1000Rnd_Gatling_30mm_Plane_CAS_01_F", -"100Rnd_105mm_HEAT_MP", -"100Rnd_127x107_DSHKM_M", -"100Rnd_127x99_M", -"100Rnd_127x99_mag", -"100Rnd_127x99_mag_Tracer_Green", -"100Rnd_127x99_mag_Tracer_Red", -"100Rnd_127x99_mag_Tracer_Yellow", -"100Rnd_Green_Tracer_127x107_DSHKM_M", -"100Rnd_Green_Tracer_127x99_M", -"100Rnd_Green_Tracer_762x54_PKT_M", -"100Rnd_Red_Tracer_127x99_M", -"100Rnd_Red_Tracer_762x54_PKT_M", -"100Rnd_White_Tracer_127x99_M", -"100Rnd_White_Tracer_762x54_PKT_M", -"100Rnd_Yellow_Tracer_127x99_M", -"100Rnd_Yellow_Tracer_762x54_PKT_M", -"12Rnd_125mm_HE", -"12Rnd_125mm_HE_T_Green", -"12Rnd_125mm_HE_T_Red", -"12Rnd_125mm_HE_T_Yellow", -"12Rnd_125mm_HEAT", -"12Rnd_125mm_HEAT_T_Green", -"12Rnd_125mm_HEAT_T_Red", -"12Rnd_125mm_HEAT_T_Yellow", -"12Rnd_230mm_rockets", -"12Rnd_missiles", -"12Rnd_PG_missiles", -"140Rnd_30mm_MP_shells", -"140Rnd_30mm_MP_shells_Tracer_Green", -"140Rnd_30mm_MP_shells_Tracer_Red", -"140Rnd_30mm_MP_shells_Tracer_Yellow", -"14Rnd_120mm_HE_shells", -"14Rnd_120mm_HE_shells_Tracer_Green", -"14Rnd_120mm_HE_shells_Tracer_Red", -"14Rnd_120mm_HE_shells_Tracer_Yellow", -"14Rnd_80mm_rockets", -"1500Rnd_Green_Tracer_762x54_PKT_M", -"1500Rnd_Red_Tracer_762x54_PKT_M", -"1500Rnd_White_Tracer_762x54_PKT_M", -"1500Rnd_Yellow_Tracer_762x54_PKT_M", -"150Rnd_127x107_DSHKM_M", -"150Rnd_127x108_Ball", -"160Rnd_40mm_APFSDS_Tracer_Red_shells", -"16Rnd_120mm_HE_shells", -"16Rnd_120mm_HE_shells_Tracer_Green", -"16Rnd_120mm_HE_shells_Tracer_Red", -"16Rnd_120mm_HE_shells_Tracer_Yellow", -"1Rnd_GAA_missiles", -"1Rnd_GAT_missiles", -"2000Rnd_20mm_shells", -"2000Rnd_65x39_Belt", -"2000Rnd_65x39_Belt_Green", -"2000Rnd_65x39_Belt_Tracer_Green", -"2000Rnd_65x39_Belt_Tracer_Green_Splash", -"2000Rnd_65x39_Belt_Tracer_Red", -"2000Rnd_65x39_Belt_Tracer_Yellow", -"2000Rnd_65x39_Belt_Tracer_Yellow_Splash", -"2000Rnd_65x39_Belt_Yellow", -"2000Rnd_762x51_Belt", -"2000Rnd_762x51_Belt_Green", -"2000Rnd_762x51_Belt_Red", -"2000Rnd_762x51_Belt_T_Green", -"2000Rnd_762x51_Belt_T_Red", -"2000Rnd_762x51_Belt_T_Yellow", -"2000Rnd_762x51_Belt_Yellow", -"2000Rnd_Green_Tracer_762x54_PKT_M", -"2000Rnd_Red_Tracer_762x54_PKT_M", -"2000Rnd_White_Tracer_762x54_PKT_M", -"2000Rnd_Yellow_Tracer_762x54_PKT_M", -"200Rnd_127x99_mag", -"200Rnd_127x99_mag_Tracer_Green", -"200Rnd_127x99_mag_Tracer_Red", -"200Rnd_127x99_mag_Tracer_Yellow", -"200Rnd_20mm_G_belt", -"200Rnd_40mm_G_belt", -"200Rnd_65x39_Belt", -"200Rnd_65x39_Belt_Tracer_Green", -"200Rnd_65x39_Belt_Tracer_Red", -"200Rnd_65x39_Belt_Tracer_Yellow", -"200Rnd_762x51_Belt", -"200Rnd_762x51_Belt_Green", -"200Rnd_762x51_Belt_Red", -"200Rnd_762x51_Belt_T_Green", -"200Rnd_762x51_Belt_T_Red", -"200Rnd_762x51_Belt_T_Yellow", -"200Rnd_762x51_Belt_Yellow", -"200Rnd_Green_Tracer_762x54_PKT_M", -"200Rnd_Red_Tracer_762x54_PKT_M", -"200Rnd_White_Tracer_762x54_PKT_M", -"200Rnd_Yellow_Tracer_762x54_PKT_M", -"20Rnd_105mm_HEAT_MP", -"20Rnd_105mm_HEAT_MP_T_Green", -"20Rnd_105mm_HEAT_MP_T_Red", -"20Rnd_105mm_HEAT_MP_T_Yellow", -"20Rnd_Rocket_03_AP_F", -"20Rnd_Rocket_03_HE_F", -"240Rnd_40mm_GPR_Tracer_Red_shells", -"24Rnd_125mm_APFSDS", -"24Rnd_125mm_APFSDS_T_Green", -"24Rnd_125mm_APFSDS_T_Red", -"24Rnd_125mm_APFSDS_T_Yellow", -"24Rnd_missiles", -"24Rnd_PG_missiles", -"250Rnd_30mm_APDS_shells", -"250Rnd_30mm_APDS_shells_Tracer_Green", -"250Rnd_30mm_APDS_shells_Tracer_Red", -"250Rnd_30mm_APDS_shells_Tracer_Yellow", -"250Rnd_30mm_HE_shells", -"250Rnd_30mm_HE_shells_Tracer_Green", -"250Rnd_30mm_HE_shells_Tracer_Red", -"250Rnd_Green_Tracer_762x54_PKT_M", -"250Rnd_Red_Tracer_762x54_PKT_M", -"250Rnd_White_Tracer_762x54_PKT_M", -"250Rnd_Yellow_Tracer_762x54_PKT_M", -"28Rnd_120mm_APFSDS_shells", -"28Rnd_120mm_APFSDS_shells_Tracer_Green", -"28Rnd_120mm_APFSDS_shells_Tracer_Red", -"28Rnd_120mm_APFSDS_shells_Tracer_Yellow", -"29Rnd_30mm_AGS30", -"2Rnd_155mm_Mo_Cluster", -"2Rnd_155mm_Mo_guided", -"2Rnd_155mm_Mo_LG", -"2Rnd_AAA_missiles", -"2Rnd_AAA_missiles_MI02", -"2Rnd_Bomb_03_F", -"2Rnd_GAT_missiles", -"2Rnd_GBU12_LGB", -"2Rnd_GBU12_LGB_MI10", -"2Rnd_LG_scalpel", -"2Rnd_LG_scalpel_hidden", -"2Rnd_Missile_AA_03_F", -"2Rnd_Missile_AA_04_F", -"2Rnd_Mk82", -"2Rnd_Mk82_MI08", -"300Rnd_20mm_shells", -"300Rnd_25mm_shells", -"30Rnd_120mm_APFSDS_shells", -"30Rnd_120mm_APFSDS_shells_Tracer_Green", -"30Rnd_120mm_APFSDS_shells_Tracer_Red", -"30Rnd_120mm_APFSDS_shells_Tracer_Yellow", -"30Rnd_120mm_HE_shells", -"30Rnd_120mm_HE_shells_Tracer_Green", -"30Rnd_120mm_HE_shells_Tracer_Red", -"30Rnd_120mm_HE_shells_Tracer_Yellow", -"32Rnd_120mm_APFSDS_shells", -"32Rnd_120mm_APFSDS_shells_Tracer_Green", -"32Rnd_120mm_APFSDS_shells_Tracer_Red", -"32Rnd_120mm_APFSDS_shells_Tracer_Yellow", -"32Rnd_155mm_Mo_shells", -"32Rnd_40mm_G_belt", -"38Rnd_80mm_rockets", -"4000Rnd_20mm_Tracer_Red_shells", -"40Rnd_105mm_APFSDS", -"40Rnd_105mm_APFSDS_T_Green", -"40Rnd_105mm_APFSDS_T_Red", -"40Rnd_105mm_APFSDS_T_Yellow", -"40Rnd_20mm_G_belt", -"40Rnd_40mm_APFSDS_shells", -"40Rnd_40mm_APFSDS_Tracer_Green_shells", -"40Rnd_40mm_APFSDS_Tracer_Red_shells", -"40Rnd_40mm_APFSDS_Tracer_Yellow_shells", -"450Rnd_127x108_Ball", -"4Rnd_AAA_missiles", -"4Rnd_AAA_missiles_MI02", -"4Rnd_AAT_missiles", -"4Rnd_Bomb_04_F", -"4Rnd_GAA_missiles", -"4Rnd_LG_Jian", -"4Rnd_Missile_AGM_01_F", -"4Rnd_Titan_long_missiles", -"5000Rnd_762x51_Belt", -"5000Rnd_762x51_Yellow_Belt", -"500Rnd_127x99_mag", -"500Rnd_127x99_mag_Tracer_Green", -"500Rnd_127x99_mag_Tracer_Red", -"500Rnd_127x99_mag_Tracer_Yellow", -"500Rnd_65x39_Belt", -"500Rnd_65x39_Belt_Tracer_Green_Splash", -"500Rnd_65x39_Belt_Tracer_Red_Splash", -"500Rnd_65x39_Belt_Tracer_Yellow_Splash", -"500Rnd_Cannon_30mm_Plane_CAS_02_F", -"50Rnd_127x107_DSHKM_M", -"50Rnd_127x108_Ball", -"5Rnd_GAT_missiles", -"60Rnd_30mm_APFSDS_shells", -"60Rnd_30mm_APFSDS_shells_Tracer_Green", -"60Rnd_30mm_APFSDS_shells_Tracer_Red", -"60Rnd_30mm_APFSDS_shells_Tracer_Yellow", -"60Rnd_40mm_GPR_shells", -"60Rnd_40mm_GPR_Tracer_Green_shells", -"60Rnd_40mm_GPR_Tracer_Red_shells", -"60Rnd_40mm_GPR_Tracer_Yellow_shells", -"64Rnd_40mm_G_belt", -"680Rnd_35mm_AA_shells", -"680Rnd_35mm_AA_shells_Tracer_Green", -"680Rnd_35mm_AA_shells_Tracer_Red", -"680Rnd_35mm_AA_shells_Tracer_Yellow", -"6Rnd_155mm_Mo_AT_mine", -"6Rnd_155mm_Mo_mine", -"6Rnd_155mm_Mo_smoke", -"6Rnd_AAT_missiles", -"6Rnd_LG_scalpel", -"6Rnd_Missile_AGM_02_F", -"7Rnd_Rocket_04_AP_F", -"7Rnd_Rocket_04_HE_F", -"8Rnd_82mm_Mo_Flare_white", -"8Rnd_82mm_Mo_guided", -"8Rnd_82mm_Mo_LG", -"8Rnd_82mm_Mo_shells", -"8Rnd_82mm_Mo_Smoke_white", -"8Rnd_LG_scalpel", -"96Rnd_40mm_G_belt", -"magazine_Bomb_GBU12_x1", -"magazine_Bomb_KAB250_x1", -"magazine_Cannon_Phalanx_x1550", -"magazine_Fighter01_Gun20mm_AA_x450", -"magazine_Fighter02_Gun30mm_AA_x180", -"magazine_Fighter04_Gun20mm_AA_x150", -"magazine_Fighter04_Gun20mm_AA_x250", -"magazine_Missile_AA_R73_x1", -"magazine_Missile_AA_R77_x1", -"magazine_Missile_AGM_02_x1", -"magazine_Missile_AGM_KH25_x1", -"magazine_Missile_AMRAAM_C_x1", -"magazine_Missile_AMRAAM_D_x1", -"magazine_Missile_BIM9X_x1", -"magazine_Missile_rim116_x21", -"magazine_Missile_rim162_x8", -"PylonMissile_1Rnd_AAA_missiles", -"PylonMissile_1Rnd_Bomb_03_F", -"PylonMissile_1Rnd_Bomb_04_F", -"PylonMissile_1Rnd_GAA_missiles", -"PylonMissile_1Rnd_LG_scalpel", -"PylonMissile_1Rnd_Missile_AA_03_F", -"PylonMissile_1Rnd_Missile_AA_04_F", -"PylonMissile_1Rnd_Mk82_F", -"PylonMissile_Bomb_GBU12_x1", -"PylonMissile_Bomb_KAB250_x1", -"PylonMissile_Missile_AA_R73_x1", -"PylonMissile_Missile_AA_R77_INT_x1", -"PylonMissile_Missile_AA_R77_x1", -"PylonMissile_Missile_AGM_02_x1", -"PylonMissile_Missile_AGM_02_x2", -"PylonMissile_Missile_AGM_KH25_INT_x1", -"PylonMissile_Missile_AGM_KH25_x1", -"PylonMissile_Missile_AMRAAM_C_x1", -"PylonMissile_Missile_AMRAAM_D_INT_x1", -"PylonMissile_Missile_AMRAAM_D_x1", -"PylonMissile_Missile_BIM9X_x1", -"PylonRack_12Rnd_missiles", -"PylonRack_12Rnd_PG_missiles", -"PylonRack_19Rnd_Rocket_Skyfire", -"PylonRack_1Rnd_AAA_missiles", -"PylonRack_1Rnd_GAA_missiles", -"PylonRack_1Rnd_LG_scalpel", -"PylonRack_1Rnd_Missile_AA_03_F", -"PylonRack_1Rnd_Missile_AA_04_F", -"PylonRack_1Rnd_Missile_AGM_01_F", -"PylonRack_1Rnd_Missile_AGM_02_F", -"PylonRack_20Rnd_Rocket_03_AP_F", -"PylonRack_20Rnd_Rocket_03_HE_F", -"PylonRack_3Rnd_LG_scalpel", -"PylonRack_3Rnd_Missile_AGM_02_F", -"PylonRack_4Rnd_LG_scalpel", -"PylonRack_7Rnd_Rocket_04_AP_F", -"PylonRack_7Rnd_Rocket_04_HE_F", -"PylonRack_Bomb_GBU12_x2", -"PylonRack_Missile_AGM_02_x1", -"PylonRack_Missile_AGM_02_x2", -"PylonRack_Missile_AMRAAM_C_x1", -"PylonRack_Missile_AMRAAM_C_x2", -"PylonRack_Missile_AMRAAM_D_x1", -"PylonRack_Missile_AMRAAM_D_x2", -"PylonRack_Missile_BIM9X_x1", -"PylonRack_Missile_BIM9X_x2", -"PylonWeapon_2000Rnd_65x39_belt", -"PylonWeapon_300Rnd_20mm_shells", -"rds_car_FirstAidKit_proxy", -"rds_car_warning_triangle_to11_proxy", -"rds_empty_proxy", -"rds_Sparewheel_gaz24_proxy", -"rds_Sparewheel_golf4_proxy", -"rds_Sparewheel_ikarus_proxy", -"rds_Sparewheel_lada_proxy", -"rds_Sparewheel_octavia_proxy", -"rds_Sparewheel_s1203_proxy", -"SmokeLauncherMag", -"SmokeLauncherMag_boat", -"VehicleMagazine" -]; diff --git a/testConfig.Altis/OldVersions/baseUniforms.sqf b/testConfig.Altis/OldVersions/baseUniforms.sqf deleted file mode 100644 index 721d804..0000000 --- a/testConfig.Altis/OldVersions/baseUniforms.sqf +++ /dev/null @@ -1,195 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - This list of uniforms will be excluded from the output of the relevant scripts. - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseUniforms = [ -"Exile_Uniform_BambiOverall", -"Exile_Uniform_ExileCustoms", -"Exile_Uniform_Wetsuit_AAF", -"Exile_Uniform_Wetsuit_CSAT", -"Exile_Uniform_Wetsuit_NATO", -"Exile_Uniform_Woodland", -"U_AntigonaBody", -"U_AttisBody", -"U_B_CombatUniform_mcam", -"U_B_CombatUniform_mcam_tshirt", -"U_B_CombatUniform_mcam_vest", -"U_B_CombatUniform_mcam_worn", -"U_B_CombatUniform_sgg", -"U_B_CombatUniform_sgg_tshirt", -"U_B_CombatUniform_sgg_vest", -"U_B_CombatUniform_wdl", -"U_B_CombatUniform_wdl_tshirt", -"U_B_CombatUniform_wdl_vest", -"U_B_CTRG_1", -"U_B_CTRG_2", -"U_B_CTRG_3", -"U_B_CTRG_Soldier_2_F", -"U_B_CTRG_Soldier_3_F", -"U_B_CTRG_Soldier_F", -"U_B_CTRG_Soldier_urb_1_F", -"U_B_CTRG_Soldier_urb_2_F", -"U_B_CTRG_Soldier_urb_3_F", -"U_B_FullGhillie_ard", -"U_B_FullGhillie_lsh", -"U_B_FullGhillie_sard", -"U_B_GEN_Commander_F", -"U_B_GEN_Soldier_F", -"U_B_GhillieSuit", -"U_B_HeliPilotCoveralls", -"U_B_PilotCoveralls", -"U_B_Protagonist_VR", -"U_B_Soldier_VR", -"U_B_SpecopsUniform_sgg", -"U_B_survival_uniform", -"U_B_T_FullGhillie_tna_F", -"U_B_T_Sniper_F", -"U_B_T_Soldier_AR_F", -"U_B_T_Soldier_F", -"U_B_T_Soldier_SL_F", -"U_B_Wetsuit", -"U_BasicBody", -"U_BG_Guerilla1_1", -"U_BG_Guerilla2_1", -"U_BG_Guerilla2_2", -"U_BG_Guerilla2_3", -"U_BG_Guerilla3_1", -"U_BG_Guerilla3_2", -"U_BG_Guerrilla_6_1", -"U_BG_leader", -"U_C_Commoner1_1", -"U_C_Commoner1_2", -"U_C_Commoner1_3", -"U_C_Commoner2_1", -"U_C_Commoner2_2", -"U_C_Commoner2_3", -"U_C_Commoner_shorts", -"U_C_Driver_1", -"U_C_Driver_1_black", -"U_C_Driver_1_blue", -"U_C_Driver_1_green", -"U_C_Driver_1_orange", -"U_C_Driver_1_red", -"U_C_Driver_1_white", -"U_C_Driver_1_yellow", -"U_C_Driver_2", -"U_C_Driver_3", -"U_C_Driver_4", -"U_C_Farmer", -"U_C_Fisherman", -"U_C_FishermanOveralls", -"U_C_HunterBody_brn", -"U_C_HunterBody_grn", -"U_C_Journalist", -"U_C_Man_casual_1_F", -"U_C_Man_casual_2_F", -"U_C_Man_casual_3_F", -"U_C_Man_casual_4_F", -"U_C_Man_casual_5_F", -"U_C_Man_casual_6_F", -"U_C_man_sport_1_F", -"U_C_man_sport_2_F", -"U_C_man_sport_3_F", -"U_C_Novak", -"U_C_Poloshirt_blue", -"U_C_Poloshirt_burgundy", -"U_C_Poloshirt_redwhite", -"U_C_Poloshirt_salmon", -"U_C_Poloshirt_stripped", -"U_C_Poloshirt_tricolour", -"U_C_Poor_1", -"U_C_Poor_2", -"U_C_Poor_shorts_1", -"U_C_Poor_shorts_2", -"U_C_PriestBody", -"U_C_Scavenger_1", -"U_C_Scavenger_2", -"U_C_Scientist", -"U_C_ShirtSurfer_shorts", -"U_C_Soldier_VR", -"U_C_TeeSurfer_shorts_1", -"U_C_TeeSurfer_shorts_2", -"U_C_WorkerCoveralls", -"U_C_WorkerOveralls", -"U_Competitor", -"U_I_C_Soldier_Bandit_1_F", -"U_I_C_Soldier_Bandit_2_F", -"U_I_C_Soldier_Bandit_3_F", -"U_I_C_Soldier_Bandit_4_F", -"U_I_C_Soldier_Bandit_5_F", -"U_I_C_Soldier_Camo_F", -"U_I_C_Soldier_Para_1_F", -"U_I_C_Soldier_Para_2_F", -"U_I_C_Soldier_Para_3_F", -"U_I_C_Soldier_Para_4_F", -"U_I_C_Soldier_Para_5_F", -"U_I_CombatUniform", -"U_I_CombatUniform_shortsleeve", -"U_I_CombatUniform_tshirt", -"U_I_FullGhillie_ard", -"U_I_FullGhillie_lsh", -"U_I_FullGhillie_sard", -"U_I_G_resistanceLeader_F", -"U_I_G_Story_Protagonist_F", -"U_I_GhillieSuit", -"U_I_HeliPilotCoveralls", -"U_I_OfficerUniform", -"U_I_pilotCoveralls", -"U_I_Protagonist_VR", -"U_I_Soldier_VR", -"U_I_Wetsuit", -"U_IG_Guerilla1_1", -"U_IG_Guerilla2_1", -"U_IG_Guerilla2_2", -"U_IG_Guerilla2_3", -"U_IG_Guerilla3_1", -"U_IG_Guerilla3_2", -"U_IG_Guerrilla_6_1", -"U_IG_leader", -"U_IG_Menelaos", -"U_KerryBody", -"U_Marshal", -"U_MillerBody", -"U_NikosAgedBody", -"U_NikosBody", -"U_O_CombatUniform_ocamo", -"U_O_CombatUniform_oucamo", -"U_O_FullGhillie_ard", -"U_O_FullGhillie_lsh", -"U_O_FullGhillie_sard", -"U_O_GhillieSuit", -"U_O_OfficerUniform_ocamo", -"U_O_PilotCoveralls", -"U_O_Protagonist_VR", -"U_O_Soldier_VR", -"U_O_SpecopsUniform_blk", -"U_O_SpecopsUniform_ocamo", -"U_O_T_FullGhillie_tna_F", -"U_O_T_Officer_F", -"U_O_T_Sniper_F", -"U_O_T_Soldier_F", -"U_O_V_Soldier_Viper_F", -"U_O_V_Soldier_Viper_hex_F", -"U_O_Wetsuit", -"U_OG_Guerilla1_1", -"U_OG_Guerilla2_1", -"U_OG_Guerilla2_2", -"U_OG_Guerilla2_3", -"U_OG_Guerilla3_1", -"U_OG_Guerilla3_2", -"U_OG_Guerrilla_6_1", -"U_OG_leader", -"U_OI_Scientist", -"U_OrestesBody", -"U_Rangemaster", -"U_VirtualMan_F", -"Uniform_Base" -]; diff --git a/testConfig.Altis/OldVersions/baseVests.sqf b/testConfig.Altis/OldVersions/baseVests.sqf deleted file mode 100644 index ea6f7f3..0000000 --- a/testConfig.Altis/OldVersions/baseVests.sqf +++ /dev/null @@ -1,88 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - This list of vests will be excluded from the output of the relevant scripts. - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseVests = [ -"Exile_Vest_Rebreather_AAF", -"Exile_Vest_Rebreather_CSAT", -"Exile_Vest_Rebreather_NATO", -"Exile_Vest_Snow", -"V_BandollierB_blk", -"V_BandollierB_cbr", -"V_BandollierB_ghex_F", -"V_BandollierB_khk", -"V_BandollierB_oli", -"V_BandollierB_rgr", -"V_Chestrig_blk", -"V_Chestrig_khk", -"V_Chestrig_oli", -"V_Chestrig_rgr", -"V_DeckCrew_base_F", -"V_DeckCrew_blue_F", -"V_DeckCrew_brown_F", -"V_DeckCrew_green_F", -"V_DeckCrew_red_F", -"V_DeckCrew_violet_F", -"V_DeckCrew_white_F", -"V_DeckCrew_yellow_F", -"V_HarnessO_brn", -"V_HarnessO_ghex_F", -"V_HarnessO_gry", -"V_HarnessOGL_brn", -"V_HarnessOGL_ghex_F", -"V_HarnessOGL_gry", -"V_HarnessOSpec_brn", -"V_HarnessOSpec_gry", -"V_I_G_resistanceLeader_F", -"V_PlateCarrier1_blk", -"V_PlateCarrier1_rgr", -"V_PlateCarrier1_rgr_noflag_F", -"V_PlateCarrier1_tna_F", -"V_PlateCarrier2_blk", -"V_PlateCarrier2_rgr", -"V_PlateCarrier2_rgr_noflag_F", -"V_PlateCarrier2_tna_F", -"V_PlateCarrier3_rgr", -"V_PlateCarrier_Kerry", -"V_PlateCarrierGL_blk", -"V_PlateCarrierGL_mtp", -"V_PlateCarrierGL_rgr", -"V_PlateCarrierGL_tna_F", -"V_PlateCarrierH_CTRG", -"V_PlateCarrierIA1_dgtl", -"V_PlateCarrierIA2_dgtl", -"V_PlateCarrierIAGL_dgtl", -"V_PlateCarrierIAGL_oli", -"V_PlateCarrierL_CTRG", -"V_PlateCarrierSpec_blk", -"V_PlateCarrierSpec_mtp", -"V_PlateCarrierSpec_rgr", -"V_PlateCarrierSpec_tna_F", -"V_Press_F", -"V_Rangemaster_belt", -"V_RebreatherB", -"V_RebreatherIA", -"V_RebreatherIR", -"V_TacChestrig_cbr_F", -"V_TacChestrig_grn_F", -"V_TacChestrig_oli_F", -"V_TacVest_blk", -"V_TacVest_blk_POLICE", -"V_TacVest_brn", -"V_TacVest_camo", -"V_TacVest_gen_F", -"V_TacVest_khk", -"V_TacVest_oli", -"V_TacVestCamo_khk", -"V_TacVestIR_blk", -"Vest_Camo_Base", -"Vest_NoCamo_Base" -]; diff --git a/testConfig.Altis/OldVersions/baseWeapons.sqf b/testConfig.Altis/OldVersions/baseWeapons.sqf deleted file mode 100644 index 75156d7..0000000 --- a/testConfig.Altis/OldVersions/baseWeapons.sqf +++ /dev/null @@ -1,275 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - Lists weapons that should excluded from the output for the script. - - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_knownWeapons = [ - -// Assault Rifles -"Rifle", -"Rifle_Base_F", -"Rifle_Short_Base_F", -"Rifle_Long_Base_F", -"arifle_Katiba_Base_F", -"arifle_Katiba_F", -"arifle_Katiba_C_F", -"mk20_base_F", -"arifle_Mk20_F", -"arifle_Mk20_plain_F", -"arifle_Mk20C_F", -"arifle_Mk20C_plain_F", -"arifle_MX_Base_F", -"arifle_MXC_F", -"arifle_MX_F", -"arifle_MXM_F", -"arifle_MXC_Black_F", -"arifle_MX_Black_F", -"arifle_MXM_Black_F", -"SDAR_base_F", -"arifle_SDAR_F", -"Tavor_base_F", -"arifle_TRG21_F", -"arifle_TRG20_F", -"pdw2000_base_F", -"hgun_PDW2000_F", -"arifle_MX_khk_F", -"arifle_MXC_khk_F", -"arifle_MXM_khk_F", -"arifle_AK12_base_F", -"arifle_AK12_F", -"arifle_AKM_base_F", -"arifle_AKM_F", -"arifle_AKS_base_F", -"arifle_AKS_F", -"arifle_CTAR_base_F", -"arifle_CTAR_blk_F", -"arifle_CTAR_hex_F", -"arifle_CTAR_ghex_F", -"arifle_CTARS_base_F", -"arifle_CTARS_blk_F", -"arifle_CTARS_hex_F", -"arifle_CTARS_ghex_F", -"arifle_SPAR_01_base_F", -"arifle_SPAR_01_blk_F", -"arifle_SPAR_01_khk_F", -"arifle_SPAR_01_snd_F", -"arifle_AK107", -"Exile_Weapon_AK107", -"arifle_AK74", -"Exile_Weapon_AK74", -"arifle_AK47", -"Exile_Weapon_AK47", -"arifle_AKM", -"Exile_Weapon_AKM", -"arifle_AKS", -"Exile_Weapon_AKS", -"arifle_AKS_Gold", -"Exile_Weapon_AKS_Gold", -"exile_arifle_M16A4", -"Exile_Weapon_M16A4", -"exile_arifle_M16A2", -"Exile_Weapon_M16A2", -"exile_arifle_M4", -"Exile_Weapon_M4", -"srifle_DMR", -"Exile_Weapon_DMR", -"ksvk", -"Exile_Weapon_ksvk", -"srifle_LeeEnfield", -"Exile_Weapon_LeeEnfield", -"srifle_CZ550_base", -"Exile_Weapon_CZ550", -"srifle_SVD", -"Exile_Weapon_SVD", -"srifle_SVD_des", -"Exile_Weapon_SVDCamo", -"srifle_VSSVintorez", -"Exile_Weapon_VSSVintorez", -"arifle_RPK74", -"Exile_Weapon_RPK", -"M1014", -"Exile_Weapon_M1014", -"arifle_AK_Base", -"arifle_AKS_Base", -"arifle_AK107_Base", -"exile_arifle_M16A4_base", -"srifle_CZ550_shit_1", -"srifle_CZ550_shit_2", - - -// Assault Rifles with GL -"arifle_Katiba_GL_F", -"arifle_Mk20_GL_F", -"arifle_Mk20_GL_plain_F", -"arifle_MX_GL_F", -"arifle_MX_GL_Black_F", -"arifle_TRG21_GL_F", -"arifle_MX_GL_khk_F", -"arifle_AK12_GL_base_F", -"arifle_AK12_GL_F", -"arifle_ARX_base_F", -"arifle_ARX_blk_F", -"arifle_ARX_ghex_F", -"arifle_ARX_hex_F", -"arifle_CTAR_GL_base_F", -"arifle_CTAR_GL_blk_F", -"arifle_CTAR_GL_hex_F", -"arifle_CTAR_GL_ghex_F", -"arifle_SPAR_01_GL_base_F", -"arifle_SPAR_01_GL_blk_F", -"arifle_SPAR_01_GL_khk_F", -"arifle_SPAR_01_GL_snd_F", -"arifle_AK107_GL", -"Exile_Weapon_AK107_GL", -"arifle_AK74_GL", -"Exile_Weapon_AK74_GL", - - -// LMGs -"LMG_Mk200_F", -"LMG_Zafir_F", -"arifle_MX_SW_F", -"arifle_MX_SW_Black_F", -"MMG_01_hex_F", -"MMG_02_camo_F", -"MMG_01_tan_F", -"MMG_02_black_F", -"MMG_02_sand_F", -"arifle_MX_SW_khk_F", -"LMG_03_base_F", -"LMG_03_F", -"arifle_SPAR_02_base_F", -"arifle_SPAR_02_blk_F", -"arifle_SPAR_02_khk_F", -"arifle_SPAR_02_snd_F", -"PKP", -"Exile_Weapon_PK", -"Pecheneg", -"Exile_Weapon_PKP", -"lmg_UK59", - - -// SMGs -"SMG_01_Base", -"SMG_01_F", -"SMG_02_base_F", -"SMG_02_F", -"SMG_05_base_F", -"SMG_05_F", - - -// Snipers -"DMR_01_base_F", -"srifle_DMR_01_F", -"EBR_base_F", -"srifle_EBR_F", -"GM6_base_F", -"srifle_GM6_F", -"srifle_GM6_camo_F", -"LRR_base_F", -"srifle_LRR_F", -"srifle_LRR_camo_F", -"DMR_02_base_F", -"DMR_03_base_F", -"DMR_04_base_F", -"DMR_05_base_F", -"DMR_06_base_F", -"srifle_DMR_02_F", -"srifle_DMR_02_camo_F", -"srifle_DMR_02_sniper_F", -"srifle_DMR_03_F", -"srifle_DMR_03_khaki_F", -"srifle_DMR_03_tan_F", -"srifle_DMR_03_multicam_F", -"srifle_DMR_03_woodland_F", -"srifle_DMR_04_F", -"srifle_DMR_04_Tan_F", -"srifle_DMR_05_blk_F", -"srifle_DMR_05_hex_F", -"srifle_DMR_05_tan_f", -"srifle_DMR_06_camo_F", -"srifle_DMR_06_olive_F", -"srifle_LRR_tna_F", -"srifle_GM6_ghex_F", -"DMR_07_base_F", -"srifle_DMR_07_blk_F", -"srifle_DMR_07_hex_F", -"srifle_DMR_07_ghex_F", -"arifle_SPAR_03_base_F", -"arifle_SPAR_03_blk_F", -"arifle_SPAR_03_khk_F", -"arifle_SPAR_03_snd_F", -"exile_weapons_m107", -"Exile_Weapon_m107", - - -// DMRs - - -// Launchers -"Launcher", -"Launcher_Base_F", -"launch_NLAW_F", -"launch_RPG32_F", -"launch_Titan_base", -"launch_Titan_short_base", -"launch_B_Titan_F", -"launch_I_Titan_F", -"launch_O_Titan_F", -"launch_Titan_F", -"launch_B_Titan_short_F", -"launch_I_Titan_short_F", -"launch_O_Titan_short_F", -"launch_Titan_short_F", -"launch_RPG32_ghex_F", -"launch_RPG7_F", -"launch_B_Titan_tna_F", -"launch_B_Titan_short_tna_F", -"launch_O_Titan_ghex_F", -"launch_O_Titan_short_ghex_F", - - -// Handguns -"HandGunBase", -"Pistol", -"Pistol_Base_F", -"hgun_ACPC2_F", -"hgun_P07_F", -"hgun_Pistol_heavy_01_F", -"hgun_Pistol_heavy_02_F", -"hgun_Rook40_F", -"hgun_Pistol_Signal_F", -"hgun_P07_khk_F", -"hgun_Pistol_01_F", -"Colt1911", -"Exile_Weapon_Colt1911", -"Makarov", -"Exile_Weapon_Makarov", -"TaurusTracker455", -"Exile_Weapon_Taurus", -"TaurusTracker455_gold", -"Exile_Weapon_TaurusGold", -"exile_rifle_SA61", -"Exile_Weapon_SA61", -"Makarov_light", - - -// Shotguns - - -// Throwables -"Exile_Melee_Abstract", -"Exile_Melee_Axe", -"Exile_Melee_Shovel", -"Exile_Melee_SledgeHammer" - -// Unknown -]; diff --git a/testConfig.Altis/OldVersions/baseWearables.sqf b/testConfig.Altis/OldVersions/baseWearables.sqf deleted file mode 100644 index 3b6e31f..0000000 --- a/testConfig.Altis/OldVersions/baseWearables.sqf +++ /dev/null @@ -1,500 +0,0 @@ - - - -_baseWearables = [ -// // Uniforms -"Uniform_Base", -"U_BasicBody", -"U_B_CombatUniform_mcam", -"U_B_CombatUniform_mcam_tshirt", -"U_B_CombatUniform_mcam_vest", -"U_B_GhillieSuit", -"U_B_HeliPilotCoveralls", -"U_B_Wetsuit", -"U_O_CombatUniform_ocamo", -"U_O_GhillieSuit", -"U_O_PilotCoveralls", -"U_O_Wetsuit", -"U_C_Poloshirt_blue", -"U_C_Poloshirt_burgundy", -"U_C_Poloshirt_stripped", -"U_C_Poloshirt_tricolour", -"U_C_Poloshirt_salmon", -"U_C_Poloshirt_redwhite", -"U_C_Commoner1_1", -"U_C_Commoner1_2", -"U_C_Commoner1_3", -"U_Rangemaster", -"U_NikosBody", -"U_OrestesBody", -"U_B_CombatUniform_mcam_worn", -"U_B_CombatUniform_wdl", -"U_B_CombatUniform_wdl_tshirt", -"U_B_CombatUniform_wdl_vest", -"U_B_CombatUniform_sgg", -"U_B_CombatUniform_sgg_tshirt", -"U_B_CombatUniform_sgg_vest", -"U_B_SpecopsUniform_sgg", -"U_B_PilotCoveralls", -"U_O_CombatUniform_oucamo", -"U_O_SpecopsUniform_ocamo", -"U_O_SpecopsUniform_blk", -"U_O_OfficerUniform_ocamo", -"U_I_CombatUniform", -"U_I_CombatUniform_tshirt", -"U_I_CombatUniform_shortsleeve", -"U_I_pilotCoveralls", -"U_I_HeliPilotCoveralls", -"U_I_GhillieSuit", -"U_I_OfficerUniform", -"U_I_Wetsuit", -"U_Competitor", -"U_MillerBody", -"U_KerryBody", -"U_AttisBody", -"U_AntigonaBody", -"U_IG_Menelaos", -"U_C_Novak", -"U_OI_Scientist", -"U_IG_Guerilla1_1", -"U_IG_Guerilla2_1", -"U_IG_Guerilla2_2", -"U_IG_Guerilla2_3", -"U_IG_Guerilla3_1", -"U_IG_Guerilla3_2", -"U_IG_leader", -"U_BG_Guerilla1_1", -"U_BG_Guerilla2_1", -"U_BG_Guerilla2_2", -"U_BG_Guerilla2_3", -"U_BG_Guerilla3_1", -"U_BG_Guerilla3_2", -"U_BG_leader", -"U_OG_Guerilla1_1", -"U_OG_Guerilla2_1", -"U_OG_Guerilla2_2", -"U_OG_Guerilla2_3", -"U_OG_Guerilla3_1", -"U_OG_Guerilla3_2", -"U_OG_leader", -"U_C_Poor_1", -"U_C_Poor_2", -"U_C_Scavenger_1", -"U_C_Scavenger_2", -"U_C_Farmer", -"U_C_Fisherman", -"U_C_WorkerOveralls", -"U_C_FishermanOveralls", -"U_C_WorkerCoveralls", -"U_C_HunterBody_grn", -"U_C_HunterBody_brn", -"U_C_Commoner2_1", -"U_C_Commoner2_2", -"U_C_Commoner2_3", -"U_C_PriestBody", -"U_C_Poor_shorts_1", -"U_C_Poor_shorts_2", -"U_C_Commoner_shorts", -"U_C_ShirtSurfer_shorts", -"U_C_TeeSurfer_shorts_1", -"U_C_TeeSurfer_shorts_2", -"U_B_CTRG_1", -"U_B_CTRG_2", -"U_B_CTRG_3", -"U_B_survival_uniform", -"U_I_G_Story_Protagonist_F", -"U_I_G_resistanceLeader_F", -"U_C_Journalist", -"U_C_Scientist", -"U_NikosAgedBody", -"U_B_Protagonist_VR", -"U_O_Protagonist_VR", -"U_I_Protagonist_VR", -"U_IG_Guerrilla_6_1", -"U_BG_Guerrilla_6_1", -"U_OG_Guerrilla_6_1", -"U_B_Soldier_VR", -"U_O_Soldier_VR", -"U_I_Soldier_VR", -"U_C_Soldier_VR", -"U_C_Driver_1", -"U_C_Driver_2", -"U_C_Driver_3", -"U_C_Driver_4", -"U_Marshal", -"U_C_Driver_1_black", -"U_C_Driver_1_blue", -"U_C_Driver_1_green", -"U_C_Driver_1_red", -"U_C_Driver_1_white", -"U_C_Driver_1_yellow", -"U_C_Driver_1_orange", -"U_B_FullGhillie_lsh", -"U_B_FullGhillie_sard", -"U_B_FullGhillie_ard", -"U_O_FullGhillie_lsh", -"U_O_FullGhillie_sard", -"U_O_FullGhillie_ard", -"U_I_FullGhillie_lsh", -"U_I_FullGhillie_sard", -"U_I_FullGhillie_ard", -"U_VirtualMan_F", -"Exile_Uniform_BambiOverall", -"Exile_Uniform_ExileCustoms", -"Exile_Uniform_Wetsuit_NATO", -"Exile_Uniform_Wetsuit_CSAT", -"Exile_Uniform_Wetsuit_AAF", -"Exile_Uniform_Woodland", -"U_B_T_Soldier_F", -"U_B_T_Soldier_AR_F", -"U_B_T_Soldier_SL_F", -"U_B_T_Sniper_F", -"U_B_T_FullGhillie_tna_F", -"U_B_CTRG_Soldier_F", -"U_B_CTRG_Soldier_2_F", -"U_B_CTRG_Soldier_3_F", -"U_B_GEN_Soldier_F", -"U_B_GEN_Commander_F", -"U_O_T_Soldier_F", -"U_O_T_Officer_F", -"U_O_T_Sniper_F", -"U_O_T_FullGhillie_tna_F", -"U_O_V_Soldier_Viper_F", -"U_O_V_Soldier_Viper_hex_F", -"U_I_C_Soldier_Para_1_F", -"U_I_C_Soldier_Para_2_F", -"U_I_C_Soldier_Para_3_F", -"U_I_C_Soldier_Para_4_F", -"U_I_C_Soldier_Para_5_F", -"U_I_C_Soldier_Bandit_1_F", -"U_I_C_Soldier_Bandit_2_F", -"U_I_C_Soldier_Bandit_3_F", -"U_I_C_Soldier_Bandit_4_F", -"U_I_C_Soldier_Bandit_5_F", -"U_I_C_Soldier_Camo_F", -"U_C_man_sport_1_F", -"U_C_man_sport_2_F", -"U_C_man_sport_3_F", -"U_C_Man_casual_1_F", -"U_C_Man_casual_2_F", -"U_C_Man_casual_3_F", -"U_C_Man_casual_4_F", -"U_C_Man_casual_5_F", -"U_C_Man_casual_6_F", -"U_B_CTRG_Soldier_urb_1_F", -"U_B_CTRG_Soldier_urb_2_F", -"U_B_CTRG_Soldier_urb_3_F", - - -// Headgear / Masks -"HelmetBase", -"H_HelmetB", -"H_HelmetB_camo", -"H_HelmetB_paint", -"H_HelmetB_light", -"H_Booniehat_khk", -"H_Booniehat_oli", -"H_Booniehat_indp", -"H_Booniehat_mcamo", -"H_Booniehat_grn", -"H_Booniehat_tan", -"H_Booniehat_dirty", -"H_Booniehat_dgtl", -"H_Booniehat_khk_hs", -"H_HelmetB_plain_mcamo", -"H_HelmetB_plain_blk", -"H_HelmetSpecB", -"H_HelmetSpecB_paint1", -"H_HelmetSpecB_paint2", -"H_HelmetSpecB_blk", -"H_HelmetSpecB_snakeskin", -"H_HelmetSpecB_sand", -"H_HelmetIA", -"H_HelmetIA_net", -"H_HelmetIA_camo", -"H_Helmet_Kerry", -"H_HelmetB_grass", -"H_HelmetB_snakeskin", -"H_HelmetB_desert", -"H_HelmetB_black", -"H_HelmetB_sand", -"H_Cap_red", -"H_Cap_blu", -"H_Cap_oli", -"H_Cap_headphones", -"H_Cap_tan", -"H_Cap_blk", -"H_Cap_blk_CMMG", -"H_Cap_brn_SPECOPS", -"H_Cap_tan_specops_US", -"H_Cap_khaki_specops_UK", -"H_Cap_grn", -"H_Cap_grn_BI", -"H_Cap_blk_Raven", -"H_Cap_blk_ION", -"H_Cap_oli_hs", -"H_Cap_press", -"H_Cap_usblack", -"H_Cap_surfer", -"H_Cap_police", -"H_HelmetCrew_B", -"H_HelmetCrew_O", -"H_HelmetCrew_I", -"H_PilotHelmetFighter_B", -"H_PilotHelmetFighter_O", -"H_PilotHelmetFighter_I", -"H_PilotHelmetHeli_B", -"H_PilotHelmetHeli_O", -"H_PilotHelmetHeli_I", -"H_CrewHelmetHeli_B", -"H_CrewHelmetHeli_O", -"H_CrewHelmetHeli_I", -"H_HelmetO_ocamo", -"H_HelmetLeaderO_ocamo", -"H_MilCap_ocamo", -"H_MilCap_mcamo", -"H_MilCap_oucamo", -"H_MilCap_rucamo", -"H_MilCap_gry", -"H_MilCap_dgtl", -"H_MilCap_blue", -"H_HelmetB_light_grass", -"H_HelmetB_light_snakeskin", -"H_HelmetB_light_desert", -"H_HelmetB_light_black", -"H_HelmetB_light_sand", -"H_BandMask_blk", -"H_BandMask_khk", -"H_BandMask_reaper", -"H_BandMask_demon", -"H_HelmetO_oucamo", -"H_HelmetLeaderO_oucamo", -"H_HelmetSpecO_ocamo", -"H_HelmetSpecO_blk", -"H_Bandanna_surfer", -"H_Bandanna_khk", -"H_Bandanna_khk_hs", -"H_Bandanna_cbr", -"H_Bandanna_sgg", -"H_Bandanna_sand", -"H_Bandanna_surfer_blk", -"H_Bandanna_surfer_grn", -"H_Bandanna_gry", -"H_Bandanna_blu", -"H_Bandanna_camo", -"H_Bandanna_mcamo", -"H_Shemag_khk", -"H_Shemag_tan", -"H_Shemag_olive", -"H_Shemag_olive_hs", -"H_ShemagOpen_khk", -"H_ShemagOpen_tan", -"H_Beret_blk", -"H_Beret_blk_POLICE", -"H_Beret_red", -"H_Beret_grn", -"H_Beret_grn_SF", -"H_Beret_brn_SF", -"H_Beret_ocamo", -"H_Beret_02", -"H_Beret_Colonel", -"H_Watchcap_blk", -"H_Watchcap_cbr", -"H_Watchcap_khk", -"H_Watchcap_camo", -"H_Watchcap_sgg", -"H_TurbanO_blk", -"H_StrawHat", -"H_StrawHat_dark", -"H_Hat_blue", -"H_Hat_brown", -"H_Hat_camo", -"H_Hat_grey", -"H_Hat_checker", -"H_Hat_tan", -"H_RacingHelmet_1_F", -"H_RacingHelmet_2_F", -"H_RacingHelmet_3_F", -"H_RacingHelmet_4_F", -"H_RacingHelmet_1_black_F", -"H_RacingHelmet_1_blue_F", -"H_RacingHelmet_1_green_F", -"H_RacingHelmet_1_red_F", -"H_RacingHelmet_1_white_F", -"H_RacingHelmet_1_yellow_F", -"H_RacingHelmet_1_orange_F", -"H_Cap_marshal", -"Exile_Cap_Exile", -"H_Helmet_Skate", -"H_HelmetB_TI_tna_F", -"H_HelmetO_ViperSP_hex_F", -"H_HelmetO_ViperSP_ghex_F", -"H_HelmetB_tna_F", -"H_HelmetB_Enh_tna_F", -"H_HelmetB_Light_tna_F", -"H_HelmetSpecO_ghex_F", -"H_HelmetLeaderO_ghex_F", -"H_HelmetO_ghex_F", -"H_HelmetCrew_O_ghex_F", -"H_MilCap_tna_F", -"H_MilCap_ghex_F", -"H_Booniehat_tna_F", -"H_Beret_gen_F", -"H_MilCap_gen_F", -"H_Cap_oli_Syndikat_F", -"H_Cap_tan_Syndikat_F", -"H_Cap_blk_Syndikat_F", -"H_Cap_grn_Syndikat_F", - - -// Goggles -"GoggleItem", - - -// Vests -"Vest_Camo_Base", -"Vest_NoCamo_Base", -"V_Rangemaster_belt", -"V_BandollierB_khk", -"V_BandollierB_cbr", -"V_BandollierB_rgr", -"V_BandollierB_blk", -"V_BandollierB_oli", -"V_PlateCarrier1_rgr", -"V_PlateCarrier2_rgr", -"V_PlateCarrier2_blk", -"V_PlateCarrier3_rgr", -"V_PlateCarrierGL_rgr", -"V_PlateCarrierGL_blk", -"V_PlateCarrierGL_mtp", -"V_PlateCarrier1_blk", -"V_PlateCarrierSpec_rgr", -"V_PlateCarrierSpec_blk", -"V_PlateCarrierSpec_mtp", -"V_Chestrig_khk", -"V_Chestrig_rgr", -"V_Chestrig_blk", -"V_Chestrig_oli", -"V_TacVest_khk", -"V_TacVest_brn", -"V_TacVest_oli", -"V_TacVest_blk", -"V_TacVest_camo", -"V_TacVest_blk_POLICE", -"V_TacVestIR_blk", -"V_TacVestCamo_khk", -"V_HarnessO_brn", -"V_HarnessOGL_brn", -"V_HarnessO_gry", -"V_HarnessOGL_gry", -"V_HarnessOSpec_brn", -"V_HarnessOSpec_gry", -"V_PlateCarrierIA1_dgtl", -"V_PlateCarrierIA2_dgtl", -"V_PlateCarrierIAGL_dgtl", -"V_PlateCarrierIAGL_oli", -"V_RebreatherB", -"V_RebreatherIR", -"V_RebreatherIA", -"V_PlateCarrier_Kerry", -"V_PlateCarrierL_CTRG", -"V_PlateCarrierH_CTRG", -"V_I_G_resistanceLeader_F", -"V_Press_F", -"Exile_Vest_Rebreather_NATO", -"Exile_Vest_Rebreather_AAF", -"Exile_Vest_Rebreather_CSAT", -"Exile_Vest_Snow", -"V_TacChestrig_grn_F", -"V_TacChestrig_oli_F", -"V_TacChestrig_cbr_F", -"V_PlateCarrier1_tna_F", -"V_PlateCarrier2_tna_F", -"V_PlateCarrierSpec_tna_F", -"V_PlateCarrierGL_tna_F", -"V_HarnessO_ghex_F", -"V_HarnessOGL_ghex_F", -"V_BandollierB_ghex_F", -"V_TacVest_gen_F", -"V_PlateCarrier1_rgr_noflag_F", -"V_PlateCarrier2_rgr_noflag_F", -"V_DeckCrew_base_F", -"V_DeckCrew_yellow_F", -"V_DeckCrew_blue_F", -"V_DeckCrew_green_F", -"V_DeckCrew_red_F", -"V_DeckCrew_white_F", -"V_DeckCrew_brown_F", -"V_DeckCrew_violet_F", - - -// Backpacks - - -//Glasses -"None", -"G_Spectacles", -"G_Spectacles_Tinted", -"G_Combat", -"G_Lowprofile", -"G_Shades_Black", -"G_Shades_Green", -"G_Shades_Red", -"G_Squares", -"G_Squares_Tinted", -"G_Sport_BlackWhite", -"G_Sport_Blackyellow", -"G_Sport_Greenblack", -"G_Sport_Checkered", -"G_Sport_Red", -"G_Tactical_Black", -"G_Aviator", -"G_Lady_Mirror", -"G_Lady_Dark", -"G_Lady_Red", -"G_Lady_Blue", -"G_Diving", -"G_B_Diving", -"G_O_Diving", -"G_I_Diving", -"G_Goggles_VR", -"G_Balaclava_blk", -"G_Balaclava_oli", -"G_Balaclava_combat", -"G_Balaclava_lowprofile", -"G_Bandanna_blk", -"G_Bandanna_oli", -"G_Bandanna_khk", -"G_Bandanna_tan", -"G_Bandanna_beast", -"G_Bandanna_shades", -"G_Bandanna_sport", -"G_Bandanna_aviator", -"G_Shades_Blue", -"G_Sport_Blackred", -"G_Tactical_Clear", -"Exile_Glasses_Diving_AAF", -"Exile_Glasses_Diving_CSAT", -"Exile_Glasses_Diving_NATO", -"G_Balaclava_TI_blk_F", -"G_Balaclava_TI_tna_F", -"G_Balaclava_TI_G_blk_F", -"G_Balaclava_TI_G_tna_F", -"G_Combat_Goggles_tna_F", - - -// NVG -"NVGoggles", -"NVGoggles_OPFOR", -"NVGoggles_INDEP", -"Integrated_NVG_F", -"Integrated_NVG_TI_0_F", -"Integrated_NVG_TI_1_F", -"O_NVGoggles_hex_F", -"O_NVGoggles_urb_F", -"O_NVGoggles_ghex_F", -"NVGoggles_tna_F", -"NVGogglesB_blk_F", -"NVGogglesB_grn_F", -"NVGogglesB_gry_F" -]; diff --git a/testConfig.Altis/OldVersions/headgearConfig.sqf b/testConfig.Altis/OldVersions/headgearConfig.sqf deleted file mode 100644 index 7cf1469..0000000 --- a/testConfig.Altis/OldVersions/headgearConfig.sqf +++ /dev/null @@ -1,39 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseHeadgear = []; -#include "baseHeadgear.sqf" -_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; -_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; -_index = 0; -_cars = []; -_exile = 0; -_clipboard = ""; -{ - _isKindOf = (_x isKindOF ["HelmetBase", configFile >> "CfgWeapons"]) or (_x isKindOF ["H_HelmetB", configFile >> "CfgWeapons"]); - if (_isKindOf and !(_x in _baseHeadgear)) then - { - _cars pushback _x; - diag_log format["%1",_x]; - _index = _index + 1; - _left = [_x,5] call KRON_StrLeft; - if (_left in ["Exile"]) then { - _exile = _exile + 1; - systemChat format["%1",_x]; - - }; - _clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; -}forEach _veh; -systemChat format["number of type of Vests = %1", _index]; -systemChat format["number of Exile Vests = %1",_exile]; - -copyToClipboard _clipboard;; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/headgearPriceList.sqf b/testConfig.Altis/OldVersions/headgearPriceList.sqf deleted file mode 100644 index 228922d..0000000 --- a/testConfig.Altis/OldVersions/headgearPriceList.sqf +++ /dev/null @@ -1,38 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseHeadgear = []; -#include "baseHeadgear.sqf" -_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; -_veh sort true; - -_cars = []; - -_clipboard = ""; -{ - _isKindOf = (_x isKindOF ["HelmetBase", configFile >> "CfgWeapons"]) or (_x isKindOF ["H_HelmetB", configFile >> "CfgWeapons"]); - if (_isKindOf and !(_x in _baseHeadgear)) then - { - _cars pushback _x; - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 50; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 50; };%2",_x,endl]; - }; - }; -}forEach _veh; -systemChat format["number of type of Man = %1", _index]; - -copyToClipboard _clipboard; - -systemChat "Headgear Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/initgobalvariables.sqf b/testConfig.Altis/OldVersions/initgobalvariables.sqf deleted file mode 100644 index 5396a23..0000000 --- a/testConfig.Altis/OldVersions/initgobalvariables.sqf +++ /dev/null @@ -1,33 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -// load string library -nul=[] execVM "KRON_Strings.sqf"; -DBD_priceConfiguration = "Exile"; // Options are "Exile" or "Epoch". This configuration pertains only to generating pre-formated price lists. -DBD_includedWeaponMagazines = false; - -player addAction["Run vehiclesConfig","vehiclesConfig.sqf"]; -player addAction["Run vehiclesPricelist","vehiclesPriceList.sqf"]; -player addAction["Run airConfig","airConfig.sqf"]; -player addAction["Run airPriceList","airPriceList.sqf"]; -player addAction["Run weaponsConfig","weaponsConfig.sqf"]; -player addAction["Run weaponsPriceList","weaponsPriceList.sqf"]; -player addAction["Run magazinesConfig","magazinesConfig.sqf"]; -player addAction["Run magazinesPriceList","magazinesPriceList.sqf"]; -player addAction["Run wearablesConfig","wearablesConfig.sqf"]; -player addAction["Run wearablesPriceList","wearablesPriceList.sqf"]; - -player addAction["Run headgearConfig","headgearConfig.sqf"]; -player addAction["Run headgearPriceList","headgearPriceList.sqf"]; -player addAction["Run vestsConfig","vestsConfig.sqf"]; -player addAction["Run vestsPriceList","vestsPriceList.sqf"]; -player addAction["Run uniformsConfig","uniformsConfig.sqf"]; -player addAction["Run uniformsPriceList","uniformsPriceList.sqf"]; - diff --git a/testConfig.Altis/OldVersions/magazinesConfig.sqf b/testConfig.Altis/OldVersions/magazinesConfig.sqf deleted file mode 100644 index 60d347b..0000000 --- a/testConfig.Altis/OldVersions/magazinesConfig.sqf +++ /dev/null @@ -1,64 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - 7/20/17 - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseMagazines = []; -#include "baseMagazines.sqf" -_veh = (configfile >> "CfgMagazines") call BIS_fnc_getCfgSubClasses; -//_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; -_cars = []; -_clipboard = ""; -_wpnSmokeShell = []; // "B_IR_Grenade" -_wpnLauncherRound = []; -//_wpnMagazines = []; -_wpnVehicleAmmo = []; -_wpnMines = []; // "ATMine_Range_Mag" "SatchelCharge_Remote_Mag" "DemoCharge_Remote_Mag" "IEDUrbanSmall_Remote_Mag" -_isMagazine = true; - -_scannedMags = []; -{ - //diag_log format["Magazine = %1",_x]; - _isKindOf = (_x isKindOF ["CA_Magazine", configFile >> "CfgMagazines"]); - if (true) then - { - //diag_log format["Acceptable Magazine = %1",_x]; - if (_isKindOf and !(_x in _baseMagazines)) then - { - //diag_log format["Evaluated Magazine = %1",_x]; - //if (!(_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) && !(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) && !(_x isKindOf ["VehicleMagazine", configFile >> "CfgMagazines"]) && !(_x isKindOf ["Exile_AbstractItem", configFile >> "CfgMagazines"])) then {_wpnMagazines pushBack _x}; - if (_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) then {_wpnLauncherRound pushBack _x; _scannedMags pushBack _x;}; - if(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) then {_wpnSmokeShell pushBack _x; _scannedMags pushBack _x;}; - if (_x isKindOf ["VehicleMagazine", configFile >> "CfgMagazines"]) then {_wpnVehicleAmmo pushBack _x; _scannedMags pushBack _x;}; - if (_x isKindOf ["Exile_AbstractItem", configFile >> "CfgMagazines"]) then { _scannedMags pushBack _x;}; // Ignore these for now - if !(_x in _scannedMags) then {_wpnMagazines pushBack _x; _scannedMags pushBack _x;}; - }; - }; -}forEach _veh; - -_clipBoard = _clipBoard + format["%1%2// Grenades, Smoke Grenades, Chemlights and Flares%3",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1",%2',_x,endl]; -}forEach _wpnSmokeShell; -_clipBoard = _clipBoard + format["%1%2// Launcher Rounds%3",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1",%2',_x,endl]; -}forEach _wpnLauncherRound; -_clipBoard = _clipBoard + format["%1%2// Vehicle Ammo%3",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1",%2',_x,endl]; -}forEach _wpnVehicleAmmo; -_clipBoard = _clipBoard + format["%1%2// Magazines%3",endl,endl,endl]; -_clipBoard = _clipBoard + format["%1%2// Includes Weapon Magazines and anything not captured above%3",endl,endl,endl]; -_clipBoard = _clipBoard + format["%1%2// Check for duplicates if you also run the extraction tool for weapons%3",endl,endl,endl]; -_clipBoard = _clipBoard + format["%1%2// Which extracts all magazines available for player weapons%3",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1",%2',_x,endl]; -}forEach _wpnMagazines; -copyToClipboard _clipboard; diff --git a/testConfig.Altis/OldVersions/magazinesPriceList.sqf b/testConfig.Altis/OldVersions/magazinesPriceList.sqf deleted file mode 100644 index c5f4f6f..0000000 --- a/testConfig.Altis/OldVersions/magazinesPriceList.sqf +++ /dev/null @@ -1,91 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - 7/20/17 - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseMagazines = []; -#include "baseMagazines.sqf" -_veh = (configfile >> "CfgMagazines") call BIS_fnc_getCfgSubClasses; -_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; -_cars = []; -_clipboard = ""; -_wpnSmokeShell = []; // "B_IR_Grenade" -_wpnLauncherRound = []; -_wpnMagazines = []; -_wpnVehicleAmmo = []; -_wpnMines = []; // "ATMine_Range_Mag" "SatchelCharge_Remote_Mag" "DemoCharge_Remote_Mag" "IEDUrbanSmall_Remote_Mag" -_isMagazine = true; - -_scannedMags = []; -{ - _isKindOf = (_x isKindOF ["CA_Magazine", configFile >> "CfgMagazines"]); - if (true) then - { - if (_isKindOf and !(_x in _baseMagazines)) then - { - if (_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) then {_wpnLauncherRound pushBack _x; _scannedMags pushBack _x;}; - if(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) then {_wpnSmokeShell pushBack _x; _scannedMags pushBack _x;}; - if (_x isKindOf ["VehicleMagazine", configFile >> "CfgMagazines"]) then {_wpnVehicleAmmo pushBack _x; _scannedMags pushBack _x;}; - if (_x isKindOf ["Exile_AbstractItem", configFile >> "CfgMagazines"]) then { _scannedMags pushBack _x;}; // Ignore these for now - if !(_x in _scannedMags) then {_wpnMagazines pushBack _x; _scannedMags pushBack _x;}; - }; - }; -}forEach _veh; - -_clipBoard = _clipBoard + format["%1%2// Grenades, Smoke Grenades, Chemlights and Flares%3",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 15; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 15; };%2",_x,endl]; - }; -}forEach _wpnSmokeShell; -_clipBoard = _clipBoard + format["%1%2// Launcher Rounds%3",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 15; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 15; };%2",_x,endl]; - }; -}forEach _wpnLauncherRound; -_clipBoard = _clipBoard + format["%1%2// Vehicle Ammo%3",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnVehicleAmmo; - -_clipBoard = _clipBoard + format["%1%2// Magazines%3",endl,endl,endl]; -_clipBoard = _clipBoard + format["%1%2// Includes Weapon Magazines and anything not captured above%3",endl,endl,endl]; -_clipBoard = _clipBoard + format["%1%2// Check for duplicates if you also run the extraction tool for weapons%3",endl,endl,endl]; -_clipBoard = _clipBoard + format["%1%2// Which extracts all magazines available for player weapons%3",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 15; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 15; };%2",_x,endl]; - }; -}forEach _wpnMagazines; - -copyToClipboard _clipboard; -systemChat "Magazines Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/strtst.sqf b/testConfig.Altis/OldVersions/strtst.sqf deleted file mode 100644 index ed8c673..0000000 --- a/testConfig.Altis/OldVersions/strtst.sqf +++ /dev/null @@ -1,105 +0,0 @@ -/*** Convert to array ***/ -_str="1234efg890"; -_array=[_str] call KRON_StrtoArray; -_arr1=format['StrtoArray: ["%1"] => %2',_str,_array]; // returns ["1","2","3","4","e","f","g","8","9","0"] - - -/*** String length ***/ -_str="abcdefg"; -_len=[_str] call KRON_StrLen; -_len1=format['StrLen: ["%1"] => %2',_str,_len]; // returns '7' - - -/*** Get left part of string ***/ -_str="1234567890"; -_len=3; -_left=[_str,_len] call KRON_StrLeft; -_left1=format['StrLeft: ["%1",%2] => "%3"',_str,_len,_left]; // returns '123' - - -/*** Get right part of string ***/ -_str="1234567890"; -_len=5; -_right=[_str,_len] call KRON_StrRight; -_right1=format['StrRight: ["%1",%2] => "%3"',_str,_len,_right]; // returns '67890' - - - -/*** Get Substring ***/ -_str="1234567890"; -_pos=3; -_len=3; -_substr=[_str,_pos,_len] call KRON_StrMid; -_mid1=format['StrMid: ["%1",%2,%3] => "%4"',_str,_pos,_len,_substr]; // returns '345' - -_str="1234567890"; -_pos=4; -_substr=[_str,_pos] call KRON_StrMid; -_mid2=format['StrMid: ["%1",%2] => "%3"',_str,_pos,_substr]; // returns '567890' - - -/*** Test for string ***/ -_str="1234567890"; -_ins="345"; -_found=[_str,_ins] call KRON_StrInStr; -_instr1=format['StrInStr: ["%1","%2"] => %3',_str,_ins,_found]; // returns 'true' - -_str="1234567890"; -_ins="345"; -_found=[_str,_ins] call KRON_StrIndex; -_instr2=format['StrIndex: ["%1","%2"] => %3',_str,_ins,_found]; // returns 2 - - - -/*** Convert to uppercase ***/ -_str="abc123XYZ"; -_ucase=[_str] call KRON_StrUpper; -_upper=format['StrUpper: ["%1"] => "%2"',_str,_ucase]; // returns 'ABC123XYZ' - -_str="abc123XYZ"; -_lcase=[_str] call KRON_StrLower; -_lower=format['StrLower: ["%1"] => "%2"',_str,_lcase]; // returns 'abc123xyz' - - -/*** Read flag ***/ -_arr=[this,1,"nogo",true]; -_arg=[_arr,"NOGO"] call KRON_FindFlag; -_flg=format['FindFlag: [[this,1,"nogo",true],"NOGO"] => "%1"',_arg]; // returns true - - -/*** Read arguments ***/ -_arr=[this,1,"left:100","right:200"]; -_arg=parseNumber([_arr,"Left"] call KRON_getArg); -_arg1=format['getArg: [[this,1,"left:100","right:200"],"Left"] => "%2"',_str,_arg]; // returns '100' - -_arr=[this,1,"left:100","right:200"]; -_arg=parseNumber([_arr,"Right"] call KRON_getArg); -_arg2=format['getArg: [[this,1,"left:100","right:200"],"Right"] => "%2"',_str,_arg]; // returns '200' - - -/*** Compare ***/ -_str1="abc"; -_str2="bde"; -_cmp=[_str1,_str2] call KRON_Compare; -_cmp1=format['Compare: ["%1","%2"] => "%3"',_str1,_str2,_cmp]; // returns -1 - - -/*** Sort array***/ -_arr=["x","aaa","100","abc"]; -_srt=[_arr] call KRON_ArraySort; -_srt1=format['ArraySort: [%1] => %2',_arr,_srt]; // returns ["100","aaa","abc","x"] - -_arr=["x","aaa","100","abc"]; -_srt=[_arr,"desc"] call KRON_ArraySort; -_srt2=format['ArraySort: [%1,"desc"] => %2',_arr,_srt]; // returns ["x","abc","aaa","100"] - -_arr=[["Jim",300,false],["Joe",100,false],["Jack",200,true]]; -_srt=[_arr] call KRON_ArraySort; -_srt3=format['ArraySort: [[%1]] => %2',_arr,_srt]; // returns [["Jack",200,true],["Jim",300,false],["Joe",100,false]] - -_arr=[["Jim",300,false],["Joe",100,false],["Jack",200,true]]; -_srt=[_arr,1,"desc"] call KRON_ArraySort; -_srt4=format['ArraySort: [[%1],1,"desc"] => %2',_arr,_srt]; // returns [["Jim",300,false],["Jack",200,true],["Joe",100,false]] - -/*** Output results ***/ -hintc format['%1\n%2\n%3\n%4\n%5\n%6\n%7\n%8\n%9\n%10\n%11\n%12\n%13\n%14\n%15\n%16\n%17\n%18',_arr1,_len1,_left1,_right1,_mid1,_mid2,_instr1,_instr2,_upper,_lower,_flg,_arg1,_arg2,_cmp1,_srt1,_srt2,_srt3,_srt4]; diff --git a/testConfig.Altis/OldVersions/uniformsConfig.sqf b/testConfig.Altis/OldVersions/uniformsConfig.sqf deleted file mode 100644 index 459aafa..0000000 --- a/testConfig.Altis/OldVersions/uniformsConfig.sqf +++ /dev/null @@ -1,37 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseUniforms = []; -#include "baseUniforms.sqf" -_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; -//_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; -_index = 0; -_cars = []; -_exile = 0; -_clipboard = ""; -{ - _isKindOf = _x isKindOF ["Uniform_Base", configFile >> "CfgWeapons"]; - if (_isKindOf and !(_x in _baseUniforms)) then - { - _cars pushback _x; - diag_log format["%1",_x]; - _index = _index + 1; - _left = [_x,5] call KRON_StrLeft; - if (_left in ["Exile"]) then { - _exile = _exile + 1; - systemChat format["%1",_x]; - - }; - _clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; -}forEach _veh; - -copyToClipboard _clipboard; diff --git a/testConfig.Altis/OldVersions/uniformsPriceList.sqf b/testConfig.Altis/OldVersions/uniformsPriceList.sqf deleted file mode 100644 index 48d82a7..0000000 --- a/testConfig.Altis/OldVersions/uniformsPriceList.sqf +++ /dev/null @@ -1,34 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ -_baseUniforms = []; -#include "baseUniforms.sqf" -_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; -_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; -_cars = []; -_clipboard = ""; -{ - _isKindOf = _x isKindOF ["Uniform_Base", configFile >> "CfgWeapons"]; - if (_isKindOf and !(_x in _baseUniforms)) then - { - _cars pushback _x; - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 50; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 50; };%2",_x,endl]; - }; - }; -}forEach _veh; - -copyToClipboard _clipboard; -systemChat "Uniforms Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/vehiclesBase.sqf b/testConfig.Altis/OldVersions/vehiclesBase.sqf deleted file mode 100644 index 073e808..0000000 --- a/testConfig.Altis/OldVersions/vehiclesBase.sqf +++ /dev/null @@ -1,718 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - Lists vehicles that should be excluded from the output of the script. - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_vehiclesBase = [ -"APC_Wheeled_01_base_F", -"APC_Wheeled_02_base_F", -"APC_Wheeled_03_base_F", -"B_APC_Wheeled_01_base_F", -"B_APC_Wheeled_01_cannon_F", -"B_CTRG_LSV_01_light_F", -"B_G_Offroad_01_armed_F", -"B_G_Offroad_01_F", -"B_G_Offroad_01_repair_F", -"B_G_Quadbike_01_F", -"B_G_Van_01_fuel_F", -"B_G_Van_01_transport_F", -"B_GEN_Offroad_01_gen_F", -"B_LSV_01_armed_black_F", -"B_LSV_01_armed_F", -"B_LSV_01_armed_olive_F", -"B_LSV_01_armed_sand_F", -"B_LSV_01_unarmed_black_F", -"B_LSV_01_unarmed_F", -"B_LSV_01_unarmed_olive_F", -"B_LSV_01_unarmed_sand_F", -"B_MRAP_01_F", -"B_MRAP_01_gmg_F", -"B_MRAP_01_hmg_F", -"B_Quadbike_01_F", -"B_T_APC_Wheeled_01_cannon_F", -"B_T_LSV_01_armed_black_F", -"B_T_LSV_01_armed_CTRG_F", -"B_T_LSV_01_armed_F", -"B_T_LSV_01_armed_olive_F", -"B_T_LSV_01_armed_sand_F", -"B_T_LSV_01_unarmed_black_F", -"B_T_LSV_01_unarmed_CTRG_F", -"B_T_LSV_01_unarmed_F", -"B_T_LSV_01_unarmed_olive_F", -"B_T_LSV_01_unarmed_sand_F", -"B_T_MRAP_01_F", -"B_T_MRAP_01_gmg_F", -"B_T_MRAP_01_hmg_F", -"B_T_Quadbike_01_F", -"B_T_Truck_01_ammo_F", -"B_T_Truck_01_box_F", -"B_T_Truck_01_covered_F", -"B_T_Truck_01_fuel_F", -"B_T_Truck_01_medical_F", -"B_T_Truck_01_mover_F", -"B_T_Truck_01_Repair_F", -"B_T_Truck_01_transport_F", -"B_Truck_01_ammo_F", -"B_Truck_01_box_F", -"B_Truck_01_covered_F", -"B_Truck_01_fuel_F", -"B_Truck_01_medical_F", -"B_Truck_01_mover_F", -"B_Truck_01_Repair_F", -"B_Truck_01_transport_F", -"B_UGV_01_F", -"B_UGV_01_rcws_F", -"BRDM2_HQ_Base", -"BRDM2_HQ_CHDKZ", -"BTR40_base_EP1", -"BTR40_MG_base_EP1", -"BTR40_MG_TK_GUE_EP1", -"BTR40_MG_TK_INS_EP1", -"BTR40_TK_GUE_EP1", -"BTR40_TK_INS_EP1", -"Bus", -"C_Hatchback_01_beigecustom_F", -"C_Hatchback_01_black_F", -"C_Hatchback_01_blue_F", -"C_Hatchback_01_bluecustom_F", -"C_Hatchback_01_dark_F", -"C_Hatchback_01_F", -"C_Hatchback_01_green_F", -"C_Hatchback_01_grey_F", -"C_Hatchback_01_sport_blue_F", -"C_Hatchback_01_sport_F", -"C_Hatchback_01_sport_green_F", -"C_Hatchback_01_sport_grey_F", -"C_Hatchback_01_sport_orange_F", -"C_Hatchback_01_sport_red_F", -"C_Hatchback_01_sport_white_F", -"C_Hatchback_01_white_F", -"C_Hatchback_01_yellow_F", -"C_Kart_01_black_F", -"C_Kart_01_Blu_F", -"C_Kart_01_F", -"C_Kart_01_F_Base", -"C_Kart_01_Fuel_F", -"C_Kart_01_green_F", -"C_Kart_01_orange_F", -"C_Kart_01_Red_F", -"C_Kart_01_Vrana_F", -"C_Kart_01_white_F", -"C_Kart_01_yellow_F", -"C_Offroad_01_blue_F", -"C_Offroad_01_bluecustom_F", -"C_Offroad_01_darkred_F", -"C_Offroad_01_F", -"C_Offroad_01_red_F", -"C_Offroad_01_repair_F", -"C_Offroad_01_sand_F", -"C_Offroad_01_white_F", -"C_Offroad_02_unarmed_black_F", -"C_Offroad_02_unarmed_blue_F", -"C_Offroad_02_unarmed_F", -"C_Offroad_02_unarmed_green_F", -"C_Offroad_02_unarmed_orange_F", -"C_Offroad_02_unarmed_red_F", -"C_Offroad_02_unarmed_white_F", -"C_Offroad_default_F", -"C_Offroad_luxe_F", -"C_Offroad_stripped_F", -"C_Quadbike_01_black_F", -"C_Quadbike_01_blue_F", -"C_Quadbike_01_F", -"C_Quadbike_01_red_F", -"C_Quadbike_01_white_F", -"C_SUV_01_F", -"C_Truck_02_box_F", -"C_Truck_02_covered_F", -"C_Truck_02_fuel_F", -"C_Truck_02_transport_F", -"C_Van_01_box_F", -"C_Van_01_box_red_F", -"C_Van_01_box_white_F", -"C_Van_01_fuel_F", -"C_Van_01_fuel_red_F", -"C_Van_01_fuel_red_v2_F", -"C_Van_01_fuel_white_F", -"C_Van_01_fuel_white_v2_F", -"C_Van_01_transport_F", -"C_Van_01_transport_red_F", -"C_Van_01_transport_white_F", -"Car", -"Car_F", -"Exile_Bike_QuadBike_Abstract", -"Exile_Bike_QuadBike_Black", -"Exile_Bike_QuadBike_Blue", -"Exile_Bike_QuadBike_Csat", -"Exile_Bike_QuadBike_Fia", -"Exile_Bike_QuadBike_Guerilla01", -"Exile_Bike_QuadBike_Guerilla02", -"Exile_Bike_QuadBike_Nato", -"Exile_Bike_QuadBike_Red", -"Exile_Bike_QuadBike_White", -"Exile_Car_BRDM2_HQ", -"Exile_Car_BRDM2_HQ_Abstract", -"Exile_Car_BTR40_Abstract", -"Exile_Car_BTR40_Camo", -"Exile_Car_BTR40_Green", -"Exile_Car_BTR40_MG_Abstract", -"Exile_Car_BTR40_MG_Camo", -"Exile_Car_BTR40_MG_Green", -"Exile_Car_Golf_Abstract", -"Exile_Car_Golf_Black", -"Exile_Car_Golf_Red", -"Exile_Car_Hatchback_Abstract", -"Exile_Car_Hatchback_Beige", -"Exile_Car_Hatchback_BeigeCustom", -"Exile_Car_Hatchback_Black", -"Exile_Car_Hatchback_Blue", -"Exile_Car_Hatchback_BlueCustom", -"Exile_Car_Hatchback_Dark", -"Exile_Car_Hatchback_Green", -"Exile_Car_Hatchback_Grey", -"Exile_Car_Hatchback_Rusty1", -"Exile_Car_Hatchback_Rusty2", -"Exile_Car_Hatchback_Rusty3", -"Exile_Car_Hatchback_Sport_Abstract", -"Exile_Car_Hatchback_Sport_Admin", -"Exile_Car_Hatchback_Sport_Beige", -"Exile_Car_Hatchback_Sport_Blue", -"Exile_Car_Hatchback_Sport_Green", -"Exile_Car_Hatchback_Sport_Orange", -"Exile_Car_Hatchback_Sport_Red", -"Exile_Car_Hatchback_Sport_White", -"Exile_Car_Hatchback_Yellow", -"Exile_Car_HEMMT", -"Exile_Car_HEMMT_Abstract", -"Exile_Car_HMMWV_M134_Abstract", -"Exile_Car_HMMWV_M134_Desert", -"Exile_Car_HMMWV_M134_Green", -"Exile_Car_HMMWV_M2_Abstract", -"Exile_Car_HMMWV_M2_Desert", -"Exile_Car_HMMWV_M2_Green", -"Exile_Car_HMMWV_MEV_Abstract", -"Exile_Car_HMMWV_MEV_Desert", -"Exile_Car_HMMWV_MEV_Green", -"Exile_Car_HMMWV_UNA_Abstract", -"Exile_Car_HMMWV_UNA_Desert", -"Exile_Car_HMMWV_UNA_Green", -"Exile_Car_Hunter", -"Exile_Car_Hunter_Abstract", -"Exile_Car_Ifrit", -"Exile_Car_Ifrit_Abstract", -"Exile_Car_Ikarus_Abstract", -"Exile_Car_Ikarus_Blue", -"Exile_Car_Ikarus_Party", -"Exile_Car_Ikarus_Red", -"Exile_Car_Kart_Abstract", -"Exile_Car_Kart_Black", -"Exile_Car_Kart_Blue", -"Exile_Car_Kart_BluKing", -"Exile_Car_Kart_Green", -"Exile_Car_Kart_Orange", -"Exile_Car_Kart_RedStone", -"Exile_Car_Kart_Vrana", -"Exile_Car_Kart_White", -"Exile_Car_Kart_Yellow", -"Exile_Car_Lada_Abstract", -"Exile_Car_Lada_Green", -"Exile_Car_Lada_Hipster", -"Exile_Car_Lada_Red", -"Exile_Car_Lada_Taxi", -"Exile_Car_Lada_White", -"Exile_Car_LandRover_Abstract", -"Exile_Car_LandRover_Ambulance_Abstract", -"Exile_Car_LandRover_Ambulance_Desert", -"Exile_Car_LandRover_Ambulance_Green", -"Exile_Car_LandRover_Ambulance_Sand", -"Exile_Car_LandRover_Desert", -"Exile_Car_LandRover_Green", -"Exile_Car_LandRover_Red", -"Exile_Car_LandRover_Sand", -"Exile_Car_LandRover_Urban", -"Exile_Car_MB4WD", -"Exile_Car_MB4WDOpen", -"Exile_Car_Octavius_Abstract", -"Exile_Car_Octavius_Black", -"Exile_Car_Octavius_White", -"Exile_Car_Offroad_Abstract", -"Exile_Car_Offroad_Armed_Abstract", -"Exile_Car_Offroad_Armed_Guerilla01", -"Exile_Car_Offroad_Armed_Guerilla02", -"Exile_Car_Offroad_Armed_Guerilla03", -"Exile_Car_Offroad_Armed_Guerilla04", -"Exile_Car_Offroad_Armed_Guerilla05", -"Exile_Car_Offroad_Armed_Guerilla06", -"Exile_Car_Offroad_Armed_Guerilla07", -"Exile_Car_Offroad_Armed_Guerilla08", -"Exile_Car_Offroad_Armed_Guerilla09", -"Exile_Car_Offroad_Armed_Guerilla10", -"Exile_Car_Offroad_Armed_Guerilla11", -"Exile_Car_Offroad_Armed_Guerilla12", -"Exile_Car_Offroad_Beige", -"Exile_Car_Offroad_Blue", -"Exile_Car_Offroad_BlueCustom", -"Exile_Car_Offroad_DarkRed", -"Exile_Car_Offroad_Guerilla01", -"Exile_Car_Offroad_Guerilla02", -"Exile_Car_Offroad_Guerilla03", -"Exile_Car_Offroad_Guerilla04", -"Exile_Car_Offroad_Guerilla05", -"Exile_Car_Offroad_Guerilla06", -"Exile_Car_Offroad_Guerilla07", -"Exile_Car_Offroad_Guerilla08", -"Exile_Car_Offroad_Guerilla09", -"Exile_Car_Offroad_Guerilla10", -"Exile_Car_Offroad_Guerilla11", -"Exile_Car_Offroad_Guerilla12", -"Exile_Car_Offroad_Red", -"Exile_Car_Offroad_Repair_Abstract", -"Exile_Car_Offroad_Repair_Beige", -"Exile_Car_Offroad_Repair_Blue", -"Exile_Car_Offroad_Repair_BlueCustom", -"Exile_Car_Offroad_Repair_Civillian", -"Exile_Car_Offroad_Repair_DarkRed", -"Exile_Car_Offroad_Repair_Guerilla01", -"Exile_Car_Offroad_Repair_Guerilla02", -"Exile_Car_Offroad_Repair_Guerilla03", -"Exile_Car_Offroad_Repair_Guerilla04", -"Exile_Car_Offroad_Repair_Guerilla05", -"Exile_Car_Offroad_Repair_Guerilla06", -"Exile_Car_Offroad_Repair_Guerilla07", -"Exile_Car_Offroad_Repair_Guerilla08", -"Exile_Car_Offroad_Repair_Guerilla09", -"Exile_Car_Offroad_Repair_Guerilla10", -"Exile_Car_Offroad_Repair_Guerilla11", -"Exile_Car_Offroad_Repair_Guerilla12", -"Exile_Car_Offroad_Repair_Red", -"Exile_Car_Offroad_Repair_White", -"Exile_Car_Offroad_Rusty1", -"Exile_Car_Offroad_Rusty2", -"Exile_Car_Offroad_Rusty3", -"Exile_Car_Offroad_White", -"Exile_Car_OldTractor_Abstract", -"Exile_Car_OldTractor_Red", -"Exile_Car_ProwlerLight", -"Exile_Car_ProwlerUnarmed", -"Exile_Car_QilinUnarmed", -"Exile_Car_Strider", -"Exile_Car_Strider_Abstract", -"Exile_Car_SUV_Abstract", -"Exile_Car_SUV_Armed_Abstract", -"Exile_Car_SUV_Armed_Black", -"Exile_Car_SUV_Black", -"Exile_Car_SUV_Grey", -"Exile_Car_SUV_Orange", -"Exile_Car_SUV_Red", -"Exile_Car_SUV_Rusty1", -"Exile_Car_SUV_Rusty2", -"Exile_Car_SUV_Rusty3", -"Exile_Car_SUVXL_Abstract", -"Exile_Car_SUVXL_Black", -"Exile_Car_Tempest", -"Exile_Car_Tempest_Abstract", -"Exile_Car_TowTractor_Abstract", -"Exile_Car_TowTractor_White", -"Exile_Car_Tractor_Abstract", -"Exile_Car_Tractor_Red", -"Exile_Car_UAZ_Abstract", -"Exile_Car_UAZ_Green", -"Exile_Car_UAZ_Open_Abstract", -"Exile_Car_UAZ_Open_Green", -"Exile_Car_Ural_Covered_Abstract", -"Exile_Car_Ural_Covered_Blue", -"Exile_Car_Ural_Covered_Military", -"Exile_Car_Ural_Covered_Worker", -"Exile_Car_Ural_Covered_Yellow", -"Exile_Car_Ural_Open_Abstract", -"Exile_Car_Ural_Open_Blue", -"Exile_Car_Ural_Open_Military", -"Exile_Car_Ural_Open_Worker", -"Exile_Car_Ural_Open_Yellow", -"Exile_Car_V3S_Covered", -"Exile_Car_V3S_Covered_Abstract", -"Exile_Car_V3S_Open", -"Exile_Car_V3S_Open_Abstract", -"Exile_Car_Van_Abstract", -"Exile_Car_Van_Black", -"Exile_Car_Van_Box_Abstract", -"Exile_Car_Van_Box_Black", -"Exile_Car_Van_Box_Guerilla01", -"Exile_Car_Van_Box_Guerilla02", -"Exile_Car_Van_Box_Guerilla03", -"Exile_Car_Van_Box_Guerilla04", -"Exile_Car_Van_Box_Guerilla05", -"Exile_Car_Van_Box_Guerilla06", -"Exile_Car_Van_Box_Guerilla07", -"Exile_Car_Van_Box_Guerilla08", -"Exile_Car_Van_Box_Red", -"Exile_Car_Van_Box_White", -"Exile_Car_Van_Fuel_Abstract", -"Exile_Car_Van_Fuel_Black", -"Exile_Car_Van_Fuel_Guerilla01", -"Exile_Car_Van_Fuel_Guerilla02", -"Exile_Car_Van_Fuel_Guerilla03", -"Exile_Car_Van_Fuel_Red", -"Exile_Car_Van_Fuel_White", -"Exile_Car_Van_Guerilla01", -"Exile_Car_Van_Guerilla02", -"Exile_Car_Van_Guerilla03", -"Exile_Car_Van_Guerilla04", -"Exile_Car_Van_Guerilla05", -"Exile_Car_Van_Guerilla06", -"Exile_Car_Van_Guerilla07", -"Exile_Car_Van_Guerilla08", -"Exile_Car_Van_Red", -"Exile_Car_Van_White", -"Exile_Car_Volha_Abstract", -"Exile_Car_Volha_Black", -"Exile_Car_Volha_Blue", -"Exile_Car_Volha_White", -"Exile_Car_Zamak", -"Exile_Car_Zamak_Abstract", -"Golf_Base", -"Golf_Civ_Base", -"Golf_Civ_Black", -"Golf_Civ_pink", -"Hatchback_01_base_F", -"Hatchback_01_sport_base_F", -"HMMWV_Base", -"HMMWV_M134", -"HMMWV_M134_des", -"HMMWV_M2", -"HMMWV_M2_des", -"HMMWV_M2_GPK_1", -"HMMWV_M2_GPK_Base", -"HMMWV_MEV", -"HMMWV_MEV_des", -"HMMWV_UNA", -"HMMWV_UNA_des", -"I_APC_Wheeled_03_base_F", -"I_APC_Wheeled_03_cannon_F", -"I_C_Offroad_02_unarmed_brown_F", -"I_C_Offroad_02_unarmed_F", -"I_C_Offroad_02_unarmed_olive_F", -"I_C_Van_01_transport_brown_F", -"I_C_Van_01_transport_F", -"I_C_Van_01_transport_olive_F", -"I_G_Offroad_01_armed_F", -"I_G_Offroad_01_F", -"I_G_Offroad_01_repair_F", -"I_G_Quadbike_01_F", -"I_G_Van_01_fuel_F", -"I_G_Van_01_transport_F", -"I_MRAP_03_F", -"I_MRAP_03_gmg_F", -"I_MRAP_03_hmg_F", -"I_Quadbike_01_F", -"I_Truck_02_ammo_F", -"I_Truck_02_box_F", -"I_Truck_02_covered_F", -"I_Truck_02_fuel_F", -"I_Truck_02_medical_F", -"I_Truck_02_transport_F", -"I_UGV_01_F", -"I_UGV_01_rcws_F", -"Ikarus_Base", -"Ikarus_Civ_02", -"Ikarus_Govnodav_01", -"Ikarus_Govnodav_02", -"Kart_01_Base_F", -"Lada_Base", -"Lada_Civ_01", -"Lada_Civ_02", -"Lada_Civ_03", -"Lada_Civ_04", -"Lada_Civ_Base", -"Lada_Militia", -"Landrover_civ", -"Landrover_Civ_01", -"Landrover_Civ_01_Urban1", -"Landrover_Civ_02", -"Landrover_Civ_03", -"Landrover_Des", -"LR_Ambulance_01", -"LR_Ambulance_02", -"LR_Ambulance_Base", -"LR_MG_Base", -"LSV_01_armed_base_F", -"LSV_01_base_F", -"LSV_01_light_base_F", -"LSV_01_unarmed_base_F", -"LSV_02_armed_base_F", -"LSV_02_base_F", -"LSV_02_unarmed_base_F", -"MRAP_01_base_F", -"MRAP_01_gmg_base_F", -"MRAP_01_hmg_base_F", -"MRAP_02_base_F", -"MRAP_02_gmg_base_F", -"MRAP_02_hmg_base_F", -"MRAP_03_base_F", -"MRAP_03_gmg_base_F", -"MRAP_03_hmg_base_F", -"O_APC_Wheeled_02_base_F", -"O_APC_Wheeled_02_rcws_F", -"O_G_Offroad_01_armed_F", -"O_G_Offroad_01_F", -"O_G_Offroad_01_repair_F", -"O_G_Quadbike_01_F", -"O_G_Van_01_fuel_F", -"O_G_Van_01_transport_F", -"O_LSV_02_armed_arid_F", -"O_LSV_02_armed_black_F", -"O_LSV_02_armed_F", -"O_LSV_02_armed_ghex_F", -"O_LSV_02_armed_viper_F", -"O_LSV_02_unarmed_arid_F", -"O_LSV_02_unarmed_black_F", -"O_LSV_02_unarmed_F", -"O_LSV_02_unarmed_ghex_F", -"O_LSV_02_unarmed_viper_F", -"O_MRAP_02_F", -"O_MRAP_02_gmg_F", -"O_MRAP_02_hmg_F", -"O_Quadbike_01_F", -"O_T_APC_Wheeled_02_rcws_ghex_F", -"O_T_LSV_02_armed_arid_F", -"O_T_LSV_02_armed_black_F", -"O_T_LSV_02_armed_F", -"O_T_LSV_02_armed_ghex_F", -"O_T_LSV_02_armed_viper_F", -"O_T_LSV_02_unarmed_arid_F", -"O_T_LSV_02_unarmed_black_F", -"O_T_LSV_02_unarmed_F", -"O_T_LSV_02_unarmed_ghex_F", -"O_T_LSV_02_unarmed_viper_F", -"O_T_MRAP_02_ghex_F", -"O_T_MRAP_02_gmg_ghex_F", -"O_T_MRAP_02_hmg_ghex_F", -"O_T_Quadbike_01_ghex_F", -"O_T_Truck_03_ammo_ghex_F", -"O_T_Truck_03_covered_ghex_F", -"O_T_Truck_03_device_ghex_F", -"O_T_Truck_03_fuel_ghex_F", -"O_T_Truck_03_medical_ghex_F", -"O_T_Truck_03_repair_ghex_F", -"O_T_Truck_03_transport_ghex_F", -"O_T_UGV_01_ghex_F", -"O_T_UGV_01_rcws_ghex_F", -"O_Truck_02_Ammo_F", -"O_Truck_02_box_F", -"O_Truck_02_covered_F", -"O_Truck_02_fuel_F", -"O_Truck_02_medical_F", -"O_Truck_02_transport_F", -"O_Truck_03_ammo_F", -"O_Truck_03_covered_F", -"O_Truck_03_device_F", -"O_Truck_03_fuel_F", -"O_Truck_03_medical_F", -"O_Truck_03_repair_F", -"O_Truck_03_transport_F", -"O_UGV_01_F", -"O_UGV_01_rcws_F", -"Octavia_Base", -"Octavia_Civ_01", -"Octavia_Civ_03", -"Octavia_Civ_04", -"Octavia_Civ_05", -"Offroad_01_armed_base_F", -"Offroad_01_base_F", -"Offroad_01_civil_base_F", -"Offroad_01_military_base_F", -"Offroad_01_repair_base_F", -"Offroad_01_repair_military_base_F", -"Offroad_01_unarmed_base_F", -"Offroad_02_base_F", -"Offroad_02_unarmed_base_F", -"PaperCar", -"Quadbike_01_base_F", -"SUV_01_base_black_F", -"SUV_01_base_F", -"SUV_01_base_grey_F", -"SUV_01_base_orange_F", -"SUV_01_base_red_F", -"SUV_armored_Base", -"SUV_Base", -"SUV_civ_01", -"SUV_civ_02", -"SUV_civ_03", -"SUV_civ_04", -"SUV_civ_05", -"SUV_civ_06", -"SUV_civ_07", -"SUV_civ_08", -"TowingTractor", -"Tractor", -"Tractor_Base", -"TractorOld", -"Truck", -"Truck_01_base_F", -"Truck_02_Ammo_base_F", -"Truck_02_base_F", -"Truck_02_box_base_F", -"Truck_02_fuel_base_F", -"Truck_02_medical_base_F", -"Truck_02_transport_base_F", -"Truck_03_base_F", -"Truck_F", -"UAZ_AGS30_Base", -"UAZ_Armed_Base", -"UAZ_Base", -"UAZ_MG_Base", -"UAZ_Open_Base", -"UGV_01_base_F", -"UGV_01_rcws_base_F", -"Ural_Base", -"Ural_Civ_01", -"Ural_Civ_02", -"Ural_Civ_03", -"Ural_Civ_Base", -"Ural_Open_Base", -"Ural_Open_Civ_01", -"Ural_Open_Civ_02", -"Ural_Open_Civ_03", -"Ural_Open_RU", -"Ural_RU", -"V3S_base", -"V3S_Base_EP1", -"Van_01_base_F", -"Van_01_box_base_F", -"Van_01_fuel_base_F", -"Van_01_transport_base_F", -"volha_Base", -"volha_Civ_01", -"volha_Civ_02", -"volha_Civ_03", -"Wheeled_APC", -"Wheeled_APC_F", -"I_C_Heli_Light_01_civil_F", -"B_CTRG_Heli_Transport_01_sand_F", -"B_CTRG_Heli_Transport_01_tropic_F", -"UAV_01_base_F", -"B_UAV_01_F", -"O_UAV_01_F", -"I_UAV_01_F", -"UAV_02_base_F", -"UAV_02_CAS_base_F", -"B_UAV_02_F", -"O_UAV_02_F", -"I_UAV_02_F", -"B_UAV_02_CAS_F", -"O_UAV_02_CAS_F", -"I_UAV_02_CAS_F", -"UAV_02_dynamicLoadout_base_F", -"B_UAV_02_dynamicLoadout_F", -"O_UAV_02_dynamicLoadout_F", -"I_UAV_02_dynamicLoadout_F", -"Heli_Transport_03_base_F", -"B_Heli_Transport_03_F", -"Heli_Transport_03_unarmed_base_F", -"B_Heli_Transport_03_unarmed_F", -"B_Heli_Transport_03_black_F", -"B_Heli_Transport_03_unarmed_green_F", -"B_Heli_Transport_03_base_F", -"B_Heli_Transport_03_unarmed_base_F", -"Heli_Transport_04_base_F", -"O_Heli_Transport_04_F", -"O_Heli_Transport_04_ammo_F", -"O_Heli_Transport_04_bench_F", -"O_Heli_Transport_04_box_F", -"O_Heli_Transport_04_covered_F", -"O_Heli_Transport_04_fuel_F", -"O_Heli_Transport_04_medevac_F", -"O_Heli_Transport_04_repair_F", -"O_Heli_Transport_04_black_F", -"O_Heli_Transport_04_ammo_black_F", -"O_Heli_Transport_04_bench_black_F", -"O_Heli_Transport_04_box_black_F", -"O_Heli_Transport_04_covered_black_F", -"O_Heli_Transport_04_fuel_black_F", -"O_Heli_Transport_04_medevac_black_F", -"O_Heli_Transport_04_repair_black_F", -"Helicopter_Base_F", -"Helicopter_Base_H", -"Heli_Light_01_base_F", -"Heli_Light_01_unarmed_base_F", -"Heli_Light_01_civil_base_F", -"Heli_Light_01_armed_base_F", -"Heli_Light_01_dynamicLoadout_base_F", -"B_Heli_Light_01_F", -"B_Heli_Light_01_armed_F", -"B_Heli_Light_01_dynamicLoadout_F", -"C_Heli_Light_01_civil_F", -"C_Heli_light_01_blue_F", -"C_Heli_light_01_red_F", -"C_Heli_light_01_ion_F", -"C_Heli_light_01_blueLine_F", -"C_Heli_light_01_digital_F", -"C_Heli_light_01_elliptical_F", -"C_Heli_light_01_furious_F", -"C_Heli_light_01_graywatcher_F", -"C_Heli_light_01_jeans_F", -"C_Heli_light_01_light_F", -"C_Heli_light_01_shadow_F", -"C_Heli_light_01_sheriff_F", -"C_Heli_light_01_speedy_F", -"C_Heli_light_01_sunset_F", -"C_Heli_light_01_vrana_F", -"C_Heli_light_01_wasp_F", -"C_Heli_light_01_wave_F", -"C_Heli_light_01_stripped_F", -"C_Heli_light_01_luxe_F", -"B_Heli_Light_01_stripped_F", -"Heli_Light_02_base_F", -"Heli_Light_02_unarmed_base_F", -"Heli_Light_02_dynamicLoadout_base_F", -"O_Heli_Light_02_dynamicLoadout_F", -"O_Heli_Light_02_F", -"O_Heli_Light_02_unarmed_F", -"O_Heli_Light_02_v2_F", -"ParachuteWest", -"ParachuteEast", -"ParachuteG", -"Parachute", -"NonSteerable_Parachute_F", -"Paraglide", -"Steerable_Parachute_F", -"Heli_Attack_01_base_F", -"Heli_Attack_01_dynamicLoadout_base_F", -"B_Heli_Attack_01_F", -"B_Heli_Attack_01_dynamicLoadout_F", -"Heli_Attack_02_base_F", -"Heli_Attack_02_dynamicLoadout_base_F", -"O_Heli_Attack_02_F", -"O_Heli_Attack_02_black_F", -"O_Heli_Attack_02_dynamicLoadout_F", -"O_Heli_Attack_02_dynamicLoadout_black_F", -"Heli_Transport_01_base_F", -"B_Heli_Transport_01_F", -"B_Heli_Transport_01_camo_F", -"Heli_Transport_02_base_F", -"I_Heli_Transport_02_F", -"Parachute_02_base_F", -"B_Parachute_02_F", -"O_Parachute_02_F", -"I_Parachute_02_F", -"Plane_Fighter_03_base_F", -"Plane_Fighter_03_dynamicLoadout_base_F", -"I_Plane_Fighter_03_CAS_F", -"I_Plane_Fighter_03_AA_F", -"I_Plane_Fighter_03_dynamicLoadout_F", -"Heli_light_03_base_F", -"Heli_light_03_dynamicLoadout_base_F", -"Heli_light_03_unarmed_base_F", -"I_Heli_light_03_F", -"I_Heli_light_03_dynamicLoadout_F", -"I_Heli_light_03_unarmed_F", -"I_Heli_light_03_base_F", -"I_Heli_light_03_unarmed_base_F" -]; diff --git a/testConfig.Altis/OldVersions/vehiclesConfig.sqf b/testConfig.Altis/OldVersions/vehiclesConfig.sqf deleted file mode 100644 index 3934220..0000000 --- a/testConfig.Altis/OldVersions/vehiclesConfig.sqf +++ /dev/null @@ -1,55 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_vehiclesBase = []; -#include "vehiclesBase.sqf" -_veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; -//_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; -_index = 0; -_cars = []; -_boats = []; -_air = []; -_exile = 0; -_clipboard = ""; -{ - if (_x isKindOf "Car" && !(_x in _vehiclesBase)) then - { - _cars pushback _x; - //diag_log format["%1",_x]; - //_clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; - if (_x isKindOf "Air" && !(_x in _vehiclesBase)) then - { - _cars pushback _x; - //diag_log format["%1",_x]; - //_clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; - if (_x isKindOf "Boat" && !(_x in _vehiclesBase)) then - { - _air pushback _x; - //diag_log format["%1",_x]; - //_clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; -}forEach _veh; - -_clipboard = _clipboard + format["// Cars%1%2",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _cars; -_clipboard = _clipboard + format["%1// Boats%2%3",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _boats; -_clipboard = _clipboard + format["%1// Air%2%3",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _Air; -copyToClipboard _clipboard; diff --git a/testConfig.Altis/OldVersions/vehiclesPriceList.sqf b/testConfig.Altis/OldVersions/vehiclesPriceList.sqf deleted file mode 100644 index 89f7964..0000000 --- a/testConfig.Altis/OldVersions/vehiclesPriceList.sqf +++ /dev/null @@ -1,74 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_vehiclesBase = []; -#include "vehiclesBase.sqf" -_veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; -_index = 0; -_cars = []; -_boats = []; -_air = []; -_exile = 0; -_clipboard = ""; -{ - if (_x isKindOf "Car" && !(_x in _vehiclesBase)) then - { - _cars pushback _x; - //diag_log format["%1",_x]; - //_clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; - if (_x isKindOf "Air" && !(_x in _vehiclesBase)) then - { - _cars pushback _x; - //diag_log format["%1",_x]; - //_clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; - if (_x isKindOf "Boat" && !(_x in _vehiclesBase)) then - { - _air pushback _x; - //diag_log format["%1",_x]; - //_clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; -}forEach _veh; -_clipboard = _clipboard + format["// Cars%1%2",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 50; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 50; };%2",_x,endl]; - }; -}forEach _cars; -_clipboard = _clipboard + format["%1// Boats%2%3",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 50; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 50000; };%2",_x,endl]; - }; -}forEach _boats; -_clipboard = _clipboard + format["%1// Air%2%3",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 50000; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 50000; };%2",_x,endl]; - }; -}forEach _Air; -copyToClipboard _clipboard; -systemChat "Vehicles Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/vestsConfig.sqf b/testConfig.Altis/OldVersions/vestsConfig.sqf deleted file mode 100644 index 46ecb3d..0000000 --- a/testConfig.Altis/OldVersions/vestsConfig.sqf +++ /dev/null @@ -1,37 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseVests = []; -#include "baseVests.sqf" -_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; -//_veh sort true; -systemChat format[" _veh contains %1 entries",count _veh]; -_index = 0; -_cars = []; -_exile = 0; -_clipboard = ""; -{ - _isKindOf = (_x isKindOF ["Vest_Camo_Base", configFile >> "CfgWeapons"]) or (_x isKindOF ["Vest_NoCamo_Base", configFile >> "CfgWeapons"]); - if (_isKindOf and !(_x in _baseVests)) then - { - _cars pushback _x; - diag_log format["%1",_x]; - _index = _index + 1; - _left = [_x,5] call KRON_StrLeft; - if (_left in ["Exile"]) then { - _exile = _exile + 1; - systemChat format["%1",_x]; - - }; - _clipboard = _clipboard + format['"%1",%2',_x,endl]; - }; -}forEach _veh; - -copyToClipboard _clipboard; diff --git a/testConfig.Altis/OldVersions/vestsPriceList.sqf b/testConfig.Altis/OldVersions/vestsPriceList.sqf deleted file mode 100644 index b31e761..0000000 --- a/testConfig.Altis/OldVersions/vestsPriceList.sqf +++ /dev/null @@ -1,35 +0,0 @@ -/* - Class Name Extraction Tool - By GhostriderDbD - For Arma 3 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseVests = []; -#include "baseVests.sqf" -_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; -_veh sort true; -_cars = []; -_clipboard = ""; -{ - _isKindOf = (_x isKindOF ["Vest_Camo_Base", configFile >> "CfgWeapons"]) or (_x isKindOF ["Vest_NoCamo_Base", configFile >> "CfgWeapons"]); - if (_isKindOf and !(_x in _baseVests)) then - { - _cars pushback _x; - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 50; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 50; };%2",_x,endl]; - }; - }; -}forEach _veh; - - -copyToClipboard _clipboard; -systemChat "Vest Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/weaponsConfig.sqf b/testConfig.Altis/OldVersions/weaponsConfig.sqf deleted file mode 100644 index 45bcdd5..0000000 --- a/testConfig.Altis/OldVersions/weaponsConfig.sqf +++ /dev/null @@ -1,181 +0,0 @@ -/* - Original script by KiloSwiss - https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ - Modified and enhanced by GhostriderDbD - 7/20/17 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_knownWeapons = []; - -_allWeaponRoots = ["Pistol","Rifle","Launcher"]; -_allWeaponTypes = ["AssaultRifle","MachineGun","SniperRifle","Shotgun","Rifle","Pistol","SubmachineGun","Handgun","MissileLauncher","RocketLauncher","Throw","GrenadeCore"]; -_addedBaseNames = []; -_allBannedWeapons = []; -_wpnAR = []; //Assault Rifles -_wpnARG = []; //Assault Rifles with GL -_wpnLMG = []; //Light Machine Guns -_wpnSMG = []; //Sub Machine Guns -_wpnDMR = []; //Designated Marksman Rifles -_wpnLauncher = []; -_wpnSniper = []; //Sniper rifles -_wpnHandGun = []; //HandGuns/Pistols -_wpnShotGun = []; //Shotguns -_wpnThrow = []; // throwables -_wpnUnknown = []; //Misc - -_wpnMagazines = []; -_wpnOptics = []; -_wpnPointers = []; -_wpnMuzzles = []; - -_aBaseNames = []; -_wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; -_wpList sort true; -{ - _item = _x; - _isWeap = false; - _isKindOf = false; - { - _isKindOf = (_item isKindOF [_x, configFile >> "CfgWeapons"]); - if (_isKindOf) exitWith {}; - } forEach _allWeaponRoots; - if (_isKindOf) then - { - //if (getnumber (configFile >> "cfgWeapons" >> _x >> "scope") == 2) then { - _itemType = _x call bis_fnc_itemType; - _itemCategory = _itemType select 1; - diag_log format["pullWepClassNames:: _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory]; - if (((_itemType select 0) == "Weapon") && ((_itemType select 1) in _allWeaponTypes)) then { - _baseName = _x call BIS_fnc_baseWeapon; - diag_log format["pullWepClassNames:: Processing for _baseName %3 || _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory, _baseName]; - if (!(_baseName in _addedBaseNames) && !(_baseName in _allBannedWeapons)) then { - _addedBaseNames pushBack _baseName; - - switch(_itemCategory)do{ - case "AssaultRifle" :{ - if(count getArray(configfile >> "cfgWeapons" >> _baseName >> "muzzles") > 1)then[{_wpnARG pushBack _baseName},{_wpnAR pushBack _baseName}]; - }; - case "MachineGun" :{_wpnLMG pushBack _baseName}; - case "SubmachineGun" :{_wpnSMG pushBack _baseName}; - case "Rifle" :{_wpnDMR pushBack _baseName}; - case "SniperRifle" :{_wpnSniper pushBack _baseName}; - case "Shotgun" :{_wpnShotGun pushBack _baseName}; - case "Handgun" :{_wpnHandGun pushBack _baseName}; - case "MissileLauncher" :{_wpnLauncher pushBack _baseName}; - case "RocketLauncher" :{_wpnLauncher pushBack _baseName}; - case "DMR" : {_wpnDMR pushBack _baseName}; - case "Throw" : {_wpnThrow pushBack _baseName}; - default{_wpnUnknown pushBack _baseName}; - }; - - // Get options for magazines and attachments for that weapon and store these if they are not duplicates for items already listed. - _ammoChoices = getArray (configFile >> "CfgWeapons" >> _baseName >> "magazines"); - { - if !(_x in _wpnMagazines) then {_wpnMagazines pushback _x}; - }forEach _ammoChoices; - _optics = getArray (configfile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems"); - { - if !(_x in _wpnOptics) then {_wpnOptics pushback _x}; - }forEach _optics; - _pointers = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems"); - { - if !(_x in _wpnPointers) then {_wpnPointers pushback _x}; - }forEach _pointers; - _muzzles = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"); - { - if !(_x in _wpnMuzzles) then {_wpnMuzzles pushback _x}; - }forEach _muzzles; - _underbarrel = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "UnderBarrelSlot" >> "compatibleItems"); - { - if !(_x in _wpnUnderbarrel) then {_wpnUnderbarrel pushback _x}; - }forEach _underbarrel; - }; - }; - }; -} foreach _wpList; - -_clipBoard = format["%2%3// // Assault Rifles %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl]; -}forEach _wpnAR; - -_clipBoard = _clipBoard + format["%2%3// Assault Rifles with GL %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnARG; - -_clipBoard = _clipBoard + format["%2%3// LMGs %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnLMG; - -_clipBoard = _clipBoard + format["%2%3// SMGs %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnSMG; - -_clipBoard = _clipBoard + format["%2%3// Snipers %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnSniper; - -_clipBoard = _clipBoard + format["%2%3// DMRs %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnDMR; - -_clipBoard = _clipBoard + format["%2%3// Launchers %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnLauncher; - -_clipBoard = _clipBoard + format["%2%3// Handguns %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnHandGun; - -_clipBoard = _clipBoard + format["%2%3// Shotguns %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnShotGun; - -_clipBoard = _clipBoard + format["%2%3// Throwables %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnThrow; - -_clipBoard = _clipBoard + format["%2%3// Unknown %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnUnknown; - -_clipBoard = _clipBoard + format["%2%3// Magazines %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnMagazines; - -_clipBoard = _clipBoard + format["%2%3// Optics %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnOptics; - -_clipBoard = _clipBoard + format["%2%3// Muzzles %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnMuzzles; - -_clipBoard = _clipBoard + format["%2%3// Pointers %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnPointers; - -_clipBoard = _clipBoard + format["%2%3// Underbarrel %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnUnderbarrel; - -copyToClipboard _clipBoard; diff --git a/testConfig.Altis/OldVersions/weaponsPriceList.sqf b/testConfig.Altis/OldVersions/weaponsPriceList.sqf deleted file mode 100644 index be0869d..0000000 --- a/testConfig.Altis/OldVersions/weaponsPriceList.sqf +++ /dev/null @@ -1,295 +0,0 @@ -/* - Original script by KiloSwiss - https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ - Modified and enhanced by GhostriderDbD - 7/20/17 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_knownWeapons = []; - -_allWeaponRoots = ["Pistol","Rifle","Launcher"]; -_allWeaponTypes = ["AssaultRifle","MachineGun","SniperRifle","Shotgun","Rifle","Pistol","SubmachineGun","Handgun","MissileLauncher","RocketLauncher","Throw","GrenadeCore"]; -_addedBaseNames = []; -_allBannedWeapons = []; -_wpnAR = []; //Assault Rifles -_wpnARG = []; //Assault Rifles with GL -_wpnLMG = []; //Light Machine Guns -_wpnSMG = []; //Sub Machine Guns -_wpnDMR = []; //Designated Marksman Rifles -_wpnLauncher = []; -_wpnSniper = []; //Sniper rifles -_wpnHandGun = []; //HandGuns/Pistols -_wpnShotGun = []; //Shotguns -_wpnThrow = []; // throwables -_wpnUnknown = []; //Misc - -_wpnMagazines = []; -_wpnOptics = []; -_wpnPointers = []; -_wpnMuzzles = []; - -_aBaseNames = []; -_wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; -_wpList sort true; -{ - _item = _x; - _isWeap = false; - _isKindOf = false; - { - _isKindOf = (_item isKindOF [_x, configFile >> "CfgWeapons"]); - if (_isKindOf) exitWith {}; - } forEach _allWeaponRoots; - if (_isKindOf) then - { - //if (getnumber (configFile >> "cfgWeapons" >> _x >> "scope") == 2) then { - _itemType = _x call bis_fnc_itemType; - _itemCategory = _itemType select 1; - diag_log format["pullWepClassNames:: _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory]; - if (((_itemType select 0) == "Weapon") && ((_itemType select 1) in _allWeaponTypes)) then { - _baseName = _x call BIS_fnc_baseWeapon; - diag_log format["pullWepClassNames:: Processing for _baseName %3 || _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory, _baseName]; - if (!(_baseName in _addedBaseNames) && !(_baseName in _allBannedWeapons)) then { - _addedBaseNames pushBack _baseName; - - switch(_itemCategory)do{ - case "AssaultRifle" :{ - if(count getArray(configfile >> "cfgWeapons" >> _baseName >> "muzzles") > 1)then[{_wpnARG pushBack _baseName},{_wpnAR pushBack _baseName}]; - }; - case "MachineGun" :{_wpnLMG pushBack _baseName}; - case "SubmachineGun" :{_wpnSMG pushBack _baseName}; - case "Rifle" :{_wpnDMR pushBack _baseName}; - case "SniperRifle" :{_wpnSniper pushBack _baseName}; - case "Shotgun" :{_wpnShotGun pushBack _baseName}; - case "Handgun" :{_wpnHandGun pushBack _baseName}; - case "MissileLauncher" :{_wpnLauncher pushBack _baseName}; - case "RocketLauncher" :{_wpnLauncher pushBack _baseName}; - case "DMR" : {_wpnDMR pushBack _baseName}; - case "Throw" : {_wpnThrow pushBack _baseName}; - default{_wpnUnknown pushBack _baseName}; - }; - - // Get options for magazines and attachments for that weapon and store these if they are not duplicates for items already listed. - _ammoChoices = getArray (configFile >> "CfgWeapons" >> _baseName >> "magazines"); - { - if !(_x in _wpnMagazines) then {_wpnMagazines pushback _x}; - }forEach _ammoChoices; - _optics = getArray (configfile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems"); - { - if !(_x in _wpnOptics) then {_wpnOptics pushback _x}; - }forEach _optics; - _pointers = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems"); - { - if !(_x in _wpnPointers) then {_wpnPointers pushback _x}; - }forEach _pointers; - _muzzles = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"); - { - if !(_x in _wpnMuzzles) then {_wpnMuzzles pushback _x}; - }forEach _muzzles; - _underbarrel = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "UnderBarrelSlot" >> "compatibleItems"); - { - if !(_x in _wpnUnderbarrel) then {_wpnUnderbarrel pushback _x}; - }forEach _underbarrel; - }; - }; - //}; - }; -} foreach _wpList; - -_clipBoard = format["%2%3// // Assault Rifles %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnAR; - -_clipBoard = _clipBoard + format["%2%3// Assault Rifles with GL %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnARG; - -_clipBoard = _clipBoard + format["%2%3// LMGs %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnLMG; - -_clipBoard = _clipBoard + format["%2%3// SMGs %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnSMG; - -_clipBoard = _clipBoard + format["%2%3// Snipers %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnSniper; - -_clipBoard = _clipBoard + format["%2%3// DMRs %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnDMR; - -_clipBoard = _clipBoard + format["%2%3// Launchers %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnLauncher; - -_clipBoard = _clipBoard + format["%2%3// Handguns %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnHandGun; - -_clipBoard = _clipBoard + format["%2%3// Shotguns %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnShotGun; - -_clipBoard = _clipBoard + format["%2%3// Throwables %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnThrow; - -_clipBoard = _clipBoard + format["%2%3// Unknown %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnUnknown; - -_clipBoard = _clipBoard + format["%2%3// Magazines %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnMagazines; - -_clipBoard = _clipBoard + format["%2%3// Optics %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnOptics; - -_clipBoard = _clipBoard + format["%2%3// Muzzles %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnMuzzles; - -_clipBoard = _clipBoard + format["%2%3// Pointers %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnPointers; - -_clipBoard = _clipBoard + format["%2%3// Underbarrel %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnUnderbarrel; - -copyToClipboard _clipBoard; -systemChat "Weapon Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/wearablesConfig.sqf b/testConfig.Altis/OldVersions/wearablesConfig.sqf deleted file mode 100644 index 7d2aba4..0000000 --- a/testConfig.Altis/OldVersions/wearablesConfig.sqf +++ /dev/null @@ -1,120 +0,0 @@ -/* - some of the algorithm/script is based on a script by KiloSwiss - https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ - Modified and enhanced by GhostriderDbD - 5/22/17 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseWearables = []; -#include "baseWearables.sqf" -_allWearableRoots = ["Pistol","Rifle","Launcher"]; -_allWearableTypes = ["AssaultRifle","MachineGun","SniperRifle","Shotgun","Rifle","Pistol","SubmachineGun","Handgun","MissileLauncher","RocketLauncher","Throw","GrenadeCore"]; -_addedBaseNames = []; -_allBannedWearables = []; -_uniforms = []; -_headgear = []; -_glasses = []; -_masks = []; -_backpacks = []; -_vests = []; -_goggles = []; -_binocs = []; -_NVG = []; -//_wpnThrow = []; // throwables -//_wpnUnknown = []; //Misc - -_wpList = (configfile >> "cfgGlasses") call BIS_fnc_getCfgSubClasses; -{ - if ( !(_x in _baseWearables) && !(_x in _addedBaseNames) ) then - { - _addedBaseNames pushBack _x; - _glasses pushBack _x; - }; -}forEach _wpList; - -_aBaseNames = []; -_wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; -//_wpList sort true; -{ - if ( !(_x in _baseWearables) && !(_x in _addedBaseNames) ) then - { - _addedBaseNames pushBack _x; - // Uniforms - if (_x isKindOF ["Uniform_Base", configFile >> "CfgWeapons"]) then {_uniforms pushBack _x}; - // Headgear / Masks - if ( (_x isKindOF ["HelmetBase", configFile >> "CfgWeapons"]) or (_x isKindOF ["H_HelmetB", configFile >> "CfgWeapons"]) ) then {_headgear pushBack _x}; - // Goggles - if (_x isKindOF ["GoggleItem", configFile >> "CfgWeapons"]) then {_goggles pushBack _x}; - // NVG - if (_x isKindOF ["NVGoggles", configFile >> "CfgWeapons"]) then {_NVG pushBack _x}; - // Masks - - // Vests - if ( (_x isKindOF ["Vest_Camo_Base", configFile >> "CfgWeapons"]) or (_x isKindOF ["Vest_NoCamo_Base", configFile >> "CfgWeapons"]) ) then {_vests pushBack _x}; - // Backpacks - if (_x isKindOF ["Bag_Base", configFile >> "CfgVehicles"]) then {_backpacks pushBack _x}; - }; -} foreach _wpList; - -_clipBoard = format["%2%3// // Uniforms %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl]; -}forEach _uniforms; - -_clipBoard = _clipBoard + format["%2%3// Headgear / Masks %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _headgear; - -_clipBoard = _clipBoard + format["%2%3// Goggles %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _goggles; - -_clipBoard = _clipBoard + format["%2%3// Vests %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _vests; - -_clipBoard = _clipBoard + format["%2%3// Backpacks %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _backpacks; - -_clipBoard = _clipBoard + format["%2%3//Glasses %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _glasses; - -_clipBoard = _clipBoard + format["%2%3// NVG %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _NVG; -/* -_clipBoard = _clipBoard + format["%2%3// Handguns %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnHandGun; - -_clipBoard = _clipBoard + format["%2%3// Shotguns %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnShotGun; - -_clipBoard = _clipBoard + format["%2%3// Throwables %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnThrow; - -_clipBoard = _clipBoard + format["%2%3// Unknown %1",endl,endl,endl]; -{ - _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] -}forEach _wpnUnknown; -*/ -copyToClipboard _clipBoard; - -_clipboard \ No newline at end of file diff --git a/testConfig.Altis/OldVersions/wearablesPriceList.sqf b/testConfig.Altis/OldVersions/wearablesPriceList.sqf deleted file mode 100644 index a85c0a6..0000000 --- a/testConfig.Altis/OldVersions/wearablesPriceList.sqf +++ /dev/null @@ -1,197 +0,0 @@ -/* - some of the algorithm/script is based on a script by KiloSwiss - https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ - Modified and enhanced by GhostriderDbD - 5/22/17 - - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ - -_baseWearables = []; -#include "baseWearables.sqf" -_allWearableRoots = ["Pistol","Rifle","Launcher"]; -_allWearableTypes = ["AssaultRifle","MachineGun","SniperRifle","Shotgun","Rifle","Pistol","SubmachineGun","Handgun","MissileLauncher","RocketLauncher","Throw","GrenadeCore"]; -_addedBaseNames = []; -_allBannedWearables = []; -_uniforms = []; -_headgear = []; -_glasses = []; -_masks = []; -_backpacks = []; -_vests = []; -_goggles = []; -_binocs = []; -_NVG = []; -//_wpnThrow = []; // throwables -//_wpnUnknown = []; //Misc - -_wpList = (configfile >> "cfgGlasses") call BIS_fnc_getCfgSubClasses; -{ - if ( !(_x in _baseWearables) && !(_x in _addedBaseNames) ) then - { - _addedBaseNames pushBack _x; - _glasses pushBack _x; - }; -}forEach _wpList; - -_aBaseNames = []; -_wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; -//_wpList sort true; -{ - if ( !(_x in _baseWearables) && !(_x in _addedBaseNames) ) then - { - _addedBaseNames pushBack _x; - // Uniforms - if (_x isKindOF ["Uniform_Base", configFile >> "CfgWeapons"]) then {_uniforms pushBack _x}; - // Headgear / Masks - if ( (_x isKindOF ["HelmetBase", configFile >> "CfgWeapons"]) or (_x isKindOF ["H_HelmetB", configFile >> "CfgWeapons"]) ) then {_headgear pushBack _x}; - // Goggles - if (_x isKindOF ["GoggleItem", configFile >> "CfgWeapons"]) then {_goggles pushBack _x}; - // NVG - if (_x isKindOF ["NVGoggles", configFile >> "CfgWeapons"]) then {_NVG pushBack _x}; - // Masks - - // Vests - if ( (_x isKindOF ["Vest_Camo_Base", configFile >> "CfgWeapons"]) or (_x isKindOF ["Vest_NoCamo_Base", configFile >> "CfgWeapons"]) ) then {_vests pushBack _x}; - // Backpacks - if (_x isKindOF ["Bag_Base", configFile >> "CfgVehicles"]) then {_backpacks pushBack _x}; - }; -} foreach _wpList; - -_clipBoard = format["%2%3// // Uniforms %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _uniforms; - -_clipBoard = _clipBoard + format["%2%3// Headgear / Masks %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _headgear; - -_clipBoard = _clipBoard + format["%2%3// Goggles %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _goggles; - -_clipBoard = _clipBoard + format["%2%3// Vests %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _vests; - -_clipBoard = _clipBoard + format["%2%3// Backpacks %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _backpacks; - -_clipBoard = _clipBoard + format["%2%3//Glasses %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _glasses; - -_clipBoard = _clipBoard + format["%2%3// NVG %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _NVG; -/* -_clipBoard = _clipBoard + format["%2%3// Handguns %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnHandGun; - -_clipBoard = _clipBoard + format["%2%3// Shotguns %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnShotGun; - -_clipBoard = _clipBoard + format["%2%3// Throwables %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnThrow; - -_clipBoard = _clipBoard + format["%2%3// Unknown %1",endl,endl,endl]; -{ - if (DBD_priceConfiguration == "Exile") then - { - _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; - }; - if (DBD_priceConfiguration == "Epoch") then - { - _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; - }; -}forEach _wpnUnknown; -*/ -copyToClipboard _clipBoard; - -_clipBoard \ No newline at end of file diff --git a/testConfig.Altis/Readme.hpp b/testConfig.Altis/Readme.hpp index 41453de..da09eb6 100644 --- a/testConfig.Altis/Readme.hpp +++ b/testConfig.Altis/Readme.hpp @@ -16,6 +16,11 @@ For each category (e.g., uniforms, weapons, vehicles) the tools will generate th - pricelists formated in either Epoch or Exile format (which, of course need prices adjusted). - a list suitable for addition to either the loot tables in Epoch or the loot table compiler in Exile. +Configuration: +Read the comments in init.sqf for more on how to adjust configuration overall. +Edit the excluded classnames files to block the extractor from including specific classnames in the output. +For example, you could run the tool once to search for all "Exile" vehicles then past this list into the _excludedVehicles array in exludedVehicles.sqf to prevent these vehicles from being included in the future. + You can determine which format of price list will be generated by changing GRG_mod in init.sqf. Credits: diff --git a/testConfig.Altis/help.sqf b/testConfig.Altis/help.sqf deleted file mode 100644 index 43e5836..0000000 --- a/testConfig.Altis/help.sqf +++ /dev/null @@ -1,71 +0,0 @@ -disableSerialization; -["",0,0.2,10,0,0,8] spawn BIS_fnc_dynamicText; -createDialog "RscDisplayWelcome"; -_display = findDisplay 999999; -_text1 = _display displayCtrl 1100; -_buttonSpoiler = _display displayCtrl 2400; -_textSpoiler = _display displayCtrl 1101; -_text2 = _display displayCtrl 1102; - -_message = _message + "General rules:

"; -_message = _message + "We ask that you follow just a few basic rules.

"; -_message = _message + "
"; -_message = _message + "* There is NO PVP allowed except in designated PVP Zones, should these be present on the server.

"; -_message = _message + "* STEALING from players, vehicles, bases or corpses is not allowed.

"; -_message = _message + "* Please be respectful toward other players
"; -_message = _message + "* Foul language will result in an automatick kick.
"; -_message = _message + "* Hacking, taking advantage of glitches or dupping is just a no-no.
"; -_message = _message + "* Please Respect Admins: They work hard to keep order and help players with issues.


"; -_message = _message + "* To keep language respectful you will be kicked for using certain words in chat.
"; -_message = _message + "* This is not intended to stiffle play but to maintain a polite decorum.
"; - -_message = _message + "Base Building Rules:

"; -_message = _message + "* Please do not build closer thaan 150 meeters from the nearest building or structure.
"; -_message = _message + "* Your flag or frequency jammer may block spawning of loot for other players.
"; -_message = _message + "* Please do Not block roads.

"; -_message = _message + "* Do Not build in airfields or place safes at these locations.

"; -_message = _message + "* Please do not build snipping towers at strongholds.
"; - -_message = _message + "Mission Rules:

"; -_message = _message + "* Call Missions in Side Chat AND place a marker with your name on the map in Side Chat.

"; -_message = _message + "* Call missions once you are ready to go there.

"; -_message = _message + "* Each player or group may only claim one mission at a time.

"; - -_message = _message + "PVP Zone Rules:

"; -_message = _message + "* Anything goes in PVP Zones.

"; - -_message = _message + "Player Tips:

"; -_message = _message + "* AI are sneaky and the last few AI at a mission often lay hidden and waiting for unwary players

"; -_message = _message + "* Grenades and HE rounds are your friend, especially at town invasions

"; -_message = _message + "* You can starve or die of thrist in Exile - never leave home without snacks

"; -_message = _message + "* You can die of hypothermia on Namalsk - bundle up, light fires, bring thermal buddies

"; -_message = _message + "* Missions tend to spawn in certain locations. If you build there do not be surprised if AI are waiting

"; -_message = _message + "* If you build near missions or Mafia locations the AI may destroy any vehicles left outside even if you are not in-game

"; -_message = _message + "* Arma and Exile are glitchy. Do not park vehicles/aircraft on roofs if you are not prepared for them to go Boom

"; -_message = _message + "* Use the grid function to place pieces oriented north/south and park vehicles headed North to reduce issues with them going Boom

"; -_message = _message + "* Remember that players and AI share the same roads.

"; -_message = _message + "* Admins are here to keep order and enforce rules. They volunteer their time based on a love of Arma. Please respect them.

"; - -_message = _message + "Roles of our Admins:

"; -_message = _message + "* Our Admins volunteer their time to keep our servers running smoothly

"; -_message = _message + "* Please treat them with the respect you would ask if you fulfilled their roles

"; -_message = _message + "* Admins are responsible for ensuring that players adhere to our rules as stated above

"; -_message = _message + "* If you have an issue with a player please check our teamspeak or post a report of the incident on our website or discord

"; -_message = _message + "* Admins MAY offer assistance to players who are getting started, or who lost gear or vehicles.

"; -_message = _message + "* However, we are not responsible for damaged or destroyed vehicles, missing gear or lost tabs or respect

"; - -_message = _message + "Have fun and play fair.

"; - -_text1 ctrlSetStructuredText (parseText _message); -_positionText1 = ctrlPosition _text1; -_yText1 = _positionText1 select 1; -_hText1 = ctrlTextHeight _text1; -_text1 ctrlSetPosition [_positionText1 select 0, _yText1, _positionText1 select 2, _hText1]; -_text1 ctrlCommit 0; -_buttonSpoiler ctrlSetFade 1; -_buttonSpoiler ctrlCommit 0; -_buttonSpoiler ctrlEnable false; -_textSpoiler ctrlSetFade 1; -_textSpoiler ctrlCommit 0; -_text2 ctrlSetFade 1; -_text2 ctrlCommit 0; diff --git a/testConfig.Altis/init.sqf b/testConfig.Altis/init.sqf index 6779d1a..73e74f2 100644 --- a/testConfig.Altis/init.sqf +++ b/testConfig.Altis/init.sqf @@ -11,11 +11,13 @@ // load string library //nul=[] execVM "KRON_Strings.sqf"; GRG_mod = "Exile"; // Options are "Exile" or "Epoch". This configuration pertains only to generating pre-formated price lists. +GRG_Root = ""; // Scripts will test if the leftmost N characters of a classname are equal to GRG_Root GRG_includedWeaponMagazines = false; GRG_configuratorPathName = "ExcludedClassNames\"; -#include "code\variables.sqf"; -#include "code\functions.sqf"; +#include "Code\variables.sqf"; +#include "Code\functions.sqf"; +#include "Code\KRON_Strings.sqf"; player addAction ["Vehicles","vehicles.sqf", [], 9]; player addAction ["Weapons","weapons.sqf",[], 8.9]; diff --git a/testConfig.Altis/items.sqf b/testConfig.Altis/items.sqf index 06700cc..50d7733 100644 --- a/testConfig.Altis/items.sqf +++ b/testConfig.Altis/items.sqf @@ -87,6 +87,7 @@ ARRAY in format [category,type] */ _baseItems = []; +_baseClasses = []; _mines = []; _lasers = []; _items = []; @@ -107,10 +108,27 @@ _itemsList = _itemsList + _temp; diag_log format["for Item %1 its ItemType [0] is %2",_x,_itemType select 0]; if ((_itemType select 0) in _allItemTypes) then { - if ( !(_x in _baseItems) && !(_x in _addedBaseNames) ) then + _process = true; + if (GRG_Root isEqualTo "") then + { + _process = true; + } else { + _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; + _process = ((toLower GRG_Root) isEqualTo _leftSTR); + //systemChat format["wearables.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + }; + if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then + { + if !(_x in _baseClasses) then {_baseClasses pushBack _x}; + _process = false; + _msg = format["base class %1 ignored",_x]; + systemChat _msg; + //diag_log _msg; + }; + if ( !(_x in _baseItems) && _process) then { _baseItems pushBack _x; - diag_log format["_x = %1, _itemType [0] = %2 _itemType[1] = %3",_x, _itemType select 0, _itemType select 1]; + systemChat format["classname = %1, _itemType [0] = %2 _itemType[1] = %3",_x, _itemType select 0, _itemType select 1]; if (_itemType select 0 isEqualTo "Mine" && !(_itemType select 1 in _excludedItemTypes)) then {_mines pushBack _x}; if (_itemType select 0 isEqualTo "Item" && !(_itemType select 1 in _excludedItemTypes)) then {_items pushBack _x}; }; @@ -177,4 +195,5 @@ if (GRG_mod == "Epoch") then ["Items",_items] ]; copyToClipboard _clipBoard; +systemChat "All items Processed and results copied to clipboard"; hint format["Wearables Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file diff --git a/testConfig.Altis/magazines.sqf b/testConfig.Altis/magazines.sqf index 165cbc5..a1f3116 100644 --- a/testConfig.Altis/magazines.sqf +++ b/testConfig.Altis/magazines.sqf @@ -2,16 +2,17 @@ Class Name Extraction Tool By GhostriderDbD For Arma 3 - 7/20/17 + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. http://creativecommons.org/licenses/by-nc-sa/4.0/ */ _baseMagazines = []; -#include "ExcludedClassNames\baseMagazines.sqf" +_excludedMagazines = []; +#include "ExcludedClassNames\excludedMagazines.sqf" _cfgMagazines = (configfile >> "CfgMagazines") call BIS_fnc_getCfgSubClasses; -//_cfgMagazines sort true; +_cfgMagazines sort true; _sortedMagazines = []; _clipboard = ""; _wpnSmokeShell = []; // "B_IR_Grenade" @@ -25,12 +26,28 @@ _scannedMags = []; { //diag_log format["Magazine = %1",_x]; _isKindOf = (_x isKindOF ["CA_Magazine", configFile >> "CfgMagazines"]); - if (true) then + if (_isKindOf) then { - //diag_log format["Acceptable Magazine = %1",_x]; - if (_isKindOf and !(_x in _baseMagazines)) then + _process = true; + if (GRG_Root isEqualTo "") then { - //diag_log format["Evaluated Magazine = %1",_x]; + _process = true; + } else { + _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; + _process = ((toLower GRG_Root) isEqualTo _leftSTR); + //systemChat format["wearables.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + }; + if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then + { + if !(_x in _excludedMagazines) then {_excludedMagazines pushBack _x}; + _process = false; + _msg = format["base class %1 ignored",_x]; + systemChat _msg; + //diag_log _msg; + }; + if (_process && !(_x in _baseMagazines)) then + { + systemChat format["Evaluated Magazine = %1",_x]; //if (!(_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) && !(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) && !(_x isKindOf ["VehicleMagazine", configFile >> "CfgMagazines"]) && !(_x isKindOf ["Exile_AbstractItem", configFile >> "CfgMagazines"])) then {_wpnMagazines pushBack _x}; if (_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) then {_wpnLauncherRound pushBack _x; _scannedMags pushBack _x;}; if(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) then {_wpnSmokeShell pushBack _x; _scannedMags pushBack _x;}; @@ -98,5 +115,5 @@ _temp = [_wpnVehicleAmmo] call fn_generateLootTableEntries; _clipBoard = _clipBoard + _temp; copyToClipboard _clipboard; - +systemChat "All magazines Processed and results copied to clipboard"; hint format["Special Magazines Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file diff --git a/testConfig.Altis/mission.sqm b/testConfig.Altis/mission.sqm index 61fc653..a84604f 100644 --- a/testConfig.Altis/mission.sqm +++ b/testConfig.Altis/mission.sqm @@ -21,13 +21,14 @@ class EditorData binarizationWanted=0; addons[]= { - "A3_Characters_F" + "A3_Characters_F", + "exile_client" }; class AddonsMetaData { class List { - items=1; + items=2; class Item0 { className="A3_Characters_F"; @@ -35,6 +36,11 @@ class AddonsMetaData author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item1 + { + className="exile_client"; + name="exile_client"; + }; }; }; randomSeed=14371957; diff --git a/testConfig.Altis/testSound.sqf b/testConfig.Altis/testSound.sqf new file mode 100644 index 0000000..6685576 --- /dev/null +++ b/testConfig.Altis/testSound.sqf @@ -0,0 +1,2 @@ + +playsound "Alarm"; \ No newline at end of file diff --git a/testConfig.Altis/vehicles.sqf b/testConfig.Altis/vehicles.sqf index 0cb082d..7f7c51c 100644 --- a/testConfig.Altis/vehicles.sqf +++ b/testConfig.Altis/vehicles.sqf @@ -7,25 +7,10 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ -_allTanks = -[ - "B_APC_Tracked_01_rcws_F", - "B_APC_Tracked_01_CRV_F", - "B_APC_Tracked_01_AA_F", - "B_MBT_01_arty_F", - "B_MBT_01_mlrs_F", - "B_MBT_01_TUSK_F", - "O_APC_Tracked_02_cannon_F", - "O_APC_Tracked_02_AA_F", - "O_MBT_02_cannon_F", - "O_MBT_02_arty_F", - "O_APC_Wheeled_02_rcws_F", - "I_APC_tracked_03_cannon_F", - "I_MBT_03_cannon_F" -]; -_vehiclesBase = []; -#include "ExcludedClassNames\baseVehicles.sqf" +_excludedVehicles = []; +_baseClasses = []; +#include "ExcludedClassNames\excludedVehicles.sqf" _veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; _veh sort true; _index = 0; @@ -35,12 +20,42 @@ _boats = []; _air = []; _helis = []; _planes = []; -_exile = 0; - +_process = true; +_n = count _veh; +_index = 0; +_counter = 1; +_interval = 25; +systemChat "Classname Extraction tool for vehicles initialized"; { - if !(_x in _vehiclesBase) then + _process = true; + if (GRG_Root isEqualTo "") then { - if (_x isKindOf "Tank") then {_tanks pushBack _x;systemChat format["Adding Tank %1",_x];}; + _process = true; + } else { + _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; + _process = ((toLower GRG_Root) isEqualTo _leftSTR); + //systemChat format["vehicles.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + }; + if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then + { + if !(_x in _baseClasses) then {_baseClasses pushBack _x}; + _process = false; + _msg = format["base class %1 ignored",_x]; + systemChat _msg; + //diag_log _msg; + }; + if (_process && !(_x in _excludedVehicles)) then + { + if (_index == 1) then + { + _msg = format["Classname: %1 %2 out of %3",_x, _counter, _n]; + systemChat _msg; + //diag_log _msg; + }; + if (_index == _interval) then {_index = 0}; + _index = _index + 1; + _counter = _counter + 1; + if (_x isKindOf "Tank") then {_tanks pushBack _x;/*systemChat format["Adding Tank %1",_x];*/}; if (_x isKindOf "Car") then {_cars pushBack _x}; if ((_x isKindOf "Plane")) then {_planes pushBack _x}; if ((_x isKindOf "Helicopter")) then {_helis pushBack _x}; @@ -48,7 +63,7 @@ _exile = 0; }; }forEach _veh; -systemChat format["%1 tanks found",count _tanks]; +systemChat format["%1 classnames processed, formating trader entries",count _veh]; _clipBoard = ""; @@ -97,7 +112,7 @@ if (GRG_mod == "Epoch") then ["Planes",_planes], ["Other Air",_air] ]; - +systemChat "All Vehicles Process and results copied to clipboard"; copyToClipboard _clipboard; hint format["Vehicles Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file diff --git a/testConfig.Altis/vehiclesTurrets.sqf b/testConfig.Altis/vehiclesTurrets.sqf index 6755dbe..3d02753 100644 --- a/testConfig.Altis/vehiclesTurrets.sqf +++ b/testConfig.Altis/vehiclesTurrets.sqf @@ -1,5 +1,6 @@ _vehiclesBase = []; +_baseClasses = []; #include "ExcludedClassNames\baseVehicles.sqf" _veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; _veh sort true; @@ -13,7 +14,24 @@ _planes = []; _exile = 0; { - if !(_x in _vehiclesBase) then + _process = true; + if (GRG_Root isEqualTo "") then + { + _process = true; + } else { + _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; + _process = ((toLower GRG_Root) isEqualTo _leftSTR); + systemChat format["vehicles.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + }; + if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then + { + if !(_x in _baseClasses) then {_baseClasses pushBack _x}; + _process = false; + _msg = format["base class %1 processed",_x]; + systemChat _msg; + diag_log _msg; + }; + if (_process && !(_x in _vehiclesBase)) then { if (_x isKindOf "Tank") then {_tanks pushBack _x;systemChat format["Adding Tank %1",_x];}; if (_x isKindOf "Car") then {_cars pushBack _x}; @@ -50,5 +68,5 @@ _allTurrets = []; }forEach _allTurrets; copyToClipboard _clipboard; - +systemChat "All Turrets Processed and results copied to clipboard"; hint format["Vehicles Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file diff --git a/testConfig.Altis/weapons.sqf b/testConfig.Altis/weapons.sqf index 118b63b..727104d 100644 --- a/testConfig.Altis/weapons.sqf +++ b/testConfig.Altis/weapons.sqf @@ -10,7 +10,7 @@ */ _weaponsBase = []; _knownWeapons = []; -#include "ExcludedClassNames\baseWeapons.sqf" +#include "ExcludedClassNames\excludedWeapons.sqf" _allWeaponRoots = ["Pistol","Rifle","Launcher"]; @@ -33,34 +33,60 @@ _wpnMagazines = []; _wpnOptics = []; _wpnPointers = []; _wpnMuzzles = []; - -_aBaseNames = []; +_baseClasses = []; +_process = false; _wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; //_wpList sort true; { _item = _x; _isWeap = false; - _isKindOf = false; + _isWeapon = false; + _process = false; { - _isKindOf = (_item isKindOF [_x, configFile >> "CfgWeapons"]); - if (_isKindOf) exitWith {}; + _isWeapon = (_item isKindOF [_x, configFile >> "CfgWeapons"]); + if (_isWeapon) exitWith {}; } forEach _allWeaponRoots; - if (_isKindOf) then + + if (_isWeapon && GRG_Root isEqualTo "") then + { + _process = true; + }; + if (_isWeapon && (count GRG_Root > 0)) then + { + _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; + _process = ((toLower GRG_Root) isEqualTo _leftSTR); + //_msg = format["weaponss.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + //systemChat _msg; + //diag_log _msg; + }; + + if (_isWeapon && _process) then + { + if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then + { + if !(_x in _baseClasses) then {_baseClasses pushBack _x}; + _process = false; + systemChat format["base class %1 ignored",_x]; + }; + }; + + if (_isWeapon && _process) then { //_msg = format["weapons classname extractor: _item = %1",_item]; //diag_log _msg; //systemChat _msg; - if !(_item in _knownWeapons) then + if !(_item in _excludedWeapons) then { - _knownWeapons pushBack _item; - //if (getnumber (configFile >> "cfgWeapons" >> _x >> "scope") == 2) then { + _excludedWeapons pushBack _item; _itemType = _x call bis_fnc_itemType; _itemCategory = _itemType select 1; //diag_log format["pullWepClassNames:: _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory]; - if (((_itemType select 0) == "Weapon") && ((_itemType select 1) in _allWeaponTypes)) then { + if (((_itemType select 0) == "Weapon") && ((_itemType select 1) in _allWeaponTypes)) then + { _baseName = _x call BIS_fnc_baseWeapon; - //diag_log format["pullWepClassNames:: Processing for _baseName %3 || _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory, _baseName]; - if (!(_baseName in _addedBaseNames) && !(_baseName in _allBannedWeapons)) then { + systemChat format["pullWepClassNames:: Processing for _baseName %3 || _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory, _baseName]; + if (!(_baseName in _addedBaseNames) && !(_baseName in _allBannedWeapons)) then + { _addedBaseNames pushBack _baseName; switch(_itemCategory)do{ @@ -206,5 +232,5 @@ if (GRG_mod == "Epoch") then ["Unknown ",_wpnUnknown] ]; copyToClipboard _clipBoard; - +systemChat "All Weapons Processws and results copied to clipboard"; hint format["Weapons Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file diff --git a/testConfig.Altis/wearables.sqf b/testConfig.Altis/wearables.sqf index a195b93..ab5d4c4 100644 --- a/testConfig.Altis/wearables.sqf +++ b/testConfig.Altis/wearables.sqf @@ -86,9 +86,9 @@ Returns: ARRAY in format [category,type] */ -_baseWearables = []; -#include "ExcludedClassNames\baseWearables.sqf" -_addedBaseNames = []; +_excludedWearables = []; +#include "ExcludedClassNames\excludedWearables.sqf" +_baseClasses = []; _allBannedWearables = []; _uniforms = []; _headgear = []; @@ -97,7 +97,6 @@ _masks = []; _backpacks = []; _vests = []; _goggles = []; - _NVG = []; _wearablesList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; @@ -105,17 +104,34 @@ _temp = (configFile >> "cfgVehicles") call BIS_fnc_getCfgSubClasses; _wearablesList = _wearablesList + _temp; _temp = (configFile >> "CfgGlasses") call BIS_fnc_getCfgSubClasses; _wearablesList = _wearablesList + _temp; -//_wearablesList sort true; +_wearablesList sort true; { _itemType = _x call BIS_fnc_itemType; - diag_log format["for Item %1 its ItemType [0] is %2",_x,_itemType select 0]; + //diag_log format["for Item %1 its ItemType [0] is %2",_x,_itemType select 0]; if (_itemType select 0 isEqualTo "Equipment") then { - if ( !(_x in _baseWearables) && !(_x in _addedBaseNames) ) then + _process = true; + if (GRG_Root isEqualTo "") then + { + _process = true; + } else { + _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; + _process = ((toLower GRG_Root) isEqualTo _leftSTR); + //systemChat format["wearables.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + }; + if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then + { + if !(_x in _baseClasses) then {_baseClasses pushBack _x}; + _process = false; + _msg = format["base class %1 ignored",_x]; + systemChat _msg; + //diag_log _msg; + }; + if ( !(_x in _excludedWearables) && _process) then { - _baseWearables pushBack _x; + _excludedWearables pushBack _x; - diag_log format["_x = %1, _itemType = %2",_x, _itemType select 1]; + systemChat format["classname = %1, _itemType = %2",_x, _itemType select 1]; // Uniforms if (_itemType select 1 isEqualTo "Uniform") then {_uniforms pushBack _x}; // Headgear / Masks @@ -200,4 +216,5 @@ if (GRG_mod == "Epoch") then ["Glasses",_glasses] ]; copyToClipboard _clipBoard; +systemChat "All wearables Processed and results copied to clipboard"; hint format["Wearables Config Extractor Run complete%1Output copied to clipboard%1Paste it into a text editor to acces",endl]; \ No newline at end of file From 485812e0c823f87e7bf4024e0edd9de24cef681b Mon Sep 17 00:00:00 2001 From: Ghostrider-DbD- Date: Wed, 18 Oct 2017 22:12:47 -0400 Subject: [PATCH 4/5] Added an optional check if items are in the pricelist --- changelog.hpp | 6 ++- testConfig.Altis/Readme.hpp | 19 ++++++--- testConfig.Altis/description.ext | 2 + testConfig.Altis/help.sqf | 71 ++++++++++++++++++++++++++++++++ testConfig.Altis/init.sqf | 3 +- testConfig.Altis/items.sqf | 41 +++++++++++++++--- testConfig.Altis/magazines.sqf | 41 +++++++++++++++--- testConfig.Altis/vehicles.sqf | 49 ++++++++++++++++++---- testConfig.Altis/weapons.sqf | 54 +++++++++++++++++++----- testConfig.Altis/wearables.sqf | 41 +++++++++++++++--- 10 files changed, 282 insertions(+), 45 deletions(-) create mode 100644 testConfig.Altis/description.ext create mode 100644 testConfig.Altis/help.sqf diff --git a/changelog.hpp b/changelog.hpp index 014406a..5a2d781 100644 --- a/changelog.hpp +++ b/changelog.hpp @@ -1,4 +1,8 @@ - +10/18/17 +0.41 + Added an optional check to see if the class name has a price. + This should be helpful when screening for new classnames after a mod is updated. + 10/4/2017 0.4 Added an option whereby setting GRG_Root = "STR" will only include classnames beginning with STR. Did some bug fixing and optimization. diff --git a/testConfig.Altis/Readme.hpp b/testConfig.Altis/Readme.hpp index da09eb6..aef4e83 100644 --- a/testConfig.Altis/Readme.hpp +++ b/testConfig.Altis/Readme.hpp @@ -16,15 +16,22 @@ For each category (e.g., uniforms, weapons, vehicles) the tools will generate th - pricelists formated in either Epoch or Exile format (which, of course need prices adjusted). - a list suitable for addition to either the loot tables in Epoch or the loot table compiler in Exile. -Configuration: -Read the comments in init.sqf for more on how to adjust configuration overall. -Edit the excluded classnames files to block the extractor from including specific classnames in the output. -For example, you could run the tool once to search for all "Exile" vehicles then past this list into the _excludedVehicles array in exludedVehicles.sqf to prevent these vehicles from being included in the future. - You can determine which format of price list will be generated by changing GRG_mod in init.sqf. +Settings: + +GRG_mod: set to "Epoch" or "Exile" +GRG_Root: Use this to process only class names with a certain name such as "CUP" or "RHS". +GRG_addIttemsMissingFromPricelistOnly (true/false). +When true, the tool will search for a price for that class name in either CfgPricing (epoch) or CfgExileArsenal (Exile). + The idea behind this is to list only those items that you have not already added to traders. this should be handy when dealing with mod updates. + To use this requires a bit of extra setup. + - add a description.ext to the mission folder. + - add an #include to the description.ext so as to include CfgPricing.hpp or your exile_config.hpp and be sure any included files these use are also in the mission folder in the appropriate subfolder or commented out. + - The tool will check for a price for each item and if no price is found add that item to the output. + Credits: - The algorithm for extracting weapons class names is derived from one posted by KiloSwiss on EpochMod: + The original algorithm for extracting weapons class names is derived from one posted by KiloSwiss on EpochMod although it has more recently been updated: https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ License diff --git a/testConfig.Altis/description.ext b/testConfig.Altis/description.ext new file mode 100644 index 0000000..395499e --- /dev/null +++ b/testConfig.Altis/description.ext @@ -0,0 +1,2 @@ + +#include "config_altis_mil.cpp" diff --git a/testConfig.Altis/help.sqf b/testConfig.Altis/help.sqf new file mode 100644 index 0000000..43e5836 --- /dev/null +++ b/testConfig.Altis/help.sqf @@ -0,0 +1,71 @@ +disableSerialization; +["",0,0.2,10,0,0,8] spawn BIS_fnc_dynamicText; +createDialog "RscDisplayWelcome"; +_display = findDisplay 999999; +_text1 = _display displayCtrl 1100; +_buttonSpoiler = _display displayCtrl 2400; +_textSpoiler = _display displayCtrl 1101; +_text2 = _display displayCtrl 1102; + +_message = _message + "General rules:

"; +_message = _message + "We ask that you follow just a few basic rules.

"; +_message = _message + "
"; +_message = _message + "* There is NO PVP allowed except in designated PVP Zones, should these be present on the server.

"; +_message = _message + "* STEALING from players, vehicles, bases or corpses is not allowed.

"; +_message = _message + "* Please be respectful toward other players
"; +_message = _message + "* Foul language will result in an automatick kick.
"; +_message = _message + "* Hacking, taking advantage of glitches or dupping is just a no-no.
"; +_message = _message + "* Please Respect Admins: They work hard to keep order and help players with issues.


"; +_message = _message + "* To keep language respectful you will be kicked for using certain words in chat.
"; +_message = _message + "* This is not intended to stiffle play but to maintain a polite decorum.
"; + +_message = _message + "Base Building Rules:

"; +_message = _message + "* Please do not build closer thaan 150 meeters from the nearest building or structure.
"; +_message = _message + "* Your flag or frequency jammer may block spawning of loot for other players.
"; +_message = _message + "* Please do Not block roads.

"; +_message = _message + "* Do Not build in airfields or place safes at these locations.

"; +_message = _message + "* Please do not build snipping towers at strongholds.
"; + +_message = _message + "Mission Rules:

"; +_message = _message + "* Call Missions in Side Chat AND place a marker with your name on the map in Side Chat.

"; +_message = _message + "* Call missions once you are ready to go there.

"; +_message = _message + "* Each player or group may only claim one mission at a time.

"; + +_message = _message + "PVP Zone Rules:

"; +_message = _message + "* Anything goes in PVP Zones.

"; + +_message = _message + "Player Tips:

"; +_message = _message + "* AI are sneaky and the last few AI at a mission often lay hidden and waiting for unwary players

"; +_message = _message + "* Grenades and HE rounds are your friend, especially at town invasions

"; +_message = _message + "* You can starve or die of thrist in Exile - never leave home without snacks

"; +_message = _message + "* You can die of hypothermia on Namalsk - bundle up, light fires, bring thermal buddies

"; +_message = _message + "* Missions tend to spawn in certain locations. If you build there do not be surprised if AI are waiting

"; +_message = _message + "* If you build near missions or Mafia locations the AI may destroy any vehicles left outside even if you are not in-game

"; +_message = _message + "* Arma and Exile are glitchy. Do not park vehicles/aircraft on roofs if you are not prepared for them to go Boom

"; +_message = _message + "* Use the grid function to place pieces oriented north/south and park vehicles headed North to reduce issues with them going Boom

"; +_message = _message + "* Remember that players and AI share the same roads.

"; +_message = _message + "* Admins are here to keep order and enforce rules. They volunteer their time based on a love of Arma. Please respect them.

"; + +_message = _message + "Roles of our Admins:

"; +_message = _message + "* Our Admins volunteer their time to keep our servers running smoothly

"; +_message = _message + "* Please treat them with the respect you would ask if you fulfilled their roles

"; +_message = _message + "* Admins are responsible for ensuring that players adhere to our rules as stated above

"; +_message = _message + "* If you have an issue with a player please check our teamspeak or post a report of the incident on our website or discord

"; +_message = _message + "* Admins MAY offer assistance to players who are getting started, or who lost gear or vehicles.

"; +_message = _message + "* However, we are not responsible for damaged or destroyed vehicles, missing gear or lost tabs or respect

"; + +_message = _message + "Have fun and play fair.

"; + +_text1 ctrlSetStructuredText (parseText _message); +_positionText1 = ctrlPosition _text1; +_yText1 = _positionText1 select 1; +_hText1 = ctrlTextHeight _text1; +_text1 ctrlSetPosition [_positionText1 select 0, _yText1, _positionText1 select 2, _hText1]; +_text1 ctrlCommit 0; +_buttonSpoiler ctrlSetFade 1; +_buttonSpoiler ctrlCommit 0; +_buttonSpoiler ctrlEnable false; +_textSpoiler ctrlSetFade 1; +_textSpoiler ctrlCommit 0; +_text2 ctrlSetFade 1; +_text2 ctrlCommit 0; diff --git a/testConfig.Altis/init.sqf b/testConfig.Altis/init.sqf index 73e74f2..6c74a58 100644 --- a/testConfig.Altis/init.sqf +++ b/testConfig.Altis/init.sqf @@ -11,7 +11,8 @@ // load string library //nul=[] execVM "KRON_Strings.sqf"; GRG_mod = "Exile"; // Options are "Exile" or "Epoch". This configuration pertains only to generating pre-formated price lists. -GRG_Root = ""; // Scripts will test if the leftmost N characters of a classname are equal to GRG_Root +GRG_Root = "CUP"; // Scripts will test if the leftmost N characters of a classname are equal to GRG_Root +GRG_addIttemsMissingFromPricelistOnly = true; // when true will process only class names for which there is not already a price listed for that mod time. for this to work you need to include the description.ext and any price lists for your server in this misison folder. GRG_includedWeaponMagazines = false; GRG_configuratorPathName = "ExcludedClassNames\"; diff --git a/testConfig.Altis/items.sqf b/testConfig.Altis/items.sqf index 50d7733..97c1df4 100644 --- a/testConfig.Altis/items.sqf +++ b/testConfig.Altis/items.sqf @@ -108,24 +108,53 @@ _itemsList = _itemsList + _temp; diag_log format["for Item %1 its ItemType [0] is %2",_x,_itemType select 0]; if ((_itemType select 0) in _allItemTypes) then { - _process = true; + processItem = true; if (GRG_Root isEqualTo "") then { - _process = true; + processItem = true; } else { _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; - _process = ((toLower GRG_Root) isEqualTo _leftSTR); - //systemChat format["wearables.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + processItem = ((toLower GRG_Root) isEqualTo _leftSTR); + //systemChat format["wearables.sqf:: _leftSTR = %1 and processItem = %2",_leftSTR, processItem]; }; if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then { if !(_x in _baseClasses) then {_baseClasses pushBack _x}; - _process = false; + processItem = false; _msg = format["base class %1 ignored",_x]; systemChat _msg; //diag_log _msg; + }; + if (processItem) then + { + if (GRG_addIttemsMissingFromPricelistOnly) then + { + if(GRG_mod isEqualTo "Exile") then + { + if (isNumber (missionConfigFile >> "CfgExileArsenal" >> _x >> "price")) then + { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + processItem = false; // Item already listed and assumed to be included in both trader lists and price lists + diag_log format["Item %1 already has a price: Not processing item %1",_x]; + } else { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + diag_log format["Item %1 has no price: processing item %1",_x]; + processItem = true; + }; + }; + if (GRG_mod isEqualTo "Epoch") then + { + if (isNumber (missionConfigFile >> "CfgPricing" >> _x >> "price")) then + { + processItem = false; // Item already listed and assumed to be included in both trader lists and price lists + + } else { + processItem = true; + }; + }; + }; }; - if ( !(_x in _baseItems) && _process) then + if ( !(_x in _baseItems) && processItem) then { _baseItems pushBack _x; systemChat format["classname = %1, _itemType [0] = %2 _itemType[1] = %3",_x, _itemType select 0, _itemType select 1]; diff --git a/testConfig.Altis/magazines.sqf b/testConfig.Altis/magazines.sqf index a1f3116..3fa8ad0 100644 --- a/testConfig.Altis/magazines.sqf +++ b/testConfig.Altis/magazines.sqf @@ -28,24 +28,53 @@ _scannedMags = []; _isKindOf = (_x isKindOF ["CA_Magazine", configFile >> "CfgMagazines"]); if (_isKindOf) then { - _process = true; + processMagazine = true; if (GRG_Root isEqualTo "") then { - _process = true; + processMagazine = true; } else { _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; - _process = ((toLower GRG_Root) isEqualTo _leftSTR); - //systemChat format["wearables.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + processMagazine = ((toLower GRG_Root) isEqualTo _leftSTR); + //systemChat format["wearables.sqf:: _leftSTR = %1 and processMagazine = %2",_leftSTR, processMagazine]; }; if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then { if !(_x in _excludedMagazines) then {_excludedMagazines pushBack _x}; - _process = false; + processMagazine = false; _msg = format["base class %1 ignored",_x]; systemChat _msg; //diag_log _msg; }; - if (_process && !(_x in _baseMagazines)) then + if (processWearable) then + { + if (GRG_addIttemsMissingFromPricelistOnly) then + { + if(GRG_mod isEqualTo "Exile") then + { + if (isNumber (missionConfigFile >> "CfgExileArsenal" >> _x >> "price")) then + { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + processWearable = false; // Item already listed and assumed to be included in both trader lists and price lists + diag_log format["Item %1 already has a price: Not processing item %1",_x]; + } else { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + diag_log format["Item %1 has no price: processing item %1",_x]; + processWearable = true; + }; + }; + if (GRG_mod isEqualTo "Epoch") then + { + if (isNumber (missionConfigFile >> "CfgPricing" >> _x >> "price")) then + { + processWearable = false; // Item already listed and assumed to be included in both trader lists and price lists + + } else { + processWearable = true; + }; + }; + }; + }; + if (processMagazine && !(_x in _baseMagazines)) then { systemChat format["Evaluated Magazine = %1",_x]; //if (!(_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) && !(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) && !(_x isKindOf ["VehicleMagazine", configFile >> "CfgMagazines"]) && !(_x isKindOf ["Exile_AbstractItem", configFile >> "CfgMagazines"])) then {_wpnMagazines pushBack _x}; diff --git a/testConfig.Altis/vehicles.sqf b/testConfig.Altis/vehicles.sqf index 7f7c51c..e50e207 100644 --- a/testConfig.Altis/vehicles.sqf +++ b/testConfig.Altis/vehicles.sqf @@ -20,31 +20,64 @@ _boats = []; _air = []; _helis = []; _planes = []; -_process = true; +processVehicle = true; _n = count _veh; _index = 0; _counter = 1; _interval = 25; systemChat "Classname Extraction tool for vehicles initialized"; { - _process = true; + processVehicle = true; if (GRG_Root isEqualTo "") then { - _process = true; - } else { + processVehicle = true; + }; + if (count GRG_Root > 0) then + { _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; - _process = ((toLower GRG_Root) isEqualTo _leftSTR); - //systemChat format["vehicles.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + processVehicle = ((toLower GRG_Root) isEqualTo _leftSTR); + _msg = format["vehicles.sqf:: _leftSTR = %1 and processVehicle = %2",_leftSTR, processVehicle]; + //systemChat _msg; + diag_log _msg; + }; + if (processVehicle) then + { + if (GRG_addIttemsMissingFromPricelistOnly) then + { + if(GRG_mod isEqualTo "Exile") then + { + if (isNumber (missionConfigFile >> "CfgExileArsenal" >> _x >> "price")) then + { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + processVehicle = false; // Item already listed and assumed to be included in both trader lists and price lists + diag_log format["Item %1 already has a price: Not processing item %1",_x]; + } else { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + diag_log format["Item %1 has no price: processing item %1",_x]; + processVehicle = true; + }; + }; + if (GRG_mod isEqualTo "Epoch") then + { + if (isNumber (missionConfigFile >> "CfgPricing" >> _x >> "price")) then + { + processVehicle = false; // Item already listed and assumed to be included in both trader lists and price lists + + } else { + processVehicle = true; + }; + }; + }; }; if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then { if !(_x in _baseClasses) then {_baseClasses pushBack _x}; - _process = false; + processVehicle = false; _msg = format["base class %1 ignored",_x]; systemChat _msg; //diag_log _msg; }; - if (_process && !(_x in _excludedVehicles)) then + if (processVehicle && !(_x in _excludedVehicles)) then { if (_index == 1) then { diff --git a/testConfig.Altis/weapons.sqf b/testConfig.Altis/weapons.sqf index 727104d..d054fc7 100644 --- a/testConfig.Altis/weapons.sqf +++ b/testConfig.Altis/weapons.sqf @@ -8,6 +8,7 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ +private["_process"]; _weaponsBase = []; _knownWeapons = []; #include "ExcludedClassNames\excludedWeapons.sqf" @@ -34,14 +35,17 @@ _wpnOptics = []; _wpnPointers = []; _wpnMuzzles = []; _baseClasses = []; -_process = false; +processWeapon = false; _wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; //_wpList sort true; +diag_log"//////////////////////////////////////////////////////////////"; +diag_log" /// START OF RUN //////////////////////////////////////////"; + { _item = _x; _isWeap = false; _isWeapon = false; - _process = false; + processWeapon = false; { _isWeapon = (_item isKindOF [_x, configFile >> "CfgWeapons"]); if (_isWeapon) exitWith {}; @@ -49,28 +53,56 @@ _wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; if (_isWeapon && GRG_Root isEqualTo "") then { - _process = true; + processWeapon = true; }; if (_isWeapon && (count GRG_Root > 0)) then { _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; - _process = ((toLower GRG_Root) isEqualTo _leftSTR); - //_msg = format["weaponss.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + processWeapon = ((toLower GRG_Root) isEqualTo _leftSTR); + _msg = format["weapons.sqf:: _leftSTR = %1 and processWeapon = %2",_leftSTR, processWeapon]; //systemChat _msg; - //diag_log _msg; + diag_log _msg; }; - - if (_isWeapon && _process) then + if (_isWeapon && processWeapon) then + { + if (GRG_addIttemsMissingFromPricelistOnly) then + { + if(GRG_mod isEqualTo "Exile") then + { + if (isNumber (missionConfigFile >> "CfgExileArsenal" >> _x >> "price")) then + { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + processWeapon = false; // Item already listed and assumed to be included in both trader lists and price lists + diag_log format["Item %1 already has a price: Not processing item %1",_x]; + } else { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + diag_log format["Item %1 has no price: processing item %1",_x]; + processWeapon = true; + }; + }; + if (GRG_mod isEqualTo "Epoch") then + { + if (isNumber (missionConfigFile >> "CfgPricing" >> _x >> "price")) then + { + processWeapon = false; // Item already listed and assumed to be included in both trader lists and price lists + + } else { + processWeapon = true; + }; + }; + }; + }; + if (_isWeapon && processWeapon) then { if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then { if !(_x in _baseClasses) then {_baseClasses pushBack _x}; - _process = false; + processWeapon = false; systemChat format["base class %1 ignored",_x]; }; }; - - if (_isWeapon && _process) then + diag_log format["for item %1, price of %2, root of %3, processWeapon = %4",_x, getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price"),[toLower _x,count GRG_Root] call KRON_StrLeft,processWeapon]; + if (_isWeapon && processWeapon) then { //_msg = format["weapons classname extractor: _item = %1",_item]; //diag_log _msg; diff --git a/testConfig.Altis/wearables.sqf b/testConfig.Altis/wearables.sqf index ab5d4c4..e8320be 100644 --- a/testConfig.Altis/wearables.sqf +++ b/testConfig.Altis/wearables.sqf @@ -110,24 +110,53 @@ _wearablesList sort true; //diag_log format["for Item %1 its ItemType [0] is %2",_x,_itemType select 0]; if (_itemType select 0 isEqualTo "Equipment") then { - _process = true; + processWearable = true; if (GRG_Root isEqualTo "") then { - _process = true; + processWearable = true; } else { _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; - _process = ((toLower GRG_Root) isEqualTo _leftSTR); - //systemChat format["wearables.sqf:: _leftSTR = %1 and _process = %2",_leftSTR, _process]; + processWearable = ((toLower GRG_Root) isEqualTo _leftSTR); + //systemChat format["wearables.sqf:: _leftSTR = %1 and processWearable = %2",_leftSTR, processWearable]; }; if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then { if !(_x in _baseClasses) then {_baseClasses pushBack _x}; - _process = false; + processWearable = false; _msg = format["base class %1 ignored",_x]; systemChat _msg; //diag_log _msg; }; - if ( !(_x in _excludedWearables) && _process) then + if (processWearable) then + { + if (GRG_addIttemsMissingFromPricelistOnly) then + { + if(GRG_mod isEqualTo "Exile") then + { + if (isNumber (missionConfigFile >> "CfgExileArsenal" >> _x >> "price")) then + { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + processWearable = false; // Item already listed and assumed to be included in both trader lists and price lists + diag_log format["Item %1 already has a price: Not processing item %1",_x]; + } else { + diag_log format["price for item %1 = %2 tabs",_x,getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price")]; + diag_log format["Item %1 has no price: processing item %1",_x]; + processWearable = true; + }; + }; + if (GRG_mod isEqualTo "Epoch") then + { + if (isNumber (missionConfigFile >> "CfgPricing" >> _x >> "price")) then + { + processWearable = false; // Item already listed and assumed to be included in both trader lists and price lists + + } else { + processWearable = true; + }; + }; + }; + }; + if ( !(_x in _excludedWearables) && processWearable) then { _excludedWearables pushBack _x; From 39e3c1fe0ea5807f33efd3f134f1283fcffd4e9e Mon Sep 17 00:00:00 2001 From: Ghostrider-DbD- Date: Tue, 24 Oct 2017 07:10:02 -0400 Subject: [PATCH 5/5] A few bugs were fixed. --- testConfig.Altis/weapons.sqf | 144 +++++++++++++++++++++++++++++++---- 1 file changed, 129 insertions(+), 15 deletions(-) diff --git a/testConfig.Altis/weapons.sqf b/testConfig.Altis/weapons.sqf index d054fc7..c397484 100644 --- a/testConfig.Altis/weapons.sqf +++ b/testConfig.Altis/weapons.sqf @@ -8,6 +8,84 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ +/* + + Description: + Return item category and type. Recognized types are: + + Weapon / VehicleWeapon + AssaultRifle + BombLauncher + Cannon + GrenadeLauncher + Handgun + Launcher + MachineGun + Magazine + MissileLauncher + Mortar + RocketLauncher + Shotgun + Throw + Rifle + SubmachineGun + SniperRifle + VehicleWeapon + Horn + CounterMeasuresLauncher + LaserDesignator + Item + AccessoryMuzzle + AccessoryPointer + AccessorySights + AccessoryBipod + Binocular + Compass + FirstAidKit + GPS + LaserDesignator + Map + Medikit + MineDetector + NVGoggles + Radio + Toolkit + UAVTerminal + VehicleWeapon + Unknown + UnknownEquipment + UnknownWeapon + Watch + Equipment + Glasses + Headgear + Vest + Uniform + Backpack + Magazine + Artillery + Bullet + CounterMeasures + Flare + Grenade + Laser + Missile + Rocket + Shell + ShotgunShell + SmokeShell + UnknownMagazine + Mine + Mine + MineBounding + MineDirectional + + Parameter(s): + 0: STRING - item class + + Returns: + ARRAY in format [category,type] +*/ private["_process"]; _weaponsBase = []; _knownWeapons = []; @@ -36,6 +114,7 @@ _wpnPointers = []; _wpnMuzzles = []; _baseClasses = []; processWeapon = false; +processAttachment = false; _wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; //_wpList sort true; diag_log"//////////////////////////////////////////////////////////////"; @@ -46,16 +125,13 @@ diag_log" /// START OF RUN //////////////////////////////////////////"; _isWeap = false; _isWeapon = false; processWeapon = false; + { _isWeapon = (_item isKindOF [_x, configFile >> "CfgWeapons"]); - if (_isWeapon) exitWith {}; + if (_isWeapon) exitWith {processWeapon = true}; } forEach _allWeaponRoots; - - if (_isWeapon && GRG_Root isEqualTo "") then - { - processWeapon = true; - }; - if (_isWeapon && (count GRG_Root > 0)) then + + if (processWeapon && (count GRG_Root > 0)) then { _leftSTR = [toLower _x,count GRG_Root] call KRON_StrLeft; processWeapon = ((toLower GRG_Root) isEqualTo _leftSTR); @@ -63,7 +139,7 @@ diag_log" /// START OF RUN //////////////////////////////////////////"; //systemChat _msg; diag_log _msg; }; - if (_isWeapon && processWeapon) then + if (processWeapon) then { if (GRG_addIttemsMissingFromPricelistOnly) then { @@ -92,7 +168,7 @@ diag_log" /// START OF RUN //////////////////////////////////////////"; }; }; }; - if (_isWeapon && processWeapon) then + if (processWeapon) then { if ([toLower _x,"base"] call KRON_StrInStr || [toLower _x,"abstract"] call KRON_StrInStr) then { @@ -102,7 +178,45 @@ diag_log" /// START OF RUN //////////////////////////////////////////"; }; }; diag_log format["for item %1, price of %2, root of %3, processWeapon = %4",_x, getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price"),[toLower _x,count GRG_Root] call KRON_StrLeft,processWeapon]; - if (_isWeapon && processWeapon) then + + _fn_includeItem = { + params["_item"]; + private _include = false; + private _leftSTR = [toLower _item,count GRG_Root] call KRON_StrLeft; + if (count GRG_Root > 0) then {_include = ((toLower GRG_Root) isEqualTo _leftSTR);}; + if (_include) then + { + if (GRG_addIttemsMissingFromPricelistOnly) then + { + if(GRG_mod isEqualTo "Exile") then + { + if (isNumber (missionConfigFile >> "CfgExileArsenal" >> _item >> "price")) then + { + diag_log format["price for item %1 = %2 tabs",_item,getNumber(missionConfigFile >> "CfgExileArsenal" >> _item >> "price")]; + _include = false; // Item already listed and assumed to be included in both trader lists and price lists + diag_log format["Item %1 already has a price: Not processing item %1",_item]; + } else { + diag_log format["price for item %1 = %2 tabs",_item,getNumber(missionConfigFile >> "CfgExileArsenal" >> _item >> "price")]; + diag_log format["Item %1 has no price: processing item %1",_item]; + _include = true; + }; + }; + if (GRG_mod isEqualTo "Epoch") then + { + if (isNumber (missionConfigFile >> "CfgPricing" >> _item >> "price")) then + { + _include = false; // Item already listed and assumed to be included in both trader lists and price lists + + } else { + _include = true; + }; + }; + }; + }; + _include + }; + + if (processWeapon) then { //_msg = format["weapons classname extractor: _item = %1",_item]; //diag_log _msg; @@ -141,23 +255,23 @@ diag_log" /// START OF RUN //////////////////////////////////////////"; // Get options for magazines and attachments for that weapon and store these if they are not duplicates for items already listed. _ammoChoices = getArray (configFile >> "CfgWeapons" >> _baseName >> "magazines"); { - if !(_x in _wpnMagazines) then {_wpnMagazines pushback _x}; + if ([_x] call _fn_includeItem && !(_x in _wpnMagazines)) then {_wpnMagazines pushback _x}; }forEach _ammoChoices; _optics = getArray (configfile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems"); { - if !(_x in _wpnOptics) then {_wpnOptics pushback _x}; + if ([_x] call _fn_includeItem && !(_x in _wpnOptics)) then {_wpnOptics pushback _x}; }forEach _optics; _pointers = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems"); { - if !(_x in _wpnPointers) then {_wpnPointers pushback _x}; + if ([_x] call _fn_includeItem && !(_x in _wpnPointers)) then {_wpnPointers pushback _x}; }forEach _pointers; _muzzles = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"); { - if !(_x in _wpnMuzzles) then {_wpnMuzzles pushback _x}; + if ([_x] call _fn_includeItem && !(_x in _wpnMuzzles)) then {_wpnMuzzles pushback _x}; }forEach _muzzles; _underbarrel = getArray (configFile >> "CfgWeapons" >> _baseName >> "WeaponSlotsInfo" >> "UnderBarrelSlot" >> "compatibleItems"); { - if !(_x in _wpnUnderbarrel) then {_wpnUnderbarrel pushback _x}; + if ([_x] call _fn_includeItem && !(_x in _wpnUnderbarrel)) then {_wpnUnderbarrel pushback _x}; }forEach _underbarrel; }; };