Advertisement
Guest User

Arm

a guest
Jan 21st, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQF 13.55 KB | None | 0 0
  1. #include "..\..\script_macros.hpp"
  2. /*
  3.     File: fn_arm.sqf
  4.     Author: RPGforYOU
  5.     Website: www.outlawed-veterans.com
  6.     Version: 2.5
  7.     PATCHNOTES:
  8.     - Simplified the file structure and combined vehicles and player side checks for the easiness.
  9.     - Removed ifs and put them in switch structure
  10.     - Future update will put this in a freaking config file
  11.    
  12.     Description:
  13.     Add Ammo to specific armed vehicles, jets and helicopters fully customizable.
  14. */
  15. private["_vehicle","_vehiclename","_action","_price","_bad","_inzone"];
  16. _vehicle = (vehicle player);
  17. _classname = typeOf _vehicle;
  18. _vehicleInfo = [_classname] call life_fnc_fetchVehInfo;
  19. _displayname = (_vehicleInfo select 3);
  20. _price = 0;
  21. _bad = 0;
  22. _inzone = 0;
  23. _copzones = ["armybase","police_hq_5","police_hq_1","police_hq_4","police_hq_3","airforce_spawn","swat_spawn","ChekpointAlpha","police_hq_2","Boat_cop"];
  24. _civzones = ["campnorth","campsouth","Donator_Zone","BlackMarket","gang_area_2","gang_area_5","gang_area_1","gang_area_3"];
  25. // Check marker points
  26. if(playerside isEqualTo civilian) then {
  27. {
  28.         if (player distance (getMarkerPos _x) < 180) then {
  29.             _inzone = _inzone + 1;
  30.             //diag_log format["_inzone: %1",_inzone];
  31.         };
  32. } forEach _civzones;
  33.     } else {
  34.     {
  35.             if (player distance (getMarkerPos _x) < 180) then {
  36.                 _inzone = _inzone + 1;
  37.             };
  38.     } forEach _copzones;
  39. };
  40.  
  41. if(!alive player) exitWith {};
  42. if(playerSide in [independent,east]) exitWith { hint "You can only arm vehicles if you are a civilian or police officer"};
  43. if(_inzone isequalto 0) exitWith {hint format["You can't (re)arm your %1 as you aren't close enough to a re-arm point!",_displayname];};
  44.  
  45. //Configuration of price for armament per vehicle class
  46. switch (typeOf _vehicle) do
  47. {
  48.     case "I_Plane_Fighter_03_dynamicLoadout_F": {if(playerSide isEqualTo civilian) then {_price = 125000;} else {};};
  49.     case "B_Plane_CAS_01_dynamicLoadout_F":{if(playerSide isEqualTo civilian) then {_price = 225000;} else {_price = 150000;};};
  50.     case "O_Plane_CAS_02_dynamicLoadout_F":{if(playerSide isEqualTo civilian) then {_price = 175000;} else {_price = 150000;};};
  51.     case "I_Plane_Fighter_04_F":{if(playerSide isEqualTo civilian) then {_price = 150000;} else {_price = 90000;};};
  52.     case "O_Plane_Fighter_02_F":{if(playerSide isEqualTo civilian) then {_price = 250000;} else {};};
  53.     case "O_Plane_Fighter_02_Stealth_F":{if(playerSide isEqualTo civilian) then {_price = 250000;} else {_price = 80000;};};
  54.     case "B_T_VTOL_01_armed_F":{if(playerSide isEqualTo civilian) then {_price = 250000;} else {};};
  55.     case "B_Heli_Light_01_armed_F":{if(playerSide isEqualTo civilian) then {_price = 80000;} else {_price = 75000;};};
  56.     case "I_G_Offroad_01_armed_F":{if(playerSide isEqualTo civilian) then {_price = 25000;} else {};};
  57.     case "I_APC_tracked_03_cannon_F":{if(playerSide isEqualTo civilian) then {_price = 150000;} else {};};
  58.     case "O_MRAP_02_hmg_F":{if(playerSide isEqualTo civilian) then {_price = 75000;} else {};};
  59.     case "O_Heli_Light_02_F":{if(playerSide isEqualTo civilian) then {_price = 100000;} else {};};
  60.     case "O_APC_Wheeled_02_rcws_F":{if(playerSide isEqualTo civilian) then {_price = 100000;} else {_price = 70000;}; };
  61.     case "O_Heli_Attack_02_F":{if(playerSide isEqualTo civilian) then {_price = 100000;} else {};};
  62.     case "I_Heli_light_03_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 100000;};};
  63.     case "B_G_Offroad_01_armed_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 25000;};};
  64.     case "B_APC_Tracked_01_AA_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 75000;};};
  65.     case "I_MRAP_03_hmg_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 25000;};};
  66.     case "B_Boat_Armed_01_minigun_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 75000;};};
  67.     case "B_MRAP_01_hmg_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 25000;};};
  68.     case "O_T_LSV_02_armed_black_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 25000;};};
  69.     case "B_APC_Wheeled_01_cannon_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 100000;};};
  70.     case "B_Plane_Fighter_01_F":{if(playerSide isEqualTo civilian) then {_price = 90000;} else {_price = 90000;};};
  71.     case "B_Plane_Fighter_01_Stealth_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 90000;};};
  72.     case "B_Heli_Transport_01_camo_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 35000;};};
  73.     case "B_CTRG_Heli_Transport_01_sand":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_price = 35000;};};
  74.     default {_bad = 1;};
  75. };
  76.  
  77. if(_bad isequalto 1) exitwith {hint "There is no armament available for your vehicle! Report this issue to an admin!"};
  78. if(BANK < _price) exitWith {hint format[localize "STR_House_NotEnough"];};
  79.  
  80. _action = [
  81.             format["Arming your vehicle will cost you $%2 taken from your bank account!
  82.             <br/><t color='#ff0000'>Would you like to rearm your : %1!</t>",_displayname,[_price] call life_fnc_numberText],
  83.             "Armament Service - Outlawed Veterans",
  84.             "Yes, ARM it!",
  85.             "No."
  86.         ] call BIS_fnc_guiMessage;
  87. if(_action) then {
  88. _vehicle setVehicleAmmoDef 1;
  89. _vehicle setVehicleAmmo 0;
  90. _vehicle setFuel 1;
  91.  
  92. switch (typeOf _vehicle) do
  93. {
  94.     case "I_Plane_Fighter_03_dynamicLoadout_F": {if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["300Rnd_20mm_shells",[-1],300];_vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1],120];_vehicle addMagazineTurret ["2Rnd_GBU12_LGB_MI10",[-1],2];} else {_bad = 1;};};
  95.     case "B_Plane_CAS_01_dynamicLoadout_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["1000Rnd_Gatling_30mm_Plane_CAS_01_F",[-1],500];_vehicle addMagazineTurret ["7Rnd_Rocket_04_HE_F",[-1],7];_vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1],120];_vehicle addMagazineTurret ["4Rnd_Bomb_04_F",[-1],4];} else {_bad = 1;};};
  96.     case "O_Plane_CAS_02_dynamicLoadout_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1],500];_vehicle addMagazineTurret ["20Rnd_Rocket_03_HE_F",[-1],8];_vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1],120];_vehicle addMagazineTurret ["2Rnd_Bomb_03_F",[-1],2];} else {_bad = 1;};};
  97.     case "I_Plane_Fighter_04_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["magazine_Fighter04_Gun20mm_AA_x250",[-1],250];_vehicle addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1],240];_vehicle addMagazineTurret ["PylonRack_Missile_AGM_02_x1",[-1],1];} else {_bad = 1;};};
  98.     case "O_Plane_Fighter_02_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["magazine_Fighter02_Gun30mm_AA_x180",[-1],180];_vehicle addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1],240];_vehicle addMagazineTurret ["PylonMissile_Bomb_KAB250_x1",[-1],1];_vehicle addMagazineTurret ["PylonMissile_Bomb_KAB250_x1",[-1],1];_vehicle addMagazineTurret ["PylonMissile_Bomb_KAB250_x1",[-1],1];} else {_bad = 1;};};
  99.     case "O_Plane_Fighter_02_Stealth_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["magazine_Fighter02_Gun30mm_AA_x180",[-1],180];_vehicle addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1],240];_vehicle addMagazineTurret ["PylonMissile_Bomb_KAB250_x1",[-1],1];_vehicle addMagazineTurret ["PylonMissile_Bomb_KAB250_x1",[-1],1];_vehicle addMagazineTurret ["PylonMissile_Bomb_KAB250_x1",[-1],1];} else {_bad = 1;};};
  100.     case "B_T_VTOL_01_armed_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["100Rnd_105mm_HEAT_MP",[1],25];_vehicle addMagazineTurret ["4000Rnd_20mm_Tracer_Red_shells",[1],1000];_vehicle addMagazineTurret ["240Rnd_40mm_GPR_Tracer_Red_shells",[2],100];_vehicle addMagazineTurret ["160Rnd_40mm_APFSDS_Tracer_Red_shells",[2],80];_vehicle addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1],240];} else {_bad = 1;};};
  101.     case "B_Heli_Light_01_armed_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["5000Rnd_762x51_Belt",[-1],2500];_vehicle addMagazineTurret ["24Rnd_missiles",[-1],8];} else {_vehicle addMagazineTurret ["5000Rnd_762x51_Belt",[-1],1250];_vehicle addMagazineTurret ["24Rnd_missiles",[-1],6];};};
  102.     case "I_G_Offroad_01_armed_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["100Rnd_127x99_mag_Tracer_Yellow",[0]];_vehicle addMagazineTurret ["100Rnd_127x99_mag_Tracer_Yellow",[0]];_vehicle addMagazineTurret ["100Rnd_127x99_mag_Tracer_Yellow",[0]];_vehicle addMagazineTurret ["100Rnd_127x99_mag_Tracer_Yellow",[0]];} else {_bad = 1;};};
  103.     case "I_APC_tracked_03_cannon_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["140Rnd_30mm_MP_shells_Tracer_Yellow",[0],45];_vehicle addMagazineTurret ["60Rnd_30mm_APFSDS_shells_Tracer_Yellow",[0],20];_vehicle addMagazineTurret ["1000Rnd_762x51_Belt_Yellow",[0],650];_vehicle addMagazineTurret ["SmokeLauncherMag",[0]];} else {_bad = 1;};};
  104.     case "O_MRAP_02_hmg_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["200Rnd_127x99_mag_Tracer_Green",[0]];_vehicle addMagazineTurret ["200Rnd_127x99_mag_Tracer_Green",[0]];} else {_bad = 1;};};
  105.     case "O_Heli_Light_02_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["2000Rnd_65x39_Belt_Tracer_Green_Splash",[-1],1000];_vehicle addMagazineTurret ["12Rnd_PG_missiles",[-1],6];_vehicle addMagazineTurret ["168Rnd_CMFlare_Chaff_Magazine",[-1],90];} else {_bad = 1;};};
  106.     case "O_APC_Wheeled_02_rcws_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["500Rnd_127x99_mag_Tracer_Green",[0],250];_vehicle addMagazineTurret ["96Rnd_40mm_G_belt",[0],10];_vehicle addMagazineTurret ["SmokeLauncherMag",[0]];} else {_vehicle addMagazineTurret ["500Rnd_127x99_mag_Tracer_Green",[0],400];_vehicle addMagazineTurret ["96Rnd_40mm_G_belt",[0],16];_vehicle addMagazineTurret ["SmokeLauncherMag",[0],1];}; };
  107.     case "O_Heli_Attack_02_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["192Rnd_CMFlare_Chaff_Magazine",[0],90];_vehicle addMagazineTurret ["250Rnd_30mm_HE_shells",[0],110];_vehicle addMagazineTurret ["PylonRack_4Rnd_LG_scalpel",[-1],4];} else {_bad = 1;};};
  108.     case "I_Heli_light_03_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["5000Rnd_762x51_Yellow_Belt",[-1],3000];_vehicle addMagazineTurret ["24Rnd_missiles",[-1],8];_vehicle addMagazineTurret ["168Rnd_CMFlare_Chaff_Magazine",[-1],90];};};
  109.     case "B_G_Offroad_01_armed_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["100Rnd_127x99_mag_Tracer_Yellow",[0]];_vehicle addMagazineTurret ["100Rnd_127x99_mag_Tracer_Yellow",[0]];_vehicle addMagazineTurret ["100Rnd_127x99_mag_Tracer_Yellow",[0]];_vehicle addMagazineTurret ["100Rnd_127x99_mag_Tracer_Yellow",[0]];};};
  110.     case "B_APC_Tracked_01_AA_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["680Rnd_35mm_AA_shells_Tracer_Red",[0],300];_vehicle addMagazineTurret ["4Rnd_Titan_long_missiles",[0],6];_vehicle addMagazineTurret ["SmokeLauncherMag",[0]];};};
  111.     case "I_MRAP_03_hmg_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["200Rnd_127x99_mag_Tracer_Yellow",[0],200];_vehicle addMagazineTurret ["SmokeLauncherMag",[0]];};};
  112.     case "B_Boat_Armed_01_minigun_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["2000Rnd_65x39_belt_Tracer_Red",[1],1500];_vehicle addMagazineTurret ["200Rnd_40mm_G_belt",[0],15];_vehicle addMagazineTurret ["SmokeLauncherMag_boat",[-1],5];};};
  113.     case "B_MRAP_01_hmg_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["200Rnd_127x99_mag_Tracer_Red",[0],300];};};
  114.     case "O_T_LSV_02_armed_black_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["500Rnd_65x39_Belt_Tracer_Green_Splash",[0],500];};};
  115.     case "B_APC_Wheeled_01_cannon_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["60Rnd_40mm_GPR_Tracer_Red_shells",[0],10];_vehicle addMagazineTurret ["40Rnd_40mm_APFSDS_Tracer_Red_shells",[0],20];_vehicle addMagazineTurret ["2000Rnd_65x39_belt",[0],1000];};};
  116.     case "B_Plane_Fighter_01_F":{if(playerSide isEqualTo civilian) then {_vehicle addMagazineTurret ["magazine_Fighter01_Gun20mm_AA_x450",[-1],450];_vehicle addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1],240];} else {_vehicle addMagazineTurret ["magazine_Fighter01_Gun20mm_AA_x450",[-1],450];_vehicle addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1],240];};};
  117.     case "B_Plane_Fighter_01_Stealth_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["magazine_Fighter01_Gun20mm_AA_x450",[-1],450];_vehicle addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1],240];};};
  118.     case "B_Heli_Transport_01_camo_F":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["2000Rnd_65x39_Belt_Tracer_Red",[1],500];_vehicle addMagazineTurret ["2000Rnd_65x39_Belt_Tracer_Red",[2],500];_vehicle addMagazineTurret ["168Rnd_CMFlare_Chaff_Magazine",[-1],90];};};
  119.     case "B_CTRG_Heli_Transport_01_sand":{if(playerSide isEqualTo civilian) then {_bad = 1;} else {_vehicle addMagazineTurret ["2000Rnd_65x39_Belt_Tracer_Red",[1],500];_vehicle addMagazineTurret ["2000Rnd_65x39_Belt_Tracer_Red",[2],500];_vehicle addMagazineTurret ["168Rnd_CMFlare_Chaff_Magazine",[-1],90];};};
  120.     default {_bad = 1;};
  121. };
  122.  
  123. if(_bad isequalto 1) exitwith {hint "There is no armament available for your vehicle! Report this issue to an admin!"};
  124.  
  125. BANK = BANK - _price;
  126. [1] call SOCK_fnc_updatePartial;
  127. reload _vehicle;
  128. hint format["Your %1 has been armed for: \n\n %2",_displayname,[_price] call life_fnc_numberText];
  129. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement