diff --git a/testConfig.Altis/KRON_Strings.sqf b/testConfig.Altis/KRON_Strings.sqf new file mode 100644 index 0000000..bc427db --- /dev/null +++ b/testConfig.Altis/KRON_Strings.sqf @@ -0,0 +1,357 @@ +// ========================================================================================================= +// +// String Functions Library +// Version: 2.2.1 +// Author: Kronzky +// +// ========================================================================================================= +// +// Usage: +// +// • KRON_StrToArray - Converts a string into an array of characters: +// _array=[_str] call KRON_StrToArray +// +// • KRON_StrLen - Returns the length of the string +// _len=[_str] call KRON_StrLen +// +// • KRON_StrLeft - Returns l characters from the left side of the string +// _left=[_str,l] call KRON_StrLeft +// +// • KRON_StrRight - Returns l characters from the right side of the string +// _right=[_str,l] call KRON_StrRight +// +// • KRON_StrMid - Returns l characters from the string, starting at position p (zero-based) +// If l is not defined, the rest of the string is returned +// _mid=[_str,p,(l)] call KRON_StrMid +// +// • KRON_StrInStr - Tests whether string b is present in string a +// _found=[a,b] call KRON_StrInStr +// +// • KRON_StrIndex - Returns the position of string b in string a +// _index=[a,b] call KRON_StrIndex +// +// • KRON_StrUpper - Converts a string to uppercase characters +// _upper=[_str] call KRON_StrUpper +// +// • KRON_StrLower - Converts a string to lowercase characters +// _lower=[_str] call KRON_StrLower +// +// • KRON_Replace - Replaces every occurrence of string _old in string _str with string _new +// _index=[_str,_old,_new] call KRON_Replace +// +// • KRON_FindFlag - Checks a mixed array (_this) for the presence of a string (_str) +// _flg=[_this,_str] call KRON_FindFlag +// +// • KRON_getArg - Searches a mixed array (_this) for a matching string beginning with (_t), and returns the part after a separator (s) +// A default value can be defined as (_d). +// _arg=[_this,_t,(_d)] call KRON_getArg +// +// • KRON_getArgRev - Works like getArg, but search for the part *after* the colon, and return the part in front of it +// A default value can be defined as (_d). +// _arg=[_this,_t,(_d)] call KRON_getArgRev +// +// • KRON_Compare - Compares two elements and returns -1 if first is smaller, 1 if second is smaller, and 0 if equal +// If optional parameter "case" is given, capitalization is considered (upper before lowercase) +// _cmp=[_str1,_str2,("case")] call KRON_Compare +// +// • KRON_ArraySort - Sorts an array of strings in acsending order (Numbers before letters, uppercase before lowercase) +// If array is multi-dimensional, optional parameter (_idx) specifies which column is used for sorting +// If optional parameter "desc" is given, order is reversed +// If optional parameter "case" is given, capitalization is considered (upper before lowercase) +// _srt=[_arr,(_idx),("desc"),("case")] call KRON_ArraySort +// +// ========================================================================================================= + +if !(requiredVersion '1.09') exitWith {}; + + +KRON_StrToArray = { + private["_in","_i","_arr","_out"]; + _in=_this select 0; + _arr = toArray(_in); + _out=[]; + for "_i" from 0 to (count _arr)-1 do { + _out=_out+[toString([_arr select _i])]; + }; + _out +}; + +KRON_StrLeft = { + private["_in","_len","_arr","_out"]; + _in=_this select 0; + _len=(_this select 1)-1; + _arr=[_in] call KRON_StrToArray; + _out=""; + if (_len>=(count _arr)) then { + _out=_in; + } else { + for "_i" from 0 to _len do { + _out=_out + (_arr select _i); + }; + }; + _out +}; + +KRON_StrLen = { + private["_in","_arr","_len"]; + _in=_this select 0; + _arr=[_in] call KRON_StrToArray; + _len=count (_arr); + _len +}; + +KRON_StrRight = { + private["_in","_len","_arr","_i","_out"]; + _in=_this select 0; + _len=_this select 1; + _arr=[_in] call KRON_StrToArray; + _out=""; + if (_len>(count _arr)) then {_len=count _arr}; + for "_i" from ((count _arr)-_len) to ((count _arr)-1) do { + _out=_out + (_arr select _i); + }; + _out +}; + +KRON_StrMid = { + private["_in","_pos","_len","_arr","_i","_out"]; + _in=_this select 0; + _pos=abs(_this select 1); + _arr=[_in] call KRON_StrToArray; + _len=count(_arr); + if ((count _this)>2) then {_len=(_this select 2)}; + _out=""; + if ((_pos+_len)>=(count _arr)) then {_len=(count _arr)-_pos}; + if (_len>0) then { + for "_i" from _pos to (_pos+_len-1) do { + _out=_out + (_arr select _i); + }; + }; + _out +}; + +KRON_StrIndex = { + private["_hay","_ndl","_lh","_ln","_arr","_tmp","_i","_j","_out"]; + _hay=_this select 0; + _ndl=_this select 1; + _out=-1; + _i=0; + if (_hay == _ndl) exitWith {0}; + _lh=[_hay] call KRON_StrLen; + _ln=[_ndl] call KRON_StrLen; + if (_lh < _ln) exitWith {-1}; + _arr=[_hay] call KRON_StrToArray; + for "_i" from 0 to (_lh-_ln) do { + _tmp=""; + for "_j" from _i to (_i+_ln-1) do { + _tmp=_tmp + (_arr select _j); + }; + if (_tmp==_ndl) exitWith {_out=_i}; + }; + _out +}; + +KRON_StrInStr = { + private["_out"]; + _in=_this select 0; + _out=if (([_this select 0,_this select 1] call KRON_StrIndex)==-1) then {false} else {true}; + _out +}; + +KRON_Replace = { + private["_str","_old","_new","_out","_tmp","_jm","_la","_lo","_ln","_i"]; + _str=_this select 0; + _arr=toArray(_str); + _la=count _arr; + _old=_this select 1; + _new=_this select 2; + _na=[_new] call KRON_StrToArray; + _lo=[_old] call KRON_StrLen; + _ln=[_new] call KRON_StrLen; + _out=""; + for "_i" from 0 to (count _arr)-1 do { + _tmp=""; + if (_i <= _la-_lo) then { + for "_j" from _i to (_i+_lo-1) do { + _tmp=_tmp + toString([_arr select _j]); + }; + }; + if (_tmp==_old) then { + _out=_out+_new; + _i=_i+_lo-1; + } else { + _out=_out+toString([_arr select _i]); + }; + }; + _out +}; + +KRON_StrUpper = { + private["_in","_out"]; + _in=_this select 0; + _out=toUpper(_in); + _out +}; + +KRON_StrLower = { + private["_in","_out"]; + _in=_this select 0; + _out=toLower(_in); + _out +}; + +KRON_ArrayToUpper = { + private["_in","_i","_e","_out"]; + _in=_this select 0; + _out=[]; + if ((count _in)>0) then { + for "_i" from 0 to (count _in)-1 do { + _e=_in select _i; + if (typeName _e=="STRING") then { + _e=toUpper(_e); + }; + _out set [_i,_e]; + }; + }; + _out +}; + +KRON_Compare = { + private["_k","_n","_s","_i","_c","_t","_s1","_s2","_l1","_l2","_l"]; + _k=[_this,"CASE"] call KRON_findFlag; + _n=0; + _s=0; + for "_i" from 0 to 1 do { + _t=_this select _i; + switch (typeName _t) do { + case "SCALAR": {_n=1}; + case "BOOL": {_this set [_i,str(_t)]}; + case "SIDE": {_this set [_i,str(_t)]}; + case "STRING": {if !(_k) then {_this=[_this] call KRON_ArrayToUpper}}; + default {_n=-1}; + }; + }; + _s1 = _this select 0; + _s2 = _this select 1; + if (_n!=0) exitWith { + if (_n==1) then { + if (_s1<_s2) then {_s=-1} else {if (_s1>_s2) then {_s=1}}; + }; + _s + }; + _s1 = toArray(_s1); + _s2 = toArray(_s2); + _l1 = count _s1; + _l2 = count _s2; + _l=if (_l1<_l2) then {_l1} else {_l2}; + for "_i" from 0 to _l-1 do { + if ((_s1 select _i)<(_s2 select _i)) then { + _s=-1; + _i=_l; + } else { + if ((_s1 select _i)>(_s2 select _i)) then { + _s=1; + _i=_l; + }; + }; + }; + if (_s==0) then { + if (_l1<_l2) then { + _s=-1; + } else { + if (_l1>_l2) then {_s=1}; + }; + }; + _s +}; + +KRON_ArraySort = { + private["_a","_d","_k","_s","_i","_vo","_v1","_v2","_j","_c","_x"]; + _a = +(_this select 0); + _d = if ([_this,"DESC"] call KRON_findFlag) then {-1} else {1}; + _k = if ([_this,"CASE"] call KRON_findFlag) then {"CASE"} else {"nocase"}; + _s = -1; + if (typeName (_a select 0)=="ARRAY") then { + _s=0; + if (((count _this)>1) && (typeName (_this select 1)=="SCALAR")) then { + _s=_this select 1; + }; + }; + for "_i" from 0 to (count _a)-1 do { + _vo = _a select _i; + _v1 = _vo; + if (_s>-1) then {_v1=_v1 select _s}; + _j = 0; + for [{_j=_i-1},{_j>=0},{_j=_j-1}] do { + _v2 = _a select _j; + if (_s>-1) then {_v2=_v2 select _s}; + _c=[_v2,_v1,_k] call KRON_Compare; + if (_c!=_d) exitWith {}; + _a set [_j+1,_a select _j]; + }; + _a set [_j+1,_vo]; + }; + _a +}; + +KRON_findFlag = { + private["_in","_flg","_arr","_out"]; + _in=_this select 0; + _flg=toUpper(_this select 1); + _arr=[_in] call KRON_ArrayToUpper; + _out=_flg in _arr; + _out +}; + +KRON_getArg = { + private["_in","_flg","_fl","_def","_arr","_i","_j","_as","_aa","_org","_p","_out"]; + _in=_this select 0; + _flg=toUpper(_this select 1); + _fl=[_flg] call KRON_StrLen; + _out=""; + if ((count _this)>2) then {_out=_this select 2}; + _arr=[_in] call KRON_ArrayToUpper; + if ((count _arr)>0) then { + for "_i" from 0 to (count _in)-1 do { + _as = _arr select _i; + if (typeName _as=="STRING") then { + _aa = [_as] call KRON_StrToArray; + _p = _aa find ":"; + if (_p==_fl) then { + if (([_as,_fl] call KRON_StrLeft)==_flg) then { + _org = _in select _i; + _out=[_org,_p+1] call KRON_StrMid; + }; + }; + }; + }; + }; + _out +}; + + +KRON_getArgRev = { + private["_in","_flg","_fl","_def","_arr","_i","_j","_as","_aa","_org","_p","_out"]; + _in=_this select 0; + _flg=toUpper(_this select 1); + _fl=[_flg] call KRON_StrLen; + _out=""; + if ((count _this)>2) then {_out=_this select 2}; + _arr=[_in] call KRON_ArrayToUpper; + if ((count _arr)>0) then { + for "_i" from 0 to (count _in)-1 do { + _as = _arr select _i; + if (typeName _as=="STRING") then { + _aa = [_as] call KRON_StrToArray; + _p = _aa find ":"; + if (_p+1==(count _aa)-_fl) then { + if (([_as,_p+1] call KRON_StrMid)==_flg) then { + _org = _in select _i; + _out=[_org,_p] call KRON_StrLeft; + }; + }; + }; + }; + }; + _out +}; diff --git a/testConfig.Altis/Readme.hpp b/testConfig.Altis/Readme.hpp new file mode 100644 index 0000000..1389665 --- /dev/null +++ b/testConfig.Altis/Readme.hpp @@ -0,0 +1,27 @@ +How To Use This Tool. + +1) Start Arma 3 with any mods for which you wish to extract class names. +2) Start the Eden Editor. +3) Open the testConfig.Altis mission. + +You are now ready to generate the class names. The tools copy these to the clipboard. All you need to do to generate a list of classnames is select the tool, Alt-Tab out of Arma, and paste the contents of the clipboard into a text editor such as notepad ++. +For each category (e.g., uniforms, weapons, vehicles) there are two tools. +One generates a simple list of class names which could be used when configuring traders for Exile. +The second will generate a pre-configured price list using either Epoch or Exile formats. +You can determine which format of price list will be generated by changing DBD_priceConfiguration in init.sqf. + +Credits: + This tool uses Kronzky's string library: http://www.kronzky.info/snippets/strings/index.htm + The algorithm for extracting weapons class names is derived from one posted by KiloSwiss on EpochMod: + https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ + +License + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ + + + there is no charge to use these tools. + You may modify any of the tools as you like. + Please give credit to me and those listed above if redistributing modified code. + diff --git a/testConfig.Altis/baseHeadgear.sqf b/testConfig.Altis/baseHeadgear.sqf new file mode 100644 index 0000000..9f03d41 --- /dev/null +++ b/testConfig.Altis/baseHeadgear.sqf @@ -0,0 +1,174 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + This list of headgear will be excluded from the output of the relevant scripts. + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseHeadgear = [ +"Exile_Cap_Exile", +"H_Bandanna_blu", +"H_Bandanna_camo", +"H_Bandanna_cbr", +"H_Bandanna_gry", +"H_Bandanna_khk", +"H_Bandanna_khk_hs", +"H_Bandanna_mcamo", +"H_Bandanna_sand", +"H_Bandanna_sgg", +"H_Bandanna_surfer", +"H_Bandanna_surfer_blk", +"H_Bandanna_surfer_grn", +"H_BandMask_blk", +"H_BandMask_demon", +"H_BandMask_khk", +"H_BandMask_reaper", +"H_Beret_02", +"H_Beret_blk", +"H_Beret_blk_POLICE", +"H_Beret_brn_SF", +"H_Beret_Colonel", +"H_Beret_gen_F", +"H_Beret_grn", +"H_Beret_grn_SF", +"H_Beret_ocamo", +"H_Beret_red", +"H_Booniehat_dgtl", +"H_Booniehat_dirty", +"H_Booniehat_grn", +"H_Booniehat_indp", +"H_Booniehat_khk", +"H_Booniehat_khk_hs", +"H_Booniehat_mcamo", +"H_Booniehat_oli", +"H_Booniehat_tan", +"H_Booniehat_tna_F", +"H_Cap_blk", +"H_Cap_blk_CMMG", +"H_Cap_blk_ION", +"H_Cap_blk_Raven", +"H_Cap_blk_Syndikat_F", +"H_Cap_blu", +"H_Cap_brn_SPECOPS", +"H_Cap_grn", +"H_Cap_grn_BI", +"H_Cap_grn_Syndikat_F", +"H_Cap_headphones", +"H_Cap_khaki_specops_UK", +"H_Cap_marshal", +"H_Cap_oli", +"H_Cap_oli_hs", +"H_Cap_oli_Syndikat_F", +"H_Cap_police", +"H_Cap_press", +"H_Cap_red", +"H_Cap_surfer", +"H_Cap_tan", +"H_Cap_tan_specops_US", +"H_Cap_tan_Syndikat_F", +"H_Cap_usblack", +"H_CrewHelmetHeli_B", +"H_CrewHelmetHeli_I", +"H_CrewHelmetHeli_O", +"H_Hat_blue", +"H_Hat_brown", +"H_Hat_camo", +"H_Hat_checker", +"H_Hat_grey", +"H_Hat_tan", +"H_Helmet_Kerry", +"H_Helmet_Skate", +"H_HelmetB", +"H_HelmetB_black", +"H_HelmetB_camo", +"H_HelmetB_desert", +"H_HelmetB_Enh_tna_F", +"H_HelmetB_grass", +"H_HelmetB_light", +"H_HelmetB_light_black", +"H_HelmetB_light_desert", +"H_HelmetB_light_grass", +"H_HelmetB_light_sand", +"H_HelmetB_light_snakeskin", +"H_HelmetB_Light_tna_F", +"H_HelmetB_paint", +"H_HelmetB_plain_blk", +"H_HelmetB_plain_mcamo", +"H_HelmetB_sand", +"H_HelmetB_snakeskin", +"H_HelmetB_TI_tna_F", +"H_HelmetB_tna_F", +"H_HelmetCrew_B", +"H_HelmetCrew_I", +"H_HelmetCrew_O", +"H_HelmetCrew_O_ghex_F", +"H_HelmetIA", +"H_HelmetIA_camo", +"H_HelmetIA_net", +"H_HelmetLeaderO_ghex_F", +"H_HelmetLeaderO_ocamo", +"H_HelmetLeaderO_oucamo", +"H_HelmetO_ghex_F", +"H_HelmetO_ocamo", +"H_HelmetO_oucamo", +"H_HelmetO_ViperSP_ghex_F", +"H_HelmetO_ViperSP_hex_F", +"H_HelmetSpecB", +"H_HelmetSpecB_blk", +"H_HelmetSpecB_paint1", +"H_HelmetSpecB_paint2", +"H_HelmetSpecB_sand", +"H_HelmetSpecB_snakeskin", +"H_HelmetSpecO_blk", +"H_HelmetSpecO_ghex_F", +"H_HelmetSpecO_ocamo", +"H_MilCap_blue", +"H_MilCap_dgtl", +"H_MilCap_gen_F", +"H_MilCap_ghex_F", +"H_MilCap_gry", +"H_MilCap_mcamo", +"H_MilCap_ocamo", +"H_MilCap_oucamo", +"H_MilCap_rucamo", +"H_MilCap_tna_F", +"H_PilotHelmetFighter_B", +"H_PilotHelmetFighter_I", +"H_PilotHelmetFighter_O", +"H_PilotHelmetHeli_B", +"H_PilotHelmetHeli_I", +"H_PilotHelmetHeli_O", +"H_RacingHelmet_1_black_F", +"H_RacingHelmet_1_blue_F", +"H_RacingHelmet_1_F", +"H_RacingHelmet_1_green_F", +"H_RacingHelmet_1_orange_F", +"H_RacingHelmet_1_red_F", +"H_RacingHelmet_1_white_F", +"H_RacingHelmet_1_yellow_F", +"H_RacingHelmet_2_F", +"H_RacingHelmet_3_F", +"H_RacingHelmet_4_F", +"H_Shemag_khk", +"H_Shemag_olive", +"H_Shemag_olive_hs", +"H_Shemag_tan", +"H_ShemagOpen_khk", +"H_ShemagOpen_tan", +"H_StrawHat", +"H_StrawHat_dark", +"H_TurbanO_blk", +"H_Watchcap_blk", +"H_Watchcap_camo", +"H_Watchcap_cbr", +"H_Watchcap_khk", +"H_Watchcap_sgg", +"HelmetBase" +]; + + diff --git a/testConfig.Altis/baseMagazines.sqf b/testConfig.Altis/baseMagazines.sqf new file mode 100644 index 0000000..23d63be --- /dev/null +++ b/testConfig.Altis/baseMagazines.sqf @@ -0,0 +1,797 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + Lists magazines that should excluded from the output for the script. + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseMagazines = [ +// Magazines +"100Rnd_580x42_Mag_F", +"100Rnd_580x42_Mag_Tracer_F", +"100Rnd_65x39_caseless_mag", +"100Rnd_65x39_caseless_mag_Tracer", +"100Rnd_762x54_PK_Tracer_Green", +"100Rnd_762x54_PK_Tracer_Red", +"100Rnd_762x54_PK_Tracer_White", +"100Rnd_762x54_PK_Tracer_Yellow", +"10Rnd_127x54_Mag", +"10Rnd_127x99_m107", +"10Rnd_338_Mag", +"10Rnd_50BW_Mag_F", +"10Rnd_762x51_Mag", +"10Rnd_762x54_Mag", +"10Rnd_762x54_SVD", +"10Rnd_765x17ball", +"10Rnd_93x64_DMR_05_Mag", +"10Rnd_9x21_Mag", +"10Rnd_9x39_VSS", +"10x_303_M", +"11Rnd_45ACP_Mag", +"120Rnd_CMFlare_Chaff_Magazine", +"120Rnd_CMFlareMagazine", +"130Rnd_338_Mag", +"150Rnd_556x45_Drum_Mag_F", +"150Rnd_556x45_Drum_Mag_Tracer_F", +"150Rnd_762x51_Box", +"150Rnd_762x51_Box_Tracer", +"150Rnd_762x54_Box", +"150Rnd_762x54_Box_Tracer", +"150Rnd_93x64_Mag", +"168Rnd_CMFlare_Chaff_Magazine", +"16Rnd_9x21_green_Mag", +"16Rnd_9x21_Mag", +"16Rnd_9x21_red_Mag", +"16Rnd_9x21_yellow_Mag", +"192Rnd_CMFlare_Chaff_Magazine", +"1Rnd_HE_Grenade_shell", +"1Rnd_Smoke_Grenade_shell", +"1Rnd_SmokeBlue_Grenade_shell", +"1Rnd_SmokeGreen_Grenade_shell", +"1Rnd_SmokeOrange_Grenade_shell", +"1Rnd_SmokePurple_Grenade_shell", +"1Rnd_SmokeRed_Grenade_shell", +"1Rnd_SmokeYellow_Grenade_shell", +"200Rnd_556x45_Box_F", +"200Rnd_556x45_Box_Red_F", +"200Rnd_556x45_Box_Tracer_F", +"200Rnd_556x45_Box_Tracer_Red_F", +"200Rnd_65x39_cased_Box", +"200Rnd_65x39_cased_Box_Tracer", +"20Rnd_556x45_UW_mag", +"20Rnd_650x39_Cased_Mag_F", +"20Rnd_762x51_DMR", +"20Rnd_762x51_Mag", +"20Rnd_765x17ball", +"20Rnd_9x39_VSS", +"20Rnd_Green_Tracer_762x51_DMR", +"20Rnd_Red_Tracer_762x51_DMR", +"20Rnd_Yellow_Tracer_762x51_DMR", +"240Rnd_CMFlare_Chaff_Magazine", +"240Rnd_CMFlareMagazine", +"300Rnd_CMFlare_Chaff_Magazine", +"30Rnd_45ACP_Mag_SMG_01", +"30Rnd_45ACP_Mag_SMG_01_Tracer_Green", +"30Rnd_45ACP_Mag_SMG_01_Tracer_Red", +"30Rnd_45ACP_Mag_SMG_01_Tracer_Yellow", +"30Rnd_545x39_AK", +"30Rnd_545x39_Mag_F", +"30Rnd_545x39_Mag_Green_F", +"30Rnd_545x39_Mag_Tracer_F", +"30Rnd_545x39_Mag_Tracer_Green_F", +"30Rnd_556x45_Stanag", +"30Rnd_556x45_Stanag_green", +"30Rnd_556x45_Stanag_red", +"30Rnd_556x45_Stanag_Tracer_Green", +"30Rnd_556x45_Stanag_Tracer_Red", +"30Rnd_556x45_Stanag_Tracer_Yellow", +"30Rnd_580x42_Mag_F", +"30Rnd_580x42_Mag_Tracer_F", +"30Rnd_65x39_caseless_green", +"30Rnd_65x39_caseless_green_mag_Tracer", +"30Rnd_65x39_caseless_mag", +"30Rnd_65x39_caseless_mag_Tracer", +"30Rnd_762x39_AK47_M", +"30Rnd_762x39_Mag_F", +"30Rnd_762x39_Mag_Green_F", +"30Rnd_762x39_Mag_Tracer_F", +"30Rnd_762x39_Mag_Tracer_Green_F", +"30Rnd_9x21_Green_Mag", +"30Rnd_9x21_Mag", +"30Rnd_9x21_Mag_SMG_02", +"30Rnd_9x21_Mag_SMG_02_Tracer_Green", +"30Rnd_9x21_Mag_SMG_02_Tracer_Red", +"30Rnd_9x21_Mag_SMG_02_Tracer_Yellow", +"30Rnd_9x21_Red_Mag", +"30Rnd_9x21_Yellow_Mag", +"30Rnd_Green_Tracer_545x39_AK", +"30Rnd_Red_Tracer_545x39_AK", +"30Rnd_White_Tracer_545x39_AK", +"30Rnd_Yellow_Tracer_545x39_AK", +"3Rnd_HE_Grenade_shell", +"3Rnd_Smoke_Grenade_shell", +"3Rnd_SmokeBlue_Grenade_shell", +"3Rnd_SmokeGreen_Grenade_shell", +"3Rnd_SmokeOrange_Grenade_shell", +"3Rnd_SmokePurple_Grenade_shell", +"3Rnd_SmokeRed_Grenade_shell", +"3Rnd_SmokeYellow_Grenade_shell", +"3Rnd_UGL_FlareCIR_F", +"3Rnd_UGL_FlareGreen_F", +"3Rnd_UGL_FlareRed_F", +"3Rnd_UGL_FlareWhite_F", +"3Rnd_UGL_FlareYellow_F", +"45Rnd_Green_Tracer_545x39_RPK", +"50Rnd_UK59_762x54_Tracer_Green", +"556", +"5Rnd_127x108_APDS_KSVK", +"5Rnd_127x108_APDS_Mag", +"5Rnd_127x108_KSVK", +"5Rnd_127x108_Mag", +"5x_22_LR_17_HMR_M", +"60Rnd_CMFlare_Chaff_Magazine", +"60Rnd_CMFlareMagazine", +"6Rnd_45ACP", +"6Rnd_45ACP_Cylinder", +"6Rnd_GreenSignal_F", +"6Rnd_RedSignal_F", +"75Rnd_Green_Tracer_545x39_RPK", +"762", +"7Rnd_408_Mag", +"7Rnd_45ACP_1911", +"8Rnd_9x18_Makarov", +"8Rnd_9x18_MakarovSD", +"8Rnd_B_Beneli_74Pellets", +"8rnd_B_Beneli_74Slug", +"9Rnd_45ACP_Mag", +"Alsatain_Ck", +"Alsatian_Raw", +"APERSBoundingMine_Range_Mag", +"APERSMine_Range_Mag", +"APERSTripMine_Wire_Mag", +"ATMine_Range_Mag", +"B_IR_Grenade", +"burlap", +"CA_Magazine", +"CatShark_Ck", +"CatShark_Raw", +"Chicken_Ck", +"Chicken_Raw", +"ClaymoreDirectionalMine_Remote_Mag", +"cornerDoubleBarrier_1_kit", +"DemoCharge_Remote_Mag", +"domeSmall_Kit", +"doubleBarrier_1_kit", +"Exile_AbstractItem", +"Exile_Item_AlsatianSteak_Cooked", +"Exile_Item_AlsatianSteak_Raw", +"Exile_Item_Bandage", +"Exile_Item_BaseCameraKit", +"Exile_Item_BBQSandwich", +"Exile_Item_BBQSandwich_Cooked", +"Exile_Item_BeefParts", +"Exile_Item_Beer", +"Exile_Item_BreachingCharge_BigMomma", +"Exile_Item_BreachingCharge_Metal", +"Exile_Item_BreachingCharge_Wood", +"Exile_Item_Bullets_556", +"Exile_Item_Bullets_762", +"Exile_Item_BurlapSack", +"Exile_Item_BushKit_Green", +"Exile_Item_CamoTentKit", +"Exile_Item_CampFireKit", +"Exile_Item_Can_Empty", +"Exile_Item_CanOpener", +"Exile_Item_CarWheel", +"Exile_Item_CatFood", +"Exile_Item_CatFood_Cooked", +"Exile_Item_CatSharkFilet_Cooked", +"Exile_Item_CatSharkFilet_Raw", +"Exile_Item_Cement", +"Exile_Item_Cheathas", +"Exile_Item_ChickenFilet_Cooked", +"Exile_Item_ChickenFilet_Raw", +"Exile_Item_ChocolateMilk", +"Exile_Item_ChristmasTinner", +"Exile_Item_ChristmasTinner_Cooked", +"Exile_Item_CockONut", +"Exile_Item_Codelock", +"Exile_Item_ConcreteDoorKit", +"Exile_Item_ConcreteDoorwayKit", +"Exile_Item_ConcreteFloorKit", +"Exile_Item_ConcreteFloorPortKit", +"Exile_Item_ConcreteGateKit", +"Exile_Item_ConcreteStairsKit", +"Exile_Item_ConcreteSupportKit", +"Exile_Item_ConcreteWallKit", +"Exile_Item_ConcreteWindowKit", +"Exile_Item_CookingPot", +"Exile_Item_CordlessScrewdriver", +"Exile_Item_Defibrillator", +"Exile_Item_DogFood", +"Exile_Item_DogFood_Cooked", +"Exile_Item_DsNuts", +"Exile_Item_DuctTape", +"Exile_Item_EMRE", +"Exile_Item_EnergyDrink", +"Exile_Item_ExtensionCord", +"Exile_Item_FinSteak_Cooked", +"Exile_Item_FinSteak_Raw", +"Exile_Item_FireExtinguisher", +"Exile_Item_Flag", +"Exile_Item_FlagStolen1", +"Exile_Item_FlagStolen10", +"Exile_Item_FlagStolen2", +"Exile_Item_FlagStolen3", +"Exile_Item_FlagStolen4", +"Exile_Item_FlagStolen5", +"Exile_Item_FlagStolen6", +"Exile_Item_FlagStolen7", +"Exile_Item_FlagStolen8", +"Exile_Item_FlagStolen9", +"Exile_Item_FloodLightKit", +"Exile_Item_Foolbox", +"Exile_Item_FortificationUpgrade", +"Exile_Item_FuelBarrelEmpty", +"Exile_Item_FuelBarrelFull", +"Exile_Item_FuelCanisterEmpty", +"Exile_Item_FuelCanisterFull", +"Exile_Item_GloriousKnakworst", +"Exile_Item_GloriousKnakworst_Cooked", +"Exile_Item_GoatSteak_Cooked", +"Exile_Item_GoatSteak_Raw", +"Exile_Item_Grinder", +"Exile_Item_Hammer", +"Exile_Item_Handsaw", +"Exile_Item_HBarrier5Kit", +"Exile_Item_Heatpack", +"Exile_Item_InstaDoc", +"Exile_Item_InstantCoffee", +"Exile_Item_JunkMetal", +"Exile_Item_Knife", +"Exile_Item_Laptop", +"Exile_Item_Leaves", +"Exile_Item_LightBulb", +"Exile_Item_MacasCheese", +"Exile_Item_MacasCheese_Cooked", +"Exile_Item_MackerelFilet_Cooked", +"Exile_Item_MackerelFilet_Raw", +"Exile_Item_Magazine01", +"Exile_Item_Magazine02", +"Exile_Item_Magazine03", +"Exile_Item_Magazine04", +"Exile_Item_Matches", +"Exile_Item_MetalBoard", +"Exile_Item_MetalHedgehogKit", +"Exile_Item_MetalPole", +"Exile_Item_MetalScrews", +"Exile_Item_MetalWire", +"Exile_Item_MobilePhone", +"Exile_Item_Moobar", +"Exile_Item_MountainDupe", +"Exile_Item_MulletFilet_Cooked", +"Exile_Item_MulletFilet_Raw", +"Exile_Item_Noodles", +"Exile_Item_OilCanister", +"Exile_Item_OrnateFilet_Cooked", +"Exile_Item_OrnateFilet_Raw", +"Exile_Item_PlasticBottleCoffee", +"Exile_Item_PlasticBottleDirtyWater", +"Exile_Item_PlasticBottleEmpty", +"Exile_Item_PlasticBottleFreshWater", +"Exile_Item_PlasticBottleSaltWater", +"Exile_Item_Pliers", +"Exile_Item_PortableGeneratorKit", +"Exile_Item_PowerDrink", +"Exile_Item_RabbitSteak_Cooked", +"Exile_Item_RabbitSteak_Raw", +"Exile_Item_Raisins", +"Exile_Item_RazorWireKit", +"Exile_Item_RepairKitConcrete", +"Exile_Item_RepairKitMetal", +"Exile_Item_RepairKitWood", +"Exile_Item_RoosterFilet_Cooked", +"Exile_Item_RoosterFilet_Raw", +"Exile_Item_Rope", +"Exile_Item_RubberDuck", +"Exile_Item_SafeKit", +"Exile_Item_SalemaFilet_Cooked", +"Exile_Item_SalemaFilet_Raw", +"Exile_Item_Sand", +"Exile_Item_SandBagsKit_Corner", +"Exile_Item_SandBagsKit_Long", +"Exile_Item_SausageGravy", +"Exile_Item_SausageGravy_Cooked", +"Exile_Item_Screwdriver", +"Exile_Item_SeedAstics", +"Exile_Item_SheepSteak_Cooked", +"Exile_Item_SheepSteak_Raw", +"Exile_Item_Shovel", +"Exile_Item_SleepingMat", +"Exile_Item_SnakeFilet_Cooked", +"Exile_Item_SnakeFilet_Raw", +"Exile_Item_SprayCan_Black", +"Exile_Item_SprayCan_Blue", +"Exile_Item_SprayCan_Green", +"Exile_Item_SprayCan_Red", +"Exile_Item_SprayCan_White", +"Exile_Item_Storagecratekit", +"Exile_Item_Surstromming", +"Exile_Item_Surstromming_Cooked", +"Exile_Item_ThermalScannerPro", +"Exile_Item_ToiletPaper", +"Exile_Item_TunaFilet_Cooked", +"Exile_Item_TunaFilet_Raw", +"Exile_Item_TurtleFilet_Cooked", +"Exile_Item_TurtleFilet_Raw", +"Exile_Item_Vishpirin", +"Exile_Item_WaterBarrelKit", +"Exile_Item_WaterCanisterDirtyWater", +"Exile_Item_WaterCanisterEmpty", +"Exile_Item_WeaponParts", +"Exile_Item_WireFenceKit", +"Exile_Item_WoodDoorKit", +"Exile_Item_WoodDoorwayKit", +"Exile_Item_WoodDrawBridgeKit", +"Exile_Item_WoodFloorKit", +"Exile_Item_WoodFloorPortKit", +"Exile_Item_WoodFloorPortSmallKit", +"Exile_Item_WoodGateKit", +"Exile_Item_WoodLadderKit", +"Exile_Item_WoodLog", +"Exile_Item_WoodPlank", +"Exile_Item_WoodStairsKit", +"Exile_Item_WoodSticks", +"Exile_Item_WoodSupportKit", +"Exile_Item_WoodWallHalfKit", +"Exile_Item_WoodWallKit", +"Exile_Item_WoodWindowKit", +"Exile_Item_WorkBenchKit", +"Exile_Item_Wrench", +"Exile_Magazine_100Rnd_762x54_PK_Green", +"Exile_Magazine_10Rnd_127x99_m107", +"Exile_Magazine_10Rnd_127x99_m107_Bullet_Cam_Mag", +"Exile_Magazine_10Rnd_303", +"Exile_Magazine_10Rnd_338_Bullet_Cam_Mag", +"Exile_Magazine_10Rnd_762x54", +"Exile_Magazine_10Rnd_765x17_SA61", +"Exile_Magazine_10Rnd_93x64_DMR_05_Bullet_Cam_Mag", +"Exile_Magazine_10Rnd_9x39", +"Exile_Magazine_20Rnd_762x51_DMR", +"Exile_Magazine_20Rnd_762x51_DMR_Green", +"Exile_Magazine_20Rnd_762x51_DMR_Red", +"Exile_Magazine_20Rnd_762x51_DMR_Yellow", +"Exile_Magazine_20Rnd_765x17_SA61", +"Exile_Magazine_20Rnd_9x39", +"Exile_Magazine_30Rnd_545x39_AK", +"Exile_Magazine_30Rnd_545x39_AK_Green", +"Exile_Magazine_30Rnd_545x39_AK_Red", +"Exile_Magazine_30Rnd_545x39_AK_White", +"Exile_Magazine_30Rnd_545x39_AK_Yellow", +"Exile_Magazine_30Rnd_762x39_AK", +"Exile_Magazine_45Rnd_545x39_RPK_Green", +"Exile_Magazine_5Rnd_127x108_APDS_Bullet_Cam_Mag", +"Exile_Magazine_5Rnd_127x108_APDS_KSVK", +"Exile_Magazine_5Rnd_127x108_APDS_KSVK_Bullet_Cam_Mag", +"Exile_Magazine_5Rnd_127x108_Bullet_Cam_Mag", +"Exile_Magazine_5Rnd_127x108_KSVK", +"Exile_Magazine_5Rnd_127x108_KSVK_Bullet_Cam_Mag", +"Exile_Magazine_5Rnd_22LR", +"Exile_Magazine_6Rnd_45ACP", +"Exile_Magazine_75Rnd_545x39_RPK_Green", +"Exile_Magazine_7Rnd_408_Bullet_Cam_Mag", +"Exile_Magazine_7Rnd_45ACP", +"Exile_Magazine_8Rnd_74Pellets", +"Exile_Magazine_8Rnd_74Slug", +"Exile_Magazine_8Rnd_9x18", +"Exile_Magazine_Battery", +"Exile_Magazine_Boing", +"Exile_Magazine_Swing", +"Exile_Magazine_Swoosh", +"Fin_Ck", +"Fin_Raw", +"FlareGreen_F", +"FlareRed_F", +"FlareWhite_F", +"FlareYellow_F", +"gasPump_Kit", +"Goat_Ck", +"Goat_Raw", +"I_IR_Grenade", +"IEDLandBig_Remote_Mag", +"IEDLandSmall_Remote_Mag", +"IEDUrbanBig_Remote_Mag", +"IEDUrbanSmall_Remote_Mag", +"in005_1Rnd_12Gauge_Pellets", +"in005_1Rnd_12Gauge_Slug", +"in005_2Rnd_12Gauge_Pellets", +"in005_2Rnd_12Gauge_Slug", +"ladder_1_kit", +"Laserbatteries", +"longBarrier_1_kit", +"longDoubleBarrier_1_kit", +"Mackrel_Ck", +"Mackrel_Raw", +"metalShelves_Kit", +"MiniGrenade", +"Mullet_Ck", +"Mullet_Raw", +"O_IR_Grenade", +"Ornate_Ck", +"Ornate_Raw", +"Rabbit_Ck", +"Rabbit_Raw", +"rds_dummy_mag", +"Rooster_Ck", +"Rooster_Raw", +"Salema_Ck", +"Salema_Raw", +"SatchelCharge_Remote_Mag", +"Sheep_Ck", +"Sheep_Raw", +"singleBarrier_1_kit", +"SLAMDirectionalMine_Wire_Mag", +"smallBunker_1_kit", +"Snake_Ck", +"Snake_Raw", +"spraycan_blk", +"spraycan_blu", +"spraycan_grn", +"spraycan_red", +"spraycan_wht", +"tallStoneTower_1_kit", +"tallStoneWall_1_kit", +"tallTower_1_kit", +"Tuna_Ck", +"Tuna_Raw", +"Turtle_Ck", +"Turtle_Raw", +"UGL_FlareCIR_F", +"UGL_FlareGreen_F", +"UGL_FlareRed_F", +"UGL_FlareWhite_F", +"UGL_FlareYellow_F", +"wpn_prt", + + +// Grenades, Smoke Grenades, Chemlights and Flares +"Chemlight_blue", +"Chemlight_green", +"Chemlight_red", +"Chemlight_yellow", +"Exile_Item_ZipTie", +"HandGrenade", +"HandGrenade_Stone", +"SmokeShell", +"SmokeShellBlue", +"SmokeShellGreen", +"SmokeShellOrange", +"SmokeShellPurple", +"SmokeShellRed", +"SmokeShellYellow", +"TinCanGrenade_01", + + +// Launcher Rounds +"CA_LauncherMagazine", +"NLAW_F", +"RPG32_F", +"RPG32_HE_F", +"RPG7_F", +"Titan_AA", +"Titan_AP", +"Titan_AT", + + +// Vehicle Ammo +"1000Rnd_20mm_shells", +"1000Rnd_25mm_shells", +"1000Rnd_65x39_Belt", +"1000Rnd_65x39_Belt_Green", +"1000Rnd_65x39_Belt_Tracer_Green", +"1000Rnd_65x39_Belt_Tracer_Red", +"1000Rnd_65x39_Belt_Tracer_Yellow", +"1000Rnd_65x39_Belt_Yellow", +"1000Rnd_762x51_Belt", +"1000Rnd_762x51_Belt_Green", +"1000Rnd_762x51_Belt_Red", +"1000Rnd_762x51_Belt_T_Green", +"1000Rnd_762x51_Belt_T_Red", +"1000Rnd_762x51_Belt_T_Yellow", +"1000Rnd_762x51_Belt_Yellow", +"1000Rnd_Gatling_30mm_Plane_CAS_01_F", +"100Rnd_105mm_HEAT_MP", +"100Rnd_127x107_DSHKM_M", +"100Rnd_127x99_M", +"100Rnd_127x99_mag", +"100Rnd_127x99_mag_Tracer_Green", +"100Rnd_127x99_mag_Tracer_Red", +"100Rnd_127x99_mag_Tracer_Yellow", +"100Rnd_Green_Tracer_127x107_DSHKM_M", +"100Rnd_Green_Tracer_127x99_M", +"100Rnd_Green_Tracer_762x54_PKT_M", +"100Rnd_Red_Tracer_127x99_M", +"100Rnd_Red_Tracer_762x54_PKT_M", +"100Rnd_White_Tracer_127x99_M", +"100Rnd_White_Tracer_762x54_PKT_M", +"100Rnd_Yellow_Tracer_127x99_M", +"100Rnd_Yellow_Tracer_762x54_PKT_M", +"12Rnd_125mm_HE", +"12Rnd_125mm_HE_T_Green", +"12Rnd_125mm_HE_T_Red", +"12Rnd_125mm_HE_T_Yellow", +"12Rnd_125mm_HEAT", +"12Rnd_125mm_HEAT_T_Green", +"12Rnd_125mm_HEAT_T_Red", +"12Rnd_125mm_HEAT_T_Yellow", +"12Rnd_230mm_rockets", +"12Rnd_missiles", +"12Rnd_PG_missiles", +"140Rnd_30mm_MP_shells", +"140Rnd_30mm_MP_shells_Tracer_Green", +"140Rnd_30mm_MP_shells_Tracer_Red", +"140Rnd_30mm_MP_shells_Tracer_Yellow", +"14Rnd_120mm_HE_shells", +"14Rnd_120mm_HE_shells_Tracer_Green", +"14Rnd_120mm_HE_shells_Tracer_Red", +"14Rnd_120mm_HE_shells_Tracer_Yellow", +"14Rnd_80mm_rockets", +"1500Rnd_Green_Tracer_762x54_PKT_M", +"1500Rnd_Red_Tracer_762x54_PKT_M", +"1500Rnd_White_Tracer_762x54_PKT_M", +"1500Rnd_Yellow_Tracer_762x54_PKT_M", +"150Rnd_127x107_DSHKM_M", +"150Rnd_127x108_Ball", +"160Rnd_40mm_APFSDS_Tracer_Red_shells", +"16Rnd_120mm_HE_shells", +"16Rnd_120mm_HE_shells_Tracer_Green", +"16Rnd_120mm_HE_shells_Tracer_Red", +"16Rnd_120mm_HE_shells_Tracer_Yellow", +"1Rnd_GAA_missiles", +"1Rnd_GAT_missiles", +"2000Rnd_20mm_shells", +"2000Rnd_65x39_Belt", +"2000Rnd_65x39_Belt_Green", +"2000Rnd_65x39_Belt_Tracer_Green", +"2000Rnd_65x39_Belt_Tracer_Green_Splash", +"2000Rnd_65x39_Belt_Tracer_Red", +"2000Rnd_65x39_Belt_Tracer_Yellow", +"2000Rnd_65x39_Belt_Tracer_Yellow_Splash", +"2000Rnd_65x39_Belt_Yellow", +"2000Rnd_762x51_Belt", +"2000Rnd_762x51_Belt_Green", +"2000Rnd_762x51_Belt_Red", +"2000Rnd_762x51_Belt_T_Green", +"2000Rnd_762x51_Belt_T_Red", +"2000Rnd_762x51_Belt_T_Yellow", +"2000Rnd_762x51_Belt_Yellow", +"2000Rnd_Green_Tracer_762x54_PKT_M", +"2000Rnd_Red_Tracer_762x54_PKT_M", +"2000Rnd_White_Tracer_762x54_PKT_M", +"2000Rnd_Yellow_Tracer_762x54_PKT_M", +"200Rnd_127x99_mag", +"200Rnd_127x99_mag_Tracer_Green", +"200Rnd_127x99_mag_Tracer_Red", +"200Rnd_127x99_mag_Tracer_Yellow", +"200Rnd_20mm_G_belt", +"200Rnd_40mm_G_belt", +"200Rnd_65x39_Belt", +"200Rnd_65x39_Belt_Tracer_Green", +"200Rnd_65x39_Belt_Tracer_Red", +"200Rnd_65x39_Belt_Tracer_Yellow", +"200Rnd_762x51_Belt", +"200Rnd_762x51_Belt_Green", +"200Rnd_762x51_Belt_Red", +"200Rnd_762x51_Belt_T_Green", +"200Rnd_762x51_Belt_T_Red", +"200Rnd_762x51_Belt_T_Yellow", +"200Rnd_762x51_Belt_Yellow", +"200Rnd_Green_Tracer_762x54_PKT_M", +"200Rnd_Red_Tracer_762x54_PKT_M", +"200Rnd_White_Tracer_762x54_PKT_M", +"200Rnd_Yellow_Tracer_762x54_PKT_M", +"20Rnd_105mm_HEAT_MP", +"20Rnd_105mm_HEAT_MP_T_Green", +"20Rnd_105mm_HEAT_MP_T_Red", +"20Rnd_105mm_HEAT_MP_T_Yellow", +"20Rnd_Rocket_03_AP_F", +"20Rnd_Rocket_03_HE_F", +"240Rnd_40mm_GPR_Tracer_Red_shells", +"24Rnd_125mm_APFSDS", +"24Rnd_125mm_APFSDS_T_Green", +"24Rnd_125mm_APFSDS_T_Red", +"24Rnd_125mm_APFSDS_T_Yellow", +"24Rnd_missiles", +"24Rnd_PG_missiles", +"250Rnd_30mm_APDS_shells", +"250Rnd_30mm_APDS_shells_Tracer_Green", +"250Rnd_30mm_APDS_shells_Tracer_Red", +"250Rnd_30mm_APDS_shells_Tracer_Yellow", +"250Rnd_30mm_HE_shells", +"250Rnd_30mm_HE_shells_Tracer_Green", +"250Rnd_30mm_HE_shells_Tracer_Red", +"250Rnd_Green_Tracer_762x54_PKT_M", +"250Rnd_Red_Tracer_762x54_PKT_M", +"250Rnd_White_Tracer_762x54_PKT_M", +"250Rnd_Yellow_Tracer_762x54_PKT_M", +"28Rnd_120mm_APFSDS_shells", +"28Rnd_120mm_APFSDS_shells_Tracer_Green", +"28Rnd_120mm_APFSDS_shells_Tracer_Red", +"28Rnd_120mm_APFSDS_shells_Tracer_Yellow", +"29Rnd_30mm_AGS30", +"2Rnd_155mm_Mo_Cluster", +"2Rnd_155mm_Mo_guided", +"2Rnd_155mm_Mo_LG", +"2Rnd_AAA_missiles", +"2Rnd_AAA_missiles_MI02", +"2Rnd_Bomb_03_F", +"2Rnd_GAT_missiles", +"2Rnd_GBU12_LGB", +"2Rnd_GBU12_LGB_MI10", +"2Rnd_LG_scalpel", +"2Rnd_LG_scalpel_hidden", +"2Rnd_Missile_AA_03_F", +"2Rnd_Missile_AA_04_F", +"2Rnd_Mk82", +"2Rnd_Mk82_MI08", +"300Rnd_20mm_shells", +"300Rnd_25mm_shells", +"30Rnd_120mm_APFSDS_shells", +"30Rnd_120mm_APFSDS_shells_Tracer_Green", +"30Rnd_120mm_APFSDS_shells_Tracer_Red", +"30Rnd_120mm_APFSDS_shells_Tracer_Yellow", +"30Rnd_120mm_HE_shells", +"30Rnd_120mm_HE_shells_Tracer_Green", +"30Rnd_120mm_HE_shells_Tracer_Red", +"30Rnd_120mm_HE_shells_Tracer_Yellow", +"32Rnd_120mm_APFSDS_shells", +"32Rnd_120mm_APFSDS_shells_Tracer_Green", +"32Rnd_120mm_APFSDS_shells_Tracer_Red", +"32Rnd_120mm_APFSDS_shells_Tracer_Yellow", +"32Rnd_155mm_Mo_shells", +"32Rnd_40mm_G_belt", +"38Rnd_80mm_rockets", +"4000Rnd_20mm_Tracer_Red_shells", +"40Rnd_105mm_APFSDS", +"40Rnd_105mm_APFSDS_T_Green", +"40Rnd_105mm_APFSDS_T_Red", +"40Rnd_105mm_APFSDS_T_Yellow", +"40Rnd_20mm_G_belt", +"40Rnd_40mm_APFSDS_shells", +"40Rnd_40mm_APFSDS_Tracer_Green_shells", +"40Rnd_40mm_APFSDS_Tracer_Red_shells", +"40Rnd_40mm_APFSDS_Tracer_Yellow_shells", +"450Rnd_127x108_Ball", +"4Rnd_AAA_missiles", +"4Rnd_AAA_missiles_MI02", +"4Rnd_AAT_missiles", +"4Rnd_Bomb_04_F", +"4Rnd_GAA_missiles", +"4Rnd_LG_Jian", +"4Rnd_Missile_AGM_01_F", +"4Rnd_Titan_long_missiles", +"5000Rnd_762x51_Belt", +"5000Rnd_762x51_Yellow_Belt", +"500Rnd_127x99_mag", +"500Rnd_127x99_mag_Tracer_Green", +"500Rnd_127x99_mag_Tracer_Red", +"500Rnd_127x99_mag_Tracer_Yellow", +"500Rnd_65x39_Belt", +"500Rnd_65x39_Belt_Tracer_Green_Splash", +"500Rnd_65x39_Belt_Tracer_Red_Splash", +"500Rnd_65x39_Belt_Tracer_Yellow_Splash", +"500Rnd_Cannon_30mm_Plane_CAS_02_F", +"50Rnd_127x107_DSHKM_M", +"50Rnd_127x108_Ball", +"5Rnd_GAT_missiles", +"60Rnd_30mm_APFSDS_shells", +"60Rnd_30mm_APFSDS_shells_Tracer_Green", +"60Rnd_30mm_APFSDS_shells_Tracer_Red", +"60Rnd_30mm_APFSDS_shells_Tracer_Yellow", +"60Rnd_40mm_GPR_shells", +"60Rnd_40mm_GPR_Tracer_Green_shells", +"60Rnd_40mm_GPR_Tracer_Red_shells", +"60Rnd_40mm_GPR_Tracer_Yellow_shells", +"64Rnd_40mm_G_belt", +"680Rnd_35mm_AA_shells", +"680Rnd_35mm_AA_shells_Tracer_Green", +"680Rnd_35mm_AA_shells_Tracer_Red", +"680Rnd_35mm_AA_shells_Tracer_Yellow", +"6Rnd_155mm_Mo_AT_mine", +"6Rnd_155mm_Mo_mine", +"6Rnd_155mm_Mo_smoke", +"6Rnd_AAT_missiles", +"6Rnd_LG_scalpel", +"6Rnd_Missile_AGM_02_F", +"7Rnd_Rocket_04_AP_F", +"7Rnd_Rocket_04_HE_F", +"8Rnd_82mm_Mo_Flare_white", +"8Rnd_82mm_Mo_guided", +"8Rnd_82mm_Mo_LG", +"8Rnd_82mm_Mo_shells", +"8Rnd_82mm_Mo_Smoke_white", +"8Rnd_LG_scalpel", +"96Rnd_40mm_G_belt", +"magazine_Bomb_GBU12_x1", +"magazine_Bomb_KAB250_x1", +"magazine_Cannon_Phalanx_x1550", +"magazine_Fighter01_Gun20mm_AA_x450", +"magazine_Fighter02_Gun30mm_AA_x180", +"magazine_Fighter04_Gun20mm_AA_x150", +"magazine_Fighter04_Gun20mm_AA_x250", +"magazine_Missile_AA_R73_x1", +"magazine_Missile_AA_R77_x1", +"magazine_Missile_AGM_02_x1", +"magazine_Missile_AGM_KH25_x1", +"magazine_Missile_AMRAAM_C_x1", +"magazine_Missile_AMRAAM_D_x1", +"magazine_Missile_BIM9X_x1", +"magazine_Missile_rim116_x21", +"magazine_Missile_rim162_x8", +"PylonMissile_1Rnd_AAA_missiles", +"PylonMissile_1Rnd_Bomb_03_F", +"PylonMissile_1Rnd_Bomb_04_F", +"PylonMissile_1Rnd_GAA_missiles", +"PylonMissile_1Rnd_LG_scalpel", +"PylonMissile_1Rnd_Missile_AA_03_F", +"PylonMissile_1Rnd_Missile_AA_04_F", +"PylonMissile_1Rnd_Mk82_F", +"PylonMissile_Bomb_GBU12_x1", +"PylonMissile_Bomb_KAB250_x1", +"PylonMissile_Missile_AA_R73_x1", +"PylonMissile_Missile_AA_R77_INT_x1", +"PylonMissile_Missile_AA_R77_x1", +"PylonMissile_Missile_AGM_02_x1", +"PylonMissile_Missile_AGM_02_x2", +"PylonMissile_Missile_AGM_KH25_INT_x1", +"PylonMissile_Missile_AGM_KH25_x1", +"PylonMissile_Missile_AMRAAM_C_x1", +"PylonMissile_Missile_AMRAAM_D_INT_x1", +"PylonMissile_Missile_AMRAAM_D_x1", +"PylonMissile_Missile_BIM9X_x1", +"PylonRack_12Rnd_missiles", +"PylonRack_12Rnd_PG_missiles", +"PylonRack_19Rnd_Rocket_Skyfire", +"PylonRack_1Rnd_AAA_missiles", +"PylonRack_1Rnd_GAA_missiles", +"PylonRack_1Rnd_LG_scalpel", +"PylonRack_1Rnd_Missile_AA_03_F", +"PylonRack_1Rnd_Missile_AA_04_F", +"PylonRack_1Rnd_Missile_AGM_01_F", +"PylonRack_1Rnd_Missile_AGM_02_F", +"PylonRack_20Rnd_Rocket_03_AP_F", +"PylonRack_20Rnd_Rocket_03_HE_F", +"PylonRack_3Rnd_LG_scalpel", +"PylonRack_3Rnd_Missile_AGM_02_F", +"PylonRack_4Rnd_LG_scalpel", +"PylonRack_7Rnd_Rocket_04_AP_F", +"PylonRack_7Rnd_Rocket_04_HE_F", +"PylonRack_Bomb_GBU12_x2", +"PylonRack_Missile_AGM_02_x1", +"PylonRack_Missile_AGM_02_x2", +"PylonRack_Missile_AMRAAM_C_x1", +"PylonRack_Missile_AMRAAM_C_x2", +"PylonRack_Missile_AMRAAM_D_x1", +"PylonRack_Missile_AMRAAM_D_x2", +"PylonRack_Missile_BIM9X_x1", +"PylonRack_Missile_BIM9X_x2", +"PylonWeapon_2000Rnd_65x39_belt", +"PylonWeapon_300Rnd_20mm_shells", +"rds_car_FirstAidKit_proxy", +"rds_car_warning_triangle_to11_proxy", +"rds_empty_proxy", +"rds_Sparewheel_gaz24_proxy", +"rds_Sparewheel_golf4_proxy", +"rds_Sparewheel_ikarus_proxy", +"rds_Sparewheel_lada_proxy", +"rds_Sparewheel_octavia_proxy", +"rds_Sparewheel_s1203_proxy", +"SmokeLauncherMag", +"SmokeLauncherMag_boat", +"VehicleMagazine" +]; diff --git a/testConfig.Altis/baseUniforms.sqf b/testConfig.Altis/baseUniforms.sqf new file mode 100644 index 0000000..721d804 --- /dev/null +++ b/testConfig.Altis/baseUniforms.sqf @@ -0,0 +1,195 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + This list of uniforms will be excluded from the output of the relevant scripts. + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseUniforms = [ +"Exile_Uniform_BambiOverall", +"Exile_Uniform_ExileCustoms", +"Exile_Uniform_Wetsuit_AAF", +"Exile_Uniform_Wetsuit_CSAT", +"Exile_Uniform_Wetsuit_NATO", +"Exile_Uniform_Woodland", +"U_AntigonaBody", +"U_AttisBody", +"U_B_CombatUniform_mcam", +"U_B_CombatUniform_mcam_tshirt", +"U_B_CombatUniform_mcam_vest", +"U_B_CombatUniform_mcam_worn", +"U_B_CombatUniform_sgg", +"U_B_CombatUniform_sgg_tshirt", +"U_B_CombatUniform_sgg_vest", +"U_B_CombatUniform_wdl", +"U_B_CombatUniform_wdl_tshirt", +"U_B_CombatUniform_wdl_vest", +"U_B_CTRG_1", +"U_B_CTRG_2", +"U_B_CTRG_3", +"U_B_CTRG_Soldier_2_F", +"U_B_CTRG_Soldier_3_F", +"U_B_CTRG_Soldier_F", +"U_B_CTRG_Soldier_urb_1_F", +"U_B_CTRG_Soldier_urb_2_F", +"U_B_CTRG_Soldier_urb_3_F", +"U_B_FullGhillie_ard", +"U_B_FullGhillie_lsh", +"U_B_FullGhillie_sard", +"U_B_GEN_Commander_F", +"U_B_GEN_Soldier_F", +"U_B_GhillieSuit", +"U_B_HeliPilotCoveralls", +"U_B_PilotCoveralls", +"U_B_Protagonist_VR", +"U_B_Soldier_VR", +"U_B_SpecopsUniform_sgg", +"U_B_survival_uniform", +"U_B_T_FullGhillie_tna_F", +"U_B_T_Sniper_F", +"U_B_T_Soldier_AR_F", +"U_B_T_Soldier_F", +"U_B_T_Soldier_SL_F", +"U_B_Wetsuit", +"U_BasicBody", +"U_BG_Guerilla1_1", +"U_BG_Guerilla2_1", +"U_BG_Guerilla2_2", +"U_BG_Guerilla2_3", +"U_BG_Guerilla3_1", +"U_BG_Guerilla3_2", +"U_BG_Guerrilla_6_1", +"U_BG_leader", +"U_C_Commoner1_1", +"U_C_Commoner1_2", +"U_C_Commoner1_3", +"U_C_Commoner2_1", +"U_C_Commoner2_2", +"U_C_Commoner2_3", +"U_C_Commoner_shorts", +"U_C_Driver_1", +"U_C_Driver_1_black", +"U_C_Driver_1_blue", +"U_C_Driver_1_green", +"U_C_Driver_1_orange", +"U_C_Driver_1_red", +"U_C_Driver_1_white", +"U_C_Driver_1_yellow", +"U_C_Driver_2", +"U_C_Driver_3", +"U_C_Driver_4", +"U_C_Farmer", +"U_C_Fisherman", +"U_C_FishermanOveralls", +"U_C_HunterBody_brn", +"U_C_HunterBody_grn", +"U_C_Journalist", +"U_C_Man_casual_1_F", +"U_C_Man_casual_2_F", +"U_C_Man_casual_3_F", +"U_C_Man_casual_4_F", +"U_C_Man_casual_5_F", +"U_C_Man_casual_6_F", +"U_C_man_sport_1_F", +"U_C_man_sport_2_F", +"U_C_man_sport_3_F", +"U_C_Novak", +"U_C_Poloshirt_blue", +"U_C_Poloshirt_burgundy", +"U_C_Poloshirt_redwhite", +"U_C_Poloshirt_salmon", +"U_C_Poloshirt_stripped", +"U_C_Poloshirt_tricolour", +"U_C_Poor_1", +"U_C_Poor_2", +"U_C_Poor_shorts_1", +"U_C_Poor_shorts_2", +"U_C_PriestBody", +"U_C_Scavenger_1", +"U_C_Scavenger_2", +"U_C_Scientist", +"U_C_ShirtSurfer_shorts", +"U_C_Soldier_VR", +"U_C_TeeSurfer_shorts_1", +"U_C_TeeSurfer_shorts_2", +"U_C_WorkerCoveralls", +"U_C_WorkerOveralls", +"U_Competitor", +"U_I_C_Soldier_Bandit_1_F", +"U_I_C_Soldier_Bandit_2_F", +"U_I_C_Soldier_Bandit_3_F", +"U_I_C_Soldier_Bandit_4_F", +"U_I_C_Soldier_Bandit_5_F", +"U_I_C_Soldier_Camo_F", +"U_I_C_Soldier_Para_1_F", +"U_I_C_Soldier_Para_2_F", +"U_I_C_Soldier_Para_3_F", +"U_I_C_Soldier_Para_4_F", +"U_I_C_Soldier_Para_5_F", +"U_I_CombatUniform", +"U_I_CombatUniform_shortsleeve", +"U_I_CombatUniform_tshirt", +"U_I_FullGhillie_ard", +"U_I_FullGhillie_lsh", +"U_I_FullGhillie_sard", +"U_I_G_resistanceLeader_F", +"U_I_G_Story_Protagonist_F", +"U_I_GhillieSuit", +"U_I_HeliPilotCoveralls", +"U_I_OfficerUniform", +"U_I_pilotCoveralls", +"U_I_Protagonist_VR", +"U_I_Soldier_VR", +"U_I_Wetsuit", +"U_IG_Guerilla1_1", +"U_IG_Guerilla2_1", +"U_IG_Guerilla2_2", +"U_IG_Guerilla2_3", +"U_IG_Guerilla3_1", +"U_IG_Guerilla3_2", +"U_IG_Guerrilla_6_1", +"U_IG_leader", +"U_IG_Menelaos", +"U_KerryBody", +"U_Marshal", +"U_MillerBody", +"U_NikosAgedBody", +"U_NikosBody", +"U_O_CombatUniform_ocamo", +"U_O_CombatUniform_oucamo", +"U_O_FullGhillie_ard", +"U_O_FullGhillie_lsh", +"U_O_FullGhillie_sard", +"U_O_GhillieSuit", +"U_O_OfficerUniform_ocamo", +"U_O_PilotCoveralls", +"U_O_Protagonist_VR", +"U_O_Soldier_VR", +"U_O_SpecopsUniform_blk", +"U_O_SpecopsUniform_ocamo", +"U_O_T_FullGhillie_tna_F", +"U_O_T_Officer_F", +"U_O_T_Sniper_F", +"U_O_T_Soldier_F", +"U_O_V_Soldier_Viper_F", +"U_O_V_Soldier_Viper_hex_F", +"U_O_Wetsuit", +"U_OG_Guerilla1_1", +"U_OG_Guerilla2_1", +"U_OG_Guerilla2_2", +"U_OG_Guerilla2_3", +"U_OG_Guerilla3_1", +"U_OG_Guerilla3_2", +"U_OG_Guerrilla_6_1", +"U_OG_leader", +"U_OI_Scientist", +"U_OrestesBody", +"U_Rangemaster", +"U_VirtualMan_F", +"Uniform_Base" +]; diff --git a/testConfig.Altis/baseVests.sqf b/testConfig.Altis/baseVests.sqf new file mode 100644 index 0000000..ea6f7f3 --- /dev/null +++ b/testConfig.Altis/baseVests.sqf @@ -0,0 +1,88 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + This list of vests will be excluded from the output of the relevant scripts. + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseVests = [ +"Exile_Vest_Rebreather_AAF", +"Exile_Vest_Rebreather_CSAT", +"Exile_Vest_Rebreather_NATO", +"Exile_Vest_Snow", +"V_BandollierB_blk", +"V_BandollierB_cbr", +"V_BandollierB_ghex_F", +"V_BandollierB_khk", +"V_BandollierB_oli", +"V_BandollierB_rgr", +"V_Chestrig_blk", +"V_Chestrig_khk", +"V_Chestrig_oli", +"V_Chestrig_rgr", +"V_DeckCrew_base_F", +"V_DeckCrew_blue_F", +"V_DeckCrew_brown_F", +"V_DeckCrew_green_F", +"V_DeckCrew_red_F", +"V_DeckCrew_violet_F", +"V_DeckCrew_white_F", +"V_DeckCrew_yellow_F", +"V_HarnessO_brn", +"V_HarnessO_ghex_F", +"V_HarnessO_gry", +"V_HarnessOGL_brn", +"V_HarnessOGL_ghex_F", +"V_HarnessOGL_gry", +"V_HarnessOSpec_brn", +"V_HarnessOSpec_gry", +"V_I_G_resistanceLeader_F", +"V_PlateCarrier1_blk", +"V_PlateCarrier1_rgr", +"V_PlateCarrier1_rgr_noflag_F", +"V_PlateCarrier1_tna_F", +"V_PlateCarrier2_blk", +"V_PlateCarrier2_rgr", +"V_PlateCarrier2_rgr_noflag_F", +"V_PlateCarrier2_tna_F", +"V_PlateCarrier3_rgr", +"V_PlateCarrier_Kerry", +"V_PlateCarrierGL_blk", +"V_PlateCarrierGL_mtp", +"V_PlateCarrierGL_rgr", +"V_PlateCarrierGL_tna_F", +"V_PlateCarrierH_CTRG", +"V_PlateCarrierIA1_dgtl", +"V_PlateCarrierIA2_dgtl", +"V_PlateCarrierIAGL_dgtl", +"V_PlateCarrierIAGL_oli", +"V_PlateCarrierL_CTRG", +"V_PlateCarrierSpec_blk", +"V_PlateCarrierSpec_mtp", +"V_PlateCarrierSpec_rgr", +"V_PlateCarrierSpec_tna_F", +"V_Press_F", +"V_Rangemaster_belt", +"V_RebreatherB", +"V_RebreatherIA", +"V_RebreatherIR", +"V_TacChestrig_cbr_F", +"V_TacChestrig_grn_F", +"V_TacChestrig_oli_F", +"V_TacVest_blk", +"V_TacVest_blk_POLICE", +"V_TacVest_brn", +"V_TacVest_camo", +"V_TacVest_gen_F", +"V_TacVest_khk", +"V_TacVest_oli", +"V_TacVestCamo_khk", +"V_TacVestIR_blk", +"Vest_Camo_Base", +"Vest_NoCamo_Base" +]; diff --git a/testConfig.Altis/baseWeapons.sqf b/testConfig.Altis/baseWeapons.sqf new file mode 100644 index 0000000..3560afd --- /dev/null +++ b/testConfig.Altis/baseWeapons.sqf @@ -0,0 +1,138 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + Lists weapons that should excluded from the output for the script. + + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_knownWeapons = [ + +// // Assault Rifles +"arifle_AK107", +"arifle_AK12_F", +"arifle_AK47", +"arifle_AK74", +"arifle_AKM", +"arifle_AKM_F", +"arifle_AKS", +"arifle_AKS_F", +"arifle_AKS_Gold", +"arifle_CTAR_blk_F", +"arifle_CTAR_ghex_F", +"arifle_CTAR_hex_F", +"arifle_CTARS_blk_F", +"arifle_CTARS_ghex_F", +"arifle_CTARS_hex_F", +"arifle_Katiba_F", +"arifle_Katiba_C_F", +"arifle_Mk20_F", +"arifle_Mk20_plain_F", +"arifle_Mk20C_F", +"arifle_Mk20C_plain_F", +"arifle_MX_F", +"arifle_MX_Black_F", +"arifle_MX_khk_F", +"arifle_MXC_F", +"arifle_MXC_Black_F", +"arifle_MXC_khk_F", +"arifle_MXM_Black_F", +"arifle_MXM_F", +"arifle_MXM_khk_F", +"arifle_RPK74", +"arifle_SDAR_F", +"arifle_SPAR_01_blk_F", +"arifle_SPAR_01_khk_F", +"arifle_SPAR_01_snd_F", +"arifle_TRG20_F", +"arifle_TRG21_F", +"exile_arifle_M16A2", +"exile_arifle_M16A4", +"exile_arifle_M4", +"Exile_Weapon_AK107", +"Exile_Weapon_AK47", +"Exile_Weapon_AK74", +"Exile_Weapon_AKM", +"Exile_Weapon_AKS", +"Exile_Weapon_AKS_Gold", +"Exile_Weapon_CZ550", +"Exile_Weapon_DMR", +"Exile_Weapon_ksvk", +"Exile_Weapon_LeeEnfield", +"Exile_Weapon_M1014", +"Exile_Weapon_M16A2", +"Exile_Weapon_M16A4", +"Exile_Weapon_M4", +"Exile_Weapon_RPK", +"Exile_Weapon_SVD", +"Exile_Weapon_SVDCamo", +"Exile_Weapon_VSSVintorez", +"hgun_PDW2000_F", +"ksvk", +"M1014", +"srifle_CZ550_base", +"srifle_CZ550_shit_1", +"srifle_CZ550_shit_2", +"srifle_DMR", +"srifle_LeeEnfield", +"srifle_SVD", +"srifle_SVD_des", +"srifle_VSSVintorez", + + +// Assault Rifles with GL +"arifle_AK107_GL", +"arifle_AK12_GL_F", +"arifle_AK74_GL", +"arifle_ARX_blk_F", +"arifle_ARX_ghex_F", +"arifle_ARX_hex_F", +"arifle_CTAR_GL_blk_F", +"arifle_CTAR_GL_ghex_F", +"arifle_CTAR_GL_hex_F", +"arifle_Katiba_GL_F", +"arifle_Mk20_GL_F", +"arifle_Mk20_GL_plain_F", +"arifle_MX_GL_F", +"arifle_MX_GL_Black_F", +"arifle_MX_GL_khk_F", +"arifle_SPAR_01_GL_blk_F", +"arifle_SPAR_01_GL_khk_F", +"arifle_SPAR_01_GL_snd_F", +"arifle_TRG21_GL_F", +"Exile_Weapon_AK107_GL", +"Exile_Weapon_AK74_GL", + + +// LMGs +"arifle_MX_SW_Black_F", +"arifle_MX_SW_F", +"arifle_MX_SW_khk_F", +"arifle_SPAR_02_blk_F", +"arifle_SPAR_02_khk_F", +"arifle_SPAR_02_snd_F", +"Exile_Weapon_PK", +"Exile_Weapon_PKP", +"LMG_03_F", +"LMG_Mk200_F", +"lmg_UK59", +"LMG_Zafir_F", +"MMG_01_hex_F", +"MMG_01_tan_F", +"MMG_02_black_F", +"MMG_02_camo_F", +"MMG_02_sand_F", +"Pecheneg", +"PKP", + + +// SMGs +"SMG_01_F", +"SMG_02_F", +"SMG_05_F" +]; diff --git a/testConfig.Altis/headgearConfig.sqf b/testConfig.Altis/headgearConfig.sqf new file mode 100644 index 0000000..7cf1469 --- /dev/null +++ b/testConfig.Altis/headgearConfig.sqf @@ -0,0 +1,39 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseHeadgear = []; +#include "baseHeadgear.sqf" +_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; +_veh sort true; +systemChat format[" _veh contains %1 entries",count _veh]; +_index = 0; +_cars = []; +_exile = 0; +_clipboard = ""; +{ + _isKindOf = (_x isKindOF ["HelmetBase", configFile >> "CfgWeapons"]) or (_x isKindOF ["H_HelmetB", configFile >> "CfgWeapons"]); + if (_isKindOf and !(_x in _baseHeadgear)) then + { + _cars pushback _x; + diag_log format["%1",_x]; + _index = _index + 1; + _left = [_x,5] call KRON_StrLeft; + if (_left in ["Exile"]) then { + _exile = _exile + 1; + systemChat format["%1",_x]; + + }; + _clipboard = _clipboard + format['"%1",%2',_x,endl]; + }; +}forEach _veh; +systemChat format["number of type of Vests = %1", _index]; +systemChat format["number of Exile Vests = %1",_exile]; + +copyToClipboard _clipboard;; \ No newline at end of file diff --git a/testConfig.Altis/headgearPriceList.sqf b/testConfig.Altis/headgearPriceList.sqf new file mode 100644 index 0000000..228922d --- /dev/null +++ b/testConfig.Altis/headgearPriceList.sqf @@ -0,0 +1,38 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseHeadgear = []; +#include "baseHeadgear.sqf" +_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; +_veh sort true; + +_cars = []; + +_clipboard = ""; +{ + _isKindOf = (_x isKindOF ["HelmetBase", configFile >> "CfgWeapons"]) or (_x isKindOF ["H_HelmetB", configFile >> "CfgWeapons"]); + if (_isKindOf and !(_x in _baseHeadgear)) then + { + _cars pushback _x; + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 50; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 50; };%2",_x,endl]; + }; + }; +}forEach _veh; +systemChat format["number of type of Man = %1", _index]; + +copyToClipboard _clipboard; + +systemChat "Headgear Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/init.sqf b/testConfig.Altis/init.sqf new file mode 100644 index 0000000..984d630 --- /dev/null +++ b/testConfig.Altis/init.sqf @@ -0,0 +1,26 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +// load string library +nul=[] execVM "KRON_Strings.sqf"; +DBD_priceConfiguration = "Exile"; // Options are "Exile" or "Epoch". This configuration pertains only to generating pre-formated price lists. + +player addAction["Run vehiclesConfig","vehiclesConfig.sqf"]; +player addAction["Run vehiclesPricelist","vehiclesPriceList.sqf"]; +player addAction["Run headgearConfig","headgearConfig.sqf"]; +player addAction["Run headgearPriceList","headgearPriceList.sqf"]; +player addAction["Run vestsConfig","vestsConfig.sqf"]; +player addAction["Run vestsPriceList","vestsPriceList.sqf"]; +player addAction["Run uniformsConfig","uniformsConfig.sqf"]; +player addAction["Run uniformsPriceList","uniformsPriceList.sqf"]; +player addAction["Run weaponsConfig","weaponsConfig.sqf"]; +player addAction["Run weaponsPriceList","weaponsPriceList.sqf"]; +player addAction["Run magazinesConfig","magazinesConfig.sqf"]; +player addAction["Run magazinesPriceList","magazinesPriceList.sqf"]; diff --git a/testConfig.Altis/magazinesConfig.sqf b/testConfig.Altis/magazinesConfig.sqf new file mode 100644 index 0000000..a4b091b --- /dev/null +++ b/testConfig.Altis/magazinesConfig.sqf @@ -0,0 +1,63 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseMagazines = []; +#include "baseMagazines.sqf" +//systemChat format["%1%2 end",_baseUniforms,endl]; +//uiSleep 5; +_veh = (configfile >> "CfgMagazines") call BIS_fnc_getCfgSubClasses; +_veh sort true; +systemChat format[" _veh contains %1 entries",count _veh]; +_cars = []; +_clipboard = ""; +_wpnSmokeShell = []; // "B_IR_Grenade" +_wpnLauncherRound = []; +_wpnMagazines = []; +_wpnVehicleAmmo = []; +_wpnMines = []; // "ATMine_Range_Mag" "SatchelCharge_Remote_Mag" "DemoCharge_Remote_Mag" "IEDUrbanSmall_Remote_Mag" +_isMagazine = true; + +_scannedMags = []; +{ + //diag_log format["Magazine = %1",_x]; + _isKindOf = (_x isKindOF ["CA_Magazine", configFile >> "CfgMagazines"]); + if (true) then + { + //diag_log format["Acceptable Magazine = %1",_x]; + if (_isKindOf and !(_x in _baseMagazines)) then + { + //diag_log format["Evaluated Magazine = %1",_x]; + //if (!(_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) && !(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) && !(_x isKindOf ["VehicleMagazine", configFile >> "CfgMagazines"]) && !(_x isKindOf ["Exile_AbstractItem", configFile >> "CfgMagazines"])) then {_wpnMagazines pushBack _x}; + if (_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) then {_wpnLauncherRound pushBack _x; _scannedMags pushBack _x;}; + if(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) then {_wpnSmokeShell pushBack _x; _scannedMags pushBack _x;}; + if (_x isKindOf ["VehicleMagazine", configFile >> "CfgMagazines"]) then {_wpnVehicleAmmo pushBack _x; _scannedMags pushBack _x;}; + if (_x isKindOf ["Exile_AbstractItem", configFile >> "CfgMagazines"]) then { _scannedMags pushBack _x;}; // Ignore these for now + if !(_x in _scannedMags) then {_wpnMagazines pushBack _x; _scannedMags pushBack _x;}; + }; + }; +}forEach _veh; +_clipBoard = _clipBoard + format["%1%2// Magazines%3",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1",%2',_x,endl]; +}forEach _wpnMagazines; +_clipBoard = _clipBoard + format["%1%2// Grenades, Smoke Grenades, Chemlights and Flares%3",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1",%2',_x,endl]; +}forEach _wpnSmokeShell; +_clipBoard = _clipBoard + format["%1%2// Launcher Rounds%3",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1",%2',_x,endl]; +}forEach _wpnLauncherRound; +_clipBoard = _clipBoard + format["%1%2// Vehicle Ammo%3",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1",%2',_x,endl]; +}forEach _wpnVehicleAmmo; + +copyToClipboard _clipboard; diff --git a/testConfig.Altis/magazinesPriceList.sqf b/testConfig.Altis/magazinesPriceList.sqf new file mode 100644 index 0000000..38e457f --- /dev/null +++ b/testConfig.Altis/magazinesPriceList.sqf @@ -0,0 +1,86 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseMagazines = []; +#include "baseMagazines.sqf" +_veh = (configfile >> "CfgMagazines") call BIS_fnc_getCfgSubClasses; +_veh sort true; +systemChat format[" _veh contains %1 entries",count _veh]; +_cars = []; +_clipboard = ""; +_wpnSmokeShell = []; // "B_IR_Grenade" +_wpnLauncherRound = []; +_wpnMagazines = []; +_wpnVehicleAmmo = []; +_wpnMines = []; // "ATMine_Range_Mag" "SatchelCharge_Remote_Mag" "DemoCharge_Remote_Mag" "IEDUrbanSmall_Remote_Mag" +_isMagazine = true; + +_scannedMags = []; +{ + _isKindOf = (_x isKindOF ["CA_Magazine", configFile >> "CfgMagazines"]); + if (true) then + { + if (_isKindOf and !(_x in _baseMagazines)) then + { + if (_x isKindOF ["CA_LauncherMagazine", configFile >> "CfgMagazines"]) then {_wpnLauncherRound pushBack _x; _scannedMags pushBack _x;}; + if(_x isKindOF ["HandGrenade", configFile >> "CfgMagazines"]) then {_wpnSmokeShell pushBack _x; _scannedMags pushBack _x;}; + if (_x isKindOf ["VehicleMagazine", configFile >> "CfgMagazines"]) then {_wpnVehicleAmmo pushBack _x; _scannedMags pushBack _x;}; + if (_x isKindOf ["Exile_AbstractItem", configFile >> "CfgMagazines"]) then { _scannedMags pushBack _x;}; // Ignore these for now + if !(_x in _scannedMags) then {_wpnMagazines pushBack _x; _scannedMags pushBack _x;}; + }; + }; +}forEach _veh; +_clipBoard = _clipBoard + format["%1%2// Magazines%3",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 15; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 15; };%2",_x,endl]; + }; +}forEach _wpnMagazines; +_clipBoard = _clipBoard + format["%1%2// Grenades, Smoke Grenades, Chemlights and Flares%3",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 15; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 15; };%2",_x,endl]; + }; +}forEach _wpnSmokeShell; +_clipBoard = _clipBoard + format["%1%2// Launcher Rounds%3",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 15; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 15; };%2",_x,endl]; + }; +}forEach _wpnLauncherRound; +_clipBoard = _clipBoard + format["%1%2// Vehicle Ammo%3",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnVehicleAmmo; + +copyToClipboard _clipboard; +systemChat "Magazines Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/mission.sqm b/testConfig.Altis/mission.sqm new file mode 100644 index 0000000..c4bfd68 --- /dev/null +++ b/testConfig.Altis/mission.sqm @@ -0,0 +1,143 @@ +version=53; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=1; + class ItemIDProvider + { + nextID=3; + }; + class Camera + { + pos[]={44081.895,20,-9231.0098}; + dir[]={-0.00050094543,0,1}; + up[]={0,1,0}; + aside[]={1,0,0.00050094543}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Characters_F_Exp", + "A3_Soft_F_Exp_Offroad_01" +}; +class AddonsMetaData +{ + class List + { + items=2; + class Item0 + { + className="A3_Characters_F_Exp"; + name="Arma 3 Apex - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item1 + { + className="A3_Soft_F_Exp"; + name="Arma 3 Apex - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + }; +}; +randomSeed=14371957; +class ScenarioData +{ + author="GhostRider=DbD="; +}; +class Mission +{ + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0.30000001; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2035; + month=6; + day=24; + hour=12; + minute=0; + startFogDecay=0.014; + forecastFogDecay=0.014; + }; + class Entities + { + items=2; + class Item0 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={15192.831,17.911438,16745.836}; + }; + side="West"; + flags=6; + class Attributes + { + isPlayer=1; + }; + id=2; + type="B_GEN_Commander_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=2; + item1=1; + class CustomData + { + role=1; + }; + }; + }; + }; + id=0; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={15192.831,19.521503,16745.816}; + }; + side="West"; + flags=6; + class Attributes + { + aiRadarUsage=-861312960; + }; + id=1; + type="B_GEN_Offroad_01_gen_F"; + }; + }; +}; diff --git a/testConfig.Altis/strtst.sqf b/testConfig.Altis/strtst.sqf new file mode 100644 index 0000000..ed8c673 --- /dev/null +++ b/testConfig.Altis/strtst.sqf @@ -0,0 +1,105 @@ +/*** Convert to array ***/ +_str="1234efg890"; +_array=[_str] call KRON_StrtoArray; +_arr1=format['StrtoArray: ["%1"] => %2',_str,_array]; // returns ["1","2","3","4","e","f","g","8","9","0"] + + +/*** String length ***/ +_str="abcdefg"; +_len=[_str] call KRON_StrLen; +_len1=format['StrLen: ["%1"] => %2',_str,_len]; // returns '7' + + +/*** Get left part of string ***/ +_str="1234567890"; +_len=3; +_left=[_str,_len] call KRON_StrLeft; +_left1=format['StrLeft: ["%1",%2] => "%3"',_str,_len,_left]; // returns '123' + + +/*** Get right part of string ***/ +_str="1234567890"; +_len=5; +_right=[_str,_len] call KRON_StrRight; +_right1=format['StrRight: ["%1",%2] => "%3"',_str,_len,_right]; // returns '67890' + + + +/*** Get Substring ***/ +_str="1234567890"; +_pos=3; +_len=3; +_substr=[_str,_pos,_len] call KRON_StrMid; +_mid1=format['StrMid: ["%1",%2,%3] => "%4"',_str,_pos,_len,_substr]; // returns '345' + +_str="1234567890"; +_pos=4; +_substr=[_str,_pos] call KRON_StrMid; +_mid2=format['StrMid: ["%1",%2] => "%3"',_str,_pos,_substr]; // returns '567890' + + +/*** Test for string ***/ +_str="1234567890"; +_ins="345"; +_found=[_str,_ins] call KRON_StrInStr; +_instr1=format['StrInStr: ["%1","%2"] => %3',_str,_ins,_found]; // returns 'true' + +_str="1234567890"; +_ins="345"; +_found=[_str,_ins] call KRON_StrIndex; +_instr2=format['StrIndex: ["%1","%2"] => %3',_str,_ins,_found]; // returns 2 + + + +/*** Convert to uppercase ***/ +_str="abc123XYZ"; +_ucase=[_str] call KRON_StrUpper; +_upper=format['StrUpper: ["%1"] => "%2"',_str,_ucase]; // returns 'ABC123XYZ' + +_str="abc123XYZ"; +_lcase=[_str] call KRON_StrLower; +_lower=format['StrLower: ["%1"] => "%2"',_str,_lcase]; // returns 'abc123xyz' + + +/*** Read flag ***/ +_arr=[this,1,"nogo",true]; +_arg=[_arr,"NOGO"] call KRON_FindFlag; +_flg=format['FindFlag: [[this,1,"nogo",true],"NOGO"] => "%1"',_arg]; // returns true + + +/*** Read arguments ***/ +_arr=[this,1,"left:100","right:200"]; +_arg=parseNumber([_arr,"Left"] call KRON_getArg); +_arg1=format['getArg: [[this,1,"left:100","right:200"],"Left"] => "%2"',_str,_arg]; // returns '100' + +_arr=[this,1,"left:100","right:200"]; +_arg=parseNumber([_arr,"Right"] call KRON_getArg); +_arg2=format['getArg: [[this,1,"left:100","right:200"],"Right"] => "%2"',_str,_arg]; // returns '200' + + +/*** Compare ***/ +_str1="abc"; +_str2="bde"; +_cmp=[_str1,_str2] call KRON_Compare; +_cmp1=format['Compare: ["%1","%2"] => "%3"',_str1,_str2,_cmp]; // returns -1 + + +/*** Sort array***/ +_arr=["x","aaa","100","abc"]; +_srt=[_arr] call KRON_ArraySort; +_srt1=format['ArraySort: [%1] => %2',_arr,_srt]; // returns ["100","aaa","abc","x"] + +_arr=["x","aaa","100","abc"]; +_srt=[_arr,"desc"] call KRON_ArraySort; +_srt2=format['ArraySort: [%1,"desc"] => %2',_arr,_srt]; // returns ["x","abc","aaa","100"] + +_arr=[["Jim",300,false],["Joe",100,false],["Jack",200,true]]; +_srt=[_arr] call KRON_ArraySort; +_srt3=format['ArraySort: [[%1]] => %2',_arr,_srt]; // returns [["Jack",200,true],["Jim",300,false],["Joe",100,false]] + +_arr=[["Jim",300,false],["Joe",100,false],["Jack",200,true]]; +_srt=[_arr,1,"desc"] call KRON_ArraySort; +_srt4=format['ArraySort: [[%1],1,"desc"] => %2',_arr,_srt]; // returns [["Jim",300,false],["Jack",200,true],["Joe",100,false]] + +/*** Output results ***/ +hintc format['%1\n%2\n%3\n%4\n%5\n%6\n%7\n%8\n%9\n%10\n%11\n%12\n%13\n%14\n%15\n%16\n%17\n%18',_arr1,_len1,_left1,_right1,_mid1,_mid2,_instr1,_instr2,_upper,_lower,_flg,_arg1,_arg2,_cmp1,_srt1,_srt2,_srt3,_srt4]; diff --git a/testConfig.Altis/uniformsConfig.sqf b/testConfig.Altis/uniformsConfig.sqf new file mode 100644 index 0000000..5c91a92 --- /dev/null +++ b/testConfig.Altis/uniformsConfig.sqf @@ -0,0 +1,41 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseUniforms = []; +#include "baseUniforms.sqf" +//systemChat format["%1%2 end",_baseUniforms,endl]; +//uiSleep 5; +_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; +_veh sort true; +systemChat format[" _veh contains %1 entries",count _veh]; +_index = 0; +_cars = []; +_exile = 0; +_clipboard = ""; +{ + _isKindOf = _x isKindOF ["Uniform_Base", configFile >> "CfgWeapons"]; + if (_isKindOf and !(_x in _baseUniforms)) then + { + _cars pushback _x; + diag_log format["%1",_x]; + _index = _index + 1; + _left = [_x,5] call KRON_StrLeft; + if (_left in ["Exile"]) then { + _exile = _exile + 1; + systemChat format["%1",_x]; + + }; + _clipboard = _clipboard + format['"%1",%2',_x,endl]; + }; +}forEach _veh; +systemChat format["number of type of Uniform_Base = %1", _index]; +systemChat format["number of Exile uniforms = %1",_exile]; + +copyToClipboard _clipboard; diff --git a/testConfig.Altis/uniformsPriceList.sqf b/testConfig.Altis/uniformsPriceList.sqf new file mode 100644 index 0000000..48d82a7 --- /dev/null +++ b/testConfig.Altis/uniformsPriceList.sqf @@ -0,0 +1,34 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ +_baseUniforms = []; +#include "baseUniforms.sqf" +_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; +_veh sort true; +systemChat format[" _veh contains %1 entries",count _veh]; +_cars = []; +_clipboard = ""; +{ + _isKindOf = _x isKindOF ["Uniform_Base", configFile >> "CfgWeapons"]; + if (_isKindOf and !(_x in _baseUniforms)) then + { + _cars pushback _x; + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 50; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 50; };%2",_x,endl]; + }; + }; +}forEach _veh; + +copyToClipboard _clipboard; +systemChat "Uniforms Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/vehiclesBase.sqf b/testConfig.Altis/vehiclesBase.sqf new file mode 100644 index 0000000..22de107 --- /dev/null +++ b/testConfig.Altis/vehiclesBase.sqf @@ -0,0 +1,597 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + Lists vehicles that should be excluded from the output of the script. + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_vehiclesBase = [ +"APC_Wheeled_01_base_F", +"APC_Wheeled_02_base_F", +"APC_Wheeled_03_base_F", +"B_APC_Wheeled_01_base_F", +"B_APC_Wheeled_01_cannon_F", +"B_CTRG_LSV_01_light_F", +"B_G_Offroad_01_armed_F", +"B_G_Offroad_01_F", +"B_G_Offroad_01_repair_F", +"B_G_Quadbike_01_F", +"B_G_Van_01_fuel_F", +"B_G_Van_01_transport_F", +"B_GEN_Offroad_01_gen_F", +"B_LSV_01_armed_black_F", +"B_LSV_01_armed_F", +"B_LSV_01_armed_olive_F", +"B_LSV_01_armed_sand_F", +"B_LSV_01_unarmed_black_F", +"B_LSV_01_unarmed_F", +"B_LSV_01_unarmed_olive_F", +"B_LSV_01_unarmed_sand_F", +"B_MRAP_01_F", +"B_MRAP_01_gmg_F", +"B_MRAP_01_hmg_F", +"B_Quadbike_01_F", +"B_T_APC_Wheeled_01_cannon_F", +"B_T_LSV_01_armed_black_F", +"B_T_LSV_01_armed_CTRG_F", +"B_T_LSV_01_armed_F", +"B_T_LSV_01_armed_olive_F", +"B_T_LSV_01_armed_sand_F", +"B_T_LSV_01_unarmed_black_F", +"B_T_LSV_01_unarmed_CTRG_F", +"B_T_LSV_01_unarmed_F", +"B_T_LSV_01_unarmed_olive_F", +"B_T_LSV_01_unarmed_sand_F", +"B_T_MRAP_01_F", +"B_T_MRAP_01_gmg_F", +"B_T_MRAP_01_hmg_F", +"B_T_Quadbike_01_F", +"B_T_Truck_01_ammo_F", +"B_T_Truck_01_box_F", +"B_T_Truck_01_covered_F", +"B_T_Truck_01_fuel_F", +"B_T_Truck_01_medical_F", +"B_T_Truck_01_mover_F", +"B_T_Truck_01_Repair_F", +"B_T_Truck_01_transport_F", +"B_Truck_01_ammo_F", +"B_Truck_01_box_F", +"B_Truck_01_covered_F", +"B_Truck_01_fuel_F", +"B_Truck_01_medical_F", +"B_Truck_01_mover_F", +"B_Truck_01_Repair_F", +"B_Truck_01_transport_F", +"B_UGV_01_F", +"B_UGV_01_rcws_F", +"BRDM2_HQ_Base", +"BRDM2_HQ_CHDKZ", +"BTR40_base_EP1", +"BTR40_MG_base_EP1", +"BTR40_MG_TK_GUE_EP1", +"BTR40_MG_TK_INS_EP1", +"BTR40_TK_GUE_EP1", +"BTR40_TK_INS_EP1", +"Bus", +"C_Hatchback_01_beigecustom_F", +"C_Hatchback_01_black_F", +"C_Hatchback_01_blue_F", +"C_Hatchback_01_bluecustom_F", +"C_Hatchback_01_dark_F", +"C_Hatchback_01_F", +"C_Hatchback_01_green_F", +"C_Hatchback_01_grey_F", +"C_Hatchback_01_sport_blue_F", +"C_Hatchback_01_sport_F", +"C_Hatchback_01_sport_green_F", +"C_Hatchback_01_sport_grey_F", +"C_Hatchback_01_sport_orange_F", +"C_Hatchback_01_sport_red_F", +"C_Hatchback_01_sport_white_F", +"C_Hatchback_01_white_F", +"C_Hatchback_01_yellow_F", +"C_Kart_01_black_F", +"C_Kart_01_Blu_F", +"C_Kart_01_F", +"C_Kart_01_F_Base", +"C_Kart_01_Fuel_F", +"C_Kart_01_green_F", +"C_Kart_01_orange_F", +"C_Kart_01_Red_F", +"C_Kart_01_Vrana_F", +"C_Kart_01_white_F", +"C_Kart_01_yellow_F", +"C_Offroad_01_blue_F", +"C_Offroad_01_bluecustom_F", +"C_Offroad_01_darkred_F", +"C_Offroad_01_F", +"C_Offroad_01_red_F", +"C_Offroad_01_repair_F", +"C_Offroad_01_sand_F", +"C_Offroad_01_white_F", +"C_Offroad_02_unarmed_black_F", +"C_Offroad_02_unarmed_blue_F", +"C_Offroad_02_unarmed_F", +"C_Offroad_02_unarmed_green_F", +"C_Offroad_02_unarmed_orange_F", +"C_Offroad_02_unarmed_red_F", +"C_Offroad_02_unarmed_white_F", +"C_Offroad_default_F", +"C_Offroad_luxe_F", +"C_Offroad_stripped_F", +"C_Quadbike_01_black_F", +"C_Quadbike_01_blue_F", +"C_Quadbike_01_F", +"C_Quadbike_01_red_F", +"C_Quadbike_01_white_F", +"C_SUV_01_F", +"C_Truck_02_box_F", +"C_Truck_02_covered_F", +"C_Truck_02_fuel_F", +"C_Truck_02_transport_F", +"C_Van_01_box_F", +"C_Van_01_box_red_F", +"C_Van_01_box_white_F", +"C_Van_01_fuel_F", +"C_Van_01_fuel_red_F", +"C_Van_01_fuel_red_v2_F", +"C_Van_01_fuel_white_F", +"C_Van_01_fuel_white_v2_F", +"C_Van_01_transport_F", +"C_Van_01_transport_red_F", +"C_Van_01_transport_white_F", +"Car", +"Car_F", +"Exile_Bike_QuadBike_Abstract", +"Exile_Bike_QuadBike_Black", +"Exile_Bike_QuadBike_Blue", +"Exile_Bike_QuadBike_Csat", +"Exile_Bike_QuadBike_Fia", +"Exile_Bike_QuadBike_Guerilla01", +"Exile_Bike_QuadBike_Guerilla02", +"Exile_Bike_QuadBike_Nato", +"Exile_Bike_QuadBike_Red", +"Exile_Bike_QuadBike_White", +"Exile_Car_BRDM2_HQ", +"Exile_Car_BRDM2_HQ_Abstract", +"Exile_Car_BTR40_Abstract", +"Exile_Car_BTR40_Camo", +"Exile_Car_BTR40_Green", +"Exile_Car_BTR40_MG_Abstract", +"Exile_Car_BTR40_MG_Camo", +"Exile_Car_BTR40_MG_Green", +"Exile_Car_Golf_Abstract", +"Exile_Car_Golf_Black", +"Exile_Car_Golf_Red", +"Exile_Car_Hatchback_Abstract", +"Exile_Car_Hatchback_Beige", +"Exile_Car_Hatchback_BeigeCustom", +"Exile_Car_Hatchback_Black", +"Exile_Car_Hatchback_Blue", +"Exile_Car_Hatchback_BlueCustom", +"Exile_Car_Hatchback_Dark", +"Exile_Car_Hatchback_Green", +"Exile_Car_Hatchback_Grey", +"Exile_Car_Hatchback_Rusty1", +"Exile_Car_Hatchback_Rusty2", +"Exile_Car_Hatchback_Rusty3", +"Exile_Car_Hatchback_Sport_Abstract", +"Exile_Car_Hatchback_Sport_Admin", +"Exile_Car_Hatchback_Sport_Beige", +"Exile_Car_Hatchback_Sport_Blue", +"Exile_Car_Hatchback_Sport_Green", +"Exile_Car_Hatchback_Sport_Orange", +"Exile_Car_Hatchback_Sport_Red", +"Exile_Car_Hatchback_Sport_White", +"Exile_Car_Hatchback_Yellow", +"Exile_Car_HEMMT", +"Exile_Car_HEMMT_Abstract", +"Exile_Car_HMMWV_M134_Abstract", +"Exile_Car_HMMWV_M134_Desert", +"Exile_Car_HMMWV_M134_Green", +"Exile_Car_HMMWV_M2_Abstract", +"Exile_Car_HMMWV_M2_Desert", +"Exile_Car_HMMWV_M2_Green", +"Exile_Car_HMMWV_MEV_Abstract", +"Exile_Car_HMMWV_MEV_Desert", +"Exile_Car_HMMWV_MEV_Green", +"Exile_Car_HMMWV_UNA_Abstract", +"Exile_Car_HMMWV_UNA_Desert", +"Exile_Car_HMMWV_UNA_Green", +"Exile_Car_Hunter", +"Exile_Car_Hunter_Abstract", +"Exile_Car_Ifrit", +"Exile_Car_Ifrit_Abstract", +"Exile_Car_Ikarus_Abstract", +"Exile_Car_Ikarus_Blue", +"Exile_Car_Ikarus_Party", +"Exile_Car_Ikarus_Red", +"Exile_Car_Kart_Abstract", +"Exile_Car_Kart_Black", +"Exile_Car_Kart_Blue", +"Exile_Car_Kart_BluKing", +"Exile_Car_Kart_Green", +"Exile_Car_Kart_Orange", +"Exile_Car_Kart_RedStone", +"Exile_Car_Kart_Vrana", +"Exile_Car_Kart_White", +"Exile_Car_Kart_Yellow", +"Exile_Car_Lada_Abstract", +"Exile_Car_Lada_Green", +"Exile_Car_Lada_Hipster", +"Exile_Car_Lada_Red", +"Exile_Car_Lada_Taxi", +"Exile_Car_Lada_White", +"Exile_Car_LandRover_Abstract", +"Exile_Car_LandRover_Ambulance_Abstract", +"Exile_Car_LandRover_Ambulance_Desert", +"Exile_Car_LandRover_Ambulance_Green", +"Exile_Car_LandRover_Ambulance_Sand", +"Exile_Car_LandRover_Desert", +"Exile_Car_LandRover_Green", +"Exile_Car_LandRover_Red", +"Exile_Car_LandRover_Sand", +"Exile_Car_LandRover_Urban", +"Exile_Car_MB4WD", +"Exile_Car_MB4WDOpen", +"Exile_Car_Octavius_Abstract", +"Exile_Car_Octavius_Black", +"Exile_Car_Octavius_White", +"Exile_Car_Offroad_Abstract", +"Exile_Car_Offroad_Armed_Abstract", +"Exile_Car_Offroad_Armed_Guerilla01", +"Exile_Car_Offroad_Armed_Guerilla02", +"Exile_Car_Offroad_Armed_Guerilla03", +"Exile_Car_Offroad_Armed_Guerilla04", +"Exile_Car_Offroad_Armed_Guerilla05", +"Exile_Car_Offroad_Armed_Guerilla06", +"Exile_Car_Offroad_Armed_Guerilla07", +"Exile_Car_Offroad_Armed_Guerilla08", +"Exile_Car_Offroad_Armed_Guerilla09", +"Exile_Car_Offroad_Armed_Guerilla10", +"Exile_Car_Offroad_Armed_Guerilla11", +"Exile_Car_Offroad_Armed_Guerilla12", +"Exile_Car_Offroad_Beige", +"Exile_Car_Offroad_Blue", +"Exile_Car_Offroad_BlueCustom", +"Exile_Car_Offroad_DarkRed", +"Exile_Car_Offroad_Guerilla01", +"Exile_Car_Offroad_Guerilla02", +"Exile_Car_Offroad_Guerilla03", +"Exile_Car_Offroad_Guerilla04", +"Exile_Car_Offroad_Guerilla05", +"Exile_Car_Offroad_Guerilla06", +"Exile_Car_Offroad_Guerilla07", +"Exile_Car_Offroad_Guerilla08", +"Exile_Car_Offroad_Guerilla09", +"Exile_Car_Offroad_Guerilla10", +"Exile_Car_Offroad_Guerilla11", +"Exile_Car_Offroad_Guerilla12", +"Exile_Car_Offroad_Red", +"Exile_Car_Offroad_Repair_Abstract", +"Exile_Car_Offroad_Repair_Beige", +"Exile_Car_Offroad_Repair_Blue", +"Exile_Car_Offroad_Repair_BlueCustom", +"Exile_Car_Offroad_Repair_Civillian", +"Exile_Car_Offroad_Repair_DarkRed", +"Exile_Car_Offroad_Repair_Guerilla01", +"Exile_Car_Offroad_Repair_Guerilla02", +"Exile_Car_Offroad_Repair_Guerilla03", +"Exile_Car_Offroad_Repair_Guerilla04", +"Exile_Car_Offroad_Repair_Guerilla05", +"Exile_Car_Offroad_Repair_Guerilla06", +"Exile_Car_Offroad_Repair_Guerilla07", +"Exile_Car_Offroad_Repair_Guerilla08", +"Exile_Car_Offroad_Repair_Guerilla09", +"Exile_Car_Offroad_Repair_Guerilla10", +"Exile_Car_Offroad_Repair_Guerilla11", +"Exile_Car_Offroad_Repair_Guerilla12", +"Exile_Car_Offroad_Repair_Red", +"Exile_Car_Offroad_Repair_White", +"Exile_Car_Offroad_Rusty1", +"Exile_Car_Offroad_Rusty2", +"Exile_Car_Offroad_Rusty3", +"Exile_Car_Offroad_White", +"Exile_Car_OldTractor_Abstract", +"Exile_Car_OldTractor_Red", +"Exile_Car_ProwlerLight", +"Exile_Car_ProwlerUnarmed", +"Exile_Car_QilinUnarmed", +"Exile_Car_Strider", +"Exile_Car_Strider_Abstract", +"Exile_Car_SUV_Abstract", +"Exile_Car_SUV_Armed_Abstract", +"Exile_Car_SUV_Armed_Black", +"Exile_Car_SUV_Black", +"Exile_Car_SUV_Grey", +"Exile_Car_SUV_Orange", +"Exile_Car_SUV_Red", +"Exile_Car_SUV_Rusty1", +"Exile_Car_SUV_Rusty2", +"Exile_Car_SUV_Rusty3", +"Exile_Car_SUVXL_Abstract", +"Exile_Car_SUVXL_Black", +"Exile_Car_Tempest", +"Exile_Car_Tempest_Abstract", +"Exile_Car_TowTractor_Abstract", +"Exile_Car_TowTractor_White", +"Exile_Car_Tractor_Abstract", +"Exile_Car_Tractor_Red", +"Exile_Car_UAZ_Abstract", +"Exile_Car_UAZ_Green", +"Exile_Car_UAZ_Open_Abstract", +"Exile_Car_UAZ_Open_Green", +"Exile_Car_Ural_Covered_Abstract", +"Exile_Car_Ural_Covered_Blue", +"Exile_Car_Ural_Covered_Military", +"Exile_Car_Ural_Covered_Worker", +"Exile_Car_Ural_Covered_Yellow", +"Exile_Car_Ural_Open_Abstract", +"Exile_Car_Ural_Open_Blue", +"Exile_Car_Ural_Open_Military", +"Exile_Car_Ural_Open_Worker", +"Exile_Car_Ural_Open_Yellow", +"Exile_Car_V3S_Covered", +"Exile_Car_V3S_Covered_Abstract", +"Exile_Car_V3S_Open", +"Exile_Car_V3S_Open_Abstract", +"Exile_Car_Van_Abstract", +"Exile_Car_Van_Black", +"Exile_Car_Van_Box_Abstract", +"Exile_Car_Van_Box_Black", +"Exile_Car_Van_Box_Guerilla01", +"Exile_Car_Van_Box_Guerilla02", +"Exile_Car_Van_Box_Guerilla03", +"Exile_Car_Van_Box_Guerilla04", +"Exile_Car_Van_Box_Guerilla05", +"Exile_Car_Van_Box_Guerilla06", +"Exile_Car_Van_Box_Guerilla07", +"Exile_Car_Van_Box_Guerilla08", +"Exile_Car_Van_Box_Red", +"Exile_Car_Van_Box_White", +"Exile_Car_Van_Fuel_Abstract", +"Exile_Car_Van_Fuel_Black", +"Exile_Car_Van_Fuel_Guerilla01", +"Exile_Car_Van_Fuel_Guerilla02", +"Exile_Car_Van_Fuel_Guerilla03", +"Exile_Car_Van_Fuel_Red", +"Exile_Car_Van_Fuel_White", +"Exile_Car_Van_Guerilla01", +"Exile_Car_Van_Guerilla02", +"Exile_Car_Van_Guerilla03", +"Exile_Car_Van_Guerilla04", +"Exile_Car_Van_Guerilla05", +"Exile_Car_Van_Guerilla06", +"Exile_Car_Van_Guerilla07", +"Exile_Car_Van_Guerilla08", +"Exile_Car_Van_Red", +"Exile_Car_Van_White", +"Exile_Car_Volha_Abstract", +"Exile_Car_Volha_Black", +"Exile_Car_Volha_Blue", +"Exile_Car_Volha_White", +"Exile_Car_Zamak", +"Exile_Car_Zamak_Abstract", +"Golf_Base", +"Golf_Civ_Base", +"Golf_Civ_Black", +"Golf_Civ_pink", +"Hatchback_01_base_F", +"Hatchback_01_sport_base_F", +"HMMWV_Base", +"HMMWV_M134", +"HMMWV_M134_des", +"HMMWV_M2", +"HMMWV_M2_des", +"HMMWV_M2_GPK_1", +"HMMWV_M2_GPK_Base", +"HMMWV_MEV", +"HMMWV_MEV_des", +"HMMWV_UNA", +"HMMWV_UNA_des", +"I_APC_Wheeled_03_base_F", +"I_APC_Wheeled_03_cannon_F", +"I_C_Offroad_02_unarmed_brown_F", +"I_C_Offroad_02_unarmed_F", +"I_C_Offroad_02_unarmed_olive_F", +"I_C_Van_01_transport_brown_F", +"I_C_Van_01_transport_F", +"I_C_Van_01_transport_olive_F", +"I_G_Offroad_01_armed_F", +"I_G_Offroad_01_F", +"I_G_Offroad_01_repair_F", +"I_G_Quadbike_01_F", +"I_G_Van_01_fuel_F", +"I_G_Van_01_transport_F", +"I_MRAP_03_F", +"I_MRAP_03_gmg_F", +"I_MRAP_03_hmg_F", +"I_Quadbike_01_F", +"I_Truck_02_ammo_F", +"I_Truck_02_box_F", +"I_Truck_02_covered_F", +"I_Truck_02_fuel_F", +"I_Truck_02_medical_F", +"I_Truck_02_transport_F", +"I_UGV_01_F", +"I_UGV_01_rcws_F", +"Ikarus_Base", +"Ikarus_Civ_02", +"Ikarus_Govnodav_01", +"Ikarus_Govnodav_02", +"Kart_01_Base_F", +"Lada_Base", +"Lada_Civ_01", +"Lada_Civ_02", +"Lada_Civ_03", +"Lada_Civ_04", +"Lada_Civ_Base", +"Lada_Militia", +"Landrover_civ", +"Landrover_Civ_01", +"Landrover_Civ_01_Urban1", +"Landrover_Civ_02", +"Landrover_Civ_03", +"Landrover_Des", +"LR_Ambulance_01", +"LR_Ambulance_02", +"LR_Ambulance_Base", +"LR_MG_Base", +"LSV_01_armed_base_F", +"LSV_01_base_F", +"LSV_01_light_base_F", +"LSV_01_unarmed_base_F", +"LSV_02_armed_base_F", +"LSV_02_base_F", +"LSV_02_unarmed_base_F", +"MRAP_01_base_F", +"MRAP_01_gmg_base_F", +"MRAP_01_hmg_base_F", +"MRAP_02_base_F", +"MRAP_02_gmg_base_F", +"MRAP_02_hmg_base_F", +"MRAP_03_base_F", +"MRAP_03_gmg_base_F", +"MRAP_03_hmg_base_F", +"O_APC_Wheeled_02_base_F", +"O_APC_Wheeled_02_rcws_F", +"O_G_Offroad_01_armed_F", +"O_G_Offroad_01_F", +"O_G_Offroad_01_repair_F", +"O_G_Quadbike_01_F", +"O_G_Van_01_fuel_F", +"O_G_Van_01_transport_F", +"O_LSV_02_armed_arid_F", +"O_LSV_02_armed_black_F", +"O_LSV_02_armed_F", +"O_LSV_02_armed_ghex_F", +"O_LSV_02_armed_viper_F", +"O_LSV_02_unarmed_arid_F", +"O_LSV_02_unarmed_black_F", +"O_LSV_02_unarmed_F", +"O_LSV_02_unarmed_ghex_F", +"O_LSV_02_unarmed_viper_F", +"O_MRAP_02_F", +"O_MRAP_02_gmg_F", +"O_MRAP_02_hmg_F", +"O_Quadbike_01_F", +"O_T_APC_Wheeled_02_rcws_ghex_F", +"O_T_LSV_02_armed_arid_F", +"O_T_LSV_02_armed_black_F", +"O_T_LSV_02_armed_F", +"O_T_LSV_02_armed_ghex_F", +"O_T_LSV_02_armed_viper_F", +"O_T_LSV_02_unarmed_arid_F", +"O_T_LSV_02_unarmed_black_F", +"O_T_LSV_02_unarmed_F", +"O_T_LSV_02_unarmed_ghex_F", +"O_T_LSV_02_unarmed_viper_F", +"O_T_MRAP_02_ghex_F", +"O_T_MRAP_02_gmg_ghex_F", +"O_T_MRAP_02_hmg_ghex_F", +"O_T_Quadbike_01_ghex_F", +"O_T_Truck_03_ammo_ghex_F", +"O_T_Truck_03_covered_ghex_F", +"O_T_Truck_03_device_ghex_F", +"O_T_Truck_03_fuel_ghex_F", +"O_T_Truck_03_medical_ghex_F", +"O_T_Truck_03_repair_ghex_F", +"O_T_Truck_03_transport_ghex_F", +"O_T_UGV_01_ghex_F", +"O_T_UGV_01_rcws_ghex_F", +"O_Truck_02_Ammo_F", +"O_Truck_02_box_F", +"O_Truck_02_covered_F", +"O_Truck_02_fuel_F", +"O_Truck_02_medical_F", +"O_Truck_02_transport_F", +"O_Truck_03_ammo_F", +"O_Truck_03_covered_F", +"O_Truck_03_device_F", +"O_Truck_03_fuel_F", +"O_Truck_03_medical_F", +"O_Truck_03_repair_F", +"O_Truck_03_transport_F", +"O_UGV_01_F", +"O_UGV_01_rcws_F", +"Octavia_Base", +"Octavia_Civ_01", +"Octavia_Civ_03", +"Octavia_Civ_04", +"Octavia_Civ_05", +"Offroad_01_armed_base_F", +"Offroad_01_base_F", +"Offroad_01_civil_base_F", +"Offroad_01_military_base_F", +"Offroad_01_repair_base_F", +"Offroad_01_repair_military_base_F", +"Offroad_01_unarmed_base_F", +"Offroad_02_base_F", +"Offroad_02_unarmed_base_F", +"PaperCar", +"Quadbike_01_base_F", +"SUV_01_base_black_F", +"SUV_01_base_F", +"SUV_01_base_grey_F", +"SUV_01_base_orange_F", +"SUV_01_base_red_F", +"SUV_armored_Base", +"SUV_Base", +"SUV_civ_01", +"SUV_civ_02", +"SUV_civ_03", +"SUV_civ_04", +"SUV_civ_05", +"SUV_civ_06", +"SUV_civ_07", +"SUV_civ_08", +"TowingTractor", +"Tractor", +"Tractor_Base", +"TractorOld", +"Truck", +"Truck_01_base_F", +"Truck_02_Ammo_base_F", +"Truck_02_base_F", +"Truck_02_box_base_F", +"Truck_02_fuel_base_F", +"Truck_02_medical_base_F", +"Truck_02_transport_base_F", +"Truck_03_base_F", +"Truck_F", +"UAZ_AGS30_Base", +"UAZ_Armed_Base", +"UAZ_Base", +"UAZ_MG_Base", +"UAZ_Open_Base", +"UGV_01_base_F", +"UGV_01_rcws_base_F", +"Ural_Base", +"Ural_Civ_01", +"Ural_Civ_02", +"Ural_Civ_03", +"Ural_Civ_Base", +"Ural_Open_Base", +"Ural_Open_Civ_01", +"Ural_Open_Civ_02", +"Ural_Open_Civ_03", +"Ural_Open_RU", +"Ural_RU", +"V3S_base", +"V3S_Base_EP1", +"Van_01_base_F", +"Van_01_box_base_F", +"Van_01_fuel_base_F", +"Van_01_transport_base_F", +"volha_Base", +"volha_Civ_01", +"volha_Civ_02", +"volha_Civ_03", +"Wheeled_APC", +"Wheeled_APC_F" +]; diff --git a/testConfig.Altis/vehiclesConfig.sqf b/testConfig.Altis/vehiclesConfig.sqf new file mode 100644 index 0000000..12f7296 --- /dev/null +++ b/testConfig.Altis/vehiclesConfig.sqf @@ -0,0 +1,38 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_vehiclesBase = []; +#include "vehiclesBase.sqf" +_veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; +_veh sort true; +systemChat format[" _veh contains %1 entries",count _veh]; +_index = 0; +_cars = []; +_exile = 0; +_clipboard = ""; +{ + if (_x isKindOf "Car" && !(_x in _vehiclesBase)) then + { + _cars pushback _x; + diag_log format["%1",_x]; + _index = _index + 1; + _left = [_x,5] call KRON_StrLeft; + if (_left in ["Exile"]) then { + _exile = _exile + 1; + systemChat format["%1",_x]; + + }; + _clipboard = _clipboard + format['"%1",%2',_x,endl]; + }; +}forEach _veh; +systemChat format["number of type of Car_F = %1", _index]; +systemChat format["number of Exile cars = %1",_exile]; + +copyToClipboard _clipboard; diff --git a/testConfig.Altis/vehiclesPriceList.sqf b/testConfig.Altis/vehiclesPriceList.sqf new file mode 100644 index 0000000..a79b5ce --- /dev/null +++ b/testConfig.Altis/vehiclesPriceList.sqf @@ -0,0 +1,33 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_vehiclesBase = []; +#include "vehiclesBase.sqf" +_veh = (configfile >> "CfgVehicles") call BIS_fnc_getCfgSubClasses; +_veh sort true; +_cars = []; +_clipboard = ""; +{ + if (_x isKindOf "Car" && !(_x in _vehiclesBase)) then + { + _cars pushback _x; + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 15000; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 15000; };%2",_x,endl]; + }; + }; +}forEach _veh; + +copyToClipboard _clipboard; +systemChat "Vehicles Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/vestsConfig.sqf b/testConfig.Altis/vestsConfig.sqf new file mode 100644 index 0000000..2194179 --- /dev/null +++ b/testConfig.Altis/vestsConfig.sqf @@ -0,0 +1,41 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseVests = []; +#include "baseVests.sqf" +//systemChat format["%1%2 end",_baseUniforms,endl]; +//uiSleep 5; +_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; +_veh sort true; +systemChat format[" _veh contains %1 entries",count _veh]; +_index = 0; +_cars = []; +_exile = 0; +_clipboard = ""; +{ + _isKindOf = (_x isKindOF ["Vest_Camo_Base", configFile >> "CfgWeapons"]) or (_x isKindOF ["Vest_NoCamo_Base", configFile >> "CfgWeapons"]); + if (_isKindOf and !(_x in _baseVests)) then + { + _cars pushback _x; + diag_log format["%1",_x]; + _index = _index + 1; + _left = [_x,5] call KRON_StrLeft; + if (_left in ["Exile"]) then { + _exile = _exile + 1; + systemChat format["%1",_x]; + + }; + _clipboard = _clipboard + format['"%1",%2',_x,endl]; + }; +}forEach _veh; +systemChat format["number of type of Vests = %1", _index]; +systemChat format["number of Exile Vests = %1",_exile]; + +copyToClipboard _clipboard; diff --git a/testConfig.Altis/vestsPriceList.sqf b/testConfig.Altis/vestsPriceList.sqf new file mode 100644 index 0000000..b31e761 --- /dev/null +++ b/testConfig.Altis/vestsPriceList.sqf @@ -0,0 +1,35 @@ +/* + Class Name Extraction Tool + By GhostriderDbD + For Arma 3 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_baseVests = []; +#include "baseVests.sqf" +_veh = (configfile >> "CfgWeapons") call BIS_fnc_getCfgSubClasses; +_veh sort true; +_cars = []; +_clipboard = ""; +{ + _isKindOf = (_x isKindOF ["Vest_Camo_Base", configFile >> "CfgWeapons"]) or (_x isKindOF ["Vest_NoCamo_Base", configFile >> "CfgWeapons"]); + if (_isKindOf and !(_x in _baseVests)) then + { + _cars pushback _x; + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 50; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 50; };%2",_x,endl]; + }; + }; +}forEach _veh; + + +copyToClipboard _clipboard; +systemChat "Vest Pricelist Generated"; \ No newline at end of file diff --git a/testConfig.Altis/weaponsConfig.sqf b/testConfig.Altis/weaponsConfig.sqf new file mode 100644 index 0000000..770d48b --- /dev/null +++ b/testConfig.Altis/weaponsConfig.sqf @@ -0,0 +1,131 @@ +/* + Original script by KiloSwiss + https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ + Modified and enhanced by GhostriderDbD + 5/22/17 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_knownWeapons = []; + +_allWeaponRoots = ["Pistol","Rifle","Launcher"]; +_allWeaponTypes = ["AssaultRifle","MachineGun","SniperRifle","Shotgun","Rifle","Pistol","SubmachineGun","Handgun","MissileLauncher","RocketLauncher","Throw","GrenadeCore"]; +_addedBaseNames = []; +_allBannedWeapons = []; +_wpnAR = []; //Assault Rifles +_wpnARG = []; //Assault Rifles with GL +_wpnLMG = []; //Light Machine Guns +_wpnSMG = []; //Sub Machine Guns +_wpnDMR = []; //Designated Marksman Rifles +_wpnLauncher = []; +_wpnSniper = []; //Sniper rifles +_wpnHandGun = []; //HandGuns/Pistols +_wpnShotGun = []; //Shotguns +_wpnThrow = []; // throwables +_wpnUnknown = []; //Misc + + +_aBaseNames = []; +_wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; +_wpList sort true; +{ + _item = _x; + _isWeap = false; + _isKindOf = false; + { + _isKindOf = (_item isKindOF [_x, configFile >> "CfgWeapons"]); + if (_isKindOf) exitWith {}; + } forEach _allWeaponRoots; + if (_isKindOf) then + { + //if (getnumber (configFile >> "cfgWeapons" >> _x >> "scope") == 2) then { + _itemType = _x call bis_fnc_itemType; + _itemCategory = _itemType select 1; + diag_log format["pullWepClassNames:: _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory]; + if (((_itemType select 0) == "Weapon") && ((_itemType select 1) in _allWeaponTypes)) then { + _baseName = _x call BIS_fnc_baseWeapon; + diag_log format["pullWepClassNames:: Processing for _baseName %3 || _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory, _baseName]; + if (!(_baseName in _addedBaseNames) && !(_baseName in _allBannedWeapons)) then { + _addedBaseNames pushBack _baseName; + + switch(_itemCategory)do{ + case "AssaultRifle" :{ + if(count getArray(configfile >> "cfgWeapons" >> _baseName >> "muzzles") > 1)then[{_wpnARG pushBack _baseName},{_wpnAR pushBack _baseName}]; + }; + case "MachineGun" :{_wpnLMG pushBack _baseName}; + case "SubmachineGun" :{_wpnSMG pushBack _baseName}; + case "Rifle" :{_wpnDMR pushBack _baseName}; + case "SniperRifle" :{_wpnSniper pushBack _baseName}; + case "Shotgun" :{_wpnShotGun pushBack _baseName}; + case "Handgun" :{_wpnHandGun pushBack _baseName}; + case "MissileLauncher" :{_wpnLauncher pushBack _baseName}; + case "RocketLauncher" :{_wpnLauncher pushBack _baseName}; + case "DMR" : {_wpnDMR pushBack _baseName}; + case "Throw" : {_wpnThrow pushBack _baseName}; + default{_wpnUnknown pushBack _baseName}; + }; + }; + }; + //}; + }; +} foreach _wpList; + +_clipBoard = format["%2%3// // Assault Rifles %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl]; +}forEach _wpnAR; + +_clipBoard = _clipBoard + format["%2%3// Assault Rifles with GL %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnARG; + +_clipBoard = _clipBoard + format["%2%3// LMGs %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnLMG; + +_clipBoard = _clipBoard + format["%2%3// SMGs %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnSMG; + +_clipBoard = _clipBoard + format["%2%3// Snipers %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnSniper; + +_clipBoard = _clipBoard + format["%2%3// DMRs %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnDMR; + +_clipBoard = _clipBoard + format["%2%3// Launchers %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnLauncher; + +_clipBoard = _clipBoard + format["%2%3// Handguns %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnHandGun; + +_clipBoard = _clipBoard + format["%2%3// Shotguns %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnShotGun; + +_clipBoard = _clipBoard + format["%2%3// Throwables %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnThrow; + +_clipBoard = _clipBoard + format["%2%3// Unknown %1",endl,endl,endl]; +{ + _clipBoard = _clipBoard + format['"%1%",%2',_x,endl] +}forEach _wpnUnknown; + +copyToClipboard _clipBoard; diff --git a/testConfig.Altis/weaponsPriceList.sqf b/testConfig.Altis/weaponsPriceList.sqf new file mode 100644 index 0000000..3e06a03 --- /dev/null +++ b/testConfig.Altis/weaponsPriceList.sqf @@ -0,0 +1,209 @@ +/* + Original script by KiloSwiss + https://epochmod.com/forum/topic/32239-howto-get-available-weapons-mod-independent/ + Modified and enhanced by GhostriderDbD + 5/22/17 + + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ + +_knownWeapons = []; + +_allWeaponRoots = ["Pistol","Rifle","Launcher"]; +_allWeaponTypes = ["AssaultRifle","MachineGun","SniperRifle","Shotgun","Rifle","Pistol","SubmachineGun","Handgun","MissileLauncher","RocketLauncher","Throw","GrenadeCore"]; +_addedBaseNames = []; +_allBannedWeapons = []; +_wpnAR = []; //Assault Rifles +_wpnARG = []; //Assault Rifles with GL +_wpnLMG = []; //Light Machine Guns +_wpnSMG = []; //Sub Machine Guns +_wpnDMR = []; //Designated Marksman Rifles +_wpnLauncher = []; +_wpnSniper = []; //Sniper rifles +_wpnHandGun = []; //HandGuns/Pistols +_wpnShotGun = []; //Shotguns +_wpnThrow = []; // throwables +_wpnUnknown = []; //Misc + + +_aBaseNames = []; +_wpList = (configFile >> "cfgWeapons") call BIS_fnc_getCfgSubClasses; +_wpList sort true; +{ + _item = _x; + _isWeap = false; + _isKindOf = false; + { + _isKindOf = (_item isKindOF [_x, configFile >> "CfgWeapons"]); + if (_isKindOf) exitWith {}; + } forEach _allWeaponRoots; + if (_isKindOf) then + { + //if (getnumber (configFile >> "cfgWeapons" >> _x >> "scope") == 2) then { + _itemType = _x call bis_fnc_itemType; + _itemCategory = _itemType select 1; + diag_log format["pullWepClassNames:: _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory]; + if (((_itemType select 0) == "Weapon") && ((_itemType select 1) in _allWeaponTypes)) then { + _baseName = _x call BIS_fnc_baseWeapon; + diag_log format["pullWepClassNames:: Processing for _baseName %3 || _itemType = %1 || _itemCategory = %2",_itemType, _itemCategory, _baseName]; + if (!(_baseName in _addedBaseNames) && !(_baseName in _allBannedWeapons)) then { + _addedBaseNames pushBack _baseName; + + switch(_itemCategory)do{ + case "AssaultRifle" :{ + if(count getArray(configfile >> "cfgWeapons" >> _baseName >> "muzzles") > 1)then[{_wpnARG pushBack _baseName},{_wpnAR pushBack _baseName}]; + }; + case "MachineGun" :{_wpnLMG pushBack _baseName}; + case "SubmachineGun" :{_wpnSMG pushBack _baseName}; + case "Rifle" :{_wpnDMR pushBack _baseName}; + case "SniperRifle" :{_wpnSniper pushBack _baseName}; + case "Shotgun" :{_wpnShotGun pushBack _baseName}; + case "Handgun" :{_wpnHandGun pushBack _baseName}; + case "MissileLauncher" :{_wpnLauncher pushBack _baseName}; + case "RocketLauncher" :{_wpnLauncher pushBack _baseName}; + case "DMR" : {_wpnDMR pushBack _baseName}; + case "Throw" : {_wpnThrow pushBack _baseName}; + default{_wpnUnknown pushBack _baseName}; + }; + }; + }; + //}; + }; +} foreach _wpList; + +_clipBoard = format["%2%3// // Assault Rifles %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnAR; + +_clipBoard = _clipBoard + format["%2%3// Assault Rifles with GL %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnARG; + +_clipBoard = _clipBoard + format["%2%3// LMGs %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnLMG; + +_clipBoard = _clipBoard + format["%2%3// SMGs %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnSMG; + +_clipBoard = _clipBoard + format["%2%3// Snipers %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnSniper; + +_clipBoard = _clipBoard + format["%2%3// DMRs %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnDMR; + +_clipBoard = _clipBoard + format["%2%3// Launchers %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnLauncher; + +_clipBoard = _clipBoard + format["%2%3// Handguns %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnHandGun; + +_clipBoard = _clipBoard + format["%2%3// Shotguns %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnShotGun; + +_clipBoard = _clipBoard + format["%2%3// Throwables %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnThrow; + +_clipBoard = _clipBoard + format["%2%3// Unknown %1",endl,endl,endl]; +{ + if (DBD_priceConfiguration == "Exile") then + { + _clipboard = _clipboard + format["class %1 { quality = 3; price = 150; };%2",_x,endl]; + }; + if (DBD_priceConfiguration == "Epoch") then + { + _clipboard = _clipboard + format["class %1 { price = 150; };%2",_x,endl]; + }; +}forEach _wpnUnknown; + +copyToClipboard _clipBoard; +systemChat "Weapon Pricelist Generated"; \ No newline at end of file