Advertisement
Guest User

helicrash.sqf

a guest
May 25th, 2015
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.50 KB | None | 0 0
  1. private ["_crashNum","_lootNum","_loot","_coords"];
  2. /////////////////////////////////////
  3. // Function file for UKGZ //
  4. // Created by: Richie //
  5. // Modded by: Vampire & xBowBii //
  6. /////////////////////////////////////
  7. // Number of Crashes
  8. _crashNum = 15;
  9.  
  10. // Number of Loot Piles
  11. _lootNum = 2;
  12.  
  13. _loot = [
  14. "m107_EPOCH","MultiGun","LMG_mas_M60_F", "LMG_mas_M60_F_h", "LMG_mas_M60_F_a","MMG_01_hex_ACRO_LP_F","MMG_01_hex_F","MMG_01_tan_F","MMG_02_camo_F","MMG_02_sand_F","MMG_02_sand_RCO_LP_F","Repair_EPOCH","arifle_mas_g36c", "arifle_mas_g36c_h", "arifle_mas_g36c_a", "arifle_mas_g36c_e", "arifle_mas_g36c_sd","arifle_mas_mk16", "arifle_mas_mk16_h", "arifle_mas_mk16_e", "arifle_mas_mk16_sd", "arifle_mas_mk16_gl", "arifle_mas_mk16_gl_h", "arifle_mas_mk16_gl_e", "arifle_mas_mk16_gl_sd", "arifle_mas_mk16_l", "arifle_mas_mk16_l_h", "arifle_mas_mk16_l_e", "arifle_mas_mk16_l_sd", "arifle_mas_mk16_l_gl", "arifle_mas_mk16_l_gl_h", "arifle_mas_mk16_l_gl_e", "arifle_mas_mk16_l_gl_sd","arifle_mas_mk17", "arifle_mas_mk17_h", "arifle_mas_mk17_e", "arifle_mas_mk17_sd", "arifle_mas_mk17_gl", "arifle_mas_mk17_gl_h", "arifle_mas_mk17_gl_e", "arifle_mas_mk17_gl_sd","srifle_mas_m107", "srifle_mas_m107_h", "srifle_mas_m107_sd", "srifle_mas_m107_v", "srifle_mas_m107_v_h", "srifle_mas_m107_v_sd", "srifle_mas_m107_d", "srifle_mas_m107_d_h", "srifle_mas_m107_d_sd","hgun_mas_mp7p_F", "hgun_mas_mp7p_F_e", "hgun_mas_mp7p_F_sd","mas_launch_Strela_F","mas_launch_Stinger_F","mas_launch_Strela_F","mas_launch_Stinger_F","mas_launch_Strela_F","mas_launch_Stinger_F"
  15. ];
  16.  
  17. _spawnCenter = [9528,6535,0]; //Center of your map (usually in mission.sqm)
  18. _min = 0; // minimum distance from the center position (Number) in meters
  19. _max = 7100; // maximum distance from the center position (Number) in meters
  20. _mindist = 10; // minimum distance from the nearest object (Number) in meters, ie. spawn at least this distance away from anything within x meters..
  21. //Low _mindist means helicrashes could spawn near towns or in forests.. higher the number it would be spawning in an open field etc
  22. _water = 0; // water mode 0: cannot be in water , 1: can either be in water or not , 2: must be in water
  23. _shoremode = 0; // 0: does not have to be at a shore , 1: must be at a shore
  24.  
  25. vSpawnCrashes = {
  26. for "_j" from 1 to _crashNum do {
  27. _posOfCrash = [_spawnCenter,_min,_max,_mindist,_water,20,_shoremode] call BIS_fnc_findSafePos; // find a random loc
  28. //_helicopters = ["Land_UWreck_Heli_Attack_02_F","Land_Wreck_Heli_Attack_01_F"]; //Add Heli classnames here
  29. _helicopters = ["Land_Wreck_Truck_F","Land_Wreck_Ural_F","Land_UWreck_Heli_Attack_02_F","Land_Wreck_Heli_Attack_01_F"]; //Add ground spawns classnames here
  30. //Infantry spawns using the A3EAI
  31. _CrashName = format ["Crashsite_%1",_j];
  32. [_CrashName,_posOfCrash,75,3,2,false,300] call A3EAI_createCustomInfantryQueue;
  33. diag_log text format ["[HeliCrash]: Creating AI at %1 (%2)",_CrashName,_posOfCrash];
  34. _element = _helicopters call BIS_fnc_SelectRandom;
  35. _vehHeli = _element createVehicle [0,0,0];
  36. _burnthefucker = "test_EmptyObjectForFireBig" createVehicle (position _vehHeli); _burnthefucker attachto [_vehHeli, [0,0,-1]];
  37. _vehHeli setposATL [(_posOfCrash) select 0,(_posOfCrash) select 1,0];
  38. _vehHeli setVariable ["LAST_CHECK", (diag_tickTime + 14400)];
  39.  
  40. for "_i" from 1 to _lootNum do {
  41. _crate0 = createVehicle ["weaponHolderSimulated", _vehHeli modelToWorld [(random 10) - 3, (random 10) - 4, 0], [], 0, "CAN_COLLIDE"];
  42. _crate1 = createVehicle ["weaponHolderSimulated", _vehHeli modelToWorld [(random 10) - 3, (random 10) - 4, 0], [], 0, "CAN_COLLIDE"];
  43.  
  44. _item = _loot call BIS_fnc_selectRandom;
  45. switch (true) do
  46. {
  47. case (isClass (configFile >> "CfgWeapons" >> _item)): {
  48. _kindOf = [(configFile >> "CfgWeapons" >> _item),true] call BIS_fnc_returnParents;
  49. if ("ItemCore" in _kindOf) then {
  50. // Min 1, Max 2
  51. _crate0 addItemCargoGlobal [_item,(floor(random(2)))+1];
  52. _crate1 addItemCargoGlobal [_item,(floor(random(2)))+1];
  53. } else {
  54. // One Weapon, Three Mags
  55. _crate0 addWeaponCargoGlobal [_item,1];
  56. _crate1 addWeaponCargoGlobal [_item,1];
  57.  
  58. _cAmmo = [] + getArray (configFile >> "cfgWeapons" >> _item >> "magazines");
  59. {
  60. if (isClass(configFile >> "CfgPricing" >> _x)) exitWith {
  61. _crate0 addMagazineCargoGlobal [_x,3];
  62. _crate1 addMagazineCargoGlobal [_x,3];
  63. };
  64. } forEach _cAmmo;
  65. };
  66. };
  67. case (isClass (configFile >> "cfgMagazines" >> _item)): {
  68. // Min 1, Max 3
  69. _crate0 addMagazineCargoGlobal [_item,(floor(random(3)))+1];
  70. _crate1 addMagazineCargoGlobal [_item,(floor(random(3)))+1];
  71. };
  72. case ((getText(configFile >> "cfgVehicles" >> _item >> "vehicleClass")) == "Backpacks"): {
  73. // One Bag
  74. _crate0 addBackpackCargoGlobal [_item,1];
  75. _crate1 addBackpackCargoGlobal [_item,1];
  76. };
  77. };
  78. _crate0 setPos [(getPos _crate0 select 0) +5, (getPos _crate0 select 1), 0];
  79. _crate1 setPos [(getPos _crate1 select 0) -10, (getPos _crate1 select 1), 0];
  80. _crate0 setVariable ["LAST_CHECK", (diag_tickTime + 14400)];
  81. _crate1 setVariable ["LAST_CHECK", (diag_tickTime + 14400)];
  82. _cutter0 = "Land_ClutterCutter_medium_F" createVehicle (getpos _crate0);
  83. _cutter1 = "Land_ClutterCutter_medium_F" createVehicle (getpos _crate1);
  84. _cutter0 setVariable ["LAST_CHECK", (diag_tickTime + 14400)];
  85. _cutter1 setVariable ["LAST_CHECK", (diag_tickTime + 14400)];
  86.  
  87.  
  88. };
  89. };
  90. };
  91.  
  92. call vSpawnCrashes;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement