Advertisement
Guest User

Untitled

a guest
May 19th, 2013
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.54 KB | None | 0 0
  1. private["_itemType","_iPos","_indexLootSpawn","_iArray","_iItem","_iClass","_item","_qty","_max","_tQty","_arrayLootSpawn","_canType","_holderItem"];
  2. // [_itemType,_weights]
  3. _iItem = _this select 0;
  4. _iClass = _this select 1;
  5. _iPos = _this select 2;
  6. _radius = _this select 3;
  7. _holderItem = _iItem;
  8.  
  9. switch (_iItem) do {
  10. // Weapon replacements
  11. case "M107_DZ": { _holderItem = "G36_C_SD_camo" };
  12. case "DMR": { _holderItem = "AK_107_pso" };
  13. case "SVD_Camo": { _holderItem = "bizon_silenced" };
  14. case "M24": { _holderItem = "FN_FAL" };
  15. case "Huntingrifle": { _holderItem = "LeeEnfield" };
  16. case "Remington870_lamp": { if (random 1 < 0.5) then { _holderItem = "Saiga12K" } else { _holderItem = "M1014" }};
  17. case "Winchester1866": { if (random 1 < 0.2) then { _holderItem = "Saiga12K" } else { _holderItem = "Winchester1866" }};
  18. case "MR43": { if (random 1 < 0.2) then { _holderItem = "M1014" } else { _holderItem = "MR43" }};
  19. case "Makarov": { if (random 1 < 0.2) then { _holderItem = "MakarovSD" } else { _holderItem = "Makarov" }};
  20. case "M9": { if (random 1 < 0.2) then { _holderItem = "M9SD" } else { _holderItem = "M9" }};
  21. case "UZI_EP1": { if (random 1 < 0.2) then { _holderItem = "UZI_SD_EP1" } else { _holderItem = "UZI_EP1" }};
  22. case "AK_74": { if (random 1 < 0.2) then { _holderItem = "AKS_74_UN_kobra" } else { _holderItem = "AK_74" }};
  23. case "AK_47_M": { if (random 1 < 0.2) then { _holderItem = "AK_107_kobra" } else { _holderItem = "AK_47_M" }};
  24. case "AKS_74_Kobra": { if (random 1 < 0.2) then { _holderItem = "RPK_74" } else { _holderItem = "AKS_74_Kobra" }};
  25. case "M16A2GL": { if (random 1 < 0.2) then { _holderItem = "AK_107_GL_kobra" } else { _holderItem = "M16A2GL" }};
  26.  
  27. // Ammo replacements
  28. case "10Rnd_127x99_m107": { _holderItem = "30Rnd_556x45_G36SD" };
  29. case "20Rnd_762x51_DMR": { _holderItem = "30Rnd_545x39_AK" };
  30. case "10Rnd_762x54_SVD": { _holderItem = "64Rnd_9x19_SD_Bizon" };
  31. case "5Rnd_762x51_M24": { _holderItem = "20Rnd_762x51_FNFAL" };
  32. case "5x_22_LR_17_HMR": { _holderItem = "10x_303" };
  33. case "8Rnd_9x18_Makarov": { if (random 1 < 0.1) then { _holderItem = "15Rnd_9x19_M9SD" } else { _holderItem = "8Rnd_9x18_Makarov" }};
  34. case "30Rnd_9x19_UZI": { if (random 1 < 0.1) then { _holderItem = "30Rnd_9x19_UZI_SD" } else { _holderItem = "30Rnd_9x19_UZI" }};
  35. case "30Rnd_545x39_AK": { if (random 1 < 0.1) then { _holderItem = "30Rnd_545x39_AKSD" } else { _holderItem = "30Rnd_545x39_AK" }};
  36. case "30Rnd_556x45_StanagSD": { if (random 1 < 0.1) then { _holderItem = "30Rnd_556x45_G36SD" } else { _holderItem = "30Rnd_556x45_StanagSD" }};
  37. case "30Rnd_556x45_Stanag": { if (random 1 < 0.1) then { _holderItem = "30Rnd_556x45_G36" } else { _holderItem = "30Rnd_556x45_Stanag" }};
  38. case "1Rnd_HE_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  39. case "8Rnd_B_Beneli_74Slug": { if (random 1 < 0.1) then { _holderItem = "8Rnd_B_Saiga12_74Slug" } else { _holderItem = "8Rnd_B_Beneli_74Slug" }};
  40. case "8Rnd_B_Beneli_Pellets": { if (random 1 < 0.1) then { _holderItem = "8Rnd_B_Saiga12_Pellets" } else { _holderItem = "8Rnd_B_Beneli_Pellets" }};
  41.  
  42. // Lower chance food & drink
  43. case "ItemWaterbottle": { _holderItem = "ItemWaterbottleUnfilled" };
  44. case "ItemSodaCoke": { if (random 1 < 0.8) then { _holderItem = "ItemSodaEmpty" } else { _holderItem = "ItemSodaCoke" }};
  45. case "ItemSodaPepsi": { if (random 1 < 0.8) then { _holderItem = "ItemSodaEmpty" } else { _holderItem = "ItemSodaPepsi" }};
  46. case "FoodCanBakedBeans": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanBakedBeans" }};
  47. case "FoodCanSardines": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanSardines" }};
  48. case "FoodCanFrankBeans": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanFrankBeans" }};
  49. case "FoodCanPasta": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanPasta" }};
  50.  
  51. // Other item replacements
  52. case "WeaponHolder_PartGeneric": { _holderItem = "WeaponHolder_PartWheel" };
  53. case "NVGoggles": { _holderItem = "Binocular_Vector" };
  54. case "HandChemGreen": { _holderItem = "8Rnd_9x18_Makarov" };
  55. case "HandChemRed": { _holderItem = "15Rnd_9x19_M9" };
  56. case "HandChemBlue": { _holderItem = "17Rnd_9x19_glock17" };
  57. case "HandRoadFlare": { _holderItem = "BoltSteel" };
  58. case "ItemFlashlightRed": { _holderItem = "MP5SD" };
  59. case "ItemFlashlight": { _holderItem = "Crossbow" };
  60. case "ItemHeatPack": { _holderItem = "6Rnd_45ACP" };
  61. case "FlareWhite_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  62. case "FlareGreen_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  63. case "FlareRed_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  64. case "FlareYellow_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  65.  
  66. default {};
  67. };
  68. _iItem = _holderItem;
  69.  
  70. switch (_iClass) do {
  71. default {
  72. //Item is food, add random quantity of cans along with an item (if exists)
  73. _item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
  74. _arrayLootSpawn = [] + getArray (configFile >> "cfgLoot" >> _iClass);
  75. _itemType = _arrayLootSpawn select 0;
  76. _weights = _arrayLootSpawn call fnc_buildWeightedArray;
  77. _qty = 0;
  78. _max = ceil(random 4) + 1;
  79. //diag_log ("LOOTSPAWN: QTY: " + str(_max) + " ARRAY: " + str(_arrayLootSpawn));
  80. while {_qty < _max} do {
  81. private["_tQty","_indexLootSpawn","_canType"];
  82. _tQty = floor(random 1) + 1;
  83. //diag_log ("LOOTSPAWN: ITEM QTY: " + str(_tQty));
  84.  
  85. _indexLootSpawn = _weights call BIS_fnc_selectRandom;
  86. _canType = _itemType select _indexLootSpawn;
  87.  
  88. _holderItem = _canType;
  89. switch (_canType) do {
  90. // Weapon replacements
  91. case "M107_DZ": { _holderItem = "G36_C_SD_camo" };
  92. case "DMR": { _holderItem = "AK_107_pso" };
  93. case "SVD_Camo": { _holderItem = "bizon_silenced" };
  94. case "M24": { _holderItem = "FN_FAL" };
  95. case "Huntingrifle": { _holderItem = "LeeEnfield" };
  96. case "Remington870_lamp": { if (random 1 < 0.5) then { _holderItem = "Saiga12K" } else { _holderItem = "M1014" }};
  97. case "Winchester1866": { if (random 1 < 0.2) then { _holderItem = "Saiga12K" } else { _holderItem = "Winchester1866" }};
  98. case "MR43": { if (random 1 < 0.2) then { _holderItem = "M1014" } else { _holderItem = "MR43" }};
  99. case "Makarov": { if (random 1 < 0.2) then { _holderItem = "MakarovSD" } else { _holderItem = "Makarov" }};
  100. case "M9": { if (random 1 < 0.2) then { _holderItem = "M9SD" } else { _holderItem = "M9" }};
  101. case "UZI_EP1": { if (random 1 < 0.2) then { _holderItem = "UZI_SD_EP1" } else { _holderItem = "UZI_EP1" }};
  102. case "AK_74": { if (random 1 < 0.2) then { _holderItem = "AKS_74_UN_kobra" } else { _holderItem = "AK_74" }};
  103. case "AK_47_M": { if (random 1 < 0.2) then { _holderItem = "AK_107_kobra" } else { _holderItem = "AK_47_M" }};
  104. case "AKS_74_Kobra": { if (random 1 < 0.2) then { _holderItem = "RPK_74" } else { _holderItem = "AKS_74_Kobra" }};
  105. case "M16A2GL": { if (random 1 < 0.2) then { _holderItem = "AK_107_GL_kobra" } else { _holderItem = "M16A2GL" }};
  106.  
  107. // Ammo replacements
  108. case "10Rnd_127x99_m107": { _holderItem = "30Rnd_556x45_G36SD" };
  109. case "20Rnd_762x51_DMR": { _holderItem = "30Rnd_545x39_AK" };
  110. case "10Rnd_762x54_SVD": { _holderItem = "64Rnd_9x19_SD_Bizon" };
  111. case "5Rnd_762x51_M24": { _holderItem = "20Rnd_762x51_FNFAL" };
  112. case "5x_22_LR_17_HMR": { _holderItem = "10x_303" };
  113. case "8Rnd_9x18_Makarov": { if (random 1 < 0.1) then { _holderItem = "15Rnd_9x19_M9SD" } else { _holderItem = "8Rnd_9x18_Makarov" }};
  114. case "30Rnd_9x19_UZI": { if (random 1 < 0.1) then { _holderItem = "30Rnd_9x19_UZI_SD" } else { _holderItem = "30Rnd_9x19_UZI" }};
  115. case "30Rnd_545x39_AK": { if (random 1 < 0.1) then { _holderItem = "30Rnd_545x39_AKSD" } else { _holderItem = "30Rnd_545x39_AK" }};
  116. case "30Rnd_556x45_StanagSD": { if (random 1 < 0.1) then { _holderItem = "30Rnd_556x45_G36SD" } else { _holderItem = "30Rnd_556x45_StanagSD" }};
  117. case "30Rnd_556x45_Stanag": { if (random 1 < 0.1) then { _holderItem = "30Rnd_556x45_G36" } else { _holderItem = "30Rnd_556x45_Stanag" }};
  118. case "1Rnd_HE_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  119. case "8Rnd_B_Beneli_74Slug": { if (random 1 < 0.1) then { _holderItem = "8Rnd_B_Saiga12_74Slug" } else { _holderItem = "8Rnd_B_Beneli_74Slug" }};
  120. case "8Rnd_B_Beneli_Pellets": { if (random 1 < 0.1) then { _holderItem = "8Rnd_B_Saiga12_Pellets" } else { _holderItem = "8Rnd_B_Beneli_Pellets" }};
  121.  
  122. // Lower chance food & drink
  123. case "ItemWaterbottle": { _holderItem = "ItemWaterbottleUnfilled" };
  124. case "ItemSodaCoke": { if (random 1 < 0.8) then { _holderItem = "ItemSodaEmpty" } else { _holderItem = "ItemSodaCoke" }};
  125. case "ItemSodaPepsi": { if (random 1 < 0.8) then { _holderItem = "ItemSodaEmpty" } else { _holderItem = "ItemSodaPepsi" }};
  126. case "FoodCanBakedBeans": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanBakedBeans" }};
  127. case "FoodCanSardines": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanSardines" }};
  128. case "FoodCanFrankBeans": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanFrankBeans" }};
  129. case "FoodCanPasta": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanPasta" }};
  130.  
  131. // Other item replacements
  132. case "WeaponHolder_PartGeneric": { _holderItem = "WeaponHolder_PartWheel" };
  133. case "NVGoggles": { _holderItem = "Binocular_Vector" };
  134. case "HandChemGreen": { _holderItem = "8Rnd_9x18_Makarov" };
  135. case "HandChemRed": { _holderItem = "15Rnd_9x19_M9" };
  136. case "HandChemBlue": { _holderItem = "17Rnd_9x19_glock17" };
  137. case "HandRoadFlare": { _holderItem = "BoltSteel" };
  138. case "ItemFlashlightRed": { _holderItem = "MP5SD" };
  139. case "ItemFlashlight": { _holderItem = "Crossbow" };
  140. case "ItemHeatPack": { _holderItem = "6Rnd_45ACP" };
  141. case "FlareWhite_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  142. case "FlareGreen_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  143. case "FlareRed_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  144. case "FlareYellow_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
  145.  
  146. default {};
  147. };
  148. _canType = _holderItem;
  149.  
  150. //diag_log ("LOOTSPAWN: ITEM: " + str(_canType));
  151. _item addMagazineCargoGlobal [_canType,_tQty];
  152. _qty = _qty + _tQty;
  153. };
  154. if (_iItem != "") then {
  155. _item addWeaponCargoGlobal [_iItem,1];
  156. };
  157. };
  158. case "weapon": {
  159. //Item is a weapon, add it and a random quantity of magazines
  160. _item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
  161. _item addWeaponCargoGlobal [_iItem,1];
  162. _mags = [] + getArray (configFile >> "cfgWeapons" >> _iItem >> "magazines");
  163. if (count _mags > 0) then {
  164. _item addMagazineCargoGlobal [(_mags select 0),(round(random 1)+1)];
  165. };
  166. };
  167. case "magazine": {
  168. //Item is one magazine
  169. _item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
  170. _item addMagazineCargoGlobal [_iItem,1];
  171. };
  172. case "object": {
  173. //Item is one magazine
  174. _item = createVehicle [_iItem, _iPos, [], _radius, "CAN_COLLIDE"];
  175. };
  176. };
  177. if (count _iPos > 2) then {
  178. _item setPosATL _ipos;
  179. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement