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