Guest User

Untitled

a guest
Sep 30th, 2014
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.60 KB | None | 0 0
  1. //config based loadouts by Matt L
  2. private ["_type","_muzzles","_add","_pack","_modVariant","_speedPacks","_pistolBlacklist","_primaryBlacklist","_safePos","_bp","_playerMag","_playerTool","_playerBPMag","_playerBPWep","_magazines","_tools","_bpMags","_bpWeps","_magazines2","_tools2","_bpMags2","_bpWeps2","_magazines3","_tools3","_bpMags3","_bpWeps3","_magsToAdd","_toolsToAdd","_bpMagToAdd","_bpWepsToAdd","_magNum"];
  3. cutText ["","BLACK OUT"];
  4. removeAllWeapons player;removeAllItems player;removeBackpack player;
  5.  
  6. //////////Config//////////
  7.  
  8. _speedPacks = true; //default: true, set to false to slow the script but 100% randomize it using configs.
  9. _playerMag = true; //default: false, set to true to add defined items from _magazines arrays below to player
  10. _playerTool = true; //default: false, set to true to add defined items from _tools arrays below to player
  11. _playerBPMag = false; //default: false, set to true to add defined items from _bpMags arrays below to player
  12. _playerBPWep = false; //default: false, set to true to add defined items from _bpWep arrays below to player
  13. _safePos = [5034.52,15036.8,0.0017395]; // position player is moved to during looping of configs so they don't get fooked. ATL format. (This is for Chernarus)
  14. _pistolBlacklist = ["MeleeFlashlight","MeleeWeapon","HandGunBase","WeaponExplosive","MeleeFlashlightRed"]; // things that will be skipped in the pistol check
  15. _primaryBlacklist = ["CZ805_A1_ACR","MeleeWeapon","HandGunBase","BAF_L17_40mm","MeleeMachete","MeleeHatchet_DZE","MeleeCrowbar","MeleeBaseBallBat","MeleeFishingPole","MeleeSledge",// things that will be skipped in the primary check
  16. "AKS_BASE","PipeBomb","MineE","Default","GrenadeCore","AK_BASE","AK_107_BASE","MGunCore",// things that will be skipped in the primary check
  17. "MGun","MeleeFlashlightRed","Pistol","Launcher","LauncherCore","GrenadeLauncher","TimeBomb","ItemCore","PistolCore","CannonCore",// things that will be skipped in the primary check
  18. "RifleCore","MeleeFlashlight","MeleeWeapon","HandGunBase","Mine","L85A2_base_BAF","m107","BAF_AS50_scoped_Large","ksvk","BAF_LRR_scoped","BAF_LRR_scoped_W","M107_DZ","m107_DZ","USSR_cheytacM200","USSR_cheytacM200_sd","FHQ_RSASS_TWS_TAN","FHQ_RSASS_TWS_SD_TAN","FHQ_MSR_TWS_DESERT","FHQ_MSR_TWS_SD_DESERT","FHQ_XM2010_TWS_DESERT","FHQ_XM2010_TWS_SD_DESERT","FHQ_ACR_WDL_TWS_F","FHQ_ACR_WDL_TWS_SD","FHQ_ACR_WDL_TWS_SD_F","FHQ_ACR_BLK_TWS","FHQ_ACR_BLK_TWS_F","FHQ_ACR_BLK_TWS_SD","FHQ_ACR_BLK_TWS_SD_F","FHQ_ACR_TAN_TWS_F","FHQ_ACR_TAN_TWS_SD","FHQ_ACR_TAN_TWS_SD_F","FHQ_ACR_SNW_TWS","FHQ_ACR_SNW_TWS_F","FHQ_ACR_SNW_TWS_SD","FHQ_ACR_SNW_TWS_SD_F","FHQ_ACR_WDL_CCO_F","FHQ_ACR_WDL_CCO_SD","FHQ_ACR_WDL_CCO_SD_F","FHQ_ACR_WDL_RCO_F","FHQ_ACR_WDL_RCO_SD","FHQ_ACR_WDL_RCO_SD_F","FHQ_ACR_WDL_HWS","FHQ_ACR_WDL_HWS_F","FHQ_ACR_WDL_HWS_SD","FHQ_ACR_WDL_HWS_SD_F","FHQ_ACR_WDL_G33","FHQ_ACR_WDL_G33_F","FHQ_ACR_WDL_G33_SD","FHQ_ACR_WDL_G33_SD_F","FHQ_ACR_WDL_HAMR","FHQ_ACR_WDL_HAMR_F","FHQ_ACR_WDL_HAMR_SD","FHQ_ACR_BLK_CCO_SD","FHQ_ACR_WDL_HAMR_SD_F","FHQ_ACR_BLK_IRN_F","FHQ_ACR_BLK_IRN_SD","FHQ_ACR_BLK_IRN_SD_F","FHQ_ACR_BLK_CCO","FHQ_ACR_BLK_CCO_F","FHQ_ACR_BLK_CCO_SD_F","FHQ_ACR_BLK_RCO","FHQ_ACR_BLK_RCO_SD","FHQ_ACR_BLK_RCO_SD_F","FHQ_ACR_BLK_HWS","FHQ_ACR_BLK_HWS_F","FHQ_ACR_BLK_HWS_SD","FHQ_ACR_BLK_HWS_SD_F","FHQ_ACR_BLK_G33","FHQ_ACR_BLK_G33_F","FHQ_ACR_BLK_G33_SD","FHQ_ACR_BLK_G33_SD_F","FHQ_ACR_BLK_HAMR","FHQ_ACR_BLK_HAMR_F","FHQ_ACR_BLK_HAMR_SD","FHQ_ACR_BLK_HAMR_SD_F","FHQ_ACR_TAN_IRN","FHQ_ACR_TAN_IRN_F","FHQ_ACR_TAN_IRN_SD","FHQ_ACR_TAN_IRN_SD_F","FHQ_ACR_TAN_CCO","FHQ_ACR_TAN_CCO_F","FHQ_ACR_TAN_CCO_SD","FHQ_ACR_TAN_CCO_SD_F","FHQ_ACR_TAN_RCO","FHQ_ACR_TAN_RCO_F","FHQ_ACR_TAN_RCO_SD","FHQ_ACR_TAN_RCO_SD_F","FHQ_ACR_TAN_HWS","FHQ_ACR_TAN_HWS_F","FHQ_ACR_TAN_HWS_SD","FHQ_ACR_TAN_HWS_SD_F","FHQ_ACR_TAN_G33","FHQ_ACR_TAN_G33_F","FHQ_ACR_TAN_G33_SD","FHQ_ACR_TAN_G33_SD_F","FHQ_ACR_TAN_HAMR","FHQ_ACR_TAN_HAMR_F","FHQ_ACR_TAN_HAMR_SD","FHQ_ACR_TAN_HAMR_SD_F","FHQ_ACR_SNW_IRN","FHQ_ACR_SNW_IRN_F","FHQ_ACR_SNW_IRN_SD","FHQ_ACR_SNW_CCO_F","FHQ_ACR_SNW_CCO_SD","FHQ_ACR_SNW_CCO_SD_F","FHQ_ACR_SNW_RCO","FHQ_ACR_SNW_RCO_F","FHQ_ACR_SNW_RCO_SD","FHQ_ACR_SNW_RCO_SD_F","FHQ_ACR_SNW_HWS","FHQ_ACR_SNW_HWS_F","FHQ_ACR_SNW_HWS_SD","FHQ_ACR_SNW_HWS_SD_F","FHQ_ACR_SNW_G33","FHQ_ACR_SNW_G33_F","FHQ_ACR_SNW_G33_SD","FHQ_ACR_SNW_G33_SD_F","FHQ_ACR_SNW_HAMR","FHQ_ACR_SNW_HAMR_F","FHQ_ACR_SNW_HAMR_SD","FHQ_ACR_SNW_HAMR_SD_F","SVD_NSPU_EP1","FN_FAL_ANPVS4","AKS_74_GOSHAWK","m107_TWS_EP1","m107_TWS_EP1_DZ","vil_NATO_AK"]; // things that will be skipped in the primary check
  19.  
  20. /////////Config///////////
  21. _food = ["FoodbaconCooked","FishCookedTuna","FoodRabbitCooked"];
  22.  
  23. _drink = ["ItemSodaLvg","ItemSodaRabbit","ItemSodaGrapeDrink"];
  24.  
  25. _tools = ["ItemToolbox","Binocular","ItemMachete","ItemCompass","ItemGPS","ItemKnife","ItemMatchbox"];
  26. _tools2 = ["ItemToolbox","Binocular_Vector","ItemCompass","ItemMap","ItemHatchet","ItemKnife","ItemMatchbox"];
  27.  
  28. _bpMags = [""];
  29. _bpMags2 = [""];
  30. _bpMags3 = [""];
  31.  
  32. _bpWeps = [""];
  33. _bpWeps2 = [""];
  34. _bpWeps3 = [""];
  35.  
  36. _bandages = ["ItemMorphine","ItemAntibiotic","ItemPainkiller","ItemAntibacterialWipe","ItemBandage","ItemBandage","ItemBandage"];
  37.  
  38. _toolsToAdd = [_tools,_tools2];
  39. _bpMagToAdd = [_bpMags,_bpMags2,_bpMags3];
  40. _bpWepsToAdd = [_bpWeps,_bpWeps2,_bpWeps3];
  41.  
  42. KRON_StrToArray = {
  43. private["_in","_i","_arr","_out"];
  44. _in=_this select 0;
  45. _arr = toArray(_in);
  46. _out=[];
  47. for "_i" from 0 to (count _arr)-1 do {
  48. _out=_out+[toString([_arr select _i])];
  49. };
  50. _out
  51. };
  52.  
  53. KRON_StrLen = {
  54. private["_in","_arr","_len"];
  55. _in=_this select 0;
  56. _arr=[_in] call KRON_StrToArray;
  57. _len=count (_arr);
  58. _len
  59. };
  60.  
  61.  
  62. KRON_StrIndex = {
  63. private["_hay","_ndl","_lh","_ln","_arr","_tmp","_i","_j","_out"];
  64. _hay=_this select 0;
  65. _ndl=_this select 1;
  66. _out=-1;
  67. _i=0;
  68. if (_hay == _ndl) exitWith {0};
  69. _lh=[_hay] call KRON_StrLen;
  70. _ln=[_ndl] call KRON_StrLen;
  71. if (_lh < _ln) exitWith {-1};
  72. _arr=[_hay] call KRON_StrToArray;
  73. for "_i" from 0 to (_lh-_ln) do {
  74. _tmp="";
  75. for "_j" from _i to (_i+_ln-1) do {
  76. _tmp=_tmp + (_arr select _j);
  77. };
  78. if (_tmp==_ndl) exitWith {_out=_i};
  79. };
  80. _out
  81. };
  82.  
  83.  
  84. KRON_StrInStr = {
  85. private["_out"];
  86. _in=_this select 0;
  87. _out=if (([_this select 0,_this select 1] call KRON_StrIndex)==-1) then {false} else {true};
  88. _out
  89. };
  90.  
  91. private ["_varrr","_pos","_backpack","_cfg","_eventOn","_possibleMags","_mag","_wpn_type","_weapon","_ranvar","_2eventOn","_possibleMags2","_mag2","_wpn_type2","_weapon2","_3eventOn","_veh_type","_vehicle","_CfgWeapons","_cfgvehicles","_ranvar2","_ranvar3","_isPistol","_isPack","_cfgLoot","_cfgLootSubSection","_cfgLootSubSectionArray","_isBackPackinLootTables"];
  92. _pos = getPosATL player;
  93.  
  94. UIsleep 1;
  95.  
  96. systemChat "Loadout commencing, please allow up to 1 minute before flipping shit.";
  97.  
  98. //player setPosATL _safePos;
  99.  
  100. {player addMagazine _x;} forEach _bandages;
  101.  
  102. player addMagazine (_food select (floor(random(count _food)-1)));
  103.  
  104. player addMagazine (_drink select (floor(random(count _drink)-1)));
  105.  
  106.  
  107. if (_playerTool) then {
  108. {player addWeapon _x;} forEach (_toolsToAdd select (floor(random(count _toolsToAdd)-1)));
  109. };
  110.  
  111. _CfgWeapons = configFile >> "CfgWeapons";
  112. _cfgvehicles = configFile >> "cfgVehicles";
  113. _eventOn = true;
  114. _2eventOn = true;
  115. _3eventOn = true;
  116. while {_eventOn}do{
  117. //diag_log "_eventOn loop started";
  118. _ranvar = (floor (random (count _CfgWeapons) -1));
  119. _weapon = _CfgWeapons select _ranvar;
  120. if (isClass _weapon) then {
  121. _wpn_type = configName _weapon;
  122. _cfg = configFile >> "CfgWeapons" >> _wpn_type >> "type";
  123. _muzzles = getArray(configFile >> "cfgWeapons" >> _wpn_type >> "muzzles");
  124. _isBase = [_wpn_type,"_base"] call KRON_StrInStr;
  125. _isBase2 = [_wpn_type,"_BASE"] call KRON_StrInStr;
  126. _isBase3 = [_wpn_type,"_Base"] call KRON_StrInStr;
  127. _isTank = [_wpn_type,"_AI"] call KRON_StrInStr;
  128. _isCRV = [_wpn_type,"CRV"] call KRON_StrInStr;
  129.  
  130. if (!(_wpn_type in _primaryBlacklist) && (_wpn_type != "MissileLaunche.scope") && !(getNumber _cfg == 5) && !(_isCRV) && !(_isBase) && !(_isBase2) && !(_isBase3) && !(_isTank) && !(count _muzzles > 1)) then {
  131. player addWeapon _wpn_type;
  132. if ((primaryWeapon player) == _wpn_type) then {
  133. diag_log(format["%1 passed primary check",_wpn_type]);
  134. _eventOn = false;
  135. _possibleMags = getArray (configfile >> "cfgWeapons" >> _wpn_type >> "magazines");
  136. _mag = _possibleMags select 0;
  137.  
  138. for "_i" from 0 to 2 do {
  139. player addMagazine _mag;
  140. };
  141. } else {
  142. player removeWeapon _wpn_type;
  143. };
  144. };
  145. };
  146. };
  147.  
  148. while {_2eventOn}do{
  149. //diag_log "_eventOn loop started";
  150. _ranvar2 = (floor (random (count _CfgWeapons) -1));
  151. _weapon2 = _CfgWeapons select _ranvar2;
  152. diag_log(format["_weapon = %1",_weapon2]);
  153. if (isClass _weapon2) then {
  154. _wpn_type2 = configName _weapon2;
  155. diag_log(format["_wpn_type2: %1",_wpn_type2]);
  156.  
  157. if (!(_wpn_type2 in _pistolBlacklist)) then {
  158. _isPistol = inheritsFrom (configFile >> "CfgWeapons" >> _wpn_type2);
  159. diag_log(format["inheritsFrom: %1",_isPistol]);
  160.  
  161. if (str(_isPistol) == "bin\config.bin/CfgWeapons/Pistol") then {
  162. player addWeapon _wpn_type2;
  163. diag_log "weapon is a pistol";
  164. _2eventOn = false;
  165. _possibleMags2 = getArray (configfile >> "cfgWeapons" >> _wpn_type2 >> "magazines");
  166. _mag2 = _possibleMags2 select 0;
  167. for "_i" from 0 to 2 do {
  168. player addMagazine _mag2;
  169. };
  170. };
  171. };
  172. };
  173. };
  174.  
  175. _modVariant = toLower( getText (configFile >> "CfgMods" >> "DayZ" >> "dir"));
  176.  
  177. if (_speedPacks) then {
  178.  
  179. if (_modVariant == "dayz") then {
  180. _pack = ["CZ_VestPouch_EP1","DZ_Patrol_Pack_EP1","DZ_Assault_Pack_EP1","DZ_CivilBackpack_EP1","DZ_ALICE_Pack_EP1","DZ_Backpack_EP1"];
  181. _add = _pack select (floor (random (count _pack)-1));
  182. player addBackPack _add;
  183. };
  184.  
  185. if (_modVariant == "@dayz_epoch") then {
  186. _pack = ["DZ_ALICE_Pack_EP1","DZ_Assault_Pack_EP1","DZ_Backpack_EP1","DZ_British_ACU","DZ_CivilBackpack_EP1","DZ_CompactPack_EP1","DZ_Czech_Vest_Puch","DZ_GunBag_EP1","DZ_LargeGunBag_EP1","DZ_TerminalPack_EP1","DZ_TK_Assault_Pack_EP1"];
  187. _add = _pack select (floor (random (count _pack)-1));
  188. player addBackPack _add;
  189. };
  190.  
  191. if (_modVariant == "dayzoverwatch") then {
  192. _pack = ["DZ_Patrol_Pack_EP1","DZ_Assault_Pack_EP1","DZ_Czech_Vest_Puch","DZ_ALICE_Pack_EP1","DZ_TK_Assault_Pack_EP1","DZ_British_ACU","DZ_CivilBackpack_EP1","DZ_Backpack_EP1","UKSF_wdl_Bergan","UKSF_wdl_Bergan2"];
  193. _add = _pack select (floor (random (count _pack)-1));
  194. player addBackPack _add;
  195. };
  196.  
  197. _backpack = unitBackpack player;
  198. clearWeaponCargo _backpack;
  199. clearMagazineCargo _backpack;
  200. } else {
  201.  
  202. while {_3eventOn}do{
  203. //diag_log "_eventOn loop started";
  204. _ranvar3 = (floor (random (count _cfgVehicles) -1));
  205. _vehicle = _cfgvehicles select _ranvar3;
  206. if (isClass _vehicle) then {
  207. diag_log(format["_vehicle: %1",_vehicle]);
  208. _veh_type = configName _vehicle;
  209. _isPack = inheritsFrom (configFile >> "CfgVehicles" >> _veh_type);
  210. diag_log(format["vehicle inheritsFrom: %1",_isPack]);
  211. if (!(_veh_type iskindof "Weapon_Bag_Base_EP1") && !(_veh_type iskindof "Tripod_Bag") && getNumber (_vehicle >> "scope") == 2 && {str(_isPack) == "bin\config.bin/CfgVehicles/Bag_Base_EP1"}) then {
  212.  
  213. diag_log(format["_veh_type: %1",_veh_type]);
  214. _isBackPack = [_veh_type,"DZ"] call KRON_StrInStr;
  215. if (_isBackPack) then {
  216. _3eventOn = false;
  217. player addBackpack _veh_type;
  218.  
  219. _backpack = unitBackpack player;
  220. clearWeaponCargo _backpack;
  221. clearMagazineCargo _backpack;
  222. };
  223. };
  224. };
  225. };
  226. };
  227.  
  228. player addWeapon "ItemToolbox";
  229.  
  230.  
  231. _type = primaryWeapon player;
  232. // check for multiple muzzles (eg: GL)
  233. _muzzles = getArray(configFile >> "cfgWeapons" >> _type >> "muzzles");
  234.  
  235. if (count _muzzles > 1) then {
  236. player selectWeapon (_muzzles select 0);
  237. } else {
  238. player selectWeapon _type;
  239. };
  240.  
  241. reload player;
  242.  
  243. _bp = unitBackpack player;
  244. if (_playerBPMag) then {
  245. {_bp addMagazine _x;} forEach (_bpMagToAdd select (floor(random(count _bpMagToAdd)-1)));
  246. };
  247.  
  248. if (_playerBPWep) then {
  249. {_bp addWeapon _x;} forEach (_bpWepsToAdd select (floor(random(count _bpWepsToAdd)-1)));
  250. };
  251.  
  252. _varrr = random 100;
  253. if (_varrr > 50) then {
  254. player addMagazine "HandGrenade_West";
  255. };
  256.  
  257. systemChat "Loadout recieved, please wait.";
  258.  
  259. Uisleep 1;
  260.  
  261. MC_BIS_halo_spawn = compile preprocessFileLineNumbers "fixes\haloInit.sqf";
  262. player spawn MC_BIS_halo_spawn;
  263. _nul = [] execVM "custom\altimeter.sqf";
  264.  
  265. Uisleep 2;
  266.  
  267. cutText ["","BLACK IN"];
Advertisement
Add Comment
Please, Sign In to add comment