Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private["_itemType","_iPos","_indexLootSpawn","_iArray","_iItem","_iClass","_item","_qty","_max","_tQty","_arrayLootSpawn","_canType","_holderItem"];
- // [_itemType,_weights]
- _iItem = _this select 0;
- _iClass = _this select 1;
- _iPos = _this select 2;
- _radius = _this select 3;
- _holderItem = _iItem;
- switch (_iItem) do {
- // Weapon replacements
- case "M107_DZ": { _holderItem = "G36_C_SD_camo" };
- case "DMR": { _holderItem = "AK_107_pso" };
- case "SVD_Camo": { _holderItem = "bizon_silenced" };
- case "M24": { _holderItem = "FN_FAL" };
- case "Huntingrifle": { _holderItem = "LeeEnfield" };
- case "Remington870_lamp": { if (random 1 < 0.5) then { _holderItem = "Saiga12K" } else { _holderItem = "M1014" }};
- case "Winchester1866": { if (random 1 < 0.2) then { _holderItem = "Saiga12K" } else { _holderItem = "Winchester1866" }};
- case "MR43": { if (random 1 < 0.2) then { _holderItem = "M1014" } else { _holderItem = "MR43" }};
- case "Makarov": { if (random 1 < 0.2) then { _holderItem = "MakarovSD" } else { _holderItem = "Makarov" }};
- case "M9": { if (random 1 < 0.2) then { _holderItem = "M9SD" } else { _holderItem = "M9" }};
- case "UZI_EP1": { if (random 1 < 0.2) then { _holderItem = "UZI_SD_EP1" } else { _holderItem = "UZI_EP1" }};
- case "AK_74": { if (random 1 < 0.2) then { _holderItem = "AKS_74_UN_kobra" } else { _holderItem = "AK_74" }};
- case "AK_47_M": { if (random 1 < 0.2) then { _holderItem = "AK_107_kobra" } else { _holderItem = "AK_47_M" }};
- case "AKS_74_Kobra": { if (random 1 < 0.2) then { _holderItem = "RPK_74" } else { _holderItem = "AKS_74_Kobra" }};
- case "M16A2GL": { if (random 1 < 0.2) then { _holderItem = "AK_107_GL_kobra" } else { _holderItem = "M16A2GL" }};
- // Ammo replacements
- case "10Rnd_127x99_m107": { _holderItem = "30Rnd_556x45_G36SD" };
- case "20Rnd_762x51_DMR": { _holderItem = "30Rnd_545x39_AK" };
- case "10Rnd_762x54_SVD": { _holderItem = "64Rnd_9x19_SD_Bizon" };
- case "5Rnd_762x51_M24": { _holderItem = "20Rnd_762x51_FNFAL" };
- case "5x_22_LR_17_HMR": { _holderItem = "10x_303" };
- case "8Rnd_9x18_Makarov": { if (random 1 < 0.1) then { _holderItem = "15Rnd_9x19_M9SD" } else { _holderItem = "8Rnd_9x18_Makarov" }};
- case "30Rnd_9x19_UZI": { if (random 1 < 0.1) then { _holderItem = "30Rnd_9x19_UZI_SD" } else { _holderItem = "30Rnd_9x19_UZI" }};
- case "30Rnd_545x39_AK": { if (random 1 < 0.1) then { _holderItem = "30Rnd_545x39_AKSD" } else { _holderItem = "30Rnd_545x39_AK" }};
- case "30Rnd_556x45_StanagSD": { if (random 1 < 0.1) then { _holderItem = "30Rnd_556x45_G36SD" } else { _holderItem = "30Rnd_556x45_StanagSD" }};
- case "30Rnd_556x45_Stanag": { if (random 1 < 0.1) then { _holderItem = "30Rnd_556x45_G36" } else { _holderItem = "30Rnd_556x45_Stanag" }};
- case "1Rnd_HE_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- case "8Rnd_B_Beneli_74Slug": { if (random 1 < 0.1) then { _holderItem = "8Rnd_B_Saiga12_74Slug" } else { _holderItem = "8Rnd_B_Beneli_74Slug" }};
- case "8Rnd_B_Beneli_Pellets": { if (random 1 < 0.1) then { _holderItem = "8Rnd_B_Saiga12_Pellets" } else { _holderItem = "8Rnd_B_Beneli_Pellets" }};
- // Lower chance food & drink
- case "ItemWaterbottle": { _holderItem = "ItemWaterbottleUnfilled" };
- case "ItemSodaCoke": { if (random 1 < 0.8) then { _holderItem = "ItemSodaEmpty" } else { _holderItem = "ItemSodaCoke" }};
- case "ItemSodaPepsi": { if (random 1 < 0.8) then { _holderItem = "ItemSodaEmpty" } else { _holderItem = "ItemSodaPepsi" }};
- case "FoodCanBakedBeans": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanBakedBeans" }};
- case "FoodCanSardines": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanSardines" }};
- case "FoodCanFrankBeans": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanFrankBeans" }};
- case "FoodCanPasta": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanPasta" }};
- // Other item replacements
- case "WeaponHolder_PartGeneric": { _holderItem = "WeaponHolder_PartWheel" };
- case "NVGoggles": { _holderItem = "Binocular_Vector" };
- case "HandChemGreen": { _holderItem = "8Rnd_9x18_Makarov" };
- case "HandChemRed": { _holderItem = "15Rnd_9x19_M9" };
- case "HandChemBlue": { _holderItem = "17Rnd_9x19_glock17" };
- case "HandRoadFlare": { _holderItem = "BoltSteel" };
- case "ItemFlashlightRed": { _holderItem = "MP5SD" };
- case "ItemFlashlight": { _holderItem = "Crossbow" };
- case "ItemHeatPack": { _holderItem = "6Rnd_45ACP" };
- case "FlareWhite_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- case "FlareGreen_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- case "FlareRed_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- case "FlareYellow_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- default {};
- };
- _iItem = _holderItem;
- switch (_iClass) do {
- default {
- //Item is food, add random quantity of cans along with an item (if exists)
- _item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
- _arrayLootSpawn = [] + getArray (configFile >> "cfgLoot" >> _iClass);
- _itemType = _arrayLootSpawn select 0;
- _weights = _arrayLootSpawn call fnc_buildWeightedArray;
- _qty = 0;
- _max = ceil(random 4) + 1;
- //diag_log ("LOOTSPAWN: QTY: " + str(_max) + " ARRAY: " + str(_arrayLootSpawn));
- while {_qty < _max} do {
- private["_tQty","_indexLootSpawn","_canType"];
- _tQty = floor(random 1) + 1;
- //diag_log ("LOOTSPAWN: ITEM QTY: " + str(_tQty));
- _indexLootSpawn = _weights call BIS_fnc_selectRandom;
- _canType = _itemType select _indexLootSpawn;
- _holderItem = _canType;
- switch (_canType) do {
- // Weapon replacements
- case "M107_DZ": { _holderItem = "G36_C_SD_camo" };
- case "DMR": { _holderItem = "AK_107_pso" };
- case "SVD_Camo": { _holderItem = "bizon_silenced" };
- case "M24": { _holderItem = "FN_FAL" };
- case "Huntingrifle": { _holderItem = "LeeEnfield" };
- case "Remington870_lamp": { if (random 1 < 0.5) then { _holderItem = "Saiga12K" } else { _holderItem = "M1014" }};
- case "Winchester1866": { if (random 1 < 0.2) then { _holderItem = "Saiga12K" } else { _holderItem = "Winchester1866" }};
- case "MR43": { if (random 1 < 0.2) then { _holderItem = "M1014" } else { _holderItem = "MR43" }};
- case "Makarov": { if (random 1 < 0.2) then { _holderItem = "MakarovSD" } else { _holderItem = "Makarov" }};
- case "M9": { if (random 1 < 0.2) then { _holderItem = "M9SD" } else { _holderItem = "M9" }};
- case "UZI_EP1": { if (random 1 < 0.2) then { _holderItem = "UZI_SD_EP1" } else { _holderItem = "UZI_EP1" }};
- case "AK_74": { if (random 1 < 0.2) then { _holderItem = "AKS_74_UN_kobra" } else { _holderItem = "AK_74" }};
- case "AK_47_M": { if (random 1 < 0.2) then { _holderItem = "AK_107_kobra" } else { _holderItem = "AK_47_M" }};
- case "AKS_74_Kobra": { if (random 1 < 0.2) then { _holderItem = "RPK_74" } else { _holderItem = "AKS_74_Kobra" }};
- case "M16A2GL": { if (random 1 < 0.2) then { _holderItem = "AK_107_GL_kobra" } else { _holderItem = "M16A2GL" }};
- // Ammo replacements
- case "10Rnd_127x99_m107": { _holderItem = "30Rnd_556x45_G36SD" };
- case "20Rnd_762x51_DMR": { _holderItem = "30Rnd_545x39_AK" };
- case "10Rnd_762x54_SVD": { _holderItem = "64Rnd_9x19_SD_Bizon" };
- case "5Rnd_762x51_M24": { _holderItem = "20Rnd_762x51_FNFAL" };
- case "5x_22_LR_17_HMR": { _holderItem = "10x_303" };
- case "8Rnd_9x18_Makarov": { if (random 1 < 0.1) then { _holderItem = "15Rnd_9x19_M9SD" } else { _holderItem = "8Rnd_9x18_Makarov" }};
- case "30Rnd_9x19_UZI": { if (random 1 < 0.1) then { _holderItem = "30Rnd_9x19_UZI_SD" } else { _holderItem = "30Rnd_9x19_UZI" }};
- case "30Rnd_545x39_AK": { if (random 1 < 0.1) then { _holderItem = "30Rnd_545x39_AKSD" } else { _holderItem = "30Rnd_545x39_AK" }};
- case "30Rnd_556x45_StanagSD": { if (random 1 < 0.1) then { _holderItem = "30Rnd_556x45_G36SD" } else { _holderItem = "30Rnd_556x45_StanagSD" }};
- case "30Rnd_556x45_Stanag": { if (random 1 < 0.1) then { _holderItem = "30Rnd_556x45_G36" } else { _holderItem = "30Rnd_556x45_Stanag" }};
- case "1Rnd_HE_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- case "8Rnd_B_Beneli_74Slug": { if (random 1 < 0.1) then { _holderItem = "8Rnd_B_Saiga12_74Slug" } else { _holderItem = "8Rnd_B_Beneli_74Slug" }};
- case "8Rnd_B_Beneli_Pellets": { if (random 1 < 0.1) then { _holderItem = "8Rnd_B_Saiga12_Pellets" } else { _holderItem = "8Rnd_B_Beneli_Pellets" }};
- // Lower chance food & drink
- case "ItemWaterbottle": { _holderItem = "ItemWaterbottleUnfilled" };
- case "ItemSodaCoke": { if (random 1 < 0.8) then { _holderItem = "ItemSodaEmpty" } else { _holderItem = "ItemSodaCoke" }};
- case "ItemSodaPepsi": { if (random 1 < 0.8) then { _holderItem = "ItemSodaEmpty" } else { _holderItem = "ItemSodaPepsi" }};
- case "FoodCanBakedBeans": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanBakedBeans" }};
- case "FoodCanSardines": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanSardines" }};
- case "FoodCanFrankBeans": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanFrankBeans" }};
- case "FoodCanPasta": { if (random 1 < 0.8) then { _holderItem = "TrashTinCan" } else { _holderItem = "FoodCanPasta" }};
- // Other item replacements
- case "WeaponHolder_PartGeneric": { _holderItem = "WeaponHolder_PartWheel" };
- case "NVGoggles": { _holderItem = "Binocular_Vector" };
- case "HandChemGreen": { _holderItem = "8Rnd_9x18_Makarov" };
- case "HandChemRed": { _holderItem = "15Rnd_9x19_M9" };
- case "HandChemBlue": { _holderItem = "17Rnd_9x19_glock17" };
- case "HandRoadFlare": { _holderItem = "BoltSteel" };
- case "ItemFlashlightRed": { _holderItem = "MP5SD" };
- case "ItemFlashlight": { _holderItem = "Crossbow" };
- case "ItemHeatPack": { _holderItem = "6Rnd_45ACP" };
- case "FlareWhite_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- case "FlareGreen_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- case "FlareRed_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- case "FlareYellow_M203": { if (random 1 < 0.1) then { _holderItem = "1Rnd_HE_GP25" } else { _holderItem = "1Rnd_HE_M203" }};
- default {};
- };
- _canType = _holderItem;
- //diag_log ("LOOTSPAWN: ITEM: " + str(_canType));
- _item addMagazineCargoGlobal [_canType,_tQty];
- _qty = _qty + _tQty;
- };
- if (_iItem != "") then {
- _item addWeaponCargoGlobal [_iItem,1];
- };
- };
- case "weapon": {
- //Item is a weapon, add it and a random quantity of magazines
- _item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
- _item addWeaponCargoGlobal [_iItem,1];
- _mags = [] + getArray (configFile >> "cfgWeapons" >> _iItem >> "magazines");
- if (count _mags > 0) then {
- _item addMagazineCargoGlobal [(_mags select 0),(round(random 1)+1)];
- };
- };
- case "magazine": {
- //Item is one magazine
- _item = createVehicle ["WeaponHolder", _iPos, [], _radius, "CAN_COLLIDE"];
- _item addMagazineCargoGlobal [_iItem,1];
- };
- case "object": {
- //Item is one magazine
- _item = createVehicle [_iItem, _iPos, [], _radius, "CAN_COLLIDE"];
- };
- };
- if (count _iPos > 2) then {
- _item setPosATL _ipos;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement