initial files

This commit is contained in:
Samuele Lorefice
2025-05-24 16:17:33 +02:00
commit 9e023649ac
477 changed files with 118566 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
class KPLIB {
class functions {
file = "functions";
class addActionsFob {};
class addActionsPlayer {};
class addObjectInit {};
class addRopeAttachEh {};
class allowCrewInImmobile {};
class checkClass {};
class checkCrateValue {};
class checkGear {};
class checkWeaponCargo {};
class cleanOpforVehicle {};
class clearCargo {};
class crAddAceAction {};
class crateFromStorage {};
class crateToStorage {};
class crawlAllItems {};
class createClearance {};
class createClearanceConfirm {};
class createCrate {};
class createManagedUnit {};
class crGetMulti {};
class crGlobalMsg {};
class doSave {};
class fillStorage {};
class forceBluforCrew {};
class getAdaptiveVehicle {};
class getBluforRatio {};
class getCommander {};
class getCrateHeight {};
class getFobName {};
class getFobResources {};
class getGroupType {};
class getLessLoadedHC {};
class getLoadout {};
class getLocalCap {};
class getLocationName {};
class getMilitaryId {};
class getMobileRespawns {};
class getNearbyPlayers {};
class getNearestBluforObjective {};
class getNearestFob {};
class getNearestSector {};
class getNearestTower {};
class getNearestViVTransport {};
class getOpforCap {};
class getOpforFactor {};
class getOpforSpawnPoint {};
class getPlayerCount {};
class getResistanceTier {};
class getSaveableParam {};
class getSaveData {};
class getSectorOwnership {};
class getSectorRange {};
class getSquadComp {};
class getStoragePositions {};
class getUnitPositionId {};
class getUnitsCount {};
class getWeaponComponents {};
class handlePlacedZeusObject {};
class hasPermission {};
class initSectors {};
class isBigtownActive {};
class isClassUAV {};
class isRadio {};
class log {};
class potatoScan {};
class protectObject {};
class secondsToTimer {};
class setDiscordState {};
class setFobMass {};
class setLoadableViV {};
class setLoadout {};
class setVehicleCaptured {};
class setVehicleSeized {};
class sortStorage {};
class spawnBuildingSquad {};
class spawnCivilians {};
class spawnGuerillaGroup {};
class spawnMilitaryPostSquad {};
class spawnMilitiaCrew {};
class spawnRegularSquad {};
class spawnVehicle {};
class swapInventory {};
};
class functions_curator {
file = "functions\curator";
class initCuratorHandlers {
postInit = 1;
};
class requestZeus {};
};
class functions_ui {
file = "functions\ui";
class overlayUpdateResources {};
};
#include "scripts\client\CfgFunctions.hpp"
#include "scripts\server\CfgFunctions.hpp"
};

View File

@@ -0,0 +1,8 @@
// Permettre aux joueurs de modifier leur distance de vue
GREUH_allow_viewdistance = true;
// Permettre aux joueurs de modifier la qualité de l environnement
GREUH_allow_worldquality = true;
// Permettre aux joueurs de modifier leurs escouades
GREUH_allow_customsquads = true;

View File

@@ -0,0 +1,6 @@
_idact = -1;
while { true } do {
waitUntil{ sleep 0.3; alive player };
_idact = player addAction ["<t color='#FF8000'>" + localize "STR_GREUH_EXTENDED_OPTIONS_ACTIONMENU" + "</t>","GREUH\scripts\GREUH_dialog.sqf","",-1000,false,true];
waitUntil{ sleep 0.3; !alive player};
};

View File

@@ -0,0 +1,49 @@
if (isDedicated) then { exit };
waitUntil { alive player };
desiredviewdistance_inf = viewDistance;
desiredviewdistance_veh = viewDistance;
desiredviewdistance_obj = 75;
desired_fps = 0;
show_teammates = false;
show_nametags = false;
show_platoon = false;
desired_vehvolume = 100;
greuh_options_profile = profileNamespace getVariable "GREUH_OPTIONS_PROFILE";
if ( !isNil "greuh_options_profile" ) then {
desiredviewdistance_inf = greuh_options_profile select 0;
desiredviewdistance_veh = greuh_options_profile select 1;
desiredviewdistance_obj = greuh_options_profile select 2;
show_teammates = greuh_options_profile select 3;
show_platoon = greuh_options_profile select 4;
if ( count greuh_options_profile > 5 ) then {
desired_vehvolume = greuh_options_profile select 5;
if ( isNil "desired_vehvolume" ) then {
desired_vehvolume = 100;
};
};
if ( count greuh_options_profile > 6 ) then {
show_nametags = greuh_options_profile select 6;
if ( isNil "show_nametags" ) then {
show_nametags = false;
};
};
if ( count greuh_options_profile > 7) then {
desired_fps = greuh_options_profile select 7;
if ( isNil "desired_fps" ) then {
desired_fps = 0;
};
};
};
[] call compile preprocessFileLineNumbers "GREUH\GREUH_config.sqf";
[] call compile preprocessFileLineNumbers "GREUH\scripts\GREUH_version.sqf";
execVM "GREUH\scripts\GREUH_actionmanager.sqf";
if ( GREUH_allow_mapmarkers ) then { execVM "GREUH\scripts\GREUH_playermarkers.sqf"; };
if ( GREUH_allow_platoonview ) then { execVM "GREUH\scripts\GREUH_platoonoverlay.sqf"; };
if ( GREUH_allow_platoonview ) then { execVM "GREUH\scripts\GREUH_cache_units.sqf"; };
if ( GREUH_allow_customsquads ) then { execVM "GREUH\scripts\GREUH_squadmanagement.sqf"; };
if ( GREUH_allow_viewdistance ) then { execVM "GREUH\scripts\GREUH_view_distance_management.sqf"; };
execVM "GREUH\scripts\GREUH_dynamic_view_distance.sqf";

View File

@@ -0,0 +1,17 @@
private [ "_scanned_units", "_scanned_groups" ];
waitUntil { !isNil "nametags_distance" };
while { true } do {
_scanned_units = [ allUnits, { ( alive _x ) && ( side group _x == GRLIB_side_friendly ) } ] call BIS_fnc_conditionalSelect;
_scanned_units = [ _scanned_units, { (_x == leader group player ) || (_x distance player < nametags_distance) } ] call BIS_fnc_conditionalSelect;
_scanned_units = [ _scanned_units, { (_x != player) && (( vehicle player ) != ( vehicle _x )) } ] call BIS_fnc_conditionalSelect;
GRLIB_nametag_units = [] + _scanned_units;
_scanned_groups = [ allGroups, { ( side _x == side player ) && ( isplayer (leader _x) ) } ] call BIS_fnc_conditionalSelect;
_scanned_groups = [ _scanned_groups, { ( count units _x > 1 ) || ( count units _x == 1 && leader _x != player ) } ] call BIS_fnc_conditionalSelect;
GRLIB_overlay_groups = [] + _scanned_groups;
sleep 1;
};

View File

@@ -0,0 +1,115 @@
_squadcontrols = [511,512,513,514,515,521,522,523,524,525,526,527];
_platooncontrols = [611,612,613,614];
_viewcontrols = [712,713,714,722,723,724,732,733,734];
_worldcontrols = [812,813,814,815];
_markerscontrols = [911,912,913,914];
_allbuttons = [6677,511,512,513,514,613,614,812,813,814,815,913,914,712,722,732];
_rename_controls = [521,522,523,524,525,526,527];
_leader_controls = [561,562,563,564,565,566,567];
renaming = false;
choosingleader = false;
_dialog = createDialog "GREUH_Menu";
waitUntil { dialog };
if ( GREUH_allow_customsquads ) then {
ctrlShow [501, false];
} else {
ctrlShow [501, true];
{ ctrlShow [_x, false] } foreach _squadcontrols;
};
if ( GREUH_allow_platoonview ) then {
ctrlShow [601, false];
} else {
ctrlShow [601, true];
{ ctrlShow [_x, false] } foreach _platooncontrols;
};
if ( GREUH_allow_viewdistance ) then {
ctrlShow [701, false];
sliderSetRange [712, 1000, 10000];
sliderSetPosition [712, desiredviewdistance_inf];
sliderSetSpeed [712, 500, 500];
sliderSetRange [722, 1000, 10000];
sliderSetPosition [722, desiredviewdistance_veh];
sliderSetSpeed [722, 500, 500];
sliderSetRange [732, 30, 100];
sliderSetPosition [732, desiredviewdistance_obj];
sliderSetSpeed [732, 5, 5];
ctrlSetText [ 960, format ["%1",desired_fps] ];
} else {
ctrlShow [701, true];
{ ctrlShow [_x, false] } foreach _viewcontrols;
};
if ( GREUH_allow_worldquality ) then {
ctrlShow [801, false];
} else {
ctrlShow [801, true];
{ ctrlShow [_x, false] } foreach _worldcontrols;
};
if ( GREUH_allow_mapmarkers ) then {
ctrlShow [901, false];
} else {
ctrlShow [901, true];
{ ctrlShow [_x, false] } foreach _markerscontrols;
};
if ( true ) then {
sliderSetSpeed [ 1102, 5, 5];
sliderSetRange [ 1102, 0, 100];
sliderSetPosition [ 1102, desired_vehvolume ];
};
while { dialog && alive player } do {
if ( renaming ) then {
{ ctrlEnable [_x, false] } foreach (_allbuttons);
{ ctrlShow [_x, true] } foreach _rename_controls;
{ ctrlShow [_x, false] } foreach _leader_controls;
} else {
if ( choosingleader ) then {
{ ctrlEnable [_x, false] } foreach _allbuttons;
{ ctrlShow [_x, false] } foreach _rename_controls;
{ ctrlShow [_x, true] } foreach _leader_controls;
} else {
{ ctrlEnable [_x, true] } foreach _allbuttons;
{ ctrlShow [_x, false] } foreach (_rename_controls + _leader_controls);
ctrlEnable [513,(leader (group player) == player)];
ctrlEnable [514,(leader (group player) == player)];
};
};
if ( GREUH_allow_platoonview ) then { ctrlShow [612, show_platoon]; };
if ( GREUH_allow_mapmarkers ) then { ctrlShow [912, show_teammates]; };
ctrlShow [ 962, show_nametags ];
if ( GREUH_allow_customsquads ) then {
lbClear 515;
{
_brakets = "";
if ( _x == group player ) then { _brakets = ">> "; };
lbAdd [515, format [ "%4%1 - %2 (%3)",groupId _x, name leader _x, count units _x,_brakets ]];
} foreach groups_list;
};
if ( GREUH_allow_viewdistance ) then {
ctrlSetText [713, format [ '%1m' ,round desiredviewdistance_inf]];
ctrlSetText [723, format [ '%1m' ,round desiredviewdistance_veh]];
ctrlSetText [733, format [ '%1m' ,round ((desiredviewdistance_obj / 100.0) * desiredviewdistance_inf) ]];
};
ctrlSetText [ 1103, format [ "%1%2", round (desired_vehvolume), "%" ] ];
desired_fps = parseNumber (ctrlText 960);
uiSleep 0.2;
};
if (!alive player) then { closeDialog 0 };
greuh_options_profile = [ desiredviewdistance_inf, desiredviewdistance_veh, desiredviewdistance_obj, show_teammates, show_platoon, desired_vehvolume, show_nametags, desired_fps ];
profileNamespace setVariable [ "GREUH_OPTIONS_PROFILE",greuh_options_profile ];
saveProfileNamespace;

View File

@@ -0,0 +1,44 @@
GREUH_view_distance_factor = 1.0;
GREUH_force_adjust_view_distance = false;
private _min_view_distance_factor = 0.25;
private _base_increment = 0.075;
private _corrected_increment = -1;
private _consecutive_before_adjust = 3;
private _consecutive_fps_too_low = 0;
private _consecutive_fps_too_fast = 0;
private _smoothing_margin = 0.1;
while { true } do {
_corrected_increment = _base_increment * GREUH_view_distance_factor;
if ( (diag_fps * ( 1 - _smoothing_margin )) < desired_fps ) then {
_consecutive_fps_too_low = _consecutive_fps_too_low + 1;
_consecutive_fps_too_fast = 0;
};
if ( (diag_fps * ( 1 + _smoothing_margin )) > desired_fps ) then {
_consecutive_fps_too_fast = _consecutive_fps_too_fast + 1;
_consecutive_fps_too_low = 0;
};
if ( GREUH_view_distance_factor > _min_view_distance_factor && _consecutive_fps_too_low >= _consecutive_before_adjust ) then {
_consecutive_fps_too_low = 0;
GREUH_view_distance_factor = GREUH_view_distance_factor - _corrected_increment;
if ( GREUH_view_distance_factor < _min_view_distance_factor ) then {
GREUH_view_distance_factor = _min_view_distance_factor;
};
GREUH_force_adjust_view_distance = true;
};
if ( GREUH_view_distance_factor < 1.0 && _consecutive_fps_too_fast >= _consecutive_before_adjust ) then {
_consecutive_fps_too_fast = 0;
GREUH_view_distance_factor = GREUH_view_distance_factor + _corrected_increment;
if ( GREUH_view_distance_factor > 1.0 ) then {
GREUH_view_distance_factor = 1.0;
};
GREUH_force_adjust_view_distance = true;
};
sleep 0.75;
};

View File

@@ -0,0 +1,139 @@
platoon_icon1 = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa";
platoon_icon2 = "\A3\ui_f\data\igui\cfg\cursors\board_ca.paa";
soldier_icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\private_gs.paa";
formation_leader_icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\corporal_gs.paa";
commander_icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\general_gs.paa";
group_leader_icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa";
wounded_icon = "\A3\ui_f\data\map\vehicleicons\pictureHeal_ca.paa";
nametags_distance = 32.0;
private [ "_groups", "_unitstocount", "_totalx", "_totaly", "_totalz", "_alpha", "_textalpha", "_size", "_screenpos", "_grouppos", "_distlabel", "_dist", "_nextunit", "_color", "_drawicon", "_displayname", "_iconpos" ];
waitUntil { !isNil "GRLIB_overlay_groups" };
waitUntil { !isNil "GRLIB_nametag_units" };
["platoon_overlay", "onEachFrame", {
if ( show_platoon ) then {
{
if ( count units _x > 0 ) then {
_totalx = 0;
_totaly = 0;
_totalz = 0;
_grouppos = [];
_unitstocount = [];
{
if ( _x distance (leader group _x) < 300) then {
_unitstocount pushback _x;
_totalx = _totalx + (getpos _x select 0);
_totaly = _totaly + (getpos _x select 1);
_totalz = _totalz + (getpos _x select 2);
};
} foreach units _x;
if ( count _unitstocount > 0 ) then {
_totalx = _totalx / (count _unitstocount);
_totaly = _totaly / (count _unitstocount);
_totalz = _totalz / (count _unitstocount);
};
if ( _totalz > 2.1 ) then {
_grouppos = [_totalx, _totaly, _totalz + 10];
} else {
_grouppos = [_totalx, _totaly, 2.1];
};
_alpha = 0.5;
_textalpha = 0;
_size = 0.8;
_screenpos = worldToScreen _grouppos;
if (count _screenpos != 0) then {
if ( (abs (((worldToScreen _grouppos) select 0) - 0.5) < 0.06) && (abs (((worldToScreen _grouppos) select 1) - 0.5) < 0.08)) then {
_alpha = 1;
_textalpha = 1;
_size = 1;
};
};
_dist = player distance _grouppos;
_distlabel = "";
if ( _dist > 200 ) then {
if ( _dist >= 1000 ) then {
_distlabel = format [" (%1km)", floor (_dist / 1000)];
} else {
_distlabel = format [" (%1m)", (floor (_dist / 100)) * 100];
};
};
_color = [0.8,1,0.2,_alpha];
if ( _x == group player) then { _color = [1,0.9,0.3,_alpha] };
drawIcon3D [platoon_icon1, _color, _grouppos, _size / 2, _size / 2,0, format ["%1 - %2%3",groupID _x, name (leader _x),_distlabel], 2, 0.03 * _textalpha, "puristaMedium"];
drawIcon3D [platoon_icon2, _color, _grouppos, _size, _size,0, "", 2, 0.04, "puristaMedium"];
};
} foreach GRLIB_overlay_groups;
};
if ( show_nametags ) then {
{
_nextunit = _x;
private _local_nametags_distance = nametags_distance;
if( _nextunit == leader group player ) then {
_local_nametags_distance = nametags_distance * 3;
};
_alpha = 1;
if ( _nextunit distance player > (_local_nametags_distance / 2) ) then {
_alpha = 1 - ((((_nextunit distance player) - (_local_nametags_distance / 2)) * 2) / _local_nametags_distance);
};
_color = [];
if ( _nextunit in (units group player)) then {
switch ( _nextunit getVariable [ "GRLIB_squad_color", "MAIN" ] ) do {
case "BLUE" : { _color = [0.15,0.35,1.0,_alpha] };
case "RED" : { _color = [0.8,0,0,_alpha] };
case "YELLOW" : { _color = [0.85,0.85,0,_alpha] };
case "GREEN" : { _color = [0,0.75,0,_alpha] };
default { _color = [0.9,0.9,0.9,_alpha] };
};
} else {
_color = [0.92,0.7,0.25,_alpha];
};
_drawicon = soldier_icon;
if ( _nextunit getVariable [ "FAR_isUnconscious", 0 ] == 1 ) then {
_drawicon = wounded_icon;
} else {
if ( _nextunit == [] call KPLIB_fnc_getCommander ) then {
_drawicon = commander_icon;
} else {
if ( _nextunit == (leader group _nextunit) && (count (units group _nextunit) > 1 ) ) then {
_drawicon = group_leader_icon;
} else {
if ( ( isFormationLeader _nextunit ) && ( count formationMembers _nextunit > 1 ) ) then {
_drawicon = formation_leader_icon;
};
};
};
};
_displayname = "";
if(count (squadParams _nextunit) != 0) then {
_displayname = "[" + ((squadParams _nextunit select 0) select 0) + "] ";
};
_displayname = _displayname + ( name _nextunit );
_height = 2 + ((player distance _nextunit) / (0.75 * _local_nametags_distance));
_iconpos = [ getPosATL _nextunit select 0, getPosATL _nextunit select 1, (getPosATL _nextunit select 2) + _height ];
drawIcon3D [ _drawicon, _color, _iconpos , 0.75, 0.75,0, format [ "%1", _displayname] , 2, 0.032, "puristaMedium"];
} foreach GRLIB_nametag_units;
};
}] call BIS_fnc_addStackedEventHandler;

View File

@@ -0,0 +1,190 @@
private _marked_players = [];
private _marked_vehicles = [];
private _marked_squadmates = [];
private _marker_objs = [];
private _color = "";
private _ticks = 0;
private _cfg = configFile >> "cfgVehicles";
if ( side player == GRLIB_side_friendly ) then {
_color = GRLIB_color_friendly;
} else {
_color = GRLIB_color_enemy;
};
while { true } do {
waitUntil { sleep 0.2; show_teammates };
while { show_teammates } do {
if ( _ticks == 0 ) then {
{
private _nextmarker = _x select 0;
private _nextobj = _x select 1;
if ( (isNull _nextobj) || !(alive _nextobj) ) then {
deleteMarkerLocal _nextmarker;
};
} foreach _marker_objs;
private _playableunits = [];
if ( count playableUnits > 0 ) then {
_playableunits = [ playableUnits, { (side (group _x)) == (side (group player)) } ] call BIS_fnc_conditionalSelect;
} else {
_playableunits = [ player ];
};
{
if ( vehicle _x == _x ) then {
_marked_players pushbackUnique _x;
} else {
_marked_vehicles pushbackUnique (vehicle _x);
};
} foreach _playableunits;
{
if ( alive _x && !(isPlayer _x) ) then {
if ( vehicle _x == _x ) then {
_marked_squadmates pushbackUnique _x;
} else {
_marked_vehicles pushbackUnique (vehicle _x);
};
};
} foreach (units (group player));
private _stuff_to_unmark = [];
{
if ( (vehicle _x != _x) || !(alive _x) ) then {
_stuff_to_unmark pushback _x;
_marked_players = _marked_players - [_x];
};
} foreach _marked_players;
{
if ( (vehicle _x != _x) || !(alive _x) ) then {
_stuff_to_unmark pushback _x;
_marked_squadmates = _marked_squadmates - [_x];
};
} foreach _marked_squadmates;
{
if ( (count (crew _x) == 0) || !(alive _x) ) then {
_stuff_to_unmark pushback _x;
_marked_vehicles = _marked_vehicles - [_x];
};
} foreach _marked_vehicles;
{
private _nextmarker = _x getVariable [ "spotmarker", "" ];
if ( _nextmarker != "" ) then {
deleteMarkerLocal _nextmarker;
_x setVariable [ "spotmarker", "" ];
};
} foreach _stuff_to_unmark;
{
private _nextplayer = _x;
private _marker = _nextplayer getVariable [ "spotmarker", "" ];
if ( _marker == "" ) then {
_marker = ( createMarkerLocal [ format [ "playermarker%1", (allUnits find _x) * (time % 1000) * (floor (random 100)) ], getpos _nextplayer ] );
_marker_objs pushback [ _marker, _nextplayer ];
_nextplayer setVariable [ "spotmarker", _marker ];
private _playername = "";
if( count (squadParams _nextplayer) != 0 ) then {
_playername = "[" + ((squadParams _nextplayer select 0) select 0) + "] ";
};
_playername = _playername + (name _nextplayer);
_marker setMarkerTextLocal _playername;
_marker setMarkerSizeLocal [ 0.75, 0.75 ];
_marker setMarkerColorLocal _color;
};
private _markertype = "mil_start";
if ( _nextplayer getVariable [ "FAR_isUnconscious", 0 ] == 1 ) then {
_markertype = "MinefieldAP";
};
_marker setMarkerTypeLocal _markertype;
} foreach _marked_players;
{
private _nextai = _x;
private _marker = _nextai getVariable [ "spotmarker", "" ];
if ( _marker == "" ) then {
_marker = ( createMarkerLocal [ format [ "squadaimarker%1", (allUnits find _x) * (time % 1000) * (floor (random 10000)) ], getpos _nextai ] );
_marker_objs pushback [ _marker, _nextai ];
_nextai setVariable [ "spotmarker", _marker ];
_marker setMarkerTypeLocal "mil_triangle";
_marker setMarkerSizeLocal [ 0.6, 0.6 ];
_marker setMarkerColorLocal _color;
};
_marker setMarkerTextLocal format [ "%1", ( [ _nextai ] call KPLIB_fnc_getUnitPositionId )];
} foreach _marked_squadmates;
{
private _nextvehicle = _x;
private _marker = _nextvehicle getVariable [ "spotmarker", "" ];
if ( _marker == "" ) then {
_marker = ( createMarkerLocal [ format [ "vehiclemarker%1", (vehicles find _x) * (time % 1000) * (floor (random 10000)) ], getpos _nextvehicle ] );
_marker_objs pushback [ _marker, _nextvehicle ];
_nextvehicle setVariable [ "spotmarker", _marker ];
_marker setMarkerTypeLocal "mil_arrow2";
_marker setMarkerSizeLocal [0.75,0.75];
_marker setMarkerColorLocal _color;
};
private _datcrew = crew _nextvehicle;
private _vehiclename = "";
{
if (isPlayer _x) then {
_vehiclename = _vehiclename + (name _x);
} else {
_vehiclename = _vehiclename + ( format [ "%1", [ _x ] call KPLIB_fnc_getUnitPositionId ] );
};
if( (_datcrew find _x) != ((count _datcrew) - 1) ) then {
_vehiclename = _vehiclename + ",";
};
_vehiclename = _vehiclename + " ";
} foreach _datcrew;
_vehiclename = _vehiclename + "(" + getText (_cfg >> typeOf _nextvehicle >> "displayName") + ")";
_marker setMarkerTextLocal _vehiclename;
} foreach _marked_vehicles;
};
private _markerunits = [] + _marked_players + _marked_squadmates + _marked_vehicles;
{
private _nextunit = _x;
private _marker = _nextunit getVariable [ "spotmarker", "" ];
if ( _marker != "" ) then {
_marker setMarkerPosLocal (getPos _nextunit);
private _mrkdir = getDir _nextunit;
if ( isPlayer _nextunit ) then {
if ( _nextunit getVariable [ "FAR_isUnconscious", 0 ] == 1 ) then {
_mrkdir = 0;
};
};
_marker setMarkerDirLocal _mrkdir;
};
} foreach _markerunits;
_ticks = _ticks + 1;
if ( _ticks > 10 ) then {
_ticks = 0;
};
sleep 0.1;
};
{
private _nextunit = _x;
private _marker = _nextunit getVariable [ "spotmarker", "" ];
if ( _marker != "" ) then {
deleteMarkerLocal _marker;
_nextunit setVariable [ "spotmarker", "" ];
};
} forEach (allUnits + vehicles);
};

View File

@@ -0,0 +1,105 @@
groups_list = [];
squadaction = "";
squadname = "";
if (isNil "global_group_ids") then { global_group_ids = [] };
if (isNil "global_groups_renamed") then { global_groups_renamed = [] };
global_new_leader = [];
while { true } do {
if ( squadaction != "" ) then {
_grp = grpNull;
switch (squadaction) do {
case "create" : {
_grp = createGroup [(side player), true];
[player] join _grp;
hint "New squad created";
};
case "join" : {
if(lbCurSel 515 != -1) then { _grp = groups_list select (lbCurSel 515); };
if (!(isNull _grp) && (_grp != group player)) then {
[player] join _grp;
hint "Squad joined";
};
};
case "rename" : {
if ( leader group player == player ) then {
renaming = true;
ctrlSetText [527, (groupid (group player))];
waitUntil { ((squadaction == "") || (squadname != "") || !(dialog) || !(alive player)) };
if ( alive player && dialog && ( squadname != "" )) then {
if ( (group player) in global_groups_renamed ) then {
global_group_ids set [global_groups_renamed find (group player),squadname];
} else {
global_group_ids = global_group_ids + [squadname];
global_groups_renamed = global_groups_renamed + [group player];
};
publicVariable "global_group_ids";
publicVariable "global_groups_renamed";
};
squadname = "";
renaming = false;
} else {
hint "Sorry, only the squad leader can rename their squad.";
};
};
case "leader" : {
if ( leader group player == player ) then {
choosingleader = true;
choose_squadleader = -10;
_player_group_filtered = [];
{
if ( isPlayer _x ) then {
_player_group_filtered = _player_group_filtered + [_x];
};
} foreach (units group player);
lbClear 567;
{
lbAdd [567, name _x ];
} foreach _player_group_filtered;
_count_units_grp_player = count (units group player);
waitUntil { ((squadaction == "") || (choose_squadleader >= 0) || !(dialog) || !(alive player) || (_count_units_grp_player != count (units group player))) };
if ( alive player && dialog && ( choose_squadleader >= 0 )) then {
global_new_leader = [group player, _player_group_filtered select choose_squadleader];
publicVariable "global_new_leader";
};
choose_squadleader = -10;
choosingleader = false;
} else {
hint "Sorry, only the squad leader can choose a new leader.";
};
};
};
squadaction = "";
};
{ if ( (isplayer leader _x) && (side _x == side player) && !(_x in groups_list)) then { groups_list = groups_list + [_x] }; } foreach allGroups;
{ if (!(_x in allGroups) || (!isplayer leader _x)) then { groups_list = groups_list - [_x] }; } foreach groups_list;
{
if (count global_groups_renamed != 0) then {
if (_x in global_groups_renamed) then {
if (groupid _x != global_group_ids select (global_groups_renamed find _x)) then {
_x setgroupid [(global_group_ids select (global_groups_renamed find _x))];
};
};
};
} foreach groups_list;
if ( count global_new_leader != 0 ) then {
if ( group player == global_new_leader select 0 ) then {
(global_new_leader select 0) selectLeader (global_new_leader select 1);
hint format ["%1 is your new squad leader.",name (global_new_leader select 1)];
global_new_leader = [];
};
};
sleep 0.5;
};

View File

@@ -0,0 +1,4 @@
GREUH_version = 1.2;
player createDiarySubject ["GREUH Options","GREUH Options"];
player createDiaryRecord ["GREUH Options", ["GREUH Options", format ["<font color='#ff8000'>GREUH Extended Options</font><br/>arma.greuh.org<br/><br/><font color='#ff8000'>Scripted by [GREUH] Zbug</font><br/>Version %1",GREUH_version]]];

View File

@@ -0,0 +1,58 @@
private _olddistance_inf = -1;
private _olddistance_veh = -1;
private _olddistance_obj = -1;
private _olddesiredvolume = -1;
private _was_vehicle = false;
private _min_view_distance = 300;
private _desired_inf = -1;
private _desired_veh = -1;
private _desired_obj = -1;
waitUntil { !isNil "GREUH_view_distance_factor" };
waitUntil { !isNil "GREUH_force_adjust_view_distance" };
while { true } do {
waitUntil { sleep 0.3;
(round _olddistance_inf != round desiredviewdistance_inf)
|| (round _olddistance_veh != round desiredviewdistance_veh)
|| (round _olddistance_obj != round desiredviewdistance_obj)
|| ( (( vehicle player == player ) && _was_vehicle)
|| (( vehicle player != player ) && !_was_vehicle) )
|| !(alive player)
|| ( round _olddesiredvolume != round desired_vehvolume)
|| GREUH_force_adjust_view_distance };
waitUntil { alive player };
GREUH_force_adjust_view_distance = false;
_olddistance_inf = round desiredviewdistance_inf;
_olddistance_veh = round desiredviewdistance_veh;
_olddistance_obj = round desiredviewdistance_obj;
_olddesiredvolume = desired_vehvolume;
_was_vehicle = ( vehicle player != player );
if ( _was_vehicle ) then {
_desired_veh = (round desiredviewdistance_veh) * GREUH_view_distance_factor;
if ( _desired_veh < _min_view_distance ) then {
_desired_veh = _min_view_distance;
};
setViewDistance _desired_veh;
1 fadeSound ( desired_vehvolume / 100.0 );
} else {
_desired_inf = (round desiredviewdistance_inf) * GREUH_view_distance_factor;
if ( _desired_inf < _min_view_distance ) then {
_desired_inf = _min_view_distance;
};
setViewDistance _desired_inf;
1 fadeSound 1;
};
_desired_obj = (((desiredviewdistance_obj / 100.0) * desiredviewdistance_inf) * GREUH_view_distance_factor);
if ( _desired_obj < _min_view_distance) then {
_desired_obj = _min_view_distance;
};
setObjectViewDistance _desired_obj;
};

View File

@@ -0,0 +1,889 @@
// Control types
#define CT_STATIC 0
#define CT_BUTTON 1
#define CT_EDIT 2
#define CT_SLIDER 3
#define CT_COMBO 4
#define CT_LISTBOX 5
#define CT_TOOLBOX 6
#define CT_CHECKBOXES 7
#define CT_PROGRESS 8
#define CT_HTML 9
#define CT_STATIC_SKEW 10
#define CT_ACTIVETEXT 11
#define CT_TREE 12
#define CT_STRUCTURED_TEXT 13
#define CT_CONTEXT_MENU 14
#define CT_CONTROLS_GROUP 15
#define CT_SHORTCUT_BUTTON 16 // Arma 2 - textured button
#define CT_XKEYDESC 40
#define CT_XBUTTON 41
#define CT_XLISTBOX 42
#define CT_XSLIDER 43
#define CT_XCOMBO 44
#define CT_ANIMATED_TEXTURE 45
#define CT_OBJECT 80
#define CT_OBJECT_ZOOM 81
#define CT_OBJECT_CONTAINER 82
#define CT_OBJECT_CONT_ANIM 83
#define CT_LINEBREAK 98
#define CT_USER 99
#define CT_MAP 100
#define CT_MAP_MAIN 101
#define CT_List_N_Box 102 // Arma 2 - N columns list box
// Static styles
#define ST_POS 0x0F
#define ST_HPOS 0x03
#define ST_VPOS 0x0C
#define ST_LEFT 0x00
#define ST_RIGHT 0x01
#define ST_CENTER 0x02
#define ST_DOWN 0x04
#define ST_UP 0x08
#define ST_VCENTER 0x0c
#define CT_MAP_MAIN 101
#define ST_PICTURE 48
#define ST_TYPE 0xF0
#define ST_SINGLE 0
#define ST_MULTI 16
#define ST_TITLE_BAR 32
#define ST_PICTURE 48
#define ST_FRAME 64
#define ST_BACKGROUND 80
#define ST_GROUP_BOX 96
#define ST_GROUP_BOX2 112
#define ST_HUD_BACKGROUND 128
#define ST_TILE_PICTURE 144
#define ST_WITH_RECT 160
#define ST_LINE 176
#define ST_SHADOW 0x100
#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI
#define ST_KEEP_ASPECT_RATIO 0x800
#define ST_TITLE ST_TITLE_BAR + ST_CENTER
// Slider styles
#define SL_DIR 0x400
#define SL_VERT 0
#define SL_HORZ 0x400
#define SL_TEXTURES 0x10
// Listbox styles
#define LB_TEXTURES 0x10
#define LB_MULTI 0x20
#define FontM "puristaMedium"
#define BORDERSIZE 0.01
#define BASE_Y 0.075
class RscListBox {
idc = -1;
type = 5;
style = 0 + 0x10;
font = FontM;
sizeEx = 0.018 * safezoneH;
rowHeight = 0.02 * safezoneH;
color[] = COLOR_LIGHTGRAY;
colorText[] = COLOR_WHITE;
colorScrollbar[] = COLOR_BRIGHTGREEN;
colorSelect[] = COLOR_BRIGHTGREEN;
colorSelect2[] = COLOR_BRIGHTGREEN;
colorSelectBackground[] = COLOR_LIGHTGRAY;
colorSelectBackground2[] = COLOR_LIGHTGRAY;
colorActive[] = COLOR_BRIGHTGREEN;
colorDisabled[] = COLOR_GREEN;
columns[] = {0.1, 0.7, 0.1, 0.1};
period = 0;
colorBackground[] = COLOR_GREEN;
maxHistoryDelay = 1.0;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
soundSelect[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1};
shadow = 2;
class ListScrollBar {
color[] = {1, 1, 1, 0.6};
colorActive[] = {1, 1, 1, 1};
colorDisabled[] = {1, 1, 1, 0.3};
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
};
};
class RscCombo {
idc = -1;
type = 4;
style = 1;
x = 0;
y = 0;
w = 0.3;
h = 0.035;
colorSelect[] = COLOR_BRIGHTGREEN;
colorText[] = COLOR_WHITE;
colorBackground[] = COLOR_GREEN;
colorSelectBackground[] = COLOR_LIGHTGRAY;
colorScrollbar[] = COLOR_BRIGHTGREEN;
arrowEmpty ="\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
wholeHeight = 0.45;
color[] = COLOR_LIGHTGRAY;
colorActive[] = COLOR_BRIGHTGREEN;
colorDisabled[] = COLOR_GREEN;
font = FontM;
sizeEx = 0.031;
soundSelect[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1};
soundExpand[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1};
soundCollapse[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.09, 1};
maxHistoryDelay = 1.0;
class ComboScrollBar {
color[] = {1, 1, 1, 0.6};
colorActive[] = {1, 1, 1, 1};
colorDisabled[] = {1, 1, 1, 0.3};
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
};
};
class GREUH_Menu {
idd = 5565;
movingEnable = false;
controlsBackground[] = {};
controls[] = {"GREUH_OuterBG", "BgPicture", "GREUH_OuterBG_F","GREUH_InnerBG", "GREUH_InnerBG_F","GREUH_Header","GREUH_SquadLabel",
"GREUH_SquadZone","GREUH_PlatoonLabel","GREUH_ViewDistance","GREUH_WorldQuality",
"GREUH_Close","GREUH_ButtonWorldVeryLow","GREUH_ButtonWorldLow","GREUH_ButtonWorldNormal","GREUH_ButtonWorldHigh",
"GREUH_Slider","GREUH_SliderVD","GREUH_LabelMarkers","GREUH_TeammatesYes","GREUH_TeammatesNo","GREUH_LabelPlatoon",
"GREUH_PlatoonYes","GREUH_PlatoonNo","GREUH_LabelPlatoonActive","GREUH_LabelMarkersActive","GREUH_SquadList",
"GREUH_ButtonJoin","GREUH_ButtonNew","GREUH_ButtonRename","GREUH_PlatoonZone","GREUH_ViewZone","GREUH_WorldZone",
"GREUH_MarkersZone","GREUH_Squad_OuterBG","GREUH_Squad_InnerBG","GREUH_Squad_OuterBG_F","GREUH_Squad_InnerBG_F",
"GREUH_ButtonName_Rename","GREUH_ButtonName_Abort","GREUH_Squad_TextField","GREUH_LabelVD","GREUH_ButtonLeader",
"GREUH_SliderVeh","GREUH_LabelVDVeh","GREUH_SliderVDVeh","GREUH_SliderObj","GREUH_LabelVDObj","GREUH_SliderVDObj",
"GREUH_Leader_OuterBG", "GREUH_Leader_InnerBG", "GREUH_Leader_OuterBG_F", "GREUH_Leader_InnerBG_F",
"GREUH_ButtonLeader_Choose", "GREUH_ButtonLeader_Abort", "GREUH_Squad_Combo", "GREUH_VehSound", "GREUH_SliderVehSound",
"GREUH_LabelVehSound","GREUH_LabelNametags","GREUH_NametagsActive","GREUH_NametagsYes","GREUH_NametagsNo",
"GREUH_FPSLabel","GREUH_FPSEdit"};
objects[] = {};
class BgPicture {
idc = -1;
type = CT_STATIC;
style = ST_PICTURE;
colorText[] = {0.5, 0.4, 0.25, 0.6};
colorBackground[] = {0, 0, 0, 1};
font = FontM;
sizeEx = 0.023;
moving = false;
text = "res\camo03.jpg";
x = (0.15 * safezoneW + safezoneX) - ( 2 * BORDERSIZE);
y = ((BASE_Y + 0.02) * safezoneH) + safezoneY - (3 * BORDERSIZE);
w = (0.2 * safezoneW) + (4 * BORDERSIZE);
h = (0.79 * safezoneH) + (6 * BORDERSIZE);
};
class GREUH_OuterBG {
idc = -1;
type = CT_STATIC;
style = ST_SINGLE;
colorText[] = COLOR_BLACK;
colorBackground[] = COLOR_BROWN;
font = FontM;
sizeEx = 0.023;
x = (0.15 * safezoneW + safezoneX) - ( 2 * BORDERSIZE);
y = ((BASE_Y + 0.02) * safezoneH) + safezoneY - (3 * BORDERSIZE);
w = (0.2 * safezoneW) + (4 * BORDERSIZE);
h = (0.79 * safezoneH) + (6 * BORDERSIZE);
text = "";
};
class GREUH_OuterBG_F : GREUH_OuterBG {
style = ST_FRAME;
};
class GREUH_InnerBG : GREUH_OuterBG {
colorBackground[] = COLOR_GREEN;
x = (0.15 * safezoneW + safezoneX) - ( BORDERSIZE);
y = ((BASE_Y + 0.07) * safezoneH) + safezoneY - (1.5 * BORDERSIZE);
w = 0.2 * safezoneW + (2 * BORDERSIZE);
h = 0.74 * safezoneH + (3 * BORDERSIZE);
};
class GREUH_InnerBG_F : GREUH_InnerBG {
style = ST_FRAME;
};
class GREUH_StdText {
idc = -1;
type = CT_STATIC;
style = ST_LEFT;
colorText[] = COLOR_WHITE;
colorBackground[] = COLOR_NOALPHA;
font = FontM;
sizeEx = 0.02 * safezoneH;
shadow = 2;
};
class GREUH_StdHeader : GREUH_StdText {
style = ST_CENTER;
sizeEx = 0.03 * safezoneH;
};
class GREUH_Header : GREUH_StdHeader {
x = 0.15 * safezoneW + safezoneX - (BORDERSIZE);
y = ((BASE_Y + 0.01) * safezoneH) + safezoneY;
w = 0.2 * safezoneW + ( 2 * BORDERSIZE);
h = 0.05 * safezoneH - (BORDERSIZE);
text = $STR_GREUH_EXTENDED_OPTIONS;
colorBackground[] = COLOR_LIGHTGRAY;
};
class GREUH_ButtonGeneric {
idc = -1;
type = CT_BUTTON;
style = ST_CENTER;
default = false;
font = FontM;
sizeEx = 0.018 * safezoneH;
colorText[] = { 0, 0, 0, 1 };
colorFocused[] = { 1, 1, 1, 1 };
colorDisabled[] = { 0.2, 0.2, 0.2, 0.7 };
colorBackground[] = { 0.8, 0.8, 0.8, 0.8 };
colorBackgroundDisabled[] = { 0.5, 0.5, 0.5, 0.5 };
colorBackgroundActive[] = { 1, 1, 1, 1 };
offsetX = 0.003;
offsetY = 0.003;
offsetPressedX = 0.002;
offsetPressedY = 0.002;
colorShadow[] = { 0, 0, 0, 0.5 };
colorBorder[] = { 0, 0, 0, 1 };
borderSize = 0;
soundEnter[] = { "", 0, 1 }; // no sound
soundPush[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.891251, 1};
soundClick[] = { "", 0, 1 }; // no sound
soundEscape[] = { "", 0, 1 }; // no sound
x = 0.15 * safezoneW + safezoneX;
w = 0.2 * safezoneW; h = 0.03 * safezoneH;
text = "";
action = "";
shadow = 1;
};
class GREUH_Label : GREUH_StdHeader {
x = 0.15 * safezoneW + safezoneX;
w = 0.2 * safezoneW;
h = 0.03 * safezoneH;
sizeEx = 0.02 * safezoneH;
colorBackground[] = COLOR_LIGHTGREEN;
};
class GREUH_DefaultZone : GREUH_StdText {
style = ST_CENTER;
x = 0.15 * safezoneW + safezoneX;
w = 0.2 * safezoneW;
colorText[] = COLOR_LIGHTGRAY;
colorBackground[] = COLOR_RED_DISABLED;
text = $STR_GREUH_DISABLED;
};
class GREUH_RegularLabel : GREUH_Label {
colorBackground[] = COLOR_NOALPHA;
style = ST_LEFT;
};
class GREUH_Close : GREUH_ButtonGeneric {
idc = 6677;
x = 0.335 * safezoneW + safezoneX;
w = 0.015 * safezoneW; h = 0.02 * safezoneH;
y = ((BASE_Y + 0.015) * safezoneH) + safezoneY;
text = "X";
action = "closeDialog 0";
};
class GREUH_SquadZone : GREUH_DefaultZone {
idc = 501;
y = ((BASE_Y + 0.11) * safezoneH) + safezoneY;
h = (0.2 * safezoneH) - (2 * BORDERSIZE);
};
class GREUH_SquadLabel : GREUH_Label {
idc = 510;
y = ((BASE_Y + 0.07) * safezoneH) + safezoneY;
text = $STR_GREUH_SQUAD_MANAGEMENT;
};
class GREUH_SquadList : RscListBox {
idc = 515;
x = 0.15 * safezoneW + safezoneX;
w = 0.15 * safezoneW;
y = ((BASE_Y + 0.11) * safezoneH) + safezoneY;
h = (0.2 * safezoneH) - (2 * BORDERSIZE);
};
class GREUH_ButtonSquad : GREUH_ButtonGeneric {
x = 0.3 * safezoneW + safezoneX + BORDERSIZE;
w = ((0.2 * safezoneW) / 4) - BORDERSIZE;
};
class GREUH_ButtonJoin : GREUH_ButtonSquad {
idc = 511;
text = $STR_GREUH_JOIN;
action = "squadaction = 'join';";
y = ((BASE_Y + 0.11) * safezoneH) + safezoneY;
};
class GREUH_ButtonNew : GREUH_ButtonSquad {
idc = 512;
text = $STR_GREUH_CREATE;
action = "squadaction = 'create';";
y = ((BASE_Y + 0.15) * safezoneH) + safezoneY;
};
class GREUH_ButtonRename : GREUH_ButtonSquad {
idc = 513;
text = $STR_GREUH_RENAME;
action = "squadaction = 'rename';";
y = ((BASE_Y + 0.19) * safezoneH) + safezoneY;
};
class GREUH_ButtonLeader : GREUH_ButtonSquad {
idc = 514;
text = $STR_GREUH_LEADER;
action = "squadaction = 'leader';";
y = ((BASE_Y + 0.23) * safezoneH) + safezoneY;
};
class GREUH_Squad_OuterBG : GREUH_OuterBG {
idc = 521;
style = ST_SINGLE;
x = (0.37 * safezoneW + safezoneX) - (BORDERSIZE);
y = ((BASE_Y + 0.18) * safezoneH) + safezoneY - (1.5 * BORDERSIZE);
w = 0.2 * safezoneW + (2 * BORDERSIZE);
h = 0.05 * safezoneH + (3 * BORDERSIZE);
};
class GREUH_Squad_InnerBG : GREUH_OuterBG {
idc = 522;
colorBackground[] = COLOR_GREEN;
x = (0.37 * safezoneW + safezoneX);
y = ((BASE_Y + 0.18) * safezoneH) + safezoneY;
w = 0.2 * safezoneW;
h = 0.05 * safezoneH;
};
class GREUH_Squad_OuterBG_F : GREUH_Squad_OuterBG {
idc = 523;
style = ST_FRAME;
};
class GREUH_Squad_InnerBG_F : GREUH_Squad_InnerBG {
idc = 524;
style = ST_FRAME;
};
class GREUH_ButtonName : GREUH_ButtonGeneric {
w = ((0.2 * safezoneW) / 5) - BORDERSIZE;
y = ((BASE_Y + 0.19) * safezoneH) + safezoneY;
};
class GREUH_ButtonName_Rename : GREUH_ButtonName {
idc = 525;
x = 0.4875 * safezoneW + safezoneX;
text = $STR_GREUH_RENAME;
action = "squadname = ctrlText 527;";
};
class GREUH_ButtonName_Abort : GREUH_ButtonName {
idc = 526;
x = (0.4875 * safezoneW + safezoneX) + ((0.2 * safezoneW) / 5);
text = $STR_GREUH_CANCEL;
action = "squadaction = '';";
};
class GREUH_Squad_TextField : GREUH_ButtonName {
idc = 527;
type = CT_EDIT;
style = ST_LEFT;
x = (0.37 * safezoneW + safezoneX) + BORDERSIZE;
w = 0.11 * safezoneW;
text = "";
action = "";
colorText[] = COLOR_WHITE;
colorSelection[] = COLOR_BRIGHTGREEN;
autocomplete = "";
};
class GREUH_Leader_OuterBG : GREUH_OuterBG {
idc = 561;
style = ST_SINGLE;
x = (0.37 * safezoneW + safezoneX) - (BORDERSIZE);
y = ((BASE_Y + 0.22) * safezoneH) + safezoneY - (1.5 * BORDERSIZE);
w = 0.2 * safezoneW + (2 * BORDERSIZE);
h = 0.05 * safezoneH + (3 * BORDERSIZE);
};
class GREUH_Leader_InnerBG : GREUH_OuterBG {
idc = 562;
colorBackground[] = COLOR_GREEN;
x = (0.37 * safezoneW + safezoneX);
y = ((BASE_Y + 0.22) * safezoneH) + safezoneY;
w = 0.2 * safezoneW;
h = 0.05 * safezoneH;
};
class GREUH_Leader_OuterBG_F : GREUH_Leader_OuterBG {
idc = 563;
style = ST_FRAME;
};
class GREUH_Leader_InnerBG_F : GREUH_Leader_InnerBG {
idc = 564;
style = ST_FRAME;
};
class GREUH_ButtonLeaderGen : GREUH_ButtonGeneric {
w = ((0.2 * safezoneW) / 5) - BORDERSIZE;
y = ((BASE_Y + 0.23) * safezoneH) + safezoneY;
};
class GREUH_ButtonLeader_Choose : GREUH_ButtonLeaderGen {
idc = 565;
x = 0.4875 * safezoneW + safezoneX;
text = $STR_GREUH_CHOOSE;
action = "choose_squadleader = lbCurSel 567;";
};
class GREUH_ButtonLeader_Abort : GREUH_ButtonLeaderGen {
idc = 566;
x = (0.4875 * safezoneW + safezoneX) + ((0.2 * safezoneW) / 5);
text = $STR_GREUH_CANCEL;
action = "squadaction = ''";
};
class GREUH_Squad_Combo : RscCombo {
idc = 567;
x = (0.37 * safezoneW + safezoneX) + BORDERSIZE;
w = 0.11 * safezoneW;
y = ((BASE_Y + 0.23) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
};
class GREUH_PlatoonZone : GREUH_DefaultZone {
idc = 601;
y = ((BASE_Y + 0.35) * safezoneH) + safezoneY;
h = (0.04 * safezoneH) - (2 * BORDERSIZE);
};
class GREUH_PlatoonLabel : GREUH_Label {
idc = 610;
y = ((BASE_Y + 0.31) * safezoneH) + safezoneY;
text = $STR_GREUH_PLATOON_SQUAD_AWARENESS;
};
class GREUH_LabelPlatoon : GREUH_RegularLabel {
idc = 611;
y = ((BASE_Y + 0.35) * safezoneH) + safezoneY;
text = $STR_GREUH_SHOW_PLATOON_OVERLAY;
};
class GREUH_LabelPlatoonActive : GREUH_RegularLabel {
idc = 612;
style = ST_RIGHT;
colorText[] = COLOR_BRIGHTGREEN;
text = $STR_GREUH_ACTIVE;
x = 0.2 * safezoneW + safezoneX;
w = 0.1 * safezoneW;
y = ((BASE_Y + 0.35) * safezoneH) + safezoneY;
};
class GREUH_PlatoonYes : GREUH_ButtonGeneric {
idc = 613;
w = ((0.08 * safezoneW) / 4);
y = ((BASE_Y + 0.35) * safezoneH) + safezoneY;
x = 0.305 * safezoneW + safezoneX;
text = $STR_GREUH_YES;
action = "show_platoon = true";
};
class GREUH_PlatoonNo : GREUH_ButtonGeneric {
idc = 614;
w = ((0.08 * safezoneW) / 4);
y = ((BASE_Y + 0.35) * safezoneH) + safezoneY;
x = (0.32 + BORDERSIZE) * safezoneW + safezoneX;
text = $STR_GREUH_NO;
action = "show_platoon = false";
};
class GREUH_ViewZone : GREUH_DefaultZone {
idc = 701;
y = ((BASE_Y + 0.51) * safezoneH) + safezoneY;
h = (0.04 * safezoneH) - (2 * BORDERSIZE);
};
class GREUH_ViewDistance : GREUH_Label {
idc = 711;
y = ((BASE_Y + 0.47) * safezoneH) + safezoneY;
text = $STR_GREUH_ADJUST_VIEW_DISTANCE;
};
class GREUH_Slider {
idc = 712;
type = CT_SLIDER;
style = SL_HORZ;
x = 0.19 * safezoneW + safezoneX;
w = 0.12 * safezoneW;
y = ((BASE_Y + 0.515) * safezoneH) + safezoneY;
h = 0.025 * safezoneH;
text = $STR_GREUH_VIEW_DISTANCE;
color[] = { 1, 1, 1, 1 };
coloractive[] = { 1, 1, 1, 1 };
onSliderPosChanged = "desiredviewdistance_inf = (sliderPosition 712)";
};
class GREUH_SliderVD : GREUH_Label {
idc = 713;
style = ST_LEFT;
x = 0.31 * safezoneW + safezoneX;
w = 0.05 * safezoneW;
y = ((BASE_Y + 0.505) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = COLOR_NOALPHA;
text = "";
};
class GREUH_LabelVD : GREUH_Label {
idc = 714;
style = ST_LEFT;
x = 0.15 * safezoneW + safezoneX;
w = 0.05 * safezoneW;
y = ((BASE_Y + 0.505) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = COLOR_NOALPHA;
text = $STR_GREUH_INFANTRY;
};
class GREUH_SliderVeh {
idc = 722;
type = CT_SLIDER;
style = SL_HORZ;
x = 0.19 * safezoneW + safezoneX;
w = 0.12 * safezoneW;
y = ((BASE_Y + 0.545) * safezoneH) + safezoneY;
h = 0.025 * safezoneH;
text = $STR_GREUH_VIEW_DISTANCE;
color[] = { 1, 1, 1, 1 };
coloractive[] = { 1, 1, 1, 1 };
onSliderPosChanged = "desiredviewdistance_veh = (sliderPosition 722)";
};
class GREUH_SliderVDVeh : GREUH_Label {
idc = 723;
style = ST_LEFT;
x = 0.31 * safezoneW + safezoneX;
w = 0.05 * safezoneW;
y = ((BASE_Y + 0.535) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = COLOR_NOALPHA;
text = "";
};
class GREUH_LabelVDVeh : GREUH_Label {
idc = 724;
style = ST_LEFT;
x = 0.15 * safezoneW + safezoneX;
w = 0.05 * safezoneW;
y = ((BASE_Y + 0.535) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = COLOR_NOALPHA;
text = $STR_GREUH_VEHICLES;
};
class GREUH_SliderObj {
idc = 732;
type = CT_SLIDER;
style = SL_HORZ;
x = 0.19 * safezoneW + safezoneX;
w = 0.12 * safezoneW;
y = ((BASE_Y + 0.575) * safezoneH) + safezoneY;
h = 0.025 * safezoneH;
text = $STR_GREUH_VIEW_DISTANCE;
color[] = { 1, 1, 1, 1 };
coloractive[] = { 1, 1, 1, 1 };
onSliderPosChanged = "desiredviewdistance_obj = (sliderPosition 732)";
};
class GREUH_SliderVDObj : GREUH_Label {
idc = 733;
style = ST_LEFT;
x = 0.31 * safezoneW + safezoneX;
w = 0.05 * safezoneW;
y = ((BASE_Y + 0.565) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = COLOR_NOALPHA;
text = "";
};
class GREUH_LabelVDObj : GREUH_Label {
idc = 734;
style = ST_LEFT;
x = 0.15 * safezoneW + safezoneX;
w = 0.05 * safezoneW;
y = ((BASE_Y + 0.565) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = COLOR_NOALPHA;
text = $STR_GREUH_OBJECTS;
};
class GREUH_FPSLabel : GREUH_Label {
idc = 724;
style = ST_LEFT;
x = 0.15 * safezoneW + safezoneX;
w = 0.3 * safezoneW;
y = ((BASE_Y + 0.61) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = COLOR_NOALPHA;
sizeEx = 0.018 * safezoneH;
text = $STR_GREUH_ADJUST_VIEW_DISTANCE_TO_KEEP_FPS_ABOVE;
};
class GREUH_FPSEdit {
idc = 960;
type = CT_EDIT;
style = ST_LEFT + ST_FRAME;
x = 0.317 * safezoneW + safezoneX;
w = 0.03 * safezoneW;
y = ((BASE_Y + 0.61) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = {0,0,0,0};
colorText[] = {1,1,1,1};
colorSelection[] = {1,1,1,0.25};
colorDisabled[] = { 0.2, 0.2, 0.2, 0.7 };
colorBackgroundDisabled[] = { 0.5, 0.5, 0.5, 0.5 };
font = FontM;
sizeEx = 0.02 * safezoneH;
autocomplete = "";
text = "";
shadow = 0;
};
class GREUH_WorldZone : GREUH_DefaultZone {
idc = 801;
y = ((BASE_Y + 0.7) * safezoneH) + safezoneY;
h = (0.04 * safezoneH) - (2 * BORDERSIZE);
};
class GREUH_WorldQuality : GREUH_Label {
idc = 810;
y = ((BASE_Y + 0.66) * safezoneH) + safezoneY;
text = $STR_GREUH_ADJUST_TERRAIN_DETAILS;
};
class GREUH_ButtonWorld : GREUH_ButtonGeneric {
w = ((0.2 * safezoneW) / 4) - BORDERSIZE;
y = ((BASE_Y + 0.7) * safezoneH) + safezoneY;
};
class GREUH_ButtonWorldVeryLow : GREUH_ButtonWorld {
idc = 812;
x = 0.15 * safezoneW + safezoneX;
text = $STR_GREUH_VERY_LOW;
action = "setTerrainGrid 50; hint 'Terrain details set to Very Low'";
};
class GREUH_ButtonWorldLow : GREUH_ButtonWorld {
idc = 813;
x = (0.15 * safezoneW + safezoneX) + (((0.2 * safezoneW) / 4) * 1);
text = $STR_GREUH_LOW;
action = "setTerrainGrid 25; hint 'Terrain details set to Low'";
};
class GREUH_ButtonWorldNormal : GREUH_ButtonWorld {
idc = 814;
x = (0.15 * safezoneW + safezoneX) + (((0.2 * safezoneW) / 4) * 2);
text = $STR_GREUH_NORMAL;
action = "setTerrainGrid 12.5; hint 'Terrain details set to Normal'";
};
class GREUH_ButtonWorldHigh : GREUH_ButtonWorld {
idc = 815;
x = (0.15 * safezoneW + safezoneX) + (((0.2 * safezoneW) / 4) * 3);
text = $STR_GREUH_HIGH;
action = "setTerrainGrid 3.125; hint 'Terrain details set to High'";
};
class GREUH_MarkersZone : GREUH_DefaultZone {
idc = 901;
y = ((BASE_Y + 0.43) * safezoneH) + safezoneY;
h = (0.04 * safezoneH) - (2 * BORDERSIZE);
};
class GREUH_LabelNametags : GREUH_RegularLabel {
idc = 961;
y = ((BASE_Y + 0.39) * safezoneH) + safezoneY;
text = $STR_GREUH_SHOW_PLAYER_NAMETAGS;
};
class GREUH_NametagsActive : GREUH_RegularLabel {
idc = 962;
style = ST_RIGHT;
colorText[] = COLOR_BRIGHTGREEN;
text = $STR_GREUH_ACTIVE;
x = 0.2 * safezoneW + safezoneX;
w = 0.1 * safezoneW;
y = ((BASE_Y + 0.39) * safezoneH) + safezoneY;
};
class GREUH_NametagsYes : GREUH_ButtonGeneric {
idc = 963;
w = ((0.08 * safezoneW) / 4);
y = ((BASE_Y + 0.39) * safezoneH) + safezoneY;
x = 0.305 * safezoneW + safezoneX;
text = $STR_GREUH_YES;
action = "show_nametags = true";
};
class GREUH_NametagsNo : GREUH_ButtonGeneric {
idc = 964;
w = ((0.08 * safezoneW) / 4);
y = ((BASE_Y + 0.39) * safezoneH) + safezoneY;
x = (0.32 + BORDERSIZE) * safezoneW + safezoneX;
text = $STR_GREUH_NO;
action = "show_nametags = false";
};
class GREUH_LabelMarkers : GREUH_RegularLabel {
idc = 911;
y = ((BASE_Y + 0.43) * safezoneH) + safezoneY;
text = $STR_GREUH_SHOW_TEAMMATES_ON_MAP;
};
class GREUH_LabelMarkersActive : GREUH_RegularLabel {
idc = 912;
style = ST_RIGHT;
colorText[] = COLOR_BRIGHTGREEN;
text = $STR_GREUH_ACTIVE;
x = 0.2 * safezoneW + safezoneX;
w = 0.1 * safezoneW;
y = ((BASE_Y + 0.43) * safezoneH) + safezoneY;
};
class GREUH_TeammatesYes : GREUH_ButtonGeneric {
idc = 913;
w = ((0.08 * safezoneW) / 4);
y = ((BASE_Y + 0.43) * safezoneH) + safezoneY;
x = 0.305 * safezoneW + safezoneX;
text = $STR_GREUH_YES;
action = "show_teammates = true";
};
class GREUH_TeammatesNo : GREUH_ButtonGeneric {
idc = 914;
w = ((0.08 * safezoneW) / 4);
y = ((BASE_Y + 0.43) * safezoneH) + safezoneY;
x = (0.32 + BORDERSIZE) * safezoneW + safezoneX;
text = $STR_GREUH_NO;
action = "show_teammates = false";
};
class GREUH_VehSound : GREUH_Label {
idc = 1101;
y = ((BASE_Y + 0.74) * safezoneH) + safezoneY;
text = $STR_GREUH_INVEHICLE_SOUND_VOLUME;
};
class GREUH_SliderVehSound {
idc = 1102;
type = CT_SLIDER;
style = SL_HORZ;
x = 0.15 * safezoneW + safezoneX;
w = 0.16 * safezoneW;
y = ((BASE_Y + 0.785) * safezoneH) + safezoneY;
h = 0.025 * safezoneH;
text = $STR_GREUH_VIEW_DISTANCE;
color[] = { 1, 1, 1, 1 };
coloractive[] = { 1, 1, 1, 1 };
onSliderPosChanged = "desired_vehvolume = (sliderPosition 1102)";
};
class GREUH_LabelVehSound : GREUH_Label {
idc = 1103;
style = ST_LEFT;
x = 0.31 * safezoneW + safezoneX;
w = 0.05 * safezoneW;
y = ((BASE_Y + 0.775) * safezoneH) + safezoneY;
h = 0.03 * safezoneH;
colorBackground[] = COLOR_NOALPHA;
text = $STR_GREUH_TEST;
};
};
class GreuhButton {
idc = -1;
type = CT_BUTTON;
style = ST_CENTER;
default = false;
font = FontM;
sizeEx = 0.018 * safezoneH;
colorText[] = { 0, 0, 0, 1 };
colorFocused[] = { 1, 1, 1, 1 };
colorDisabled[] = { 0.2, 0.2, 0.2, 0.7 };
colorBackground[] = { 0.8, 0.8, 0.8, 0.8 };
colorBackgroundDisabled[] = { 0.5, 0.5, 0.5, 0.5 };
colorBackgroundActive[] = { 1, 1, 1, 1 };
offsetX = 0.003;
offsetY = 0.003;
offsetPressedX = 0.002;
offsetPressedY = 0.002;
colorShadow[] = { 0, 0, 0, 0.5 };
colorBorder[] = { 0, 0, 0, 1 };
borderSize = 0;
soundEnter[] = { "", 0, 1 }; // no sound
soundPush[] = {"\a3\Ui_f\data\Sound\CfgIngameUI\hintExpand", 0.891251, 1};
soundClick[] = { "", 0, 1 }; // no sound
soundEscape[] = { "", 0, 1 }; // no sound
x = 0.45 * safezoneW + safezoneX;
y = ((BASE_Y + 0.7) * safezoneH) + safezoneY;
w = 0.1 * safezoneW;
h = 0.04 * safezoneH;
text = "";
action = "";
shadow = 1;
};
class GREUH_respawn {
idd = 5566;
movingEnable = false;
controlsBackground[] = {"GREUH_BleedoutBar_BG"};
controls[] = {"GREUH_BleedoutBar","GREUH_BleedoutBar_F","GREUH_Useless","GREUH_Respawn","GREUH_ReviveLabel","GREUH_WoundedLabel", "GREUH_ReplaceAI"};
objects[] = {};
class GREUH_Respawn : GreuhButton {
idc = -1;
x = 0.45 * safezoneW + safezoneX;
y = 0.75 * safezoneH + safezoneY;
w = 0.1 * safezoneW;
h = 0.04 * safezoneH;
text = $STR_GREUH_RESPAWN;
action = "player setDamage 1";
};
class GREUH_ReplaceAI : GreuhButton {
idc = 678;
x = 0.45 * safezoneW + safezoneX;
y = 0.8 * safezoneH + safezoneY;
w = 0.1 * safezoneW;
h = 0.04 * safezoneH;
text = $STR_GREUH_REPLACE_NEAREST_AI;
action = "replace_ai = 1";
};
class GREUH_Useless : GREUH_Respawn {
idc = -1;
x = -5;
y = -5;
w = 0.1;
h = 0.1;
text = "";
action = "";
};
class GREUH_ReviveLabel {
idc = 5567;
type = CT_STATIC;
style = ST_CENTER;
colorText[] = COLOR_WHITE;
colorBackground[] = COLOR_NOALPHA;
font = FontM;
sizeEx = 0.02 * safezoneH;
shadow = 1;
x = 0.4 * safezoneW + safezoneX;
y = 0.7 * safezoneH + safezoneY;
w = 0.2 * safezoneW;
h = 0.025 * safezoneH;
text = "";
};
class GREUH_WoundedLabel {
idc = 4567;
type = CT_STATIC;
style = ST_CENTER;
colorText[] = COLOR_WHITE;
colorBackground[] = COLOR_NOALPHA;
font = FontM;
sizeEx = 0.07 * safezoneH;
shadow = 1;
x = 0.3 * safezoneW + safezoneX;
y = 0.25 * safezoneH + safezoneY;
w = 0.4 * safezoneW;
h = 0.07 * safezoneH;
text = $STR_REVIVE_LABEL;
};
class GREUH_BleedoutBar {
idc = 6699;
type = CT_STATIC;
style = ST_SINGLE;
colorText[] = COLOR_WHITE;
colorBackground[] = COLOR_BLEEDOUT;
font = FontM;
sizeEx = 0.023;
x = 0.4 * safezoneW + safezoneX;
y = 0.7 * safezoneH + safezoneY;
w = 0.2 * safezoneW;
h = 0.03 * safezoneH;
text = "";
};
class GREUH_BleedoutBar_BG : GREUH_BleedoutBar {
idc = -1;
colorBackground[] = COLOR_BLACK_ALPHA;
x = 0.4 * safezoneW + safezoneX - 0.005;
y = 0.7 * safezoneH + safezoneY - 0.005;
w = 0.2 * safezoneW + 0.01;
h = 0.03 * safezoneH + 0.01;
};
class GREUH_BleedoutBar_F : GREUH_BleedoutBar {
idc = 6698;
colorText[] = COLOR_WHITE;
style = ST_FRAME;
x = 0.4 * safezoneW + safezoneX - 0.005;
y = 0.7 * safezoneH + safezoneY - 0.005;
w = 0.2 * safezoneW + 0.01;
h = 0.03 * safezoneH + 0.01;
};
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,138 @@
/*
Killah Potatoes GUI defines and functions
File: KPGUI_defines.hpp
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-07-10
Last Update: 2020-04-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
UI defines and functions used in mods and missions from the Killah Potatoes Gaming Community.
*/
// Prefix for this use case to avoid issues with duplicated definitions
#define KPGUI_PRE KPLIB
/*
--- General Defines ---
*/
// Text sizes
#define KP_TEXT_XS safeZoneH * 0.016
#define KP_TEXT_S safeZoneH * 0.018
#define KP_TEXT_M safeZoneH * 0.02
#define KP_TEXT_L safeZoneH * 0.025
#define KP_TEXT_XL safeZoneH * 0.03
// Constant values for calculation
#define KP_SPACING_X 0.002
#define KP_SPACING_Y 0.004
#define KP_HEIGTH_TITLE 0.035
#define KP_HEIGTH_BUTTON 0.025
// Colors
#define KP_COLOR_PLAYERDEFINE {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}
#define KP_COLOR_BACKGROUND {0, 0, 0, 0.5}
/*
--- Functions ---
*/
/*
Get X coordinate
Example: KP_GETCX(KP_X_VAL,KP_WIDTH_VAL,2,4)
KP_X_VAL -> Left offset of the left dialog side from the edge of the screen
KP_WIDTH_VAL -> Width of the whole dialog (KP_X_VAL spacing to the left and to the right)
2 -> Coordinate of the 3rd element position (0,1,2,3,etc.)
4 -> In relation to a 4 element X grid
GETX is for a coordinate in relation to the whole dialog width
GETCX is for a coordinate in relation to the content area (which has an equal spacing to all sides)
*/
#define KP_GETX(XVAL,WVAL,POS,GRID) safeZoneX + safeZoneW * (XVAL + POS * (WVAL + KP_SPACING_X) / GRID)
#define KP_GETCX(XVAL,WVAL,POS,GRID) safeZoneX + safeZoneW * (XVAL + (POS * WVAL + (GRID - POS) * KP_SPACING_X) / GRID)
#define KP_GETX_CROSS(XVAL) safeZoneX + safeZoneW * (1 - XVAL - 0.02)
/*
Get Y coordinate
Example: KP_GETCY(KP_Y_VAL,KP_HEIGHT_VAL,3,8)
KP_Y_VAL -> Top offset of the dialog top from the edge of the screen
KP_HEIGHT_VAL -> Height of the area between title bar and bottom buttons in the dialog
3 -> Coordinate of the 4th element position (0,1,2,3,etc.)
8 -> In relation to a 8 element Y grid
GETY_AREA is for the Y coordinate of the beginning of the background (which frames the content area)
GETY_BELOW is for the Y coordinate of the buttons below the background
*/
#define KP_GETCY(YVAL,HVAL,POS,GRID) safeZoneY + safeZoneH * ((YVAL + KP_HEIGTH_TITLE + KP_SPACING_Y) + (POS * HVAL + (GRID - POS) * KP_SPACING_Y) / GRID)
#define KP_GETY_CROSS(YVAL) safeZoneY + safeZoneH * (YVAL + 0.005)
#define KP_GETY_AREA(YVAL) safeZoneY + safeZoneH * (YVAL + KP_HEIGTH_TITLE + KP_SPACING_Y)
#define KP_GETY_BELOW(YVAL,HVAL) safeZoneY + safeZoneH * (YVAL + KP_HEIGTH_TITLE + 2 * KP_SPACING_Y + HVAL)
/*
Get width for an element
Example: KP_GETW(KP_WIDTH_VAL,2)
KP_WIDTH_VAL -> Width of the whole dialog (KP_X_VAL spacing to the left and to the right)
2 -> Width for an element which fits 2 times in the content area from left to right (substracted by spacings to other elements left and right)
GETW is in relation to the content area
GETWPLAIN is in relation to the whole dialog width (for the buttons below for example)
*/
#define KP_GETW(WVAL,GRID) safeZoneW * ((WVAL - (GRID + 1) * KP_SPACING_X) / GRID)
#define KP_GETWPLAIN(WVAL,GRID) safeZoneW * ((WVAL - (GRID - 1) * KP_SPACING_X) / GRID)
/*
Get height for an element
Example: KP_GETH(KP_HEIGHT_VAL,10)
KP_HEIGHT_VAL -> Height of the area between title bar and bottom buttons in the dialog
10 -> Height for an element which fits 10 times in the content area from top to bottom (substracted by spacings to other elements above and below)
*/
#define KP_GETH(HVAL,GRID) safeZoneH * ((HVAL - (GRID + 1) * KP_SPACING_Y) / GRID)
/*
--- Standard sized dialog components ---
(X from 0.25 - 0.75, Y from 0.2 - 0.8)
*/
#define KP_X_VAL 0.25
#define KP_Y_VAL 0.2
#define KP_WIDTH_VAL (1 - 2 * KP_X_VAL)
#define KP_HEIGHT_VAL (1 - 2 * KP_Y_VAL - KP_HEIGTH_TITLE - KP_HEIGTH_BUTTON - 2 * KP_SPACING_Y)
/*
--- Large sized dialog components ---
(X from 0.15 - 0.85, Y from 0.15 - 0.85)
*/
#define KP_X_VAL_L 0.15
#define KP_Y_VAL_L 0.15
#define KP_WIDTH_VAL_L (1 - 2 * KP_X_VAL_L)
#define KP_HEIGHT_VAL_L (1 - 2 * KP_Y_VAL_L - KP_HEIGTH_TITLE - KP_HEIGTH_BUTTON - 2 * KP_SPACING_Y)
/*
--- Corner dialog components ---
(X from 0.035 - 0.235, Y from 0.05 - 0.8)
*/
#define KP_X_VAL_C 0.035
#define KP_Y_VAL_C 0.05
#define KP_WIDTH_VAL_C 0.2
#define KP_HEIGHT_VAL_C (0.75 - KP_HEIGTH_TITLE - KP_HEIGTH_BUTTON - 2 * KP_SPACING_Y)
/*
--- Left panel dialog components ---
*/
#define KP_X_VAL_LP 0.0025
#define KP_Y_VAL_LP 0.0025
#define KP_WIDTH_VAL_LP 0.2
#define KP_HEIGHT_VAL_LP (1 - 2 * KP_Y_VAL_LP - KP_HEIGTH_TITLE - KP_HEIGTH_BUTTON - 2 * KP_SPACING_Y)
// Classes include
#include "KPGUI_classes.hpp"

Binary file not shown.

View File

@@ -0,0 +1,50 @@
/*
KP PLAYER MENU FUNCTIONS
File: KPPLM_functions.hpp
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-06-02
Last Update: 2020-04-08
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Defines for all functions for the KP Player Menu.
*/
class KPPLM {
class main {
file = "KP\KPPLM\fnc";
// Apply and save settings
class apply {};
// Creates a new group
class create {};
// Apply view distance and sound volume
class getInOut {};
// Joins selected group
class join {};
// Open the dialog
class openDialog {};
// Module post initialization
class postInit {};
// Module pre initialization
class preInit {
preInit = 1;
};
// Applies new name to group
class rename {};
// Save dialog settings
class save {};
// Get and display KP Ranks data
class showRankData {};
};
};

View File

@@ -0,0 +1,40 @@
/*
KPPLM_fnc_apply
File: fn_apply.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-04
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Applies and saves the selected settings from the player menu dialog.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
// Apply current view distance and sound volume
[] call KPPLM_fnc_getInOut;
// Apply terrain detail setting
switch (KPPLM_terrain) do {
case 0: {setTerrainGrid 50;};
case 1: {setTerrainGrid 25;};
case 2: {setTerrainGrid 12.5;};
case 3: {setTerrainGrid 6.25;};
case 4: {setTerrainGrid 3.125;};
default {setTerrainGrid 10;};
};
// Apply radio chatter setting
switch (KPPLM_radio) do {
case 1: {enableRadio true; 1 fadeRadio 0;};
case 2: {enableRadio false; 1 fadeRadio 0;};
default {enableRadio true; 1 fadeRadio 1;};
};
true

View File

@@ -0,0 +1,27 @@
/*
KPPLM_fnc_create
File: fn_create.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-05
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Creates a new group for the player.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
private _grp = createGroup [(side player), true];
[player] join _grp;
// Refresh Dialog
closeDialog 0;
[{!dialog}, {call KPPLM_fnc_openDialog;}] call CBA_fnc_waitUntilAndExecute;
true

View File

@@ -0,0 +1,48 @@
/*
KPPLM_fnc_getInOut
File: fn_getInOut.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-05
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Sets the view distance and the sound volume of the player depending on the current vehicle.
Also changes the camera view, if functionality is enabled by the player.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
// Player on foot
if (isNull objectParent player) then {
setViewDistance KPPLM_viewFoot;
setObjectViewDistance KPPLM_viewFoot;
1 fadeSound 1;
};
// Player in boat or land vehicle
if (vehicle player isKindOf "LandVehicle" || vehicle player isKindOf "Ship") then {
setViewDistance KPPLM_viewVeh;
setObjectViewDistance KPPLM_viewVeh;
1 fadeSound KPPLM_soundVeh;
if (difficultyOption "thirdPersonView" == 1) then {
if (KPPLM_tpv > 1) then {player switchCamera "EXTERNAL";};
};
};
// Player in air vehicle
if (vehicle player isKindOf "Air") then {
setViewDistance KPPLM_viewAir;
setObjectViewDistance KPPLM_viewAir;
1 fadeSound KPPLM_soundVeh;
if (difficultyOption "thirdPersonView" == 1) then {
if (KPPLM_tpv == 1 || KPPLM_tpv == 3) then {player switchCamera "EXTERNAL";};
};
};
true

View File

@@ -0,0 +1,31 @@
/*
KPPLM_fnc_join
File: fn_join.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-05
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Joins the group which is currently selected in the group list.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
// Dialog controls
private _dialog = findDisplay 75803;
private _ctrlGroupList = _dialog displayCtrl 758038;
private _grp = KPPLM_groups select (lbCurSel _ctrlGroupList);
[player] join _grp;
// Refresh Dialog with a small delay
[{player in units (_this select 0)}, {closeDialog 0;}, [_grp]] call CBA_fnc_waitUntilAndExecute;
[{!dialog}, {call KPPLM_fnc_openDialog;}] call CBA_fnc_waitUntilAndExecute;
true

View File

@@ -0,0 +1,94 @@
/*
KPPLM_fnc_openDialog
File: fn_openDialog.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-03
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Opens the player menu dialog.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
// Create player options dialog
createDialog "KPPLM_dialog";
disableSerialization;
// Dialog controls
private _dialog = findDisplay 75803;
private _ctrlLabelRank = _dialog displayCtrl 758031;
private _ctrlRank = _dialog displayCtrl 758032;
private _ctrlLabelScore = _dialog displayCtrl 758033;
private _ctrlScore = _dialog displayCtrl 758034;
private _ctrlLabelPlaytime = _dialog displayCtrl 758035;
private _ctrlPlaytime = _dialog displayCtrl 758036;
private _ctrlNoRanks = _dialog displayCtrl 758037;
private _ctrlGroupList = _dialog displayCtrl 758038;
private _ctrlViewFoot = _dialog displayCtrl 7580310;
private _ctrlViewVeh = _dialog displayCtrl 7580311;
private _ctrlViewAir = _dialog displayCtrl 7580312;
private _ctrlTerrain = _dialog displayCtrl 7580313;
private _ctrlTpv = _dialog displayCtrl 7580314;
private _ctrlRadio = _dialog displayCtrl 7580315;
private _ctrlValueSound = _dialog displayCtrl 7580316;
private _ctrlSliderSound = _dialog displayCtrl 7580317;
// Display KP Ranks data or hide the player menu entries for the data
if (KPPLM_KPR) then {
[] call KPPLM_fnc_showRankData;
} else {
{
_x ctrlShow false;
} forEach [_ctrlLabelRank, _ctrlRank, _ctrlLabelScore, _ctrlScore, _ctrlLabelPlaytime, _ctrlPlaytime];
};
// Fill group list with all groups leaded by players
{
if (player in units _x) then {
_ctrlGroupList lbSetCurSel (_ctrlGroupList lbAdd format [">> %1 - %2 (%3)", groupId _x, name leader _x, count units _x]);
} else {
_ctrlGroupList lbAdd format ["%1 - %2 (%3)", groupId _x, name leader _x, count units _x];
};
} forEach KPPLM_groups;
// Set initial values for view distances
_ctrlViewFoot ctrlSetText str KPPLM_viewFoot;
_ctrlViewVeh ctrlSetText str KPPLM_viewVeh;
_ctrlViewAir ctrlSetText str KPPLM_viewAir;
// Fill density, auto tpv and radio dropdowns. Also preselect the saved values
_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINLOW"; // 50
_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINSTANDARD"; // 25
_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINHIGH"; // 12.5
_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINVHIGH"; // 6.25
_ctrlTerrain lbAdd localize "STR_KPPLM_TERRAINULTRA"; // 3.125
_ctrlTerrain lbSetCurSel KPPLM_terrain;
_ctrlTpv lbAdd localize "STR_KPPLM_TPDISABLED";
_ctrlTpv lbAdd localize "STR_KPPLM_TPVAIR";
_ctrlTpv lbAdd localize "STR_KPPLM_TPVLAND";
_ctrlTpv lbAdd localize "STR_KPPLM_TPVALL";
_ctrlTpv lbSetCurSel KPPLM_tpv;
_ctrlRadio lbAdd localize "STR_KPPLM_RADIONO";
_ctrlRadio lbAdd localize "STR_KPPLM_RADIOVOICE";
_ctrlRadio lbAdd localize "STR_KPPLM_RADIOALL";
_ctrlRadio lbSetCurSel KPPLM_radio;
// Initialize sound slider range, position and speed
_ctrlSliderSound sliderSetRange [0, 100];
_ctrlSliderSound sliderSetPosition (KPPLM_soundVeh * 100);
_ctrlSliderSound sliderSetSpeed [1, 1];
// Set sound value output to initial sound slider value
_ctrlValueSound ctrlSetText format ["%1%2", round sliderPosition _ctrlSliderSound, "%"];
true

View File

@@ -0,0 +1,58 @@
/*
KPPLM_fnc_postInit
File: fn_postInit.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2017-08-31
Last Update: 2020-04-17
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
The postInit function of a module takes care of starting/executing the modules functions or scripts.
Basically it starts/initializes the module functionality to make all provided features usable.
Parameter(s):
NONE
Returns:
Module postInit finished [BOOL]
*/
if (!KPPLM_CBA) exitWith {["CBA not loaded. Aborting initialization!"] call BIS_fnc_error; false};
// Player section
if (hasInterface) then {
// Load settings, if available
private _settings = profileNamespace getVariable ["KPPLM_Settings", []];
if !(_settings isEqualTo []) then {
KPPLM_viewFoot = _settings select 0;
KPPLM_viewVeh = _settings select 1;
KPPLM_viewAir = _settings select 2;
KPPLM_terrain = _settings select 3;
KPPLM_tpv = _settings select 4;
KPPLM_radio = _settings select 5;
KPPLM_soundVeh = _settings select 6;
};
// Add event handler
player addEventHandler ["GetInMan", {[] call KPPLM_fnc_getInOut}];
player addEventHandler ["GetOutMan", {[] call KPPLM_fnc_getInOut}];
// Action to open the dialog
private _actionArray = [
"<t color='#FF8000'>" + localize "STR_KPPLM_ACTIONOPEN" + "</t>",
{[] call KPPLM_fnc_openDialog;},
nil,
-1000,
false,
true,
"",
'_target isEqualTo _originalTarget'
];
[_actionArray] call CBA_fnc_addPlayerAction;
// Apply default/loaded values
[] call KPPLM_fnc_apply;
};
true

View File

@@ -0,0 +1,47 @@
/*
KPPLM_fnc_preInit
File: fn_preInit.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-10-18
Last Update: 2020-04-17
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
The preInit function defines global variables, adds event handlers and set some vital settings which are used in this module.
Parameter(s):
NONE
Returns:
Module preInit finished [BOOL]
*/
// Check if CBA is running
KPPLM_CBA = isClass (configFile >> "CfgPatches" >> "cba_main");
// Check if KP Ranks is running
KPPLM_KPR = isClass (configFile >> "CfgPatches" >> "KP_Ranks");
// View distance on foot
KPPLM_viewFoot = viewDistance;
// View distance in land vehicle
KPPLM_viewVeh = viewDistance;
// View distance in air vehicle
KPPLM_viewAir = viewDistance;
// Terrain detail setting
KPPLM_terrain = 2;
// Auto 3rd Person setting
KPPLM_tpv = 0;
// Disable radio chatter setting
KPPLM_radio = 0;
// Sound volume inside a vehicle
KPPLM_soundVeh = soundVolume;
true

View File

@@ -0,0 +1,38 @@
/*
KPPLM_fnc_rename
File: fn_rename.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-05
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Set the new name for the group which is selected in the group list.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
// Dialog controls
private _dialog = findDisplay 75803;
private _ctrlGroupList = _dialog displayCtrl 758038;
private _ctrlEditName = _dialog displayCtrl 758039;
private _grp = KPPLM_groups select (lbCurSel _ctrlGroupList);
// Only allow change, when player is leader
if (leader _grp == player) then {
_grp setGroupIdGlobal [ctrlText _ctrlEditName];
// Refresh Dialog
closeDialog 0;
[{!dialog}, {call KPPLM_fnc_openDialog;}] call CBA_fnc_waitUntilAndExecute;
} else {
hint localize "STR_KPPLM_NOTLEADER";
[{hintSilent "";}, [], 3] call CBA_fnc_waitAndExecute;
};
true

View File

@@ -0,0 +1,52 @@
/*
KPPLM_fnc_save
File: fn_save.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-05
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Saves the selected settings from the player menu dialog and calls the apply function.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
// Dialog controls
private _dialog = findDisplay 75803;
private _ctrlViewFoot = _dialog displayCtrl 7580310;
private _ctrlViewVeh = _dialog displayCtrl 7580311;
private _ctrlViewAir = _dialog displayCtrl 7580312;
private _ctrlTerrain = _dialog displayCtrl 7580313;
private _ctrlTpv = _dialog displayCtrl 7580314;
private _ctrlRadio = _dialog displayCtrl 7580315;
private _ctrlSliderSound = _dialog displayCtrl 7580317;
// Fetch all selected values
KPPLM_viewFoot = round (parseNumber (ctrlText _ctrlViewFoot));
if (KPPLM_viewFoot == 0) then {KPPLM_viewFoot = 1600;};
KPPLM_viewVeh = round (parseNumber (ctrlText _ctrlViewVeh));
if (KPPLM_viewVeh == 0) then {KPPLM_viewVeh = 1600;};
KPPLM_viewAir = round (parseNumber (ctrlText _ctrlViewAir));
if (KPPLM_viewAir == 0) then {KPPLM_viewAir = 1600;};
KPPLM_terrain = lbCurSel _ctrlTerrain;
KPPLM_tpv = lbCurSel _ctrlTpv;
KPPLM_radio = lbCurSel _ctrlRadio;
KPPLM_soundVeh = (round sliderPosition _ctrlSliderSound) / 100;
// Save settings in user profile
profileNamespace setVariable ["KPPLM_Settings", [KPPLM_viewFoot, KPPLM_viewVeh, KPPLM_viewAir, KPPLM_terrain, KPPLM_tpv, KPPLM_radio, KPPLM_soundVeh]];
saveProfileNamespace;
// Apply settings
[] call KPPLM_fnc_apply;
// Close the dialog
closeDialog 0;
true

View File

@@ -0,0 +1,39 @@
/*
KPPLM_fnc_showRankData
File: fn_showRankData.sqf
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-05
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Reads the KP Ranks data of the current player and displays it in the player menu dialog.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
// Dialog controls
private _dialog = findDisplay 75803;
private _ctrlRank = _dialog displayCtrl 758032;
private _ctrlScore = _dialog displayCtrl 758034;
private _ctrlPlaytime = _dialog displayCtrl 758036;
private _ctrlNoRanks = _dialog displayCtrl 758037;
// Disable no ranks hint
_ctrlNoRanks ctrlShow false;
// Show data in dialog
_ctrlRank ctrlSetText ([] call KPR_fnc_getRankName);
if (KPR_levelSystem) then {
_ctrlScore ctrlSetText str ([] call KPR_fnc_getScore);
} else {
_ctrlScore ctrlSetText (localize "STR_KPPLM_NOLVLSYSTEM");
};
_ctrlPlaytime ctrlSetText ([] call KPR_fnc_getPlaytime);
true

View File

@@ -0,0 +1,250 @@
/*
KP player menu dialog
File: KPPLM_dialog.hpp
Author: Wyqer - https://github.com/KillahPotatoes
Date: 2018-08-03
Last Update: 2018-11-10
License: GNU General Public License v3.0 - https://www.gnu.org/licenses/gpl-3.0.html
Description:
Provides various functionalities for the players like group management, view distances, etc.
*/
class KPPLM_dialog {
idd = 75803;
movingEnable = 0;
// Fetch all player groups when opened and free the variable when closed
onLoad = "KPPLM_groups = allGroups select {isPlayer (leader _x)}";
onUnload = "KPPLM_groups = nil";
class controlsBackground {
class KP_DialogTitle: KPGUI_PRE_DialogTitleC {
text = "$STR_KPPLM_TITLE";
};
class KP_DialogArea: KPGUI_PRE_DialogBackgroundC {};
class KP_LabelPlayer: KPGUI_PRE_InlineTitle {
text = "$STR_KPPLM_LABELPLAYER";
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,0,16);
w = KP_GETW(KP_WIDTH_VAL_C,1);
h = KP_GETH(KP_HEIGHT_VAL_C,16);
};
class KP_TextRank: KPGUI_PRE_Text {
idc = 758031;
text = "$STR_KPPLM_RANK";
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,1,16);
w = KP_GETW(KP_WIDTH_VAL_C,2);
h = KP_GETH(KP_HEIGHT_VAL_C,24);
};
class KP_TextScore: KP_TextRank {
idc = 758033;
text = "$STR_KPPLM_SCORE";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,5,48);
};
class KP_TextPlaytime: KP_TextRank {
idc = 758035;
text = "$STR_KPPLM_PLAYTIME";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,7,48);
};
class KP_NoRanks: KP_LabelPlayer {
idc = 758037;
style = 2;
colorText[] = {0.8, 0, 0, 0.75};
text = "$STR_KPPLM_NORANKS";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,3,32);
sizeEx = KP_TEXT_L;
};
class KP_LabelGroups: KP_LabelPlayer {
text = "$STR_KPPLM_LABELGROUPS";
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,3,16);
w = KP_GETW(KP_WIDTH_VAL_C,1);
h = KP_GETH(KP_HEIGHT_VAL_C,16);
};
class KP_LabelView: KP_LabelPlayer {
text = "$STR_KPPLM_LABELVIEW";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,1,2);
};
class KP_TextViewFoot: KPGUI_PRE_Text {
text = "$STR_KPPLM_VIEWFOOT";
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,1,2);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,9,16);
w = KP_GETW(KP_WIDTH_VAL_C,2);
h = KP_GETH(KP_HEIGHT_VAL_C,24);
};
class KP_TextViewVehicle: KP_TextViewFoot {
text = "$STR_KPPLM_VIEWVEHICLE";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,29,48);
};
class KP_TextViewAir: KP_TextViewFoot {
text = "$STR_KPPLM_VIEWAIR";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,31,48);
};
class KP_LabelMisc: KP_LabelPlayer {
text = "$STR_KPPLM_LABELMISC";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,11,16);
};
class KP_TextTerrain: KP_TextRank {
text = "$STR_KPPLM_TEXTTERRAIN";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,12,16);
};
class KP_TextTPV: KP_TextRank {
text = "$STR_KPPLM_TEXTTPV";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,19,24);
};
class KP_TextRadio: KP_TextRank {
text = "$STR_KPPLM_TEXTRADIO";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,10,12);
};
class KP_TextSound: KP_TextRank {
text = "$STR_KPPLM_TEXTSOUND";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,22,24);
};
};
class controls {
class KPPLM_Version: KPGUI_PRE_DialogVersionIconC {
tooltip = "$STR_KPPLM_VERSION";
};
class KP_PlayerRank: KPGUI_PRE_Text {
idc = 758032;
style = 2;
text = "";
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,1,2);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,1,16);
w = KP_GETW(KP_WIDTH_VAL_C,2);
h = KP_GETH(KP_HEIGHT_VAL_C,24);
};
class KP_PlayerScore: KP_PlayerRank {
idc = 758034;
text = "";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,5,48);
};
class KP_PlayerTime: KP_PlayerRank {
idc = 758036;
text = "";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,7,48);
};
class KP_GroupList: KPGUI_PRE_ListBox {
idc = 758038;
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,4,16);
w = KP_GETW(KP_WIDTH_VAL_C,(4/3));
h = KP_GETH(KP_HEIGHT_VAL_C,(24/5));
onLBSelChanged = "ctrlSetText [758039, groupId (KPPLM_groups select (lbCurSel 758038))]";
};
class KP_ButtonJoin: KPGUI_PRE_InlineButton {
text = "$STR_KPPLM_JOIN";
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,3,4);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,4,16);
w = KP_GETW(KP_WIDTH_VAL_C,4);
h = KP_GETH(KP_HEIGHT_VAL_C,(48/5));
onButtonClick = "[] call KPPLM_fnc_join";
};
class KP_ButtonCreate: KP_ButtonJoin {
text = "$STR_KPPLM_CREATE";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,17,48);
onButtonClick = "[] call KPPLM_fnc_create";
};
class KP_RenameEdit: KPGUI_PRE_EditBox {
idc = 758039;
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,11,24);
w = KP_GETW(KP_WIDTH_VAL_C,(4/3));
h = KP_GETH(KP_HEIGHT_VAL_C,24);
};
class KP_ButtonRename: KP_ButtonJoin {
text = "$STR_KPPLM_RENAME";
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,11,24);
h = KP_GETH(KP_HEIGHT_VAL_C,24);
onButtonClick = "[] call KPPLM_fnc_rename";
};
class KP_BoxViewFoot: KPGUI_PRE_EditBox {
idc = 7580310;
style = 65;
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,1,4);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,9,16);
w = KP_GETW(KP_WIDTH_VAL_C,4);
h = KP_GETH(KP_HEIGHT_VAL_C,24);
};
class KP_BoxViewVehicle: KP_BoxViewFoot {
idc = 7580311;
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,29,48);
};
class KP_BoxViewAir: KP_BoxViewFoot {
idc = 7580312;
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,31,48);
};
class KP_ComboTerrain: KPGUI_PRE_Combo {
idc = 7580313;
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,1,2);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,12,16);
w = KP_GETW(KP_WIDTH_VAL_C,2);
h = KP_GETH(KP_HEIGHT_VAL_C,24);
};
class KP_ComboTPV: KP_ComboTerrain {
idc = 7580314;
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,19,24);
};
class KP_ComboRadio: KP_ComboTerrain {
idc = 7580315;
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,10,12);
};
class KP_TextSoundValue: KP_PlayerRank {
idc = 7580316;
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,22,24);
};
class KP_SliderSound: KPGUI_PRE_Slider {
idc = 7580317;
x = KP_GETCX(KP_X_VAL_C,KP_WIDTH_VAL_C,0,1);
y = KP_GETCY(KP_Y_VAL_C,KP_HEIGHT_VAL_C,23,24);
w = KP_GETW(KP_WIDTH_VAL_C,1);
h = KP_GETH(KP_HEIGHT_VAL_C,24);
tooltip = "$STR_KPPLM_TTSOUND";
onSliderPosChanged = "ctrlSetText [7580316, format ['%1%2', round (_this select 1), '%']]";
};
class KP_ApplyButton: KPGUI_PRE_DialogButtonC {
text = "$STR_KPPLM_APPLY";
onButtonClick = "[] call KPPLM_fnc_save";
};
class KP_DialogCross: KPGUI_PRE_DialogCrossC {};
};
};

View File

@@ -0,0 +1,621 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS

View File

@@ -0,0 +1,17 @@
/*
File: KPLIB_debriefs.hpp
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-05-09
Last Update: 2020-05-09
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Debriefing defines for KP Liberation.
*/
class End1 {
title = $STR_SORRY;
subtitle = "";
description = $STR_COMMANDER_NOT_AUTHORIZED;
pictureBackground = "";
};

View File

@@ -0,0 +1,757 @@
/*
3CB BAF Arsenal Preset
Last Update: 2020-05-08
Needed:
- 3CB BAF Weapons - https://steamcommunity.com/sharedfiles/filedetails/?id=893339590
- 3CB BAF Equipment - https://steamcommunity.com/sharedfiles/filedetails/?id=893328083
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
"UK3CB_BAF_AT4_CS_AP_Launcher", // ILAW HEDP Launcher
"UK3CB_BAF_AT4_CS_AT_Launcher", // ILAW HP Launcher
"UK3CB_BAF_L103A2", // L130A2 DP
"UK3CB_BAF_L105A1", // L105A1
"UK3CB_BAF_L105A2", // L105A2
"UK3CB_BAF_L107A1", // L107A1
"UK3CB_BAF_L110_762", // L110 7.62 LMG
"UK3CB_BAF_L110A1", // L110A1 LMG
"UK3CB_BAF_L110A2", // L110A2 LMG
"UK3CB_BAF_L110A2RIS", // L110A2 RIS LMG
"UK3CB_BAF_L110A3", // L110A3 LMG
"UK3CB_BAF_L115A3_BL_Ghillie", // L115A3 Ghillie (Black)
"UK3CB_BAF_L115A3_BL", // L115A3 (Black)
"UK3CB_BAF_L115A3_DE_Ghillie", // L115A3 Ghillie (Sand)
"UK3CB_BAF_L115A3_DE", // L115A3 (Sand)
"UK3CB_BAF_L115A3_Ghillie", // L115A3 Ghillie
"UK3CB_BAF_L115A3", // L115A3
"UK3CB_BAF_L117A2", // L117A1
"UK3CB_BAF_L118A1_Covert_BL", // L118A1 AWC (Black)
"UK3CB_BAF_L118A1_Covert_DE", // L118A1AWC (Sand)
"UK3CB_BAF_L118A1_Covert", // L118A1 AWC
"UK3CB_BAF_L119A1_CQB", // L119A1 CQB
"UK3CB_BAF_L119A1_FG", // L119A1 witch Front Grip
"UK3CB_BAF_L119A1_UKUGL", // L119A1 UK UGL
"UK3CB_BAF_L119A1", // L119A1
"UK3CB_BAF_L128A1", // L123A1 Shotgun
"UK3CB_BAF_L129A1", // L129A1
"UK3CB_BAF_L131A1", // L131A1
"UK3CB_BAF_L135A1", // L135A1 LRPAS
"UK3CB_BAF_L1A1_Wood", // L1A1 SLR (Wooden stock)
"UK3CB_BAF_L1A1", // L1A1 SLR
"UK3CB_BAF_L22", // L22
"UK3CB_BAF_L22A2", // L22A2
"UK3CB_BAF_L7A2", // L7A2 GPMG
"UK3CB_BAF_L85A2_EMAG", // L85A2 EMAG
"UK3CB_BAF_L85A2_RIS_D", // L85A2 RIS (Tan Rail Covers)
"UK3CB_BAF_L85A2_RIS_G", // L85A2 RIS (Green Rail Covers)
"UK3CB_BAF_L85A2_RIS_W", // L85A2 RIS (Winter Rail Covers)
"UK3CB_BAF_L85A2_RIS", // L85A2 RIS
"UK3CB_BAF_L85A2_UGL_HWS", // L85A2 with L123A3 HWS
"UK3CB_BAF_L85A2_UGL", // L85A2 witch L123A2 Ladder
"UK3CB_BAF_L85A2", // L85A2
"UK3CB_BAF_L85A3_UGL", // L85A3 with L123A2 Ladder
"UK3CB_BAF_L85A3", // L85A3
"UK3CB_BAF_L86A2", // L86A2 LSW
"UK3CB_BAF_L86A3", // L86A2 RIS DMR
"UK3CB_BAF_L91A1", // L91A1 SMG
"UK3CB_BAF_L92A1", // L92A1 SMG
"UK3CB_BAF_L98A2", // L98A2 Cadet GP
"UK3CB_BAF_L9A1", // L9A1
"UK3CB_BAF_NLAW_Launcher" // NLAW Launcher
];
GRLIB_arsenal_magazines = [
"UK3CB_BAF_12G_Pellets", // 12G 8rnd Buckshot
"UK3CB_BAF_12G_Slugs", // 12G 8rnd Slug
"UK3CB_BAF_1Rnd_Blank_Grenade_Shell", // 40mm Practice Round (L123)
"UK3CB_BAF_1Rnd_HE_Grenade_Shell", // 40mm HE Grenade Round (L123)
"UK3CB_BAF_1Rnd_HEDP_Grenade_Shell", // 40mm HEDP Grenade Round (L123)
"UK3CB_BAF_1Rnd_Smoke_Grenade_shell", // 40mm White Smoke (L123)
"UK3CB_BAF_1Rnd_SmokeBlue_Grenade_shell", // 40mm Blue Smoke (L123)
"UK3CB_BAF_1Rnd_SmokeGreen_Grenade_shell", // 40mm Green Smoke (L123)
"UK3CB_BAF_1Rnd_SmokeOrange_Grenade_shell", // 40mm Orange Smoke (L123)
"UK3CB_BAF_1Rnd_SmokePurple_Grenade_shell", // 40mm Purple Smoke (L123)
"UK3CB_BAF_1Rnd_SmokeRed_Grenade_shell", // 40mm Red Smoke (L123)
"UK3CB_BAF_1Rnd_SmokeYellow_Grenade_shell", // 40mm Yello Smoke (L123)
"UK3CB_BAF_338_5Rnd_Blank", // .338 5rnd Blank Mag
"UK3CB_BAF_338_5Rnd_Tracer", // .338 5rnd Tracer Mag
"UK3CB_BAF_338_5Rnd", // .338 5rnd Mag
"UK3CB_BAF_556_100Rnd_Blank", // 5.56mm 100rnd Blank Boxmag
"UK3CB_BAF_556_100Rnd_T", // 5.56mm 100rnd Tracer Boxmag
"UK3CB_BAF_556_100Rnd", // 5.56mm 100rnd Boxmag
"UK3CB_BAF_556_200Rnd_Blank", // 5.56mm 200rnd Blank Boxmag
"UK3CB_BAF_556_200Rnd_T", // 5.56mm 200rnd Tracer Boxmag
"UK3CB_BAF_556_200Rnd", // 5.56mm 200rnd Boxmag
"UK3CB_BAF_556_30Rnd_Blank", // 5.56mm 30rnd Blank Mag
"UK3CB_BAF_556_30Rnd_T", // 5.56mm 30rnd Tracer Mag
"UK3CB_BAF_556_30Rnd", // 5.56mm 30rnd Mag
"UK3CB_BAF_762_100Rnd_Blank", // 7.62mm 100rnd Blank Belt
"UK3CB_BAF_762_100Rnd_T", // 7.62mm 100rnd Tracer Belt
"UK3CB_BAF_762_100Rnd", // 7.62mm 100rnd Belt
"UK3CB_BAF_762_200Rnd_Blank", // 7.62mm 200rnd Blank Belt
"UK3CB_BAF_762_200Rnd_T", // 7.62mm 200rnd Tracer Belt
"UK3CB_BAF_762_200Rnd", // 7.62mm 200rnd Belt
"UK3CB_BAF_762_20Rnd_Blank", // 7.62mm 20rnd Blank Mag
"UK3CB_BAF_762_20Rnd_T", // 7.62mm 20rnd Tracer Mag
"UK3CB_BAF_762_20Rnd", // 7.62mm 20rnd Mag
"UK3CB_BAF_762_800Rnd_Blank", // 7.62mm 800rnd Blank Belt
"UK3CB_BAF_762_800Rnd_T", // 7.62mm 800rnd Tracer Belt
"UK3CB_BAF_762_800Rnd", // 7.62mm 800rnd Belt
"UK3CB_BAF_762_L42A1_10Rnd_Blank", // 7.62mm 10rnd Blank Mag
"UK3CB_BAF_762_L42A1_10Rnd_T", // 7.62mm 10rnd Tracer Mag
"UK3CB_BAF_762_L42A1_10Rnd", // 7.62mm 10rnd Mag
"UK3CB_BAF_762_L42A1_20Rnd_Blank", // 7.62mm 20rnd Blang Mag
"UK3CB_BAF_762_L42A1_20Rnd_T", // 7.62mm 20rnd Tracer Mag
"UK3CB_BAF_762_L42A1_20Rnd", // 7.62mm 20rnd Mag
"UK3CB_BAF_9_13Rnd", // 9mm 13rnd Mag
"UK3CB_BAF_9_15Rnd", // 9mm 15rnd Mag
"UK3CB_BAF_9_17Rnd", // 9mm 17rnd Mag
"UK3CB_BAF_9_30Rnd", // 9mm 30rnd Mag
"UK3CB_BAF_HandGrenade_Blank", // L111A1 Practice Grenade
"UK3CB_BAF_SmokeShell", // L50A1 White Smoke Grenade
"UK3CB_BAF_SmokeShellBlue", // L71 Blue Smoke Grenade
"UK3CB_BAF_SmokeShellGreen", // L68 Green Smoke Grenade
"UK3CB_BAF_SmokeShellOrange", // L69 Orange Smoke Grenade
"UK3CB_BAF_SmokeShellPurple", // L101 Purple Smoke Grenade
"UK3CB_BAF_SmokeShellRed", // L70 Red Smoke Grenade
"UK3CB_BAF_SmokeShellYellow", // L100 Yellow Smoke Grenade
"UK3CB_BAF_UGL_FlareCIR_F", // 40mm IR Flare (L123)
"UK3CB_BAF_UGL_FlareGreen_F", // 40mm Green Flare (L123)
"UK3CB_BAF_UGL_FlareRed_F", // 40mm Red Flare (L123)
"UK3CB_BAF_UGL_FlareWhite_F", // 40mm White Flare (L123)
"UK3CB_BAF_UGL_FlareYellow_F", // 40mm Yellow Flare (L123)
// Vanilla Standard Grenades & Explosives
"APERSBoundingMine_Range_Mag", // APERS Bounding Mine
"APERSMine_Range_Mag", // APERS Mine
"APERSMineDispenser_Mag", // APERS Mine Dispenser
"APERSTripMine_Wire_Mag", // APERS Tripwire Mine
"ATMine_Range_Mag", // AT Mine
"B_IR_Grenade", // IR Grenade [NATO]
"Chemlight_blue", // Chemlight (Blue)
"Chemlight_green", // Chemlight (Green)
"Chemlight_red", // Chemlight (Red)
"Chemlight_yellow", // Chemlight (Yellow)
"ClaymoreDirectionalMine_Remote_Mag", // Claymore Charge
"DemoCharge_Remote_Mag", // Explosive Charge
"Drone_Range_Mag_dummy", // AT Mine
"Drone_Range_Mag", // AT Mine
"HandGrenade", // RGO Grenade
"IEDLandBig_Remote_Mag", // Large IED (Dug-in)
"IEDLandSmall_Remote_Mag", // Small IED (Dug-in)
"IEDUrbanBig_Remote_Mag", // Large IED (Urban)
"IEDUrbanSmall_Remote_Mag", // Small IED (Urban)
"Laserbatteries", // Designator Batteries
"MiniGrenade", // RGN Grenade
"SatchelCharge_Remote_Mag", // Explosive Satchel
"SLAMDirectionalMine_Wire_Mag", // M6 SLAM Mine
"TrainingMine_Mag" // Training Mine
];
GRLIB_arsenal_items = [
// Uniforms
"UK3CB_BAF_U_CombatUniform_Arctic_Ghillie_RM", // Combat Uniform Arctic Ghillie RM [BAF]
"UK3CB_BAF_U_CombatUniform_DDPM_Ghillie_RM", // Combat Uniform DDPPM Ghillie RM [BAF]
"UK3CB_BAF_U_CombatUniform_DDPM_RM", // Combat Uniform DDPM RM [BAF]
"UK3CB_BAF_U_CombatUniform_DDPM_ShortSleeve_RM", // Combat Uniform DDPM Rolled RM [BAF]
"UK3CB_BAF_U_CombatUniform_DDPM_ShortSleeve", // Combat Uniform DDPM Rolled [BAF]
"UK3CB_BAF_U_CombatUniform_DDPM", // Combat Uniform DDPM [BAF]
"UK3CB_BAF_U_CombatUniform_DPMT_Ghillie_RM", // Combat Uniform DPM Tmp Ghillie RM [BAF]
"UK3CB_BAF_U_CombatUniform_DPMT_RM", // Combat Uniform DPM Tmp RM [BAF]
"UK3CB_BAF_U_CombatUniform_DPMT_ShortSleeve_RM", // Combat Uniform DPM Tmp Rolled RM [BAF]
"UK3CB_BAF_U_CombatUniform_DPMT_ShortSleeve", // Combat Uniform DPM Tmp Rolled [BAF]
"UK3CB_BAF_U_CombatUniform_DPMT", // Combat Uniform DPM Tmp [BAF]
"UK3CB_BAF_U_CombatUniform_DPMW_Ghillie_RM", // Combat Uniform DPM Wdl Ghillie RM [BAF]
"UK3CB_BAF_U_CombatUniform_DPMW_RM", // Combat Uniform DPM Wdl RM [BAF]
"UK3CB_BAF_U_CombatUniform_DPMW_ShortSleeve_RM", // Combat Uniform DPM Wdl Rolled RM [BAF]
"UK3CB_BAF_U_CombatUniform_DPMW_ShortSleeve", // Combat Uniform DPM Wdl Rolled [BAF]
"UK3CB_BAF_U_CombatUniform_DPMW", // Combat Uniform DPM Wdl [BAF]
"UK3CB_BAF_U_CombatUniform_MTP_Ghillie_RM", // Combat Uniform MTP Ghillie RM [BAF]
"UK3CB_BAF_U_CombatUniform_MTP_RM", // Combat Uniform MTP RM [BAF]
"UK3CB_BAF_U_CombatUniform_MTP_ShortSleeve_RM", // Combat Uniform MTP Rolled RM [BAF]
"UK3CB_BAF_U_CombatUniform_MTP_ShortSleeve", // Combat Uniform MTP Rolled [BAF]
"UK3CB_BAF_U_CombatUniform_MTP_TShirt_RM", // Combat T-Shirt MTP RM [BAF]
"UK3CB_BAF_U_CombatUniform_MTP_TShirt", // Combat T-Shirt MTP [BAF]
"UK3CB_BAF_U_CombatUniform_MTP", // Combat Uniform MTP [BAF]
"UK3CB_BAF_U_CrewmanCoveralls_RTR", // Crewman Coveralls RTR [BAF]
"UK3CB_BAF_U_HeliPilotCoveralls_Army", // Heli Pilot Flight Suit Army [BAF]
"UK3CB_BAF_U_HeliPilotCoveralls_RAF", // Heli Pilot Flight Suit RAF [BAF]
"UK3CB_BAF_U_HeliPilotCoveralls_RN", // Heli Pilot Flight Suit EN [BAF]
"UK3CB_BAF_U_JumperUniform_DPMT", // Jumper Uniform DPM Tmp [BAF]
"UK3CB_BAF_U_JumperUniform_DPMW", // Jumper Uniform DPM Wdl [BAF]
"UK3CB_BAF_U_JumperUniform_MTP", // Jumper Uniform MTP [BAF]
"UK3CB_BAF_U_JumperUniform_Plain", // Jumper Uniform Plain [BAF]
"UK3CB_BAF_U_RolledUniform_MTP", // Rolled Shirt MTP [BAF]
"UK3CB_BAF_U_Smock_Arctic", // Smock Arctic [BAF]
"UK3CB_BAF_U_Smock_DDPM", // Smock DDPM [BAF]
"UK3CB_BAF_U_Smock_DPMT", // Smock DPM Tmp [BAF]
"UK3CB_BAF_U_Smock_DPMW_Arctic", // Smock DPM Wdl / Trousers Arctic [BAF]
"UK3CB_BAF_U_Smock_DPMW_DDPM", // Smock DPM Wdl / Trousers DDPM [BAF]
"UK3CB_BAF_U_Smock_DPMW_MTP", // Smock DPM Wdl / Trousers MTP [BAF]
"UK3CB_BAF_U_Smock_DPMW_OLI", // Smock DPM Wdl / Trousers Olive [BAF]
"UK3CB_BAF_U_Smock_DPMW", // Smock DPM Wdl [BAF]
"UK3CB_BAF_U_Smock_MTP_Arctic", // Smock MTP / Trousers Arctic [BAF]
"UK3CB_BAF_U_Smock_MTP_DDPM", // Smock MTP / Trousers DDPM [BAF]
"UK3CB_BAF_U_Smock_MTP_DPMW", // Smock MTP / Trousers DPM Wdl [BAF]
"UK3CB_BAF_U_Smock_MTP", // Smock MTP [BAF]
// Headgear
"UK3CB_BAF_H_Beret_AAC_Over", // Beret Army Air Corps PRR Over [BAF]
"UK3CB_BAF_H_Beret_AAC_PRR", // Beret Army Air Corps PRR [BAF]
"UK3CB_BAF_H_Beret_AAC", // Beret Army Air Corps [BAF]
"UK3CB_BAF_H_Beret_BR_PRR_Over", // Beret Blues & Royals PRR Over [BAF]
"UK3CB_BAF_H_Beret_BR_PRR", // Beret Blues & Royals PRR [BAF]
"UK3CB_BAF_H_Beret_BR", // Beret Blues & Royals [BAF]
"UK3CB_BAF_H_Beret_CRArt_PRR_Over", // Beret Commando Royal Artillery PRR OVer [BAF]
"UK3CB_BAF_H_Beret_CRArt_PRR", // Beret Commando Royal Artillery PRR [BAF]
"UK3CB_BAF_H_Beret_CRArt", // Beret Commando Royal Artillery [BAF]
"UK3CB_BAF_H_Beret_CSG_PRR_Over", // Beret Coldstream Guards PRR Over [BAF]
"UK3CB_BAF_H_Beret_CSG_PRR", // Beret Coldstream Guards PRR [BAF]
"UK3CB_BAF_H_Beret_CSG", // Beret Coldstream Guards [BAF]
"UK3CB_BAF_H_Beret_GG_PRR_Over", // Beret Grenadier Guards PRR Over [BAF]
"UK3CB_BAF_H_Beret_GG_PRR", // Beret Grenadier Guards PRR [BAF]
"UK3CB_BAF_H_Beret_GG", // Beret Grenadier Guards [BAF]
"UK3CB_BAF_H_Beret_IG_PRR_Over", // Beret Irish Guards PRR Over [BAF]
"UK3CB_BAF_H_Beret_IG_PRR", // Beret Irish Guards PRR [BAF]
"UK3CB_BAF_H_Beret_IG", // Beret Irish Guards [BAF]
"UK3CB_BAF_H_Beret_LG_PRR_Over", // Beret Life Guards PRR Over [BAF]
"UK3CB_BAF_H_Beret_LG_PRR", // Beret Life Guards PRR [BAF]
"UK3CB_BAF_H_Beret_LG", // Beret Life Guards [BAF]
"UK3CB_BAF_H_Beret_Mer_PRR_Over", // Beret Mercian Regt PRR Over [BAF]
"UK3CB_BAF_H_Beret_Mer_PRR", // Beret Mercian Regt PRR [BAF]
"UK3CB_BAF_H_Beret_Mer", // Beret Mercian Regt [BAF]
"UK3CB_BAF_H_Beret_PR_PRR_Over", // Beret Parachute Regt PRR Over [BAF]
"UK3CB_BAF_H_Beret_PR_PRR", // Beret Parachute Regt PRR [BAF]
"UK3CB_BAF_H_Beret_PR", // Beret Parachute Regt [BAF]
"UK3CB_BAF_H_Beret_PWRR_PRR_Over", // Beret PWRR PRR Over [BAF]
"UK3CB_BAF_H_Beret_PWRR_PRR", // Beret PWRR PRR [BAF]
"UK3CB_BAF_H_Beret_PWRR", // Beret PWRR [BAF]
"UK3CB_BAF_H_Beret_RA_PRR_Over", // Beret Royal Anglian PRR Over [BAF]
"UK3CB_BAF_H_Beret_RA_PRR", // Beret Royal Anglian PRR [BAF]
"UK3CB_BAF_H_Beret_RA", // Beret Royal Anglian [BAF]
"UK3CB_BAF_H_Beret_RAF_PRR_Over", // Beret RAF PRR Over [BAF]
"UK3CB_BAF_H_Beret_RAF_PRR", // Beret RAF PRR [BAF]
"UK3CB_BAF_H_Beret_RAF", // Beret RAF [BAF]
"UK3CB_BAF_H_Beret_RAMC_Officer_PRR_Over", // Beret RAMC Ofc PRR Over [BAF]
"UK3CB_BAF_H_Beret_RAMC_Officer_PRR", // Beret RAMC Ofc PRR [BAF]
"UK3CB_BAF_H_Beret_RAMC_Officer", // Beret RAMC Ofc [BAF]
"UK3CB_BAF_H_Beret_RAMC_PRR_Over", // Beret RAMC Medic PRR Over [BAF]
"UK3CB_BAF_H_Beret_RAMC_PRR", // Beret RAMC Medic PRR [BAF]
"UK3CB_BAF_H_Beret_RAMC", // Beret RAMC Medic [BAF]
"UK3CB_BAF_H_Beret_RArt_PRR_Over", // Beret Royal Artillery PRR Over [BAF]
"UK3CB_BAF_H_Beret_RArt_PRR", // Beret Royal Artillery PRR [BAF]
"UK3CB_BAF_H_Beret_RArt", // Beret Royal Artillery [BAF]
"UK3CB_BAF_H_Beret_REng_PRR_Over", // Beret Royal Engineers PRR Over [BAF]
"UK3CB_BAF_H_Beret_REng_PRR", // Beret Royal Engineers PRR [BAF]
"UK3CB_BAF_H_Beret_REng", // Beret Royal Engineers [BAF]
"UK3CB_BAF_H_Beret_Rifles_PRR_Over", // Beret Rifles Regt PRR Over [BAF]
"UK3CB_BAF_H_Beret_Rifles_PRR", // Beret Rifles Regt PRR [BAF]
"UK3CB_BAF_H_Beret_Rifles", // Beret Rifles Regt [BAF]
"UK3CB_BAF_H_Beret_RLC_Commando_PRR_Over", // Beret Royal Logistics Coprs Cdo PRR Over [BFA]
"UK3CB_BAF_H_Beret_RLC_Commando_PRR", // Beret Royal Logistics Corps Cdo PRR [BFA]
"UK3CB_BAF_H_Beret_RLC_Commando", // Beret Royal Logistics Corps Cdo [BFA]
"UK3CB_BAF_H_Beret_RM_Bootneck_PRR_Over", // Beret Royal Marines Mne PRR Over [BAF]
"UK3CB_BAF_H_Beret_RM_Bootneck_PRR", // Beret Royal Marines Mne PRR [BAF]
"UK3CB_BAF_H_Beret_RM_Bootneck", // Beret Royal Marines Mne [BAF]
"UK3CB_BAF_H_Beret_RM_Officer_PRR_Over", // Beret Royal Marines Ofc PRR Over [BAF]
"UK3CB_BAF_H_Beret_RM_Officer_PRR", // Beret Royal Marines Ofc PRR [BAF]
"UK3CB_BAF_H_Beret_RM_Officer", // Beret Royal Marines Ofc [BAF]
"UK3CB_BAF_H_Beret_RM_Parade", // Beret Royal Marines Parade [BAF]
"UK3CB_BAF_H_Beret_RM_Recruit_PRR_Over", // Beret Royal Marines Rct PRR Over [BAF]
"UK3CB_BAF_H_Beret_RM_Recruit_PRR", // Beret Royal Marines Rct PRR [BAF]
"UK3CB_BAF_H_Beret_RM_Recruit", // Beret Royal Marines Rct [BAF]
"UK3CB_BAF_H_Beret_RMP_Over", // Beret Royal Military Police PRR Over [BAF]
"UK3CB_BAF_H_Beret_RMP_PRR", // Beret Royal Military Police PRR [BAF]
"UK3CB_BAF_H_Beret_RMP", // Beret Royal Military Police [BAF]
"UK3CB_BAF_H_Beret_RTR_PRR_Over", // Beret Royal Tank Regt PRR Over [BAF]
"UK3CB_BAF_H_Beret_RTR_PRR", // Beret Royal Tank Regt PRR [BAF]
"UK3CB_BAF_H_Beret_RTR", // Beret Royal Tank Regt [BAF]
"UK3CB_BAF_H_Beret_RW_PRR_Over", // Beret Royal Welsh PRR Over [BAF]
"UK3CB_BAF_H_Beret_RW_PRR", // Beret Royal Welsh PRR [BAF]
"UK3CB_BAF_H_Beret_RW", // Beret Royal Welsh [BAF]
"UK3CB_BAF_H_Beret_SAS_PRR_Over", // Beret SAS PRR Over [BAF]
"UK3CB_BAF_H_Beret_SAS_PRR", // Beret SAS PRR [BAF]
"UK3CB_BAF_H_Beret_SAS", // Beret SAS [BAF]
"UK3CB_BAF_H_Beret_SBS_PRR_Over", // Beret SBS PRR Over [BAF]
"UK3CB_BAF_H_Beret_SBS_PRR", // Beret SBS PRR [BAF]
"UK3CB_BAF_H_Beret_SBS", // Beret SBS [BAF]
"UK3CB_BAF_H_Beret_SG_PRR_Over", // Beret Scots Guard PRR Over [BAF]
"UK3CB_BAF_H_Beret_SG_PRR", // Beret Scots Guard PRR [BAF]
"UK3CB_BAF_H_Beret_SG", // Beret Scots Guard [BAF]
"UK3CB_BAF_H_Beret_Signals_PRR_Over", // Beret Royal Signals Regt PRR Over [BAF]
"UK3CB_BAF_H_Beret_Signals_PRR", // Beret Royal Signals Regt PRR [BAF]
"UK3CB_BAF_H_Beret_Signals", // Beret Royal Signals Regt [BAF]
"UK3CB_BAF_H_Beret_SR_PRR_Over", // Beret Scottish Regt PRR Over [BAF]
"UK3CB_BAF_H_Beret_SR_PRR", // Beret Scottish Regt PRR [BAF]
"UK3CB_BAF_H_Beret_SR", // Beret Scottish Regt [BAF]
"UK3CB_BAF_H_Beret_TYR_PRR_Over", // Beret Yorkshire Regt PRR Over [BAF]
"UK3CB_BAF_H_Beret_TYR_PRR", // Beret Yorkshire Regt PRR [BAF]
"UK3CB_BAF_H_Beret_TYR", // Beret Yorkshire Regt [BAF]
"UK3CB_BAF_H_Beret_UN_Officer_PRR_Over", // Beret UN Ofc PRR Over [BAF]
"UK3CB_BAF_H_Beret_UN_Officer_PRR", // Beret UN Ofc PRR [BAF]
"UK3CB_BAF_H_Beret_UN_Officer", // Beret UN Ofc [BAF]
"UK3CB_BAF_H_Beret_UN_PRR_Over", // Beret UN PRR Over [BAF]
"UK3CB_BAF_H_Beret_UN_PRR", // Beret UN PRR [BAF]
"UK3CB_BAF_H_Beret_UN", // Beret UN [BAF]
"UK3CB_BAF_H_Beret_WG_PRR_Over", // Beret Welsh Guards PRR Over [BAF]
"UK3CB_BAF_H_Beret_WG_PRR", // Beret Welsh Guards PRR [BAF]
"UK3CB_BAF_H_Beret_WG", // Beret Welsh Guards [BAF]
"UK3CB_BAF_H_Boonie_DDPM_PRR", // Boonie DDPM PRR (Under) [BAF]
"UK3CB_BAF_H_Boonie_DDPM", // Boonie DDPM [BAF]
"UK3CB_BAF_H_Boonie_DPMT_PRR", // Boonie DPM Tmp PRR (Under) [BAF]
"UK3CB_BAF_H_Boonie_DPMT", // Boonie DPM Tmp [BAF]
"UK3CB_BAF_H_Boonie_DPMW_PRR", // Boonie DPM Wdl PRR (Under) [BAF]
"UK3CB_BAF_H_Boonie_DPMW", // Boonie DPM Wdl [BAF]
"UK3CB_BAF_H_Boonie_MTP_PRR", // Boonie MTP PRR (Under) [BAF]
"UK3CB_BAF_H_Boonie_MTP", // Boonie MTP [BAF]
"UK3CB_BAF_H_CrewHelmet_A", // Crew Helmet MTP [BAF]
"UK3CB_BAF_H_CrewHelmet_B", // Crew Helmet Uncovered [BAF]
"UK3CB_BAF_H_CrewHelmet_DDPM_A", // Crew Helmet DDPM [BAF]
"UK3CB_BAF_H_CrewHelmet_DDPM_ESS_A", // Crew Helmet DDPM ESS [BAF]
"UK3CB_BAF_H_CrewHelmet_DPMT_A", // Crew Helmet DPM Tmp ESS [BAF]
"UK3CB_BAF_H_CrewHelmet_DPMT_ESS_A", // Crew Helmet DPM Tmp [BAF]
"UK3CB_BAF_H_CrewHelmet_DPMW_A", // Crew Helmet DPM Wdl [BAF]
"UK3CB_BAF_H_CrewHelmet_DPMW_ESS_A", // Crew Helmet DPM Wdl ESS [BAF]
"UK3CB_BAF_H_CrewHelmet_ESS_A", // Crew Helmet MTP ESS [BAF]
"UK3CB_BAF_H_Earphone", // Ear Defender Headset [BAF]
"UK3CB_BAF_H_Headset_PRR", // Headset PRR [BAF]
"UK3CB_BAF_H_Mk6_DDPM_A", // Helmet Mk6 DDPM (A) [BAF]
"UK3CB_BAF_H_Mk6_DDPM_B", // Helmet Mk6 DDPM (B) [BAF]
"UK3CB_BAF_H_Mk6_DDPM_C", // Helmet Mk6 DDPM Net (A) [BAF]
"UK3CB_BAF_H_Mk6_DDPM_D", // Helmet Mk6 DDPM Net ESS (A) [BAF]
"UK3CB_BAF_H_Mk6_DDPM_E", // Helmet Mk6 DDPM Net ESS (B) [BAF]
"UK3CB_BAF_H_Mk6_DDPM_F", // Helmet Mk6 DDPM Net ESS (C) [BAF]
"UK3CB_BAF_H_Mk6_DPMT_A", // Helmet Mk6 DPM Tmp (A) [BAF]
"UK3CB_BAF_H_Mk6_DPMT_B", // Helmet Mk6 DPM Tmp (B) [BAF]
"UK3CB_BAF_H_Mk6_DPMT_C", // Helmet Mk6 DPM Tmp Net (A) [BAF]
"UK3CB_BAF_H_Mk6_DPMT_D", // Helmet Mk6 DPM Tmp Net ESS (A) [BAF]
"UK3CB_BAF_H_Mk6_DPMT_E", // Helmet Mk6 DPM Tmp Net ESS (B) [BAF]
"UK3CB_BAF_H_Mk6_DPMT_F", // Helmet Mk6 DPM Tmp Net ESS (C) [BAF]
"UK3CB_BAF_H_Mk6_DPMW_A", // Helmet Mk6 DPM Wdl (A) [BAF]
"UK3CB_BAF_H_Mk6_DPMW_B", // Helmet Mk6 DPM Wdl (B) [BAF]
"UK3CB_BAF_H_Mk6_DPMW_C", // Helmet Mk6 DPM Wdl Net (A) [BAF]
"UK3CB_BAF_H_Mk6_DPMW_D", // Helmet Mk6 DPM Wdl Net ESS (A) [BAF]
"UK3CB_BAF_H_Mk6_DPMW_E", // Helmet Mk6 DPM Wdl Net ESS (B) [BAF]
"UK3CB_BAF_H_Mk6_DPMW_F", // Helmet Mk6 DPM Wdl Net ESS (C) [BAF]
"UK3CB_BAF_H_Mk7_Camo_A", // Helmet Mk7 MTP (A) [BAF]
"UK3CB_BAF_H_Mk7_Camo_B", // Helmet Mk7 MTP (B) [BAF]
"UK3CB_BAF_H_Mk7_Camo_C", // Helmet Mk7 MTP (C) [BAF]
"UK3CB_BAF_H_Mk7_Camo_CESS_A", // Helmet Mk7 MTP {ESS} (A) [BAF]
"UK3CB_BAF_H_Mk7_Camo_CESS_B", // Helmet Mk7 MTP {ESS} (B) [BAF]
"UK3CB_BAF_H_Mk7_Camo_CESS_C", // Helmet Mk7 MTP {ESS} (C) [BAF]
"UK3CB_BAF_H_Mk7_Camo_CESS_D", // Helmet Mk7 MTP {ESS} (D) [BAF]
"UK3CB_BAF_H_Mk7_Camo_D", // Helmet Mk7 MTP (D) [BAF]
"UK3CB_BAF_H_Mk7_Camo_E", // Helmet Mk7 MTP (E) [BAF]
"UK3CB_BAF_H_Mk7_Camo_ESS_A", // Helmet Mk7 MTP ESS (A) [BAF]
"UK3CB_BAF_H_Mk7_Camo_ESS_B", // Helmet Mk7 MTP ESS (B) [BAF]
"UK3CB_BAF_H_Mk7_Camo_ESS_C", // Helmet Mk7 MTP ESS (C) [BAF]
"UK3CB_BAF_H_Mk7_Camo_ESS_D", // Helmet Mk7 MTP ESS (D) [BAF]
"UK3CB_BAF_H_Mk7_Camo_F", // Helmet Mk7 MTP (F) [BAF]
"UK3CB_BAF_H_Mk7_HiVis", // Helmet Mk7 Hi-Vis [BAF]
"UK3CB_BAF_H_Mk7_Net_A", // Helmet Mk7 MTP Net (A) [BAF]
"UK3CB_BAF_H_Mk7_Net_B", // Helmet Mk7 MTP Net (B) [BAF]
"UK3CB_BAF_H_Mk7_Net_C", // Helmet Mk7 MTP Net (C) [BAF]
"UK3CB_BAF_H_Mk7_Net_CESS_A", // Helmet Mk7 MTP Net {ESS} (A) [BAF]
"UK3CB_BAF_H_Mk7_Net_CESS_B", // Helmet Mk7 MTP Net {ESS} (B) [BAF]
"UK3CB_BAF_H_Mk7_Net_CESS_C", // Helmet Mk7 MTP Net {ESS} (C) [BAF]
"UK3CB_BAF_H_Mk7_Net_CESS_D", // Helmet Mk7 MTP Net {ESS} (D) [BAF]
"UK3CB_BAF_H_Mk7_Net_D", // Helmet Mk7 MTP Net (D) [BAF]
"UK3CB_BAF_H_Mk7_Net_ESS_A", // Helmet Mk7 MTP Net ESS (A) [BAF]
"UK3CB_BAF_H_Mk7_Net_ESS_B", // Helmet Mk7 MTP Net ESS (B) [BAF]
"UK3CB_BAF_H_Mk7_Net_ESS_C", // Helmet Mk7 MTP Net ESS (C) [BAF]
"UK3CB_BAF_H_Mk7_Net_ESS_D", // Helmet Mk7 MTP Net ESS (D) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_A", // Helmet Mk7 MTP Scrim (A) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_B", // Helmet Mk7 MTP Scrim (B) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_C", // Helmet Mk7 MTP Scrim (C) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_D", // Helmet Mk7 MTP Scrim (D) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_E", // Helmet Mk7 MTP Scrim (E) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_ESS_A", // Helmet Mk7 MTP Scrim ESS (A) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_ESS_B", // Helmet Mk7 MTP Scrim ESS (B) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_ESS_C", // Helmet Mk7 MTP Scrim ESS (C) [BAF]
"UK3CB_BAF_H_Mk7_Scrim_F", // Helmet Mk7 MTP Scrim (F) [BAF]
"UK3CB_BAF_H_Mk7_Win_A", // Helmet Mk7 Arctic [BAF]
"UK3CB_BAF_H_Mk7_Win_ESS_A", // Helmet Mk7 Arctic ESS [BAF]
"UK3CB_BAF_H_PilotHelmetHeli_A", // Heli Pilot Helmet (A) [BAF]
"UK3CB_BAF_H_Wool_Hat", // Wool Commando Hat [BAF]
// Facegear
"UK3CB_BAF_G_Balaclava_Win", // Balaclava Arctic
"UK3CB_BAF_G_Tactical_Black", // Tactical Glasses (Black) [BAF]
"UK3CB_BAF_G_Tactical_Clear", // Tactical Glasses (Clear) [BAF]
"UK3CB_BAF_G_Tactical_Grey", // Tactical Glasses (Grey) [BAF]
"UK3CB_BAF_G_Tactical_Orange", // Tactical Glasses (Orange)[BAF]
"UK3CB_BAF_G_Tactical_Yellow", // Tactical Glasses (Yellow) [BAF]
// Vests
"UK3CB_BAF_V_HiVis", // Hi-Vis Jacket [BAF]
"UK3CB_BAF_V_Osprey_Winter", // Osprey Mk2 Arctic [BAF]
"UK3CB_BAF_V_Osprey_DDPM1", // Osprey Mk2 DDPM (A) [BAF]
"UK3CB_BAF_V_Osprey_DDPM2", // Osprey Mk2 DDPM (B) [BAF]
"UK3CB_BAF_V_Osprey_DDPM3", // Osprey Mk2 DDPM (C) [BAF]
"UK3CB_BAF_V_Osprey_DDPM4", // Osprey Mk2 DDPM (D) [BAF]
"UK3CB_BAF_V_Osprey_DDPM5", // Osprey Mk2 DDPM (E) [BAF]
"UK3CB_BAF_V_Osprey_DDPM6", // Osprey Mk2 DDPM (F) [BAF]
"UK3CB_BAF_V_Osprey_DDPM7", // Osprey Mk2 DDPM (G) [BAF]
"UK3CB_BAF_V_Osprey_DDPM8", // Osprey Mk2 DDPM (H) [BAF]
"UK3CB_BAF_V_Osprey_DDPM9", // Osprey Mk2 DDPM (I) [BAF]
"UK3CB_BAF_V_Osprey_DPMT1", // Osprey Mk2 DPM Tmp (A) [BAF]
"UK3CB_BAF_V_Osprey_DPMT2", // Osprey Mk2 DPM Tmp (B) [BAF]
"UK3CB_BAF_V_Osprey_DPMT3", // Osprey Mk2 DPM Tmp (C) [BAF]
"UK3CB_BAF_V_Osprey_DPMT4", // Osprey Mk2 DPM Tmp (D) [BAF]
"UK3CB_BAF_V_Osprey_DPMT5", // Osprey Mk2 DPM Tmp (E) [BAF]
"UK3CB_BAF_V_Osprey_DPMT6", // Osprey Mk2 DPM Tmp (F) [BAF]
"UK3CB_BAF_V_Osprey_DPMT7", // Osprey Mk2 DPM Tmp (G) [BAF]
"UK3CB_BAF_V_Osprey_DPMT8", // Osprey Mk2 DPM Tmp (H) [BAF]
"UK3CB_BAF_V_Osprey_DPMT9", // Osprey Mk2 DPM Tmp (I) [BAF]
"UK3CB_BAF_V_Osprey_DPMW1", // Osprey Mk2 DPM Wdl (A) [BAF]
"UK3CB_BAF_V_Osprey_DPMW2", // Osprey Mk2 DPM Wdl (B) [BAF]
"UK3CB_BAF_V_Osprey_DPMW3", // Osprey Mk2 DPM Wdl (C) [BAF]
"UK3CB_BAF_V_Osprey_DPMW4", // Osprey Mk2 DPM Wdl (D) [BAF]
"UK3CB_BAF_V_Osprey_DPMW5", // Osprey Mk2 DPM Wdl (E) [BAF]
"UK3CB_BAF_V_Osprey_DPMW6", // Osprey Mk2 DPM Wdl (F) [BAF]
"UK3CB_BAF_V_Osprey_DPMW7", // Osprey Mk2 DPM Wdl (G) [BAF]
"UK3CB_BAF_V_Osprey_DPMW8", // Osprey Mk2 DPM Wdl (H) [BAF]
"UK3CB_BAF_V_Osprey_DPMW9", // Osprey Mk2 DPM Wdl (I) [BAF]
"UK3CB_BAF_V_Osprey_HiVis", // Osprey Mk2 Hi-Vis [BAF]
"UK3CB_BAF_V_Osprey_Lite", // Osprey Mk4-L MTP [BAF]
"UK3CB_BAF_V_Osprey", // Osprey Mk4 MTP [BAF]
"UK3CB_BAF_V_Osprey_Belt_A", // Osprey Mk4 MTP Belt [BAF]
"UK3CB_BAF_V_Osprey_Grenadier_A", // Osprey Mk4 MTP Grenadier (A) [BAF]
"UK3CB_BAF_V_Osprey_Grenadier_B", // Osprey Mk4 MTP Grenadier (B) [BAF]
"UK3CB_BAF_V_Osprey_Holster", // Osprey Mk4 MTP Holster [BAF]
"UK3CB_BAF_V_Osprey_Marksman_A", // Osprey Mk4 MTP Marksman [BAF]
"UK3CB_BAF_V_Osprey_Medic_A", // Osprey Mk4 MTP Medic (A) [BAF]
"UK3CB_BAF_V_Osprey_Medic_B", // Osprey Mk4 MTP Medic (B) [BAF]
"UK3CB_BAF_V_Osprey_Medic_C", // Osprey Mk4 MTP Medic (C) [BAF]
"UK3CB_BAF_V_Osprey_Medic_D", // Osprey Mk4 MTP Medic (D) [BAF]
"UK3CB_BAF_V_Osprey_MG_A", // Osprey Mk4 MTP MG (A) [BAF]
"UK3CB_BAF_V_Osprey_MG_B", // Osprey Mk4 MTP MG (B) [BAF]
"UK3CB_BAF_V_Osprey_Rifleman_A", // Osprey Mk4 MTP Rifleman (A) [BAF]
"UK3CB_BAF_V_Osprey_Rifleman_B", // Osprey Mk4 MTP Rifleman (B) [BAF]
"UK3CB_BAF_V_Osprey_Rifleman_C", // Osprey Mk4 MTP Rifleman (C) [BAF]
"UK3CB_BAF_V_Osprey_Rifleman_D", // Osprey Mk4 MTP Rifleman (D) [BAF]
"UK3CB_BAF_V_Osprey_Rifleman_E", // Osprey Mk4 MTP Rifleman (E) [BAF]
"UK3CB_BAF_V_Osprey_Rifleman_F", // Osprey Mk4 MTP Rifleman (F) [BAF]
"UK3CB_BAF_V_Osprey_SL_A", // Osprey Mk4 MTP SL (A) [BAF]
"UK3CB_BAF_V_Osprey_SL_B", // Osprey Mk4 MTP SL (B) [BAF]
"UK3CB_BAF_V_Osprey_SL_C", // Osprey Mk4 MTP SL (C) [BAF]
"UK3CB_BAF_V_Osprey_SL_D", // Osprey Mk4 MTP SL (D) [BAF]
"UK3CB_BAF_V_Pilot_DDPM", // Pilot Vest DDPM [BAF]
"UK3CB_BAF_V_Pilot_DPMT", // Pilot Vest DPM Tmp [BAF]
"UK3CB_BAF_V_Pilot_DPMW", // Pilot Vest DPM Wdl [BAF]
"UK3CB_BAF_V_Pilot_A", // Pilot Vest MTP [BAF]
"UK3CB_BAF_V_PLCE_Webbing_Plate_Winter", // PLCE Webbing (Plate) Arctic [BAF]
"UK3CB_BAF_V_PLCE_Webbing_Plate_DDPM", // PLCE Webbing (Plate) DDPM [BAF]
"UK3CB_BAF_V_PLCE_Webbing_Plate_DPMT", // PLCE Webbing (Plate) DPM Tmp [BAF]
"UK3CB_BAF_V_PLCE_Webbing_Plate_DPMW", // PLCE Webbing (Plate) DPM Wdl [BAF]
"UK3CB_BAF_V_PLCE_Webbing_Plate_MTP", // PLCE Webbing (Plate) MTP [BAF]
"UK3CB_BAF_V_PLCE_Webbing_Plate_OLI", // PLCE Webbing (Plate) Olive [BAF]
"UK3CB_BAF_V_PLCE_Webbing_Winter", // PLCE Webbing Arctic [BAF]
"UK3CB_BAF_V_PLCE_Webbing_DDPM", // PLCE Webbing DDPM [BAF]
"UK3CB_BAF_V_PLCE_Webbing_DPMT", // PLCE Webbing DPM Tmp [BAF]
"UK3CB_BAF_V_PLCE_Webbing_DPMW", // PLCE Webbing DPM Wdl [BAF]
"UK3CB_BAF_V_PLCE_Webbing_MTP", // PLCE Webbing MTP [BAF]
// Items
"muzzle_snds_B", // Sound Suppressor (7.62 mm)
"muzzle_snds_L", // Sound Suppressor (9mm)
"RKSL_optic_EOT552_C", // EOTech 552.A65/1 (Coyote)
"RKSL_optic_EOT552", // EOTech 552.A65/1
"RKSL_optic_EOT552X_C", // EOTech 552.XR308 (Coyote)
"RKSL_optic_EOT552X", // EOTech 552.XR308
"RKSL_optic_LDS_C", // LDS (Coyote)
"RKSL_optic_LDS", // LDS
"RKSL_optic_PMII_312_des", // S+B 3-12x50 PM II (D)
"RKSL_optic_PMII_312_sunshade_des", // S+B 3-12x50 PM II (sunshade) (D)
"RKSL_optic_PMII_312_sunshade_wdl", // S+B 3-12x50 PM II (sunshade) (W)
"RKSL_optic_PMII_312_sunshade", // S+B 3-12x50 PM II (sunshade)
"RKSL_optic_PMII_312_wdl", // S+B 3-12x50 PM II (W)
"RKSL_optic_PMII_312", // S+B 3-12x50 PM II
"RKSL_optic_PMII_525_des", // S+B 5-25x56 PM II (D)
"RKSL_optic_PMII_525_wdl", // S+B 5-25x56 PM II (W)
"RKSL_optic_PMII_525", // S+B 5-25x56 PM II
"RKSL_optic_RMR_MS19_FDE", // RMR (MS19) (FDE)
"RKSL_optic_RMR_MS19", // RMR (MS19)
"RKSL_optic_RMR_RM33_FDE", // RMR (RM33) (FDE)
"RKSL_optic_RMR_RM33", // RMR (RM33)
"UK3CB_BAF_BFA_L110", // Blank Fire Adaptor (L110)
"UK3CB_BAF_BFA_L129", // Blank Fire Adaptor (L129)
"UK3CB_BAF_BFA_L7", // Blank Fire Adaptor (L7)
"UK3CB_BAF_BFA_L85", // Blank Fire Adaptor (L85)
"UK3CB_BAF_Flashlight_L105A1", // Flashlight (L105A1)
"UK3CB_BAF_Flashlight_L131A1", // Flashlight (L131A1)
"UK3CB_BAF_HMNVS", // Head-Mounted NV System [BAF]
"UK3CB_BAF_Javelin_CLU", // Javelin CLU
"UK3CB_BAF_Kite", // KITE
"UK3CB_BAF_L105A1_LLM_IR_G", // Steiner DBAL-PL (Green)
"UK3CB_BAF_L105A1_LLM_IR_R", // Steiner DBAL-PL (Red)
"UK3CB_BAF_Laser_L131A1", // Glock-17 Laser (IR)
"UK3CB_BAF_LLM_Flashlight_Black", // LLM Mk3 Flashlight (Black)
"UK3CB_BAF_LLM_Flashlight_Tan", // LLM Mk3 Flashlight (Tan)
"UK3CB_BAF_LLM_IR_Black", // LLM Mk3 IR (Black)
"UK3CB_BAF_LLM_IR_Tan", // LLM Mk3 IR (Tan)
"UK3CB_BAF_MaxiKite", // KITE (MAXIKITE)
"UK3CB_BAF_SFFH", // Surefire Flash Hider
"UK3CB_BAF_Silencer_L105A1", // Suppressor (L105A1)
"UK3CB_BAF_Silencer_L110", // Suppressor (L110)
"UK3CB_BAF_Silencer_L115A3", // Suppressor (L115/L129)
"UK3CB_BAF_Silencer_L85", // Suppressor (L85)
"UK3CB_BAF_Silencer_L91A1", // Suppressor (L91A1)
"UK3CB_BAF_Soflam_Laserdesignator", // AN/PEQ-1 SOFLAM
"UK3CB_BAF_SpecterLDS", // LDS (without Reflex)
"UK3CB_BAF_SUIT", // SUIT L2A2
"UK3CB_BAF_SUSAT", // SUSAT L6A1
"UK3CB_BAF_TA31F", // Trijicon ACOG TA31F
"UK3CB_BAF_TA648_308", // Trijicon ACOG TA648RMR-308
"UK3CB_BAF_TA648", // Trijicon ACOG TA648RMR
"UK3CB_underbarrel_acc_afg_d", // A-grip (Desert)
"UK3CB_underbarrel_acc_afg_g", // A-grip (Green)
"UK3CB_underbarrel_acc_afg_t", // A-grip (Tan)
"UK3CB_underbarrel_acc_afg_w", // A-grip (Winter)
"UK3CB_underbarrel_acc_afg", // A-grip (Black)
"UK3CB_underbarrel_acc_bipod", // Harris Bipod
"UK3CB_underbarrel_acc_fgrip_bipod", // Folding-grip and Harris Bipod
"UK3CB_underbarrel_acc_fgrip", // Folding-grip
"UK3CB_underbarrel_acc_grippod_d", // Grip-pod (Desert)
"UK3CB_underbarrel_acc_grippod_g", // Grip-pod (Green)
"UK3CB_underbarrel_acc_grippod_t", // Grip-pod (Tan)
"UK3CB_underbarrel_acc_grippod_w", // Grip-pod (Winter)
"UK3CB_underbarrel_acc_grippod", // Grip-pod (Black)
// Vanilla Standard Items
"acc_flashlight", // Flashlight
"acc_pointer_IR", // IR Laser Pointer
"B_UavTerminal", // UAV Terminal [NATO]
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"G_B_Diving", // Diving Goggles [NATO]
"H_PilotHelmetFighter_B", // Pilot Helmet [NATO]
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Laserdesignator_01_khk_F", // Laser Designator (Khaki)
"Laserdesignator_03", // Laser Designator (Olive)
"Laserdesignator", // Laser Designator (Sand)
"Medikit", // Medikit
"MineDetector", // Mine Detector
"NVGoggles_INDEP", // NV Goggles (Green)
"NVGoggles_OPFOR", // NV Goggles (Black)
"NVGoggles_tna_F", // NV Goggles (Tropic)
"NVGoggles", // NV Goggles (Brown)
"NVGogglesB_blk_F", // ENVG-II (Black)
"NVGogglesB_grn_F", // ENVG-II (Green)
"NVGogglesB_gry_F", // ENVG-II (Grey)
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
"U_B_PilotCoveralls", // Pilot Coveralls [NATO]
"U_B_Wetsuit", // Wetsuit [NATO]
"V_RebreatherB", // Rebreather [NATO]
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"UK3CB_BAF_B_Bergen_Arctic_JTAC_A", // Bergen Arctic JTAC/FAC [BAF]
"UK3CB_BAF_B_Bergen_Arctic_JTAC_H_A", // Bergen Arctic JTAC/FAC H [BAF]
"UK3CB_BAF_B_Bergen_Arctic_Rifleman_A", // Bergen Arctic Rifleman A [BAF]
"UK3CB_BAF_B_Bergen_Arctic_Rifleman_B", // Bergen Arctic Rifleman B [BAF]
"UK3CB_BAF_B_Bergen_Arctic_SL_A", // Bergen Arctic SL [BAF]
"UK3CB_BAF_B_Bergen_DDPM_JTAC_A", // Bergen DDPM JTAC/FAC [BAF]
"UK3CB_BAF_B_Bergen_DDPM_JTAC_H_A", // Bergen DDPM JTAC/FAC H [BAF]
"UK3CB_BAF_B_Bergen_DDPM_Rifleman_A", // Bergen DDPM Rifleman A [BAF]
"UK3CB_BAF_B_Bergen_DDPM_Rifleman_B", // Bergen DDPM Rifleman B [BAF]
"UK3CB_BAF_B_Bergen_DDPM_SL_A", // Bergen DDPM SL [BAF]
"UK3CB_BAF_B_Bergen_DPMT_JTAC_A", // Bergen DPM Tmp JTAC/FAC [BAF]
"UK3CB_BAF_B_Bergen_DPMT_JTAC_H_A", // Bergen DPM Tmp JTAC/FAC H [BAF]
"UK3CB_BAF_B_Bergen_DPMT_Rifleman_A", // Bergen DPM Tmp Rifleman A [BAF]
"UK3CB_BAF_B_Bergen_DPMT_Rifleman_B", // Bergen DPM Tmp Rifleman B [BAF]
"UK3CB_BAF_B_Bergen_DPMT_SL_A", // Bergen DPM Tmp SL [BAF]
"UK3CB_BAF_B_Bergen_DPMW_JTAC_A", // Bergen DPM Wdl JTAC/FAC [BAF]
"UK3CB_BAF_B_Bergen_DPMW_JTAC_H_A", // Bergen DPM Wdl JTAC/FAC H [BAF]
"UK3CB_BAF_B_Bergen_DPMW_Rifleman_A", // Bergen DPM Wdl Rifleman A [BAF]
"UK3CB_BAF_B_Bergen_DPMW_Rifleman_B", // Bergen DPM Wdl Rifleman B [BAF]
"UK3CB_BAF_B_Bergen_DPMW_SL_A", // Bergen DPM Wdl SL [BAF]
"UK3CB_BAF_B_Bergen_MTP_Engineer_H_A", // Bergen MTP Engineer H [BAF]
"UK3CB_BAF_B_Bergen_MTP_Engineer_L_A", // Bergen MTP Engineer L [BAF]
"UK3CB_BAF_B_Bergen_MTP_JTAC_H_A", // Bergen MTP JTAC/FAC H [BAF]
"UK3CB_BAF_B_Bergen_MTP_JTAC_L_A", // Bergen MTP JTAC/FAC L [BAF]
"UK3CB_BAF_B_Bergen_MTP_Medic_H_A", // Bergen MTP Medic H (A) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Medic_H_B", // Bergen MTP Medic H (B) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Medic_L_A", // Bergen MTP Medic L (A) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Medic_L_B", // Bergen MTP Medic L (B) [BAF]
"UK3CB_BAF_B_Bergen_MTP_PointMan_H_A", // Bergen MTP Point Man H [BAF]
"UK3CB_BAF_B_Bergen_MTP_PointMan_L_A", // Bergen MTP Point Man L [BAF]
"UK3CB_BAF_B_Bergen_MTP_Radio_H_A", // Bergen MTP Radio H (A) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Radio_H_B", // Bergen MTP Radio H (B) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Radio_L_A", // Bergen MTP Radio L (A) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Radio_L_B", // Bergen MTP Radio L (B) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Rifleman_H_A", // Bergen MTP Rifleman H (A) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Rifleman_H_B", // Bergen MTP Rifleman H (B) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Rifleman_H_C", // Bergen MTP Rifleman H (C) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Rifleman_L_A", // Bergen MTP Rifleman L (A) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Rifleman_L_B", // Bergen MTP Rifleman L (B) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Rifleman_L_C", // Bergen MTP Rifleman L (C) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Rifleman_L_D", // Bergen MTP Rifleman L (D) [BAF]
"UK3CB_BAF_B_Bergen_MTP_Rifleman_XL_A", // Bergen MTP Rifleman XL [BAF]
"UK3CB_BAF_B_Bergen_MTP_Sapper_H_A", // Bergen MTP Sapper H [BAF]
"UK3CB_BAF_B_Bergen_MTP_Sapper_L_A", // Bergen MTP Sapper L [BAF]
"UK3CB_BAF_B_Bergen_MTP_SL_H_A", // Bergen MTP SL H [BAF]
"UK3CB_BAF_B_Bergen_MTP_SL_L_A", // Bergen MTP SL L [BAF]
"UK3CB_BAF_B_Bergen_OLI_JTAC_A", // Bergen Olive JTAC/FAC [BAF]
"UK3CB_BAF_B_Bergen_OLI_JTAC_H_A", // Bergen Olive JTAC/FAC H [BAF]
"UK3CB_BAF_B_Bergen_OLI_Rifleman_A", // Bergen Olive Rifleman A [BAF]
"UK3CB_BAF_B_Bergen_OLI_Rifleman_B", // Bergen Olive Rifleman B [BAF]
"UK3CB_BAF_B_Bergen_OLI_SL_A", // Bergen Olive SL [BAF]
"UK3CB_BAF_B_Bergen_TAN_JTAC_A", // Bergen Tan JTAC/FAC [BAF]
"UK3CB_BAF_B_Bergen_TAN_JTAC_H_A", // Bergen Tan JTAC/FAC H [BAF]
"UK3CB_BAF_B_Bergen_TAN_Rifleman_A", // Bergen Tan Rifleman A [BAF]
"UK3CB_BAF_B_Bergen_TAN_Rifleman_B", // Bergen Tan Rifleman B [BAF]
"UK3CB_BAF_B_Bergen_TAN_SL_A", // Bergen Tan SL [BAF]
"UK3CB_BAF_B_Carryall_Arctic", // Carryall Arctic [BAF]
"UK3CB_BAF_B_Carryall_DDPM", // Carryall DDPM [BAF]
"UK3CB_BAF_B_Carryall_DPMT", // Carryall DPM Tmp [BAF]
"UK3CB_BAF_B_Carryall_DPMW", // Carryall DPM Wdl [BAF]
"UK3CB_BAF_B_Carryall_MTP", // Carryall MTP [BAF]
"UK3CB_BAF_B_Carryall_OLI", // Carryall Olive [BAF]
"UK3CB_BAF_B_Carryall_TAN", // Carryall Tan [BAF]
"UK3CB_BAF_B_Kitbag_Arctic", // Kitbag Arcic [BAF]
"UK3CB_BAF_B_Kitbag_DDPM", // Kitbag DDPM [BAF]
"UK3CB_BAF_B_Kitbag_DPMT", // Kitbag DPM Tmp [BAF]
"UK3CB_BAF_B_Kitbag_DPMW", // Kitbag DPM Wdl [BAF]
"UK3CB_BAF_B_Kitbag_MTP", // Kitbag MTP [BAF]
"UK3CB_BAF_B_Kitbag_OLI", // Kitbag Olive [BAF]
"UK3CB_BAF_B_Kitbag_TAN", // Kitbag Tan [BAF]
// Vanilla Standard Backpacks
"B_Parachute", // Steerable Parachute
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anarc164", // AN/ARC-164
"tf_anarc210", // AN/ARC-210
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_anprc155", // AN/PRC 155
"tf_bussole", // Assault Pack Bussole
"tf_mr3000_multicam", // MR3000 Multicam
"tf_mr3000", // MR3000
"tf_mr6000l", // MR6000L
"tf_rt1523g_big", // RT-1523G (ASIP) Big
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_fabric", // RT-1523G (ASIP) Fabric
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage", // RT-1523G (ASIP) Sage
"tf_rt1523g" // RT-1523G (ASIP)
];

View File

@@ -0,0 +1,531 @@
/*
BWMod Arsenal Preset
Last Update: 2020-05-08
Needed:
- BWMod - https://steamcommunity.com/sharedfiles/filedetails/?id=1200127537
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
"BWA3_Bunkerfaust", // Bunkerfaust
"BWA3_CarlGustav", // Leuchtbüchse 84 mm
"BWA3_Fliegerfaust", // Fliegerfaust 2 Stinger
"BWA3_G27_AG40_tan", // G27 AG40-2 (Tan)
"BWA3_G27_AG40", // G27 AG40-2
"BWA3_G27_tan", // G27 (Tan)
"BWA3_G27", // G27
"BWA3_G28_Patrol", // G28 E2 (Patrol)
"BWA3_G28", // G28 E2 (Standard)
"BWA3_G29", // G29
"BWA3_G36A1_AG40_green", // G36A1 AG40-2 (Green)
"BWA3_G36A1_AG40_tan", // G36A1 AG40-2 (Tan)
"BWA3_G36A1_AG40", // G36A1 AG40-2
"BWA3_G36A1_green", // G36A1 (Green)
"BWA3_G36A1_tan", // G36A1 (Tan)
"BWA3_G36A1", // G36A1
"BWA3_G36A2_AG40_green", // G36A2 AG40-2 (Green)
"BWA3_G36A2_AG40_tan", // G36A2 AG40-2 (Tan)
"BWA3_G36A2_AG40", // G36A2 AG40-2
"BWA3_G36A2_green", // G36A2 (Green)
"BWA3_G36A2_tan", // G36A2 (Tan)
"BWA3_G36A2", // G36A2
"BWA3_G36A3_AG40_green", // G36A3 AG40-2 (Green)
"BWA3_G36A3_AG40_tan", // G36A3 AG40-2 (Tan)
"BWA3_G36A3_AG40", // G36A3 AG40-2
"BWA3_G36A3_green", // G36A3 (Green)
"BWA3_G36A3_tan", // G36A3 (Tan)
"BWA3_G36A3", // G36A3
"BWA3_G36KA0_green", // G36KA0 (Green)
"BWA3_G36KA0_tan", // G36KA0 (Tan)
"BWA3_G36KA0", // G36KA0
"BWA3_G36KA1_green", // G36KA1 (Green)
"BWA3_G36KA1_tan", // G36KA1 (Tan)
"BWA3_G36KA1", // G36KA1
"BWA3_G36KA2_green", // G36KA2 (Green)
"BWA3_G36KA2_tan", // G36KA2 (Tan)
"BWA3_G36KA2", // G36KA2
"BWA3_G36KA3_green", // G36KA3 (Green)
"BWA3_G36KA3_tan", // G36KA3 (Tan)
"BWA3_G36KA3", // G36KA3
"BWA3_G36KA4_green", // G36KA4 (Green)
"BWA3_G36KA4_tan", // G36KA4 (Tan)
"BWA3_G36KA4", // G36KA4
"BWA3_G38_AG40_tan", // G38 AG40-2 (Tan)
"BWA3_G38_AG40", // G38 AG40-2
"BWA3_G38_tan", // G38 (Tan)
"BWA3_G38", // G38
"BWA3_G38C_tan", // G38C (Tan)
"BWA3_G38C", // G38C
"BWA3_G38K_AG40_tan", // G38K AG40-2 (Tan)
"BWA3_G38K_AG40", // G38K AG40-2
"BWA3_G38K_tan", // G38K (Tan)
"BWA3_G38K", // G38K
"BWA3_G82", // G82
"BWA3_MG3", // MG3
"BWA3_MG4", // MG4
"BWA3_MG5_tan", // MG5 (Tan)
"BWA3_MG5", // MG5
"BWA3_MP7", // MP7
"BWA3_P2A1", // P2A1
"BWA3_P8", // P8
"BWA3_PzF3", // Panzerfaust 3
"BWA3_RGW90" // RGW 90
];
GRLIB_arsenal_magazines = [
"BWA3_10Rnd_127x99_G82_AP_Tracer", // G82 12.7x99mm 10Rnd Mag (AP Tracer)
"BWA3_10Rnd_127x99_G82_AP", // G82 12.7x99mm 10Rnd Mag (AP)
"BWA3_10Rnd_127x99_G82_Raufoss_Tracer_Dim", // G82 12.7x99mm Mk211 10Rnd Mag (Raufoss IR-DIM)
"BWA3_10Rnd_127x99_G82_Raufoss_Tracer", // G82 12.7x99mm Mk211 10Rnd Mag (Raufoss Tracer)
"BWA3_10Rnd_127x99_G82_Raufoss", // G82 12.7x99mm Mk211 10Rnd Mag (Raufoss)
"BWA3_10Rnd_127x99_G82_SD", // G82 12.7x99mm 10Rnd Mag (SD)
"BWA3_10Rnd_127x99_G82_Tracer_Dim", // G82 12.7x99mm 10Rnd Mag (IR-DIM)
"BWA3_10Rnd_127x99_G82_Tracer", // G82 12.7x99mm 10Rnd Mag (Tracer)
"BWA3_10Rnd_127x99_G82", // G82 12.7x99mm 10Rnd Mag
"BWA3_10Rnd_762x51_G28_AP", // G28 7.62x51mm 10Rnd Mag (AP)
"BWA3_10Rnd_762x51_G28_LR", // G28 7.62x51mm M118LR 10Rnd Mag (LR)
"BWA3_10Rnd_762x51_G28_SD", // G28 7.62x51mm 10Rnd Mag (SD)
"BWA3_10Rnd_762x51_G28_Tracer_Dim", // G28 7.62x51mm 10Rnd Mag (IR-DIM)
"BWA3_10Rnd_762x51_G28_Tracer", // G28 7.62x51mm 10Rnd Mag (Tracer)
"BWA3_10Rnd_762x51_G28", // G28 7.62x51mm 10Rnd Mag
"BWA3_10Rnd_86x70_G29_Tracer", // G29 8.6x70mm 10Rnd Mag (Tracer)
"BWA3_10Rnd_86x70_G29", // G29 8.6x70mm 10Rnd Mag
"BWA3_120Rnd_762x51_soft", // Belt Bag 7.62x51mm 12Rnd
"BWA3_120Rnd_762x51_Tracer_soft", // Belt Bag 7.62x51mm 12Rnd (Tracer)
"BWA3_120Rnd_762x51_Tracer", // Belt Case 7.62x51mm 12Rnd (Tracer)
"BWA3_120Rnd_762x51", // Belt Case 7.62x51mm 12Rnd
"BWA3_15Rnd_9x19_P8", // P8 9mm 15Rnd Mag
"BWA3_1Rnd_Flare_Illum", // P2A1 26.5mm DM516 Illumination
"BWA3_1Rnd_Flare_Multistar_Green", // P2A1 26.5mm DM21 Multi Star (green)
"BWA3_1Rnd_Flare_Multistar_Red", // P2A1 26.5mm DM23 Multi Star (red)
"BWA3_1Rnd_Flare_Multistar_White", // P2A1 26.5mm DM25 Multi Star (white)
"BWA3_1Rnd_Flare_Singlestar_Green", // P2A1 26.5mm DM51 Single Star (green)
"BWA3_1Rnd_Flare_Singlestar_Red", // P2A1 26.5mm DM53 Single Star (red)
"BWA3_1Rnd_Flare_Singlestar_White", // P2A1 26.5mm DM55 Single Star (white)
"BWA3_200Rnd_556x45_Tracer", // MG4 5.56x45mm 200Rnd Belt Case (Tracer)
"BWA3_200Rnd_556x45", // MG4 5.56x45mm 200Rnd Belt Case
"BWA3_20Rnd_762x51_G28_AP", // G27 7.62x51mm 20Rnd Mag (AP)
"BWA3_20Rnd_762x51_G28_SD", // G27 7.62x51mm 20Rnd Mag (SD)
"BWA3_20Rnd_762x51_G28_Tracer_Dim", // G27 7.62x51mm 20Rnd Mag (IR-DIM)
"BWA3_20Rnd_762x51_G28_Tracer", // G27 7.62x51mm 20Rnd Mag (Tracer)
"BWA3_20Rnd_762x51_G28", // G27 7.62x51mm 20Rnd Mag
"BWA3_30Rnd_556x45_G36_AP", // G36 5.56x45mm DM31 30Rnd Mag (AP)
"BWA3_30Rnd_556x45_G36_SD", // G36 5.56x45mm 30Rnd Mag (SD)
"BWA3_30Rnd_556x45_G36_Tracer_Dim", // G36 5.56x45mm 30Rnd Mag (IR-DIM)
"BWA3_30Rnd_556x45_G36_Tracer", // G36 5.56x45mm DM21 30Rnd Mag (Tracer)
"BWA3_30Rnd_556x45_G36", // G36 5.56x45mm DM11 30Rnd Mag
"BWA3_40Rnd_46x30_MP7_SD", // MP7 4.6x30mm 40Rnd Mag (SD)
"BWA3_40Rnd_46x30_MP7", // MP7 4.6x30mm 40Rnd Mag
"BWA3_CarlGustav_HE", // 84mm HE Rocket
"BWA3_CarlGustav_HEAT", // 84mm HEAT-T Rocket
"BWA3_CarlGustav_HEDP", // 84mm HEDP Rocket
"BWA3_CarlGustav_Illum", // 84mm Illum Rocket
"BWA3_CarlGustav_Smoke", // 84mm Smoke Rocket
"BWA3_DM31AT_Mag", // DM31AT Mine
"BWA3_Fliegerfaust_Mag", // Fliegerfaust 2 Missile
"BWA3_PzF3_DM32", // Bunkerfaust Rocket
"BWA3_PzF3_Tandem", // Panzerfaust 3 IT Rocket
"BWA3_RGW90_HH", // RGW 90 HH Rocket
// Standard Vanilla Magazines, Grenades & Explosives
"1Rnd_HE_Grenade_shell", // 40 mm HE Grenade Round
"1Rnd_Smoke_Grenade_shell", // Smoke Round (White)
"1Rnd_SmokeBlue_Grenade_shell", // Smoke Round (Blue)
"1Rnd_SmokeGreen_Grenade_shell", // Smoke Round (Green)
"1Rnd_SmokeOrange_Grenade_shell", // Smoke Round (Orange)
"1Rnd_SmokePurple_Grenade_shell", // Smoke Round (Purple)
"1Rnd_SmokeRed_Grenade_shell", // Smoke Round (Red)
"1Rnd_SmokeYellow_Grenade_shell", // Smoke Round (Yellow)
"APERSBoundingMine_Range_Mag", // APERS Bounding Mine
"APERSMine_Range_Mag", // APERS Mine
"APERSMineDispenser_Mag", // APERS Mine Dispenser
"APERSTripMine_Wire_Mag", // APERS Tripwire Mine
"ATMine_Range_Mag", // AT Mine
"B_IR_Grenade", // IR Grenade [NATO]
"Chemlight_blue", // Chemlight (Blue)
"Chemlight_green", // Chemlight (Green)
"Chemlight_red", // Chemlight (Red)
"Chemlight_yellow", // Chemlight (Yellow)
"ClaymoreDirectionalMine_Remote_Mag", // Claymore Charge
"DemoCharge_Remote_Mag", // Explosive Charge
"Drone_Range_Mag_dummy", // AT Mine
"Drone_Range_Mag", // AT Mine
"IEDLandBig_Remote_Mag", // Large IED (Dug-in)
"IEDLandSmall_Remote_Mag", // Small IED (Dug-in)
"IEDUrbanBig_Remote_Mag", // Large IED (Urban)
"IEDUrbanSmall_Remote_Mag", // Small IED (Urban)
"Laserbatteries", // Designator Batteries
"SatchelCharge_Remote_Mag", // Explosive Satchel
"SLAMDirectionalMine_Wire_Mag", // M6 SLAM Mine
"TrainingMine_Mag", // Training Mine
"UGL_FlareCIR_F", // Flare Round (IR)
"UGL_FlareGreen_F", // Flare Round (Green)
"UGL_FlareRed_F", // Flare Round (Red)
"UGL_FlareWhite_F", // Flare Round (White)
"UGL_FlareYellow_F" // Flare Round (Yellow)
];
GRLIB_arsenal_items = [
// Uniforms
"BWA3_Uniform_Crew_Fleck", // Boilersuit (Flecktart)
"BWA3_Uniform_Crew_Multi", // Boilersuit (Multitarn)
"BWA3_Uniform_Crew_Tropen", // Boilersuit (Tropentarn)
"BWA3_Uniform_Fleck", // IdZ Uniform (Flecktarn)
"BWA3_Uniform_Ghillie_Fleck", // IdZ Ghillie suit (Flecktarn)
"BWA3_Uniform_Ghillie_Multi", // IdZ Ghillie suit (Multitarn)
"BWA3_Uniform_Ghillie_Tropen", // IdZ Ghillie suit (Tropentarn)
"BWA3_Uniform_Helipilot", // Boilersuit (Heli Pilot)
"BWA3_Uniform_Multi", // IdZ Uniform (Multitarn)
"BWA3_Uniform_sleeves_Fleck", // IdZ Uniform (Flecktarn, Sleeves)
"BWA3_Uniform_sleeves_Multi", // IdZ Uniform (Multitarn, Sleeves)
"BWA3_Uniform_sleeves_Tropen", // IdZ Uniform (Tropentarn, Sleeves)
"BWA3_Uniform_tee_Fleck", // IdZ Uniform (Flecktarn, Tee)
"BWA3_Uniform_tee_Multi", // IdZ Uniform (Multitarn, Tee)
"BWA3_Uniform_tee_Tropen", // IdZ Uniform (Tropentarn, Tee)
"BWA3_Uniform_Tropen", // IdZ Uniform (Tropentarn)
"BWA3_Uniform2_Fleck", // BW Uniform (Flecktarn)
"BWA3_Uniform2_Ghillie_Fleck", // BW Ghillie suit (Flecktarn)
"BWA3_Uniform2_Ghillie_Multi", // BW Ghillie suit (Multitarn)
"BWA3_Uniform2_Ghillie_Tropen", // BW Ghillie suit (Tropentarn)
"BWA3_Uniform2_Multi", // BW Uniform (Multitarn)
"BWA3_Uniform2_sleeves_Fleck", // BW Uniform (Flecktarn, Sleeves)
"BWA3_Uniform2_sleeves_Multi", // BW Uniform (Multitarn, Sleeves)
"BWA3_Uniform2_sleeves_Tropen", // BW Uniform (Tropentarn, Sleeves)
"BWA3_Uniform2_Tropen", // BW Uniform (Tropentarn)
// Headgear
"BWA3_Beret_Falli", // Beret (Fallschirmjäger)
"BWA3_Beret_HFlieger", // Beret (Heeresflieger)
"BWA3_Beret_Jaeger", // Beret (Jäger)
"BWA3_Beret_Pz", // Beret (Panzertruppen)
"BWA3_Beret_PzAufkl", // Beret (Panzeraufklärer)
"BWA3_Beret_PzGren", // Beret (Panzergrenadiere)
"BWA3_Beret_Wach_blue", // Beret (Wachbattalion, Blue)
"BWA3_Beret_Wach_green", // Beret (Wachbattalion, Green)
"BWA3_Booniehat_Fleck", // Booniehat (Flecktarn)
"BWA3_Booniehat_Multi", // Booniehat (Multitarn)
"BWA3_Booniehat_Tropen", // Booniehat (Tropentarn)
"BWA3_CrewmanKSK_Fleck_Headset", // Crewman KSK Helmet (Flecktarn, Headset)
"BWA3_CrewmanKSK_Fleck", // Crewman KSK Helmet (Flecktarn)
"BWA3_CrewmanKSK_Headset", // Crewman KSK Helmet (Headset)
"BWA3_CrewmanKSK_Tropen_Headset", // Crewman KSK Helmet (Tropentarn, Headset)
"BWA3_CrewmanKSK_Tropen", // Crewman KSK Helmet (Tropentarn)
"BWA3_CrewmanKSK", // Crewman KSK Helmet
"BWA3_Knighthelm", // Knighthelm IHS
"BWA3_M92_Fleck", // M92 Helmet (Flecktarn)
"BWA3_M92_Multi", // M92 Helmet (Multitarn)
"BWA3_M92_Tropen", // M92 Helmet (Tropentarn)
"BWA3_OpsCore_Camera", // Ops-Core FAST Helmet (Camera)
"BWA3_OpsCore_Fleck_Camera", // Ops-Core FAST Helmet (Flecktarn, Camera)
"BWA3_OpsCore_Fleck_Patch", // Ops-Core FAST Helmet (Flecktarn, Patch)
"BWA3_OpsCore_Fleck", // Ops-Core FAST Helmet (Flecktarn)
"BWA3_OpsCore_Tropen_Camera", // Ops-Core FAST Helmet (Tropentarn, Camera)
"BWA3_OpsCore_Tropen_Patch", // Ops-Core FAST Helmet (Tropentarn, Patch)
"BWA3_OpsCore_Tropen", // Ops-Core FAST Helmet (Tropentarn)
"BWA3_OpsCore", // Ops-Core FAST Helmet
// Facegear
"BWA3_G_Combat_black", // BW Combat Goggles (Black)
"BWA3_G_Combat_clear", // BW Combat Goggles (Clear)
"BWA3_G_Combat_orange", // BW Combat Goggles (Orange)
// Vests
"BWA3_Vest_Fleck", // IdZ Vest (Flecktarn)
"BWA3_Vest_Grenadier_Fleck", // IdZ Vest (Flecktarn) - Grenadier
"BWA3_Vest_Grenadier_Multi", // IdZ Vest (Multitarn) - Grenadier
"BWA3_Vest_Grenadier_Tropen", // IdZ Vest (Tropentarn) - Grenadier
"BWA3_Vest_JPC_Leader_Fleck", // JPC Vest (Flecktarn) - Squadleader
"BWA3_Vest_JPC_Leader_Multi", // JPC Vest (Multitarn) - Squadleader
"BWA3_Vest_JPC_Leader_Tropen", // JPC Vest (Tropentarn) - Squadleader
"BWA3_Vest_JPC_Radioman_Fleck", // JPC Vest (Flecktarn) - Radioman
"BWA3_Vest_JPC_Radioman_Multi", // JPC Vest (Multitarn) - Radioman
"BWA3_Vest_JPC_Radioman_Tropen", // JPC Vest (Tropentarn) - Radioman
"BWA3_Vest_JPC_Rifleman_Fleck", // JPC Vest (Flecktarn) - Rifleman
"BWA3_Vest_JPC_Rifleman_Multi", // JPC Vest (Multitarn) - Rifleman
"BWA3_Vest_JPC_Rifleman_Tropen", // JPC Vest (Tropentarn) - Rifleman
"BWA3_Vest_Leader_Fleck", // IdZ Vest (Flecktarn) - Squadleader
"BWA3_Vest_Leader_Multi", // IdZ Vest (Multitarn) - Squadleader
"BWA3_Vest_Leader_Tropen", // IdZ Vest (Tropentarn) - Squadleader
"BWA3_Vest_MachineGunner_Fleck", // IdZ Vest (Flecktarn) - Machine Gunner
"BWA3_Vest_MachineGunner_Multi", // IdZ Vest (Multitarn) - Machine Gunner
"BWA3_Vest_MachineGunner_Tropen", // IdZ Vest (Tropentarn) - Machine Gunner
"BWA3_Vest_Marksman_Fleck", // IdZ Vest (Flecktarn) - Marksman
"BWA3_Vest_Marksman_Multi", // IdZ Vest (Multitarn) - Marksman
"BWA3_Vest_Marksman_Tropen", // IdZ Vest (Tropentarn) - Marksman
"BWA3_Vest_Medic_Fleck", // IdZ Vest (Flecktarn) - Medic
"BWA3_Vest_Medic_Multi", // IdZ Vest (Multitarn) - Medic
"BWA3_Vest_Medic_Tropen", // IdZ Vest (Tropentarn) - Medic
"BWA3_Vest_Multi", // IdZ Vest (Multitarn)
"BWA3_Vest_Rifleman_Fleck", // IdZ Vest (Flecktarn) - Rifleman
"BWA3_Vest_Rifleman_Multi", // IdZ Vest (Multitarn) - Rifleman
"BWA3_Vest_Rifleman_Tropen", // IdZ Vest (Tropentarn) - Rifleman
"BWA3_Vest_Tropen", // IdZ Vest (Tropentarn)
// Items
"BWA3_acc_LLM01_irlaser_green", // LLM01 (Green)
"BWA3_acc_LLM01_irlaser_tan", // LLM01 (Tan)
"BWA3_acc_LLM01_irlaser_underbarrel", // LLM01 (Underbarrel)
"BWA3_acc_LLM01_irlaser", // LLM01
"BWA3_acc_VarioRay_irlaser_black", // LLM Vario-Ray
"BWA3_acc_VarioRay_irlaser", // LLM Vario-Ray (Brown)
"BWA3_bipod_Atlas", // BT10-LW17 ADM Bipod
"BWA3_bipod_Harris_green", // 1A2 S-BRM Bipod (Green)
"BWA3_bipod_Harris_tan", // 1A2 S-BRM Bipod (Tan)
"BWA3_bipod_Harris", // 1A2 S-BRM Bipod
"BWA3_bipod_MG3", // MG3 Bipod
"BWA3_ItemNaviPad", // NaviPad
"BWA3_muzzle_snds_QDSS_green", // KAC QDSS NT4 (5.56mm, Green)
"BWA3_muzzle_snds_QDSS_tan", // KAC QDSS NT4 (5.56mm, Tan)
"BWA3_muzzle_snds_QDSS", // KAC QDSS NT4 (5.56mm)
"BWA3_muzzle_snds_Rotex_II", // Rotex II (4.6mm)
"BWA3_muzzle_snds_Rotex_IIA", // Rotex IIA (7.62mm)
"BWA3_muzzle_snds_Rotex_IIIC_green", // Rotex III Compact (5.56mm, Green)
"BWA3_muzzle_snds_Rotex_IIIC_tan", // Rotex III Compact (5.56mm, Tan)
"BWA3_muzzle_snds_Rotex_IIIC", // Rotex III Compact (5.56mm)
"BWA3_muzzle_snds_Rotex_Monoblock", // Rotex Monoblock (.338)
"BWA3_optic_CarlGustav", // Carl Gustav optics
"BWA3_optic_CompM2_green", // Aimpoint CompM2 (Green)
"BWA3_optic_CompM2_tan", // Aimpoint CompM2 (Tan)
"BWA3_optic_CompM2", // Aimpoint CompM2
"BWA3_optic_EOTech_Mag_Off", // EOTech HHS2 w/ Magnifier
"BWA3_optic_EOTech_sand_Mag_Off", // EOTech HHS2 (Sand) w/ Magnifier
"BWA3_optic_EOTech_sand", // EOTech HHS2 (Sand)
"BWA3_optic_EOTech", // EOTech HHS2
"BWA3_optic_EOTech552_green", // EOTech 552 (Green)
"BWA3_optic_EOTech552_tan", // EOTech 552 (Tan)
"BWA3_optic_EOTech552", // EOTech 552
"BWA3_optic_Hensoldt", // 6-24x72 Hensoldt
"BWA3_optic_IRV600", // IRV 600
"BWA3_optic_M5Xi_MSR_MicroT2", // 5-25x56 M5Xi Military (MSR, MicroT2)
"BWA3_optic_M5Xi_MSR", // 5-25x56 M5Xi Military (MSR)
"BWA3_optic_M5Xi_Tremor3_MicroT2", // 5-25x56 M5Xi Military (Tremor 3, MicroT2)
"BWA3_optic_M5Xi_Tremor3", // 5-25x56 M5Xi Military (Tremor 3)
"BWA3_optic_MicroT1", // Aimpoint MicroT1
"BWA3_optic_MicroT2", // Aimpoint MicroT2
"BWA3_optic_NSA80", // NSA 80
"BWA3_optic_NSV600", // NSV 600
"BWA3_optic_NSV80", // NSV 80
"BWA3_optic_PMII_DMR_MicroT1_front", // 3-20x50 PM II DMR (MicroT1 front)
"BWA3_optic_PMII_DMR_MicroT1_rear", // 3-20x50 PM II DMR (MicroT1 rear)
"BWA3_optic_PMII_DMR", // 3-20x50 PM II DMR
"BWA3_optic_PMII_ShortdotCC", // 1.1-8x24 PM II ShortDot Dual CC
"BWA3_optic_RSAS_brown", // RSAS (Brown)
"BWA3_optic_RSAS_green", // RSAS (Green)
"BWA3_optic_RSAS_sand", // RSAS (Sand)
"BWA3_optic_RSAS_tan", // RSAS (Tan)
"BWA3_optic_RSAS", // RSAS
"BWA3_optic_ZO4x30_brown", // ZO 4x30 (Brown)
"BWA3_optic_ZO4x30_MicroT2_brown", // ZO 4x30 (MicroT2, Brown)
"BWA3_optic_ZO4x30_MicroT2", // ZO 4x30 (MicroT2)
"BWA3_optic_ZO4x30_RSAS_brown", // ZO 4x30 (RSAS, Brown)
"BWA3_optic_ZO4x30_RSAS", // ZO 4x30 (RSAS)
"BWA3_optic_ZO4x30", // ZO 4x30
"BWA3_optic_ZO4x30i_MicroT2_sand", // ZO 4x30i (MicroT2, Sand)
"BWA3_optic_ZO4x30i_MicroT2", // ZO 4x30i (MicroT2)
"BWA3_optic_ZO4x30i_RSAS_sand", // ZO 4x30i (RSAS, Sand)
"BWA3_optic_ZO4x30i_RSAS", // ZO 4x30i (RSAS)
"BWA3_optic_ZO4x30i_sand", // ZO 4x30i (Sand)
"BWA3_optic_ZO4x30i", // ZO 4x30i
"BWA3_Vector", // Vector IV
// Vanilla Standard Items
"B_UavTerminal", // UAV Terminal [NATO]
"Binocular", // Binoculars
"bipod_01_F_blk", // Bipod (Black) [NATO]
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"H_PilotHelmetFighter_B", // Pilot Helmet [NATO]
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Laserdesignator_01_khk_F", // Laser Designator (Khaki)
"Laserdesignator_03", // Laser Designator (Olive)
"Laserdesignator", // Laser Designator (Sand)
"Medikit", // Medikit
"MineDetector", // Mine Detector
"muzzle_snds_B", // Sound Suppressor (7.62 mm)
"muzzle_snds_H_MG_blk_F", // Sound Suppressor MG
"muzzle_snds_L", // Sound Suppressor (9 mm)
"muzzle_snds_M", // Sound Suppressor (5.56 mm)
"NVGoggles_INDEP", // NV Goggles (Green)
"NVGoggles_OPFOR", // NV Goggles (Black)
"NVGoggles_tna_F", // NV Goggles (Tropic)
"NVGoggles", // NV Goggles (Brown)
"NVGogglesB_blk_F", // ENVG-II (Black)
"NVGogglesB_grn_F", // ENVG-II (Green)
"NVGogglesB_gry_F", // ENVG-II (Grey)
"Rangefinder", // Rangefinder
"sfp_dbal2", // Dbal 2
"ToolKit", // Toolkit
"U_B_PilotCoveralls", // Pilot Coveralls [NATO]
"U_B_Wetsuit", // Wetsuit [NATO]
"V_RebreatherB", // Rebreather [NATO]
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
// TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"BWA3_AssaultPack_Fleck_Medic", // Assault Pack (Flecktarn, Medic)
"BWA3_AssaultPack_Fleck", // Assault Pack (Flecktarn)
"BWA3_AssaultPack_Multi_Medic", // Assault Pack (Multitarn, Medic)
"BWA3_AssaultPack_Multi", // Assault Pack (Multitarn)
"BWA3_AssaultPack_Tropen_Medic", // Assault Pack (Tropentarn, Medic)
"BWA3_AssaultPack_Tropen", // Assault Pack (Tropentarn)
"BWA3_Carryall_Fleck", // Carryall Backpack (Flecktarn)
"BWA3_Carryall_Multi", // Carryall Backpack (Multitarn)
"BWA3_Carryall_Tropen", // Carryall Backpack (Tropentarn)
"BWA3_FieldPack_Fleck", // Field Pack (Flecktarn)
"BWA3_FieldPack_Multi", // Field Pack (Multitarn)
"BWA3_FieldPack_Tropen", // Field Pack (Tropentarn)
"BWA3_Kitbag_Fleck_Medic", // Kitbag (Flecktarn, Medic)
"BWA3_Kitbag_Fleck", // Kitbag (Flecktarn)
"BWA3_Kitbag_Multi_Medic", // Kitbag (Multitarn, Medic)
"BWA3_Kitbag_Multi", // Kitbag (Multitarn)
"BWA3_Kitbag_Tropen_Medic", // Kitbag (Tropentarn, Medic)
"BWA3_Kitbag_Tropen", // Kitbag (Tropentarn)
"BWA3_PatrolPack_Fleck", // Patrol Pack (Flecktarn)
"BWA3_PatrolPack_Multi", // Patrol Pack (Multitarn)
"BWA3_PatrolPack_Tropen", // Patrol Pack (Tropentarn)
"BWA3_TacticalPack_Fleck_Medic", // Tactical Backpack (Flecktarn, Medic)
"BWA3_TacticalPack_Fleck", // Tactical Backpack (Flecktarn)
"BWA3_TacticalPack_Multi_Medic", // Tactical Backpack (Multitarn, Medic)
"BWA3_TacticalPack_Multi", // Tactical Backpack (Multitarn)
"BWA3_TacticalPack_Tropen_Medic", // Tactical Backpack (Tropentarn, Medic)
"BWA3_TacticalPack_Tropen", // Tactical Backpack (Tropentarn)
// Standard Vanilla Backpacks
"B_Parachute", // Steerable Parachute
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anarc164", // AN/ARC-164
"tf_anarc210", // AN/ARC-210
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_anprc155", // AN/PRC 155
"tf_bussole", // Assault Pack Bussole
"tf_mr3000_bwmod_tropen", // MR3000 BWMOD [Tropentarn]
"tf_mr3000_bwmod", // MR3000 BWMOD [Flecktarn]
"tf_mr3000_multicam", // MR3000 Multicam
"tf_mr3000", // MR3000
"tf_mr6000l", // MR6000L
"tf_rt1523g_big_bwmod_tropen", // RT-1523G (ASIP) Big BWMOD [Tropentarn]
"tf_rt1523g_big_bwmod", // RT-1523G (ASIP) Big BWMOD [Flecktarn]
"tf_rt1523g_big", // RT-1523G (ASIP) Big
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_bwmod", // RT-1523G (ASIP) BWMOD
"tf_rt1523g_fabric", // RT-1523G (ASIP) Fabric
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage", // RT-1523G (ASIP) Sage
"tf_rt1523g" // RT-1523G (ASIP)
];

View File

@@ -0,0 +1,413 @@
/*
CSAT Arsenal Preset
Last Update: 2020-05-08
Needed:
- None
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
"arifle_AK12_arid_F", // AK-12 7.62 mm (Arid)
"arifle_AK12_F", // AK-12 7.62 mm
"arifle_AK12_GL_arid_F", // AK-12 7.62 mm (Arid)
"arifle_AK12_GL_F", // AK-12 GL 7.62 mm
"arifle_AK12_GL_lush_F", // AK-12 GL 7.62 mm (Lush)
"arifle_AK12_lush_F", // AK-12 7.62 (Lush)
"arifle_AK12U_arid_F", // AKU-12 7.62 mm (Arid)
"arifle_AK12U_F", // AKU-12 7.62 mm
"arifle_AK12U_lush_F", // AKU-12 7.62 mm (Lush)
"arifle_AKM_F", // AKM 7.62 mm
"arifle_AKS_F", // AKS-74U 5.45 mm
"arifle_ARX_blk_F", // Type 115 6.5 mm (Black)
"arifle_ARX_ghex_F", // Type 115 6.5 mm (Green Hex)
"arifle_ARX_hex_F", // Type 115 6.5 mm (Hex)
"arifle_CTAR_blk_F", // CAR-95 5.8 mm (Black)
"arifle_CTAR_ghex_F", // CAR-95 5.8 mm (Green Hex)
"arifle_CTAR_GL_blk_F", // CAR-95 GL 5.8 mm (Black)
"arifle_CTAR_GL_ghex_F", // CAR-95 GL 5.8 mm (Green Hex)
"arifle_CTAR_GL_hex_F", // CAR-95 GL 5.8 mm (Hex)
"arifle_CTAR_hex_F", // CAR-95 5.8 mm (Hex)
"arifle_CTARS_blk_F", // CAR-95-1 5.8 mm (Black)
"arifle_CTARS_ghex_F", // CAR-95-1 5.8 mm (Green Hex)
"arifle_CTARS_hex_F", // CAR-95-1 5.8 mm (Hex)
"arifle_Katiba_C_F", // Katiba Carbine 6.5 mm
"arifle_Katiba_F", // Katiba 6.5 mm
"arifle_Katiba_GL_F", // Katiba GL 6.5 mm
"arifle_MSBS65_black_F", // Promet 6.5 mm (Black)
"arifle_MSBS65_GL_black_F", // Promet GL 6.5 mm (Black)
"arifle_MSBS65_Mark_black_F", // Promet MR 6.5 (Black)
"arifle_MSBS65_UBS_black_F", // Promet SG 6.5 mm (Black)
"arifle_RPK12_arid_F", // RPK-12 7.62 mm (Arid)
"arifle_RPK12_F", // RPK-12 7.62 mm
"arifle_RPK12_lush_F", // PRK-12 7.62 mm (Lush)
"arifle_SDAR_F", // SDAR 5.56 mm
"hgun_ACPC2_F", // ACP-C2 .45 ACP
"hgun_PDW2000_F", // PDW2000 9 mm
"hgun_Pistol_01_F", // PM 9 mm
"hgun_Pistol_heavy_02_F", // Zubr .45 ACP
"hgun_Rook40_F", // Rook-40 9 mm
"launch_MRAWS_green_F", // MAAWS Mk4 Mod 1 (Green)
"launch_MRAWS_green_rail_F", // MAAWS Mk4 Mod 0 (Green)
"launch_MRAWS_olive_F", // MAAWS Mk4 Mod 1 (Olive)
"launch_MRAWS_olive_rail_F", // MAAWS Mk4 Mod 0 (Olive)
"launch_MRAWS_sand_F", // MAAWS Mk4 Mod 1 (Sand)
"launch_MRAWS_sand_rail_F", // MAAWS Mk4 Mod 0 (Sand)
"launch_O_Titan_F", // Titan MPRL (Hex)
"launch_O_Titan_ghex_F", // Titan MPRL (Green Hex)
"launch_O_Titan_short_F", // Titan MPRL Compact (Coyote)
"launch_O_Titan_short_ghex_F", // Titan MPRL Compact (Green Hex)
"launch_O_Vorona_brown_F", // 9M135 Vorona (Brown)
"launch_O_Vorona_green_F", // 9M135 Vorona (Green)
"launch_RPG32_F", // RPG-42 Alamut
"launch_RPG32_ghex_F", // RPG-42 Alamut (Green Hex)
"launch_RPG32_green_F", // RPG-42 (Green)
"launch_RPG7_F", // RPG-7
"LMG_03_F", // LIM-85 5.56 mm
"LMG_Zafir_F", // Zafir 7.62 mm
"MMG_01_hex_F", // Navid 9.3 mm (Hex)
"MMG_01_tan_F", // Navid 9.3 mm (Tan)
"MMG_02_black_F", // SPMG .338 (Black)
"sgun_HunterShotgun_01_F", // Kozlice 12G
"sgun_HunterShotgun_01_sawedoff_F", // Kozlice 12G (Sawed-Off)
"SMG_02_F", // Sting 9 mm
"SMG_03_black", // ADR-97 5.7 mm (Black)
"SMG_03_hex", // ADR-97 5.7 mm (Hex)
"SMG_03_TR_black", // ADR-97 TR 5.7 mm (Black)
"SMG_03_TR_hex", // ARD-97 TR 5.7 mm (Hex)
"SMG_03C_black", // ADR-97C 5.7 mm (Black)
"SMG_03C_hex", // ADR-97C 5.7 mm (Hex)
"SMG_03C_TR_black", // ADR-97C TR 5.7 mm (Black)
"SMG_03C_TR_hex", // ADR-97C TR 5.7 mm (Hex)
"srifle_DMR_01_F", // Rahim 7.62 mm
"srifle_DMR_02_F", // MAR-10 .338 (Black)
"srifle_DMR_03_F", // Mk-I EMR 7.62 mm (Black)
"srifle_DMR_04_F", // ASP-1 Kir 12.7 mm (Black)
"srifle_DMR_04_Tan_F", // ASP-1 Kir 12.7 mm (Tan)
"srifle_DMR_05_blk_F", // Cyrus 9.3 mm (Black)
"srifle_DMR_05_hex_F", // Cyrus 9.3 mm (Hex)
"srifle_DMR_05_tan_f", // Cyrus 9.3 mm (Tan)
"srifle_DMR_06_hunter_F", // Mk17 7.62 mm (Classic)
"srifle_DMR_07_blk_F", // CMR-76 6.5 mm (Black)
"srifle_DMR_07_ghex_F", // CMR-76 6.5 mm (Green Hex)
"srifle_DMR_07_hex_F", // CMR-76 6.5 mm (Hex)
"srifle_GM6_camo_F", // GM6 Lynx 12.7 mm (Camo)
"srifle_GM6_F", // GM6 Lynx 12.7 mm
"srifle_GM6_ghex_F" // GM6 Lynx 12.7 mm (Green Hex)
];
GRLIB_arsenal_magazines = [
];
GRLIB_arsenal_items = [
// Vanilla Standard Items
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Laserdesignator_02_ghex_F", // Laser Designator (Green Hex)
"Laserdesignator_02", // Laser Designator (Hex)
"Medikit", // Medikit
"MineDetector", // Minte Detector
"NVGoggles_OPFOR", // NV Goggles (Black)
"O_NVGoggles_ghex_F", // Compact NVG (Green Hex)
"O_NVGoggles_hex_F", // Compact NVG (Hex)
"O_NVGoggles_urb_F", // Compact NVG (Urban)
"O_UavTerminal", // UAV Terminal [CSAT]
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
//Uniforms
"U_O_CombatUniform_ocamo", // Fatigues (Hex) [CSAT]
"U_O_CombatUniform_oucamo", // Fatigues (Urban) [CSAT]
"U_O_FullGhillie_ard", // Full Ghillie (Arid) [CSAT]
"U_O_FullGhillie_lsh", // Full Ghillie (Lush) [CSAT]
"U_O_FullGhillie_sard", // Full Ghillie (Semi-Arid) [CSAT]
"U_O_GhillieSuit", // Ghillie Suit [CSAT]
"U_O_officer_noInsignia_hex_F", // Light Fatigues (Hex)
"U_O_OfficerUniform_ocamo", // Officer Fatigues (Hex)
"U_O_PilotCoveralls", // Pilot Coveralls [CSAT]
"U_O_SpecopsUniform_ocamo", // Recon Fatigues (Hex)
"U_O_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [CSAT]
"U_O_T_Officer_F", // Officer Fatigues (Green Hex) [CSAT]
"U_O_T_Sniper_F", // Ghillie Suit (Green Hex) [CSAT]
"U_O_T_Soldier_F", // Fatigues (Green Hex) [CSAT]
"U_O_V_Soldier_Viper_F", // Special Purpose Suit (Green Hex)
"U_O_V_Soldier_Viper_hex_F", // Special Purpose Suit (Hex)
"U_O_Wetsuit", // Wetsuit [CSAT]
// Headgear
"H_Bandanna_cbr", // Bandana (Coyote)
"H_Bandanna_gry", // Bandana (Black)
"H_Bandanna_khk", // Bandana (Khaki)
"H_Beret_CSAT_01_F", // Beret (Red) [CSAT]
"H_Cap_blk", // Cap (Black)
"H_Cap_brn_SPECOPS", // Cap [OPFOR]
"H_CrewHelmetHeli_O", // Heli Crew Helmet [CSAT]
"H_HelmetCrew_O_ghex_F", // Crew Helmet (Green Hex) [CSAT]
"H_HelmetCrew_O", // Crew Helmet [CSAT]
"H_HelmetLeaderO_ghex_F", // Defender Helmet (Green Hex)
"H_HelmetLeaderO_ocamo", // Defender Helmet (Hex)
"H_HelmetLeaderO_oucamo", // Defender Helmet (Urban)
"H_HelmetO_ghex_F", // Protector Helmet (Green Hex)
"H_HelmetO_ocamo", // Protector Helmet (Hex)
"H_HelmetO_oucamo", // Protector Helmet (Urban)
"H_HelmetO_ViperSP_ghex_F", // Special Purpose Helmet (Green Hex)
"H_HelmetO_ViperSP_hex_F", // Special Purpose Helmet (Hex)
"H_HelmetSpecO_blk", // Assassin Helmet (Black)
"H_HelmetSpecO_ghex_F", // Assassin Helmet (Green Hex)
"H_HelmetSpecO_ocamo", // Assassin Helmet (Hex)
"H_MilCap_ghex_F", // Military Cap (Green Hex)
"H_MilCap_ocamo", // Military Cap (Hex)
"H_PilotHelmetFighter_O", // Pilot Helmet [CSAT]
"H_PilotHelmetHeli_O", // Heli Pilot Helmet [CSAT]
"H_Shemag_olive", // Shemag (Olive)
"H_ShemagOpen_tan", // Shemag (Tan)
"H_Tank_black_F", // Crew Helmet (Soft) [CSAT]
"H_WirelessEarpiece_F", // Wireless Earpiece
// Facegear
"G_AirPurifyingRespirator_02_black_F", // APR (Black) [CSAT]
"G_AirPurifyingRespirator_02_olive_F", // APR (Olive) [CSAT]
"G_AirPurifyingRespirator_02_sand_F", // APR (Sand) [CSAT]
"G_Aviator", // Aviator Glasses
"G_Bandanna_aviator", // Bandana (Aviator)
"G_Bandanna_blk", // Bandana (Black)
"G_Bandanna_tan", // Bandana (Tan)
"G_Diving", // Diving Goggles
"G_O_Diving", // Diving Goggles [CSAT]
"G_Shades_Green", // Shades (Green)
"G_Spectacles_Tinted", // Tinted Spectacles
"G_Spectacles", // Spectacle Glasses
"G_Squares_Tinted", // Square Shades
"G_Squares", // Square Spectacles
"G_WirelessEarpiece_F", // Wireless Earpiece
// Vests
"V_BandollierB_blk", // Slash Bandolier (Black)
"V_BandollierB_cbr", // Slash Bandolier (Coyote)
"V_BandollierB_ghex_F", // Slash Bandolier (Green Hex)
"V_Chestrig_blk", // Chest Rig (Black)
"V_Chestrig_khk", // Chest Rig (Khaki)
"V_Chestrig_rgr", // Chest Rig (Green)
"V_HarnessO_brn", // LBV Harness
"V_HarnessO_ghex_F", // LBV Harness (Green Hex)
"V_HarnessO_gry", // LBV Harness (Grey)
"V_HarnessOGL_brn", // LBV Grenadier Harness
"V_HarnessOGL_ghex_F", // LBV Grenadier Harness (Green Hex)
"V_HarnessOGL_gry", // LBV Grenadier Harness (Grey)
"V_LegStrapBag_black_F", // Leg Strap Bag (Black)
"V_LegStrapBag_coyote_F", // Leg Strap Bag (Coyote)
"V_LegStrapBag_olive_F", // Leg Strap Bag (Olive)
"V_RebreatherIR", // Rebreather [CSAT]
// Items
"30Rnd_762x39_AK12_Mag_F", // Bipod (Tan) [CSAT]
"acc_flashlight_pistol", // Pistol Flashlight
"acc_flashlight", // Flashlight
"acc_pointer_IR", // IR Laser Pointer
"bipod_02_F_blk", // Bipod (Black) [CSAT]
"bipod_02_F_hex", // Bipod (Hex) [CSAT]
"bipod_02_F_tan", // Bipod (Tan) [CSAT]
"muzzle_snds_338_black", // Sound Suppressor (.338, Black)
"muzzle_snds_570", // Sound Suppressor (5.7 mm)
"muzzle_snds_58_blk_F", // Stealth Sound Suppressor (5.8 mm, Black)
"muzzle_snds_58_ghex_F", // Stealth Sound Suppressor (5.8 mm, Green Hex)
"muzzle_snds_58_hex_F", // Stealth Sound Suppressor (5.8 mm, Hex)
"muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black)
"muzzle_snds_65_TI_ghex_F", // Stealth Sound Suppressor (6.5 mm, Green Hex)
"muzzle_snds_65_TI_hex_F", // Stealth Sound Suppressor (6.5 mm, Hex)
"muzzle_snds_93mmg_tan", // Sound Suppressor (9.3 mm, Tan)
"muzzle_snds_93mmg", // Sound Suppressor (9.3 mm, Black)
"muzzle_snds_acp", // Sound Suppressor (.45 ACP)
"muzzle_snds_B_arid_F", // Sound Suppressor (7.62 mm, Arid)
"muzzle_snds_B_lush_F", // Sound Suppressor (7.62 mm, Lush)
"muzzle_snds_B", // Sound Suppressor (7.62 mm)
"muzzle_snds_H", // Sound Suppressor (6.5 mm)
"muzzle_snds_L", // Sound Suppressor (9 mm)
"muzzle_snds_M", // Sound Suppressor (5.56 mm)
"optic_ACO_grn_smg", // ACO SMG (Green)
"optic_ACO_grn", //ACO (Green)
"optic_AMS", // AMS (Black)
"optic_Arco_AK_arid_F", // ARCO AK (Arid)
"optic_Arco_AK_blk_F", // ARCO AK (Black)
"optic_Arco_AK_lush_F", // ARCO AK (Lush)
"optic_Arco_arid_F", // ARCO (Arid)
"optic_Arco_blk_F", // ARCO (Black)
"optic_Arco_ghex_F", // ARCO (Green Hex)
"optic_Arco_lush_F", // ARCO (Lush)
"optic_Arco", // ARCO
"optic_DMS_ghex_F", // DMS (Green Hex)
"optic_DMS_weathered_F", // DMS (Old)
"optic_DMS_weathered_Kir_F", // DMS Kir (Old)
"optic_DMS", // DMS
"optic_ERCO_blk_F", // ERCO (Black)
"optic_Hamr", // RCO
"optic_Holosight_arid_F", // Mk17 Holosight (Arid)
"optic_Holosight_blk_F", // Mk17 Holosight (Black)
"optic_Holosight_lush_F", // Mk17 Holosight (Lush)
"optic_Holosight_smg_blk_F", // Mk17 Holosight SMG (Black)
"optic_Holosight_smg", // Mk17 Holosight SMG
"optic_Holosight", // Mk17 Holosight
"optic_KHS_blk", // Kahlia (Black)
"optic_KHS_hex", // Kahlia (Hex)
"optic_KHS_old", // Kahlia (Old)
"optic_KHS_tan", // Kahlia (Tan)
"optic_LRPS_ghex_F", // LRPS (Green Hex)
"optic_LRPS", // LRPS
"optic_MRCO", // MRCO
"optic_Nightstalker", // Nightstalker
"optic_NVS", // NVS
"optic_SOS", // MOS
"optic_tws_mg", // TWS MG
"optic_tws", // TWS
"optic_Yorris", // Yorris J2
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_AssaultPack_blk", // Assault Pack (Black)
"B_AssaultPack_ocamo", // Assault Pack (Hex)
"B_AssaultPack_rgr", // Assault Pack (Green)
"B_Bergen_hex_F", // Bergen Backpack (Hex)
"B_Carryall_ghex_F", // Carryall Backpack (Green Hex)
"B_Carryall_ocamo", // Carryall Backpack (Hex)
"B_Carryall_oucamo", // Carryall Backpack (Urban)
"B_FieldPack_ghex_F", // Field Pack (Green Hex)
"B_FieldPack_ocamo", // Field Pack (Hex)
"B_FieldPack_oucamo", // Field Pack (Urban)
"B_LegStrapBag_black_F", // Leg Strap Bag (Black)
"B_LegStrapBag_coyote_F", // Leg Strap Bag (Coyote)
"B_LegStrapBag_olive_F", // Leg Strap Bag (Olive)
"B_Parachute", // Steerable Parachute
"B_TacticalPack_ocamo", // Tactical Backpack (Hex)
"B_TacticalPack_rgr", // Tactical Backpack (Green)
"B_ViperHarness_blk_F", // Viper Harness (Black)
"B_ViperHarness_ghex_F", // Viper Harness (Green Hex)
"B_ViperHarness_hex_F", // Viper Harness (Hex)
"B_ViperLightHarness_blk_F", // Viper Light Harness (Black)
"B_ViperLightHarness_ghex_F", // Viper Light Harness (Green Hex)
"B_ViperLightHarness_hex_F", // Viper Light Harness (Hex)
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_mr3000", // MR3000
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage" // RT-1523G (ASIP) Sage
];

View File

@@ -0,0 +1,943 @@
// Custom Arsenal Preset
GRLIB_arsenal_weapons = [
"rhs_weap_ak74n",
"rhs_weap_ak74n_gp25",
"rhs_weap_ak74n_2",
"rhs_weap_ak74n_2_gp25",
"gm_ak74n_wud",
"uk3cb_weap_ak74n_2_1p29",
"uk3cb_weap_ak74n_2_gp25_1p29",
"uk3cb_weap_ak74n_2_1p29_sup",
"arifle_AKM_F",
"arifle_AKM_FL_F",
"rhs_weap_akm",
"rhs_weap_akm_gp25",
"rhs_weap_akmn",
"rhs_weap_akmn_gp25",
"rhs_weap_akms",
"rhs_weap_akms_folded",
"rhs_weap_akms_gp25",
"rhs_weap_ak103_base",
"rhs_weap_45th_akm",
"rhs_weap_45th_akm_gp25",
"rhs_weap_45th_akms",
"gm_akm_wud",
"gm_akml_wud",
"gm_akmn_wud",
"gm_akms_wud",
"gm_akmsl_wud",
"gm_akmsn_wud",
"gm_akm_pallad_wud",
"uk3cb_weap_akm_sup",
"uk3cb_weap_akm_gp25_sup",
"uk3cb_weap_akmn_sup",
"uk3cb_weap_akmn_gp25_sup",
"uk3cb_weap_akms_sup",
"uk3cb_weap_akmn_gp25_1p29",
"uk3cb_weap_akms_gp25_sup",
"uk3cb_weap_akms_folded_sup",
"uk3cb_weap_akmn_1p29",
"uk3cb_weap_akmn_1p29_sup",
"gm_mpikm_brn",
"gm_mpikm72_brn",
"gm_mpikms72_brn",
"gm_mpikms72k_brn",
"gm_mpikms72ksd_brn",
"gm_mpikm72_blk",
"gm_mpikms72_blk",
"gm_mpikms72k_blk",
"gm_mpikms72ksd_blk",
"gm_mpikm72_prp",
"gm_mpikms72_prp",
"gm_mpikms72k_prp",
"gm_mpikms72ksd_prp",
"gm_mpikms72_brn_zfk4x25",
"gm_mpikms72_brn_zvn64",
"gm_mpiak74n_brn",
"gm_mpiaks74n_brn",
"gm_mpiaks74nk_brn",
"gm_mpiak74n_blk",
"gm_mpiaks74n_blk",
"gm_mpiaks74nk_blk",
"gm_mpiak74n_prp",
"gm_mpiaks74n_prp",
"gm_mpiaks74nk_prp",
"rhs_weap_ak74m",
"rhs_weap_ak74m_camo",
"rhs_weap_ak74m_folded",
"rhs_weap_ak74m_camo_folded",
"rhs_weap_ak74m_desert_folded",
"rhs_weap_ak74m_plummag_folded",
"rhs_weap_ak74m_gp25_folded",
"rhs_weap_ak74m_2mag",
"rhs_weap_ak74m_2mag_camo",
"rhs_weap_ak74m_desert",
"rhs_weap_ak74m_plummag",
"rhs_weap_ak74m_gp25",
"rhs_weap_ak74m_fullplum",
"rhs_weap_ak74m_fullplum_folded",
"rhs_weap_ak74m_fullplum_gp25",
"rhs_weap_ak74m_fullplum_gp25_folded",
"rhs_weap_ak74mr",
"rhs_weap_ak74mr_grip1",
"rhs_weap_ak74mr_afg",
"rhs_weap_ak74mr_folded",
"rhs_weap_ak74mr_folded_grip1",
"rhs_weap_ak74mr_folded_afg",
"rhs_weap_ak74mr_gp25",
"rhs_weap_ak74",
"rhs_weap_ak74_gp25",
"rhs_weap_ak74n",
"rhs_weap_ak74n_gp25",
"rhs_weap_ak74_2",
"rhs_weap_ak74n_2",
"rhs_weap_ak74n_2_gp25",
"rhs_weap_ak74_3",
"rhs_weap_ak74m_dtk",
"rhs_weap_ak74m_pkas",
"rhs_weap_ak74m_1p63",
"rhs_weap_ak74m_pso1m2",
"rhs_weap_ak74m_1p29",
"rhs_weap_ak74m_camo_dtk",
"rhs_weap_ak74m_folded_dtk",
"rhs_weap_ak74m_2mag_dtk",
"rhs_weap_ak74m_2mag_camo_dtk",
"rhs_weap_ak74m_camo_pkas",
"rhs_weap_ak74m_camo_1p63",
"rhs_weap_ak74m_camo_pso1m2",
"rhs_weap_ak74m_camo_1p29",
"rhs_weap_ak74m_desert_dtk",
"rhs_weap_ak74m_fullplum_dtk",
"rhs_weap_ak74m_fullplum_folded_dtk",
"rhs_weap_ak74m_fullplum_gp25_dtk",
"rhs_weap_ak74m_fullplum_gp25_folded_dtk",
"rhs_weap_ak74m_plummag_dtk",
"rhs_weap_ak74m_gp25_dtk",
"rhs_weap_ak74m_gp25_pkas",
"rhs_weap_ak74m_gp25_1p63",
"rhs_weap_ak74m_gp25_pso1m2",
"rhs_weap_ak74m_gp25_1p29",
"rhs_weap_ak74mr_rakursPM",
"rhs_weap_ak74mr_gp25_rakursPM",
"rhs_weap_ak74mr_rakursPM_sup",
"rhs_weap_ak74mr_1p87",
"rhs_weap_ak74mr_gp25_1p87",
"rhs_weap_ak74mr_1p87_sup",
"rhs_weap_45th_ak74m",
"rhs_weap_45th_ak74m_camo",
"rhs_weap_45th_ak74m_gp25",
"rhs_weap_45th_ak74_ekp1",
"rhs_weap_45th_ak74m_pkas",
"rhs_weap_45th_ak74m_sup",
"gm_ak74n_wud",
"gm_mpiak74n_brn",
"gm_mpiak74n_blk",
"gm_mpiak74n_prp",
"uk3cb_weap_ak74mr_ekp8",
"uk3cb_weap_ak74mr_ekp8_sup",
"uk3cb_weap_ak74mr_gp25_ekp8",
"uk3cb_weap_ak74mr_gp25_ekp8_sup",
"uk3cb_weap_ak74n_2_1p29",
"uk3cb_weap_ak74n_2_gp25_1p29",
"uk3cb_weap_ak74n_2_1p29_sup",
"rhs_weap_aks74",
"rhs_weap_aks74_folded",
"rhs_weap_aks74_2",
"rhs_weap_aks74_2_folded",
"rhs_weap_aks74_gp25",
"rhs_weap_aks74n",
"rhs_weap_aks74n_2",
"rhs_weap_aks74n_folded",
"rhs_weap_aks74n_2_folded",
"rhs_weap_aks74n_gp25",
"rhs_weap_aks74u",
"rhs_weap_aks74u_folded",
"rhs_weap_aks74un",
"rhs_weap_aks74un_folded",
"rhs_weap_aks74u_sup",
"rhs_weap_aks74un_sup",
"gm_mpiaks74n_brn",
"gm_mpiaks74nk_brn",
"gm_mpiaks74n_blk",
"gm_mpiaks74nk_blk",
"gm_mpiaks74n_prp",
"gm_mpiaks74nk_prp",
"uk3cb_weap_aks74un_ekp8",
"uk3cb_weap_aks74un_ekp8_sup",
"rhs_weap_asval",
"rhs_weap_asval_folded",
"rhs_weap_asval_grip",
"rhs_weap_asval_grip1",
"rhs_weap_asval_afg",
"rhs_weap_asval_grip_folded",
"rhs_weap_asval_folded_grip1",
"rhs_weap_asval_folded_afg",
"rhs_weap_asval_npz",
"rhs_weap_asval_grip_npz",
"rhs_weap_asval_npz_grip1",
"rhs_weap_asval_npz_afg",
"rhs_asval_pso1",
"rhs_weap_45th_asval",
"rhs_weap_vmf_asval",
"uk3cb_sks_01",
"uk3cb_sks_01_sling",
"uk3cb_sks_02",
"rhs_weap_svd",
"rhs_weap_svdp",
"rhs_weap_svdp_wd",
"rhs_weap_svds",
"rhs_weap_svd_pso1",
"rhs_weap_svdp_pso1",
"rhs_weap_svds_pso1",
"rhs_weap_45th_svds",
"gm_svd_wud",
"gm_svd_wud_pso1",
"UK3CB_SVD_OLD",
"uk3cb_weap_svd_old_pso1m2",
"uk3cb_weap_svd_old_pso1m2_sup",
"rhsgref_weap_svds",
"rhs_weap_vss",
"rhs_weap_vss_grip",
"rhs_weap_vss_grip1",
"rhs_weap_vss_afg",
"rhs_weap_45th_vss",
"rhs_weap_vmf_vss",
"rhs_weap_pkm",
"gm_hmgpkm_prp",
"gm_lmgk500_brn",
"gm_lmgk500_blk",
"gm_lmgk500_prp",
"gm_lmgk500s_brn",
"gm_lmgk500s_blk",
"gm_lmgk500s_prp",
"UK3CB_RPD",
"uk3cb_rpd_sup",
"gm_lmgrpk_brn",
"gm_lmgrpk_brn_zfk4x25",
"gm_lmgrpk_blk",
"gm_lmgrpk_prp",
"gm_lmgrpk74n_brn",
"gm_lmgrpk74n_blk",
"gm_lmgrpk74n_prp",
"arifle_RPK12_F",
"UK3CB_RPK",
"arifle_RPK12_arid_F",
"UK3CB_RPK_BLK",
"uk3cb_rpk_blk_sup",
"arifle_RPK12_lush_F",
"arifle_RPK12_lush_arco_snds_pointer_F",
"arifle_RPK12_lush_holo_snds_pointer_F",
"arifle_RPK12_lush_arco_pointer_F",
"gm_rpk_wud",
"UK3CB_RPK_74",
"UK3CB_RPK_74_BLK",
"UK3CB_RPK_74_PLUM",
"rhs_weap_rpk74m",
"rhs_weap_rpk74m_uuk",
"rhs_weap_rpk74m_sup",
"rhs_weap_rpk74m_folded",
"UK3CB_RPK_74N",
"UK3CB_RPK_74N_BLK",
"UK3CB_RPK_74N_PLUM",
"uk3cb_rpk_74n_plum_ekp802",
"gm_rpk74n_wud",
"UK3CB_RPKN",
"uk3cb_rpkn_ekp802",
"UK3CB_RPKN_BLK",
"uk3cb_rpkn_blk_ekp802_sup",
"uk3cb_rpkn_blk_ekp802",
"UK3CB_RPKN_PLUM",
"gm_rpkn_wud",
"uk3cb_ppsh41",
"gm_pm63_blk",
"gm_pm63_handgun_blk",
"gm_akm_pallad_wud",
"gm_pallad_d_brn",
"hgun_Pistol_01_F",
"rhs_weap_makarov_pm",
"gm_pm_blk",
"rhs_weap_makarov_pmm",
"gm_pim_blk",
"gm_pimb_blk",
"rhs_weap_tt33",
"gm_9k32m_oli",
"rhs_weap_igla",
"rhs_weap_rpg18",
"gm_rpg18_oli",
"gm_rpg18_spent_oli",
"rhs_weap_rpg18_used",
"rhs_weap_rpg26",
"rhs_weap_rpg26_used",
"RPG29_Lorad",
"launch_RPG32_F",
"launch_RPG32_ghex_F",
"launch_RPG32_green_F",
"launch_RPG32_camo_F",
"launch_RPG7_F",
"gm_rpg7_wud",
"gm_rpg7_wud_pgo7v",
"gm_rpg7_prp",
"gm_rpg7_prp_pgo7v",
"rhs_weap_rpg75",
"rhs_weap_rpg75_used",
"rhs_weap_rpg7",
"rhs_weap_rpg7_pgo",
"rhs_weap_rpg7_1pn93",
"gm_wz78_blk"
];
GRLIB_arsenal_magazines = [
"rhs_30Rnd_545x39_AK",
"rhs_30Rnd_545x39_7N6_AK",
"rhs_30Rnd_545x39_7N6M_AK",
"rhs_30Rnd_545x39_7N6_green_AK",
"rhs_30Rnd_545x39_7N6M_green_AK",
"rhs_30Rnd_545x39_7N6M_plum_AK",
"rhs_30Rnd_545x39_AK_no_tracers",
"rhs_45Rnd_545X39_7N6_AK",
"rhs_45Rnd_545X39_AK",
"rhs_45Rnd_545X39_7N6M_AK",
"gm_30Rnd_545x39mm_B_7N6_ak74_blk",
"gm_30Rnd_545x39mm_B_7N6_ak74_org",
"gm_30Rnd_545x39mm_B_7N6_ak74_prp",
"gm_30rnd_545x39mm_ak74_base",
"gm_30rnd_545x39mm_ak74_prp",
"gm_30rnd_545x39mm_ak74_org",
"gm_30rnd_545x39mm_ak74_blk",
"gm_45Rnd_545x39mm_B_7N6_ak74_blk",
"gm_45Rnd_545x39mm_B_7N6_ak74_org",
"gm_45Rnd_545x39mm_B_7N6_ak74_prp",
"gm_45rnd_545x39mm_ak74_prp",
"gm_45rnd_545x39mm_ak74_org",
"gm_45rnd_545x39mm_ak74_blk",
"rhs_30Rnd_545x39_7N10_2mag_AK",
"rhs_30Rnd_545x39_7N10_2mag_camo_AK",
"rhs_30Rnd_545x39_7N10_2mag_desert_AK",
"rhs_30Rnd_545x39_7N10_2mag_plum_AK",
"rhs_30Rnd_545x39_7N10_camo_AK",
"rhs_30Rnd_545x39_7N10_desert_AK",
"rhs_30Rnd_545x39_7N10_plum_AK",
"rhs_30Rnd_545x39_7N10_AK",
"rhs_45Rnd_545X39_7N10_AK",
"rhs_60Rnd_545X39_7N10_AK",
"UK3CB_RPK74_60rnd_545x39_G",
"UK3CB_RPK74_60rnd_545x39_R",
"UK3CB_RPK74_60rnd_545x39_W",
"UK3CB_RPK74_60rnd_545x39_Y",
"UK3CB_RPK74_60rnd_545x39",
"UK3CB_RPK74_60rnd_545x39_GM",
"UK3CB_RPK74_60rnd_545x39_RM",
"UK3CB_RPK74_60rnd_545x39_WM",
"UK3CB_RPK74_60rnd_545x39_YM",
"rhs_30Rnd_545x39_7N6M_AK",
"rhs_30Rnd_545x39_7N6M_green_AK",
"rhs_30Rnd_545x39_7N6M_plum_AK",
"rhs_45Rnd_545X39_7N6M_AK",
"gm_30Rnd_762x39mm_AP_7N23_akm_blk",
"gm_30Rnd_762x39mm_AP_7N23_ak47_blk",
"gm_30Rnd_762x39mm_AP_7N23_akm_org",
"gm_30Rnd_762x39mm_B_57N231_akm_blk",
"gm_30Rnd_762x39mm_B_57N231_ak47_blk",
"gm_30Rnd_762x39mm_B_57N231_akm_org",
"gm_30Rnd_762x39mm_BSD_57N231U_akm_blk",
"gm_30Rnd_762x39mm_BSD_57N231U_ak47_blk",
"gm_30Rnd_762x39mm_BSD_57N231U_akm_org",
"gm_30Rnd_762x39mm_B_T_57N231P_akm_blk",
"gm_30Rnd_762x39mm_B_T_57N231P_ak47_blk",
"gm_30Rnd_762x39mm_B_T_57N231P_akm_org",
"30Rnd_762x39_Mag_Green_F",
"30Rnd_762x39_Mag_F",
"30Rnd_762x39_Mag_Tracer_Green_F",
"30Rnd_762x39_Mag_Tracer_F",
"gm_30rnd_762x39mm_ak47_blk",
"gm_30Rnd_762x39mm_B_M43_ak47_blk",
"gm_30rnd_762x39mm_mpikm_blk",
"gm_30rnd_762x39mm_akm_blk",
"gm_30rnd_762x39mm_akm_org",
"gm_30Rnd_762x39mm_B_T_M43_ak47_blk",
"gm_30Rnd_762x39mm_AP_7N23_mpikm_blk",
"gm_30Rnd_762x39mm_B_57N231_mpikm_blk",
"gm_30Rnd_762x39mm_BSD_57N231U_mpikm_blk",
"gm_30Rnd_762x39mm_B_T_57N231P_mpikm_blk",
"75rnd_762x39_AK12_Arid_Mag_F",
"75rnd_762x39_AK12_Lush_Mag_F",
"75rnd_762x39_AK12_Mag_F",
"75rnd_762x39_AK12_Arid_Mag_Tracer_F",
"75rnd_762x39_AK12_Lush_Mag_Tracer_F",
"75rnd_762x39_AK12_Mag_Tracer_F",
"gm_75Rnd_762x39mm_AP_7N23_ak47_blk",
"gm_75Rnd_762x39mm_B_57N231_ak47_blk",
"gm_75Rnd_762x39mm_BSD_57N231U_ak47_blk",
"gm_75Rnd_762x39mm_B_T_57N231P_ak47_blk",
"75Rnd_762x39_Mag_F",
"75Rnd_762x39_Mag_Tracer_F",
"gm_75rnd_762x39mm_ak47_blk",
"gm_75Rnd_762x39mm_B_M43_ak47_blk",
"gm_75rnd_762x39mm_mpikm_blk",
"gm_75Rnd_762x39mm_B_T_M43_ak47_blk",
"gm_75Rnd_762x39mm_AP_7N23_mpikm_blk",
"gm_75Rnd_762x39mm_B_57N231_mpikm_blk",
"gm_75Rnd_762x39mm_BSD_57N231U_mpikm_blk",
"gm_75Rnd_762x39mm_B_T_57N231P_mpikm_blk",
"uk3cb_10rnd_magazine_sks",
"uk3cb_10rnd_magazine_sks_G",
"uk3cb_10rnd_magazine_sks_R",
"uk3cb_10rnd_magazine_sks_W",
"uk3cb_10rnd_magazine_sks_Y",
"uk3cb_10rnd_magazine_sks_GT",
"uk3cb_10rnd_magazine_sks_RT",
"uk3cb_10rnd_magazine_sks_WT",
"uk3cb_10rnd_magazine_sks_YT",
"rhs_30Rnd_762x39mm_polymer",
"rhs_30Rnd_762x39mm_polymer_89",
"rhs_30Rnd_762x39mm_polymer_tracer",
"rhs_30Rnd_762x39mm_polymer_U",
"rhs_30Rnd_762x39mm_bakelite",
"rhs_30Rnd_762x39mm_bakelite_89",
"rhs_30Rnd_762x39mm_bakelite_tracer",
"rhs_30Rnd_762x39mm_bakelite_U",
"rhs_30Rnd_762x39mm",
"rhs_30Rnd_762x39mm_89",
"rhs_30Rnd_762x39mm_tracer",
"rhs_30Rnd_762x39mm_U",
"rhssaf_30Rnd_762x39mm_M67",
"rhssaf_30Rnd_762x39mm_M78_tracer",
"rhssaf_30Rnd_762x39_M82_api",
"rhs_30Rnd_762x39mm_Savz58",
"rhs_30Rnd_762x39mm_Savz58_tracer",
"UK3CB_RPK_40rnd_762x39_G",
"UK3CB_RPK_40rnd_762x39_R",
"UK3CB_RPK_40rnd_762x39_W",
"UK3CB_RPK_40rnd_762x39_Y",
"UK3CB_RPK_40rnd_762x39",
"UK3CB_RPK_40rnd_762x39_GM",
"UK3CB_RPK_40rnd_762x39_RM",
"UK3CB_RPK_40rnd_762x39_WM",
"UK3CB_RPK_40rnd_762x39_YM",
"UK3CB_RPK_40rnd_762x39_GT",
"UK3CB_RPK_40rnd_762x39_RT",
"UK3CB_RPK_40rnd_762x39_WT",
"UK3CB_RPK_40rnd_762x39_YT",
"gm_30Rnd_762x39mm_AP_7N23_akm_blk",
"gm_30Rnd_762x39mm_AP_7N23_ak47_blk",
"gm_30Rnd_762x39mm_AP_7N23_akm_org",
"gm_30Rnd_762x39mm_B_57N231_akm_blk",
"gm_30Rnd_762x39mm_B_57N231_ak47_blk",
"gm_30Rnd_762x39mm_B_57N231_akm_org",
"gm_30Rnd_762x39mm_BSD_57N231U_akm_blk",
"gm_30Rnd_762x39mm_BSD_57N231U_ak47_blk",
"gm_30Rnd_762x39mm_BSD_57N231U_akm_org",
"gm_30Rnd_762x39mm_B_T_57N231P_akm_blk",
"gm_30Rnd_762x39mm_B_T_57N231P_ak47_blk",
"gm_30Rnd_762x39mm_B_T_57N231P_akm_org",
"30Rnd_762x39_Mag_Green_F",
"30Rnd_762x39_Mag_F",
"30Rnd_762x39_Mag_Tracer_Green_F",
"30Rnd_762x39_Mag_Tracer_F",
"gm_30rnd_762x39mm_ak47_blk",
"gm_30Rnd_762x39mm_B_M43_ak47_blk",
"gm_30rnd_762x39mm_mpikm_blk",
"gm_30rnd_762x39mm_akm_blk",
"gm_30rnd_762x39mm_akm_org",
"gm_30Rnd_762x39mm_B_T_M43_ak47_blk",
"gm_30Rnd_762x39mm_AP_7N23_mpikm_blk",
"gm_30Rnd_762x39mm_B_57N231_mpikm_blk",
"gm_30Rnd_762x39mm_BSD_57N231U_mpikm_blk",
"gm_30Rnd_762x39mm_B_T_57N231P_mpikm_blk",
"gm_75Rnd_762x39mm_AP_7N23_ak47_blk",
"gm_75Rnd_762x39mm_B_57N231_ak47_blk",
"gm_75Rnd_762x39mm_BSD_57N231U_ak47_blk",
"gm_75Rnd_762x39mm_B_T_57N231P_ak47_blk",
"75Rnd_762x39_Mag_F",
"75Rnd_762x39_Mag_Tracer_F",
"gm_75rnd_762x39mm_ak47_blk",
"gm_75Rnd_762x39mm_B_M43_ak47_blk",
"gm_75rnd_762x39mm_mpikm_blk",
"gm_75Rnd_762x39mm_B_T_M43_ak47_blk",
"gm_75Rnd_762x39mm_AP_7N23_mpikm_blk",
"gm_75Rnd_762x39mm_B_57N231_mpikm_blk",
"gm_75Rnd_762x39mm_BSD_57N231U_mpikm_blk",
"gm_75Rnd_762x39mm_B_T_57N231P_mpikm_blk",
"rhs_75Rnd_762x39mm",
"UK3CB_RPK_75rnd_762x39_G",
"UK3CB_RPK_75Rnd_Drum",
"UK3CB_RPK_75rnd_762x39_R",
"UK3CB_RPK_75rnd_762x39_W",
"UK3CB_RPK_75rnd_762x39_Y",
"UK3CB_RPK_75rnd_762x39",
"rhs_75Rnd_762x39mm_89",
"UK3CB_RPK_75rnd_762x39_GM",
"UK3CB_RPK_75rnd_762x39_RM",
"UK3CB_RPK_75rnd_762x39_WM",
"UK3CB_RPK_75rnd_762x39_YM",
"rhs_75Rnd_762x39mm_tracer",
"UK3CB_RPK_75rnd_762x39_GT",
"UK3CB_RPK_75Rnd_Drum_T",
"UK3CB_RPK_75rnd_762x39_RT",
"UK3CB_RPK_75rnd_762x39_WT",
"UK3CB_RPK_75rnd_762x39_YT",
"UK3CB_RPD_100rnd_762x39_G",
"UK3CB_RPD_100rnd_762x39_R",
"UK3CB_RPD_100rnd_762x39_W",
"UK3CB_RPD_100rnd_762x39_Y",
"UK3CB_RPD_100rnd_762x39",
"UK3CB_RPD_100rnd_762x39_GM",
"UK3CB_RPD_100rnd_762x39_RM",
"UK3CB_RPD_100rnd_762x39_WM",
"UK3CB_RPD_100rnd_762x39_YM",
"UK3CB_RPD_100rnd_762x39_GT",
"UK3CB_RPD_100rnd_762x39_RT",
"UK3CB_RPD_100rnd_762x39_WT",
"UK3CB_RPD_100rnd_762x39_YT",
"rhs_100Rnd_762x54mmR",
"rhs_100Rnd_762x54mmR_7BZ3",
"rhs_100Rnd_762x54mmR_7N13",
"rhs_100Rnd_762x54mmR_green",
"rhs_10Rnd_762x54mmR_7N1",
"UK3CB_SVD_10rnd_762x54_G",
"UK3CB_SVD_10rnd_762x54_R",
"UK3CB_SVD_10rnd_762x54_W",
"UK3CB_SVD_10rnd_762x54_Y",
"UK3CB_SVD_10rnd_762x54",
"rhs_10Rnd_762x54mmR_7N14",
"UK3CB_SVD_10rnd_762x54_GT",
"UK3CB_SVD_10rnd_762x54_RT",
"UK3CB_SVD_10rnd_762x54_WT",
"UK3CB_SVD_10rnd_762x54_YT",
"gm_10Rnd_762x54mmR_AP_7N1_svd_blk",
"gm_10Rnd_762x54mmR_API_7bz3_svd_blk",
"gm_10Rnd_762x54mmR_B_T_7t2_svd_blk",
"rhs_10rnd_9x39mm_SP5",
"rhs_10rnd_9x39mm_SP6",
"rhs_20rnd_9x39mm_SP5",
"rhs_20rnd_9x39mm_SP6",
"uk3cb_PPSH_35rnd_magazine",
"uk3cb_PPSH_35rnd_magazine_G",
"uk3cb_PPSH_35rnd_magazine_R",
"uk3cb_PPSH_35rnd_magazine_W",
"uk3cb_PPSH_35rnd_magazine_Y",
"uk3cb_PPSH_35rnd_magazine_GM",
"uk3cb_PPSH_35rnd_magazine_RM",
"uk3cb_PPSH_35rnd_magazine_WM",
"uk3cb_PPSH_35rnd_magazine_YM",
"uk3cb_PPSH_35rnd_magazine_GT",
"uk3cb_PPSH_35rnd_magazine_RT",
"uk3cb_PPSH_35rnd_magazine_WT",
"uk3cb_PPSH_35rnd_magazine_YT",
"uk3cb_PPSH_71rnd_magazine",
"uk3cb_PPSH_71rnd_magazine_G",
"uk3cb_PPSH_71rnd_magazine_R",
"uk3cb_PPSH_71rnd_magazine_W",
"uk3cb_PPSH_71rnd_magazine_Y",
"uk3cb_PPSH_71rnd_magazine_GM",
"uk3cb_PPSH_71rnd_magazine_RM",
"uk3cb_PPSH_71rnd_magazine_WM",
"uk3cb_PPSH_71rnd_magazine_YM",
"uk3cb_PPSH_71rnd_magazine_GT",
"uk3cb_PPSH_71rnd_magazine_RT",
"uk3cb_PPSH_71rnd_magazine_WT",
"uk3cb_PPSH_71rnd_magazine_YT",
"gm_15Rnd_9x18mm_B_pst_pm63_blk",
"gm_25Rnd_9x18mm_B_pst_pm63_blk",
"UGL_FlareGreen_F",
"UGL_FlareCIR_F",
"UGL_FlareRed_F",
"UGL_FlareWhite_F",
"UGL_FlareYellow_F",
"1Rnd_SmokeBlue_Grenade_shell",
"1Rnd_SmokeGreen_Grenade_shell",
"1Rnd_SmokeOrange_Grenade_shell",
"1Rnd_SmokePurple_Grenade_shell",
"1Rnd_SmokeRed_Grenade_shell",
"1Rnd_Smoke_Grenade_shell",
"1Rnd_SmokeYellow_Grenade_shell",
"1Rnd_HE_Grenade_shell",
"rhs_GDM40",
"rhs_GRD40_Green",
"rhs_GRD40_Red",
"rhs_GRD40_White",
"rhs_VG40MD",
"rhs_VG40MD_Green",
"rhs_VG40MD_Red",
"rhs_VG40MD_White",
"rhs_VG40OP_green",
"rhs_VG40OP_red",
"rhs_VG40OP_white",
"gm_1Rnd_265mm_flare_single_grn_gc",
"gm_1Rnd_265mm_flare_multi_red_gc",
"gm_1Rnd_265mm_flare_single_red_gc",
"gm_1Rnd_265mm_flare_single_wht_gc",
"gm_1Rnd_265mm_flare_single_yel_DM10",
"gm_1Rnd_265mm_flare_single_grn_DM11",
"gm_1Rnd_265mm_flare_single_red_DM13",
"gm_1Rnd_265mm_flare_single_wht_DM15",
"gm_1Rnd_265mm_flare_para_yel_DM16",
"gm_1Rnd_265mm_flare_multi_yel_DM20",
"gm_1Rnd_265mm_flare_multi_grn_DM21",
"gm_1Rnd_265mm_flare_multi_red_DM23",
"gm_1Rnd_265mm_flare_multi_wht_DM25",
"gm_1Rnd_265mm_flare_multi_nbc_DM47",
"gm_1Rnd_265mm_smoke_single_blk_gc",
"gm_1Rnd_265mm_smoke_single_blu_gc",
"gm_1Rnd_265mm_smoke_single_yel_gc",
"gm_1Rnd_265mm_smoke_single_yel_DM19",
"gm_1Rnd_265mm_smoke_single_org_DM22",
"gm_1Rnd_265mm_smoke_single_vlt_DM24",
"rhs_mag_9x18_12_57N181S",
"rhs_mag_9x18_8_57N181S",
"gm_15Rnd_9x18mm_B_pst_pm63_blk",
"gm_25Rnd_9x18mm_B_pst_pm63_blk",
"gm_8Rnd_9x18mm_B_pst_pm_blk",
"rhs_mag_762x25_8"
];
GRLIB_arsenal_items = [
// Uniforms
"gm_gc_army_uniform_soldier_80_blk",
"gm_gc_army_uniform_soldier_80_str",
"gm_gc_army_uniform_soldier_gloves_80_str",
"gm_pl_army_uniform_soldier_80_moro",
"gm_pl_army_uniform_soldier_80_frog",
"gm_pl_army_uniform_soldier_autumn_80_moro",
"gm_pl_army_uniform_soldier_rolled_80_moro",
"gm_pl_army_uniform_soldier_rolled_80_frog",
"gm_gc_civ_uniform_pilot_80_blk",
"JAM_ENVA_U_NVA_Uniform_Field_blu_02",
"JAM_ENVA_U_NVA_Uniform_Field_blu_01",
"JAM_ENVA_U_NVA_Uniform_Field_oli",
"JAM_ENVA_U_NVA_Uniform_Field_str_alt",
"JAM_ENVA_U_NVA_Uniform_Field_Gloves_blu_02",
"JAM_ENVA_U_NVA_Uniform_Field_Gloves_blu_01",
"JAM_ENVA_U_NVA_Uniform_Field_Gloves_oli",
"JAM_ENVA_U_NVA_Uniform_Field_Gloves_str_alt",
"rhs_uniform_gorka_1_a",
"rhs_uniform_gork_1_b",
"rhs_uniform_klmk_oversuit",
"rhs_uniform_afghanka",
"rhs_uniform_afghanka_grey",
"rhs_uniform_afghanka_klmk",
"rhs_uniform_afghanka_moldovan_ttsko_blue",
"rhs_uniform_afghanka_moldovan_ttsko_cold",
"rhs_uniform_afghanka_moldovan_ttsko_desat",
"rhs_uniform_afghanka_moldovan_ttsko_hot",
"rhs_uniform_afghanka_spetsodezhda",
"rhs_uniform_afghanka_ttsko",
"rhs_uniform_afghanka_ttsko_2",
"rhs_uniform_afghanka_vsr_1",
"rhs_uniform_afghanka_vsr_2",
"rhs_uniform_afghanka_vsr_3",
"rhs_uniform_afghanka_para",
"rhs_uniform_afghanka_para_ttsko",
"rhs_uniform_afghanka_para_ttsko_2",
"rhs_uniform_afghanka_para_vsr",
"rhs_uniform_afghanka_para_vsr_2",
// Vests
"gm_gc_vest_combatvest3_str",
"gm_gc_army_vest_80_at_str",
"gm_gc_army_vest_80_border_str",
"gm_gc_army_vest_80_leader_str",
"gm_gc_army_vest_80_lmg_str",
"gm_gc_army_vest_80_rifleman_str",
"gm_pl_army_vest_80_rig_gry",
"gm_pl_army_vest_80_at_gry",
"gm_pl_army_vest_80_crew_gry",
"gm_pl_army_vest_80_leader_gry",
"gm_pl_army_vest_80_mg_gry",
"gm_pl_army_vest_80_marksman_gry",
"gm_pl_army_vest_80_rifleman_gry",
"gm_pl_army_vest_80_rifleman_smg_gry",
"JAM_ENVA_V_NVA_Vest_armor_str",
"JAM_ENVA_V_NVA_Vest_60_at_blu_01",
"JAM_ENVA_V_NVA_Vest_60_leader_blu_01",
"JAM_ENVA_V_NVA_Vest_60_lmg_blu_01",
"JAM_ENVA_V_NVA_Vest_60_rifleman_blu_01",
"rhs_6b2",
"rhs_6b2_AK",
"rhs_6b2_chicom",
"rhs_6b2_holster",
"rhs_6b2_lifchik",
"rhs_6b2_RPK",
"rhs_6b2_SVD",
"rhs_6b3",
"rhs_6b3_holster",
"rhs_6b3_off",
"rhs_6b3_R148",
"rhs_6b3_AK",
"rhs_6b3_AK_2",
"rhs_6b3_AK_3",
"rhs_6b3_RPK",
"rhs_6b3_VOG",
"rhs_6b3_VOG_2",
"rhs_6b5_khaki",
"rhs_6b5_rifleman_khaki",
"rhs_6b5_medic_khaki",
"rhs_6b5_officer_khaki",
"rhs_6b5_sniper_khaki",
"rhs_6b5_spetsodezhda",
"rhs_6b5_rifleman_spetsodezhda",
"rhs_6b5_medic_spetsodezhda",
"rhs_6b5_officer_spetsodezhda",
"rhs_6b5_sniper_spetsodezhda",
"rhs_6b5",
"rhs_6b5_rifleman",
"rhs_6b5_medic",
"rhs_6b5_officer",
"rhs_6b5_sniper",
"rhs_6b5_ttsko",
"rhs_6b5_rifleman_ttsko",
"rhs_6b5_medic_ttsko",
"rhs_6b5_officer_ttsko",
"rhs_6b5_sniper_ttsko",
"rhs_6b5_vsr",
"rhs_6b5_rifleman_vsr",
"rhs_6b5_medic_vsr",
"rhs_6b5_officer_vsr",
"rhs_6b5_sniper_vsr",
// Headgear
"gm_pl_army_headgear_cap_80_moro",
"gm_pl_army_headgear_cap_80_frog",
"gm_gc_headgear_fjh_model4_oli",
"gm_gc_headgear_fjh_model4_wht",
"gm_ge_headgear_psh77_oli",
"gm_ge_bgs_headgear_psh77_cover_smp",
"gm_ge_headgear_psh77_up_oli",
"gm_ge_bgs_headgear_psh77_up_smp",
"gm_ge_bgs_headgear_psh77_cover_str",
"gm_ge_headgear_psh77_down_oli",
"gm_ge_bgs_headgear_psh77_cover_down_smp",
"gm_ge_bgs_headgear_psh77_cover_down_str",
"gm_ge_bgs_headgear_psh77_cover_str",
"gm_pl_army_headgear_wz63_oli",
"gm_pl_army_headgear_wz63_net_oli",
"gm_pl_army_headgear_wz67_oli",
"gm_pl_army_headgear_wz67_net_oli",
"gm_gc_bgs_headgear_hat_80_gry",
"gm_gc_bgs_headgear_hat_80_grn",
"gm_gc_army_headgear_m56",
"gm_gc_army_headgear_m56_net",
"gm_gc_army_headgear_m56_cover_str",
"gm_gc_headgear_zsh3_wht",
"JAM_ENVA_H_NVA_M54_oli",
"JAM_ENVA_H_NVA_M56_76_oli",
"JAM_ENVA_H_NVA_M56_76_cover_blu_02",
"JAM_ENVA_H_NVA_M56_76_cover_net_blu_02",
"JAM_ENVA_H_NVA_M56_76_cover_blu_01",
"JAM_ENVA_H_NVA_M56_76_cover_net_blu_01",
"JAM_ENVA_H_NVA_M56_76_net_oli",
"JAM_ENVA_H_NVA_M56_76_cover_oli",
"JAM_ENVA_H_NVA_M56_76_cover_str",
"JAM_ENVA_H_NVA_M56_76_cover_str_alt",
"JAM_ENVA_H_NVA_M56_76_cover_net_str_alt",
"JAM_ENVA_H_NVA_M56_76_cover_net_str",
"JAM_ENVA_H_NVA_M605_oli",
"JAM_ENVA_H_NVA_M605_grn",
"JAM_ENVA_H_NVA_KDA_Cap_oli",
"rhs_altyn_novisor",
"rhs_altyn_novisor_bala",
"rhs_altyn_visordown",
"rhs_altyn",
"rhs_altyn_bala",
"rhs_beanie_green",
"rhs_fieldcap_m88",
"rhs_fielcap_m88_grey",
"rhs_fieldcap_m88_klmk",
"rhs_fieldcap_m88_ttsko_alt",
"rhs_fielcap_m88_ttsko_vdv",
"rhs_fielcap_m88_ttsko",
"rhs_fielcap_m88_vsr_2",
"rhs_fielcap_m88_vsr",
"rhs_fielcap_early",
"rhs_pilotka",
"rhs_ssh60",
"rhs_ssh68_2",
"rhs_tsh4",
"UK3CB_H_SSH60_Helmet_Covered_KLMK",
"rhsgref_ssh68_vsr",
// Facewear
"gm_gc_army_facewear_schm41m",
// Attachments
"gm_pgo7v_blk",
"rhs_acc_1p29",
"rhs_acc_pso1m2",
"gm_pka_dovetail_blk",
"gm_pka_dovetail_gry",
"rhs_acc_1pn34",
"rhs_acc_2dpZenit",
"gm_flashlightp2_wht_ak74handguard_blu",
"gm_flashlightp2_wht_akhandguard_blu",
"gm_flashlightp2_wht_akkhandguard_blu",
"gm_bayonet_6x3_wud",
"gm_bayonet_6x3_blk",
"uk3cb_muzzle_sks_bayonet",
// Items
"gm_gc_compass_f73",
"gm_repairkit_01",
"gm_gc_army_gauzeBandage",
"gm_gc_army_medkit",
"gm_watch_kosei_80",
"gm_df7x40_grn", // Binocular
"ItemMap",
"ItemWatch",
"ItemRadio",
"kat_crossPanel",
"gm_boltcutter",
"kat_Bubble_Wrap",
"kat_gasmaskFilter",
"gm_gc_army_medbox",
"gm_gc_firstaidkit_vehicle",
"kat_IV_16",
"kat_AFAK",
"kat_amiodarone",
"kat_Carbonate",
"kat_atropine",
"kat_basicDiagnostic",
"kat_bloodIV_O",
"kat_bloodIV_O_N",
"kat_bloodIV_A",
"kat_bloodIV_A_N",
"kat_bloodIV_AB",
"kat_bloodIV_AB_N",
"kat_bloodIV_B",
"kat_bloodIV_B_N",
"kat_bloodIV_O_250",
"kat_bloodIV_O_N_250",
"kat_bloodIV_A_250",
"kat_bloodIV_A_N_250",
"kat_bloodIV_AB_250",
"kat_bloodIV_AB_N_250",
"kat_bloodIV_B_250",
"kat_bloodIV_B_N_250",
"kat_bloodIV_O_500",
"kat_bloodIV_O_N_500",
"kat_bloodIV_A_500",
"kat_bloodIV_A_N_500",
"kat_bloodIV_AB_500",
"kat_bloodIV_AB_N_500",
"kat_bloodIV_B_500",
"kat_bloodIV_B_N_500",
"kat_BPCuff",
"kat_plate",
"kat_BVM",
"kat_Caffeine",
"kat_chestSeal",
"kat_clamp",
"kat_Painkiller",
"kat_vacuum",
"kat_EACA",
"kat_etomidate",
"kat_IO_FAST",
"kat_fentanyl",
"KAT_Empty_bloodIV_250",
"KAT_Empty_bloodIV_500",
"kat_fluidWarmer",
"kat_flumezanil",
"kat_guedel",
"kat_IFAK",
"kat_epinephrineIV",
"kat_ketamine",
"kat_larynx",
"kat_lidocaine",
"kat_lorazepam",
"kat_suction",
"kat_MFAK",
"kat_nalbuphine",
"kat_naloxone",
"kat_nasal",
"kat_ncdKit",
"kat_nitroglycerin",
"kat_norepinephrine",
"kat_Penthrox",
"kat_personal_oxygen",
"kat_Pervitin",
"kat_phenylephrine",
"kat_phenyleprhineAuto",
"kat_pocketBVM",
"kat_oxygenTank_150",
"kat_oxygenTank_300",
"kat_reboa",
"kat_retractor",
"kat_scalpel",
"kat_stethoscope",
// ACE Items
"ACE_adenosine", // Adenosine autoinjector
"ACE_artilleryTable", // Artillery Rangetable
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_MapTools", // Map Tools
"ACE_morphine", // Morphine autoinjector
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_wirecutter" // Wirecutter
];
GRLIB_arsenal_backpacks = [
"gm_gc_army_backpack_80_at_str",
"gm_gc_army_backpack_80_lmg_str",
"gm_gc_army_backpack_80_mgk_str",
"gm_gc_army_backpack_80_engineer_str",
"gm_gc_army_backpack_80_demolition_str",
"gm_gc_army_backpack_80_assaultpack_mgk_str",
"gm_gc_army_backpack_80_assaultpack_lmg_str",
"gm_fagot_launcher_weaponBag",
"gm_pl_army_backpack_80_oli",
"gm_gc_backpack_r105m_brn",
"gm_backpack_rs9_parachute",
"rhs_medic_bag",
"rhs_r148",
"rhs_rd54",
"rhs_rd54_vest",
"rhs_rd54_flora2",
"rhs_rd54_flora1",
"rhs_rpg_2",
"rhs_rpg_empty",
"rhs_rpg_6b2",
"rhs_rpg_6b3",
"rhs_sidor",
"UK3CB_CW_SOV_O_LATE_B_Sidor_RIF",
"UK3CB_CW_SOV_O_EARLY_B_Sidor_RIF",
"UK3CB_CHD_B_B_Sidor_MD",
"UK3CB_KDF_B_B_Sidor_MD_OLI",
"UK3CB_KDF_B_B_Sidor_MD_VSR",
"UK3CB_CHD_B_B_Sidor_RIF_FLORA",
"UK3CB_LSM_B_B_Sidor_PART_RIF",
"UK3CB_KDF_B_B_Sidor_RIF_VSR"
];

View File

@@ -0,0 +1,445 @@
/*
Global Mobilization East Germany Arsenal Preset
Mods needed:
- Global Mobilization
Mods optional:
- None
*/
GRLIB_arsenal_weapons = [
// MPi AKs
"gm_mpiak74n_brn",
'gm_mpiak74n_blk"',
"gm_mpiak74n_prp",
"gm_mpiaks74nk_brn",
"gm_mpiaks74nk_blk",
"gm_mpiaks74nk_prp",
"gm_mpiaks74n_brn",
"gm_mpiaks74n_blk",
"gm_mpiaks74n_prp",
"gm_mpikm_brn",
"gm_mpikm72_brn",
"gm_mpikm72_blk",
"gm_mpikm72_prp",
"gm_mpikms72_brn",
"gm_mpikms72_blk",
"gm_mpikms72_prp",
"gm_mpikms72k_brn",
"gm_mpikms72k_blk",
"gm_mpikms72k_prp",
"gm_mpikms72ksd_brn",
"gm_mpikms72ksd_blk",
"gm_mpikms72ksd_prp",
// Soviet AKs
"rhs_weap_ak74",
"rhs_weap_ak74_gp25",
"rhs_weap_ak74_2",
"rhs_weap_ak74n",
"rhs_weap_ak74n_gp25",
"rhs_weap_ak74n_2",
"rhs_weap_akm",
"rhs_weap_akm_gp25",
"rhs_weap_akmn",
"rhs_weap_akmn_gp25",
"rhs_weap_akms",
"rhs_weap_akms_gp25",
"rhs_weap_aks74",
"rhs_weap_aks74_gp25",
"rhs_weap_aks74_2",
"rhs_weap_aks74n",
"rhs_weap_aks74n_gp25",
"rhs_weap_aks74n_2",
"rhs_weap_aks74u",
"rhs_weap_aks74un",
"gm_akm_pallas_wud",
// Subsonic Rifles
"rhs_weap_asval",
"rhs_weap_vss",
// Marksman Rifles
"gm_svd_wud",
"UK3CB_SVD_OLD",
// RPK-74
"gm_lmgrpk74n_brn",
"gm_lmgrpk74n_blk",
"gm_lmgrpk74n_prp",
// RPK
"gm_lmgrpk_brn",
"gm_lmgrpk_prp",
"gm_lmgrpk_blk",
"gm_rpk_wud",
"gm_rpk74n_wud",
"gm_rpkn_wud",
// LP1 26.5mm
"gm_lp1_blk",
// PKM
"gm_hmgpkm_prp",
"rhs_weap_pkm",
// RPG-7
"gm_rpg7_prp",
"gm_rpg7_wud",
// RPG-18
"gm_rpg18_oli",
"rhs_weap_rpg18",
// RPG-29
"RPG29_Lorad",
// PALLAD
"gm_pallad_d_brn"
];
GRLIB_arsenal_magazines = [
// LP1 26.5mm
"gm_1Rnd_265mm_flare_single_grn_gc",
"gm_1Rnd_265mm_flare_single_red_gc",
"gm_1Rnd_265mm_flare_multi_red_gc",
"gm_1Rnd_265mm_smoke_single_yel_gc",
"gm_1Rnd_265mm_smoke_single_blu_gc",
"gm_1Rnd_265mm_smoke_single_blk_gc",
// RPG-7
"gm_1Rnd_40mm_heat_pg7v_rpg7",
"gm_1Rnd_40mm_heat_pg7vl_rpg7",
// RPG-29
"RPG29_AT",
"RPG29_HE_F",
// AK-74 + RPK-74 (GDR)
"gm_30Rnd_545x39mm_B_7N6_ak74_org",
"gm_30Rnd_545x39mm_B_7N6_ak74_prp",
"gm_30Rnd_545x39mm_B_T_7T3_ak74_prp",
"gm_30Rnd_545x39mm_B_T_7T3_ak74_org",
"gm_45Rnd_545x39mm_B_7N6_ak74_prp",
"gm_45Rnd_545x39mm_B_7N6_ak74_org",
"gm_45Rnd_545x39mm_B_T_7T3_ak74_prp",
"gm_45Rnd_545x39mm_B_T_7T3_ak74_org",
"gm_lmgk500_blk",
"gm_lmgk500_brn",
"gm_lmgk500_prp",
// AK-74 + RPK-74 (USSR)
"rhs_30Rnd_545x39_AK_green",
"rhs_30Rnd_545x39_7N6_AK",
"rhs_30Rnd_545x39_7N6_green_AK",
"rhs_30Rnd_545x39_AK_plum_green",
"rhs_30Rnd_545x39_7N6M_plum_AK",
// RPK (GM)
"gm_30Rnd_762x39mm_B_M43_ak47_blk",
"gm_30Rnd_762x39mm_B_T_M43_ak47_blk",
"gm_75Rnd_762x39mm_B_M43_ak47_blk",
"gm_75Rnd_762x39mm_B_T_M43_ak47_blk",
// RPK (RHS)
"rhs_45Rnd_545x39_7N6_AK",
"rhs_60Rnd_545x39_AK_Green",
// PKM
"gm_100Rnd_762x54mm_B_T_T46_pk_grn",
"gm_100Rnd_762x54mm_API_B32_pk_grn",
// Grenades
"gm_handgrenade_frag_rgd5",
"rhs_mag_f1",
"rhs_mag_rgn",
"rhs_mag_rgo",
"rhsgref_mag_rkg3em",
"rhs_grenade_sthgr43_mag",
"rhs_mag_rdg2_white",
"rhs_mag_rdg2_black",
"gm_smokeshell_blk_gc",
"gm_smokeshell_blu_gc",
"gm_smokeshell_grn_gc",
"gm_smokeshell_org_gc",
"gm_smokeshell_red_gc",
"gm_smokeshell_wht_gc",
// Explosives
"gm_explosive_plnp_charge",
"gm_mine_at_tm46",
];
GRLIB_arsenal_items = [
// Uniforms
"gm_gc_army_uniform_soldier_80_blk",
"gm_gc_army_uniform_soldier_80_str",
"gm_gc_army_uniform_soldier_gloves_80_str",
"gm_pl_army_uniform_soldier_80_moro",
"gm_pl_army_uniform_soldier_80_frog",
"gm_pl_army_uniform_soldier_autumn_80_moro",
"gm_pl_army_uniform_soldier_rolled_80_moro",
"gm_pl_army_uniform_soldier_rolled_80_frog",
"gm_gc_civ_uniform_pilot_80_blk",
"JAM_ENVA_U_NVA_Uniform_Field_blu_02",
"JAM_ENVA_U_NVA_Uniform_Field_blu_01",
"JAM_ENVA_U_NVA_Uniform_Field_oli",
"JAM_ENVA_U_NVA_Uniform_Field_str_alt",
"JAM_ENVA_U_NVA_Uniform_Field_Gloves_blu_02",
"JAM_ENVA_U_NVA_Uniform_Field_Gloves_blu_01",
"JAM_ENVA_U_NVA_Uniform_Field_Gloves_oli",
"JAM_ENVA_U_NVA_Uniform_Field_Gloves_str_alt",
"rhs_uniform_gorka_1_a",
"rhs_uniform_gork_1_b",
"rhs_uniform_klmk_oversuit",
"rhs_uniform_afghanka",
"rhs_uniform_afghanka_grey",
"rhs_uniform_afghanka_klmk",
"rhs_uniform_afghanka_spetsodezhda",
"rhs_uniform_afghanka_ttsko",
"rhs_uniform_afghanka_ttsko_2",
"rhs_uniform_afghanka_vsr_1",
"rhs_uniform_afghanka_vsr_2",
"rhs_uniform_afghanka_vsr_3",
"rhs_uniform_afghanka_para",
"rhs_uniform_afghanka_para_ttsko",
"rhs_uniform_afghanka_para_ttsko_2",
"rhs_uniform_afghanka_para_vsr",
"rhs_uniform_afghanka_para_vsr_2",
// Vests
"gm_gc_vest_combatvest3_str",
"gm_gc_army_vest_80_at_str",
"gm_gc_army_vest_80_border_str",
"gm_gc_army_vest_80_leader_str",
"gm_gc_army_vest_80_lmg_str",
"gm_gc_army_vest_80_rifleman_str",
"gm_pl_army_vest_80_rig_gry",
"gm_pl_army_vest_80_at_gry",
"gm_pl_army_vest_80_crew_gry",
"gm_pl_army_vest_80_leader_gry",
"gm_pl_army_vest_80_mg_gry",
"gm_pl_army_vest_80_marksman_gry",
"gm_pl_army_vest_80_rifleman_gry",
"gm_pl_army_vest_80_rifleman_smg_gry",
"JAM_ENVA_V_NVA_Vest_armor_str",
"JAM_ENVA_V_NVA_Vest_60_at_blu_01",
"JAM_ENVA_V_NVA_Vest_60_leader_blu_01",
"JAM_ENVA_V_NVA_Vest_60_lmg_blu_01",
"JAM_ENVA_V_NVA_Vest_60_rifleman_blu_01",
"rhs_6b2",
"rhs_6b2_AK",
"rhs_6b2_chicom",
"rhs_6b2_holster",
"rhs_6b2_lifchik",
"rhs_6b2_RPK",
"rhs_6b2_SVD",
"rhs_6b3",
"rhs_6b3_holster",
"rhs_6b3_off",
"rhs_6b3_R148",
"rhs_6b3_AK",
"rhs_6b3_AK_2",
"rhs_6b3_AK_3",
"rhs_6b3_RPK",
"rhs_6b3_VOG",
"rhs_6b3_VOG_2",
"rhs_6b5_khaki",
"rhs_6b5_rifleman_khaki",
"rhs_6b5_medic_khaki",
"rhs_6b5_officer_khaki",
"rhs_6b5_sniper_khaki",
"rhs_6b5_spetsodezhda",
"rhs_6b5_rifleman_spetsodezhda",
"rhs_6b5_medic_spetsodezhda",
"rhs_6b5_officer_spetsodezhda",
"rhs_6b5_sniper_spetsodezhda",
"rhs_6b5",
"rhs_6b5_rifleman",
"rhs_6b5_medic",
"rhs_6b5_officer",
"rhs_6b5_sniper",
"rhs_6b5_ttsko",
"rhs_6b5_rifleman_ttsko",
"rhs_6b5_medic_ttsko",
"rhs_6b5_officer_ttsko",
"rhs_6b5_sniper_ttsko",
"rhs_6b5_vsr",
"rhs_6b5_rifleman_vsr",
"rhs_6b5_medic_vsr",
"rhs_6b5_officer_vsr",
"rhs_6b5_sniper_vsr",
// Headgear
"gm_pl_army_headgear_cap_80_moro",
"gm_pl_army_headgear_cap_80_frog",
"gm_gc_headgear_fjh_model4_oli",
"gm_gc_headgear_fjh_model4_wht",
"gm_ge_headgear_psh77_oli",
"gm_ge_bgs_headgear_psh77_cover_smp",
"gm_ge_headgear_psh77_up_oli",
"gm_ge_bgs_headgear_psh77_up_smp",
"gm_ge_bgs_headgear_psh77_cover_str",
"gm_ge_headgear_psh77_down_oli",
"gm_ge_bgs_headgear_psh77_cover_down_smp",
"gm_ge_bgs_headgear_psh77_cover_down_str",
"gm_ge_bgs_headgear_psh77_cover_str",
"gm_pl_army_headgear_wz63_oli",
"gm_pl_army_headgear_wz63_net_oli",
"gm_pl_army_headgear_wz67_oli",
"gm_pl_army_headgear_wz67_net_oli",
"gm_gc_bgs_headgear_hat_80_gry",
"gm_gc_bgs_headgear_hat_80_grn",
"gm_gc_army_headgear_m56",
"gm_gc_army_headgear_m56_net",
"gm_gc_army_headgear_m56_cover_str",
"gm_gc_headgear_zsh3_wht",
"JAM_ENVA_H_NVA_M54_oli",
"JAM_ENVA_H_NVA_M56_76_oli",
"JAM_ENVA_H_NVA_M56_76_cover_blu_02",
"JAM_ENVA_H_NVA_M56_76_cover_net_blu_02",
"JAM_ENVA_H_NVA_M56_76_cover_blu_01",
"JAM_ENVA_H_NVA_M56_76_cover_net_blu_01",
"JAM_ENVA_H_NVA_M56_76_net_oli",
"JAM_ENVA_H_NVA_M56_76_cover_oli",
"JAM_ENVA_H_NVA_M56_76_cover_str",
"JAM_ENVA_H_NVA_M56_76_cover_str_alt",
"JAM_ENVA_H_NVA_M56_76_cover_net_str_alt",
"JAM_ENVA_H_NVA_M56_76_cover_net_str",
"JAM_ENVA_H_NVA_M605_oli",
"JAM_ENVA_H_NVA_M605_grn",
"JAM_ENVA_H_NVA_KDA_Cap_oli",
"rhs_altyn_novisor",
"rhs_altyn_novisor_bala",
"rhs_altyn_visordown",
"rhs_altyn",
"rhs_altyn_bala",
"rhs_beanie_green",
"rhs_fieldcap_m88",
"rhs_fielcap_m88_grey",
"rhs_fieldcap_m88_klmk",
"rhs_fieldcap_m88_ttsko_alt",
"rhs_fielcap_m88_ttsko_vdv",
"rhs_fielcap_m88_ttsko",
"rhs_fielcap_m88_vsr_2",
"rhs_fielcap_m88_vsr",
"rhs_fielcap_early",
"rhs_pilotka",
"rhs_ssh60",
"rhs_ssh68_2",
"rhs_tsh4",
// Facewear
"gm_gc_army_facewear_schm41m",
// Attachments
"gm_pgo7v_blk",
"rhs_acc_1p29",
"rhs_acc_pso1m2",
// Items
"gm_gc_compass_f73",
"gm_repairkit_01",
"gm_gc_army_gauzeBandage",
"gm_gc_army_medkit",
"gm_watch_kosei_80",
"gm_df7x40_grn", // Binocular
"ItemMap",
"ItemWatch",
"ItemRadio",
// ACE Items
"ACE_adenosine", // Adenosine autoinjector
"ACE_artilleryTable", // Artillery Rangetable
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_MapTools", // Map Tools
"ACE_morphine", // Morphine autoinjector
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_wirecutter" // Wirecutter
// ACRE Items
// TFAR Items
];
GRLIB_arsenal_backpacks = [
"gm_gc_army_backpack_80_at_str",
"gm_gc_army_backpack_80_lmg_str",
"gm_gc_army_backpack_80_mgk_str",
"gm_gc_army_backpack_80_engineer_str",
"gm_gc_army_backpack_80_demolition_str",
"gm_gc_army_backpack_80_assaultpack_mgk_str",
"gm_gc_army_backpack_80_assaultpack_lmg_str",
"gm_fagot_launcher_weaponBag",
"gm_pl_army_backpack_80_oli",
"gm_gc_backpack_r105m_brn",
"gm_backpack_rs9_parachute",
"rhs_medic_bag",
"rhs_r148",
"rhs_rd54",
"rhs_rd54_vest",
"rhs_rd54_flora2",
"rhs_rd54_flora1",
"rhs_rpg_2",
"rhs_rpg_empty",
"rhs_rpg_6b2",
"rhs_rpg_6b3",
"rhs_sidor",
"UK3CB_CW_SOV_O_LATE_B_Sidor_RIF",
"UK3CB_CW_SOV_O_EARLY_B_Sidor_RIF",
"UK3CB_CHD_B_B_Sidor_MD",
"UK3CB_KDF_B_B_Sidor_MD_OLI",
"UK3CB_KDF_B_B_Sidor_MD_VSR",
"UK3CB_CHD_B_B_Sidor_RIF_FLORA",
"UK3CB_LSM_B_B_Sidor_PART_RIF",
"UK3CB_KDF_B_B_Sidor_RIF_VSR"
];

View File

@@ -0,0 +1,246 @@
/*
Global Mobilization West Germany Arsenal Preset
Author: Dahlgren - https://github.com/Dahlgren
Mods needed:
- Global Mobilization
Mods optional:
- None
*/
GRLIB_arsenal_weapons = [
// G3A3 + G3A4
"gm_g3a3_oli",
"gm_g3a4_oli",
// MG3 7.62x51 mm
"gm_mg3_blk",
// MP2A1 9x19 mm
"gm_mp2a1_blk",
// P1 9x19 mm
"gm_p1_blk",
// P2A1 26.5 mm
"gm_p2a1_blk",
// PzF44-2
"gm_pzf44_2_oli",
// PzF84
"gm_pzf84_oli"
];
GRLIB_arsenal_magazines = [
// G3A3 + G3A4
"gm_20rnd_762x51mm_b_t_dm21_g3_blk",
"gm_20rnd_762x51mm_b_t_dm21a1_g3_blk",
"gm_20rnd_762x51mm_b_t_dm21a2_g3_blk",
"gm_20rnd_762x51mm_b_dm111_g3_blk",
"gm_20rnd_762x51mm_b_dm41_g3_blk",
"gm_20rnd_762x51mm_ap_dm151_g3_blk",
"gm_20rnd_762x51mm_b_t_dm21_g3_des",
"gm_20rnd_762x51mm_b_t_dm21a1_g3_des",
"gm_20rnd_762x51mm_b_t_dm21a2_g3_des",
"gm_20rnd_762x51mm_b_dm111_g3_des",
"gm_20rnd_762x51mm_b_dm41_g3_des",
"gm_20rnd_762x51mm_ap_dm151_g3_des",
"gm_1rnd_67mm_heat_dm22a1_g3",
// MG3 7.62x51 mm
"gm_120rnd_762x51mm_b_t_dm21_mg3_grn",
"gm_120rnd_762x51mm_b_t_dm21a1_mg3_grn",
"gm_120rnd_762x51mm_b_t_dm21a2_mg3_grn",
// MP2A1 9x19 mm
"gm_32rnd_9x19mm_b_dm51_mp2_blk",
// P1 9x19 mm
"gm_8rnd_9x19mm_b_dm11_p1_blk",
// P2A1 26.5 mm
"gm_1Rnd_265mm_flare_single_wht_gc",
"gm_1Rnd_265mm_flare_single_grn_gc",
"gm_1Rnd_265mm_flare_single_red_gc",
"gm_1Rnd_265mm_flare_multi_red_gc",
"gm_1Rnd_265mm_smoke_single_yel_gc",
"gm_1Rnd_265mm_smoke_single_blu_gc",
"gm_1Rnd_265mm_smoke_single_blk_gc",
"gm_1Rnd_265mm_flare_para_yel_DM16",
"gm_1Rnd_265mm_flare_single_wht_DM15",
"gm_1Rnd_265mm_flare_single_red_DM13",
"gm_1Rnd_265mm_flare_single_grn_DM11",
"gm_1Rnd_265mm_flare_single_yel_DM10",
"gm_1Rnd_265mm_flare_multi_wht_DM25",
"gm_1Rnd_265mm_flare_multi_red_DM23",
"gm_1Rnd_265mm_flare_multi_grn_DM21",
"gm_1Rnd_265mm_flare_multi_yel_DM20",
"gm_1Rnd_265mm_smoke_single_yel_DM19",
"gm_1Rnd_265mm_smoke_single_org_DM22",
"gm_1Rnd_265mm_smoke_single_vlt_DM24",
"gm_1Rnd_265mm_flare_multi_nbc_DM47",
// PzF44-2
"gm_1rnd_44x537mm_heat_dm32_pzf44_2",
// PzF84
"gm_1rnd_84x245mm_heat_t_dm12_carlgustaf",
"gm_1rnd_84x245mm_heat_t_dm12a1_carlgustaf",
"gm_1rnd_84x245mm_heat_t_dm22_carlgustaf",
"gm_1rnd_84x245mm_heat_t_dm32_carlgustaf",
"gm_1rnd_84x245mm_illum_dm16_carlgustaf",
// Grenades
"gm_handgrenade_frag_dm51",
"gm_handgrenade_frag_dm51a1",
"gm_handgrenade_conc_dm51",
"gm_handgrenade_conc_dm51a1",
"gm_smokeshell_grn_dm21",
"gm_smokeshell_red_dm23",
"gm_smokeshell_yel_dm26",
"gm_smokeshell_org_dm32",
"gm_smokeshell_wht_dm25",
// Explosives
"gm_explosive_petn_charge",
"gm_mine_at_dm21"
];
GRLIB_arsenal_items = [
// Uniforms
"gm_ge_army_uniform_crew_80_oli",
"gm_ge_army_uniform_soldier_80_oli",
"gm_ge_army_uniform_soldier_80_ols",
"gm_ge_army_uniform_soldier_parka_80_oli",
"gm_ge_army_uniform_soldier_parka_80_ols",
"gm_ge_bgs_uniform_soldier_80_smp",
// Vests
"gm_ge_army_vest_80_bag",
"gm_ge_army_vest_80_belt",
"gm_ge_army_vest_80_crew",
"gm_ge_army_vest_80_demolition",
"gm_ge_army_vest_80_leader",
"gm_ge_army_vest_80_machinegunner",
"gm_ge_army_vest_80_medic",
"gm_ge_army_vest_80_officer",
"gm_ge_army_vest_80_rifleman",
"gm_ge_bgs_vest_80_rifleman",
// Headgear
"gm_ge_bgs_headgear_m35_53_blk",
"gm_ge_bgs_headgear_m35_53_net_blk",
"gm_ge_headgear_beret_bdx",
"gm_ge_headgear_beret_red",
"gm_ge_headgear_beret_grn",
"gm_ge_headgear_beret_mrb",
"gm_ge_headgear_beret_un",
"gm_ge_headgear_crewhat_80_blk",
"gm_ge_headgear_hat_80_gry",
"gm_ge_headgear_hat_80_m62_oli",
"gm_ge_headgear_hat_80_oli",
"gm_ge_headgear_headset_crew_oli",
"gm_ge_headgear_m62",
"gm_ge_headgear_m62_cover_blu",
"gm_ge_headgear_m62_net",
// Facewear
"gm_ge_facewear_m65",
// Attachments
"gm_feroz24_blk",
"gm_feroz2x17_pzf44_2_blk",
"gm_feroz2x17_pzf84_blk",
// Items
"gm_ge_army_burnBandage",
"gm_ge_army_conat2",
"gm_ge_army_gauzeBandage",
"gm_ge_army_gauzeCompress",
"gm_ge_army_medkit_80",
"gm_repairkit_01",
"gm_ferod16_oli", // Binocular
"gm_watch_kosei_80",
"ItemMap",
"ItemWatch",
"ItemRadio",
// ACE Items
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Clacker", // M57 Firing Device
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_morphine", // Morphine autoinjector
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_wirecutter", // Wirecutter
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
// TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"gm_ge_army_backpack_80_oli",
"gm_ge_backpack_satchel_80_blk",
"gm_ge_backpack_satchel_80_san"
];

View File

@@ -0,0 +1,996 @@
/*
RHS United States Armed Forces Arsenal Preset
Last Update: 2020-05-08
Needed:
- RHSUSAF - https://steamcommunity.com/sharedfiles/filedetails/?id=843577117
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
"rhs_weap_fgm148", // FGM-148 Javelin
"rhs_weap_fim92", // FIM-92F
"rhs_weap_hk416d10_LMT_d", // HK416 D10 (SOPMOD Stock/Desert)
"rhs_weap_hk416d10_LMT_wd", // HK416 D10 (SOPMOD Stock/Woodland)
"rhs_weap_hk416d10_LMT", // HK416 D10 (SOPMOD Stock)
"rhs_weap_hk416d10_m320", // HK416 D10 (M320)
"rhs_weap_hk416d10", // HK416 D10
"rhs_weap_hk416d145_d_2", // HK416 D14.5 (Desert Net)
"rhs_weap_hk416d145_d", // HK416 D14.5 (Desert Grass)
"rhs_weap_hk416d145_m320", // HK416 D14.5 (M320)
"rhs_weap_hk416d145_wd_2", // HK416 D14.5 (Woodland Net)
"rhs_weap_hk416d145_wd", // HK416 D14.5 (Woodland Grass)
"rhs_weap_hk416d145", // HK416 D14.5
"rhs_weap_M107_d", // M107 (Desert)
"rhs_weap_M107_w", // M107 (Woodland)
"rhs_weap_M107", // M107
"rhs_weap_M136_hedp", // M136 (HEDP)
"rhs_weap_M136_hp", // M136 (HP)
"rhs_weap_M136", // M136 (HEAT)
"rhs_weap_m14ebrri", // M14 EBR-RI
"rhs_weap_m16a4_carryhandle_M203", // M16A4 (Carryhandle/M203)
"rhs_weap_m16a4_carryhandle", // M16A4 (Carryhandle)
"rhs_weap_m16a4_imod_M203", // M16A4 (IMOD Stock/M203)
"rhs_weap_m16a4_imod", // M16A4 (IMOD Stock)
"rhs_weap_m16a4", // M16A4
"rhs_weap_m240B", // M240B
"rhs_weap_m240G", // M240G
"rhs_weap_m249_light_L", // M249 PIP (Long/Ltwt.)
"rhs_weap_m249_light_S", // M249 PIP (Short/Ltwt.)
"rhs_weap_m249_pip_L_para", // M249 PIP (Long/Para)
"rhs_weap_m249_pip_L", // M249 PIP (Long/Savit)
"rhs_weap_m249_pip_ris", // M249 PIP (RIS)
"rhs_weap_m249_pip_S_para", // M249 PIP (Short/Para)
"rhs_weap_m249_pip_S", // M249 PIP (Short/Savit)
"rhs_weap_m249_pip", // M249 PIP
"rhs_weap_m249", // M249
"rhs_weap_m24sws_d", // M24 SWS (Desert)
"rhs_weap_m24sws_wd", // M24 SWS (Woodland)
"rhs_weap_m24sws", // M24 SWS
"rhs_weap_m27iar_grip", // M27 IAR (KAC Grip)
"rhs_weap_m27iar", // M27 IAR
"rhs_weap_m32", // M32 MGL
"rhs_weap_M320", // M320 GLM
"rhs_weap_m4_carryhandle_m203", // M4 (Carryhandle/M203)
"rhs_weap_m4_carryhandle_m203S", // M4 (Carryhandle/M203S)
"rhs_weap_m4_carryhandle_mstock", // M4 (Carryhandle/Magpull Stock)
"rhs_weap_m4_carryhandle", // M4 (Carryhandle)
"rhs_weap_m4_m203", // M4 (M203)
"rhs_weap_m4_m203S", // M4 (M203S)
"rhs_weap_m4_m320", // M4 (M320)
"rhs_weap_m4_mstock", // M4 (Magpull Stock)
"rhs_weap_m4", // M4
"rhs_weap_m40a5_d", // M40A5 (Desert)
"rhs_weap_m40a5_wd", // M40A5 (Woodland)
"rhs_weap_m40a5", // M40A5
"rhs_weap_m4a1_blockII_bk", // M4A1 Block II (Black Rail)
"rhs_weap_m4a1_blockII_d", // M4A1 Block II (Desert)
"rhs_weap_m4a1_blockII_KAC_bk", // M4A1 Block II (Black Rail/SOPMOD Stock)
"rhs_weap_m4a1_blockII_KAC_d", // M4A1 Block II (Desert/SOPMOD Stock)
"rhs_weap_m4a1_blockII_KAC_wd", // M4A1 Block II (Woodland/SOPMOD Stock)
"rhs_weap_m4a1_blockII_KAC", // M4A1 Block II (SOPMOD Stock)
"rhs_weap_m4a1_blockII_M203_bk", // M4A1 Block II (Black Rail/M203)
"rhs_weap_m4a1_blockII_M203_d", // M4A1 Block II (Desert/M203)
"rhs_weap_m4a1_blockII_M203_wd", // M4A1 Block II (Woodland/M203)
"rhs_weap_m4a1_blockII_M203", // M4A1 Block II (M203)
"rhs_weap_m4a1_blockII_wd", // M4A1 Block II (Woodland)
"rhs_weap_m4a1_blockII", // M4A1 Block II
"rhs_weap_m4a1_carryhandle_m203", // M4A1 (M203)
"rhs_weap_m4a1_carryhandle_m203S", // M4A1 (M203S)
"rhs_weap_m4a1_carryhandle_mstock", // M4A1 (Magpull Stock)
"rhs_weap_m4a1_carryhandle", // M4A1
"rhs_weap_m4a1_d_mstock", // M4A1 PIP (Desert/Magpull Stock)
"rhs_weap_m4a1_d", // M4A1 PIP (Desert)
"rhs_weap_m4a1_m203", // M4A1 PIP (M203)
"rhs_weap_m4a1_m203s_d", // M4A1 PIP (Desert/M203S)
"rhs_weap_m4a1_m203s_wd", // M4A1 PIP (Woodland/M203S)
"rhs_weap_m4a1_m203s", // M4A1 PIP (M203S)
"rhs_weap_m4a1_m320", // M4A1 PIP (M320)
"rhs_weap_m4a1_mstock", // M4A1 PIP (Magpull Stock)
"rhs_weap_m4a1_wd_mstock", // M4A1 PIP (Woodland/Magpull Stock)
"rhs_weap_m4a1_wd", // M4A1 PIP (Woodland)
"rhs_weap_m4a1", // M4A1 PIP
"rhs_weap_M590_5RD", // M590A1 (Short)
"rhs_weap_M590_8RD", // M590A1 (Long)
"rhs_weap_m72a7", // M72A7
"rhs_weap_maaws", // M3 MAAWS
"rhs_weap_mk17_CQC", // Mk 17 Mod 0 (CQC)
"rhs_weap_mk17_LB", // Mk 17 Mod 0 (LB)
"rhs_weap_mk17_STD", // Mk 17 Mod 0 (STD)
"rhs_weap_mk18_bk", // Mk 18 Mod 1 (Black Rail)
"rhs_weap_mk18_d", // Mk 18 Mod 1 (Desert)
"rhs_weap_mk18_KAC_bk", // Mk 18 Mod 1 (Black Rail/SOPMOD Stock)
"rhs_weap_mk18_KAC_d", // Mk 18 Mod 1 (Desert/SOPMOD Stock)
"rhs_weap_mk18_KAC_wd", // Mk 18 Mod 1 (Woodland/SOPMOD Stock)
"rhs_weap_mk18_KAC", // Mk 18 Mod 1 (SOPMOD Stock)
"rhs_weap_mk18_m320", // Mk 18 Mod 1 (M320)
"rhs_weap_mk18_wd", // Mk 18 Mod 1 (Woodland)
"rhs_weap_mk18", // Mk 18 Mod 1
"rhs_weap_SCARH_USA_CQC", // SCAR-H (USA/CQC)
"rhs_weap_SCARH_USA_LB", // SCAR-H (USA/LB)
"rhs_weap_SCARH_USA_STD", // SCAR-H (USA/STD)
"rhs_weap_smaw_green", // MK153 Mod 0 SMAW (Green)
"rhs_weap_smaw", // MK153 Mod 0 SMAW (Black)
"rhs_weap_sr25_d", // Mk 11 Mod 0 (Desert)
"rhs_weap_sr25_ec_d", // Mk 11 Mod 0 (EC/Desert)
"rhs_weap_sr25_ec_wd", // Mk 11 Mod 0 (EC/Woodland)
"rhs_weap_sr25_ec", // Mk 11 Mod 0 (EC)
"rhs_weap_sr25_wd", // Mk 11 Mod 0 (Woodland)
"rhs_weap_sr25", // Mk 11 Mod 0
"rhs_weap_XM2010_d", // M2010 ESR (Desert)
"rhs_weap_XM2010_sa", // M2010 ESR (Semi-arid)
"rhs_weap_XM2010_wd", // M2010 ESR (Camo)
"rhs_weap_XM2010", // M2010 ESR
"rhsusf_weap_glock17g4", // Glock 17
"rhsusf_weap_m1911a1", // M1911A1
"rhsusf_weap_m9", // M9 Beretta
"rhsusf_weap_MP7A2_aor1", // MP7A2 (AOR1)
"rhsusf_weap_MP7A2_desert", // MP7A2 (Desert)
"rhsusf_weap_MP7A2_winter", // MP7A2 (Winter)
"rhsusf_weap_MP7A2" // MP7A2
];
GRLIB_arsenal_magazines = [
"rhs_fgm148_magazine_AT", // Javelin AT
"rhs_fgm172a_magazine_AT", // FGM172A SRAW
"rhs_fgm172b_magazine_MPV", // FGM172B SRAW-MPV
"rhs_fim92_mag", // FIM-92F
"rhs_LaserFCSMag", // Designator Batteries
"rhs_LaserMag_ai", // Designator Batteries
"rhs_LaserMag", // Designator Batteries
"rhs_mag_100Rnd_556x45_M855_cmag_mixed", // 100rnd C-Mag M855 (Mixed)
"rhs_mag_100Rnd_556x45_M855_cmag", // 100rnd C-Mag M855
"rhs_mag_100Rnd_556x45_M855A1_cmag_mixed", // 100rnd C-Mag M855A1 (Mixed)
"rhs_mag_100Rnd_556x45_M855A1_cmag", // 100rnd C-Mag M855A1
"rhs_mag_100Rnd_556x45_Mk262_cmag", // 100rnd C-Mag Mk262 Mod 1
"rhs_mag_100Rnd_556x45_Mk318_cmag", // 100rnd C-Mag Mk262 Mod 0
"rhs_mag_20Rnd_556x45_M193_2MAG_Stanag", // 20rnd STANAG (2x) M193
"rhs_mag_20Rnd_556x45_M193_Stanag", // 20rnd STANAG M193
"rhs_mag_20Rnd_556x45_M196_2MAG_Stanag_Tracer_Red", // 20rnd STANAG (2x) M196 (Tracer)
"rhs_mag_20Rnd_556x45_M196_Stanag_Tracer_Red", // 20rnd STANAG M196 (Tracer)
"rhs_mag_20Rnd_556x45_M200_Stanag", // 20rnd STANAG M200 (Blank)
"rhs_mag_20Rnd_556x45_M855_Stanag", // 20rnd STANAG M855
"rhs_mag_20Rnd_556x45_M855A1_Stanag", // 20rnd STANAG M855A1
"rhs_mag_20Rnd_556x45_Mk262_Stanag", // 20rnd STANAG Mk262 Mod 1
"rhs_mag_20Rnd_SCAR_762x51_m118_special", // 20rnd SCAR M118 Ball
"rhs_mag_20Rnd_SCAR_762x51_m61_ap", // 20rnd SCAR M61 AP
"rhs_mag_20Rnd_SCAR_762x51_m62_tracer", // 20rnd SCAR M62 (Tracer)
"rhs_mag_20Rnd_SCAR_762x51_m80_ball", // 20rnd SCAR M80
"rhs_mag_20Rnd_SCAR_762x51_m80a1_epr", // 20rnd SCAR M80A1 EPR
"rhs_mag_20Rnd_SCAR_762x51_mk316_special", // 20rnd SCAR Mk316 Mod 0
"rhs_mag_30Rnd_556x45_M193_Stanag", // 30rnd STANAG M193
"rhs_mag_30Rnd_556x45_M196_Stanag_Tracer_Red", // 30rnd STANAG M196 (Tracer)
"rhs_mag_30Rnd_556x45_M200_Stanag", // 30rnd STANAG M200 (Blank)
"rhs_mag_30Rnd_556x45_M855_PMAG_Tan_Tracer_Red", // 30rnd PMAG M856 (Tracer)
"rhs_mag_30Rnd_556x45_M855_PMAG_Tan", // 30rnd PMAG M855
"rhs_mag_30Rnd_556x45_M855_PMAG_Tracer_Red", // 30rnd PMAG M856 (Tracer)
"rhs_mag_30Rnd_556x45_M855_PMAG", // 30rnd PMAG M855
"rhs_mag_30Rnd_556x45_M855_Stanag_Pull_Tracer_Red", // 30rnd STANAG (Puller) M856 (Tracer)
"rhs_mag_30Rnd_556x45_M855_Stanag_Pull", // 30rnd STANAG (Puller) M855
"rhs_mag_30Rnd_556x45_M855_Stanag_Ranger_Tracer_Red", // 30rnd STANAG (Ranger) M856 (Tracer)
"rhs_mag_30Rnd_556x45_M855_Stanag_Ranger", // 30rnd STANAG (Ranger) M855
"rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Red", // 30rnd STANAG M856 (Tracer)
"rhs_mag_30Rnd_556x45_M855_Stanag", // 30rnd STANAG M855
"rhs_mag_30Rnd_556x45_M855A1_EPM_Pull_Tracer_Red", // 30rnd EPM (Puller) M855A1 (Tracer)
"rhs_mag_30Rnd_556x45_M855A1_EPM_Pull", // 30rnd EPM (Puller) M855A1
"rhs_mag_30Rnd_556x45_M855A1_EPM_Ranger_Tracer_Red", // 30rnd EPM (Ranger) M855A1 (Tracer)
"rhs_mag_30Rnd_556x45_M855A1_EPM_Ranger", // 30rnd EPM (Ranger) M855A1
"rhs_mag_30Rnd_556x45_M855A1_EPM_Tracer_Red", // 30rnd EPM M855A1 (Tracer)
"rhs_mag_30Rnd_556x45_M855A1_EPM", // 30rnd EPM M855A1
"rhs_mag_30Rnd_556x45_M855A1_PMAG_Tan_Tracer_Red", // 30rnd PMAG M856A1 (Tracer)
"rhs_mag_30Rnd_556x45_M855A1_PMAG_Tan", // 30rnd PMAG M855A1
"rhs_mag_30Rnd_556x45_M855A1_PMAG_Tracer_Red", // 30rnd PMAG M856A1 (Tracer)
"rhs_mag_30Rnd_556x45_M855A1_PMAG", // 30rnd PMAG M855A1
"rhs_mag_30Rnd_556x45_M855A1_Stanag_Pull_Tracer_Red", // 30rnd STANAG (Puller) M856A1 (Tracer)
"rhs_mag_30Rnd_556x45_M855A1_Stanag_Pull", // 30rnd STANAG (Puller) M855A1
"rhs_mag_30Rnd_556x45_M855A1_Stanag_Ranger_Tracer_Red", // 30rnd STANAG (Ranger) M856A1 (Tracer)
"rhs_mag_30Rnd_556x45_M855A1_Stanag_Ranger", // 30rnd STANAG (Ranger) M855A1
"rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Red", // 30rnd STANAG M856A1 (Tracer)
"rhs_mag_30Rnd_556x45_M855A1_Stanag", // 30rnd STANAG M855A1
"rhs_mag_30Rnd_556x45_Mk262_PMAG_Tan", // 30rnd PMAG Mk262 Mod 1
"rhs_mag_30Rnd_556x45_Mk262_PMAG", // 30rnd PMAG Mk262 Mod 1
"rhs_mag_30Rnd_556x45_Mk262_Stanag_Pull", // 30rnd STANAG (Puller) Mk262 Mod 1
"rhs_mag_30Rnd_556x45_Mk262_Stanag_Ranger", // 30rnd STANAG (Ranger) Mk262 Mod 1
"rhs_mag_30Rnd_556x45_Mk262_Stanag", // 30rnd STANAG Mk262 Mod 1
"rhs_mag_30Rnd_556x45_Mk318_PMAG_Tan", // 30rnd PMAG Mk318 Mod 0
"rhs_mag_30Rnd_556x45_Mk318_PMAG", // 30rnd PMAG Mk318 Mod 0
"rhs_mag_30Rnd_556x45_Mk318_SCAR_Pull", // 30rnd SCAR (Puller) Mk318 Mod 0
"rhs_mag_30Rnd_556x45_Mk318_SCAR_Ranger", // 30rnd SCAR (Ranger) Mk318 Mod 0
"rhs_mag_30Rnd_556x45_Mk318_SCAR", // 30rnd SCAR Mk318 Mod 0
"rhs_mag_30Rnd_556x45_Mk318_Stanag_Pull", // 30rnd STANAG (Puller) Mk318 Mod 0
"rhs_mag_30Rnd_556x45_Mk318_Stanag_Ranger", // 30rnd STANAG (Ranger) Mk318 Mod 0
"rhs_mag_30Rnd_556x45_Mk318_Stanag", // 30rnd STANAG Mk318 Mod 0
"rhs_mag_an_m14_th3", // AN-M14 TH3 Invendenary Grenade
"rhs_mag_an_m8hc", // AN-M8HC White Smooke
"rhs_mag_m18_green", // M18 Green Smoke Grenade
"rhs_mag_m18_purple", // M18 Purple Smoke Grenade
"rhs_mag_m18_red", // M18 Red Smoke Grenade
"rhs_mag_m18_yellow", // M18 Yellow Smoke Grenade
"rhs_mag_M397_HET", // M397 HET Grenade Round
"rhs_mag_m4009", // GL Stun Grenade Round
"rhs_mag_M433_HEDP", // M433 HEDP Grenade Round
"rhs_mag_M441_HE", // M441 HE Grenade Round
"rhs_mag_m576", // M576 Buckshot Round
"rhs_mag_M585_white", // M585 White Flare Round
"rhs_mag_m661_green", // M661 Green Flare Round
"rhs_mag_m662_red", // M662 Red Flare Round
"rhs_mag_m67", // M67 Fragmentation Grenade
"rhs_mag_m69", // M69 Practice Grenade
"rhs_mag_m713_Red", // M713 Red Smoke Round
"rhs_mag_m714_White", // M714 White Smoke Round
"rhs_mag_m715_Green", // M715 Green Smoke Round
"rhs_mag_m716_yellow", // M716 Yellow Smoke Round
"rhs_mag_M781_Practice", // M781 Practice Round
"rhs_mag_m7a3_cs", // M7A3 CS Gas Grenade
"rhs_mag_maaws_HE", // FFV441 HE
"rhs_mag_maaws_HEAT", // FFV751 HEAT
"rhs_mag_maaws_HEDP", // FFV502 HEDP
"rhs_mag_mk3a2", // MK3A2 Concussion Grenade
"rhs_mag_mk84", // M84 Stun Grenade
"rhs_mag_six12_slug", // Six-12 Slug
"rhs_mag_smaw_HEAA", // Mk.6 HEAA
"rhs_mag_smaw_HEDP", // Mk.3 HEDP
"rhs_mag_smaw_SR", // Mk.217 Spotting
"rhs_mine_M19_mag", // M19
"rhsusf_100Rnd_556x45_M200_soft_pouch_coyote", // 100rnd M249 Softpack M855
"rhsusf_100Rnd_556x45_M200_soft_pouch_ucp", // 100rnd M249 Softpack M200
"rhsusf_100Rnd_556x45_M200_soft_pouch", // 100rnd M249 Softpack M200
"rhsusf_100Rnd_556x45_M855_mixed_soft_pouch_coyote", // 100rnd M249 Softpack M855 (Mixed)
"rhsusf_100Rnd_556x45_M855_mixed_soft_pouch_ucp", // 100rnd M249 Softpack M855 (Mixed)
"rhsusf_100Rnd_556x45_M855_mixed_soft_pouch", // 100rnd M249 Softpack M855 (Mixed)
"rhsusf_100Rnd_556x45_M855_soft_pouch_coyote", // 100rnd M249 Softpack M855
"rhsusf_100Rnd_556x45_M855_soft_pouch_ucp", // 100rnd M249 Softpack M855
"rhsusf_100Rnd_556x45_M855_soft_pouch", // 100rnd M249 Softpack M855
"rhsusf_100Rnd_556x45_mixed_soft_pouch_coyote", // 100rnd M249 Softpack M855A1 (Mixed)
"rhsusf_100Rnd_556x45_mixed_soft_pouch_ucp", // 100rnd M249 Softpack M855A1 (Mixed)
"rhsusf_100Rnd_556x45_mixed_soft_pouch", // 100rnd M249 Softpack M855A1 (Mixed)
"rhsusf_100Rnd_556x45_soft_pouch_coyote", // 100rnd M249 Softpack M855A1
"rhsusf_100Rnd_556x45_soft_pouch_ucp", // 100rnd M249 Softpack M855A1
"rhsusf_100Rnd_556x45_soft_pouch", // 100rnd M249 Softpack M855A1
"rhsusf_100Rnd_762x51_m61_ap", // 100rnd M240 Box M61 AP
"rhsusf_100Rnd_762x51_m62_tracer", // 100rnd M240 Box M62 (Tracer)
"rhsusf_100Rnd_762x51_m80a1epr", // 100rnd M240 Box M80A1 EPR
"rhsusf_100Rnd_762x51_m82_blank", // 100rnd M240 Box M82 (Blank)
"rhsusf_100Rnd_762x51", // 100rnd M240 Box M80
"rhsusf_10Rnd_762x51_m118_special_Mag", // 10rnd AICS M118
"rhsusf_10Rnd_762x51_m62_Mag", // 10rnd AICS M62 (Tracer)
"rhsusf_10Rnd_762x51_m993_Mag", // 10rnd AICS M993 AP
"rhsusf_200Rnd_556x45_box", // 200rnd M249 Box M855A1
"rhsusf_200rnd_556x45_M855_box", // 200rnd M249 Box M855
"rhsusf_200rnd_556x45_M855_mixed_box", // 200rnd M249 Box M855 (Mixed)
"rhsusf_200Rnd_556x45_M855_mixed_soft_pouch_coyote", // 200rnd M249 Softpack M855 (Mixed)
"rhsusf_200Rnd_556x45_M855_mixed_soft_pouch_ucp", // 200rnd M249 Softpack M855 (Mixed)
"rhsusf_200Rnd_556x45_M855_mixed_soft_pouch", // 200rnd M249 Softpack M855 (Mixed)
"rhsusf_200Rnd_556x45_M855_soft_pouch_coyote", // 200rnd M249 Softpack M855
"rhsusf_200Rnd_556x45_M855_soft_pouch_ucp", // 200rnd M249 Softpack M855
"rhsusf_200Rnd_556x45_M855_soft_pouch", // 200rnd M249 Softpack M855
"rhsusf_200rnd_556x45_mixed_box", // 200rnd M249 Box M855A1 (Mixed)
"rhsusf_200Rnd_556x45_mixed_soft_pouch_coyote", // 200rnd M249 Softpack M855A1 (Mixed)
"rhsusf_200Rnd_556x45_mixed_soft_pouch_ucp", // 200rnd M249 Softpack M855A1 (Mixed)
"rhsusf_200Rnd_556x45_mixed_soft_pouch", // 200rnd M249 Softpack M855A1 (Mixed)
"rhsusf_200Rnd_556x45_soft_pouch_coyote", // 200rnd M249 Softpack M855A1
"rhsusf_200Rnd_556x45_soft_pouch_ucp", // 200rnd M249 Softpack M855A1
"rhsusf_200Rnd_556x45_soft_pouch", // 200rnd M249 Softpack M855A1
"rhsusf_20Rnd_762x51_m118_special_Mag", // 20rnd M14 M118
"rhsusf_20Rnd_762x51_m62_Mag", // 20rnd M14 M62 (Tracer)
"rhsusf_20Rnd_762x51_m993_Mag", // 20rnd M14 M993AP
"rhsusf_20Rnd_762x51_SR25_m118_special_Mag", // 20rnd SR-25 M118
"rhsusf_20Rnd_762x51_SR25_m62_Mag", // 20rnd SR-25 M62 (Tracer)
"rhsusf_20Rnd_762x51_SR25_m993_Mag", // 20rnd SR-25 M993 AP
"rhsusf_20Rnd_762x51_SR25_mk316_special_Mag", // 20rnd SR-25 Mk316 Mod 0
"rhsusf_50Rnd_762x51_m61_ap", // 50rnd M240 Softpack M61 AP
"rhsusf_50Rnd_762x51_m62_tracer", // 50rnd M240 Softpack M62 (Tracer)
"rhsusf_50Rnd_762x51_m80a1epr", // 50rnd M240 Softpack M80A1 EPR
"rhsusf_50Rnd_762x51_m82_blank", // 50rnd M240 Belt M82 (Blank)
"rhsusf_50Rnd_762x51", // 50rnd M240 Softpack M80
"rhsusf_5Rnd_00Buck", // 5Rnd .00 Buckshot
"rhsusf_5Rnd_300winmag_xm2010", // 5Rnd .300WM Mk248 MOD 1
"rhsusf_5Rnd_762x51_AICS_m118_special_Mag", // 5Rnd AICS M118
"rhsusf_5Rnd_762x51_AICS_m62_Mag", // 5Rnd AICS M62 (Tracer)
"rhsusf_5Rnd_762x51_AICS_m993_Mag", // 5Rnd AICS M993 AP
"rhsusf_5Rnd_762x51_m118_special_Mag", // 5Rnd M118
"rhsusf_5Rnd_762x51_m62_Mag", // 5Rnd M62 (Tracer)
"rhsusf_5Rnd_762x51_m993_Mag", // 5Rnd M993 AP
"rhsusf_5Rnd_FRAG", // 5Rnd 12g FRAG
"rhsusf_5Rnd_HE", // 5Rnd 12g HE-EP
"rhsusf_5Rnd_Slug", // 5Rnd 12g Slug
"rhsusf_8Rnd_00Buck", // 8Rnd .00 Buckshot
"rhsusf_8Rnd_FRAG", // 8Rnd 12g FRAG
"rhsusf_8Rnd_HE", // 8Rnd 12g HE-EP
"rhsusf_8Rnd_Slug", // 8Rnd 12g Slug
"rhsusf_m112_mag", // M112
"rhsusf_m112x4_mag", // M112 (x4)
"rhsusf_mag_10Rnd_STD_50BMG_M33", // 10rnd M107 M33
"rhsusf_mag_10Rnd_STD_50BMG_mk211", // 10rnd M107 Mk211
"rhsusf_mag_15Rnd_9x19_FMJ", // 15rnd M9 M882 FMJ
"rhsusf_mag_15Rnd_9x19_JHP", // 15rnd M9 Mk243 JHP
"rhsusf_mag_17Rnd_9x19_FMJ", // 17rnd Glock M882 FMJ
"rhsusf_mag_17Rnd_9x19_JHP", // 17rnd Glock Mk243 JHP
"rhsusf_mag_40Rnd_46x30_AP", // 40rnd MP7 SX AP
"rhsusf_mag_40Rnd_46x30_FMJ", // 40rnd MP7 SX FMJ
"rhsusf_mag_40Rnd_46x30_JHP", // 40rnd MP7 SX JHP
"rhsusf_mag_6Rnd_M397_HET", // 6rnd M397 HET Grenades
"rhsusf_mag_6Rnd_m4009", // 6rnd. GL Stun Grenade Round
"rhsusf_mag_6Rnd_M433_HEDP", // 6rnd M433 HEDP Grenades
"rhsusf_mag_6Rnd_M441_HE", // 6rnd M441 HE Grenade Rounds
"rhsusf_mag_6Rnd_M576_Buckshot", // 6rnd. M576 Buckshot Round
"rhsusf_mag_6Rnd_M585_white", // 6rnd. M585 White Flare Round
"rhsusf_mag_6Rnd_m661_green", // 6rnd. M661 Green Flare Round
"rhsusf_mag_6Rnd_m662_red", // 6rnd. M662 Red Flare Round
"rhsusf_mag_6Rnd_M713_red", // 6rnd. M713 Red Smoke Round
"rhsusf_mag_6Rnd_M714_white", // 6rnd. M714 White Smoke Round
"rhsusf_mag_6Rnd_M715_green", // 6rnd. M715 Green Smoke Round
"rhsusf_mag_6Rnd_M716_yellow", // 6rnd. M716 Yellow Smoke Round
"rhsusf_mag_6Rnd_M781_Practice", // 6rnd. M751 Practice Round
"rhsusf_mag_7x45acp_MHP", // 7rnd M1911 HP
"rhsusf_mine_m14_mag", // M14
"rhsusf_mine_m49a1_10m_mag", // M49A1 (10m)
"rhsusf_mine_m49a1_3m_mag", // M49A1 (3m)
"rhsusf_mine_m49a1_6m_mag", // M49A1 (6m)
// Vanilla Standard Grenades & Explosives
"APERSBoundingMine_Range_Mag", // APERS Bounding Mine
"APERSMine_Range_Mag", // APERS Mine
"APERSMineDispenser_Mag", // APERS Mine Dispenser
"APERSTripMine_Wire_Mag", // APERS Tripwire Mine
"ATMine_Range_Mag", // AT Mine
"B_IR_Grenade", // IR Grenade [NATO]
"Chemlight_blue", // Chemlight (Blue)
"Chemlight_green", // Chemlight (Green)
"Chemlight_red", // Chemlight (Red)
"Chemlight_yellow", // Chemlight (Yellow)
"ClaymoreDirectionalMine_Remote_Mag", // Claymore Charge
"DemoCharge_Remote_Mag", // Explosive Charge
"Drone_Range_Mag_dummy", // AT Mine
"Drone_Range_Mag", // AT Mine
"IEDLandBig_Remote_Mag", // Large IED (Dug-in)
"IEDLandSmall_Remote_Mag", // Small IED (Dug-in)
"IEDUrbanBig_Remote_Mag", // Large IED (Urban)
"IEDUrbanSmall_Remote_Mag", // Small IED (Urban)
"SatchelCharge_Remote_Mag", // Explosive Satchel
"SLAMDirectionalMine_Wire_Mag", // M6 SLAM Mine
"TrainingMine_Mag" // Training Mine
];
GRLIB_arsenal_items = [
// Uniforms
"rhs_uniform_abu", // Airman Battle Uniform
"rhs_uniform_acu_ocp", // Army Combat Uniform (OCP)
"rhs_uniform_acu_oefcp", // Army Combat Uniform (OEF-CP)
"rhs_uniform_acu_ucp", // Army Combat Uniform (UCP)
"rhs_uniform_acu_ucpd", // Army Combat Uniform (UCP-D)
"rhs_uniform_bdu_erdl", // Battle Dress Uniform (ERDL)
"rhs_uniform_cu_ocp_101st", // Combat Uniform OCP (101st Airborne Div.)
"rhs_uniform_cu_ocp_10th", // Combat Uniform OCP (10th Mountain Div.)
"rhs_uniform_cu_ocp_1stcav", // Combat Uniform OCP (1st Cavalry Div.)
"rhs_uniform_cu_ocp_82nd", // Combat Uniform OCP (82nd Airborne Div.)
"rhs_uniform_cu_ocp", // Combat Uniform OCP
"rhs_uniform_cu_ucp_101st", // Combat Uniform UCP (101st Airborne Div.)
"rhs_uniform_cu_ucp_10th", // Combat Uniform UCP (10th Mountain Div.)
"rhs_uniform_cu_ucp_1stcav", // Combat Uniform UCP (1st Cavalry Div.)
"rhs_uniform_cu_ucp_82nd", // Combat Uniform UCP (82nd Airborne Div.)
"rhs_uniform_cu_ucp", // Combat Uniform UCP
"rhs_uniform_FROG01_d", // FROG MARPAT-D
"rhs_uniform_FROG01_wd", // FROG MARPAT-WD
"rhs_uniform_g3_aor2", // G3 Uniform (AOR2)
"rhs_uniform_g3_blk", // G3 Uniform (Black)
"rhs_uniform_g3_m81", // G3 Uniform (M81)
"rhs_uniform_g3_mc", // G3 Uniform (Multicam)
"rhs_uniform_g3_rgr", // G3 Uniform (Ranger Green)
"rhs_uniform_g3_tan", // G3 Uniform (Tan)
// Headgear
"rhs_8point_marpatd", // Utility Cap MARPAT-D
"rhs_8point_marpatwd", // Utility Cap MARPAT-WD
"rhs_Booniehat_m81", // Booniehat M81
"rhs_Booniehat_ocp", // Booniehat OEF-CP
"rhs_Booniehat_ucp", // Booniehat UCP
"rhs_booniehat2_marpatd", // Booniehat MARPAT-D
"rhs_booniehat2_marpatwd", // Booniehat MARPAT-WD
"RHS_jetpilot_usaf", // Jet Pilot Helmet
"rhs_xmas_antlers", // Christmas Antlers
"rhsusf_ach_bare_des_ess", // ACH (Desert/ESS)
"rhsusf_ach_bare_des_headset_ess", // ACH (Desert/Headset/ESS)
"rhsusf_ach_bare_des_headset", // ACH (Desert/Headset)
"rhsusf_ach_bare_des", // ACH (Desert)
"rhsusf_ach_bare_ess", // ACH (ESS)
"rhsusf_ach_bare_headset_ess", // ACH (Headset/ESS)
"rhsusf_ach_bare_headset", // ACH (Headset)
"rhsusf_ach_bare_semi_ess", // ACH (Semi-Arid/ESS)
"rhsusf_ach_bare_semi_headset_ess", // ACH (Semi-Arid/Headset/ESS)
"rhsusf_ach_bare_semi_headset", // ACH (Semi-Arid/Headset)
"rhsusf_ach_bare_semi", // ACH (Semi-Arid)
"rhsusf_ach_bare_tan_ess", // ACH (Tan/ESS)
"rhsusf_ach_bare_tan_headset_ess", // ACH (Tan/Headset/ESS)
"rhsusf_ach_bare_tan_headset", // ACH (Tan/Headset)
"rhsusf_ach_bare_tan", // ACH (Tan)
"rhsusf_ach_bare_wood_ess", // ACH (Woodland/ESS)
"rhsusf_ach_bare_wood_headset_ess", // ACH (Woodland/Headset/ESS)
"rhsusf_ach_bare_wood_headset", // ACH (Woodland/Headset)
"rhsusf_ach_bare_wood", // ACH (Woodland)
"rhsusf_ach_bare", // ACH
"rhsusf_ach_helmet_camo_ocp", // ACH OEF-CP (Netting)
"rhsusf_ach_helmet_DCU_early_rhino", // ACH DCU (Early/Rhino)
"rhsusf_ach_helmet_DCU_early", // ACH DCU (Early)
"rhsusf_ach_helmet_DCU", // ACH DCU
"rhsusf_ach_helmet_ESS_ocp_alt", // ACH OEF-CP (ESS/Alt)
"rhsusf_ach_helmet_ESS_ocp", // ACH OEF-CP (ESS)
"rhsusf_ach_helmet_ESS_ucp_alt", // ACH UCP (ESS/Alt)
"rhsusf_ach_helmet_ESS_ucp", // ACH UCP (ESS)
"rhsusf_ach_helmet_headset_ess_ocp_alt", // ACH OEF-CP (Headset/ESS/Alt)
"rhsusf_ach_helmet_headset_ess_ocp", // ACH OEF-CP (Headset/ESS)
"rhsusf_ach_helmet_headset_ess_ucp_alt", // ACH UCP (Headset/ESS/Alt)
"rhsusf_ach_helmet_headset_ess_ucp", // ACH UCP (Headset/ESS)
"rhsusf_ach_helmet_headset_ocp_alt", // ACH OEF-CP (Headset/Alt)
"rhsusf_ach_helmet_headset_ocp", // ACH OEF-CP (Headset)
"rhsusf_ach_helmet_headset_ucp_alt", // ACH UCP (Headset/Alt)
"rhsusf_ach_helmet_headset_ucp", // ACH UCP (Headset)
"rhsusf_ach_helmet_M81", // ACH M81
"rhsusf_ach_helmet_ocp_alt", // ACH OEF-CP (Alt)
"rhsusf_ach_helmet_ocp_norotos", // ACH OEF-CP (Norotos)
"rhsusf_ach_helmet_ocp", // ACH OEF-CP
"rhsusf_ach_helmet_ucp_alt", // ACH UCP (Alt)
"rhsusf_ach_helmet_ucp_norotos", // ACH UCP (Norotos)
"rhsusf_ach_helmet_ucp", // ACH UCP
"rhsusf_bowman_cap", // Bowman Elite II (Cap)
"rhsusf_Bowman", // Bowman Elite II
"rhsusf_cvc_alt_helmet", // ACVC-H, MK-1697 (Tan/Alt.)
"rhsusf_cvc_ess", // ACVC-H, MK-1697 (Tan/ESS)
"rhsusf_cvc_green_alt_helmet", // ACVC-H, MK-1697 (Alt.)
"rhsusf_cvc_green_ess", // ACVC-H, MK-1697 (ESS)
"rhsusf_cvc_green_helmet", // ACVC-H, MK-1697
"rhsusf_cvc_helmet", // ACVC-H, MK-1697 (Tan)
"rhsusf_hgu56p_black", // HGU-56/P (Black)
"rhsusf_hgu56p_green", // HGU-56/P (Green)
"rhsusf_hgu56p_mask_black_skull", // HGU-56/P (Black/Mask/Skull)
"rhsusf_hgu56p_mask_black", // HGU-56/P (Black/Mask)
"rhsusf_hgu56p_mask_green_mo", // HGU-56/P (Green/Mask/Mo)
"rhsusf_hgu56p_mask_green", // HGU-56/P (Green/Mask)
"rhsusf_hgu56p_mask_mo", // HGU-56/P (Olive/Mask/Mo)
"rhsusf_hgu56p_mask_pink", // HGU-56/P (Pink/Mask)
"rhsusf_hgu56p_mask_saf", // HGU-56/P (SAF/Mask)
"rhsusf_hgu56p_mask_skull", // HGU-56/P (Olive/Mask/Skull)
"rhsusf_hgu56p_mask_smiley", // HGU-56/P (Smiley/Mask)
"rhsusf_hgu56p_mask_tan", // HGU-56/P (Tan/Mask)
"rhsusf_hgu56p_mask", // HGU-56/P (Olive/Mask)
"rhsusf_hgu56p_pink", // HGU-56/P (Pink)
"rhsusf_hgu56p_saf", // HGU-56/P (SAF)
"rhsusf_hgu56p_tan", // HGU-56/P (Tan)
"rhsusf_hgu56p_usa", // HGU-56/P (USA)
"rhsusf_hgu56p_visor_black", // HGU-56/P (Black/Visor)
"rhsusf_hgu56p_visor_green", // HGU-56/P (Green/Visor)
"rhsusf_hgu56p_visor_mask_black_skull", // HGU-56/P (Black/Visor/Mask/Skull)
"rhsusf_hgu56p_visor_mask_black", // HGU-56/P (Black/Visor/Mask)
"rhsusf_hgu56p_visor_mask_Empire_black", // HGU-56/P (Black/Visor/Mask/Empire)
"rhsusf_hgu56p_visor_mask_green_mo", // HGU-56/P (Green/Visor/Mask/Mo)
"rhsusf_hgu56p_visor_mask_green", // HGU-56/P (Green/Visor/Mask)
"rhsusf_hgu56p_visor_mask_mo", // HGU-56/P (Olive/Visor/Mask/Mo)
"rhsusf_hgu56p_visor_mask_pink", // HGU-56/P (Pink/Visor/Mask)
"rhsusf_hgu56p_visor_mask_saf", // HGU-56/P (SAF/Visor/Mask)
"rhsusf_hgu56p_visor_mask_skull", // HGU-56/P (Olive/Visor/Mask/Skull)
"rhsusf_hgu56p_visor_mask_smiley", // HGU-56/P (Smiley/Visor/Mask)
"rhsusf_hgu56p_visor_mask_tan", // HGU-56/P (Tan/Visor/Mask)
"rhsusf_hgu56p_visor_mask", // HGU-56/P (Olive/Visor/Mask)
"rhsusf_hgu56p_visor_pink", // HGU-56/P (Pink/Visor)
"rhsusf_hgu56p_visor_saf", // HGU-56/P (SAF/Visor)
"rhsusf_hgu56p_visor_tan", // HGU-56/P (Tan/Visor)
"rhsusf_hgu56p_visor_usa", // HGU-56/P (USA/Visor)
"rhsusf_hgu56p_visor_white", // HGU-56/P (White/Visor)
"rhsusf_hgu56p_visor", // HGU-56/P (Olive/Visor)
"rhsusf_hgu56p_white", // HGU-56/P (White)
"rhsusf_hgu56p", // HGU-56/P (Olive)
"rhsusf_ihadss", // IHADSS
"rhsusf_lwh_helmet_M1942", // LWH M1942
"rhsusf_lwh_helmet_marpatd_ess", // LWH MARPAT-D (ESS)
"rhsusf_lwh_helmet_marpatd_headset", // LWH MARPAT-D (Headset/ESS)
"rhsusf_lwh_helmet_marpatd", // LWH MARPAT-D
"rhsusf_lwh_helmet_marpatwd_blk_ess", // LWH MARPAT-WD (Black ESS)
"rhsusf_lwh_helmet_marpatwd_ess", // LWH MARPAT-WD (Tan ESS)
"rhsusf_lwh_helmet_marpatwd_headset_blk", // LWH MARPAT-WD (Headset/Black ESS)
"rhsusf_lwh_helmet_marpatwd_headset_blk2", // LWH MARPAT-WD (Headset)
"rhsusf_lwh_helmet_marpatwd_headset", // LWH MARPAT-WD (Headset/Tan ESS)
"rhsusf_lwh_helmet_marpatwd", // LWH MARPAT-WD
"rhsusf_mich_bare_alt_semi", // MICH 2000 (Semi-Arid/Alt)
"rhsusf_mich_bare_alt_tan", // MICH 2000 (Tan/Alt)
"rhsusf_mich_bare_alt", // MICH 2000 (Alt)
"rhsusf_mich_bare_headset", // MICH 2000 (Headset)
"rhsusf_mich_bare_norotos_alt_headset", // MICH 2000 (Norotos/Alt/Headset)
"rhsusf_mich_bare_norotos_alt_semi_headset", // MICH 2000 (Semi-Arid/Norotos/Alt/Headset)
"rhsusf_mich_bare_norotos_alt_semi", // MICH 2000 (Semi-Arid/Norotos/Alt)
"rhsusf_mich_bare_norotos_alt_tan_headset", // MICH 2000 (Tan/Norotos/Alt/Headset)
"rhsusf_mich_bare_norotos_alt_tan", // MICH 2000 (Tan/Norotos/Alt)
"rhsusf_mich_bare_norotos_alt", // MICH 2000 (Norotos/Alt)
"rhsusf_mich_bare_norotos_arc_alt_headset", // MICH 2000 (Norotos/ARC/Alt/Headset)
"rhsusf_mich_bare_norotos_arc_alt_semi_headset", // MICH 2000 (Semi-Arid/Norotos/ARC/Alt/Headset)
"rhsusf_mich_bare_norotos_arc_alt_semi", // MICH 2000 (Semi-Arid/Norotos/ARC/Alt)
"rhsusf_mich_bare_norotos_arc_alt_tan_headset", // MICH 2000 (Tan/Norotos/ARC/Alt/Headset)
"rhsusf_mich_bare_norotos_arc_alt_tan", // MICH 2000 (Tan/Norotos/ARC/Alt)
"rhsusf_mich_bare_norotos_arc_alt", // MICH 2000 (Norotos/ARC/Alt)
"rhsusf_mich_bare_norotos_arc_headset", // MICH 2000 (Norotos/ARC/Headset)
"rhsusf_mich_bare_norotos_arc_semi_headset", // MICH 2000 (Semi-Arid/Norotos/ARC/Headset)
"rhsusf_mich_bare_norotos_arc_semi", // MICH 2000 (Semi-Arid/Norotos/ARC)
"rhsusf_mich_bare_norotos_arc_tan", // MICH 2000 (Tan/Norotos/ARC)
"rhsusf_mich_bare_norotos_arc", // MICH 2000 (Norotos/ARC)
"rhsusf_mich_bare_norotos_headset", // MICH 2000 (Norotos/Headset)
"rhsusf_mich_bare_norotos_semi_headset", // MICH 2000 (Semi-Arid/Norotos/Headset)
"rhsusf_mich_bare_norotos_semi", // MICH 2000 (Semi-Arid/Norotos)
"rhsusf_mich_bare_norotos_tan_headset", // MICH 2000 (Tan/Norotos/Headset)
"rhsusf_mich_bare_norotos_tan", // MICH 2000 (Tan/Norotos)
"rhsusf_mich_bare_norotos", // MICH 2000 (Norotos)
"rhsusf_mich_bare_semi_headset", // MICH 2000 (Semi-Arid/Headset)
"rhsusf_mich_bare_semi", // MICH 2000 (Semi-Arid)
"rhsusf_mich_bare_tan_headset", // MICH 2000 (Tan/Headset)
"rhsusf_mich_bare_tan", // MICH 2000 (Tan)
"rhsusf_mich_bare", // MICH 2000
"rhsusf_mich_helmet_marpatd_alt_headset", // MICH 2000 MARPAD-D (Alt/Headset)
"rhsusf_mich_helmet_marpatd_alt", // MICH 2000 MARPAD-D (Alt)
"rhsusf_mich_helmet_marpatd_headset", // MICH 2000 MARPAD-D (Headset)
"rhsusf_mich_helmet_marpatd_norotos_arc_headset", // MICH 2000 MARPAD-D (Norotos/ARC/Headset)
"rhsusf_mich_helmet_marpatd_norotos_arc", // MICH 2000 MARPAD-D (Norotos/ARC)
"rhsusf_mich_helmet_marpatd_norotos_headset", // MICH 2000 MARPAD-D (Norotos/Headset)
"rhsusf_mich_helmet_marpatd_norotos", // MICH 2000 MARPAD-D (Norotos)
"rhsusf_mich_helmet_marpatd", // MICH 2000 MARPAD-D
"rhsusf_mich_helmet_marpatwd_alt_headset", // MICH 2000 MARPAD-WD (Alt/Headset)
"rhsusf_mich_helmet_marpatwd_alt", // MICH 2000 MARPAD-WD (Alt)
"rhsusf_mich_helmet_marpatwd_headset", // MICH 2000 MARPAD-WD (Headset)
"rhsusf_mich_helmet_marpatwd_norotos_arc_headset", // MICH 2000 MARPAD-WD (Norotos/ARC/Headset)
"rhsusf_mich_helmet_marpatwd_norotos_arc", // MICH 2000 MARPAD-WD (Norotos/ARC)
"rhsusf_mich_helmet_marpatwd_norotos_headset", // MICH 2000 MARPAD-WD (Norotos/Headset)
"rhsusf_mich_helmet_marpatwd_norotos", // MICH 2000 MARPAD-WD (Norotos)
"rhsusf_mich_helmet_marpatwd", // MICH 2000 MARPAD-WD
"rhsusf_opscore_aor1_pelt_nsw", // FAST Ballistic (AOR1/Headset/NSW)
"rhsusf_opscore_aor1_pelt", // FAST Ballistic (AOR1/Headset)
"rhsusf_opscore_aor1", // FAST Ballistic (AOR1)
"rhsusf_opscore_aor2_pelt_nsw", // FAST Ballistic (AOR2/Headset/NSW)
"rhsusf_opscore_aor2_pelt", // FAST Ballistic (AOR2/Headset)
"rhsusf_opscore_aor2", // FAST Ballistic (AOR2)
"rhsusf_opscore_bk_pelt", // FAST Ballistic (Black/Headset)
"rhsusf_opscore_bk", // FAST Ballistic (Black)
"rhsusf_opscore_coy_cover_pelt", // FAST Ballistic (Coyote Cover/Headset/NSW)
"rhsusf_opscore_coy_cover", // FAST Ballistic (Coyote Cover)
"rhsusf_opscore_fg_pelt_cam", // FAST Ballistic (Foliage Green/Headset/Cam)
"rhsusf_opscore_fg_pelt_nsw", // FAST Ballistic (Foliage Green/Headset/NSW)
"rhsusf_opscore_fg_pelt", // FAST Ballistic (Foliage Green/Headset)
"rhsusf_opscore_fg", // FAST Ballistic (Foliage Green)
"rhsusf_opscore_mar_fg_pelt", // FAST Maritime (Foliage Green/Headset)
"rhsusf_opscore_mar_fg", // FAST Maritime (Foliage Green)
"rhsusf_opscore_mar_ut_pelt", // FAST Maritime (Urban Tan/Headset)
"rhsusf_opscore_mar_ut", // FAST Maritime (Urban Tan)
"rhsusf_opscore_mc_cover_pelt_cam", // FAST Ballistic (Multicam Cover/Headset/NSW/Cam)
"rhsusf_opscore_mc_cover_pelt_nsw", // FAST Ballistic (Multicam Cover/Headset/NSW)
"rhsusf_opscore_mc_cover_pelt", // FAST Ballistic (Multicam Cover/Headset)
"rhsusf_opscore_mc_cover", // FAST Ballistic (Multicam Cover)
"rhsusf_opscore_mc_pelt_nsw", // FAST Ballistic (Multicam Paint/Headset/NSW)
"rhsusf_opscore_mc_pelt", // FAST Ballistic (Multicam Paint/Headset)
"rhsusf_opscore_mc", // FAST Ballistic (Multicam Paint)
"rhsusf_opscore_paint_pelt_nsw_cam", // FAST Ballistic (Paint/Headset/NSW/Cam)
"rhsusf_opscore_paint_pelt_nsw", // FAST Ballistic (Paint/Headset/NSW)
"rhsusf_opscore_paint_pelt", // FAST Ballistic (Paint/Headset)
"rhsusf_opscore_paint", // FAST Ballistic (Paint)
"rhsusf_opscore_rg_cover_pelt", // FAST Ballistic (Ranger Green Cover/Headset/NSW)
"rhsusf_opscore_rg_cover", // FAST Ballistic (Ranger Green Cover)
"rhsusf_opscore_ut_pelt_cam", // FAST Ballistic (Urban Tan/Headset/Cam)
"rhsusf_opscore_ut_pelt_nsw_cam", // FAST Ballistic (Urban Tan/Headset/NSW/Cam)
"rhsusf_opscore_ut_pelt_nsw", // FAST Ballistic (Urban Tan/Headset/NSW)
"rhsusf_opscore_ut_pelt", // FAST Ballistic (Urban Tan/Headset)
"rhsusf_opscore_ut", // FAST Ballistic (Urban Tan)
"rhsusf_patrolcap_ocp", // Patrol Cap OEF-CP
"rhsusf_patrolcap_ucp", // Patrol Cap UCP
"rhsusf_protech_helmet_ess", // Pro-Tech SF (ESS)
"rhsusf_protech_helmet_rhino_ess", // Pro-Tech SF (Rhino/ESS)
"rhsusf_protech_helmet_rhino", // Pro-Tech SF (Rhino)
"rhsusf_protech_helmet", // Pro-Tech SF
// Facegear
"rhs_ess_black", // Ballistic Goggles (Black)
"rhs_googles_black", // Ballistic Glasses (Black)
"rhs_googles_clear", // Ballistic Glasses (Clear)
"rhs_googles_orange", // Ballistic Glasses (Clear)
"rhs_googles_yellow", // Ballistic Glasses (Clear)
"rhsusf_oakley_goggles_blk", // SI Ballistic 2.0 (Black)
"rhsusf_oakley_goggles_clr", // SI Ballistic 2.0 (Clear)
"rhsusf_oakley_goggles_ylw", // SI Ballistic 2.0 (Yellow)
"rhsusf_shemagh_gogg_grn", // Shemagh w/ Goggles (Green)
"rhsusf_shemagh_gogg_od", // Shemagh w/ Goggles (OD)
"rhsusf_shemagh_gogg_tan", // Shemagh w/ Goggles (Tan)
"rhsusf_shemagh_gogg_white", // Shemagh w/ Goggles (White)
"rhsusf_shemagh_grn", // Shemagh (Green)
"rhsusf_shemagh_od", // Shemagh (OD)
"rhsusf_shemagh_tan", // Shemagh (Tan)
"rhsusf_shemagh_white", // Shemagh (White)
"rhsusf_shemagh2_gogg_grn", // Shemagh w/ Goggles (Green/alt)
"rhsusf_shemagh2_gogg_od", // Shemagh w/ Goggles (OD/alt)
"rhsusf_shemagh2_gogg_tan", // Shemagh w/ Goggles (Tan/alt)
"rhsusf_shemagh2_gogg_white", // Shemagh w/ Goggles (White/alt)
"rhsusf_shemagh2_grn", // Shemagh (Green/alt)
"rhsusf_shemagh2_od", // Shemagh (OD/alt)
"rhsusf_shemagh2_tan", // Shemagh (Tan/alt)
"rhsusf_shemagh2_white", // Shemagh (White/alt)
// Vests
"rhsusf_iotv_ocp_Grenadier", // IOTV (Grenadier/OEF-CP)
"rhsusf_iotv_ocp_Medic", // IOTV (Medic/OEF-CP)
"rhsusf_iotv_ocp_Repair", // IOTV (Repair/OEF-CP)
"rhsusf_iotv_ocp_Rifleman", // IOTV (Rifleman/OEF-CP)
"rhsusf_iotv_ocp_SAW", // IOTV (SAW/OCP)
"rhsusf_iotv_ocp_Squadleader", // IOTV (Squadleader/OCP)
"rhsusf_iotv_ocp_Teamleader", // IOTV (Teamleader/OCP)
"rhsusf_iotv_ocp", // IOTV (OEF-CP)
"rhsusf_iotv_ucp_Grenadier", // IOTV (Grenadier/UCP)
"rhsusf_iotv_ucp_Medic", // IOTV (Medic/UCP)
"rhsusf_iotv_ucp_Repair", // IOTV (Repair/UCP)
"rhsusf_iotv_ucp_Rifleman", // IOTV (Rifleman/UCP)
"rhsusf_iotv_ucp_SAW", // IOTV (SAW/UCP)
"rhsusf_iotv_ucp_Squadleader", // IOTV (Squadleader/UCP)
"rhsusf_iotv_ucp_Teamleader", // IOTV (Teamleader/UCP)
"rhsusf_iotv_ucp", // IOTV (UCP)
"rhsusf_mbav_grenadier", // MBAV (Grenadier)
"rhsusf_mbav_light", // MBAV (Light)
"rhsusf_mbav_medic", // MBAV (Medic)
"rhsusf_mbav_mg", // MBAV (Machinegunner)
"rhsusf_mbav_rifleman", // MBAV (Rifleman)
"rhsusf_mbav", // MBAV
"rhsusf_plateframe_grenadier", // Plateframe (Grenadier)
"rhsusf_plateframe_light", // Plateframe (Light)
"rhsusf_plateframe_machinegunner", // Plateframe (Machinegunner)
"rhsusf_plateframe_marksman", // Plateframe (Marksman)
"rhsusf_plateframe_medic", // Plateframe (Medic)
"rhsusf_plateframe_rifleman", // Plateframe (Rifleman)
"rhsusf_plateframe_sapi", // Plateframe
"rhsusf_plateframe_teamleader", // Plateframe (Teamleader)
"rhsusf_spc_corpsman", // SPC (Corpsman)
"rhsusf_spc_crewman", // SPC (Crewman)
"rhsusf_spc_iar", // SPC (IAR)
"rhsusf_spc_light", // SPC (Light)
"rhsusf_spc_marksman", // SPC (Marksman)
"rhsusf_spc_mg", // SPC (Machinegunner)
"rhsusf_spc_patchless_radio", // SPC (Patchless/Radio)
"rhsusf_spc_patchless", // SPC (Patchless)
"rhsusf_spc_rifleman", // SPC (Rifleman)
"rhsusf_spc_sniper", // SPC (Scout Sniper)
"rhsusf_spc_squadleader", // SPC (Squadleader)
"rhsusf_spc_teamleader", // SPC (Teamleader)
"rhsusf_spc", // SPC
"rhsusf_spcs_ocp_crewman", // SPCS (Crewman/OEF-CP)
"rhsusf_spcs_ocp_grenadier", // SPCS (Grenadier/OEF-CP)
"rhsusf_spcs_ocp_machinegunner", // SPCS (Machinegunner/OEF-CP)
"rhsusf_spcs_ocp_medic", // SPCS (Medic/OEF-CP)
"rhsusf_spcs_ocp_rifleman_alt", // SPCS (Rifleman Alt/OEF-CP)
"rhsusf_spcs_ocp_rifleman", // SPCS (Rifleman/OEF-CP)
"rhsusf_spcs_ocp_saw", // SPCS (SAW/OEF-CP)
"rhsusf_spcs_ocp_sniper", // SPCS (Sniper/OEF-CP)
"rhsusf_spcs_ocp_squadleader", // SPCS (Squad leader/OEF-CP)
"rhsusf_spcs_ocp_teamleader_alt", // SPCS (Team Leader Alt/OEF-CP)
"rhsusf_spcs_ocp_teamleader", // SPCS (Team Leader/OEF-CP)
"rhsusf_spcs_ocp", // SPCS (OEF-CP)
"rhsusf_spcs_ucp_crewman", // SPCS (Crewman/UCP)
"rhsusf_spcs_ucp_grenadier", // SPCS (Grenadier/UCP)
"rhsusf_spcs_ucp_machinegunner", // SPCS (Machinegunner/UCP)
"rhsusf_spcs_ucp_medic", // SPCS (Medic/UCP)
"rhsusf_spcs_ucp_rifleman_alt", // SPCS (Rifleman Alt/UCP)
"rhsusf_spcs_ucp_rifleman", // SPCS (Rifleman/UCP)
"rhsusf_spcs_ucp_saw", // SPCS (SAW/UCP)
"rhsusf_spcs_ucp_sniper", // SPCS (Sniper/UCP)
"rhsusf_spcs_ucp_squadleader", // SPCS (Squad Leader/UCP)
"rhsusf_spcs_ucp_teamleader_alt", // SPCS (Team Leader Alt/UCP)
"rhsusf_spcs_ucp_teamleader", // SPCS (Team Leader/UCP)
"rhsusf_spcs_ucp", // SPCS (UCP)
// Items
"rhs_acc_at4_handler", // AT-4 Peep hole handler
"rhs_optic_maaws", // M3 MAAWS sight
"rhs_weap_optic_smaw", // SMAW sight
"rhsusf_acc_aac_762sd_silencer", // AAC 762-SD
"rhsusf_acc_aac_762sdn6_silencer", // AAC 762-SDN-6
"rhsusf_acc_aac_scarh_silencer", // AAC SCAR-H SD
"rhsusf_acc_ACOG_anpvs27", // M150 RCO + AN/PVS-27
"rhsusf_acc_ACOG_d", // TA31RCO (Desert)
"rhsusf_acc_ACOG_MDO", // SU-260/P (MOD)
"rhsusf_acc_ACOG_RMR", // TA31RCO-RMR
"rhsusf_acc_ACOG_USMC", // AN/PVQ-31A RCO
"rhsusf_acc_ACOG_wd", // TA31RCO (Woodland)
"rhsusf_acc_ACOG", // M150 RCO
"rhsusf_acc_ACOG2_USMC", // AN/PVQ-31A (ARD)
"rhsusf_acc_ACOG2", // M150 RCO (ARD)
"rhsusf_acc_ACOG3_USMC", // AN/PVQ-31A (ARD/Lens Cover)
"rhsusf_acc_ACOG3", // M150 RCO (ARD/Lens Cover)
"rhsusf_acc_anpas13gv1", // AN/PAS-13G(V)1
"rhsusf_acc_anpeq15_bk_light", // AN/PEQ-15/M952V Black (Light)
"rhsusf_acc_anpeq15_bk_top", // AN/PEQ-15 Black (Top)
"rhsusf_acc_anpeq15_bk", // AN/PEQ-15/M952V Black (Laser)
"rhsusf_acc_anpeq15_light", // AN/PEQ-15/M952V (Light)
"rhsusf_acc_anpeq15_top", // AN/PEQ-15 (Top)
"rhsusf_acc_anpeq15_wmx_light", // AN/PEQ-15 + WMX (light)
"rhsusf_acc_anpeq15_wmx", // AN/PEQ-15 + WMX (laser)
"rhsusf_acc_anpeq15", // AN/PEQ-15/M952V (Laser)
"rhsusf_acc_anpeq15A", // AN/PEQ-15A
"rhsusf_acc_anpeq15side_bk", // AN/PEQ-15 Black
"rhsusf_acc_anpeq15side", // AN/PEQ-15
"rhsusf_acc_anpeq16a_light_top", // AN/PEQ-16A (Top/Light)
"rhsusf_acc_anpeq16a_light", // AN/PEQ-16A (Light)
"rhsusf_acc_anpeq16a_top", // AN/PEQ-16A (Top/Laser)
"rhsusf_acc_anpeq16a", // AN/PEQ-16A (Laser)
"rhsusf_acc_anpvs27", // AN/PVS-27
"rhsusf_acc_ARDEC_M240", // ARDEC 4-Prong
"rhsusf_acc_compm4", // M68 CCO
"rhsusf_acc_ELCAN_ard", // M145 MGO (ARD)
"rhsusf_acc_ELCAN", // M145 MGO
"rhsusf_acc_eotech_552_d", // M552 CCO (Desert)
"rhsusf_acc_eotech_552_wd", // M552 CCO (Woodland)
"rhsusf_acc_eotech_552", // M552 CCO
"rhsusf_acc_eotech_xps3", // XPS3
"rhsusf_acc_EOTECH", // EXPS3
"rhsusf_acc_g33_T1", // G33 + SU-278/PVS
"rhsusf_acc_g33_xps3_tan", // G33 + XPS3 (Tan)
"rhsusf_acc_g33_xps3", // G33 + XPS3
"rhsusf_acc_grip1", // Grip Pod
"rhsusf_acc_grip2_tan", // AFG Grip (Tan)
"rhsusf_acc_grip2_wd", // AFG Grip (Woodland)
"rhsusf_acc_grip2", // AFG Grip
"rhsusf_acc_grip3_tan", // TD Vertical Grip (Tan)
"rhsusf_acc_grip3", // TD Vertical Grip
"rhsusf_acc_grip4_bipod", // SAW Grip & Bipod
"rhsusf_acc_grip4", // SAW Grip
"rhsusf_acc_harris_bipod", // Harris Bipod
"rhsusf_acc_harris_swivel", // Harris Bipod
"rhsusf_acc_kac_grip_saw_bipod", // KAC Grip & SAW Bipod
"rhsusf_acc_kac_grip", // KAC Vertical Grip
"rhsusf_acc_LEUPOLDMK4_2_d", // Mk. 4 M5 (Desert)
"rhsusf_acc_LEUPOLDMK4_2_mrds", // Mk. 4 M5 (MRDS)
"rhsusf_acc_LEUPOLDMK4_2", // Mk. 4 ER/T 6.5-20x M5
"rhsusf_acc_LEUPOLDMK4_d", // Mk. 4 M3 (Desert)
"rhsusf_acc_LEUPOLDMK4_wd", // Mk. 4 M3 (Woodland)
"rhsusf_acc_LEUPOLDMK4", // Mk. 4 ER/T 3.5-10x M3
"rhsusf_acc_M2010S_d", // TiTan (Desert)
"rhsusf_acc_M2010S_sa", // TiTan (Semi-Arid)
"rhsusf_acc_M2010S_wd", // TiTan (Woodland)
"rhsusf_acc_M2010S", // TiTan
"rhsusf_acc_m24_muzzlehider_black", // M24 150X. Flash Hider
"rhsusf_acc_m24_muzzlehider_d", // M24 150X. Flash Hider (Desert)
"rhsusf_acc_m24_muzzlehider_wd", // M24 150X. Flash Hider (Woodland)
"rhsusf_acc_m24_silencer_black", // M24 Suppressor
"rhsusf_acc_m24_silencer_d", // M24 Suppressor (Desert)
"rhsusf_acc_m24_silencer_wd", // M24 Suppressor (Woodland)
"rhsusf_acc_M2A1", // M2A1 GL Sight
"rhsusf_acc_M8541_low_d", // M8541 (low mount/Desert)
"rhsusf_acc_M8541_low_wd", // M8541 (low mount/Woodland)
"rhsusf_acc_M8541_low", // M8541 (low mount)
"rhsusf_acc_M8541_mrds", // M8541 (MRDS)
"rhsusf_acc_M8541", // M8541
"rhsusf_acc_M952V", // M952V
"rhsusf_acc_mrds_c", // MRDS Coyote
"rhsusf_acc_mrds_fwd_c", // MRDS Coyote (Forward)
"rhsusf_acc_mrds_fwd", // MRDS (Forward)
"rhsusf_acc_mrds", // MRDS
"rhsusf_acc_nt4_black", // NT4 QDSS (Black)
"rhsusf_acc_nt4_tan", // NT4 QDSS (Tan)
"rhsusf_acc_omega9k", // SILENCERCO OMEGA 9K
"rhsusf_acc_premier_anpvs27", // M8541A + AN/PVS-27
"rhsusf_acc_premier_low", // M8541A (low mount)
"rhsusf_acc_premier_mrds", // M8541A SSDS (MRDS)
"rhsusf_acc_premier", // M8541A SSDS
"rhsusf_acc_RM05_fwd", // RM05 RMR LT726 (Forward)
"rhsusf_acc_RM05", // RM05 RMR LT726
"rhsusf_acc_rotex_mp7_aor1", // Rotex-II (AOR1)
"rhsusf_acc_rotex_mp7_desert", // Rotex-II (Desert)
"rhsusf_acc_rotex_mp7_winter", // Rotex-II (Winter)
"rhsusf_acc_rotex_mp7", // Rotex-II (Black)
"rhsusf_acc_rotex5_grey", // Rotex-5 (Grey)
"rhsusf_acc_rotex5_tan", // Rotex-5 (Tan)
"rhsusf_acc_rvg_blk", // RVG Grip (Black)
"rhsusf_acc_rvg_de", // RVG Grip (Dark Earth)
"rhsusf_acc_RX01_NoFilter_tan", // RX01 Tan (w/o Filter)
"rhsusf_acc_RX01_NoFilter", // RX01 (w/o Filter)
"rhsusf_acc_RX01_tan", // RX01 Reflex Tan
"rhsusf_acc_RX01", // RX01 Reflex
"rhsusf_acc_saw_bipod", // SAW Bipod
"rhsusf_acc_saw_lw_bipod", // SAW Improved Bipod
"rhsusf_acc_SF3P556", // SF3P-556-1/2-28
"rhsusf_acc_SFMB556", // SFMB-556-1/2-28
"rhsusf_acc_SR25S_d", // SR-25 Rifle Suppressor (Desert)
"rhsusf_acc_SR25S_wd", // SR-25 Rifle Suppressor (Woodland)
"rhsusf_acc_SR25S", // SR-25 Rifle Suppressor
"rhsusf_acc_su230_c", // SU-230/PVS Coyote
"rhsusf_acc_su230_mrds_c", // SU-230/PVS MRDS Coyote
"rhsusf_acc_su230_mrds", // SU-230/PVS MRDS
"rhsusf_acc_su230", // SU-230/PVS
"rhsusf_acc_su230a_c", // SU-230A/PVS Coyote
"rhsusf_acc_su230a_mrds_c", // SU-230A/PVS MRDS Coyote
"rhsusf_acc_su230a_mrds", // SU-230A/PVS MRDS
"rhsusf_acc_su230a", // SU-230A/PVS
"rhsusf_acc_T1_high", // SU-278/PVS LT660
"rhsusf_acc_T1_low_fwd", // SU-278/PVS LT661 (Forward)
"rhsusf_acc_T1_low", // SU-278/PVS LT661
"rhsusf_acc_tacsac_blk", // Tac-Sac Grip (Black)
"rhsusf_acc_tacsac_blue", // Tac-Sac Grip (Blue)
"rhsusf_acc_tacsac_tan", // Tac-Sac Grip (Tan)
"rhsusf_acc_tdstubby_blk", // TD Stubby Grip (Black)
"rhsusf_acc_tdstubby_tan", // TD Stubby Grip (Tan)
"rhsusf_acc_wmx_bk", // WMX Flashlight (Black)
"rhsusf_acc_wmx", // WMX Flashlight
"rhsusf_ANPVS_14", // AN/PVS-14
"rhsusf_ANPVS_15", // AN/PVS-15
"rhsusf_bino_leopold_mk4", // M151 Spotting Scope
"rhsusf_bino_lerca_1200_black", // Lecra 1200 Rangefinder (Black)
"rhsusf_bino_lerca_1200_tan", // Lecra 1200 Rangefinder (Tan)
"rhsusf_bino_lrf_Vector21", // Vecrot 21-B
"rhsusf_bino_m24_ARD", // M24 Binoculars (ARD)
"rhsusf_bino_m24", // M24 Binoculars
"rhsusf_Rhino", // Rhino mount
// Vanilla Standard Items
"acc_flashlight_pistol", // Pistol Flashlight
"B_UavTerminal", // UAV Terminal [NATO]
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"G_B_Diving", // Diving Goggles [NATO]
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Medikit", // Medikit
"MineDetector", // Mine Detector
"ToolKit", // Toolkit
"U_B_FullGhillie_ard", // Full Ghillie (Arid) [NATO]
"U_B_FullGhillie_lsh", // Full Ghillie (Lush) [NATO]
"U_B_FullGhillie_sard", // Full Ghillie (Semi-Arid) [NATO]
"U_B_HeliPilotCoveralls", // Heli Pilot Coveralls [NATO]
"U_B_PilotCoveralls", // Pilot Coveralls [NATO]
"U_B_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [NATO]
"U_B_Wetsuit", // Wetsuit [NATO]
"V_RebreatherB", // Rebreather [NATO]
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
// TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_rhsusf_B_BACKPACK", // Eagle A-III OCP (Raven)
"rhsusf_assault_eagleaiii_coy", // Eagle A-III Coyote
"rhsusf_assault_eagleaiii_ocp", // Eagle A-III OEF-CP
"rhsusf_assault_eagleaiii_ucp", // Eagle A-III UCP
"rhsusf_eject_Parachute_backpack", // Static Parachute Bag
"rhsusf_falconii_coy", // Falcon-II Coyote
"rhsusf_falconii_mc", // Falcon-II MC
"rhsusf_falconii", // Falcon-II RGR
// Standard Vanilla Backpacks
"B_Carryall_cbr", // Carryall Backpack (Coyote)
"B_Carryall_khk", // Carryall Backpack (Khaki)
"B_Carryall_oli", // Carryall Backpack (Olive)
"B_FieldPack_cbr", // Field Pack (Coyote)
"B_FieldPack_khk", // Field Pack (Khaki)
"B_FieldPack_oli", // Field Pack (Olive)
"B_Kitbag_cbr", // Kitbag (Coyote)
"B_Kitbag_rgr", // Kitbag (Green)
"B_Kitbag_tan", // Kitbag (Tan)
"B_Parachute", // Steerable Parachute
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anarc164", // AN/ARC-164
"tf_anarc210", // AN/ARC-210
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_anprc155", // AN/PRC 155
"tf_bussole", // Assault Pack Bussole
"tf_mr3000_multicam", // MR3000 Multicam
"tf_mr3000_rhs", // MR3000 RHS
"tf_mr3000", // MR3000
"tf_mr6000l", // MR6000L
"tf_rt1523g_big_rhs", // RT-1523G (ASIP) Big RHS
"tf_rt1523g_big", // RT-1523G (ASIP) Big
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_fabric", // RT-1523G (ASIP) Fabric
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_rhs", // RT-1523G (ASIP) RHS
"tf_rt1523g_sage", // RT-1523G (ASIP) Sage
"tf_rt1523g" // RT-1523G (ASIP)
];

View File

@@ -0,0 +1,502 @@
/*
Swedish Forces Pack Arsenal Preset
Last Update: 2020-05-03
Needed:
- SFP: Swedish Forces Pack - https://steamcommunity.com/sharedfiles/filedetails/?id=826911897
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
"sfp_20Rnd_762x51_ak4", // Ak 4C
"sfp_ag90_base", // Ag 90B
"sfp_ak4_m203", // Ak 4 M203
"sfp_ak4", // Ak 4
"sfp_ak4b_m203", // Ak 4B M203
"sfp_ak4b", // Ak 4B
"sfp_ak4d", // Ak 4D
"sfp_ak5_m203", // Ak 5 M203
"sfp_ak5_snow", // Ak 5 (Snow)
"sfp_ak5", // Ak 5
"sfp_ak5b", // Ak 5B
"sfp_ak5c_alt", // Ak 5C (Alt)
"sfp_ak5c_blk", // Ak 5C (Alt/Black)
"sfp_ak5c_m203_blk", // Ak 5C M203 (Black)
"sfp_ak5c_m203", // Ak 5C M203
"sfp_ak5c", // Ak 5C
"sfp_ak5d", // Ak 5D
"sfp_ak5dmk2", // Ak 5D Mk2
"sfp_cbj_ms", // CBJ MS
"sfp_cga5p", // CGA 5P
"sfp_flashlight", // Flashlight 3
"sfp_g36c", // G36C
"sfp_grg48", // GRG m/48
"sfp_grg86", // GRG m/86
"sfp_imgint_1010", // Image Intensifier 1010
"sfp_kpistm45", // K-pist m/45
"sfp_kpistm45b", // K-pist m/45B
"sfp_ksp58", // Ksp 59B
"sfp_ksp58B2", // Ksp 59B2
"sfp_ksp90b", // Ksp 90B
"sfp_ksp90c", // Ksp 90C
"sfp_mp5_rail", // MP5 Rail
"sfp_mp5", // MP5
"sfp_p226", // P226 9 mm
"sfp_p88", // Pistol 88 9 mm
"sfp_psg90_base", // Psg 90
"sfp_psg90_camo", // Psg 90 (Camo)
"sfp_pskott68_loaded", // Pansarskott m/68 (Miniman)
"sfp_pskott86_loaded", // Pansarskott m/86
"sfp_rb57_loaded", // Robot 57
"sfp_rbs69", // RBS 69 (Redeye)
"sfp_remington870", // Remington 870
"sfp_reminton870_chrome", // Remington 870 (Chrome)
"sfp_reminton870_wood_blue", // Remington 870 (Wood/Chrome)
"sfp_reminton870_wood_chrome", // Remington 870 (Wood/Blue)
"sfp_signpist50" // Signalpistol 80 (Flare)
];
GRLIB_arsenal_magazines = [
"sfp_100Rnd_762x51_ksp58", // 7.62mm 100Rnd
"sfp_10Rnd_127x99_ag90", // 12.7mm 10Rnd Ag90 Mag
"sfp_12Gauge_8rd_Pellets", // 12 Gauge 8 Rnd Buckshopt
"sfp_12Gauge_8rd_Slug", // 12 Gauge 8 Rnd Slug
"sfp_15Rnd_9x19_Mag", // 9mm 15Rnd P226 Mag
"sfp_17Rnd_9x19_Mag", // 9mm 17Rnd Pistol88 Mag
"sfp_1rnd_lyspatron7_mag", // 1Rnd Flare Mag
"sfp_200Rnd_556x45_ksp90_irtracer", // 5.56mm 200Rnd Box IR-Tracers
"sfp_200Rnd_556x45_ksp90", // 5.56mm 200Rnd Box
"sfp_20Rnd_762x51_ak4_ap", // 7.62mm 20nd AP
"sfp_20Rnd_762x51_ak4_ap", // 7.62mm 20Rnd AP
"sfp_20Rnd_762x51_ak4_irtracer", // 7.62mm 20nd IR-Tracer
"sfp_20Rnd_762x51_ak4_irtracer", // 7.62mm 20Rnd IR-Tracer
"sfp_20Rnd_762x51_ak4_tracer", // 7.62mm 20nd Tracer
"sfp_20Rnd_762x51_ak4_tracer", // 7.62mm 20Rnd Tracer
"sfp_20Rnd_762x51_ak4", // 7.62mm 20nd Ball
"sfp_20Rnd_762x51_ak4", // 7.62mm 20Rnd Ball
"sfp_249Rnd_762x51_ksp58", // 7.62mm 249Rnd
"sfp_30Rnd_556x45_Stanag_g36", // 5.56mm 30Rnd Ball (G36)
"sfp_30Rnd_556x45_Stanag_irtracer_plastic", // 5.56mm 30Rnd IR-Tracer (Plastic)
"sfp_30Rnd_556x45_Stanag_irtracer", // 5.56mm 30Rnd IR-Tracer
"sfp_30Rnd_556x45_Stanag_plastic", // 5.56mm 30Rnd Ball (Playtic)
"sfp_30Rnd_556x45_Stanag_tracer_plastic", // 5.56mm 30Rnd Tracer (Plastic)
"sfp_30Rnd_556x45_Stanag_tracer", // 5.56mm 30Rnd Tracer
"sfp_30Rnd_556x45_Stanag", // 5.56mm 30Rnd Ball
"sfp_30Rnd_650x25mag_subsonic", // 6.5mm 30Rnd CBJ subsonic AP
"sfp_30Rnd_650x25mag", // 6.5mm 30Rnd CBJ Mag
"sfp_30Rnd_9mm_mp5_JHP", // 9mm 30Rnd MP5 Mag JHP
"sfp_30Rnd_9mm_mp5", // 9mm 30Rnd MP5 Mag FMJ
"sfp_36Rnd_9mm_kpistm45", // 9mm 36Rnd K-pist m/45 Mag
"sfp_50Rnd_762x51_ksp58_ap", // 7.62mm 49Rnd AP
"sfp_50Rnd_762x51_ksp58_irTracer", // 7.62mm 49Rnd IR-Tracer
"sfp_50Rnd_762x51_ksp58", // 7.62mm 49Rnd
"sfp_71Rnd_9mm_kpistm45", // 9mm 71Rnd K-pist m/45 Mag
"sfp_9Rnd_762x51_psg90_prick", // 7.62mm 9Rnd SLAP
"sfp_9Rnd_762x51_psg90_tracer", // 7.62mm 9Rnd Tracer
"sfp_9Rnd_762x51_psg90", // 7.62mm 9Rnd Ball
"sfp_FlashBang", // Flashbang
"sfp_frdnmina13_mag", // Mine (Fordonsmina 13)
"sfp_grg_he_mag", // Sgr m/86 (HE)
"sfp_grg_heat_62_mag", // Sgr m/62 (HEAT 62)
"sfp_grg_heat_66_mag", // Sgr m/66 (HEAT 66)
"sfp_grg_heat_mag", // Sgr m/75 (HEAT 75)
"sfp_grg_illum_mag", // Lysgr m/82 (Illumination)
"sfp_grg_smoke_mag", // Rokgr m/81 (Smoke)
"sfp_handgrenade_shgr07", // Shgr 07
"sfp_handgrenade_shgr2000", // Shgr 2000
"sfp_handgrenade_shgr56", // Shgr 56
"sfp_pskott68_mag", // Pskott 68 round
"sfp_pskott86_mag", // Pskott 81 round
"sfp_rb57_mag", // Rb 57 Missile
"sfp_rbs69_mag", // RBS 69
"sfp_riflegrenade_smoke_ak4", // Rifle Grenade (Smoke)
"sfp_sprdeg46_mag", // Spredeg 46 (Small Charge)
"sfp_strvm5_mag", // Mine (Stridyvagnsmina 5)
"sfp_strvm6_mag", // Mine (Stridyvagnsmina 6)
// Standard Vanilla Magazines, Grenades & Explosives
"1Rnd_HE_Grenade_shell", // 40 mm HE Grenade Round
"1Rnd_Smoke_Grenade_shell", // Smoke Round (White)
"1Rnd_SmokeBlue_Grenade_shell", // Smoke Round (Blue)
"1Rnd_SmokeGreen_Grenade_shell", // Smoke Round (Green)
"1Rnd_SmokeOrange_Grenade_shell", // Smoke Round (Orange)
"1Rnd_SmokePurple_Grenade_shell", // Smoke Round (Purple)
"1Rnd_SmokeRed_Grenade_shell", // Smoke Round (Red)
"1Rnd_SmokeYellow_Grenade_shell", // Smoke Round (Yellow)
"APERSBoundingMine_Range_Mag", // APERS Bounding Mine
"APERSMine_Range_Mag", // APERS Mine
"APERSMineDispenser_Mag", // APERS Mine Dispenser
"APERSTripMine_Wire_Mag", // APERS Tripwire Mine
"ATMine_Range_Mag", // AT Mine
"B_IR_Grenade", // IR Grenade [NATO]
"Chemlight_blue", // Chemlight (Blue)
"Chemlight_green", // Chemlight (Green)
"Chemlight_red", // Chemlight (Red)
"Chemlight_yellow", // Chemlight (Yellow)
"ClaymoreDirectionalMine_Remote_Mag", // Claymore Charge
"DemoCharge_Remote_Mag", // Explosive Charge
"Drone_Range_Mag_dummy", // AT Mine
"Drone_Range_Mag", // AT Mine
"HandGrenade", // RGO Grenade
"IEDLandBig_Remote_Mag", // Large IED (Dug-in)
"IEDLandSmall_Remote_Mag", // Small IED (Dug-in)
"IEDUrbanBig_Remote_Mag", // Large IED (Urban)
"IEDUrbanSmall_Remote_Mag", // Small IED (Urban)
"Laserbatteries", // Designator Batteries
"MiniGrenade", // RGN Grenade
"SatchelCharge_Remote_Mag", // Explosive Satchel
"SLAMDirectionalMine_Wire_Mag", // M6 SLAM Mine
"SmokeShell", // Smoke Grenade (White)
"SmokeShellBlue", // Smoke Grenade (Blue)
"SmokeShellGreen", // Smoke Grenade (Green)
"SmokeShellOrange", // Smoke Grenade (Orange)
"SmokeShellPurple", // Smoke Grenade (Purple)
"SmokeShellRed", // Smoke Grenade (Red)
"SmokeShellYellow", // Smoke Grenade (Yellow)
"TrainingMine_Mag", // Training Mine
"UGL_FlareCIR_F", // Flare Round (IR)
"UGL_FlareGreen_F", // Flare Round (Green)
"UGL_FlareRed_F", // Flare Round (Red)
"UGL_FlareWhite_F", // Flare Round (White)
"UGL_FlareYellow_F" // Flare Round (Yellow)
];
GRLIB_arsenal_items = [
// Uniforms
"sfp_drysuit", // Dry Suit
"sfp_ghillie_desert_uniform", // Ghillie suit (Desert)
"sfp_ghillie_uniform", // Ghillie suit
"sfp_m58w_uniform_alt1", // m58 Field uniform (Alternative)
"sfp_m58w_uniform", // m58 Fielduniform
"sfp_m59w_uniform_alt1", // m59 Fielduniform (Alternative)
"sfp_m59w_uniform", // m59 Fielduniform
"sfp_m69p_uniform_hood", // m69P Crew Uniform (Hood)
"sfp_m69p_uniform", // m69P Crew Uniform
"sfp_m87_flying_suit", // Flying Suit
"sfp_m90_rain", // m90 Fielduniform (Rain Cover)
"sfp_m90d_uniform_folded", // m90 TR BE Shirt (Short sleeve)
"sfp_m90d_uniform_fs18", // m90 TR BE Combatshirt 18
"sfp_m90d_uniform_long_m08", // m90 TR BE Shirt (Long sleeve)
"sfp_m90d_uniform_tshirt", // m90 TR BE Shirt T-shirt
"sfp_m90d_uniform_tucked_m08", // m90 TR BE Shirt (Tucked - Long sleeve)
"sfp_m90d_uniform", // m90 TR BE Fielduniform
"sfp_m90p_m90fj_uniform", // m90P Fielduniform (Alternative)
"sfp_m90p_uniform", // m90P Fielduniform
"sfp_m90s_uniform_sw", // M90S Uniform (Alt 1)
"sfp_m90s_uniform_ws", // M90S Uniform (Alt 2)
"sfp_m90s_uniform", // M90S Uniform
"sfp_m90w_uniform_boots_m08", // m90W Fielduniform (M08 Boots)
"sfp_m90w_uniform_dirty", // m90W Fielduniform (Dirty)
"sfp_m90w_uniform_folded", // m90 TR GR Shirt (Short sleeve)
"sfp_m90w_uniform_fs18", // m90 TR GR Combatshirt 18
"sfp_m90w_uniform_ksk90_modern", // m90W Fielduniform (Body armor 90 Velcro)
"sfp_m90w_uniform_ksk90", // m90W Fielduniform (Body armor 90)
"sfp_m90w_uniform_long_m08", // m90 TR GR Shirt (Long sleeve)
"sfp_m90w_uniform_m08", // m90W Fielduniform (M08 Jacket)
"sfp_m90w_uniform_modern", // m90W Fielduniform (Velcro)
"sfp_m90w_uniform_tshirt", // m90 TR GR T-shirt
"sfp_m90w_uniform_tucked_m08", // m90 TR GR Shirt (Tucked - Long sleeve)
"sfp_m90w_uniform", // m90W Fielduniform
"sfp_m93_naval", // M93 Naval Uniform
"sfp_sog_multicam_tan", // SOG Multicam (TAN)
"sfp_sog_multicam", // SOG Multicam
// Headgear
"sfp_adyk_beret", // Beret (Assault diver)
"sfp_amf_beret", // Beret (Amphibious)
"sfp_armor_beret", // Beret (Armor)
"sfp_army_beret", // Beret (Army)
"sfp_bashatt90", // Bashatt 90
"sfp_batmossa_m48", // Batmossa m48
"sfp_fjs_beret", // Beret (Para Ranger)
"sfp_flighthelmet116", // Flight Helmet 116
"sfp_headset", // Headset
"sfp_homeguard_beret", // Beret (Homeguard)
"sfp_i22_beret", // Beret (Mountain Ranger I22)
"sfp_k3_beret", // Beret (Airborne K3)
"sfp_k4_beret", // Beret (Norrland Ranger K4)
"sfp_ka2_beret", // Beret (Coastal Artillery KA2)
"sfp_ka3_beret", // Beret (Coastal Artillery KA3)
"sfp_kj_beret", // Beret (Coastal Ranger)
"sfp_lg_beret", // Beret (Livgardet Infantry)
"sfp_lgmp_beret", // Beret (Livgardet Cavalry (MP))
"sfp_m37w_helmet_cap1", // M37 Helmet (Net-Cap Down alt2)
"sfp_m37w_helmet_dok_camo", // M37 Helmet (Camo)
"sfp_m37w_helmet_dok", // M37 Helmet (Net-Cap up)
"sfp_m37w_helmet_dok2", // M37 Helmet (Net-Cap Down)
"sfp_m37w_helmet_dok3", // M37 Helmet (Net-Cap Down alt3)
"sfp_m37w_helmet_dok4", // M37 Helmet (Net-Cap Down alt4)
"sfp_m37w_helmet_mp", // M37 Helmet (MP)
"sfp_m37w_helmet_un", // M37 Helmet (UN)
"sfp_m37w_helmet", // M37 Helmet
"sfp_m59w_cap_alt", // Fieldcap m/59 (Alt)
"sfp_m59w_cap", // Fieldcap m/59
"sfp_m90beige_helmet_clean_headset_nvg_velcro", // M90 Operator (Tan Headset) Helmet
"sfp_m90beige_helmet_clean_nvg_velcro", // M90 Operator (Tan) Helmet
"sfp_m90beige_helmet_clean_peltor_nvg_velcro", // M90 Operator (Tan Comtacs) Helmet
"sfp_m90d_cap_isaf", // M90K Cap (ISAF)
"sfp_m90d_cap_peltor", // M90K Cap (Peltor)
"sfp_m90d_cap", // M90K Cap
"sfp_m90d_helmet_headset_nvg", // M90D Helmet (Headset NVG)
"sfp_m90d_helmet_headset", // M90D Helmet (Headset)
"sfp_m90d_helmet_nvg", // M90D Helmet (NVG)
"sfp_m90d_helmet_peltor_nvg", // M90D Helmet (Peltor NVG)
"sfp_m90d_helmet_peltor", // M90D Helmet (Peltor)
"sfp_m90d_helmet", // M90D Helmet
"sfp_m90green_helmet_clean_headset_nvg_velcro", // M90 Operator (Green Headset) Helmet
"sfp_m90green_helmet_clean_nvg", // M90 Operator (Green) Helmet
"sfp_m90green_helmet_clean_peltor_nvg_velcro", // M90 Operator (Green Peltor NGV Headset) Helmet
"sfp_m90green_helmet_clean", // M90 Clean Helmet
"sfp_m90s_helmet_headset_nvg", // M90S Helmet (Headset NVG)
"sfp_m90s_helmet_headset", // M90S Helmet (Headset)
"sfp_m90s_helmet_nvg", // M90S Helmet (NVG)
"sfp_m90s_helmet_peltor_nvg", // M90S Helmet (Peltor NVG)
"sfp_m90s_helmet_peltor", // M90S Helmet (Peltor)
"sfp_m90s_helmet", // M90S Helmet
"sfp_m90un_helmet_clean_tele", // M90 Clean Helmet (UN Crew)
"sfp_m90un_helmet_clean", // M90 Clean Helmet (UN)
"sfp_m90un_helmet_headset_nvg", // M90 UN Helmet (Headset NVG)
"sfp_m90un_helmet_headset", // M90 UN Helmet (Headset)
"sfp_m90un_helmet_nvg", // M90 UN Helmet (NVG)
"sfp_m90un_helmet_peltor_nvg", // M90 UN Helmet (Peltor NVG)
"sfp_m90un_helmet_peltor", // M90 UN Helmet (Peltor)
"sfp_m90un_helmet", // M90 UN Helmet
"sfp_m90w_booniehat", // M90W Boonie Hat
"sfp_m90w_cap_alt", // Fieldcap m/90 (Alt)
"sfp_m90w_cap", // Fieldcap m/90
"sfp_m90w_helmet_headset_nvg", // M90W Helmet (Headset NVG)
"sfp_m90w_helmet_headset", // M90W Helmet (Headset)
"sfp_m90w_helmet_nvg", // M90W Helmet (NVG)
"sfp_m90w_helmet_peltor_nvg", // M90W Helmet (Peltor NVG)
"sfp_m90w_helmet_peltor", // M90W Helmet (Peltor)
"sfp_m90w_helmet", // M90W Helmet
"sfp_ollesbrorsa_gray_alt", // Wool cap Gray alt (Olles Brorsa)
"sfp_ollesbrorsa_gray", // Wool cap Gray (Olles Brorsa)
"sfp_ollesbrorsa_green_alt", // Wool cap Green alt (Olles Brorsa)
"sfp_ollesbrorsa_green", // Wool cap Green (Olles Brorsa)
"sfp_peltor", // Peltor
"sfp_sf_beret", // Beret (SF)
"sfp_telehelmet_2", // Telehelmet 2
"sfp_un_beret", // Beret (UN)
"sfp_un_booniehat", // UN Boonie Hat
"sfp_wool_beanie_green", // Wool beanie (Modern)
// Facegear
"sfp_armband_blue", // Armband (Observer)
"sfp_armband_guard", // Armband (Guard)
"sfp_armband_instructor", // Armband (Instructor)
"sfp_armband_medic_white", // Armband (Medic White)
"sfp_armband_medic", // Armband (Medic)
"sfp_armband_mp_black", // Armband (MP Black)
"sfp_armband_mp_green", // Armband (MP Green)
"sfp_armband_mp", // Armband (MP)
"sfp_armband_white", // Armband (Opposing Force)
"sfp_dive_goggles_cyclop", // Diving cyclop
"sfp_skyddsmask90", // Gas mask
// Vests
"sfp_kroppskydd94_crew", // Kroppsskydd 94 (Crew)
"sfp_kroppskydd94_rifle1", // Kroppsskydd 94 (Rifle1)
"sfp_kroppskydd94_sv2k_rifle1_diaper", // Kroppsskydd 94 Sv2k (Rifle1 Groin)
"sfp_kroppskydd94_sv2k_rifle1", // Kroppsskydd 94 Sv2k (Rifle1)
"sfp_kroppsskydd12_crew", // Kroppsskydd 12 (Crew)
"sfp_kroppsskydd12_gl", // Kroppsskydd 12 (GL)
"sfp_kroppsskydd12_holster", // Kroppsskydd 12 (Holster)
"sfp_kroppsskydd12_medic", // Kroppsskydd 12 (Medic)
"sfp_kroppsskydd12_mg", // Kroppsskydd 12 (MG)
"sfp_kroppsskydd12_tl", // Kroppsskydd 12 (Teamleader)
"sfp_kroppsskydd12", // Kroppsskydd 12
"sfp_kroppsskydd94_un", // Kroppsskydd 94 (UN)
"sfp_kroppsskydd94", // Kroppsskydd 94
"sfp_rebreather_old", // Rebreather (Classic)
"sfp_stridsbalte_304k_ar", // Combat belt 304k (AR)
"sfp_stridsbalte_304k_extrabag", // Combat belt 304k (Alt)
"sfp_stridsbalte_304k_gl", // Combat belt 304k (GR)
"sfp_stridsbalte_304k_medic", // Combat belt 304k (Medic)
"sfp_stridsbalte_304k", // Combat belt 304k
"sfp_stridssele_extrabag", // Stridssele (Alt)
"sfp_stridssele_medic", // Stridssele (Medic)
"sfp_stridssele", // Stridssele
"sfp_stridsvast08", // Stridsvast 08
"sfp_stridsvast2000_ar", // Stridsvast 2000 (AR)
"sfp_stridsvast2000_gl", // Stridsvast 2000 (GL)
"sfp_stridsvast2000_light", // Stridsvast 2000 (Light)
"sfp_stridsvast2000_mg", // Stridsvast 2000 (MG)
"sfp_stridsvast2000", // Stridsvast 2000
"sfp_suicidebelt", // Martyrs vest
// Items
"sfp_muzzle_snds_cbj", // Sound suppressor (6.5 CBJ)
"sfp_optic_3x_aimpoint", // Aimpoint CS + 3x
"sfp_optic_aimpoint_t1", // Aimpoint T1
"sfp_optic_aimpoint", // Aimpoint CS
"sfp_optic_hensoldt_4x", // Hensoldt 4x
"sfp_optic_kikarsikte09_4x", // Kikarsikte 09
"sfp_optic_kikarsikte90b_10x", // Kikarsikte 90B (10x)
"sfp_optic_susat_4x", // SUSAT 4x
"sfp_tlr2", // TLR-2
// Vanilla Standard Items
"acc_flashlight_pistol", // Pistol Flashlight
"acc_flashlight", // Flashlight
"acc_pointer_IR", // IR Laser Pointer
"B_UavTerminal", // UAV Terminal [NATO]
"Binocular", // Binoculars
"bipod_01_F_blk", // Bipod (Black) [NATO]
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Laserdesignator_01_khk_F", // Laser Designator (Khaki)
"Laserdesignator_03", // Laser Designator (Olive)
"Laserdesignator", // Laser Designator (Sand)
"Medikit", // Medikit
"MineDetector", // Mine Detector
"muzzle_snds_B", // Sound Suppressor (7.62 mm)
"muzzle_snds_H_MG_blk_F", // Sound Suppressor MG
"muzzle_snds_L", // Sound Suppressor (9 mm)
"muzzle_snds_M", // Sound Suppressor (5.56 mm)
"NVGoggles_INDEP", // NV Goggles (Green)
"NVGoggles_OPFOR", // NV Goggles (Black)
"NVGoggles_tna_F", // NV Goggles (Tropic)
"NVGoggles", // NV Goggles (Brown)
"NVGogglesB_blk_F", // ENVG-II (Black)
"NVGogglesB_grn_F", // ENVG-II (Green)
"NVGogglesB_gry_F", // ENVG-II (Grey)
"Rangefinder", // Rangefinder
"sfp_dbal2", // Dbal 2
"ToolKit", // Toolkit
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
// TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"sfp_backpack_grg_loader", // GRG Loader (Backpack)
"sfp_backpack_lk35", // LK 35
"sfp_backpack_sjvv9", // Medic Bag
"sfp_backpack_stridssack08", // Combatbag 08
"sfp_backpack_stridssack2000", // Combat Bag 2000
"sfp_stridssele_backpack_grg", // Stridssele - Backpack (GRG)
"sfp_stridssele_backpack", // Stridssele - Backpack
// Standard Vanilla Backpacks
"B_Parachute", // Steerable Parachute
// Backpack Radios (that work with TFAR)
"sfp_lk35_ra145", // Ra 145 LK 35
"sfp_ra180", // Ra 180
"sfp_stridssack2000_ra_ksk12", // Ra 180 Rucksack 2k Krsk12
"sfp_stridssack2000_ra_ksk90", // Ra 180 Rucksack 2k Krsk90
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack" // Telescopic Ladder
];

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,255 @@
/*
AAF Arsenal Preset
Last Update: 2020-08-15
Needed:
- None
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
// Primary
"hgun_PDW2000_F", // PDW2000 9 mm
"arifle_Mk20_F", // Mk20 5.56 mm (Camo)
"arifle_Mk20_GL_F", // Mk20 EGLM 5.56 mm (Camo)
"arifle_Mk20C_F", // Mk20C 5.56 mm (Camo)
"srifle_GM6_F", // GM6 Lynx 12.7 mm
"srifle_EBR_F", // Mk18 ABR 7.62 mm
"arifle_SDAR_F", // SDAR 5.56 mm
"LMG_Mk200_F", // Mk200 6.5 mm
// Handgun
"hgun_ACPC2_F", // ACP-C2 .45 ACP
// Launcher
"launch_I_Titan_F", // Titan MPRL (Digital)
"launch_I_Titan_short_F", // Titan MPRL Compact (Olive)
"launch_NLAW_F", // PCML
"launch_MRAWS_olive_rail_F" // MAAWS Mk4 Mod 0 (Olive)
];
GRLIB_arsenal_magazines = [
];
GRLIB_arsenal_items = [
// Vanilla Standard Items
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Medikit", // Medikit
"MineDetector", // Mine Detector
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
// Faction Specific Items
"I_UavTerminal", // UAV Terminal [AAF]
"NVGoggles_INDEP", // NV Goggles (Green)
"Laserdesignator_03", // Laser Designator (Olive)
// Uniforms
"U_I_CombatUniform", // Combat Fatigues [AAF]
"U_I_CombatUniform_shortsleeve", // Combat Fatigues [AAF] (Rolled-up)
"U_I_OfficerUniform", // Combat Fatigues [AAF] (Officer)
"U_I_HeliPilotCoveralls", // Heli Pilot Coveralls [AAF]
"U_I_pilotCoveralls", // Pilot Coveralls [AAF]
"U_I_GhillieSuit", // Ghillie Suit [AAF]
"U_I_FullGhillie_ard", // Full Ghillie (Arid) [AAF]
"U_I_FullGhillie_sard", // Full Ghillie (Semi-Arid) [AAF]
"U_I_FullGhillie_lsh", // Full Ghillie (Lush) [AAF]
"U_I_Wetsuit", // Wetsuit [AAF]
"U_Tank_green_F", // Tanker Coveralls [AAF]
"U_I_CBRN_Suit_01_AAF_F", // CBRN Suit [AAF]
// Headgear
"H_HelmetIA", // Modular Helmet
"H_Beret_blk", // Beret (Black)
"H_Booniehat_dgtl", // Booniehat [AAF]
"H_Cap_blk_Raven", // Cap [AAF]
"H_MilCap_dgtl", // Military Cap [AAF]
"H_HelmetCrew_I", // Crew Helmet [AAF]
"H_PilotHelmetHeli_I", // Heli Pilot Helmet [AAF]
"H_CrewHelmetHeli_I", // Heli Crew Helmet [AAF]
"H_PilotHelmetFighter_I", // Pilot Helmet [AAF]
// Facegear
"G_Aviator", // Aviator Glasses
"G_Combat", // Combat Goggles
"G_I_Diving", // Diving Goggles [AAF]
"G_Lowprofile", // Low Profile Goggles
"G_Shades_Black", // Shades (Black)
"G_Shades_Blue", // Shades (Blue)
"G_Shades_Green", // Shades (Green)
"G_Shades_Red", // Shades (Red)
"G_Spectacles", // Spectacle Glasses
"G_Spectacles_Tinted", // Tinted Spectacles
"G_Squares_Tinted", // Square Shades
"G_Squares", // Square Spectacles
"G_AirPurifyingRespirator_01_F", // APR [NATO]
// Vests
"V_Chestrig_oli", // Chest Rig (Olive)
"V_PlateCarrierIAGL_dgtl", // GA Carrier GL Rig (Digital)
"V_PlateCarrierIA1_dgtl", // GA Carrier Lite (Digital)
"V_PlateCarrierIA2_dgtl", // GA Carrier Rig (Digital)
"V_RebreatherIA", // Rebreather [AAF]
"V_BandollierB_oli", // Slash Bandolier (Olive)
"V_TacVest_oli", // Tactical Vest (Olive)
"V_Safety_orange_F", // Safety Vest (Orange)
"V_Safety_yellow_F", // Safety Vest (Yellow)
"V_DeckCrew_red_F", // Deck Crew Vest (Red)
// Items
"acc_pointer_IR", // IR Laser Pointer
"acc_flashlight", // Flashlight
"acc_flashlight_pistol", // Pistol Flashlight
"muzzle_snds_acp", // Sound Suppressor (.45 ACP)
"optic_ACO_grn", // ACO (Green)
"optic_Holosight_smg", // Mk17 Holosight SMG
"optic_MRCO", // MRCO
"optic_LRPS", // LRPS
"optic_sos", // MOS
"bipod_03_F_blk", // Bipod (Black) [AAF]
"bipod_03_F_oli", // Bipod (Olive) [AAF]
"muzzle_snds_m", // Sound Suppressor (5.56 mm)
"muzzle_snds_l", // Sound Suppressor (9 mm)
"muzzle_snds_b", // Sound Suppressor (7.62 mm)
"muzzle_snds_h_mg", // Sound Suppressor LMG (6.5 mm)
"optic_nvs", // NVS
"optic_tws", // TWS
"optic_tws_mg", // TWS MG
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_Parachute", // Steerable Parachute
"B_AssaultPack_dgtl", // Assault Pack (Digital)
"B_FieldPack_blk", // Field Pack (Black)
"B_Carryall_oli", // Carryall Backpack (Olive)
"B_Fieldpack_oli", // Field Pack (Olive)
"B_TacticalPack_oli", // Tactical Backpack (Olive)
"B_Bergen_dgtl_F", // Bergen Backpack (Digital)
"B_LegStrapBag_olive_F", // Leg Strap Bag (Olive)
"B_RadioBag_01_digi_F", // Radio Pack (Digital) [AAF]
"B_CombinationUnitRespirator_01_F", // Combination Unit Respirator
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_mr3000", // MR3000
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage" // RT-1523G (ASIP) Sage
];

View File

@@ -0,0 +1,269 @@
/*
CSAT Green Hex Arsenal Preset
Last Update: 2020-08-17
Needed:
- None
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
// Primary
"SMG_02_F", // Sting 9 mm
"arifle_SDAR_F", // SDAR 5.56 mm
"srifle_DMR_04_F", // ASP-1 Kir 12.7 mm (Black)
"srifle_DMR_05_blk_F", // Cyrus 9.3 mm (Black)
"MMG_01_tan_F", // Navid 9.3 mm (Tan)
"srifle_GM6_ghex_F", // GM6 Lynx 12.7 mm (Green Hex)
"srifle_DMR_07_blk_F", // CMR-76 6.5 mm (Black)
"arifle_CTAR_blk_F", // CAR-95 5.8 mm (Black)
"arifle_CTAR_GL_blk_F", // CAR-95 GL 5.8 mm (Black)
"arifle_CTARS_blk_F", // CAR-95-1 5.8mm (Black)
"arifle_ARX_ghex_F", // Type 115 6.5 mm (Green Hex)
// Handgun
"hgun_Rook40_F", // Rook-40 9 mm
"hgun_Pistol_heavy_02_F", // Zubr .45 ACP
// Launcher
"launch_RPG32_ghex_F", // RPG-42 Alamut (Green Hex)
"launch_O_Titan_ghex_F", // Titan MPRL (Green Hex)
"launch_O_Titan_short_ghex_F", // Titan MPRL Compact (Green Hex)
"launch_O_Vorona_green_F" // 9M135 Vorona (Green)
];
GRLIB_arsenal_magazines = [
];
GRLIB_arsenal_items = [
// Vanilla Standard Items
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Medikit", // Medikit
"MineDetector", // Mine Detector
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
// Faction Specific Items
"O_UavTerminal", // UAV Terminal [CSAT]
"Laserdesignator_02_ghex_F", // Laser Designator (Green Hex)
"O_NVGoggles_ghex_F", // Compact NVG (Green Hex)
// Uniforms
"U_O_PilotCoveralls", // Pilot Coveralls [CSAT]
"U_O_Wetsuit", // Wetsuit [CSAT]
"U_O_T_Soldier_F", // Fatigues (Green Hex) [CSAT]
"U_O_T_Officer_F", // Officer Fatigues (Green Hex) [CSAT]
"U_O_T_Sniper_F", // Ghillie Suit (Green Hex) [CSAT]
"U_O_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [CSAT]
"U_O_V_Soldier_Viper_F", // Special Purpose Suit (Green Hex)
// Headgear
"H_Beret_ocamo", // Beret [CSAT]
"H_Beret_CSAT_01_F", // Beret (Red) [CSAT]
"H_PilotHelmetHeli_O", // Heli Pilot Helmet [CSAT]
"H_CrewHelmetHeli_O", // Heli Crew Helmet [CSAT]
"H_PilotHelmetFighter_O", // Pilot Helmet [CSAT]
"H_HelmetSpecO_ghex_F", // Assassin Helmet (Green Hex)
"H_HelmetCrew_O_ghex_F", // Crew Helmet (Green Hex) [CSAT]
"H_HelmetLeaderO_ghex_F", // Defender Helmet (Green Hex)
"H_MilCap_ghex_F", // Military Cap (Green Hex)
"H_HelmetO_ghex_F", // Protector Helmet (Green Hex)
"H_HelmetO_ViperSP_ghex_F", // Special Purpose Helmet (Green Hex)
"H_Tank_black_F", // Crew Helmet (Soft) [CSAT]
// Facegear
"G_Aviator", // Aviator Glasses
"G_Balaclava_blk", // Balaclava (Black)
"G_Balaclava_oli", // Balaclava (Olive)
"G_Bandanna_beast", // Bandana (Beast)
"G_Bandanna_blk", // Bandana (Black)
"G_Bandanna_khk", // Bandana (Khaki)
"G_Bandanna_tan", // Bandana (Tan)
"G_Bandanna_oli", // Bandana (Olive)
"G_O_Diving", // Diving Goggles [CSAT]
"G_Sport_Red", // Sport Shades (Fire)
"G_Sport_Blackyellow", // Sport Shades (Poison)
"G_Sport_BlackWhite", // Sport Shades (Shadow)
"G_Sport_Checkered", // Sport Shades (Style)
"G_Sport_Blackred", // Sport Shades (Vulcan)
"G_Sport_Greenblack", // Sport Shades (Yetti)
"G_Shades_Black", // Shades (Black)
"G_Shades_Blue", // Shades (Blue)
"G_Shades_Green", // Shades (Green)
"G_Shades_Red", // Shades (Red)
"G_AirPurifyingRespirator_02_black_F", // APR (Black) [CSAT]
"G_AirPurifyingRespirator_02_olive_F", // APR (Olive) [CSAT]
// Vests
"V_TacVest_oli", // Tactical Vest (Olive)
"V_Chestrig_khk", // Chest Rig (Khaki)
"V_RebreatherIR", // Rebreather [CSAT]
"V_HarnessO_ghex_F", // LBV Harness (Green Hex)
"V_HarnessOGL_ghex_F", // LBV Grenadier Harness (Green Hex)
"V_BandollierB_ghex_F", // Slash Bandolier (Green Hex)
"V_TacChestrig_oli_F", // Tactical Chest Rig (Olive)
"V_Safety_orange_F", // Safety Vest (Orange)
"V_Safety_yellow_F", // Safety Vest (Yellow)
"V_DeckCrew_green_F", // Deck Crew Vest (Green)
// Items
"acc_pointer_IR", // IR Laser Pointer
"acc_flashlight", // Flashlight
"acc_flashlight_pistol", // Pistol Flashlight
"muzzle_snds_l", // Sound Suppressor (9 mm)
"optic_yorris", // Yorris J2
"optic_DMS", // DMS
"optic_DMS_ghex_F", // DMS (Green Hex)
"optic_KHS_blk", // Kahlia (Black)
"optic_ACO_grn", // ACO (Green)
"optic_ACO_grn_smg", // ACO SMG (Green)
"optic_Arco_blk_F", // ARCO (Black)
"optic_Arco_ghex_F", // ARCO (Green Hex)
"optic_LRPS_ghex_F", // LRPS (Green Hex)
"muzzle_snds_H", // Sound Suppressor (6.5 mm)
"muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black)
"muzzle_snds_65_TI_ghex_F", // Stealth Sound Suppressor (6.5 mm, Green Hex)
"muzzle_snds_58_blk_F", // Stealth Sound Suppressor (5.8 mm, Black)
"muzzle_snds_58_ghex_F", // Stealth Sound Suppressor (5.8 mm, Green Hex)
"bipod_02_F_blk", // Bipod (Black) [CSAT]
"muzzle_snds_93mmg", // Sound Suppressor (9.3mm, Black)
"optic_nvs", // NVS
"optic_tws", // TWS
"optic_tws_mg", // TWS MG
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_Parachute", // Steerable Parachute
"B_FieldPack_blk", // Field Pack (Black)
"B_FieldPack_ghex_F", // Field Pack (Green Hex)
"B_Carryall_ghex_F", // Carryall Backpack (Green Hex)
"B_ViperHarness_ghex_F", // Viper Harness (Green Hex)
"B_ViperLightHarness_ghex_F", // Viper Light Harness (Green Hex)
"B_LegStrapBag_black_F", // Leg Strap Bag (Black)
"B_LegStrapBag_olive_F", // Leg Strap Bag (Olive)
"B_RadioBag_01_ghex_F", // Radio Pack (Green Hex) [CSAT]
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_mr3000", // MR3000
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage" // RT-1523G (ASIP) Sage
];

View File

@@ -0,0 +1,291 @@
/*
CSAT Hex Arsenal Preset
Last Update: 2020-08-17
Needed:
- None
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
// Primary
"arifle_Katiba_F", // Katiba 6.5 mm
"arifle_Katiba_C_F", // Katiba Carbine 6.5 mm
"arifle_Katiba_GL_F", // Katiba GL 6.5 mm
"arifle_SDAR_F", // SDAR 5.56 mm
"LMG_Zafir_F", // Zafir 7.62 mm
"SMG_02_F", // Sting 9 mm
"srifle_GM6_camo_F", // GM6 Lynx 12.7 mm (Camo)
"srifle_DMR_01_F", // Rahim 7.62 mm
"srifle_DMR_04_F", // ASP-1 Kir 12.7 mm (Black
"srifle_DMR_05_blk_F", // Cyrus 9.3 mm (Black)
"MMG_01_hex_F", // Navid 9.3 mm (Hex)
"arifle_ARX_hex_F", // Type 115 6.5 mm (Hex)
// Handgun
"hgun_Rook40_F", // Rook-40 9 mm
"hgun_Pistol_heavy_02_F", // Zubr .45 ACP
// Launcher
"launch_RPG32_F", // RPG-42 Alamut
"launch_O_Titan_F", // Titan MPRL (Hex)
"launch_O_Titan_short_F", // Titan MPRL Compact (Coyote)
"launch_O_Vorona_brown_F" // 9M135 Vorona (Brown)
];
GRLIB_arsenal_magazines = [
];
GRLIB_arsenal_items = [
// Vanilla Standard Items
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Medikit", // Medikit
"MineDetector", // Mine Detector
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
// Faction Specific Items
"O_UavTerminal", // UAV Terminal [CSAT]
"Laserdesignator_02", // Laser Designator (Hex)
"NVGoggles_OPFOR", // NV Goggles (Black)
// Uniforms
"U_O_CombatUniform_ocamo", // Fatigues (Hex) [CSAT]
"U_O_CombatUniform_oucamo", // Fatigues (Urban) [CSAT]
"U_O_OfficerUniform_ocamo", // Officer Fatigues (Hex)
"U_O_officer_noInsignia_hex_F", // Light Fatigues (Hex)
"U_O_PilotCoveralls", // Pilot Coveralls [CSAT]
"U_O_V_Soldier_Viper_hex_F", // Special Purpose Suit (Hex)
"U_O_Wetsuit", // Wetsuit [CSAT]
"U_O_GhillieSuit", // Ghillie Suit [CSAT]
"U_O_FullGhillie_ard", // Full Ghillie (Arid) [CSAT]
"U_O_FullGhillie_sard", // Full Ghillie (Semi-Arid) [CSAT]
"U_O_FullGhillie_lsh", // Full Ghillie (Lush) [CSAT]
// Headgear
"H_HelmetSpecO_blk", // Assassin Helmet (Black)
"H_HelmetSpecO_ocamo", // Assassin Helmet (Hex)
"H_Beret_ocamo", // Beret [CSAT]
"H_Cap_brn_SPECOPS", // Cap [OPFOR]
"H_HelmetCrew_O", // Crew Helmet [CSAT]
"H_HelmetLeaderO_ocamo", // Defender Helmet (Hex)
"H_HelmetLeaderO_oucamo", // Defender Helmet (Urban)
"H_CrewHelmetHeli_O", // Heli Crew Helmet [CSAT]
"H_PilotHelmetHeli_O", // Heli Pilot Helmet [CSAT]
"H_MilCap_ocamo", // Military Cap (Hex)
"H_PilotHelmetFighter_O", // Pilot Helmet [CSAT]
"H_HelmetO_ocamo", // Protector Helmet (Hex)
"H_HelmetO_oucamo", // Protector Helmet (Urban)
"H_Beret_CSAT_01_F", // Beret (Red) [CSAT]
"H_HelmetO_ViperSP_hex_F", // Special Purpose Helmet (Hex)
"H_Tank_black_F", // Crew Helmet (Soft) [CSAT]
// Facegear
"G_Aviator", // Aviator Glasses
"G_Balaclava_blk", // Balaclava (Black)
"G_Balaclava_oli", // Balaclava (Olive)
"G_Bandanna_beast", // Bandana (Beast)
"G_Bandanna_blk", // Bandana (Black)
"G_Bandanna_khk", // Bandana (Khaki)
"G_Bandanna_tan", // Bandana (Tan)
"G_Bandanna_oli", // Bandana (Olive)
"G_O_Diving", // Diving Goggles [CSAT]
"G_Sport_Red", // Sport Shades (Fire)
"G_Sport_Blackyellow", // Sport Shades (Poison)
"G_Sport_BlackWhite", // Sport Shades (Shadow)
"G_Sport_Checkered", // Sport Shades (Style)
"G_Sport_Blackred", // Sport Shades (Vulcan)
"G_Sport_Greenblack", // Sport Shades (Yetti)
"G_Shades_Black", // Shades (Black)
"G_Shades_Blue", // Shades (Blue)
"G_Shades_Green", // Shades (Green)
"G_Shades_Red", // Shades (Red)
"G_AirPurifyingRespirator_02_black_F", // APR (Black) [CSAT]
"G_AirPurifyingRespirator_02_sand_F", // APR (Sand) [CSAT]
// Vests
"V_Chestrig_khk", // Chest Rig (Khaki)
"V_HarnessOGL_brn", // LBV Grenadier Harness
"V_HarnessOGL_gry", // LBV Grenadier Harness (Grey)
"V_HarnessO_brn", // LBV Harness
"V_HarnessO_gry", // LBV Harness (Grey)
"V_RebreatherIR", // Rebreather [CSAT]
"V_BandollierB_khk", // Slash Bandolier (Khaki)
"V_TacVest_blk", // Tactical Vest (Black)
"V_TacVest_khk", // Tactical Vest (Khaki)
"V_TacVest_brn", // Tactical Vest (Brown)
"V_Safety_orange_F", // Safety Vest (Orange)
"V_Safety_yellow_F", // Safety Vest (Yellow)
"V_DeckCrew_green_F", // Deck Crew Vest (Green)
// Items
"acc_pointer_IR", // IR Laser Pointer
"acc_flashlight", // Flashlight
"acc_flashlight_pistol", // Pistol Flashlight
"muzzle_snds_l", // Sound Suppressor (9 mm)
"optic_yorris", // Yorris J2
"optic_DMS", // DMS
"optic_ACO_grn", // ACO (Green)
"optic_ACO_grn_smg", // ACO SMG (Green)
"optic_Arco", // ARCO
"optic_Arco_blk_F", // ARCO (Black)
"optic_KHS_blk", // Kahlia (Black)
"optic_KHS_hex", // Kahlia (Hex)
"optic_LRPS", // LRPS
"bipod_02_F_blk", // Bipod (Black) [CSAT]
"bipod_02_F_hex", // Bipod (Hex) [CSAT]
"bipod_02_F_tan", // Bipod (Tan) [CSAT]
"muzzle_snds_H", // Sound Suppressor (6.5 mm)
"muzzle_snds_b", // Sound Suppressor (7.62 mm)
"muzzle_snds_93mmg", // Sound Suppressor (9.3mm, Black)
"muzzle_snds_93mmg_tan", // Sound Suppressor (9.3mm, Tan)
"muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black)
"muzzle_snds_65_TI_hex_F", // Stealth Sound Suppressor (6.5 mm, Hex)
"optic_nvs", // NVS
"optic_tws", // TWS
"optic_tws_mg", // TWS MG
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_Parachute", // Steerable Parachute
"B_AssaultPack_ocamo", // Assault Pack (Hex)
"B_Carryall_cbr", // Carryall Backpack (Coyote)
"B_Carryall_ocamo", // Carryall Backpack (Hex)
"B_Carryall_oucamo", // Carryall Backpack (Urban)
"B_FieldPack_blk", // Field Pack (Black)
"B_FieldPack_cbr", // Field Pack (Coyote)
"B_FieldPack_ocamo", // Field Pack (Hex)
"B_FieldPack_oucamo", // Field Pack (Urban)
"B_TacticalPack_ocamo", // Tactical Backpack (Hex)
"B_Bergen_hex_F", // Bergen Backpack (Hex)
"B_ViperHarness_hex_F", // Viper Harness (Hex)
"B_ViperLightHarness_hex_F", // Viper Light Harness (Hex)
"B_LegStrapBag_black_F", // Leg Strap Bag (Black)
"B_LegStrapBag_coyote_F", // Leg Strap Bag (Coyote)
"B_RadioBag_01_hex_F", // Radio Pack (Hex) [CSAT]
"B_RadioBag_01_oucamo_F", // Radio Pack (Urban) [CSAT]
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_mr3000", // MR3000
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage" // RT-1523G (ASIP) Sage
];

View File

@@ -0,0 +1,264 @@
/*
LDF Arsenal Preset
Last Update: 2020-08-17
Needed:
- None
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
// Primary
"SMG_03C_black", // ADR-97C 5.7 mm (Black)
"SMG_03C_TR_black", // ADR-97C TR 5.7 mm (Black)
"LMG_Mk200_black_F", // Mk200 6.5 mm (Black)
"arifle_MSBS65_F", // Promet 6.5 mm
"arifle_MSBS65_black_F", // Promet 6.5 mm (Black)
"arifle_MSBS65_GL_F", // Promet GL 6.5 mm
"arifle_MSBS65_GL_black_F", // Promet GL 6.5 mm (Black)
"arifle_MSBS65_Mark_F", // Promet MR 6.5 mm
"arifle_MSBS65_Mark_black_F", // Promet MR 6.5 mm (Black)
"arifle_MSBS65_UBS_F", // Promet SG 6.5 mm
"arifle_MSBS65_UBS_black_F", // Promet SG 6.5 mm (Black)
// Handgun
"hgun_Pistol_heavy_01_green_F", // 4-five .45 ACP (Green)
// Launcher
"launch_NLAW_F", // PCML
"launch_I_Titan_eaf_F", // Titan MPRL (Geometric)
"launch_I_Titan_short_F", // Titan MPRL Compact (Olive)
"launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green)
];
GRLIB_arsenal_magazines = [
];
GRLIB_arsenal_items = [
// Vanilla Standard Items
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Medikit", // Medikit
"MineDetector", // Mine Detector
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
// Faction Specific Items
"I_E_UavTerminal", // UAV Terminal [LDF]
"Laserdesignator_03", // Laser Designator (Sand)
"NVGoggles_INDEP", // NV Goggles (Green)
"NVGogglesB_grn_F", // ENVG-II (Green)
// Uniforms
"U_B_PilotCoveralls", // Pilot Coveralls [NATO]
"U_C_CBRN_Suit_01_White_F", // CBRN Suit (White)
"U_I_E_CBRN_Suit_01_EAF_F", // CBRN Suit [LDF]
"U_I_E_Uniform_01_coveralls_F", // Heli Pilot Coveralls [LDF]
"U_I_E_Uniform_01_F", // Combat Fatigues [LDF]
"U_I_E_Uniform_01_officer_F", // Combat Fatigues (Officer) [LDF]
"U_I_E_Uniform_01_shortsleeve_F", // Combat Fatigues (Rolled-up) [LDF]
"U_I_E_Uniform_01_sweater_F", // Combat Fatigues (Sweater) [LDF]
"U_I_E_Uniform_01_tanktop_F", // Combat Fatigues (Tank Top) [LDF]
// Headgear
"H_HelmetHBK_headset_F", // Advanced Modular Helmet
"H_HelmetHBK_chops_F", // Advanced Modular Helmet (Chops)
"H_HelmetHBK_ear_F", // Advanced Modular Helmet (Ear Protectors)
"H_HelmetHBK_F", // Advanced Modular Helmet (Olive)
"H_Beret_EAF_01_F", // Beret [LDF]
"H_Booniehat_eaf", // Booniehat [LDF]
"H_Tank_eaf_F", // Crew Helmet (Soft) [LDF]
"H_HelmetCrew_I_E", // Crew Helmet [LDF]
"H_CrewHelmetHeli_I_E", // Heli Crew Helmet [LDF]
"H_PilotHelmetHeli_I_E", // Heli Pilot Helmet [LDF]
"H_MilCap_eaf", // Military Cap [LDF]
"H_PilotHelmetFighter_I_E", // Pilot Helmet [LDF]
// Facegear
"G_Aviator", // Aviator Glasses
"G_Combat", // Combat Goggles
"G_B_Diving", // Diving Goggles [NATO]
"G_Lowprofile", // Low Profile Goggles
"G_Shades_Black", // Shades (Black)
"G_Shades_Blue", // Shades (Blue)
"G_Shades_Green", // Shades (Green)
"G_Shades_Red", // Shades (Red)
"G_Spectacles", // Spectacle Glasses
"G_Spectacles_Tinted", // Tinted Spectacles
"G_AirPurifyingRespirator_01_F", // APR [NATO]
"G_Squares_Tinted", // Square Shades
"G_Squares", // Square Spectacles
"G_Tactical_Clear", // Tactical Glasses
"G_Tactical_Black", // Tactical Shades
"G_Sport_Red", // Sport Shades (Fire)
"G_Sport_Blackyellow", // Sport Shades (Poison)
"G_Sport_BlackWhite", // Sport Shades (Shadow)
"G_Sport_Checkered", // Sport Shades (Style)
"G_Sport_Blackred", // Sport Shades (Vulcan)
"G_Sport_Greenblack", // Sport Shades (Yetti)
// Vests
"V_Chestrig_blk", // Chest Rig (Black)
"V_BandollierB_oli", // Slash Bandolier (Olive)
"V_CarrierRigKBT_01_light_EAF_F", // Modular Carrier Lite (Geometric)
"V_CarrierRigKBT_01_light_Olive_F", // Modular Carrier Lite (Olive)
"V_CarrierRigKBT_01_heavy_EAF_F", // Modular Carrier GL Rig (Geometric)
"V_CarrierRigKBT_01_heavy_Olive_F", // Modular Carrier GL Rig (Olive)
"V_CarrierRigKBT_01_EAF_F", // Modular Carrier Vest (Geometric)
"V_CarrierRigKBT_01_Olive_F", // Modular Carrier Vest (Olive)
"V_Safety_orange_F", // Safety Vest (Orange)
"V_Safety_yellow_F", // Safety Vest (Yellow)
"V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow)
// Items
"acc_pointer_IR", // IR Laser Pointer
"acc_flashlight", // Flashlight
"acc_flashlight_pistol", // Pistol Flashlight
"muzzle_snds_acp", // Sound Suppressor (.45 ACP)
"optic_mrd_black", // MRD (Black)
"optic_Aco", // ACO (Red)
"optic_ico_01_f", // Promet Modular Sight
"optic_ico_01_black_f", // Promet Modular Sight (Black)
"optic_SOS", // MOS
"bipod_01_f_blk", // Bipod (Black) [NATO]
"muzzle_snds_H", // Sound Suppressor (6.5 mm)
"muzzle_snds_65_TI_blk_F", // Stealth Sound Suppressor (6.5 mm, Black)
"muzzle_snds_h_mg_blk_f", // Sound Suppressor LMG (6.5 mm, Black)
"muzzle_snds_570", // Sound Suppressor (5.7 mm)
"optic_nvs", // NVS
"optic_tws", // TWS
"optic_tws_mg", // TWS MG
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_Parachute", // Steerable Parachute
"B_AssaultPack_eaf_F", // Assault Pack (Geometric)
"B_Carryall_eaf_F", // Carryall Backpack (Geometric)
"B_Fieldpack_green_F", // Field Pack (Green)
"B_RadioBag_01_eaf_F", // Radio Pack (Geometric) [LDF]
"B_CombinationUnitRespirator_01_F", // Combination Unit Respirator
"B_LegStrapBag_black_F", // B_LegStrapBag_black_F
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_mr3000", // MR3000
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage" // RT-1523G (ASIP) Sage
];

View File

@@ -0,0 +1,298 @@
/*
NATO MTP Arsenal Preset
Last Update: 2020-08-17
Needed:
- None
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
// Primary
"arifle_MX_F", // MX 6.5 mm
"arifle_MX_GL_F", // MX 3GL 6.5 mm
"arifle_MX_SW_F", // MX SW 6.5 mm
"arifle_MXC_F", // MXC 6.5 mm
"arifle_MXM_F", // MXM 6.5 mm
"arifle_SDAR_F", // SDAR 5.56 mm
"srifle_LRR_camo_F", // M320 LRR .408 (Camo)
"SMG_01_F", // Vermin SMG .45 ACP
"MMG_02_sand_F", // SPMG .338 (Sand)
"srifle_DMR_02_sniper_F", // MAR-10 .338 (Sand)
"srifle_DMR_03_tan_F", // Mk-I EMR 7.62 mm (Sand)
// Handgun
"hgun_P07_F", // P07 9 mm
"hgun_Pistol_heavy_01_F", // 4-five .45 ACP
// Launcher
"launch_B_Titan_F", // Titan MPRL (Sand)
"launch_B_Titan_short_F", // Titan MPRL Compact (Sand)
"launch_NLAW_F", // PCML
"launch_MRAWS_sand_F" // MAAWS Mk4 Mod 1 (Sand)
];
GRLIB_arsenal_magazines = [
];
GRLIB_arsenal_items = [
// Vanilla Standard Items
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Medikit", // Medikit
"MineDetector", // Mine Detector
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
// Faction Specific Items
"B_UavTerminal", // UAV Terminal [NATO]
"Laserdesignator", // Laser Designator (Sand)
"NVGoggles", // NV Goggles (Brown)
// Uniforms
"U_B_CombatUniform_mcam", // Combat Fatigues (MTP)
"U_B_CombatUniform_mcam_tshirt", // Combat Fatigues (MTP) (Tee)
"U_B_CombatUniform_mcam_vest", // Recon Fatigues (MTP)
"U_B_HeliPilotCoveralls", // Heli Pilot Coveralls [NATO]
"U_B_PilotCoveralls", // Pilot Coveralls [NATO]
"U_B_Wetsuit", // Wetsuit [NATO]
"U_B_GhillieSuit", // Ghillie Suit [NATO]
"U_B_FullGhillie_ard", // Full Ghillie (Arid) [NATO]
"U_B_FullGhillie_sard", // Full Ghillie (Semi-Arid) [NATO]
"U_B_FullGhillie_lsh", // Full Ghillie (Lush) [NATO]
"U_B_CBRN_Suit_01_MTP_F", // CBRN Suit (MTP) [NATO]
// Headgear
"H_Watchcap_camo", // Beanie (Green)
"H_Beret_02", // Beret [NATO]
"H_Beret_Colonel", // Beret [NATO] (Colonel)
"H_Booniehat_mcamo", // Booniehat (MTP)
"H_Bandanna_mcamo", // Bandana (MTP)
"H_Cap_tan_specops_US", // Cap (US MTP)
"H_MilCap_mcamo", // Military Cap (MTP)
"H_HelmetB", // Combat Helmet
"H_HelmetB_black", // Combat Helmet (Black)
"H_HelmetB_camo", // Combat Helmet (Camo)
"H_HelmetB_grass", // Combat Helmet (Grass)
"H_HelmetB_sand", // Combat Helmet (Sand)
"H_HelmetB_desert", // Combat Helmet (Desert)
"H_HelmetB_snakeskin", // Combat Helmet (Snakeskin)
"H_HelmetCrew_B", // Crew Helmet [NATO]
"H_PilotHelmetFighter_B", // Pilot Helmet [NATO]
"H_CrewHelmetHeli_B", // Heli Crew Helmet [NATO]
"H_PilotHelmetHeli_B", // Heli Pilot Helmet [NATO]
"H_HelmetB_light", // Light Combat Helmet
"H_HelmetB_light_black", // Light Combat Helmet (Black)
"H_HelmetB_light_desert", // Light Combat Helmet (Desert)
"H_HelmetB_light_grass", // Light Combat Helmet (Grass)
"H_HelmetB_light_sand", // Light Combat Helmet (Sand)
"H_HelmetB_light_snakeskin", // Light Combat Helmet (Snakeskin)
"H_HelmetSpecB", // Enhanced Combat Helmet
"H_HelmetSpecB_blk", // Enhanced Combat Helmet (Black)
"H_HelmetSpecB_paint2", // Enhanced Combat Helmet (Desert)
"H_HelmetSpecB_paint1", // Enhanced Combat Helmet (Grass)
"H_HelmetSpecB_sand", // Enhanced Combat Helmet (Sand)
"H_HelmetSpecB_snakeskin", // Enhanced Combat Helmet (Snakeskin)
// Facegear
"G_Aviator", // Aviator Glasses
"G_Combat", // Combat Goggles
"G_B_Diving", // Diving Goggles [NATO]
"G_Lowprofile", // Low Profile Goggles
"G_Shades_Black", // Shades (Black)
"G_Shades_Blue", // Shades (Blue)
"G_Shades_Green", // Shades (Green)
"G_Shades_Red", // Shades (Red)
"G_Spectacles", // Spectacle Glasses
"G_Spectacles_Tinted", // Tinted Spectacles
"G_AirPurifyingRespirator_01_F", // APR [NATO]
"G_Squares_Tinted", // Square Shades
"G_Squares", // Square Spectacles
"G_Tactical_Clear", // Tactical Glasses
"G_Tactical_Black", // Tactical Shades
// Vests
"V_PlateCarrierGL_rgr", // Carrier GL Rig (Green)
"V_PlateCarrierGL_mtp", // Carrier GL Rig (MTP)
"V_PlateCarrier1_rgr", // Carrier Lite (Green)
"V_PlateCarrier2_rgr", // Carrier Rig (Green)
"V_PlateCarrierSpec_rgr", // Carrier Special Rig (Green)
"V_PlateCarrierSpec_mtp", // Carrier Special Rig (MTP)
"V_Chestrig_rgr", // Chest Rig (Green)
"V_RebreatherB", // Rebreather [NATO]
"V_BandollierB_rgr", // Slash Bandolier (Green)
"V_TacVest_blk", // Tactical Vest (Black)
"V_Safety_orange_F", // Safety Vest (Orange)
"V_Safety_yellow_F", // Safety Vest (Yellow)
"V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow)
// Items
"acc_pointer_IR", // IR Laser Pointer
"acc_flashlight", // Flashlight
"acc_flashlight_smg_01", // Flashlight
"acc_flashlight_pistol", // Pistol Flashlight
"muzzle_snds_acp", // Sound Suppressor (.45 ACP)
"muzzle_snds_l", // Sound Suppressor (9 mm)
"optic_mrd", // MRD
"optic_yorris", // Yorris J2
"optic_DMS", // DMS
"optic_Aco", // ACO (Red)
"optic_Holosight", // Mk17 Holosight
"optic_Holosight_smg", // Mk17 Holosight SMG
"optic_Hamr", // RCO
"optic_sos", // MOS
"optic_LRPS", // LRPS
"optic_AMS", // AMS (Black)
"optic_AMS_snd", // AMS (Sand)
"bipod_01_f_blk", // Bipod (Black) [NATO]
"bipod_01_f_snd", // Bipod (Sand) [NATO]
"bipod_01_f_mtp", // Bipod (MTP) [NATO]
"muzzle_snds_H", // Sound Suppressor (6.5 mm)
"muzzle_snds_h_snd_f", // Sound Suppressor (6.5 mm, Sand)
"muzzle_snds_338_black", // Sound Suppressor (.338, Black)
"muzzle_snds_338_sand", // Sound Suppressor (.338, Sand)
"muzzle_snds_b", // Sound Suppressor (7.62 mm)
"muzzle_snds_b_snd_f", // Sound Suppressor (7.62 mm, Sand)
"optic_nvs", // NVS
"optic_tws", // TWS
"optic_tws_mg", // TWS MG
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_AssaultPack_blk", // Assault Pack (Black)
"B_AssaultPack_rgr", // Assault Pack (Green)
"B_AssaultPack_mcamo", // Assault Pack (MTP)
"B_Carryall_mcamo", // Carryall Backpack (MTP)
"B_Kitbag_rgr", // Kitbag (Green)
"B_Kitbag_mcamo", // Kitbag (MTP)
"B_Parachute", // Steerable Parachute
"B_TacticalPack_mcamo", // Tactical Backpack (MTP)
"B_LegStrapBag_black_F", // Leg Strap Bag (Black)
"B_LegStrapBag_coyote_F", // Leg Strap Bag (Coyote)
"B_Bergen_mcamo_F", // Bergen Backpack (MTP)
"B_RadioBag_01_mtp_F", // Radio Pack (MTP) [NATO]
"B_CombinationUnitRespirator_01_F", // Combination Unit Respirator
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_mr3000", // MR3000
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage" // RT-1523G (ASIP) Sage
];

View File

@@ -0,0 +1,297 @@
/*
NATO Tropic Arsenal Preset
Last Update: 2020-08-12
Needed:
- None
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
// Primary
"arifle_MX_khk_F", // MX 6.5 mm (Khaki)
"arifle_MX_GL_khk_F", // MX 3GL 6.5 mm (Khaki)
"arifle_MX_SW_khk_F", // MX SW 6.5 mm (Khaki)
"arifle_MXC_khk_F", // MXC 6.5 mm (Khaki)
"arifle_MXM_khk_F", // MXM 6.5 mm (Khaki)
"arifle_SDAR_F", // SDAR 5.56 mm
"srifle_LRR_tna_F", // M320 LRR .408 (Tropic)
"SMG_01_F", // Vermin SMG .45 ACP
"MMG_02_black_F", // SPMG .338 (Black)
"srifle_DMR_02_F", // MAR-10 .338 (Black)
"srifle_DMR_03_khaki_F", // Mk-I EMR 7.62 mm (Khaki)
"arifle_SPAR_01_blk_F", // SPAR-16 5.56 mm (Black)
"arifle_SPAR_01_khk_F", // SPAR-16 5.56 mm (Khaki)
"arifle_SPAR_01_GL_blk_F", // SPAR-16 GL 5.56 mm (Black)
"arifle_SPAR_01_GL_khk_F", // SPAR-16 GL 5.56 mm (Khaki)
"arifle_SPAR_02_blk_F", // SPAR-16S 5.56 mm (Black)
"arifle_SPAR_02_khk_F", // SPAR-16S 5.56 mm (Khaki)
"arifle_SPAR_03_blk_F", // SPAR-17 7.62 mm (Black)
"arifle_SPAR_03_khk_F", // SPAR-17 7.62 mm (Khaki)
// Handgun
"hgun_P07_khk_F", // P07 9 mm (Khaki)
"hgun_Pistol_heavy_01_F", // 4-five .45 ACP
// Launcher
"launch_NLAW_F", // PCML
"launch_B_Titan_tna_F", // Titan MPRL (Tropic)
"launch_B_Titan_short_tna_F", // Titan MPRL Compact (Tropic)
"launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green)
];
GRLIB_arsenal_magazines = [
];
GRLIB_arsenal_items = [
// Vanilla Standard Items
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Medikit", // Medikit
"MineDetector", // Mine Detector
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
// Faction Specific Items
"B_UavTerminal", // UAV Terminal [NATO]
"Laserdesignator_01_khk_F", // Laser Designator (Khaki)
"NVGoggles_tna_F", // NV Goggles (Tropic)
"NVGogglesB_grn_F", // ENVG-II (Green)
// Uniforms
"U_B_T_Soldier_F", // Combat Fatigues (Tropic)
"U_B_T_Soldier_AR_F", // Combat Fatigues (Tropic, Tee)
"U_B_T_Soldier_SL_F", // Recon Fatigues (Tropic)
"U_B_HeliPilotCoveralls", // Heli Pilot Coveralls [NATO]
"U_B_PilotCoveralls", // Pilot Coveralls [NATO]
"U_B_Wetsuit", // Wetsuit [NATO]
"U_B_T_Sniper_F", // Ghillie Suit (Tropic) [NATO]
"U_B_T_FullGhillie_tna_F", // Full Ghillie (Jungle) [NATO]
"U_B_CTRG_Soldier_F", // CTRG Stealth Uniform
"U_B_CTRG_Soldier_2_F", // CTRG Stealth Uniform (Tee)
"U_B_CTRG_Soldier_3_F", // CTRG Stealth Uniform (Rolled-up)
"U_B_CBRN_Suit_01_Tropic_F", // CBRN Suit (Tropic) [NATO]
// Headgear
"H_Watchcap_camo", // Beanie (Green)
"H_Beret_02", // Beret [NATO]
"H_Beret_Colonel", // Beret [NATO] (Colonel)
"H_HelmetCrew_B", // Crew Helmet [NATO]
"H_PilotHelmetFighter_B", // Pilot Helmet [NATO]
"H_CrewHelmetHeli_B", // Heli Crew Helmet [NATO]
"H_PilotHelmetHeli_B", // Heli Pilot Helmet [NATO]
"H_Booniehat_tna_F", // Booniehat (Tropic)
"H_HelmetB_tna_F", // Combat Helmet (Tropic)
"H_HelmetB_Enh_tna_F", // Enhanced Combat Helmet (Tropic)
"H_HelmetB_Light_tna_F", // Light Combat Helmet (Tropic)
"H_MilCap_tna_F", // Military Cap (Tropic)
"H_HelmetB_TI_tna_F", // Stealth Combat Helmet
// Facegear
"G_Aviator", // Aviator Glasses
"G_B_Diving", // Diving Goggles [NATO]
"G_Lowprofile", // Low Profile Goggles
"G_Shades_Black", // Shades (Black)
"G_Shades_Blue", // Shades (Blue)
"G_Shades_Green", // Shades (Green)
"G_Shades_Red", // Shades (Red)
"G_Spectacles", // Spectacle Glasses
"G_Spectacles_Tinted", // Tinted Spectacles
"G_AirPurifyingRespirator_01_F", // APR [NATO]
"G_Squares_Tinted", // Square Shades
"G_Squares", // Square Spectacles
"G_Tactical_Clear", // Tactical Glasses
"G_Tactical_Black", // Tactical Shades
"G_Combat_Goggles_tna_F", // Combat Goggles (Green)
"G_Balaclava_TI_tna_F", // Stealth Balaclava (Green)
"G_Balaclava_TI_G_tna_F", // Stealth Balaclava (Green, Goggles)
// Vests
"V_PlateCarrierGL_tna_F", // Carrier GL Rig (Tropic)
"V_PlateCarrier1_tna_F", // Carrier Lite (Tropic)
"V_PlateCarrier2_tna_F", // Carrier Rig (Tropic)
"V_PlateCarrierSpec_tna_F", // Carrier Special Rig (Tropic)
"V_PlateCarrierIAGL_oli", // GA Carrier GL Rig (Olive)
"V_PlateCarrier1_rgr_noflag_F", // Carrier Lite (Green, No Flag)
"V_PlateCarrier2_rgr_noflag_F", // Carrier Rig (Green, No Flag)
"V_Chestrig_rgr", // Chest Rig (Green)
"V_RebreatherB", // Rebreather [NATO]
"V_TacVest_blk", // Tactical Vest (Black)
"V_TacVest_oli", // Tactical Vest (Olive)
"V_BandollierB_rgr", // Slash Bandolier (Green)
"V_Safety_orange_F", // Safety Vest (Orange)
"V_Safety_yellow_F", // Safety Vest (Yellow)
"V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow)
// Items
"acc_pointer_IR", // IR Laser Pointer
"acc_flashlight", // Flashlight
"acc_flashlight_smg_01", // Flashlight
"acc_flashlight_pistol", // Pistol Flashlight
"muzzle_snds_acp", // Sound Suppressor (.45 ACP)
"muzzle_snds_l", // Sound Suppressor (9 mm)
"optic_mrd", // MRD
"optic_yorris", // Yorris J2
"optic_DMS", // DMS
"optic_Aco", // ACO (Red)
"optic_Holosight_khk_F", // Mk17 Holosight (Khaki)
"optic_Holosight_smg_khk_F", // Mk17 Holosight SMG (Khaki)
"optic_Hamr_khk_F", // RCO (Khaki)
"optic_SOS_khk_F", // MOS (Khaki)
"optic_LRPS_tna_F", // LRPS (Tropic)
"optic_AMS", // AMS (Black)
"optic_AMS_khk", // AMS (Khaki)
"optic_ERCO_blk_F", // ERCO (Black)
"optic_ERCO_khk_F", // ERCO (Khaki)
"bipod_01_f_blk", // Bipod (Black) [NATO]
"bipod_01_F_khk", // Bipod (Khaki) [NATO]
"muzzle_snds_H", // Sound Suppressor (6.5 mm)
"muzzle_snds_H_khk_F", // Sound Suppressor (6.5 mm, Khaki)
"muzzle_snds_338_black", // Sound Suppressor (.338, Black)
"muzzle_snds_338_green", // Sound Suppressor (.338, Green)
"muzzle_snds_b", // Sound Suppressor (7.62 mm)
"muzzle_snds_b_khk_f", // Sound Suppressor (7.62 mm, Khaki)
"muzzle_snds_m", // Sound Suppressor (5.56 mm)
"muzzle_snds_m_khk_f", // Sound Suppressor (5.56 mm, Khaki)
"optic_nvs", // NVS
"optic_tws", // TWS
"optic_tws_mg", // TWS MG
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_AssaultPack_blk", // Assault Pack (Black)
"B_AssaultPack_rgr", // Assault Pack (Green)
"B_AssaultPack_tna_F", // Assault Pack (Tropic)
"B_Carryall_oli", // Carryall Backpack (Olive)
"B_Kitbag_rgr", // Kitbag (Green)
"B_Parachute", // Steerable Parachute
"B_TacticalPack_oli", // Tactical Backpack (Olive)
"B_LegStrapBag_black_F", // Leg Strap Bag (Black)
"B_LegStrapBag_olive_F", // Leg Strap Bag (Olive)
"B_Bergen_tna_F", // Bergen Backpack (Tropic)
"B_RadioBag_01_tropic_F", // Radio Pack (Tropic) [NATO]
"B_CombinationUnitRespirator_01_F", // Combined Unit Respirator
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_mr3000", // MR3000
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage" // RT-1523G (ASIP) Sage
];

View File

@@ -0,0 +1,265 @@
/*
NATO Woodland Arsenal Preset
Last Update: 2020-08-12
Needed:
- None
Optional:
- ACE - https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
- ACRE - https://steamcommunity.com/sharedfiles/filedetails/?id=751965892
- TFAR - https://steamcommunity.com/sharedfiles/filedetails/?id=894678801
*/
GRLIB_arsenal_weapons = [
// Primary
"arifle_MX_Black_F", // MX 6.5 mm (Black)
"arifle_MX_GL_Black_F", // MX 3GL 6.5 mm (Black)
"arifle_MX_SW_Black_F", // MX SW 6.5 mm (Black)
"arifle_MXC_Black_F", // MXC 6.5 mm (Black)
"arifle_MXM_Black_F", // MXM 6.5 mm (Black)
"arifle_SDAR_F", // SDAR 5.56 mm
"srifle_LRR_F", // M320 LRR .408
"SMG_01_F", // Vermin SMG .45 ACP
"MMG_02_black_F", // SPMG .338 (Black)
"srifle_DMR_02_F", // MAR-10 .338 (Black)
"srifle_DMR_03_F", // Mk-I EMR 7.62 mm (Black)
// Handgun
"hgun_P07_khk_F", // P07 9 mm (Khaki)
"hgun_Pistol_heavy_01_F", // 4-five .45 ACP
// Launcher
"launch_NLAW_F", // PCML
"launch_B_Titan_tna_F", // Titan MPRL (Tropic)
"launch_B_Titan_short_tna_F", // Titan MPRL Compact (Tropic)
"launch_MRAWS_green_F" // MAAWS Mk4 Mod 1 (Green)
];
GRLIB_arsenal_magazines = [
];
GRLIB_arsenal_items = [
// Vanilla Standard Items
"Binocular", // Binoculars
"DroneDetector", // Drone Detector
"FirstAidKit", // First Aid Kit
"ItemCompass", // Compass
"ItemGPS", // GPS
"ItemMap", // Map
"ItemRadio", // Radio
"ItemWatch", // Watch
"Medikit", // Medikit
"MineDetector", // Mine Detector
"Rangefinder", // Rangefinder
"ToolKit", // Toolkit
// Faction Specific Items
"B_UavTerminal", // UAV Terminal [NATO]
"Laserdesignator_01_khk_F", // Laser Designator (Khaki)
"NVGoggles_INDEP", // NV Goggles (Green)
// Uniforms
"U_B_CombatUniform_mcam_wdl_f", // Combat Fatigues (Woodland)
"U_B_CombatUniform_tshirt_mcam_wdL_f", // Combat Fatigues (Woodland, Tee)
"U_B_CombatUniform_vest_mcam_wdl_f", // Recon Fatigues (Woodland)
"U_B_HeliPilotCoveralls", // Heli Pilot Coveralls [NATO]
"U_B_PilotCoveralls", // Pilot Coveralls [NATO]
"U_B_Wetsuit", // Wetsuit [NATO]
"U_B_FullGhillie_lsh", // Full Ghillie (Lush) [NATO]
"U_B_CBRN_Suit_01_Wdl_F", // CBRN Suit (Woodland) [NATO]
// Headgear
"H_Watchcap_camo", // Beanie (Green)
"H_Beret_02", // Beret [NATO]
"H_Beret_Colonel", // Beret [NATO] (Colonel)
"H_HelmetCrew_B", // Crew Helmet [NATO]
"H_PilotHelmetFighter_B", // Pilot Helmet [NATO]
"H_CrewHelmetHeli_B", // Heli Crew Helmet [NATO]
"H_PilotHelmetHeli_B", // Heli Pilot Helmet [NATO]
"H_Booniehat_wdl", // Booniehat (Woodland)
"H_HelmetB_plain_wdl", // Combat Helmet (Woodland)
"H_HelmetSpecB_wdl", // Enhanced Combat Helmet (Woodland)
"H_HelmetB_light_wdl", // Light Combat Helmet (Woodland)
"H_MilCap_wdl", // Military Cap (Woodland)
// Facegear
"G_Aviator", // Aviator Glasses
"G_B_Diving", // Diving Goggles [NATO]
"G_Lowprofile", // Low Profile Goggles
"G_Shades_Black", // Shades (Black)
"G_Shades_Blue", // Shades (Blue)
"G_Shades_Green", // Shades (Green)
"G_Shades_Red", // Shades (Red)
"G_Spectacles", // Spectacle Glasses
"G_Spectacles_Tinted", // Tinted Spectacles
"G_AirPurifyingRespirator_01_F", // APR [NATO]
"G_Squares_Tinted", // Square Shades
"G_Squares", // Square Spectacles
"G_Tactical_Clear", // Tactical Glasses
"G_Tactical_Black", // Tactical Shades
// Vests
"V_PlateCarrierGL_wdl", // Carrier GL Rig (Woodland)
"V_PlateCarrier1_wdl", // Carrier Lite (Woodland)
"V_PlateCarrier2_wdl", // Carrier Rig (Woodland)
"V_PlateCarrierSpec_wdl", // Carrier Special Rig (Woodland)
"V_Chestrig_rgr", // Chest Rig (Green)
"V_RebreatherB", // Rebreather [NATO]
"V_TacVest_blk", // Tactical Vest (Black)
"V_BandollierB_rgr", // Slash Bandolier (Green)
"V_Safety_orange_F", // Safety Vest (Orange)
"V_Safety_yellow_F", // Safety Vest (Yellow)
"V_DeckCrew_yellow_F", // Deck Crew Vest (Yellow)
// Items
"acc_pointer_IR", // IR Laser Pointer
"acc_flashlight", // Flashlight
"acc_flashlight_smg_01", // Flashlight
"acc_flashlight_pistol", // Pistol Flashlight
"muzzle_snds_acp", // Sound Suppressor (.45 ACP)
"muzzle_snds_l", // Sound Suppressor (9 mm)
"optic_mrd", // MRD
"optic_yorris", // Yorris J2
"optic_DMS", // DMS
"optic_Aco", // ACO (Red)
"optic_holosight_blk_f", // Mk17 Holosight (Black)
"optic_holosight_smg_blk_f", // Mk17 Holosight SMG (Black)
"optic_Hamr", // RCO
"optic_SOS", // MOS
"optic_lrps", // LRPS
"optic_AMS", // AMS (Black)
"bipod_01_f_blk", // Bipod (Black) [NATO]
"muzzle_snds_H", // Sound Suppressor (6.5 mm)
"muzzle_snds_338_black", // Sound Suppressor (.338, Black)
"muzzle_snds_b", // Sound Suppressor (7.62 mm)
"optic_nvs", // NVS
"optic_tws", // TWS
"optic_tws_mg", // TWS MG
// ACE Items
"ACE_acc_pointer_green", // Laser Pointer (green)
"ACE_adenosine", // Adenosine autoinjector
"ACE_Altimeter", // Altimeter Watch
"ACE_artilleryTable", // Artillery Rangetable
"ACE_ATragMX", // ATragMX
"ACE_Banana", // Banana
"ACE_bloodIV_250", // Blood IV (250 ml)
"ACE_bloodIV_500", // Blood IV (500 ml)
"ACE_bloodIV", // Blood IV (1000 ml)
"ACE_bodyBag", // Bodybag
"ACE_CableTie", // Cable Tie
"ACE_Cellphone", // Cellphone
"ACE_Chemlight_Shield", // Chemlight Shield (Empty)
"ACE_Clacker", // M57 Firing Device
"ACE_DAGR", // DAGR
"ACE_DeadManSwitch", // Dead Man's Switch
"ACE_DefusalKit", // Defusal Kit
"ace_dragon_sight", // SU-36/P Daysight
"ACE_EarPlugs", // Earplugs
"ACE_elasticBandage", // Bandage (Elastic)
"ACE_EntrenchingTool", // Entrenching Tool
"ACE_epinephrine", // Epinephrine autoinjector
"ACE_fieldDressing", // Bandage (Basic)
"ACE_Flashlight_KSF1", // KSF-1
"ACE_Flashlight_Maglite_ML300L", // Maglite ML300L
"ACE_Flashlight_MX991", // Fulton MX-991
"ACE_Flashlight_XL50", // Maglite XL50
"ACE_HuntIR_monitor", // HuntIR monitor
"ACE_IR_Strobe_Item", // IR Strobe
"ACE_Kestrel4500", // Kestrel 4500NV
"ACE_M26_Clacker", // M152 Firing Device
"ACE_MapTools", // Map Tools
"ACE_microDAGR", // MicroDAGR GPS
"ACE_morphine", // Morphine autoinjector
"ACE_muzzle_mzls_338", // Flash Suppressor (.338)
"ACE_muzzle_mzls_93mmg", // Flash Suppressor (9.3 mm)
"ACE_muzzle_mzls_B", // Flash Suppressor (7.62 mm)
"ACE_muzzle_mzls_H", // Flash Suppressor (6.5 mm)
"ACE_muzzle_mzls_smg_01", // FLash Suppressor (.45 ACP)
"ACE_muzzle_mzls_smg_02", // Flash Suppressor (9 mm)
"ACE_MX2A", // MX-2A
"ACE_NVG_Gen1", // NV Goggles (Gen1)
"ACE_NVG_Gen2", // NV Goggles (Gen2)
"ACE_NVG_Gen4", // NV Goggles (Gen4)
"ACE_NVG_Wide", // NV Goggles (Wide)
"ACE_packingBandage", // Bandage (Packing)
"ACE_personalAidKit", // Personal Aid Kit
"ACE_plasmaIV_250", // Plasma IV (250 ml)
"ACE_plasmaIV_500", // Plasma IV (500 ml)
"ACE_plasmaIV", // Plasma IV (1000 ml)
"ACE_quikclot", // Bandage (QuickClot)
"ACE_RangeCard", // Range Card
"ACE_RangeTable_82mm", // 82 mm Rangetable
"ACE_rope12", // Rope 12.2 meters
"ACE_rope15", // Rope 15.2 meters
"ACE_rope18", // Rope 18.3 meters
"ACE_rope27", // Rope 27.4 meters
"ACE_rope36", // Rope 36.6 meters
"ACE_salineIV_250", // Saline IV (250 ml)
"ACE_salineIV_500", // Saline IV (500 ml)
"ACE_salineIV", // Saline IV (1000 ml)
"ACE_Sandbag_empty", // Sandbag (empty)
"ACE_splint", // Splint
"ACE_SpottingScope", // Spotting Scope
"ACE_SpraypaintBlack", // Spray Paint (Black)
"ACE_SpraypaintBlue", // Spray Paint (Blue)
"ACE_SpraypaintGreen", // Spray Paint (Green)
"ACE_SpraypaintRed", // Spray Paint (Red)
"ACE_surgicalKit", // Surgical Kit
"ACE_tourniquet", // Tourniquet (CAT)
"ACE_Tripod", // SSWT Kit
"ACE_UAVBattery", // UAV Battery
"ACE_Vector", // Vector 21 Nite
"ACE_VectorDay", // Vector 21
"ACE_VMH3", // VMH3
"ACE_VMM3", // VMM3
"ACE_wirecutter", // Wirecutter
"ACE_Yardage450", // Yardage 450
// ACRE Items
"ACRE_PRC117F", // AN/PRC-117F
"ACRE_PRC148", // AN/PRC-148
"ACRE_PRC152", // AN/PRC-152
"ACRE_PRC343", // AN/PRC-343
"ACRE_PRC77", // AN/PRC-77
"ACRE_SEM52SL", // SEM 52 SL
"ACRE_SEM70", // SEM 70
"ACRE_VHF30108", // VHF30108 GSM
"ACRE_VHF30108MAST", // VHF30108 Mast
"ACRE_VHF30108SPIKE", // VHF30108 GS
//TFAR Items
"tf_anprc148jem", // AN/PRC-148 JEM
"tf_anprc152", // AN/PRC-152
"tf_anprc154_1", // AN/PRC-154
"tf_fadak", // FADAK
"tf_microdagr", // MicroDAGR Radio Programmer
"tf_pnr1000a_1", // PNR-1000A
"tf_rf7800str" // PF-7800S-TR
];
GRLIB_arsenal_backpacks = [
"B_AssaultPack_blk", // Assault Pack (Black)
"B_AssaultPack_rgr", // Assault Pack (Green)
"B_AssaultPack_wdl_F", // Assault Pack (Woodland)
"B_Carryall_wdl_F", // Carryall Backpack (Woodland)
"B_Kitbag_rgr", // Kitbag (Green)
"B_Parachute", // Steerable Parachute
"B_LegStrapBag_black_F", // Leg Strap Bag (Black)
"B_LegStrapBag_olive_F", // Leg Strap Bag (Olive)
"B_RadioBag_01_wdl_F", // Radio Pack (Woodland) [NATO]
"B_CombinationUnitRespirator_01_F", // Combined Unit Respirator
// ACE Backpacks
"ace_gunbag_Tan", // Gunbag (Tan)
"ace_gunbag", // Gunbag
"ACE_NonSteerableParachute", // Non-Steerable Parachute
"ACE_TacticalLadder_Pack", // Telescopic Ladder
// TFAR Backpacks
"tf_anprc155_coyote", // AN/PRC 155 Coyote
"tf_mr3000", // MR3000
"tf_rt1523g_black", // RT-1523G (ASIP) Black
"tf_rt1523g_green", // RT-1523G (ASIP) Green
"tf_rt1523g_sage" // RT-1523G (ASIP) Sage
];

View File

@@ -0,0 +1,250 @@
/*
File: description.ext
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-10-16
Last Update: 2020-05-09
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Information about the author, mission name, respawn and more very general settings.
This overrides corresponding settings which are made in the sqm via eden editor.
Reference from where most descriptions are from:
https://community.bistudio.com/wiki/Description.ext
*/
/*
----- General -----
*/
// Gametype and min/max players
class Header {
gameType = "CTI";
minPlayers = 1;
maxPlayers = 34;
};
// Name of Mission author(s) and contributors. Obviously you can only add and not (!) remove someone.
author = "[GREUH] Zbug & McKeewa, KP Liberation Dev Team";
/*
----- Mission Selection Screen -----
*/
// Mission name displayed in the mission selection menu.
briefingName = $STR_MISSION_TITLE;
// Path to image which will be displayed when the mission is highlighted on the mission selection screen.
// Image should be .paa format and in 2:1 aspect ratio ideally 1024x512 (Arma 3).
overviewPicture = "res\lib.paa";
// Text to be displayed below the overviewPicture on the mission selection screen
overviewText = "www.killahpotatoes.de";
/*
----- Mission Loading Screen -----
*/
// String (usually mission name) shown during mission loading.
// The string is shown in a slightly larger font above the loadScreen.
onLoadName = $STR_MISSION_TITLE;
// You can define a picture to be shown while the mission is loaded.
// The path is relative to the mission folder.
loadScreen = "res\lib.paa";
// Displays a message while the mission is loading below the loadScreen picture.
onLoadMission = "www.killahpotatoes.de";
/*
----- Respawn -----
*/
// Enable or disable the respawn button in the menu for INSTANT and BASE respawn types.
respawnButton = 1;
// Templates are pre-defined scripts called when player dies and respawns. They are defined in an array and can be combined together.
// List of pre-defined variants: https://community.bistudio.com/wiki/Arma_3_Respawn#Official_Templates
respawnTemplates[] = {};
// Additionally, you can define side specific templates. When a side has no unique templates, it will use general respawnTemplates instead.
// respawnTemplatesWest[] = {"MenuInventory"};
// respawnTemplatesEast[] = {"Counter"};
// respawnTemplatesGuer[] = {"Tickets"};
// respawnTemplatesCiv[] = {"Spectator"};
// respawnTemplatesVirtual[] = {};
// Type of Respawn (Default 0 in SP, 1 in MP)
// 0 "NONE" No respawn
// 1 "BIRD" Respawn as a seagull
// 2 "INSTANT" Respawn just where you died.
// 3 "BASE" Respawn in base. A respawn marker is needed.
// 4 "GROUP" Respawn in your group. If there is no remaining AI, you will become a seagull.
// 5 "SIDE" Introduced with Armed Assault version 1.08 Respawn into an AI unit on your side (if there's no AI left, you'll become a seagull).
respawn = 3;
// Set respawn delay in seconds.
respawndelay = 5;
// Show the scoreboard and respawn countdown timer for a player if he is killed with respawn type BASE.
respawnDialog = 0;
// Respawn player when he joins the game. Available only for INSTANT and BASE respawn types. (Default: 0)
// -1 - Dont respawn on start. Don't run respawn script on start.
// 0 - Dont respawn on start. Run respawn script on start.
// 1 - Respawn on start. Run respawn script on start.
respawnOnStart = 0;
/*
----- Corpse & Wreck Management -----
*/
// Sets the mode for corpse removal manager.
// 0 = None - None of the units are managed by the manager
// 1 = All - All units are managed by the manager
// 2 = None_But_Respawned - Only units that can respawn are managed by the manager
// 3 = All_But_Respawned - All units are managed by the manager with exception of respawned (opposite to mode 2)
corpseManagerMode = 1;
// Corpse limit before which (<=) corpseRemovalMaxTime applies and after which (>) corpseRemovalMinTime applies.
corpseLimit = 50;
// Remove all bodies that have been dead longer than corpseRemovalMinTime when corpseLimit is reached.
corpseRemovalMinTime = 600;
// Maximum time a corpse can remain on the ground if total number of corpses is equal or under corpseLimit.
corpseRemovalMaxTime = 3600;
// Sets the mode for wreck removal manager.
// 0 = None - None of the vehicles are managed by the manager
// 1 = All - All vehicles are managed by the manager
// 2 = None_But_Respawned - Only vehicles that can respawn are managed by the manager
// 3 = All_But_Respawned - All vehicles are managed by the manager with exception of respawned (opposite to mode 2)
wreckManagerMode = 1;
// Vehicle wreck limit before which (<=) wreckRemovalMaxTime applies and after which (>) wreckRemovalMinTime applies.
wreckLimit = 20;
// Remove all wrecks that have existed longer than wreckRemovalMinTime when wreckLimit is breached.
wreckRemovalMinTime = 1200;
// Maximum time a wreck can remain on the ground if total number of wrecks is equal or under wreckLimit.
wreckRemovalMaxTime = 7200;
// The minimum distance between corpse or wreck and nearest player before the corpse or wreck is allowed to be removed by the garbage collector.
minPlayerDistance = 1000;
/*
----- Mission Settings -----
*/
// Allows functions to log to the RPT file.
allowFunctionsLog = 1;
// As a security measure, functions are by default protected against rewriting during mission.
// This restriction does not apply in missions previewed from the editor.
allowFunctionsRecompile = "[0, 1] select (is3DENMultiplayer || is3DEN)";
// Disable specific channels for voice and text communication.
// MOTD and admin say have exception and will show in global.
// 0 Global, 1 Side, 2 Command, 3 Group, 4 Vehicle, 5 Direct, 6 System
disableChannels[] = {0};
// Multiplayer setting that removes all playable units which do not have a human player.
// When AI is disabled, a player logging out will not have AI take control of his character.
disabledAI = 1;
// Disables randomization on certain objects, object types or object kinds in the mission.
disableRandomization[] = {};
// Allows access to the Debug Console outside of the editor during normal gameplay.
// 0 - Default behavior, available only in editor
// 1 - Available in SP and for hosts / logged in admins
// 2 - Available for everyone
enableDebugConsole = 1;
// Force enable or disable RotorLib flight model.
// 0 - based on player's options
// 1 - enabled (advanced mode)
// 2 - disabled (default flight mode)
forceRotorLibSimulation = 0;
// By default a new player is not auto assigned a free playable slot in the mission lobby in Multiplayer.
// Disable this setting to make him auto assigned to the side with least players.
joinUnassigned = 1;
// When enabled, joining player will join the mission bypassing role selection screen.
// The joinUnassigned param will be set to 1 automatically, so that player receives 1st available role from mission template.
// When leaving such mission, player will go straight back to server browser.
skipLobby = 0;
// Defines if the map is shown after the mission starts.
showMap = 1;
// Enable or disable availability of createVehicleLocal
unsafeCVL = 1;
/*
----- Task Settings -----
*/
// Use new 2D markers on the map.
taskManagement_markers2D = 1;
// Use new 3D markers outside of the map by holding default J key.
taskManagement_markers3D = 1;
// Propagate shared tasks to subordinates.
taskManagement_propagate = 1;
// 3D marker maximum draw distance in meters.
// Within this range, unassigned tasks are drawn on screen.
taskManagement_drawDist = 5000;
/*
----- Config Includes -----
*/
class CfgDebriefing {
#include "KPLIB_debriefs.hpp"
};
class CfgDiscordRichPresence {
applicationID="698133766975258664";
defaultDetails="";
defaultState="Preparing...";
defaultLargeImageKey="liberation_logo";
defaultLargeImageText="KP Liberation";
defaultSmallImageKey="arma3_logo";
defaultSmallImageText="Arma 3";
useTimeElapsed=1;
};
class CfgFunctions {
#include "CfgFunctions.hpp"
#include "KP\KPPLM\KPPLM_functions.hpp"
};
class CfgRespawnTemplates {
};
class CfgTaskDescriptions {
#include "scripts\client\tutorial\CfgTaskDescriptions.hpp"
};
#include "ui\liberation_interface.hpp"
#include "ui\liberation_notifications.hpp"
#include "ui\mission_params.hpp"
#include "GREUH\UI\GREUH_interface.hpp"
#include "KP\KPGUI\KPGUI_defines.hpp"
#include "KP\KPPLM\ui\KPPLM_dialog.hpp"

View File

@@ -0,0 +1,115 @@
/*
File: fn_initCuratorHandlers.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-08-07
Last Update: 2020-08-30
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Initialize curator handlers.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
#define ZEUSVAR(var) (format ["KPLIB_zeus_%1", var])
if (isServer) then {
// delete old Liberation mission placed Zeus module
deleteVehicle zm1;
// add curator assign EventHandler
[true, "KPLIB_createZeus", {
params [
["_player", objNull, [objNull]],
["_limited", false, [true]]
];
if (isNull _player) exitWith {};
private _uid = getPlayerUID _player;
// check if there's already a managed zeus module for this player, if so we can just reassign
private _oldManagedZeus = missionNamespace getVariable [ZEUSVAR(_uid), objNull];
if (!isNull _oldManagedZeus && {_limited isEqualTo (_oldManagedZeus getVariable ["KPLIB_limited", -1])}) exitWith {
_player assignCurator _oldManagedZeus;
[true, "KPLIB_zeusAssigned", [_oldManagedZeus]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", _player];
};
// remove currently assigned curator
private _oldZeus = getAssignedCuratorLogic _player;
unassignCurator _oldZeus;
deleteVehicle _oldZeus;
private _group = createGroup [sideLogic, true];
private _zeus = _group createUnit ["ModuleCurator_F", [-7580, -7580, 0], [], 0, "NONE"];
missionNamespace setVariable [ZEUSVAR(_uid), _zeus];
if (_limited) then {
_zeus setVariable ["Addons", 0, true];
_zeus setVariable ["BIS_fnc_initModules_disableAutoActivation", false];
_zeus setCuratorCoef ["Place", -1e8];
_zeus setCuratorCoef ["Edit", -1e8];
_zeus setCuratorCoef ["Destroy", -1e8];
_zeus setCuratorCoef ["Delete", 0];
} else {
_zeus setVariable ["Addons", 3, true];
_zeus setVariable ["BIS_fnc_initModules_disableAutoActivation", false];
_zeus setCuratorCoef ["Place", 0];
_zeus setCuratorCoef ["Delete", 0];
removeAllCuratorAddons _zeus;
};
_zeus setVariable ["KPLIB_limited", _limited];
_player assignCurator _zeus;
[true, "KPLIB_zeusAssigned", [_zeus, _limited]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", _player];
}] call BIS_fnc_addScriptedEventHandler;
[true, "KPLIB_activateZeusAddons", {
params [
["_zeus", objNull, [objNull]],
["_addons", [], [[]]]
];
_zeus addCuratorAddons _addons;
}] call BIS_fnc_addScriptedEventHandler;
// remove the assigned curator on player disconnect
addMissionEventHandler ["HandleDisconnect", {
params ["", "", "_uid"];
private _zeus = missionNamespace getVariable ZEUSVAR(_uid);
if (!isNil "_zeus") then {
deleteVehicle _zeus;
missionNamespace setVariable [ZEUSVAR(_uid), nil];
};
}];
};
if (hasInterface) then {
[true, "KPLIB_zeusAssigned", {
params [
["_zeus", objNull, [objNull]],
["_limited", false, [true]]
];
if !(_zeus getVariable ["KPLIB_drawCuratorLocations", false]) then {
_zeus setVariable ["KPLIB_drawCuratorLocations", true];
[_zeus] call BIS_fnc_drawCuratorLocations;
};
if (!_limited) then {
private _allAddons = ("true" configClasses (configFile >> "CfgPatches")) apply {configName _x};
[true, "KPLIB_activateZeusAddons", [_zeus, _allAddons]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", 2];
};
}] call BIS_fnc_addScriptedEventHandler;
};
true

View File

@@ -0,0 +1,24 @@
/*
File: fn_requestZeus.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-08-07
Last Update: 2020-08-07
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Request Curator functionality from server.
Parameter(s):
_player - Player requesting Curator functionality [OBJECT, defaults to player]
Returns:
Function reached the end [BOOL]
*/
params [
["_player", player, [objNull]]
];
[true, "KPLIB_createZeus", [_player, KP_liberation_limited_zeus]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", 2];
true

View File

@@ -0,0 +1,56 @@
/*
File: fn_addActionsFob.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-04-13
Last Update: 2020-04-13
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Adds build action to FOB box and repackage action to FOB building.
Parameter(s):
_obj - FOB box/truck/building to add the deploy/repack action to [OBJECT, defaults to objNull]
Returns:
Function reached the end [BOOL]
*/
params [
["_obj", objNull, [objNull]]
];
if (isNull _object) exitWith {["Null object given"] call BIS_fnc_error; false};
if (isNil "FOB_build_in_progress") then {FOB_build_in_progress = false;};
if ((typeOf _obj) isEqualTo FOB_typename) exitWith {
_obj addAction [
["<t color='#FFFF00'>", localize "STR_FOB_REPACKAGE", "</t> <img size='2' image='res\ui_deployfob.paa'/>"] joinString "",
"scripts\client\actions\do_repackage_fob.sqf",
nil,
-754,
false,
true,
"",
"isNull (objectParent _this) && {player getVariable ['KPLIB_hasDirectAccess', false]}",
20
];
true
};
if ((typeOf _obj) in [FOB_box_typename, FOB_truck_typename]) exitWith {
_obj addAction [
["<t color='#FFFF00'>", localize "STR_FOB_ACTION", "</t> <img size='2' image='res\ui_deployfob.paa'/>"] joinString "",
"scripts\client\build\do_build_fob.sqf",
nil,
-752,
false,
true,
"",
"isNull (objectParent _this) && {!FOB_build_in_progress} && {player getVariable ['KPLIB_hasDirectAccess', false] || {[3] call KPLIB_fnc_hasPermission}} && {player getVariable ['KPLIB_isAwayFromStart', false]} && {!(surfaceIsWater getPos player)}",
10
];
true
};
false

View File

@@ -0,0 +1,373 @@
/*
File: fn_addActionsPlayer.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-04-13
Last Update: 2020-08-07
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Adds Liberation player actions to the given player.
Parameter(s):
_player - Player to add the actions to [OBJECT, defaults to player]
Returns:
Function reached the end [BOOL]
*/
params [
["_player", player, [objNull]]
];
if !(isPlayer _player) exitWith {["No player given"] call BIS_fnc_error; false};
if (isNil "KP_liberation_resources_global") then {KP_liberation_resources_global = false;};
// Tutorial
_player addAction [
["<t color='#80FF80'>", localize "STR_TUTO_ACTION", "</t>"] joinString "",
{howtoplay = 1;},
nil,
-700,
false,
true,
"",
"
alive _originalTarget
&& {_originalTarget getVariable ['KPLIB_isNearStart', false]}
"
];
// HALO
_player addAction [
["<t color='#80FF80'>", localize "STR_HALO_ACTION", "</t><img size='2' image='res\ui_redeploy.paa'/>"] joinString "",
"scripts\client\spawn\do_halo.sqf",
nil,
-710,
false,
true,
"",
"
GRLIB_halo_param > 0
&& {isNull (objectParent _originalTarget)}
&& {alive _originalTarget}
&& {
_originalTarget getVariable ['KPLIB_fobDist', 99999] < 20
|| {_originalTarget getVariable ['KPLIB_isNearStart', false]}
}
&& {build_confirmed isEqualTo 0}
"
];
// Redeploy
_player addAction [
["<t color='#80FF80'>", localize "STR_DEPLOY_ACTION", "</t><img size='2' image='res\ui_redeploy.paa'/>"] joinString "",
{GRLIB_force_redeploy = true;},
nil,
-720,
false,
true,
"",
"
isNull (objectParent _originalTarget)
&& {alive _originalTarget}
&& {
_originalTarget getVariable ['KPLIB_fobDist', 99999] < 20
|| {_originalTarget getVariable ['KPLIB_isNearMobRespawn', false]}
|| {_originalTarget getVariable ['KPLIB_isNearStart', false]}
}
&& {build_confirmed isEqualTo 0}
"
];
// Squad management
_player addAction [
["<t color='#80FF80'>", localize "STR_SQUAD_MANAGEMENT_ACTION", "</t><img size='2' image='\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa'/>"] joinString "",
"scripts\client\ui\squad_management.sqf",
nil,
-730,
false,
true,
"",
"
isNull (objectParent _originalTarget)
&& {alive _originalTarget}
&& {!((units group _originalTarget) isEqualTo [_originalTarget])}
&& {(leader group _originalTarget) isEqualTo _originalTarget}
&& {build_confirmed isEqualTo 0}
"
];
// Arsenal
_player addAction [
["<t color='#FFFF00'>", localize "STR_ARSENAL_ACTION", "</t><img size='2' image='res\ui_arsenal.paa'/>"] joinString "",
"scripts\client\actions\open_arsenal.sqf",
nil,
-740,
false,
true,
"",
"
isNull (objectParent _originalTarget)
&& {alive _originalTarget}
&& {
_originalTarget getVariable ['KPLIB_fobDist', 99999] < 20
|| {_originalTarget getVariable ['KPLIB_isNearArsenal', false]}
|| {_originalTarget getVariable ['KPLIB_isNearMobRespawn', false]}
|| {_originalTarget getVariable ['KPLIB_isNearStart', false]}
}
&& {build_confirmed isEqualTo 0}
"
];
// Build
_player addAction [
["<t color='#FFFF00'>", localize "STR_BUILD_ACTION", "</t><img size='2' image='res\ui_build.paa'/>"] joinString "",
"scripts\client\build\open_build_menu.sqf",
nil,
-750,
false,
true,
"",
"
isNull (objectParent _originalTarget)
&& {alive _originalTarget}
&& {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)}
&& {
_originalTarget getVariable ['KPLIB_hasDirectAccess', false]
|| {[3] call KPLIB_fnc_hasPermission}
}
&& {build_confirmed isEqualTo 0}
"
];
// Secondary missions
_player addAction [
["<t color='#FFFF00'>", localize "STR_SECONDARY_OBJECTIVES", "</t>"] joinString "",
"scripts\client\ui\secondary_ui.sqf",
nil,
-760,
false,
true,
"",
"
isNull (objectParent _originalTarget)
&& {alive _originalTarget}
&& {
_originalTarget getVariable ['KPLIB_fobDist', 99999] < 20
|| {_originalTarget getVariable ['KPLIB_isNearStart', false]}
}
&& {
_originalTarget getVariable ['KPLIB_hasDirectAccess', false]
|| {[5] call KPLIB_fnc_hasPermission}
}
&& {build_confirmed isEqualTo 0}
"
];
// Build sector storage
_player addAction [
["<t color='#FFFF00'>", localize "STR_SECSTORAGEBUILD_ACTION", "</t>"] joinString "",
"scripts\client\build\do_sector_build.sqf",
[KP_liberation_small_storage_building],
-770,
false,
true,
"",
"
!(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo [])
&& {isNull (objectParent _originalTarget)}
&& {alive _originalTarget}
&& {
_originalTarget getVariable ['KPLIB_hasDirectAccess', false]
|| {[3] call KPLIB_fnc_hasPermission}
}
&& {(_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo []}
&& {build_confirmed isEqualTo 0}
"
];
// Build supply facility
_player addAction [
["<t color='#FFFF00'>", localize "STR_SECSUPPLYBUILD_ACTION", "</t>"] joinString "",
"scripts\client\build\do_sector_build.sqf",
["supply"],
-780,
false,
true,
"",
"
!(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo [])
&& {isNull (objectParent _originalTarget)}
&& {alive _originalTarget}
&& {
_originalTarget getVariable ['KPLIB_hasDirectAccess', false]
|| {[3] call KPLIB_fnc_hasPermission}
}
&& {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])}
&& {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 4)}
&& {build_confirmed isEqualTo 0}
"
];
// Build ammo facility
_player addAction [
["<t color='#FFFF00'>", localize "STR_SECAMMOBUILD_ACTION", "</t>"] joinString "",
"scripts\client\build\do_sector_build.sqf",
["ammo"],
-790,
false,
true,
"",
"
!(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo [])
&& {isNull (objectParent _originalTarget)}
&& {alive _originalTarget}
&& {
_originalTarget getVariable ['KPLIB_hasDirectAccess', false]
|| {[3] call KPLIB_fnc_hasPermission}
}
&& {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])}
&& {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 5)}
&& {build_confirmed isEqualTo 0}
"
];
// Build fuel facility
_player addAction [
["<t color='#FFFF00'>", localize "STR_SECFUELBUILD_ACTION", "</t>"] joinString "",
"scripts\client\build\do_sector_build.sqf",
["fuel"],
-800,
false,
true,
"",
"
!(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo [])
&& {isNull (objectParent _originalTarget)}
&& {alive _originalTarget}
&& {
_originalTarget getVariable ['KPLIB_hasDirectAccess', false]
|| {[3] call KPLIB_fnc_hasPermission}
}
&& {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])}
&& {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 6)}
&& {build_confirmed isEqualTo 0}
"
];
// Switch global/local resources
_player addAction [
["<t color='#FFFF00'>", localize "STR_RESOURCE_GLOBAL_ACTION", "</t>"] joinString "",
{KP_liberation_resources_global = !KP_liberation_resources_global},
nil,
-810,
false,
true,
"",
"
alive _originalTarget
&& {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)}
&& {build_confirmed isEqualTo 0}
"
];
// Production
_player addAction [
["<t color='#FF8000'>", localize "STR_PRODUCTION_ACTION", "</t>"] joinString "",
"scripts\client\commander\open_production.sqf",
nil,
-820,
false,
true,
"",
"
_originalTarget getVariable ['KPLIB_hasDirectAccess', false]
&& {isNull (objectParent _originalTarget)}
&& {alive _originalTarget}
&& {!(KP_liberation_production isEqualTo [])}
&& {
_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)
|| {!(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo [])}
}
&& {build_confirmed isEqualTo 0}
"
];
// Logistic
_player addAction [
["<t color='#FF8000'>", localize "STR_LOGISTIC_ACTION", "</t>"] joinString "",
"scripts\client\commander\open_logistic.sqf",
nil,
-830,
false,
true,
"",
"
KP_liberation_ailogistics
&& {_originalTarget getVariable ['KPLIB_hasDirectAccess', false]}
&& {isNull (objectParent _originalTarget)}
&& {alive _originalTarget}
&& {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)}
&& {!(
GRLIB_all_fobs isEqualTo []
|| KP_liberation_production isEqualTo []
)}
&& {build_confirmed isEqualTo 0}
"
];
// Permissions
_player addAction [
["<t color='#FF8000'>", localize "STR_COMMANDER_ACTION", "</t><img size='2' image='\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa'/>"] joinString "",
"scripts\client\commander\open_permissions.sqf",
nil,
-840,
false,
true,
"",
"
GRLIB_permissions_param
&& {_originalTarget getVariable ['KPLIB_hasDirectAccess', false]}
&& {alive _originalTarget}
&& {build_confirmed isEqualTo 0}
"
];
// Reassign Zeus
if (player == ([] call KPLIB_fnc_getCommander)) then {
_player addAction [
["<t color='#FF0000'>", localize "STR_REASSIGN_ZEUS", "</t>"] joinString "",
{[] call KPLIB_fnc_requestZeus},
nil,
-870,
false,
true,
"",
"
alive _originalTarget
&& {isNull (_originalTarget getVariable ['KPLIB_ownedZeusModule', objNull])}
&& {build_confirmed isEqualTo 0}
"
];
};
// Create FOB clearance
_player addAction [
["<t color='#FFFF00'>", localize "STR_CLEARANCE_ACTION", "</t>"] joinString "",
{[player getVariable ["KPLIB_fobPos", [0, 0, 0]], GRLIB_fob_range * 0.9, true] call KPLIB_fnc_createClearanceConfirm;},
nil,
-850,
false,
true,
"",
"
_originalTarget getVariable ['KPLIB_hasDirectAccess', false]
&& {isNull (objectParent _originalTarget)}
&& {alive _originalTarget}
&& {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)}
&& {build_confirmed isEqualTo 0}
"
];
true

View File

@@ -0,0 +1,56 @@
/*
File: fn_addObjectInit.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-05-08
Last Update: 2020-04-29
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Applies code from kp_objectInits.sqf to given object. Returns true if some code was applied, false if object has no KPLIB init code.
Parameter(s):
_object - Object which should get init code applied, if there is any defined [OBJECT, defaults to objNull]
Returns:
Function reached the end [BOOL]
*/
params [
["_object", objNull, [objNull]]
];
if (isNull _object) exitWith {["Null object given"] call BIS_fnc_error; false};
// Create objectInitsCache object for this machine, if not present
if (isNil "KPLIB_objectInitsCache") then {KPLIB_objectInitsCache = createSimpleObject ["a3\weapons_f\empty.p3d", [-7580, -7580, 0], true];};
private _elements = KPLIB_objectInitsCache getVariable typeOf _object;
// Find and cache matching objectInits
if (isNil "_elements") then {
_elements = KPLIB_objectInits select {
_x params ["_classes", "", ["_inheritance", false]];
if (_inheritance) then {
{
if (_object isKindOf _x) exitWith {true};
false
} forEach _classes // return
} else {
// return
(toLower (typeOf _object)) in (_classes apply {toLower _x})
};
};
KPLIB_objectInitsCache setVariable [typeOf _object, _elements];
};
if (_elements isEqualTo []) exitWith {
false
};
{
_object call (_x select 1);
} forEach _elements;
true

View File

@@ -0,0 +1,35 @@
/*
File: fn_addRopeAttachEh.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-04-09
Last Update: 2020-04-10
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Adds a ropeAttach EH if given vehicle is able to slingload objects.
The EH will make sure that the slingloaded cargo is local to the
helicopter pilot to avoid a rope breaking due to desyncs.
Parameter(s):
_obj - Object to apply the EH to [OBJECT, defaults to objNull]
Returns:
Function reached the end [BOOL]
*/
params [
["_obj", objNull, [objNull]]
];
if (isNull _obj) exitWith {["Null object given"] call BIS_fnc_error; false};
if (getNumber (configfile >> "CfgVehicles" >> (typeOf _obj) >> "slingLoadMaxCargoMass") > 0) then {
_obj addEventHandler ["RopeAttach", {
params ["_heli", "_rope", "_cargo"];
if !((owner _heli) isEqualTo (owner _cargo)) then {
_cargo setOwner (owner _heli);
};
}];
};
true

View File

@@ -0,0 +1,27 @@
/*
File: fn_allowCrewInImmobile.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-09-05
Last Update: 2019-12-03
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Allows crew in immobile vehicle depending on AllowEnemiesInImmobile parameters.
Parameter(s):
_vehicle - Vehicle which should allow immobile crew [OBJECT, defaults to objNull]
Returns:
Function reached the end [BOOL]
*/
params [
["_vehicle", objNull, [objNull]]
];
if (isNull _vehicle) exitWith {["Null object given"] call BIS_fnc_error; false};
// KP_liberation_allowEnemiesInImmobile (0-50-100)
_vehicle allowCrewInImmobile (random 100 < KP_liberation_allowEnemiesInImmobile);
true

View File

@@ -0,0 +1,29 @@
/*
File: fn_checkClass.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2020-04-16
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Checks if given classname is available in currently loaded modset.
Parameter(s):
_classname - Classname of class to check [STRING, defaults to ""]
Returns:
Classname in config [BOOL]
*/
params [
["_classname", "", [""]]
];
if (_classname isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; false};
if (isClass (configFile >> "CfgVehicles" >> _classname)) then {
true
} else {
if (isServer) then {[format ["%1 not found in CfgVehicles", _classname], "PRESETS"] call KPLIB_fnc_log;};
false
};

View File

@@ -0,0 +1,33 @@
/*
File: fn_checkCrateValue.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-05-26
Last Update: 2019-12-03
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Checks content of given crate and displays a hint about it.
Additionally it makes sure that ropeAttach is enabled on the crate.
Parameter(s):
_crate - Crate to check [OBJECT, defaults to objNull]
Returns:
Function reached the end [BOOL]
*/
if (isDedicated) exitWith {};
params [
["_crate", objNull, [objNull]]
];
if (isNull _crate) exitWith {["Null object given"] call BIS_fnc_error; false};
hint format [localize "STR_ACTION_CRATE_VALUE_HINT", _crate getVariable ["KP_liberation_crate_value", 0]];
if !(ropeAttachEnabled _crate) then {
[_crate, true] remoteExec ["enableRopeAttach"];
};
true

View File

@@ -0,0 +1,125 @@
/*
File: fn_checkGear.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-11-22
Last Update: 2020-04-16
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Checks the players gear for blacklisted items.
Found items are removed from the loadout.
Furthermore a hint with the found items is displayed to the player
while a server log entry is created for the admin.
Parameter(s):
_backpack - Backpack classname of the players current backpack [STRING, defaults to ""]
Returns:
Player checked without findings [BOOL]
*/
params [
["_backpack", "", [""]]
];
private _removedItems = [];
// Check single item slots
if !(toLower (headgear player) in KP_liberation_allowed_items) then {
_removedItems pushBack (headgear player);
removeHeadgear player;
};
if !(toLower (goggles player) in KP_liberation_allowed_items) then {
_removedItems pushBack (goggles player);
removeGoggles player;
};
if !(toLower (uniform player) in KP_liberation_allowed_items) then {
_removedItems pushBack (uniform player);
removeUniform player;
};
if !(toLower (vest player) in KP_liberation_allowed_items) then {
_removedItems pushBack (vest player);
removeVest player;
};
if (!(toLower (backpack player) in KP_liberation_allowed_items) && ((backpack player) != _backpack)) then {
_removedItems pushBack (backpack player);
removeBackpack player;
};
// Check items
private _items = assignedItems player;
_items append ((getItemCargo (uniformContainer player)) select 0);
_items append ((getItemCargo (vestContainer player)) select 0);
_items append ((getItemCargo (backpackContainer player)) select 0);
_items = _items apply {toLower _x};
{
_removedItems pushBack _x;
player unassignItem _x;
player removeItems _x;
} forEach (((_items arrayIntersect _items) - KP_liberation_allowed_items) select {!([_x] call KPLIB_fnc_isRadio)});
// Check magazines
_items = ((getMagazineCargo (uniformContainer player)) select 0);
_items append ((getMagazineCargo (vestContainer player)) select 0);
_items append ((getMagazineCargo (backpackContainer player)) select 0);
_items = _items apply {toLower _x};
{
_removedItems pushBack _x;
player removeMagazines _x;
} forEach ((_items arrayIntersect _items) - KP_liberation_allowed_items);
// Check weapons stored in inventory containers
{
if (!isNull _x) then {_removedItems append ([_x] call KPLIB_fnc_checkWeaponCargo);};
} forEach [uniformContainer player, vestcontainer player, backpackContainer player];
// Check equipped weapons
_items = (weapons player) apply {toLower ([_x] call BIS_fnc_baseWeapon)};
{
_removedItems pushBack _x;
player removeWeapon _x;
} forEach (_items - KP_liberation_allowed_items);
// Check weapon items of primary weapon
_items = primaryWeaponItems player;
_items append primaryWeaponMagazine player;
_items = _items apply {toLower _x};
{
_removedItems pushBack _x;
player removePrimaryWeaponItem _x;
} forEach (_items - KP_liberation_allowed_items);
// Check weapon items of secondary weapon
_items = secondaryWeaponItems player;
_items append secondaryWeaponMagazine player;
_items = _items apply {toLower _x};
{
_removedItems pushBack _x;
player removeSecondaryWeaponItem _x;
} forEach (_items - KP_liberation_allowed_items);
// Check weapon items of handgun
_items = handgunItems player;
_items append handgunMagazine player;
_items = _items apply {toLower _x};
{
_removedItems pushBack _x;
player removeHandgunItem _x;
} forEach (_items - KP_liberation_allowed_items);
// Remove duplicates and empty strings
_removedItems = (_removedItems arrayIntersect _removedItems) - [""];
// Show hint and log list, if something was found
if !(_removedItems isEqualTo []) exitWith {
[_removedItems] spawn {
params ["_removedItems"];
[format ["Found %1 at player %2", _removedItems, name player], "BLACKLIST"] remoteExecCall ["KPLIB_fnc_log", 2];
hint format [localize "STR_BLACKLISTED_ITEM_FOUND", _removedItems joinString "\n"];
sleep 6;
hintSilent "";
};
false
};
true

View File

@@ -0,0 +1,107 @@
/*
File: fn_removeWeaponCargo.sqf
Author: Zharf - https://github.com/zharf
Date: 2019-06-21
Last Update: 2020-04-13
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Removes weapons not found in KP_liberation_allowed_items from a cargo space.
Warning: All weapon attachments/magazines in container will become detached.
Warning: Preset weapons without non-preset parents will get their attachments readded (engine limitation).
Parameter(s):
_container - Object with cargo [OBJECT, defaults to objNull]
Returns:
Removed items [ARRAY]
*/
params [
["_container", objNull, [objNull]]
];
if (isNull _container) exitWith {["Null object given"] call BIS_fnc_error; []};
private _removed = [];
private _weaponsItemsCargo = weaponsItemsCargo _container;
clearWeaponCargoGlobal _container;
{
_x params ["_weapon", "_muzzle", "_pointer", "_optic", "_magazine", "_magazineGL", "_bipod"];
// Some weapons don't have non-preset parents
_components = _weapon call KPLIB_fnc_getWeaponComponents;
private _weaponNonPreset = _components select 0;
if (_weaponNonPreset == "") then {
_weaponNonPreset = _weapon;
};
if ((toLower ([_x] call BIS_fnc_baseWeapon)) in KP_liberation_allowed_items) then {
_container addWeaponCargoGlobal [_weaponNonPreset, 1];
// If weapon does not have a non-preset parent, only add attachments that were custom added
// Removed attachments cannot be handled (engine limitation) and will be readded due to having to readd preset weapon
private _presetAttachments = [];
if (_weaponNonPreset == _weapon) then {
_presetAttachments = _components;
};
if !(toLower _muzzle in _presetAttachments) then {
if (toLower _muzzle in KP_liberation_allowed_items) then {
_container addItemCargoGlobal [_muzzle, 1];
} else {
_removed pushBack _muzzle;
}
};
if !(toLower _pointer in _presetAttachments) then {
if (toLower _pointer in KP_liberation_allowed_items) then {
_container addItemCargoGlobal [_pointer, 1];
} else {
_removed pushBack _pointer;
}
};
if !(toLower _optic in _presetAttachments) then {
if (toLower _optic in KP_liberation_allowed_items) then {
_container addItemCargoGlobal [_optic, 1];
} else {
_removed pushBack _optic;
}
};
if !(toLower _bipod in _presetAttachments) then {
if (toLower _bipod in KP_liberation_allowed_items) then {
_container addItemCargoGlobal [_bipod, 1];
} else {
_removed pushBack _bipod;
}
};
_magazine params [["_magazineClass", ""], ["_magazineAmmoCount", 0]];
if (_magazineClass != "") then {
if (toLower _magazineClass in KP_liberation_allowed_items) then {
_container addMagazineAmmoCargo [_magazineClass, 1, _magazineAmmoCount];
} else {
_removed pushBack _magazineClass;
}
};
_magazineGL params [["_magazineGLClass", ""], ["_magazineGLAmmoCount", 0]];
if (_magazineGLClass != "") then {
if (toLower _magazineGLClass in KP_liberation_allowed_items) then {
_container addMagazineAmmoCargo [_magazineGLClass, 1, _magazineGLAmmoCount];
} else {
_removed pushBack _magazineGLClass;
}
};
} else {
_removed pushBack _weapon;
}
} forEach _weaponsItemsCargo;
_removed;

View File

@@ -0,0 +1,28 @@
/*
File: fn_cleanOpforVehicle.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2020-04-20
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Deletes given vehicle, if not an opfor vehicle captured by players.
Parameter(s):
_veh - Vehicle to delete if not captured [OBJECT, defaults to objNull]
Returns:
Function reached the end [BOOL]
*/
params [
["_veh", objNull, [objNull]]
];
if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false};
if !(_veh getVariable ["KPLIB_captured", false]) then {
deleteVehicle _veh;
};
true

View File

@@ -0,0 +1,34 @@
/*
File: fn_clearCargo.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-03-30
Last Update: 2020-03-30
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Clears the cargo of given object while providing
a toggle to skip the paramter and ace crate check.
Parameter(s):
_obj - Object for cargo clearing [OBJECT, defaults to objNull]
_force - Skip the paramter and ACE crate check [BOOL, defaults to false]
Returns:
Function reached the end [BOOL]
*/
params [
["_obj", objNull, [objNull]],
["_force", false, [false]]
];
if (isNull _obj) exitWith {["Null object given"] call BIS_fnc_error; false};
if (_force || {!((typeOf _obj) in KP_liberation_ace_crates) && {KP_liberation_clear_cargo || {!((typeOf _obj) isKindOf "AllVehicles")}}}) then {
clearWeaponCargoGlobal _obj;
clearMagazineCargoGlobal _obj;
clearBackpackCargoGlobal _obj;
clearItemCargoGlobal _obj;
};
true

View File

@@ -0,0 +1,56 @@
/*
File: fn_crAddAceAction.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2020-04-22
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Adds action for healing with ACE field dressing to a given object.
Parameter(s):
_civ - Civilian to add the healing action to [OBJECT, defaults to objNull]
Returns:
Function reached the end [BOOL]
*/
params [
["_civ", objNull, [objNull]]
];
if (isNull _civ) exitWith {["Null object given"] call BIS_fnc_error; false};
if (KP_liberation_civrep_debug > 0) then {[format ["ace_action called on: %1", debug_source], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];};
_civ addAction [
"<t color='#FF0000'>" + localize "STR_CR_ACE_ACTION" + "</t>",
{
params ["_target", "_caller"];
private _items = [
"ACE_elasticBandage",
"ACE_fieldDressing",
"ACE_packingBandage",
"ACE_quikclot"
] arrayIntersect (vestItems _caller + uniformItems _caller + backpackItems _caller);
if !(_items isEqualTo []) then {
_caller removeItem (selectRandom _items);
_target setDamage 0;
} else {
hint localize "STR_CR_ACE_ACTION_FAIL";
sleep 3;
hintSilent "";
};
},
nil,
1.5,
true,
true,
"",
"(damage _target) >= 0.5",
3
];
true

View File

@@ -0,0 +1,18 @@
/*
File: fn_crGetMulti.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-10-08
Last Update: 2019-12-04
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Returns the current multiplier of the civilian reputation.
Parameter(s):
NONE
Returns:
Reputation multiplier [NUMBER]
*/
3 min (floor (abs (KP_liberation_civ_rep / 25)))

View File

@@ -0,0 +1,36 @@
/*
File: fn_crGlobalMsg.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2020-04-17
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
No description added yet.
Parameter(s):
_msgType - Type of message to display [NUMBER, defaults to -1]
_data - Data which is needed in the selected msgType [ARRAY, defaults to []]
Returns:
Function reached the end [BOOL]
*/
params [
["_msgType", -1, [0]],
["_data", [], []]
];
if (KP_liberation_civrep_debug > 0) then {[format ["globalMsg called on: %1 - Parameters: [%2, %3]", debug_source, _msgType, _data], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];};
switch (_msgType) do {
case 0: {systemChat localize "STR_CR_VEHICLEMSG";};
case 1: {systemChat (format [localize "STR_CR_BUILDINGMSG", (_data select 0)]);};
case 2: {systemChat (format [localize "STR_CR_KILLMSG", (_data select 0)]);};
case 3: {systemChat (format [localize "STR_CR_RESISTANCE_KILLMSG", (_data select 0)]);};
case 4: {systemChat (format [localize "STR_CR_HEALMSG", (_data select 0)]);};
case 5: {["lib_asymm_guerilla_incoming", _data] call BIS_fnc_showNotification;};
default {[format ["globalMsg without valid msgType - %1", _msgType], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];};
};
true

View File

@@ -0,0 +1,74 @@
/*
File: fn_crateFromStorage.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-03-27
Last Update: 2020-04-25
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Unloads given crate type from storage area.
Parameter(s):
_cratetype - Crate type [STRING, defaults to ""]
_storage - Storage [OBJECT, defaults to objNull]
_update - Update sector resources [BOOL, defaults to false]
Returns:
Function reached the end [BOOL]
*/
params [
["_cratetype", "", [""]],
["_storage", objNull, [objNull]],
["_update", false, [false]]
];
// Validate parameters
if !((toLower _cratetype) in KPLIB_crates) exitWith {["Invalid craty type given: %1", _cratetype] call BIS_fnc_error; false};
if (isNull _storage) exitWith {["Null object given"] call BIS_fnc_error; false};
// Get correct storage positions
([_storage] call KPLIB_fnc_getStoragePositions) params ["_storagePositions", "_unloadDist"];
// Check for next empty unload position
private _i = 0;
private _dir = (getDir _storage) - 180;
private _unloadPos = _storage getPos [_unloadDist, _dir];
while {!((nearestObjects [_unloadPos, KPLIB_crates, 1]) isEqualTo [])} do {
_i = _i + 1;
_unloadPos = _storage getPos [_unloadDist + _i * 1.8, _dir];
};
// Fetch all stored crates
private _storedCrates = attachedObjects _storage;
reverse _storedCrates;
private _crate = _storedCrates deleteAt (_storedCrates findIf {(typeOf _x) == _crateType});
// Exit if desired crate isn't stored
if (isNil "_crate") exitWith {false};
// Unload crate
detach _crate;
[_crate, true] call KPLIB_fnc_clearCargo;
_crate setPos _unloadPos;
[_crate, true] remoteExec ["enableRopeAttach"];
if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];};
// Fill the possible gap in the storage area
reverse _storedCrates;
_i = 0;
{
detach (_x select 0);
(_x select 0) attachTo [_storage, [(_storagePositions select _i) select 0, (_storagePositions select _i) select 1, _x select 1]];
_i = _i + 1;
} forEach (_storedCrates apply {[_x, [typeOf _x] call KPLIB_fnc_getCrateHeight]});
// Update sector resources
if (_update) then {
if ((_storage getVariable ["KP_liberation_storage_type", -1]) == 1) then {
recalculate_sectors = true;
publicVariable "recalculate_sectors";
};
};
true

View File

@@ -0,0 +1,64 @@
/*
File: fn_crateToStorage.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-03-27
Last Update: 2020-04-23
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Attach given crate at storage area.
Parameter(s):
_crate - Crate [OBJECT, defaults to objNull]
_storage - Storage [OBJECT, defaults to objNull]
_update - Update sector resources [BOOL, defaults to false]
Returns:
Function reached the end [BOOL]
*/
params [
["_crate", objNull, [objNull]],
["_storage", objNull, [objNull]],
["_update", false, [false]]
];
// Validate parameters
if (isNull _crate) exitWith {["Null object given"] call BIS_fnc_error; false};
// Handle return values from nearestObjects of function call in ammobox action manager
if (!isNull _storage) then {
// Get storage and crate specific values
([_storage] call KPLIB_fnc_getStoragePositions) params ["_storage_positions", "_unload_distance"];
private _height = [typeOf _crate] call KPLIB_fnc_getCrateHeight;
// Remove possible cargo from crate
[_crate, true] call KPLIB_fnc_clearCargo;
// Check for enough space in storage
private _crates_count = count (attachedObjects _storage);
if (_crates_count >= (count _storage_positions)) exitWith {if (!isDedicated) then {[] spawn {hint localize "STR_BOX_CANTSTORE"; sleep 2; hintSilent "";};};};
// Store crate
_crate attachTo [_storage, [(_storage_positions select _crates_count) select 0, (_storage_positions select _crates_count) select 1, _height]];
[_crate, false] remoteExec ["enableRopeAttach"];
if(KP_liberation_ace) then {[_crate, false, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];};
// Update sector resource values, if requested
if (_update) then {
if ((_storage getVariable ["KP_liberation_storage_type", -1]) == 1) then {
recalculate_sectors = true;
publicVariable "recalculate_sectors";
};
};
} else {
if (!isDedicated) then {
[] spawn {
hint localize "STR_BOX_CANTSTORE";
sleep 2;
hintSilent "";
};
};
};
true

View File

@@ -0,0 +1,53 @@
/*
File: fn_crawlAllItems.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-04-19
Last Update: 2020-04-19
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Crawls through CfgWeapons, CfgMagazines, CfgVehicles and CfgGlasses to fetach all
weapon, magazine, item and backpack classnames available in the arsenal.
Parameter(s):
NONE
Returns:
Array of classnames for weapons, magazines, items and backpacks [ARRAY]
*/
private _weapons = [];
private _magazines = [];
private _items = [];
private _backpacks = [];
private _configClasses = [];
private _type = [];
{
_configClasses append (
"
_type = (configName _x) call BIS_fnc_itemType;
(getNumber(_x >> 'scope') isEqualTo 2) && !(((_type select 0) isEqualTo '') || ((_type select 0) isEqualTo 'VehicleWeapon'))
" configClasses _x
);
} forEach [
(configFile >> "CfgWeapons"),
(configFile >> "CfgMagazines"),
(configFile >> "CfgVehicles"),
(configFile >> "CfgGlasses")
];
private _classnames = _configClasses apply {configName _x};
{
_type = _x call BIS_fnc_itemType;
switch (_type select 0) do {
case "Weapon": {if ((_x call BIS_fnc_baseWeapon) isEqualTo _x) then {_weapons pushBackUnique _x;};};
case "Mine";
case "Magazine": {_magazines pushBackUnique _x;};
case "Item";
case "Equipment": {if ((_type select 1) isEqualTo "Backpack") then {_backpacks pushBackUnique _x;} else {_items pushBackUnique _x;};};
};
} forEach _classnames;
[_weapons, _magazines, _items, _backpacks]

View File

@@ -0,0 +1,45 @@
/*
File: fn_createClearance.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2020-04-10
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Adds a terrain objects clearance around given position with given radius.
If the save switch is set to true, the clearance will be saved during the campaign.
Parameter(s):
_centerPos - Position for the clearance [POSITION, defaults to [0, 0, 0]]
_radius - Radius of the clearance around the center [NUMBER, defaults to 0]
_save - Switch to decide if the clearance should be persistent [BOOL, defaults to false]
Returns:
Function reached the end [BOOL]
*/
if (!isServer) exitWith {false};
params [
["_centerPos", [0, 0, 0], [[]], [3]],
["_radius", 0, [0]],
["_save", false, [false]]
];
if (_centerPos isEqualTo [0, 0, 0]) exitWith {["Zero position given"] call BIS_fnc_error; false};
if (_radius isEqualTo 0) exitWith {["Zero radius given"] call BIS_fnc_error; false};
if (save_is_loaded && {(KP_liberation_clearances findIf {(_x select 0) isEqualTo _centerPos}) != -1}) exitWith {false};
{
_x switchLight "OFF";
_x hideObjectGlobal true;
_x allowDamage false;
} forEach (nearestTerrainObjects [_centerPos, [], _radius, false, true]);
if (_save) then {
KP_liberation_clearances pushBackUnique [_centerPos, _radius];
publicVariable "KP_liberation_clearances";
};
true

View File

@@ -0,0 +1,52 @@
/*
File: fn_createClearanceConfirm.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-04-10
Last Update: 2020-04-10
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Displays a confirmation dialog for the create clearance action.
If confirmed, the clearance will be created by the server.
Parameter(s):
_centerPos - Position for the clearance [POSITION, defaults to [0, 0, 0]]
_radius - Radius of the clearance around the center [NUMBER, defaults to 0]
_save - Switch to decide if the clearance should be persistent [BOOL, defaults to false]
Returns:
Creation confirmed [BOOL]
*/
params [
["_centerPos", [0, 0, 0], [[]], [3]],
["_radius", 0, [0]],
["_save", false, [false]]
];
if (_centerPos isEqualTo [0, 0, 0]) exitWith {["Zero position given"] call BIS_fnc_error; false};
if (_radius isEqualTo 0) exitWith {["Zero radius given"] call BIS_fnc_error; false};
if (!canSuspend) exitWith {_this spawn KPLIB_fnc_createClearanceConfirm};
private _text = format [
localize "STR_CONFIRM_CLEARANCE_TEXT",
count (nearestTerrainObjects [_centerPos, [], _radius, false, true]),
floor _radius,
["FOB", [_centerPos] call KPLIB_fnc_getFobName] joinString " "
];
private _confirmed = [
_text,
localize "STR_CONFIRM_CLEARANCE_TITLE",
localize "STR_CONFIRM",
localize "STR_RECYCLING_CANCEL",
nil,
false,
false
] call BIS_fnc_guiMessage;
if (_confirmed) then {
[_centerPos, _radius, true] remoteExecCall ["KPLIB_fnc_createClearance", 2];
};
_confirmed

View File

@@ -0,0 +1,44 @@
/*
File: fn_createCrate.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-10-11
Last Update: 2020-04-25
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Spawns a resource crate of given type and with given amount at given position.
Parameter(s):
_resource - Type of resource [STRING, defaults to KP_liberation_supply_crate]
_amount - Resource amount [NUMBER, defaults to 100]
_pos - Position where to spawn the crate [POSITION, defaults to getPos player]
Returns:
Created crate [OBJECT]
*/
params [
["_resource", KP_liberation_supply_crate, [""]],
["_amount", 100, [0]],
["_pos", getPos player, [[]], [2, 3]]
];
// Check if resource is valid
if !((toLower _resource) in KPLIB_crates) exitWith {
["Invalid resource param given: %1", _resource] call BIS_fnc_error;
objNull
};
// Create crate
private _crate = _resource createVehicle _pos;
_crate setMass 500;
_crate setVariable ["KP_liberation_crate_value", _amount, true];
[_crate, true] call KPLIB_fnc_clearCargo;
// Add ACE carry functionality
if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];};
// Process KP object init
[_crate] call KPLIB_fnc_addObjectInit;
_crate

View File

@@ -0,0 +1,48 @@
/*
File: fn_createManagedUnit.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-10-04
Last Update: 2019-12-04
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Creates unit managed by kill tracker.
Parameter(s):
_type - Type of unit [STRING, defaults to ""]
_spawnPos - Where to spawn [ARRAY|OBJECT|GROUP, defaults to [0, 0, 0]]
_group - Group to add the unit to [GROUP, defaults to grpNull]
_rank - Unit rank [STRING, defaults to "PRIVATE"]
_placement - Placement radius [NUMBER, defaults to 0]
Returns:
Created unit [OBJECT]
*/
params [
["_type", "", [""]],
["_spawnPos", [0, 0, 0], [[], objNull, grpNull], [2, 3]],
["_group", grpNull, [grpNull]],
["_rank", "PRIVATE", [""]],
["_placement", 0, [0]]
];
private ["_unit"];
isNil {
// Create temp group, as we need to let the unit join the "correct side group".
// If we use the "correct side group" for the createUnit, the group would switch to the side of the unit written in the config.
private _groupTemp = createGroup [CIVILIAN, true];
_unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"];
_unit addMPEventHandler ["MPKilled", {_this spawn kill_manager}];
_unit setRank _rank;
// Join to target group to preserve Side
[_unit] joinSilent _group;
deleteGroup _groupTemp;
// Process KP object init
[_unit] call KPLIB_fnc_addObjectInit;
};
_unit

View File

@@ -0,0 +1,40 @@
/*
File: fn_doSave.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-03-29
Last Update: 2020-05-08
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Save mission state to profileNamespace.
Parameter(s):
NONE
Returns:
Data was saved [BOOL]
*/
if (!isServer) exitWith {false};
if (!KPLIB_init) exitWith {
["Framework is not initalized, skipping save!", "SAVE"] call KPLIB_fnc_log;
false
};
if (missionNamespace getVariable ["kp_liberation_saving", false]) exitWith {
["Saving already in progress, skipping save!", "SAVE"] call KPLIB_fnc_log;
false
};
kp_liberation_saving = true;
private _saveData = [] call KPLIB_fnc_getSaveData;
// Write data in the server profileNamespace
profileNamespace setVariable [GRLIB_save_key, str _saveData];
saveProfileNamespace;
kp_liberation_saving = false;
true

View File

@@ -0,0 +1,56 @@
/*
File: fn_fillStorage.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2020-05-04
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Fills given storage with given amounts of resources.
Parameter(s):
_supply - Amount of supply resource [NUMBER, defaults to 0]
_ammo - Amount of ammo resource [NUMBER, defaults to 0]
_fuel - Amount of fuel resource [NUMBER, defaults to 0]
_storage - Storage object to fill [OBJECT, defaults to objNull]
_delay - Enable a small delay between crate create and attach to storage [BOOL, defaults to false]
Returns:
Function reached the end [BOOL]
*/
params [
["_supply", 0, [0]],
["_ammo", 0, [0]],
["_fuel", 0, [0]],
["_storage", objNull, [objNull]],
["_delay", false, [false]]
];
if (isNull _storage) exitWith {["Null object given"] call BIS_fnc_error; false};
// Make sure it's scheduled, if delay is enabled
if (_delay && {!canSuspend}) exitWith {_this spawn KPLIB_fnc_fillStorage};
private _amount = 0;
private _crate = objNull;
private _pos = getPos _storage;
{
while {_x > 0} do {
_amount = 100 min _x;
_x = _x - _amount;
_crate = [
KPLIB_crates select _forEachIndex,
_amount,
_pos
] call KPLIB_fnc_createCrate;
if (_delay) then {sleep 0.1;};
[_crate, _storage] call KPLIB_fnc_crateToStorage;
};
} forEach [_supply, _ammo, _fuel];
true

View File

@@ -0,0 +1,49 @@
/*
File: fn_forceBluforCrew.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-12-04
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Creates vehicle crew from vehicle config.
If the crew isn't the same side as the players, it'll create a player side crew.
Parameter(s):
_veh - Vehicle to add the blufor crew to [OBJECT, defaults to objNull]
Returns:
Function reached the end [BOOL]
*/
params [
["_veh", objNull, [objNull]]
];
if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false};
// Create regular config crew
private _grp = createVehicleCrew _veh;
// If the config crew isn't the correct side, replace it with the crew classnames from the preset
if ((side _grp) != GRLIB_side_friendly) then {
{deleteVehicle _x} forEach (units _grp);
_grp = createGroup [GRLIB_side_friendly, true];
while {count units _grp < 3} do {
[crewman_classname, getPos _veh, _grp] call KPLIB_fnc_createManagedUnit;
};
((units _grp) select 0) moveInDriver _veh;
((units _grp) select 1) moveInGunner _veh;
((units _grp) select 2) moveInCommander _veh;
// Delete crew which isn't in the vehicle due to e.g. no commander seat
{
if (isNull objectParent _x) then {deleteVehicle _x};
} forEach (units _grp);
};
// Set the crew to safe behaviour
_grp setBehaviour "SAFE";
true

View File

@@ -0,0 +1,18 @@
/*
File: fn_getAdaptiveVehicle.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-11-26
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Provides a vehicle classname depending on the combat readiness.
Parameter(s):
NONE
Returns:
Vehicle classname [STRING]
*/
selectRandom ([opfor_vehicles, opfor_vehicles_low_intensity] select (combat_readiness < 40))

View File

@@ -0,0 +1,32 @@
/*
File: fn_getBluforRatio.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-12-05
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the ratio of blufor units in the given sector to the total number of units.
Parameter(s):
_sector - Sector to get the blufor / opfor ratio from [STRING, defaults to ""]
Returns:
Blufor ratio [NUMBER]
*/
params [
["_sector", "", [""]]
];
if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; -1};
private _range = [GRLIB_capture_size, GRLIB_capture_size * 1.4] select (_sector in sectors_bigtown);
private _red = [(markerPos _sector), _range, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount;
private _blue = [(markerPos _sector), _range, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount;
if (_blue > 0 || _red > 0) then {
_blue / (_blue + _red)
} else {
[0, 1] select (_sector in blufor_sectors)
};

View File

@@ -0,0 +1,18 @@
/*
File: fn_getCommander.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-11-25
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Returns the actual commander object.
Parameter(s):
NONE
Returns:
Commander [OBJECT]
*/
missionNamespace getVariable ["commandant", objNull]

View File

@@ -0,0 +1,33 @@
/*
File: fn_getCrateHeight.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-03-26
Last Update: 2020-03-26
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the height for the relative positioning of a crate.
Parameter(s):
_crateClass - Classname of the crate to get the height for [STRING, defaults to ""]
Returns:
Height for given class [NUMBER]
*/
params [
["_crateClass", "", [""]]
];
if (_crateClass isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; 0};
private _height = 0;
switch (_crateClass) do {
case KP_liberation_supply_crate: {_height = 0.4;};
case KP_liberation_ammo_crate: {_height = 0.6;};
case KP_liberation_fuel_crate: {_height = 0.3;};
default {_height = 0.6;};
};
_height

View File

@@ -0,0 +1,22 @@
/*
File: fn_getFobName.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2020-04-05
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the FOB name in accordance to the military alphabet set in init presets.
Parameter(s):
_fob - Position of FOB to get the name from [POSITION, defaults to [0, 0, 0]]
Returns:
FOB name [STRING]
*/
params [
["_fob", [0, 0, 0], [[]], [2, 3]]
];
military_alphabet param [GRLIB_all_fobs findIf {(_x distance2d _fob) < 100}, ""]

View File

@@ -0,0 +1,24 @@
/*
File: fn_getFobResources.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-05-08
Last Update: 2020-05-09
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the FOB resource data in format [<POSITION>, <SUPPLIES>, <AMMO>, <FUEL>, <HAS_AIR_BUILD>, <HAS_REC_WORKSHOP>].
Parameter(s):
_fob - Position of FOB to get resources of [POSITION, defaults to [0, 0, 0]]
Returns:
FOB resource data [ARRAY]
*/
#define NO_RESULT [[0, 0, 0], 0, 0, 0, false, false]
params [
["_fob", [0, 0, 0], [[]], [2, 3]]
];
KP_liberation_fob_resources param [KP_liberation_fob_resources findIf {(_x select 0) isEqualTo _fob}, NO_RESULT] // return

View File

@@ -0,0 +1,50 @@
/*
File: fn_getGroupType.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2020-04-25
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the type of a given group.
Can be infantry, light, heavy, air, support, static or UAV.
Parameter(s):
_grp - Group to get the type from [GROUP, defaults to grpNull]
Returns:
Group type [STRING]
*/
params [
["_grp", grpNull, [grpNull]]
];
if (isNull _grp) exitWith {["Null group given"] call BIS_fnc_error; ""};
private _grpType = "infantry";
private _vehType = "";
// Get vehicle type, if at least one group member is in a crew seat
private _parent = objNull;
{
_parent = objectParent _x;
if (!(isNull _parent) && {_x in [driver _parent, gunner _parent, commander _parent]}) exitWith {
_vehType = typeOf (objectParent _x);
};
} forEach (units _grp);
// Exit with infantry, if not as crew in objectParent
if (_vehType isEqualTo "") exitWith {_grpType};
// Otherwise continue to get the type of the vehicle
[] call {
if ((toLower _vehType) in KPLIB_b_light_classes) exitWith {_grpType = "light";};
if ((toLower _vehType) in KPLIB_b_heavy_classes) exitWith {_grpType = "heavy";};
if ((toLower _vehType) in KPLIB_b_air_classes) exitWith {_grpType = "air";};
if ((toLower _vehType) in KPLIB_b_static_classes) exitWith {_grpType = "static";};
if ((toLower _vehType) in KPLIB_b_support_classes) exitWith {_grpType = "support";};
if ([_vehType] call KPLIB_fnc_isClassUAV) exitWith {_grpType = "uav";};
};
_grpType

View File

@@ -0,0 +1,31 @@
/*
File: fn_getLessLoadedHC.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2019-12-05
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Returns the HC with the current less load.
Parameter(s):
NONE
Returns:
Less loaded HC [OBJECT]
*/
private _hcArray = [];
private _hc = objNull;
{
_hc = _x;
_hcArray pushBack [count (allUnits select {(owner _x) isEqualTo (owner _hc)}), _hc];
} forEach (entities "HeadlessClient_F");
if !(_hcArray isEqualTo []) then {
_hcArray sort true;
(_hcArray select 0) select 1
} else {
objNull
};

View File

@@ -0,0 +1,297 @@
/*
File: fn_getLoadout.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-11-25
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
No description added yet.
Parameter(s):
_localVariable - Description [DATATYPE, defaults to DEFAULTVALUE]
Returns:
Function reached the end [BOOL]
*/
// TODO
/*
AUTHOR: aeroson
NAME: get_loadout.sqf
VERSION: 3.4
DOWNLOAD & PARTICIPATE:
https://github.com/aeroson/a3-loadout
http://forums.bistudio.com/showthread.php?148577-GET-SET-Loadout-(saves-and-loads-pretty-much-everything)
DESCRIPTION:
I guarantee backwards compatibility.
These scripts allows you set/get (load/save)all of the unit's gear, including:
uniform, vest, backpack, contents of it, all quiped items, all three weapons with their attachments, currently loaded magazines and number of ammo in magazines.
All this while preserving order of items.
Useful for saving/loading loadouts.
Ideal for revive scripts where you have to set exactly the same loadout to newly created unit.
Uses workaround with placeholders to add vest/backpack items, so items stay where you put them.
PARAMETER(S):
0 : target unit
1 : (optional) array of options, default [] :
"ammo" will save ammo count of partially emptied magazines
"repetitive" intended for repetitive use, will not use selectWeapon, means no visible effect on solder, but will not save magazines of assigned items such as laser designator batteries
RETURNS:
Array : array of strings/arrays containing target unit's loadout, to be used by fnc_set_loadout.sqf
addAction support:
Saves player's loadout into global var loadout
*/
private ["_target","_options","_saveMagsAmmo","_isRepetitive","_isOnFoot","_currentWeapon","_currentMode","_isFlashlightOn","_isIRLaserOn","_magazinesAmmo","_loadedMagazines","_saveWeaponMagazines","_getMagsAmmo","_backPackItems","_assignedItems","_data"];
_options = [];
// addAction support
if(count _this < 4) then {
#define PARAM_START private ["_PARAM_INDEX"]; _PARAM_INDEX=0;
#define PARAM_REQ(A) if (count _this <= _PARAM_INDEX) exitWith { systemChat format["required param '%1' not supplied in file:'%2' at line:%3", #A ,__FILE__,__LINE__]; }; A = _this select _PARAM_INDEX; _PARAM_INDEX=_PARAM_INDEX+1;
#define PARAM(A,B) A = B; if (count _this > _PARAM_INDEX) then { A = _this select _PARAM_INDEX; }; _PARAM_INDEX=_PARAM_INDEX+1;
PARAM_START
PARAM_REQ(_target)
PARAM(_options,[])
} else {
_target = player;
};
_saveMagsAmmo = "ammo" in _options;
_isRepetitive = "repetitive" in _options;
_isOnFoot = vehicle _target == _target;
_currentWeapon = "";
_currentMode = "";
_isFlashlightOn = false;
_isIRLaserOn = false;
_magazinesAmmo = magazinesAmmoFull _target;
// save weapon mode and muzzle
if(_isOnFoot) then {
_currentWeapon = currentMuzzle _target;
_currentMode = currentWeaponMode _target;
_isFlashlightOn = _target isFlashlightOn _currentWeapon;
_isIRLaserOn = _target isIRLaserOn _currentWeapon;
} else {
_currentWeapon = currentWeapon _target;
};
_loadedMagazines=[];
// universal weapon saving
_saveWeaponMagazines = {
private ["_weapon","_magazines","_muzzles","_saveMagazine"];
_weapon = _this select 0;
_magazines = [];
_saveMagazine = { // find, save and eat mag for _weapon
private ["_weapon","_magazine","_ammo"];
_weapon = _this select 0;
_magazine = "";
_ammo = 0;
{
if((_x select 4)==_weapon) then {
_magazine = _x select 0;
_ammo = _x select 1;
_x = -1;
};
} forEach _magazinesAmmo;
_magazinesAmmo = _magazinesAmmo - [-1];
if(_magazine!="") then {
if(_saveMagsAmmo) then {
_magazines set [count _magazines, [_magazine, _ammo]];
} else {
_magazines set [count _magazines, _magazine];
};
};
};
if(_weapon != "") then {
[_weapon] call _saveMagazine;
_muzzles = configFile>>"CfgWeapons">>_weapon>>"muzzles";
if(isArray(_muzzles)) then {
{ // add one mag for each muzzle
if (_x != "this") then {
[_x] call _saveMagazine;
};
} forEach getArray(_muzzles);
};
};
_loadedMagazines set [count _loadedMagazines, _magazines];
};
// save loaded mags for each weapon separetely, since some weapons can use same magazines
[primaryWeapon _target] call _saveWeaponMagazines;
[handgunWeapon _target] call _saveWeaponMagazines;
[secondaryWeapon _target] call _saveWeaponMagazines;
_getMagsAmmo = { // default function with _saveMagsAmmo == false
_this select 0;
};
if(_saveMagsAmmo) then {
// check if input array contains magazine, if it does, find it add ammo count
_getMagsAmmo = {
private ["_items","_location","_item","_itemIndex"];
_items = _this select 0;
_location = _this select 1;
{
_item = _x;
_itemIndex = _forEachIndex;
{
if((_x select 4)==_location && (_x select 0)==_item) then {
_items set[_itemIndex, [_item, _x select 1]];
_x = -1;
};
} forEach _magazinesAmmo;
_magazinesAmmo = _magazinesAmmo - [-1];
} forEach _items;
_items;
};
};
// get backpack items
_cargo = getbackpackcargo (unitbackpack _target);
_backpacks = [];
{
for "_i" from 1 to ((_cargo select 1) select _foreachindex) do {
_backpacks set [count _backpacks, _x];
};
} foreach (_cargo select 0);
_backPackItems = (backpackitems _target) + _backpacks;
// get assigned items, headgear and goggles is not part of assignedItems
_assignedItems = assignedItems _target;
_headgear = headgear _target;
_goggles = goggles _target;
if((_headgear != "") && !(_headgear in _assignedItems)) then {
_assignedItems set [count _assignedItems, _headgear];
};
if((_goggles != "") && !(_goggles in _assignedItems)) then {
_assignedItems set [count _assignedItems, _goggles];
};
/*
// use this once magazinesAmmoFull is fixed and shows magazines of assignedItems
// get magazines of everything else except weapons, most likely assigned items
// only ["Uniform","Vest","Backpack"] locations remain, weapon locations have already been eaten
_magazines = [];
{
if(_x select 2) then {
if(_saveMagsAmmo) then {
_magazines set[count _magazines, [_x select 0, _x select 1]];
} else {
_magazines set[count _magazines, _x select 0];
};
_x = -1;
};
} forEach _magazinesAmmo;
_magazinesAmmo = _magazinesAmmo - [-1];
_loadedMagazines set [3, _magazines];
*/
// old method using selectWeapon, cycles and tries to selectWeapon all assigned items
if(!_isRepetitive) then {
private ["_weaponHasChanged"];
_weaponHasChanged = false;
// get magazines of all assigned items
_magazines = [];
{
_target selectWeapon _x;
if(currentWeapon _target==_x) then {
_weaponHasChanged = true;
_magazine = currentMagazine _target;
if(_magazine != "") then {
if(_saveMagsAmmo) then {
_magazines set[count _magazines, [_magazine, _target ammo _x]];
} else {
_magazines set[count _magazines, _magazine];
};
};
};
} forEach _assignedItems;
_loadedMagazines set [3, _magazines];
// select back originaly selected weapon and mode, only if weapon has changed
if(_weaponHasChanged) then {
if(_isOnFoot) then {
if(_currentWeapon != "" && _currentMode != "") then {
_muzzles = 0;
while{ (_currentWeapon != currentMuzzle _target || _currentMode != currentWeaponMode _target ) && _muzzles < 200 } do {
_target action ["SWITCHWEAPON", _target, _target, _muzzles];
_muzzles = _muzzles + 1;
};
if(_isFlashlightOn) then {
_target action ["GunLightOn"];
} else {
_target action ["GunLightOff"];
};
if(_isIRLaserOn) then {
_target action ["IRLaserOn"];
} else {
_target action ["IRLaserOff"];
};
};
} else {
_currentMode = "";
};
if(_currentMode == "") then {
if(_currentWeapon=="") then {
_target action ["SWITCHWEAPON", _target, _target, 0];
} else {
_target selectWeapon _currentWeapon;
};
};
};
};
_data = [
_assignedItems, //0 []
primaryWeapon _target, //1 ""
primaryWeaponItems _target, //2 []
handgunWeapon _target, //3 ""
handgunItems _target, //4 []
secondaryWeapon _target, //5 ""
secondaryWeaponItems _target, //6 []
uniform _target, //7 ""
[uniformItems _target, "Uniform"] call _getMagsAmmo, //8 ["magazine without ammo count",["magazine with ammo count",30], ....]
vest _target, //9 ""
[vestItems _target, "Vest"] call _getMagsAmmo, //10
backpack _target, //11 ""
[_backPackItems, "Backpack"] call _getMagsAmmo, //12
_loadedMagazines, //13 (optional) [[primary mags],[handgun mags],[secondary mags],[other mags]]
_currentWeapon, //14 (optional) ""
_currentMode //15 (optional) ""
];
// addAction support
if(count _this < 4) then {
_data;
} else {
loadout = _data;
//playSound3D ["A3\Sounds_F\sfx\ZoomOut.wav", _target];
};

View File

@@ -0,0 +1,18 @@
/*
File: fn_getLocalCap.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2019-12-05
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the current blufor unit cap.
Parameter(s):
NONE
Returns:
Blufor unit cap [NUMBER]
*/
(round (infantry_cap / 2)) min GRLIB_blufor_cap

View File

@@ -0,0 +1,28 @@
/*
File: fn_getLocationName.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-12-06
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the name of the nearest FOB/sector from given position.
Parameter(s):
_pos - Position to get the location name from [POSITION, defaults to [0, 0, 0]]
Returns:
Location name [STRING]
*/
params [
["_pos", [0, 0, 0], [[]], [2, 3]]
];
private _name = [_pos] call KPLIB_fnc_getFobName;
if (_name isEqualTo "") then {
markerText ([50, _pos] call KPLIB_fnc_getNearestSector)
} else {
["FOB", _name] joinString " "
};

View File

@@ -0,0 +1,37 @@
/*
File: fn_getMilitaryId.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-09-14
Last Update: 2019-12-06
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Converts a number to an ID string.
Parameter(s):
_number - ID number to convert (starts with 0 as first character) [NUMBER, defaults to -1]
Returns:
Military ID [STRING]
*/
params [
["_number", -1, [0]]
];
if (_number isEqualTo -1) exitWith {["No valid number given"] call BIS_fnc_error; ""};
_number = _number + 1;
private _return = [];
private _alphabetCount = count military_alphabet;
private _remain = 0;
while {_number > 0} do {
_remain = _number % _alphabetCount;
_number = floor (_number / _alphabetCount);
_return append [_remain - 1];
};
reverse _return;
(_return apply {military_alphabet select _x}) joinString " "

View File

@@ -0,0 +1,27 @@
/*
File: fn_getMobileRespawns.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-12-05
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets all mobile respawn vehicles sorted by their positions X value.
Parameter(s):
NONE
Returns:
Mobile respawns [ARRAY]
*/
private _respawn_trucks = vehicles select {
(typeOf _x) in [Respawn_truck_typename, huron_typename] &&
{alive _x} &&
{_x distance2d startbase > 500} &&
{abs (speed _x) < 5} &&
{(isTouchingGround _x || {5 > ((getPos _x) select 2)})} &&
{!surfaceIsWater (getPos _x)}
};
[_respawn_trucks, [], {(getPos _x) select 0}, 'ASCEND'] call BIS_fnc_sortBy

View File

@@ -0,0 +1,24 @@
/*
File: fn_getNearbyPlayers.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-12-05
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets all alive players inside given radius to given position.
Parameter(s):
_pos - Center position to search from [POSITION, defaults to [0, 0, 0]]
_radius - Radius from center position to search from [NUMBER, defaults to 100]
Returns:
Nearby alive players [ARRAY]
*/
params [
["_pos", [0, 0, 0], [[2, 3]]],
["_radius", 100, [0]]
];
allPlayers select {alive _x && {(_x distance2d _pos) < _radius}}

View File

@@ -0,0 +1,28 @@
/*
File: fn_getNearestBluforObjective.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2019-12-11
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the position of the nearest blufor sector/fob from given position.
Parameter(s):
_pos - Position to check for nearest blufor sector/fob [POSITION, defaults to [0, 0, 0]]
Returns:
Nearest blufor sector/fob position [POSITION]
*/
params [
["_pos", [0, 0, 0], [[]], [2, 3]]
];
if (GRLIB_all_fobs isEqualTo [] && blufor_sectors isEqualTo []) exitWith {[]};
private _objectives = GRLIB_all_fobs + (blufor_sectors apply {markerPos _x});
_objectives = _objectives apply {[_x distance2d _pos, _x]};
_objectives sort true;
(_objectives select 0) select 1

View File

@@ -0,0 +1,28 @@
/*
File: fn_getNearestFob.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2019-12-05
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the nearest FOB position to given position.
Parameter(s):
_pos - Position to find the nearest FOB from [POSITION, defaults to getPos player]
Returns:
Nearest FOB position [POSITION]
*/
params [
["_pos", getPos player, [[]], [2, 3]]
];
if !(GRLIB_all_fobs isEqualTo []) then {
private _fobs = GRLIB_all_fobs apply {[_pos distance2d _x, _x]};
_fobs sort true;
(_fobs select 0) select 1
} else {
[]
};

View File

@@ -0,0 +1,31 @@
/*
File: fn_getNearestSector.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2019-12-11
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the marker of the nearest sector from given position inside given radius.
Parameter(s):
_radius - Radius in which to look for the nearest sector [NUMBER, defaults to 1000]
_pos - Position to look from for the nearest sector [POSITION, defaults to getPos player]
Returns:
Marker of nearest sector [STRING]
*/
params [
["_radius", 1000, [0]],
["_pos", getPos player, [[]], [2, 3]]
];
private _sectors = sectors_allSectors select {((markerPos _x) distance2d _pos) < _radius};
if (_sectors isEqualTo []) exitWith {""};
_sectors = _sectors apply {[(markerPos _x) distance2d _pos, _x]};
_sectors sort true;
(_sectors select 0) select 1

View File

@@ -0,0 +1,30 @@
/*
File: fn_getNearestTower.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2019-12-06
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets nearest radio tower marker occupied by given side inside given radius from given position.
Parameter(s):
_pos - Position from which to look for the nearest radio tower [POSITION, defaults to [0, 0, 0]]
_side - Side of owner for nearest radio tower [SIDE, defaults to GRLIB_side_enemy]
_radius - Radius in which to look for the nearest radio tower [NUMBER, defaults to 1000]
Returns:
Marker of nearest radio tower [STRING]
*/
params [
["_pos", [0, 0, 0], [[]], [2, 3]],
["_side", GRLIB_side_enemy, [sideEmpty]],
["_radius", 1000, [0]]
];
private _towers = [sectors_tower select {_x in blufor_sectors}, sectors_tower - blufor_sectors] select (_side == GRLIB_side_enemy);
_towers = (_towers apply {[(markerPos _x) distance2d _pos, _x]}) select {(_x select 0) <= _radius};
_towers sort true;
(_towers select 0) select 1

View File

@@ -0,0 +1,24 @@
/*
File: fn_getNearestViVTransport.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-05-08
Last Update: 2019-12-06
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets nearest object that can transport given object via ViV.
Parameter(s):
_object - Object to get a transport vehicle for [OBJECT, defaults to objNull]
_radius - Radius to look for a transport vehicle [NUMBER, defaults to 15]
Returns:
Closest transport or objNull [OBJECT]
*/
params [
["_object", objNull, [objNull]],
["_radius", 15, [0]]
];
((nearestObjects [_object, ["AllVehicles"], _radius]) select {(_x canVehicleCargo _object) select 0}) param [0, objNull]

View File

@@ -0,0 +1,18 @@
/*
File: fn_getOpforCap.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2019-12-06
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets current amount of total opfor units.
Parameter(s):
NONE
Returns:
Total opfor units [NUMBER]
*/
GRLIB_side_enemy countSide allUnits

View File

@@ -0,0 +1,22 @@
/*
File: fn_getOpforFactor.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-11-25
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Returns the opfor factor to scale down enemy forces, if "adapt to player count" mission param is enabled.
Parameter(s):
NONE
Returns:
Opfor factor [NUMBER]
*/
if !(GRLIB_adaptive_opfor) exitWith {1};
private _bluforcount = (0.2 * (GRLIB_side_friendly countSide allUnits)) + ([] call KPLIB_fnc_getPlayerCount);
(0.5 + (_bluforcount / 25.0)) min 1

View File

@@ -0,0 +1,108 @@
/*
File: fn_getOpforSpawnPoint.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2020-04-17
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets a random opfor spawn point marker name respecting following conditions:
* Wasn't used already in the current session (server restart to server restart)
* Distance to blufor FOBs and sectors is more than given min distance
* Distance to blufor FOBs and sectors is less than given max distance
* Distance to an opfor sector is less than 2000m (to avoid strange spawn in blufor territory)
* If nearest is set to true, the valid spawn point which is nearest to any blufor sector/FOB is returned
* If a position is given, the closest valid spawn point to that position is returned
Parameter(s):
_min - Minimum distance to any blufor sector or FOB [NUMBER, defaults to 2000]
_max - Maximum distance to any blufor sector or FOB [NUMBER, defaults to 20000]
_nearest - Provide the nearest spawn point of valid points [BOOL, defaults to false]
_pos - Position if the nearest spawn point to this should be selected [POSITION, defaults to [0, 0, 0]]
Returns:
Opfor spawn point [STRING]
*/
params [
["_min", 2000, [0]],
["_max", 20000, [0]],
["_nearest", false, [false]],
["_pos", [0, 0, 0], [[]], [2, 3]]
];
private _possibleSpawns = [];
// Only check for opfor spawn points which aren't used already in the current session
private _spawnsToCheck = sectors_opfor;
if (!isNil "used_positions") then {
_spawnsToCheck = sectors_opfor - used_positions;
};
private ["_valid", "_current", "_distances"];
{
_valid = true;
_current = _x;
// Shouldn't be too close to the current/last position of a secondary mission
if (!isNil "secondary_objective_position" && _valid) then {
if !(secondary_objective_position isEqualTo []) then {
_valid = !(((markerPos _current) distance2d secondary_objective_position) < 500);
};
};
if (_valid) then {
// Fetch distances to FOBs
_distances = (GRLIB_all_fobs apply {(markerPos _current) distance2d _x}) select {_x < _max};
// Fetch distances to blufor sectors
_distances append ((blufor_sectors apply {(markerPos _current) distance2d (markerPos _x)}) select {_x < _max});
// Invalid, if all sectors and FOBs are further away than given max distance
if (_distances isEqualTo []) then {
_valid = false;
} else {
// Invalid, if one sector or FOB is closer than min distance
_distances sort true;
if ((_distances select 0) < _min) then {
_valid = false;
};
};
};
// Make sure that there is an opfor sector in sensible range to spawn
if (_valid) then {
if ((sectors_allSectors - blufor_sectors) findIf {((markerPos _current) distance2D (markerPos _x)) < 2000} < 0) then {
_valid = false;
};
};
// Make sure that there is no blufor unit inside min dist to spawn
if (_valid) then {
if (([markerpos _current, _min, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount) > 0) then {
_valid = false;
};
};
// Add distance and marker name to possible spawn, if still valid
if (_valid) then {
_possibleSpawns pushBack [_distances select 0, _current];
};
} forEach _spawnsToCheck;
// Return empty string, if no possible spawn point was found
if (_possibleSpawns isEqualTo []) exitWith {["No opfor spawn point found", "WARNING"] call KPLIB_fnc_log; ""};
// Return nearest spawn point to a blufor sector/FOB, if selected via parameter
if (_nearest) exitWith {
_possibleSpawns sort true;
(_possibleSpawns select 0) select 1
};
// Return nearest spawn point to given position, if provided
if !(_pos isEqualTo [0, 0, 0]) exitWith {
([_possibleSpawns apply {_x select 1}, [_pos] , {_input0 distance (markerPos _x)} , "ASCEND"] call BIS_fnc_sortBy) select 0
};
// Return random spawn point
(selectRandom _possibleSpawns) select 1

View File

@@ -0,0 +1,18 @@
/*
File: fn_getPlayerCount.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-11-25
Last Update: 2019-11-25
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Returns the number of connected players without counting headless clients.
Parameter(s):
NONE
Returns:
Amount of players [NUMBER]
*/
count (allPlayers - entities "HeadlessClient_F")

View File

@@ -0,0 +1,22 @@
/*
File: fn_getResistanceTier.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-10-08
Last Update: 2019-12-06
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Returns the current tier level of the resistance forces.
Parameter(s):
NONE
Returns:
Tier level [NUMBER]
*/
switch (true) do {
case (KP_liberation_guerilla_strength >= KP_liberation_resistance_tier3): {3};
case (KP_liberation_guerilla_strength >= KP_liberation_resistance_tier2): {2};
default {1};
};

View File

@@ -0,0 +1,208 @@
/*
File: fn_getSaveData.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-03-29
Last Update: 2020-08-25
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gather current session data for saving.
Parameter(s):
NONE
Returns:
Save data [ARRAY]
*/
private _objectsToSave = [];
private _resourceStorages = [];
private _aiGroups = [];
private _allObjects = [];
private _allStorages = [];
private _allMines = [];
private _allCrates = [];
// Get all blufor groups
private _allBlueGroups = allGroups select {
(side _x == GRLIB_side_friendly) && // Only blufor groups
{isNull objectParent (leader _x)} && // Make sure it's an infantry group
{!(((units _x) select {alive _x}) isEqualTo [])} // At least one unit has to be alive
};
// Fetch all objects and AI groups near each FOB
private ["_fobPos", "_fobObjects", "_grpUnits", "_fobMines"];
{
_fobPos = _x;
_fobObjects = (_fobPos nearObjects (GRLIB_fob_range * 1.2)) select {
((toLower (typeof _x)) in KPLIB_classnamesToSave) && // Exclude classnames which are not in the presets
{alive _x} && // Exclude dead or broken objects
{getObjectType _x >= 8} && // Exclude preplaced terrain objects
{speed _x < 5} && // Exclude moving objects (like civilians driving through)
{isNull attachedTo _x} && // Exclude attachTo'd objects
{((getpos _x) select 2) < 10} && // Exclude hovering helicopters and the like
{!(_x getVariable ["KP_liberation_edenObject", false])} && // Exclude all objects placed via editor in mission.sqm
{!(_x getVariable ["KP_liberation_preplaced", false])} && // Exclude preplaced (e.g. little birds from carrier)
{!((toLower (typeOf _x)) in KPLIB_crates)} // Exclude storage crates (those are handled separately)
};
_allObjects = _allObjects + (_fobObjects select {!((toLower (typeOf _x)) in KPLIB_storageBuildings)});
_allStorages = _allStorages + (_fobObjects select {(_x getVariable ["KP_liberation_storage_type",-1]) == 0});
// Process all groups near this FOB
{
// Get only living AI units of the group by excluding possible POWs currently in the player group
_grpUnits = (units _x) select {!(isPlayer _x) && (alive _x) && !((typeOf _x) in KPLIB_o_inf_classes) && !((typeOf _x) in militia_squad)};
// Add to save array
_aiGroups pushBack [getPosATL (leader _x), (_grpUnits apply {typeOf _x})];
} forEach (_allBlueGroups select {(_fobPos distance2D (leader _x)) < (GRLIB_fob_range * 1.2)});
// Save all mines around FOB
_fobMines = allMines inAreaArray [_fobPos, GRLIB_fob_range * 1.2, GRLIB_fob_range * 1.2];
_allMines append (_fobMines apply {[
getPosWorld _x,
[vectorDirVisual _x, vectorUpVisual _x],
typeOf _x,
_x mineDetectedBy GRLIB_side_friendly
]});
} forEach GRLIB_all_fobs;
// Save all fetched objects
private ["_savedPos", "_savedVecDir", "_savedVecUp", "_class", "_hasCrew"];
{
// Position data
_savedPos = getPosWorld _x;
_savedVecDir = vectorDirVisual _x;
_savedVecUp = vectorUpVisual _x;
_class = typeOf _x;
_hasCrew = false;
// Determine if vehicle is crewed
if ((toLower _class) in KPLIB_b_allVeh_classes) then {
if (({!isPlayer _x} count (crew _x) ) > 0) then {
_hasCrew = true;
};
};
// Only save player side, seized or captured objects
if (
(!(_class in civilian_vehicles) || {_x getVariable ["KPLIB_seized", false]}) &&
(!((toLower _class) in KPLIB_o_allVeh_classes) || {_x getVariable ["KPLIB_captured", false]})
) then {
_objectsToSave pushBack [_class, _savedPos, _savedVecDir, _savedVecUp, _hasCrew];
};
} forEach _allObjects;
// Save all storages and resources
private ["_supplyValue", "_ammoValue", "_fuelValue"];
{
// Position data
_savedPos = getPosWorld _x;
_savedVecDir = vectorDirVisual _x;
_savedVecUp = vectorUpVisual _x;
_class = typeOf _x;
// Resource variables
_supplyValue = 0;
_ammoValue = 0;
_fuelValue = 0;
// Sum all stored resources of current storage
{
switch ((typeOf _x)) do {
case KP_liberation_supply_crate: {_supplyValue = _supplyValue + (_x getVariable ["KP_liberation_crate_value",0]);};
case KP_liberation_ammo_crate: {_ammoValue = _ammoValue + (_x getVariable ["KP_liberation_crate_value",0]);};
case KP_liberation_fuel_crate: {_fuelValue = _fuelValue + (_x getVariable ["KP_liberation_crate_value",0]);};
default {[format ["Invalid object (%1) at storage area", (typeOf _x)], "ERROR"] call KPLIB_fnc_log;};
};
} forEach (attachedObjects _x);
// Add to saving with corresponding resource values
_resourceStorages pushBack [_class, _savedPos, _savedVecDir, _savedVecUp, _supplyValue, _ammoValue, _fuelValue];
} forEach _allStorages;
// Save crates at blufor sectors which spawn crates on activation
{
_allCrates append (
((nearestObjects [markerPos _x, KPLIB_crates, GRLIB_capture_size]) select {isNull attachedTo _x}) apply {
[typeOf _x, _x getVariable ["KP_liberation_crate_value", 0], getPosATL _x]
}
);
} forEach (blufor_sectors select {_x in sectors_factory || _x in sectors_capture});
// Pack all stats in one array
private _stats = [
stats_ammo_produced,
stats_ammo_spent,
stats_blufor_soldiers_killed,
stats_blufor_soldiers_recruited,
stats_blufor_teamkills,
stats_blufor_vehicles_built,
stats_blufor_vehicles_killed,
stats_civilian_buildings_destroyed,
stats_civilian_vehicles_killed,
stats_civilian_vehicles_killed_by_players,
stats_civilian_vehicles_seized,
stats_civilians_healed,
stats_civilians_killed,
stats_civilians_killed_by_players,
stats_fobs_built,
stats_fobs_lost,
stats_fuel_produced,
stats_fuel_spent,
stats_hostile_battlegroups,
stats_ieds_detonated,
stats_opfor_killed_by_players,
stats_opfor_soldiers_killed,
stats_opfor_vehicles_killed,
stats_opfor_vehicles_killed_by_players,
stats_player_deaths,
stats_playtime,
stats_prisoners_captured,
stats_readiness_earned,
stats_reinforcements_called,
stats_resistance_killed,
stats_resistance_teamkills,
stats_resistance_teamkills_by_players,
stats_secondary_objectives,
stats_sectors_liberated,
stats_sectors_lost,
stats_spartan_respawns,
stats_supplies_produced,
stats_supplies_spent,
stats_vehicles_recycled
];
// Pack the weights in one array
private _weights = [
infantry_weight,
armor_weight,
air_weight
];
// Pack the save data in the save array
[
kp_liberation_version,
date,
_objectsToSave,
_resourceStorages,
_stats,
_weights,
_aiGroups,
blufor_sectors,
combat_readiness,
GRLIB_all_fobs,
GRLIB_permissions,
GRLIB_vehicle_to_military_base_links,
KP_liberation_civ_rep,
KP_liberation_clearances,
KP_liberation_guerilla_strength,
KP_liberation_logistics,
KP_liberation_production,
KP_liberation_production_markers,
resources_intel,
_allMines,
_allCrates,
KPLIB_sectorTowers
] // return

View File

@@ -0,0 +1,93 @@
/*
File: fn_getSaveableParam.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2018-01-27
Last Update: 2020-04-17
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Saves/loads/fetches mission parameter from profileNamespace depending on "_action" argument.
If no action provided value from "KP_load_params" variable is used.
On SP enviroment saving/loading is disabled.
Parameter(s):
_paramName - Name of parameter [STRING, defaults to ""]
_defaultValue - Default value if parameter not found or no saved value [NUMBER, defaults to 0]
_action - Should save(0)/load(1) from profile namespace or get(2) from selected param value [NUMBER, defaults to nil]
Returns:
Parameter value [BOOL]
*/
params [
["_paramName", "", [""]],
["_defaultValue", 0, [0]],
["_action", nil, [0]]
];
private _saveKey = "KP_LIBERATION_" + (toUpper worldName) + "_SAVE_PARAMS";
private _value = nil;
// Use lobby value if no action specified
if(isNil "_action") then {_action = KP_load_params;};
// We propably shoud not load parameters on SP environment
if(!isMultiplayer) then {_action = 2};
switch (_action) do {
// Save to profileNamespace
case 0: {
_value = [_paramName, _defaultValue] call bis_fnc_getParamValue;
private _savedParams = profileNamespace getVariable _saveKey;
if(isNil "_savedParams") then {
if (KP_liberation_savegame_debug > 0) then {["Param save data is corrupted, creating new.", "PARAM"] call KPLIB_fnc_log;};
// Create new "associative" array
_savedParams = [[_paramName, _value]];
} else {
private _singleParam = (_savedParams select {(_x select 0) == _paramName}) select 0;
if(isNil "_singleParam") then {
if (KP_liberation_savegame_debug > 0) then {[format ["Saving value: %1 for param: %2", _value, _paramName], "PARAM"] call KPLIB_fnc_log;};
_savedParams pushBack [_paramName, _value];
} else {
if (KP_liberation_savegame_debug > 0) then {[format ["Overwriting value: %1 with: %2 for param: %3", (_singleParam select 1), _value, _paramName], "PARAM"] call KPLIB_fnc_log;};
// _singleparam is an reference to array in _savedParams, we can use "set"
_singleParam set [1, _value];
};
};
// Save params to profile namespace
profileNamespace setVariable [_saveKey, _savedParams];
saveProfileNamespace;
};
// Load from profileNamespace
case 1: {
private _savedParams = profileNamespace getVariable _saveKey;
if(isNil "_savedParams") then {
if (KP_liberation_savegame_debug > 0) then {["Param save data is corrupted, can't load!", "PARAM"] call KPLIB_fnc_log;};
// Fix param save data
profileNamespace setVariable [_saveKey, []];
if (KP_liberation_savegame_debug > 0) then {[format ["No saved value for param: %1, fetching value.", _paramName], "PARAM"] call KPLIB_fnc_log;};
_value = [_paramName, _defaultValue] call bis_fnc_getParamValue;
} else {
private _singleParam = (_savedParams select {(_x select 0) == _paramName}) select 0;
if(isNil "_singleParam") then {
if (KP_liberation_savegame_debug > 0) then {[format ["No saved value for param: %1, fetching value.", _paramName], "PARAM"] call KPLIB_fnc_log;};
_value = [_paramName, _defaultValue] call bis_fnc_getParamValue;
} else {
if (KP_liberation_savegame_debug > 0) then {[format ["Found value: %1 for param: %2,", (_singleParam select 1), _paramName], "PARAM"] call KPLIB_fnc_log;};
_value = _singleParam select 1;
};
};
};
// Get param
default {
if (KP_liberation_savegame_debug > 0) then {[format ["Fetching selected value for param: %1", _paramName], "PARAM"] call KPLIB_fnc_log;};
_value = [_paramName, _defaultValue] call bis_fnc_getParamValue;
};
};
// Return param value
_value;

View File

@@ -0,0 +1,39 @@
/*
File: fn_getSectorOwnership.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2019-12-03
Last Update: 2020-05-02
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Gets the side of the owner of a given position with given radius.
Parameter(s):
_pos - Position to get owner [POSITION, defaults to [0, 0, 0]]
_radius - Radius to count units [NUMBER, defaults to GRLIB_capture_size]
Returns:
Owner of the position [SIDE]
*/
params [
["_pos", [0, 0, 0], [[]], [2, 3]],
["_radius", GRLIB_capture_size, [0]]
];
private _capCount = 3;
private _capRatio = 0.85;
private _capRatioMin = 0.51;
private _blufor = [_pos, _radius, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount;
private _opfor = [_pos, _radius, GRLIB_side_enemy] call KPLIB_fnc_getUnitsCount;
private _ratio = 0;
if (_blufor + _opfor != 0) then {
_ratio = _blufor / (_blufor + _opfor);
};
if (_blufor > 0 && {(_opfor <= _capCount && _ratio > _capRatioMin) || _ratio > _capRatio}) exitWith {GRLIB_side_friendly};
if (_blufor == 0 && _opfor > _capCount) exitWith {GRLIB_side_enemy};
if (_blufor == 0 && _opfor <= _capCount) exitWith {GRLIB_side_civilian};
GRLIB_side_resistance

Some files were not shown because too many files have changed in this diff Show More