diff --git a/EMP_DEMO_MISSION.Stratis/AL_emp/config_obj.sqf b/EMP_DEMO_MISSION.Stratis/AL_emp/config_obj.sqf index 0ce3989..b59e30a 100644 --- a/EMP_DEMO_MISSION.Stratis/AL_emp/config_obj.sqf +++ b/EMP_DEMO_MISSION.Stratis/AL_emp/config_obj.sqf @@ -7,11 +7,20 @@ _obj_emp = _this select 0; _rang_emp = _this select 1; _poz_g = position _obj_emp; -list_man_emp = _poz_g nearEntities [["Civilian","SoldierGB","SoldierEB","SoldierWB"],_rang_emp]; +list_man_emp = _poz_g nearEntities [["Civilian","SoldierGB","SoldierEB","SoldierWB"],_rang_emp]; //Returns all the units in the range, except the ones in vic list_car_emp = _poz_g nearEntities [["Car", "Motorcycle", "Tank","Air","Ship"],_rang_emp]; static_turrets_emp = _poz_g nearEntities [["B_static_AA_F", "B_static_AT_F","B_T_Static_AA_F","B_T_Static_AT_F","B_T_GMG_01_F","B_T_HMG_01_F","B_T_Mortar_01_F","B_HMG_01_high_F","B_HMG_01_A_F","B_GMG_01_F","B_GMG_01_high_F","B_GMG_01_A_F","B_Mortar_01_F","B_G_Mortar_01_F","B_Static_Designator_01_F","B_AAA_System_01_F","B_SAM_System_01_F","B_SAM_System_02_F","O_HMG_01_F","O_HMG_01_high_F","O_HMG_01_A_F","O_GMG_01_F","O_GMG_01_high_F","O_GMG_01_A_F","O_Mortar_01_F","O_G_Mortar_01_F","O_static_AA_F","O_static_AT_F","O_Static_Designator_02_F","I_HMG_01_F","I_HMG_01_high_F","I_HMG_01_A_F","I_GMG_01_F","I_GMG_01_high_F","I_GMG_01_A_F","I_Mortar_01_F","I_G_Mortar_01_F","I_static_AA_F","I_static_AT_F"],_rang_emp]; list_light_emp = nearestObjects [_poz_g,["Land_fs_roof_F","Land_fs_sign_F","Land_TTowerBig_2_F","Land_TTowerBig_1_F","Lamps_base_F","PowerLines_base_F","PowerLines_Small_base_F","Land_LampStreet_small_F"],_rang_emp]; +//Adds the crew members to the list of units +{ + _crew = crew _x; + if (not(count _crew == 0)) then + { + list_man_emp append _crew; + } +}forEach list_car_emp; + //List of items to be removed if equipped special_helmet_emp = ["H_PilotHelmetFighter_B", "H_PilotHelmetFighter_O","H_HelmetO_ViperSP_ghex_F","H_PilotHelmetFighter_I","H_HelmetO_ViperSP_hex_F"]; special_launchers_emp = []; diff --git a/EMP_DEMO_MISSION.Stratis/AL_emp/emp_effect.sqf b/EMP_DEMO_MISSION.Stratis/AL_emp/emp_effect.sqf index b66b961..bbc30c8 100644 --- a/EMP_DEMO_MISSION.Stratis/AL_emp/emp_effect.sqf +++ b/EMP_DEMO_MISSION.Stratis/AL_emp/emp_effect.sqf @@ -38,6 +38,7 @@ _delay_check = 0.01; //{_x disableTIEquipment true; _x disableNVGEquipment true; [[_x],"AL_emp\sparky.sqf"] remoteExec ["execVM"];sleep _delay_check} forEach static_turrets_emp; ["geiger"] remoteExec ["playsound"]; { + //Will be changed into an easier to read block of code, making use of an array etc. [[_x],"AL_emp\tgt_sfx.sqf"] remoteExec ["execVM"]; _x unassignItem "Toolkit"; _x removeItem "ToolKit"; @@ -49,33 +50,8 @@ _delay_check = 0.01; _x removeItem "ItemGPS"; _x unassignItem "ItemRadio"; _x removeItem "ItemRadio"; - _x unassignItem "NVGoggles"; - _x removeItem "NVGoggles"; - _x unassignItem "NVGoggles_OPFOR"; - _x removeItem "NVGoggles_OPFOR"; - _x unassignItem "NVGoggles_INDEP"; - _x removeItem "NVGoggles_INDEP"; - _x unassignItem "O_NVGoggles_hex_F"; - _x removeItem "O_NVGoggles_hex_F"; - _x unassignItem "O_NVGoggles_urb_F"; - _x removeItem "O_NVGoggles_urb_F"; - _x unassignItem "O_NVGoggles_ghex_F"; - _x removeItem "O_NVGoggles_ghex_F"; - _x unassignItem "NVGoggles_tna_F"; - _x removeItem "NVGoggles_tna_F"; - _x unassignItem "NVGogglesB_blk_F"; - _x removeItem "NVGogglesB_blk_F"; - _x unassignItem "NVGogglesB_grn_F"; - _x removeItem "NVGogglesB_grn_F"; - _x unassignItem "NVGogglesB_gry_F"; - _x removeItem "NVGogglesB_gry_F"; - _x unassignItem "Integrated_NVG_F"; - _x removeItem "Integrated_NVG_F"; - _x unassignItem "Integrated_NVG_TI_0_F"; - _x removeItem "Integrated_NVG_TI_0_F"; - _x unassignItem "Integrated_NVG_TI_1_F"; - _x removeItem "Integrated_NVG_TI_1_F"; _x removePrimaryWeaponItem "acc_pointer_IR"; + _removeNVG = [_x] call kast_fnc_RemoveNVGs; if (headgear _x in special_helmet_emp) then { removeHeadgear _x @@ -84,6 +60,8 @@ _delay_check = 0.01; { _x removeWeaponGlobal (secondaryWeapon _x) }; + + //Will be changed to do less damage the further you are away according to the laws of physics... if (emp_dam>0) then { _x setDamage ((Damage _x) + emp_dam) diff --git a/EMP_DEMO_MISSION.Stratis/AL_emp/emp_starter.sqf b/EMP_DEMO_MISSION.Stratis/AL_emp/emp_starter.sqf index 056b07e..eff76a8 100644 --- a/EMP_DEMO_MISSION.Stratis/AL_emp/emp_starter.sqf +++ b/EMP_DEMO_MISSION.Stratis/AL_emp/emp_starter.sqf @@ -11,6 +11,9 @@ _viz_eff = _this select 2; _player_viz = _this select 3; _dam_unit = _this select 4; +//Makes a list of all the NVG's that could be used in the mission. +[] spawn kast_fnc_getAllNVGs; + //if (!isNil {_obj_emp getVariable "is_ON"}) exitwith {}; _obj_emp setVariable ["is_ON",true,true]; missionNamespace setVariable ["empDetonated", true, true]; diff --git a/EMP_DEMO_MISSION.Stratis/description.ext b/EMP_DEMO_MISSION.Stratis/description.ext index a4c136d..10b062d 100644 --- a/EMP_DEMO_MISSION.Stratis/description.ext +++ b/EMP_DEMO_MISSION.Stratis/description.ext @@ -1,3 +1,20 @@ + + +onLoadMissionTime = 0; +respawn = 3; +respawnButton = 0; +respawnDelay = 900; +respawnDialog = 0; +respawnOnStart = -1; +respawnTemplates[] = {"Spectator"}; +disabledAI = 1; +briefing = 0; +debriefing = 0; +disableChannels[] = {{0,false,true},{1,false,true},{2,true,true},{3,false,true},{4,true,true},{5,true,true},{6,false,true}}; +saving = 1; +enableDebugConsole = 1; + + class CfgFunctions { class kasteelharry @@ -9,6 +26,8 @@ class CfgFunctions file = "functions"; class KeepMapClean; class TFARJamRadios; + class RemoveNVGs; + class getAllNVGs; }; }; }; @@ -18,13 +37,13 @@ class CfgSounds class murmur { name = "murmur"; // Name for mission editor - sound[] = {\Sound\murmur.ogg, 0.8, 1.0}; + sound[] = {"\Sound\murmur.ogg", 0.8, 1.0}; titles[] = {0, ""}; }; class geiger { name = "geiger"; // Name for mission editor - sound[] = {\Sound\geiger.ogg, .7, 1.0}; + sound[] = {"\Sound\geiger.ogg", .7, 1.0}; titles[] = {0, ""}; }; class spark1 @@ -78,7 +97,7 @@ class CfgSounds class tiuit { name = "tiuit"; // Name for mission editor - sound[] = {\Sound\tiuit.ogg, 0.2, 1.0}; + sound[] = {"\Sound\tiuit.ogg", 0.2, 1.0}; titles[] = {0, ""}; }; }; \ No newline at end of file diff --git a/EMP_DEMO_MISSION.Stratis/functions/fn_KeepMapClean.sqf b/EMP_DEMO_MISSION.Stratis/functions/fn_KeepMapClean.sqf index d61fc17..02fab1e 100644 --- a/EMP_DEMO_MISSION.Stratis/functions/fn_KeepMapClean.sqf +++ b/EMP_DEMO_MISSION.Stratis/functions/fn_KeepMapClean.sqf @@ -1,5 +1,5 @@ /* - Filename @DrawMapRestrictor.sqf + Filename @fn_KeepMapClean.sqf Author @kasteelharry Licensed under GNU Affero General Public License v3.0 @@ -8,7 +8,7 @@ This script checks all the map markers and delete every userplaced marker that isn't placed by a player in a group that is defined in the initServer.sqf For this to run you need to have Direct Play ID's stored in a global variable with the players name. - Can be created by @MapRestrictorIDGet.sqf + This list is generated on startup by initServer.sqf */ diff --git a/EMP_DEMO_MISSION.Stratis/functions/fn_RemoveNVGs.sqf b/EMP_DEMO_MISSION.Stratis/functions/fn_RemoveNVGs.sqf new file mode 100644 index 0000000..6dda002 --- /dev/null +++ b/EMP_DEMO_MISSION.Stratis/functions/fn_RemoveNVGs.sqf @@ -0,0 +1,22 @@ +/* + Author: MR. H. + Description: removes the NVGs on player. Based upon Mr. H. MRH_fnc_removeNVGs function in MRHMilsimTools + Return value:None + Public: Yes + Parameters: + 0 - - Unit to remove NVGs from. + Example(s): + [player] call Kast_fnc_removeNVGs; +*/ + +params ["_unit"]; + +_assignedItems = assigneditems _unit; +_items = items _unit; +_toSave = []; +_toSaveAssigned = []; +{ +if (_x in _items) then {_unit removeItem _x; _toSave pushBack _x;}; +if (_x in _assignedItems) then {_unit unlinkItem _x; _toSaveAssigned pushBackUnique _x;}; + +} forEach allNVGsArray; \ No newline at end of file diff --git a/EMP_DEMO_MISSION.Stratis/functions/fn_getAllNVGs.sqf b/EMP_DEMO_MISSION.Stratis/functions/fn_getAllNVGs.sqf new file mode 100644 index 0000000..05218ce --- /dev/null +++ b/EMP_DEMO_MISSION.Stratis/functions/fn_getAllNVGs.sqf @@ -0,0 +1,25 @@ +/* + Author: Mr. H. + Description: Put's all the NVG's in a list to be removed later. Based upon Mr. H. MRH_fnc_removeNVGs function in MRHMilsimTools + Return value:None + Public: Yes + Parameters: +*/ + + +//Gets all the objects from cfgWeapon +_allWeaponsConfigs = "true" configClasses (configFile >> "cfgWeapons"); +_allWeaponsConfigNames = _allWeaponsConfigs apply {configName _x}; + +//Hardcoded the apex NVGs due to them not being found... +allNVGsArray = ["NVGoggles_tna_F"]; +{ +_disp = getnumber (configfile >> "CfgWeapons" >> _x >> "scope"); +_macro = gettext (configfile >> "CfgWeapons" >> _x >> "_generalMacro"); +if (isNil "_macro") then {_macro = "";}; +if ((_disp == 2) && (_macro == "NVGoggles")) then +{ +allNVGsArray pushBackUnique _x; + +}; +} forEach _allWeaponsConfigNames; \ No newline at end of file diff --git a/EMP_DEMO_MISSION.Stratis/initPlayerLocal.sqf b/EMP_DEMO_MISSION.Stratis/initPlayerLocal.sqf index 4f1fb2e..83c7cd8 100644 --- a/EMP_DEMO_MISSION.Stratis/initPlayerLocal.sqf +++ b/EMP_DEMO_MISSION.Stratis/initPlayerLocal.sqf @@ -1,11 +1,10 @@ //These lines need to be placed in initPlayerLocal.sqf. - -//////////////////////////////////////// -//// //// -//// DO NOT CHANGE! //// -//// //// -//////////////////////////////////////// +/////////////////////////////////// +/// /// +/// DO NOT EDIT /// +/// /// +/////////////////////////////////// //Removes the markers in the local channels [] spawn kast_fnc_KeepMapClean; \ No newline at end of file diff --git a/EMP_DEMO_MISSION.Stratis/initServer.sqf b/EMP_DEMO_MISSION.Stratis/initServer.sqf index e677ea6..a873d4e 100644 --- a/EMP_DEMO_MISSION.Stratis/initServer.sqf +++ b/EMP_DEMO_MISSION.Stratis/initServer.sqf @@ -3,15 +3,18 @@ By @kasteelharry */ + /////////////////////////////////// -/// /// -/// EDITABLE VARIABLE /// -/// /// +/// /// +/// EDITABLE VARIABLE /// +/// /// /////////////////////////////////// // EMP -_EMPvariables = _jammervariables = EMP; //Needs to contain the variable name of the object spawned in game -_EMP_Range = _jammerRadius = 1000; //Range of the EMP blast and jamming afterwards +_EMPvariable = EMP; //Sets the variable names of the EMP's here +_jammerNames = _EMPvariable; //Makes the EMP the same source as the TFAR jammer +_EMP_Range = 1000; //Range of the EMP blast and jamming afterwards +_jammerRadius = _EMP_Range; //Sets jammer radius the same as EMP radius _jammerStrength = 100; //Strength of the jammer, max is 100 // REMOVE USERPLACED MARKERS @@ -19,13 +22,13 @@ _jammerStrength = 100; //Strength of the jammer, max is 100 _AllowedToDrawGroup = ["GroupName1", "GroupName2", "etc..."]; /////////////////////////////////// -/// /// -/// DO NOT EDIT /// -/// /// +/// /// +/// DO NOT EDIT /// +/// /// /////////////////////////////////// // EMP + Jammer -missionNamespace setVariable ["EMP", _EMPvariables, true]; +missionNamespace setVariable ["EMP", _EMPvariable, true]; missionNamespace setVariable ["EMP_Range", _EMP_Range, true]; missionNamespace setVariable ["Jammers", _jammerNames, true]; missionNamespace setVariable ["JammerRadius", _jammerRadius, true]; diff --git a/EMP_DEMO_MISSION.Stratis/mission.sqm b/EMP_DEMO_MISSION.Stratis/mission.sqm index 7bf15e7..a807575 100644 --- a/EMP_DEMO_MISSION.Stratis/mission.sqm +++ b/EMP_DEMO_MISSION.Stratis/mission.sqm @@ -5,49 +5,49 @@ class EditorData angleGridStep=0.2617994; scaleGridStep=1; autoGroupingDist=10; - toggles=513; + toggles=1; class ItemIDProvider { - nextID=47; + nextID=44; }; class Camera { - pos[]={8613.3311,61.73027,12067.674}; - dir[]={0.84908521,-0.1216043,-0.51427758}; - up[]={0.10406147,0.99255633,-0.063026473}; - aside[]={-0.51812488,7.3574483e-007,-0.85544157}; + pos[]={1760.1508,116.36168,5539.8672}; + dir[]={0.15487693,-0.8028546,0.57589298}; + up[]={0.20851642,0.59614426,0.77532995}; + aside[]={0.96577871,-1.8060455e-006,-0.25972876}; }; }; binarizationWanted=0; addons[]= { - "A3_Structures_F_Mil_Helipads", - "A3_Soft_F_Gamma_Truck_01", - "A3_Soft_F_MRAP_01", - "A3_Armor_F_Gamma_MBT_01", - "A3_Armor_F_EPC_MBT_01", - "A3_Structures_F_Civ_Lamps", - "A3_Characters_F_Tank", + "A3_Structures_F_EPC_Items_Electronics", "A3_Characters_F", + "A3_Soft_F_Quadbike_01", + "A3_Air_F_Beta_Heli_Transport_01", + "A3_Characters_F_Exp", + "A3_Soft_F_Exp_MRAP_01", "A3_Air_F_Heli_Light_01", - "A3_Air_F_Heli_Heli_Transport_03" + "ace_realisticnames", + "A3_Armor_F_EPC_MBT_01", + "A3_Modules_F_Curator_Curator" }; class AddonsMetaData { class List { - items=10; + items=9; class Item0 { - className="A3_Structures_F_Mil"; - name="Arma 3 - Military Buildings and Structures"; + className="A3_Structures_F_EPC"; + name="Arma 3 Win Episode - Buildings and Structures"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item1 { - className="A3_Soft_F_Gamma"; - name="Arma 3 - Unarmored Land Vehicles"; + className="A3_Characters_F"; + name="Arma 3 Alpha - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; @@ -60,339 +60,405 @@ class AddonsMetaData }; class Item3 { - className="A3_Armor_F_Gamma"; - name="Arma 3 - Armored Land Vehicles"; + className="A3_Air_F_Beta"; + name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item4 { - className="A3_Armor_F_EPC"; - name="Arma 3 Win Episode - Armored Land Vehicles"; + className="A3_Characters_F_Exp"; + name="Arma 3 Apex - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item5 { - className="A3_Structures_F"; - name="Arma 3 - Buildings and Structures"; + className="A3_Soft_F_Exp"; + name="Arma 3 Apex - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item6 { - className="A3_Characters_F_Tank"; - name="Arma 3 Tank - Characters and Clothing"; + className="A3_Air_F"; + name="Arma 3 Alpha - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item7 { - className="A3_Characters_F"; - name="Arma 3 Alpha - Characters and Clothing"; + className="A3_Armor_F_EPC"; + name="Arma 3 Win Episode - Armored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item8 { - className="A3_Air_F"; - name="Arma 3 Alpha - Aircraft"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; - }; - class Item9 - { - className="A3_Air_F_Heli"; - name="Arma 3 Helicopters - Aircraft"; + className="A3_Modules_F_Curator"; + name="Arma 3 Zeus Update - Scripted Modules"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; }; }; -randomSeed=8541426; +randomSeed=14979016; class ScenarioData { - author="ALIAScartoons"; + author="kasteelharry"; }; class Mission { class Intel { timeOfChanges=1800.0002; - startWeather=0.40000001; + startWeather=0.30000001; startWind=0.1; startWaves=0.1; - forecastWeather=0.40000001; + forecastWeather=0.30000001; forecastWind=0.1; forecastWaves=0.1; forecastLightnings=0.1; - rainForced=1; + wavesForced=1; + windForced=1; year=2035; - month=6; - hour=2; + month=7; + day=6; + hour=12; minute=0; startFogDecay=0.014; forecastFogDecay=0.014; }; class Entities { - items=21; + items=12; class Item0 { dataType="Object"; class PositionInfo { - position[]={8905.8779,31.202433,12061.604}; - angles[]={6.1861582,0,6.2259145}; + position[]={1817.891,6.2216406,5635.939}; }; side="Empty"; + flags=4; class Attributes { - name="emp_me"; + name="EMP"; }; - id=2; - type="Land_HelipadEmpty_F"; + id=0; + type="Land_Device_assembled_F"; }; class Item1 { - dataType="Object"; - class PositionInfo + dataType="Group"; + side="West"; + class Entities { - position[]={8674.7607,53.696594,12090.14}; - angles[]={6.2272449,0,6.0052376}; + items=8; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1815.1494,5.5014391,5617.4492}; + }; + side="West"; + flags=7; + class Attributes + { + rank="SERGEANT"; + isPlayer=1; + }; + id=2; + type="B_Soldier_SL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1820.1494,5.5014391,5612.4492}; + }; + side="West"; + flags=5; + class Attributes + { + skill=0.40000001; + }; + id=3; + type="B_soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1810.1494,5.5014391,5612.4492}; + }; + side="West"; + flags=5; + class Attributes + { + skill=0.44999999; + rank="CORPORAL"; + }; + id=4; + type="B_Soldier_GL_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1825.1494,5.5014391,5607.4492}; + }; + side="West"; + flags=5; + class Attributes + { + rank="SERGEANT"; + }; + id=5; + type="B_soldier_M_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1805.1494,5.5014391,5607.4492}; + }; + side="West"; + flags=5; + class Attributes + { + skill=0.44999999; + rank="CORPORAL"; + }; + id=6; + type="B_soldier_AT_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1830.1494,5.5014391,5602.4492}; + }; + side="West"; + flags=5; + class Attributes + { + skill=0.40000001; + }; + id=7; + type="B_soldier_AAT_F"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={1800.1494,5.5014391,5602.4492}; + }; + side="West"; + flags=5; + class Attributes + { + skill=0.40000001; + }; + id=8; + type="B_Soldier_A_F"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={1835.1494,5.5014391,5597.4492}; + }; + side="West"; + flags=5; + class Attributes + { + skill=0.40000001; + }; + id=9; + type="B_medic_F"; + }; }; - side="Empty"; - flags=4; class Attributes { }; - id=3; - type="B_Truck_01_mover_F"; - atlOffset=-0.012428284; + id=1; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={8688.54,51.18298,12082.328}; - angles[]={6.2605205,0,6.2325611}; + position[]={1798.1899,7.1262865,5631.0908}; + angles[]={0,1.668128,0}; }; side="Empty"; flags=4; class Attributes { }; - id=4; - type="B_Truck_01_medical_F"; - atlOffset=-0.0093269348; + id=10; + type="B_Quadbike_01_F"; }; class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={8660.7148,57.086704,12094.118}; - angles[]={6.1193342,0,5.9518657}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=7; - type="B_MRAP_01_F"; - atlOffset=-0.079517365; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={8635.248,64.805801,12094.191}; - angles[]={6.0947804,0,6.0375795}; - }; - side="Empty"; - flags=4; - class Attributes - { - }; - id=8; - type="B_MBT_01_cannon_F"; - atlOffset=5.3405762e-005; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={8675.1396,50.560852,12051.187}; - }; - side="Empty"; - flags=5; - class Attributes - { - }; - id=11; - type="Land_LampStreet_small_F"; - atlOffset=-4.196167e-005; - }; - class Item6 - { - dataType="Object"; - class PositionInfo - { - position[]={8649.1338,52.893356,12037.233}; - }; - side="Empty"; - flags=5; - class Attributes - { - }; - id=12; - type="Land_LampStreet_F"; - }; - class Item7 { dataType="Group"; side="West"; class Entities { - items=1; + items=4; class Item0 { dataType="Object"; class PositionInfo { - position[]={8592.1182,72.921783,12084.919}; - angles[]={0,1.7480522,0}; + position[]={1780.8087,60.222614,5675.311}; + angles[]={0,3.4042258,0}; }; side="West"; - flags=7; + flags=2; class Attributes { - isPlayer=1; }; - id=17; - type="B_soldier_LAT2_F"; + id=25; + type="B_Helipilot_F"; + atlOffset=54.721176; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1780.8087,60.222614,5675.311}; + angles[]={0,3.4042258,0}; + }; + side="West"; + class Attributes + { + }; + id=26; + type="B_Helipilot_F"; + atlOffset=54.721176; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1780.8087,60.222614,5675.311}; + angles[]={0,3.4042258,0}; + }; + side="West"; + class Attributes + { + }; + id=27; + type="B_helicrew_F"; + atlOffset=54.721176; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1780.8087,60.222614,5675.311}; + angles[]={0,3.4042258,0}; + }; + side="West"; + class Attributes + { + }; + id=28; + type="B_helicrew_F"; + atlOffset=54.721176; }; }; class Attributes { }; - id=16; - }; - class Item8 - { - dataType="Trigger"; - position[]={8607.4668,70.48243,12092.327}; - class Attributes - { - onActivation="trigger_emp_1 = true; publicVariable ""trigger_emp_1"";"; - sizeA=10; - sizeB=10; - activationBy="WEST"; - }; - id=18; - type="EmptyDetectorAreaR50"; - }; - class Item9 - { - dataType="Object"; - class PositionInfo - { - position[]={8685.8838,49.502811,12048.756}; - }; - side="Empty"; - flags=5; - class Attributes - { - }; - id=20; - type="Land_LampStreet_small_F"; - atlOffset=-0.0010375977; - }; - class Item10 - { - dataType="Object"; - class PositionInfo - { - position[]={8694.3984,48.832661,12048.759}; - }; - side="Empty"; - flags=5; - class Attributes - { - }; - id=21; - type="Land_LampStreet_small_F"; - atlOffset=-0.0077056885; - }; - class Item11 - { - dataType="Object"; - class PositionInfo - { - position[]={8707.8877,47.171726,12047.248}; - }; - side="Empty"; - flags=5; - class Attributes - { - }; - id=22; - type="Land_LampStreet_small_F"; - atlOffset=-0.013374329; - }; - class Item12 - { - dataType="Object"; - class PositionInfo - { - position[]={8721.2324,45.106213,12045.522}; - }; - side="Empty"; - flags=5; - class Attributes + class CrewLinks { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=25; + item1=24; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=26; + item1=24; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=27; + item1=24; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=28; + item1=24; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; }; id=23; - type="Land_LampStreet_small_F"; - atlOffset=-0.017372131; + atlOffset=54.721176; }; - class Item13 + class Item4 { dataType="Object"; class PositionInfo { - position[]={8743.502,41.541691,12042.431}; + position[]={1780.8087,62.360435,5675.2617}; + angles[]={0,3.4042258,0}; }; - side="Empty"; - flags=5; + side="West"; + flags=2; class Attributes { }; id=24; - type="Land_LampStreet_small_F"; - atlOffset=-0.017700195; + type="B_Heli_Transport_01_F"; + atlOffset=54.721176; }; - class Item14 - { - dataType="Object"; - class PositionInfo - { - position[]={8765.627,38.883835,12041.335}; - }; - side="Empty"; - flags=5; - class Attributes - { - }; - id=25; - type="Land_LampStreet_small_F"; - atlOffset=0.0059928894; - }; - class Item15 + class Item5 { dataType="Group"; side="West"; @@ -404,31 +470,32 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8917.6426,127.92082,12011.723}; + position[]={1834.6144,5.5014391,5631.6035}; + angles[]={0,5.844758,0}; }; side="West"; - flags=2; + flags=4; class Attributes { }; - id=29; - type="B_Helipilot_F"; - atlOffset=100; + id=31; + type="B_T_Soldier_F"; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={8917.6426,127.92082,12011.723}; + position[]={1834.6144,5.5014391,5631.6035}; + angles[]={0,5.844758,0}; }; side="West"; + flags=6; class Attributes { }; - id=30; - type="B_Helipilot_F"; - atlOffset=100; + id=32; + type="B_T_Soldier_F"; }; }; class Attributes @@ -446,8 +513,8 @@ class Mission class Item0 { linkID=0; - item0=29; - item1=28; + item0=31; + item1=30; class CustomData { role=1; @@ -456,8 +523,8 @@ class Mission class Item1 { linkID=1; - item0=30; - item1=28; + item0=32; + item1=30; class CustomData { role=2; @@ -466,139 +533,61 @@ class Mission }; }; }; - id=27; - atlOffset=100; + id=29; }; - class Item16 + class Item6 { dataType="Object"; class PositionInfo { - position[]={8917.5811,129.69746,12011.676}; + position[]={1834.6144,8.2582445,5631.5518}; + angles[]={0,5.844758,0}; }; side="West"; - flags=2; + flags=6; class Attributes { }; - id=28; - type="B_Heli_Light_01_dynamicLoadout_F"; - atlOffset=100; + id=30; + type="B_T_MRAP_01_hmg_F"; }; - class Item17 + class Item7 { dataType="Group"; side="West"; class Entities { - items=4; + items=2; class Item0 { dataType="Object"; class PositionInfo { - position[]={9012.0713,176.67433,12062.22}; - angles[]={0,1.9751018,0}; + position[]={1831.7856,50.397797,5659.999}; }; side="West"; flags=2; class Attributes { - isPlayable=1; }; - id=33; + id=35; type="B_Helipilot_F"; - atlOffset=149.8533; - class CustomAttributes - { - class Attribute0 - { - property="speaker"; - expression="_this setspeaker _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Male09ENG"; - }; - }; - }; - class Attribute1 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=2; - }; + atlOffset=44.896358; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={9012.0713,176.67433,12062.22}; - angles[]={0,1.9751018,0}; - }; - side="West"; - class Attributes - { - }; - id=34; - type="B_Helipilot_F"; - atlOffset=149.8533; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={9012.0713,176.67433,12062.22}; - angles[]={0,1.9751018,0}; - }; - side="West"; - class Attributes - { - }; - id=35; - type="B_helicrew_F"; - atlOffset=149.8533; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={9012.0713,176.67433,12062.22}; - angles[]={0,1.9751018,0}; + position[]={1831.7856,50.397797,5659.999}; }; side="West"; class Attributes { }; id=36; - type="B_helicrew_F"; - atlOffset=149.8533; + type="B_Helipilot_F"; + atlOffset=44.896358; }; }; class Attributes @@ -608,16 +597,16 @@ class Mission { class LinkIDProvider { - nextID=4; + nextID=2; }; class Links { - items=4; + items=2; class Item0 { linkID=0; - item0=33; - item1=32; + item0=35; + item1=34; class CustomData { role=1; @@ -626,97 +615,89 @@ class Mission class Item1 { linkID=1; - item0=34; - item1=32; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=35; - item1=32; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; item0=36; - item1=32; + item1=34; class CustomData { role=2; - turretPath[]={2}; + turretPath[]={0}; }; }; }; }; - id=31; - atlOffset=149.8533; + id=33; + atlOffset=44.896358; }; - class Item18 + class Item8 { dataType="Object"; class PositionInfo { - position[]={9012.3799,180.0927,12062.092}; - angles[]={0,1.9751018,0}; + position[]={1831.7856,52.175503,5659.9502}; }; side="West"; flags=2; class Attributes { }; - id=32; - type="B_Heli_Transport_03_F"; - atlOffset=149.8533; + id=34; + type="B_Heli_Light_01_dynamicLoadout_F"; + atlOffset=44.896358; }; - class Item19 + class Item9 { dataType="Group"; side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={8908.75,235.87477,12131.101}; - angles[]={0,5.2297745,0}; + position[]={1823.835,5.5014391,5712.8315}; + angles[]={0,3.3876739,0}; }; side="West"; - flags=2; + flags=4; class Attributes { }; - id=38; - type="B_Helipilot_F"; - atlOffset=200; + id=39; + type="B_crew_F"; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={8908.75,235.87477,12131.101}; - angles[]={0,5.2297745,0}; + position[]={1823.835,5.5014391,5712.8315}; + angles[]={0,3.3876739,0}; }; side="West"; + flags=4; class Attributes { }; - id=39; - type="B_Helipilot_F"; - atlOffset=200; + id=40; + type="B_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1823.835,5.5014391,5712.8315}; + angles[]={0,3.3876739,0}; + }; + side="West"; + flags=6; + class Attributes + { + }; + id=41; + type="B_crew_F"; }; }; class Attributes @@ -726,16 +707,16 @@ class Mission { class LinkIDProvider { - nextID=2; + nextID=3; }; class Links { - items=2; + items=3; class Item0 { linkID=0; - item0=38; - item1=40; + item0=39; + item1=38; class CustomData { role=1; @@ -744,35 +725,134 @@ class Mission class Item1 { linkID=1; - item0=39; - item1=40; + item0=40; + item1=38; class CustomData { role=2; turretPath[]={0}; }; }; + class Item2 + { + linkID=2; + item0=41; + item1=38; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; }; }; id=37; - atlOffset=199.9082; }; - class Item20 + class Item10 { dataType="Object"; class PositionInfo { - position[]={8908.1699,237.54874,12131.198}; - angles[]={0,5.2297745,0}; + position[]={1823.835,8.2264757,5712.7817}; + angles[]={0,3.3876739,0}; }; side="West"; - flags=2; + flags=6; class Attributes { }; - id=40; - type="B_Heli_Light_01_dynamicLoadout_F"; - atlOffset=199.9082; + id=38; + type="B_MBT_01_TUSK_F"; + }; + class Item11 + { + dataType="Logic"; + class PositionInfo + { + position[]={1778.9821,5.5,5557.2441}; + }; + id=42; + type="ModuleCurator_F"; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCurator_F_Owner"; + expression="_this setVariable ['Owner',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="#adminLogged"; + }; + }; + }; + class Attribute1 + { + property="ModuleCurator_F_Forced"; + expression="_this setVariable ['Forced',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute2 + { + property="ModuleCurator_F_Name"; + expression="_this setVariable ['Name',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute3 + { + property="ModuleCurator_F_Addons"; + expression="_this setVariable ['Addons',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=2; + }; + }; + }; + nAttributes=4; + }; }; }; }; diff --git a/EMP_DEMO_MISSION.Stratis/version.txt b/EMP_DEMO_MISSION.Stratis/version.txt new file mode 100644 index 0000000..cf6d6be --- /dev/null +++ b/EMP_DEMO_MISSION.Stratis/version.txt @@ -0,0 +1 @@ +Version: 1.2.0 \ No newline at end of file diff --git a/README.md b/README.md index 98500b9..a50d348 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,25 @@ -# Arma 3 Elektromagnetic Pulse (EMP) multiplayer port +# Arma 3 Electromagnetic Pulse (EMP) multiplayer port A modified version of the Arma 3 EMP script by Aliascartoons on [Armaholic](http://www.armaholic.com/page.php?id=34293). Edited by Kasteelharry for useage in multiplayer and to be used in combination with the TFAR jamming script by Rebel12340 on [Armaholic](http://www.armaholic.com/page.php?id=32660). This script has been developed for the missions held by the Arma 3 Unit [Zeus Operations](https://www.zeusops.com/#home) each weekend on their servers. +## Features + +1. An Electromagnetic Pulse that disables/removes all electronic devices and disables all vehicles. +2. No radios due to a TFAR radio jammer after running it. +3. Players can't place markers on the map after EMP detonation. + ## Disclaimer -The following scripts are not tested in combination of each other in a dedicated enviroment. However, they have all been tested and used on dedicated servers seperately. The author is not responsible for any damamges caused by this script. +The following scripts have been tested in a dedicated enviroment with succesful results. However the author of this repository is not responsible for any damages due to the usage of the script. If any issues are discovered, please open a new issue. ## Installation guide 1. Clone or download the repository and place all the files and folders in your mission folder. 2. Copy contents of any already existing files over to the correct files. 3. In the editor give the object that serves as the EMP source the variable name ***EMP***. - - If the object already has a variable name, change it in the initServer.sqf or set the variable "EMP" as shown in usage. -4. Set the range and strength of the EMP and Jammers in the initServer.sqf file. -5. Set the groups that can draw/place markers on map after the EMP blast in the initServer.sqf file. + - If the object already has a variable name, change it in the [initServer.sqf](EMP_DEMO_MISSION.Stratis/initServer.sqf) or set the variable "EMP" as shown in usage. +4. Set the range and strength of the EMP and Jammers in the [initServer.sqf](EMP_DEMO_MISSION.Stratis/initServer.sqf) file. +5. Set the groups that can draw/place markers on map after the EMP blast in the [initServer.sqf](EMP_DEMO_MISSION.Stratis/initServer.sqf) file. ## Usage @@ -21,12 +27,12 @@ The following scripts are not tested in combination of each other in a dedicated - Run the following line of code global: ```sqf -[EMP,EMP_Range,true,true] execvm "AL_emp\emp_starter.sqf"; +[EMP, EMP_Range, true, true, 0] execvm "AL_emp\emp_starter.sqf"; ``` -- where EMP is the variable name you have given to the object in the editor and range is the EMP_Range of the emp blast. - - Changeable in initServer.sqf - - Or with: +- where ```EMP``` is the variable name you have given to the object in the editor and ```EMP_Range``` the range of the EMP blast. + - The variables are changeable in initServer.sqf + - Or with the following code where ```_EMP_Range``` is the range you want and ```_EMPvariables``` is the variable name of the EMP: ```sqf //Sets the variable from where to run the EMP @@ -35,20 +41,20 @@ missionNamespace setVariable ["EMP", _EMPvariables, true]; missionNamespace setVariable ["EMP_Range", _EMP_Range, true]; ``` -- To stop the TFAR Jamming script delete the object with the EMP variable name. -- To give players the functionality back to place down markers and draw on the map execute the following line of code: +- To stop the TFAR Jamming script delete the object that you used as the origin of the blast. +- Use the following line of code to let all the players draw on the map again: ```sqf //Stops the loop where markers are being in deleted missionNamespace setVariable ["DisableMapRestrictor", true, true]; ``` -## Upcoming features - - -1) A way to automatically stop the jamming/whitelist players, after, for example, finding intel, walking out the range and back in or by simply rearming at an arsenal. +## Other useful info +If you want to change the types of things/entities that are affected by the blast, you can change them in [config_obj.sqf](EMP_DEMO_MISSION.Stratis/AL_emp/config_obj.sqf). ## Known Bugs -- Toolkits are not removed from the players inventories. +## Contact + +For any questions about this project feel free to send me an [email.](mailto:g.samuel.cooper@gmail.com?[GitHub]%20Arma%20EMP%20Script)