Merge pull request #7 from Ghostrider-DbD-/Version-0.3

Version 0 3
This commit is contained in:
Ghostrider [GRG] 2017-09-25 05:41:13 -04:00 committed by GitHub
commit 5cb3517a85
7 changed files with 563 additions and 339 deletions

View File

@ -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];

180
testConfig.Altis/items.sqf Normal file
View File

@ -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];

View File

@ -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;

View File

@ -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;

View File

@ -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];

View File

@ -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];

View File

@ -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];