sreVbriefing.htmlMJpbriefing.sqfMJcall_arti.sqfMJxdescription.extMJ*init.sqfMJintro.sqsMJ mission.sqmMJDscripts\areyoucommander.sqfMJ}scripts\areyoupilot.sqfMJuscripts\chopperload.sqfMJu scripts\commandercheck.sqfMJwscripts\pilotcheck.sqfMJhscripts\vehspawn.sqfMJspect\common.hppMJspect\f_waitForJIP.sqfMJYspect\specta.sqfMJspect\spectating.hppMJ%spect\specta_events.sqfMJu8spect\specta_init.sqfMJ Title

Mission accomplished


Good work!


player createDiaryRecord["Diary", ["Briefing", "Your mission is to destroy 2 tunguskas and 4 BM-21 Grads. Your HQ vehicle must not be destroyed! You start from the airport. After you have destroyed enemy forces, move your mobile HQ to Balota."]]; objekti_1 = player createSimpleTask["Destroy tunguskas"]; objekti_2 = player createSimpleTask["Destroy BM-21 Grads"]; objekti_3 = player createSimpleTask["HQ to Balota"]; objekti_1 setSimpleTaskDescription["Destroy two tunguskas. There are crewmen inside of them.","Destroy tunguskas", "Destroy"]; objekti_2 setSimpleTaskDescription["Destroy four BM-21 Grads. They are hided and heavily guarded.","Destroy BM-21 Grads", "Destroy"]; objekti_3 setSimpleTaskDescription["Drive your LAV-25 HQ vehicle from the airport to Balota.","New location for HQ", "HQ to here"]; objekti_1 setSimpleTaskDestination (getMarkerPos "tar1"); objekti_2 setSimpleTaskDestination (getMarkerPos "tar2"); objekti_3 setSimpleTaskDestination (getMarkerPos "tar3");private ["_oldpos", "_dlg", "_fcDialog", "_pos"]; if (!ari_available) exitWith { [playerSide,"HQ"] sideChat "Artillery currently not available..."; }; disableSerialization; _oldpos = position AriTarget; _dlg = createDialog "XD_ArtilleryDialog"; _fcDialog = uiNamespace getVariable "D_ARTI_DISP"; onMapSingleClick "AriTarget setpos _pos;""arti_target"" setMarkerPos _pos;"; waitUntil {ari_type != "" || !dialog || !alive player}; //onMapSingleClick ""; if (!alive player) exitWith { if (dialog) then { closeDialog 77899; }; AriTarget setpos _oldpos; "arti_target" setMarkerPos _oldpos; }; if (ari_type != "") then { player sideChat format ["Crossroad, requesting %1 strike at %2 north, %3 west!", ari_type, position AriTarget select 1, position AriTarget select 0]; sleep 2; [playerSide,"HQ"] sideChat "This is first artillery, roger."; sleep 5; [playerSide,"HQ"] sideChat format ["First artillery executing %1 strike", ari_type]; publicVariable "ari_type"; if (X_SPE) then { ari_type execVM "x_arifire.sqf"; }; } else { AriTarget setpos _oldpos; "arti_target" setMarkerPos _oldpos; };onLoadMission="First Advance, Inspired by Air Cavalry."; onLoadIntroTime = false; onLoadMissionTime = false; class Header { gameType = Coop; //DM, Team, Coop, ... minPlayers = 1; //min # of players the mission supports maxPlayers = 50; //Max # of players the mission supports }; respawn = BASE; respawndelay = 40; disabledAI = 1; titleParam1 = "Daytime"; valuesParam1[] = {1, 2, 3, 4}; defValueParam1 = 1; textsParam1[] = {"Morning", "Day", "Evening", "Night"}; #include "spect\spectating.hpp"setViewDistance 2000; enableEnvironment false; execVM "briefing.sqf"; X_INIT = false; X_Server = false; X_Client = false; X_JIP = false;X_SPE = false; X_MP = isMultiplayer; if (isServer) then { X_Server = true; if (!(isNull player)) then {X_Client = true;X_SPE = true;}; X_INIT = true; } else { X_Client = true; if (isNull player) then { X_JIP = true; [] spawn {waitUntil {!(isNull player)};X_INIT = true}; } else { X_INIT = true; }; }; if (!isNil "param1") then { switch (param1) do { case 1: {skipTime 5}; case 2: {skipTime 12}; case 3: {skipTime 19}; }; } else { skipTime 12; }; ;init titleCut ["", "BLACK FADED", 0]; ~0.01 "colorCorrections" ppEffectAdjust [1, 1, -0.008, [0.0, 0.8, 0.9, 0.002], [1.0, 0.9, 0.8, 0.6], [1, 1, 0, 0.0]]; "colorCorrections" ppEffectCommit 0; "colorCorrections" ppEffectEnable TRUE; ;light film grain "filmGrain" ppEffectEnable true; "filmGrain" ppEffectAdjust [0.02, 1, 1, 0.1, 1, false]; "filmGrain" ppEffectCommit 0; "radialBlur" ppEffectEnable false; "wetDistortion" ppEffectEnable false; "chromAberration" ppEffectEnable false; "dynamicBlur" ppEffectEnable false; _camera = "camera" camCreate [-76678.81,-38115.99,-31353.47] _camera camPrepareTarget [-76678.81,-38115.99,-31353.47] _camera camPreparePos [5795.40,8759.04,31.59] _camera camPrepareFOV 0.700 _camera cameraEffect ["internal","back"] showCinemaBorder true titleCut ["", "BLACK IN", 6]; _camera camCommitPrepared 0 _camera camCommand "inertia on" ;=== 13:22:51 _camera camPrepareTarget [65243.22,-71159.91,8654.00] _camera camPreparePos [5699.13,8746.86,2.53] _camera camPrepareFOV 0.700 _camera camCommitPrepared 10 @camCommitted _camera ;=== 13:23:25 _camera camPrepareTarget [4982.27,94712.46,-50777.63] _camera camPreparePos [5750.00,8603.24,64.33] _camera camPrepareFOV 0.700 _camera camCommitPrepared 10 @camCommitted _camera ;=== 13:36:47 _camera camPrepareTarget [99835.96,-12162.41,-24903.42] _camera camPreparePos [4738.94,5674.60,40.09] _camera camPrepareFOV 0.700 _camera camCommitPrepared 10 @camCommitted _camera ;=== 13:25:42 _camera camPrepareTarget [1770.17,-73805.46,-61161.10] _camera camPreparePos [5864.72,5015.08,150.73] _camera camPrepareFOV 0.700 _camera camCommitPrepared 13 @camCommitted _camera ;=== 13:36:02 _camera camPrepareTarget [-21089.28,94232.76,-29786.58] _camera camPreparePos [4797.09,2243.12,94.08] _camera camPrepareFOV 0.700 _camera camCommitPrepared 10 @camCommitted _camera ~2 "colorCorrections" ppEffectAdjust [1, 1, 0, [0.0, 1, 1, 0], [1.0, 1.0, 1.0, 1.0], [1, 1, 0, 0.0]]; "colorCorrections" ppEffectCommit 0; "colorCorrections" ppEffectEnable TRUE; ;light film grain "filmGrain" ppEffectEnable true; "filmGrain" ppEffectAdjust [0.01, 0.5, 0.5, 0.1, 0.5, false]; "filmGrain" ppEffectCommit 0; "radialBlur" ppEffectEnable false; "wetDistortion" ppEffectEnable false; "chromAberration" ppEffectEnable false; "dynamicBlur" ppEffectEnable false; 0 fadeSound 1.00 ;exit player cameraEffect ["terminate","back"] camDestroy _camera exitversion=11; class Mission { addOns[]= { "cacharacters2", "CAAir2_C130J", "chernarus", "CAAir2_MV22", "CAAir", "CATracked2_2S6M_Tunguska", "CATracked", "CATracked2_BMP3", "CAWheeled", "ca_air2_su25", "CAWheeled2_BTR90", "camisc3", "CAWheeled2_MTVR", "CAWheeled2_HMMWV_Ambulance", "caweapons_ammoboxes", "CAWheeled2_LAV25", "CATracked2_T90", "ca_missions_ambientcombat", "ca_modules_functions" }; addOnsAuto[]= { "CATracked2_2S6M_Tunguska", "cacharacters2", "CATracked", "CATracked2_BMP3", "CAWheeled2_BTR90", "CATracked2_T90", "ca_missions_ambientcombat", "ca_modules_functions", "CAAir2_C130J", "CAAir2_MV22", "CAAir", "CAWheeled", "ca_air2_su25", "camisc3", "CAWheeled2_MTVR", "CAWheeled2_HMMWV_Ambulance", "caweapons_ammoboxes", "CAWheeled2_LAV25", "chernarus" }; randomSeed=4441979; class Intel { briefingName="co 41 first advance"; briefingDescription="Tunguskas & Grads - by Raunhofer"; startWeather=0.42013621; forecastWeather=0.42165166; year=2008; month=6; day=11; hour=0; minute=0; }; class Groups { items=47; class Item0 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4855.6274,322.43002,5640.6211}; azimut=325; id=4; side="EAST"; vehicle="2S6M_Tunguska"; leader=1; skill=0.60000002; text="tunguska2"; }; }; }; class Item1 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5889.1812,135.53368,4883.4268}; azimut=357.63062; id=5; side="EAST"; vehicle="2S6M_Tunguska"; leader=1; skill=0.60000002; text="tunguska"; }; }; }; class Item2 { side="EAST"; class Vehicles { items=12; class Item0 { position[]={5680.5479,234.88307,6337.0957}; azimut=174.99998; id=6; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={5677.1235,235.67087,6341.8154}; azimut=174.99998; id=7; side="EAST"; vehicle="RU_Soldier_MG"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={5675.1313,235.21906,6341.6411}; azimut=174.99998; id=8; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item3 { position[]={5673.1392,234.7691,6341.4668}; azimut=174.99998; id=9; side="EAST"; vehicle="RU_Soldier_LAT"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={5671.1465,234.32756,6341.2925}; azimut=174.99998; id=10; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item5 { position[]={5669.1543,233.92268,6341.1182}; azimut=174.99998; id=11; side="EAST"; vehicle="RU_Soldier_Marksman"; rank="CORPORAL"; skill=0.33333331; }; class Item6 { position[]={5667.1616,233.56752,6340.9438}; azimut=174.99998; id=12; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item7 { position[]={5665.1694,233.54317,6340.7695}; azimut=174.99998; id=13; side="EAST"; vehicle="RU_Soldier_AT"; rank="CORPORAL"; skill=0.33333331; }; class Item8 { position[]={5663.1768,233.64728,6340.5952}; azimut=174.99998; id=14; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item9 { position[]={5661.1846,233.7251,6340.4209}; azimut=174.99998; id=15; side="EAST"; vehicle="RU_Soldier_LAT"; skill=0.2; }; class Item10 { position[]={5659.1924,233.79607,6340.2466}; azimut=174.99998; id=16; side="EAST"; vehicle="RU_Soldier_GL"; skill=0.2; }; class Item11 { position[]={5657.1997,233.88632,6340.0723}; azimut=174.99998; id=17; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={5839.3252,139.90057,4526.0488}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={5680.5479,234.88307,6337.0957}; id=6; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item3 { side="EAST"; class Vehicles { items=3; class Item0 { position[]={6032.6157,182.89844,5008.0889}; azimut=227.621; id=20; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item1 { position[]={6031.9316,182.2702,5004.7383}; azimut=-21.206879; id=19; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item2 { position[]={6029.334,182.04408,5007.2686}; azimut=104.63003; id=18; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; class Waypoints { items=2; class Item0 { position[]={6052.6592,192.12961,5262.0303}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={6032.6157,182.89844,5008.0889}; id=20; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item4 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={4783.9517,266.18399,6696.9492}; azimut=174.99998; id=21; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={4778.5352,266.27863,6701.4946}; azimut=174.99998; id=22; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={4774.5503,266.27933,6701.146}; azimut=174.99998; id=23; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={4770.5654,266.27234,6700.7974}; azimut=174.99998; id=24; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={4766.5806,266.27829,6700.4487}; azimut=174.99998; id=25; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={4760.6035,266.58194,6699.9258}; azimut=174.99998; id=26; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={5241.8535,305.37762,5498.6318}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4783.9517,266.18399,6696.9492}; id=21; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item5 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={6531.1772,362.98145,6645.6758}; azimut=174.99998; id=27; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={6525.7607,363.27216,6650.2212}; azimut=174.99998; id=28; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={6521.7759,363.40518,6649.8726}; azimut=174.99998; id=29; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={6517.791,363.43774,6649.5239}; azimut=174.99998; id=30; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={6513.8062,363.47522,6649.1753}; azimut=174.99998; id=31; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={6507.8291,364.01019,6648.6523}; azimut=174.99998; id=32; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={6645.1792,225.96426,4671.1289}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={6531.1772,362.98145,6645.6758}; id=27; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item6 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={4239.7017,244.15323,4838.1187}; azimut=174.99998; id=33; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={4234.2852,243.58783,4842.6641}; azimut=174.99998; id=34; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={4230.3003,243.24562,4842.3154}; azimut=174.99998; id=35; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={4226.3154,242.75522,4841.9668}; azimut=174.99998; id=36; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={4222.3306,242.26503,4841.6182}; azimut=174.99998; id=37; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={4216.3535,241.43445,4841.0952}; azimut=174.99998; id=38; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={5601.4932,114.13299,3308.7046}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4239.7017,244.15323,4838.1187}; id=33; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item7 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={7549.0542,205.20613,4998.9214}; azimut=174.99998; id=39; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={7543.6377,206.62636,5003.4668}; azimut=174.99998; id=40; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={7539.6528,207.26997,5003.1182}; azimut=174.99998; id=41; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={7535.668,207.73537,5002.7695}; azimut=174.99998; id=42; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={7531.6831,207.97203,5002.4209}; azimut=174.99998; id=43; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={7525.7061,208.5477,5001.8979}; azimut=174.99998; id=44; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={6412.5293,85.585083,3751.8987}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={7549.0542,205.20613,4998.9214}; id=39; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item8 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={6516.4658,245.35078,4552.3169}; azimut=382.10501; id=45; side="EAST"; vehicle="T72_RU"; leader=1; skill=0.2; text="tank1"; }; }; }; class Item9 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={6401.7676,367.46609,6465.3135}; azimut=220.12497; id=46; side="EAST"; vehicle="T72_RU"; leader=1; skill=0.2; text="tank2"; }; }; }; class Item10 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5664.748,303.40576,7247.6118}; azimut=190; id=47; side="EAST"; vehicle="BMP3"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; class Waypoints { items=4; class Item0 { position[]={6927.8281,311.29068,5597.1709}; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={6322.23,27.349861,3338.6938}; class Effects { }; showWP="NEVER"; }; class Item2 { position[]={5025.6133,263.79901,6798.27}; class Effects { }; showWP="NEVER"; }; class Item3 { position[]={5664.748,303.40576,7247.6118}; id=47; type="CYCLE"; class Effects { }; showWP="NEVER"; }; }; }; class Item11 { side="EAST"; class Vehicles { items=3; class Item0 { position[]={4457.5659,314.93393,5727.4546}; azimut=227.621; id=50; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item1 { position[]={4456.8818,315.26917,5724.104}; azimut=-21.206879; id=49; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item2 { position[]={4454.2842,315.04065,5726.6343}; azimut=104.63003; id=48; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; class Waypoints { items=2; class Item0 { position[]={4453.9766,302.18225,6271.728}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4457.5659,314.93393,5727.4546}; id=50; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item12 { side="EAST"; class Vehicles { items=3; class Item0 { position[]={5073.5894,320.38049,5499.1045}; azimut=151.0894; id=53; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item1 { position[]={5076.6885,320.26697,5497.6592}; azimut=-97.738472; id=52; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item2 { position[]={5073.6216,320.64661,5495.7222}; azimut=28.098448; id=51; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; class Waypoints { items=2; class Item0 { position[]={4543.4487,329.6134,5622.3809}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={5073.5894,320.38049,5499.1045}; id=53; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item13 { side="EAST"; class Vehicles { items=3; class Item0 { position[]={4260.6782,309.81375,6484.3843}; azimut=227.621; id=56; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item1 { position[]={4259.9941,310.00198,6481.0337}; azimut=-21.206879; id=55; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item2 { position[]={4257.3965,309.99472,6483.564}; azimut=104.63003; id=54; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; class Waypoints { items=2; class Item0 { position[]={4142.7974,338.62671,5553.2627}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4260.6782,309.81375,6484.3843}; id=56; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item14 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={6794.4834,339.96777,5632.9531}; azimut=25; id=57; side="EAST"; vehicle="T72_RU"; leader=1; skill=0.2; text="tank3"; }; }; }; class Item15 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5894.1035,135.66896,4876.3765}; azimut=152.09088; id=58; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item16 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5895.7905,135.61719,4871.1206}; id=59; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item17 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4863.1738,322.36423,5635.8896}; id=60; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item18 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4862.2861,322.37982,5637.04}; azimut=112.68017; id=61; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item19 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4863.6807,322.36548,5637.4097}; azimut=225.468; id=62; side="EAST"; vehicle="RU_Soldier_HAT"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item20 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={4642.5649,9,2564.7368}; azimut=174.99998; id=69; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={4637.1484,9,2569.2822}; azimut=174.99998; id=70; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={4633.1636,9,2568.9336}; azimut=174.99998; id=71; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={4629.1787,9,2568.585}; azimut=174.99998; id=72; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={4625.1938,8.9692564,2568.2363}; azimut=174.99998; id=73; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={4619.2168,8.9638186,2567.7134}; azimut=174.99998; id=74; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={4900.0723,9,2415.5505}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4642.5649,9,2564.7368}; id=69; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item21 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={5248.855,9.281682,2170.0603}; azimut=174.99998; id=75; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={5243.4385,9.1950226,2174.6057}; azimut=174.99998; id=76; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={5239.4536,9.1475105,2174.2571}; azimut=174.99998; id=77; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={5235.4688,9.1116438,2173.9084}; azimut=174.99998; id=78; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={5231.4839,9.1153622,2173.5598}; azimut=174.99998; id=79; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={5225.5068,9.0734253,2173.0369}; azimut=174.99998; id=80; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={4857.5132,9,2391.6772}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={5248.855,9.281682,2170.0603}; id=75; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item22 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={4105.748,5.8992791,2486.7393}; azimut=174.99998; id=81; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={4100.3315,5.9080644,2491.2847}; azimut=174.99998; id=82; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={4096.3467,5.9103265,2490.936}; azimut=174.99998; id=83; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={4092.3618,5.9143009,2490.5874}; azimut=174.99998; id=84; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={4088.377,5.9191494,2490.2388}; azimut=174.99998; id=85; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={4082.3999,5.9260426,2489.7158}; azimut=174.99998; id=86; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={4867.5586,5.7740908,2251.884}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4105.748,5.8992791,2486.7393}; id=81; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item23 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={4063.6658,33.114094,3069.2473}; azimut=174.99998; id=87; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={4058.249,33.81979,3073.7927}; azimut=174.99998; id=88; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={4054.2642,33.80825,3073.4441}; azimut=174.99998; id=89; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={4050.2793,33.804375,3073.0955}; azimut=174.99998; id=90; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={4046.2944,33.800098,3072.7468}; azimut=174.99998; id=91; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={4040.3174,33.83173,3072.2239}; azimut=174.99998; id=92; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={4489.8384,7.6643548,2533.2349}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4063.6658,33.114094,3069.2473}; id=87; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item24 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={4567.7651,5.7175207,2295.1753}; azimut=174.99998; id=93; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={4562.3486,5.7288671,2299.7207}; azimut=174.99998; id=94; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={4558.3638,5.667809,2299.3721}; azimut=174.99998; id=95; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={4554.3789,5.6087599,2299.0234}; azimut=174.99998; id=96; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={4550.394,5.5536447,2298.6748}; azimut=174.99998; id=97; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={4544.417,5.495687,2298.1519}; azimut=174.99998; id=98; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={4051.1335,8.9594908,2782.4211}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4567.7651,5.7175207,2295.1753}; id=93; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item25 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={4438.2935,36.76088,3111.8247}; azimut=174.99998; id=99; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={4432.877,37.298359,3116.3701}; azimut=174.99998; id=100; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={4428.8921,37.220619,3116.0215}; azimut=174.99998; id=101; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={4424.9072,37.141747,3115.6729}; azimut=174.99998; id=102; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={4420.9224,37.132004,3115.3242}; azimut=174.99998; id=103; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={4414.9453,37.114597,3114.8013}; azimut=174.99998; id=104; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={4852.2007,26.287834,2819.6758}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={4438.2935,36.76088,3111.8247}; id=99; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item26 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4404.3887,6.6520119,2584.2795}; azimut=325; id=105; side="EAST"; vehicle="BTR90"; leader=1; skill=0.2; }; }; class Waypoints { items=1; class Item0 { position[]={4401.2212,6.6218443,2588.1006}; type="SAD"; class Effects { }; showWP="NEVER"; }; }; }; class Item27 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4485.2563,8.9041319,2599.6604}; azimut=4.5185308; id=106; side="EAST"; vehicle="BTR90"; leader=1; skill=0.2; }; }; class Waypoints { items=1; class Item0 { position[]={4485.5811,8.943284,2604.2495}; type="SAD"; class Effects { }; showWP="NEVER"; }; }; }; class Item28 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4663.8374,8.9197416,2485.1428}; azimut=390.67938; id=107; side="EAST"; vehicle="BTR90"; leader=1; skill=0.2; }; }; class Waypoints { items=1; class Item0 { position[]={4667.1387,9,2490.4761}; type="SAD"; class Effects { }; showWP="NEVER"; }; }; }; class Item29 { side="WEST"; class Vehicles { items=13; class Item0 { position[]={5699.0747,318.79218,8727.2686}; azimut=94.400253; special="NONE"; id=108; side="WEST"; vehicle="USMC_Soldier_SL"; player="PLAY CDG"; leader=1; rank="LIEUTENANT"; skill=0.59999996; text="a1"; description="Team Bear"; synchronizations[]={268}; }; class Item1 { position[]={5694.2241,318.8237,8727.7939}; azimut=94.400253; special="NONE"; id=109; side="WEST"; vehicle="USMC_Soldier_TL"; player="PLAY CDG"; rank="SERGEANT"; skill=0.46666664; text="a2"; }; class Item2 { position[]={5694.0718,318.79776,8725.8027}; azimut=94.400253; special="NONE"; id=110; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="a3"; }; class Item3 { position[]={5693.9199,318.77185,8723.8135}; azimut=94.400253; special="NONE"; id=111; side="WEST"; vehicle="USMC_Soldier_LAT"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="a4"; }; class Item4 { position[]={5693.7617,318.74588,8721.8164}; azimut=94.400253; special="NONE"; id=112; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; skill=0.2; text="a5"; }; class Item5 { position[]={5693.5313,318.71744,8718.8223}; azimut=94.400253; special="NONE"; id=113; side="WEST"; vehicle="USMC_Soldier_Medic"; player="PLAY CDG"; rank="SERGEANT"; skill=0.46666664; text="a6"; }; class Item6 { position[]={5693.3823,318.69998,8716.8252}; azimut=94.400253; special="NONE"; id=114; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="a7"; }; class Item7 { position[]={5693.2231,318.68237,8714.8262}; azimut=94.400253; special="NONE"; id=115; side="WEST"; vehicle="USMC_Soldier_LAT"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="a8"; }; class Item8 { position[]={5693.689,318.73181,8720.498}; azimut=90.143974; special="NONE"; id=116; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; skill=0.2; text="a9"; }; class Item9 { position[]={5689.2446,318.86176,8728.1768}; azimut=94.400253; special="NONE"; id=117; side="WEST"; vehicle="USMC_Soldier_TL"; player="PLAY CDG"; rank="SERGEANT"; skill=0.46666664; text="a10"; }; class Item10 { position[]={5689.0845,318.83649,8726.1865}; azimut=94.400253; special="NONE"; id=118; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="a11"; }; class Item11 { position[]={5688.9341,318.81348,8724.1816}; azimut=94.400253; special="NONE"; id=119; side="WEST"; vehicle="USMC_Soldier_LAT"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="a12"; }; class Item12 { position[]={5688.7803,318.79196,8722.2041}; azimut=94.400253; special="NONE"; id=120; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; skill=0.2; text="a13"; }; }; }; class Item30 { side="WEST"; class Vehicles { items=5; class Item0 { position[]={5708.6172,318.26401,8689.6689}; azimut=44.954529; special="NONE"; id=122; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; leader=1; rank="CAPTAIN"; skill=0.2; text="pilot_1"; description="Team Eagle"; }; class Item1 { position[]={5713.0171,318.1662,8684.1982}; azimut=44.954529; special="NONE"; id=123; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; rank="LIEUTENANT"; skill=0.2; text="pilot_2"; }; class Item2 { position[]={5714.8467,318.08356,8679.0635}; azimut=44.954529; special="NONE"; id=124; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; rank="LIEUTENANT"; skill=0.2; text="pilot_3"; }; class Item3 { position[]={5707.8779,318.17722,8683.6377}; azimut=44.954529; special="NONE"; id=125; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; rank="LIEUTENANT"; skill=0.2; text="pilot_4"; }; class Item4 { position[]={5717.1001,318.12656,8682.418}; azimut=44.954529; special="NONE"; id=145; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; rank="LIEUTENANT"; skill=0.2; text="pilot_5"; }; }; }; class Item31 { side="WEST"; class Vehicles { items=13; class Item0 { position[]={5733.335,318.92493,8740.5625}; azimut=174.323; special="NONE"; id=132; side="WEST"; vehicle="USMC_Soldier_SL"; player="PLAY CDG"; leader=1; rank="LIEUTENANT"; skill=0.59999996; text="c1"; description="Team Fox"; synchronizations[]={268}; }; class Item1 { position[]={5733.0015,318.99509,8745.4238}; azimut=174.323; special="NONE"; id=133; side="WEST"; vehicle="USMC_Soldier_TL"; player="PLAYER COMMANDER"; rank="SERGEANT"; skill=0.46666664; text="c2"; }; class Item2 { position[]={5731.0142,318.99274,8745.2295}; azimut=174.32292; special="NONE"; id=134; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="c3"; }; class Item3 { position[]={5729.0269,318.99033,8745.0283}; azimut=174.32292; special="NONE"; id=135; side="WEST"; vehicle="USMC_Soldier_LAT"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="c4"; }; class Item4 { position[]={5727.0352,318.98755,8744.833}; azimut=174.32292; special="NONE"; id=136; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; skill=0.2; text="c5"; }; class Item5 { position[]={5724.043,318.98325,8744.5391}; azimut=174.32292; special="NONE"; id=137; side="WEST"; vehicle="USMC_Soldier_Medic"; player="PLAY CDG"; rank="SERGEANT"; skill=0.46666664; text="c6"; }; class Item6 { position[]={5722.0581,318.98026,8744.3369}; azimut=174.32292; special="NONE"; id=138; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="c7"; }; class Item7 { position[]={5720.063,318.97745,8744.1445}; azimut=174.32292; special="NONE"; id=139; side="WEST"; vehicle="USMC_Soldier_LAT"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="c8"; }; class Item8 { position[]={5718.0698,318.97443,8743.9385}; azimut=174.32292; special="NONE"; id=140; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; skill=0.2; text="c9"; }; class Item9 { position[]={5732.5044,319.05481,8750.4023}; azimut=174.32292; special="NONE"; id=141; side="WEST"; vehicle="USMC_Soldier_TL"; player="PLAY CDG"; rank="SERGEANT"; skill=0.46666664; text="c10"; }; class Item10 { position[]={5730.5156,319.05246,8750.2041}; azimut=174.32292; special="NONE"; id=142; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="c11"; }; class Item11 { position[]={5728.5293,319.05008,8750.0078}; azimut=174.32292; special="NONE"; id=143; side="WEST"; vehicle="USMC_Soldier_LAT"; player="PLAY CDG"; rank="CORPORAL"; skill=0.33333331; text="c12"; }; class Item12 { position[]={5726.5356,319.0477,8749.8096}; azimut=174.32292; special="NONE"; id=144; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; skill=0.2; text="c14"; }; }; }; class Item32 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4832.0205,8.9989138,2502.8977}; azimut=-91.203293; special="NONE"; id=185; side="EAST"; vehicle="T90"; leader=1; lock="UNLOCKED"; skill=0.2; }; }; }; class Item33 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={3533.7476,194.9209,3910.9656}; azimut=174.99998; id=200; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={3528.3311,194.9494,3915.511}; azimut=174.99998; id=201; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={3524.3462,194.88499,3915.1624}; azimut=174.99998; id=202; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={3520.3613,194.33456,3914.8137}; azimut=174.99998; id=203; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={3516.3765,193.86983,3914.4651}; azimut=174.99998; id=204; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={3510.3994,193.18451,3913.9421}; azimut=174.99998; id=205; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={3728.3926,183.97392,3753.1768}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={3533.7476,194.9209,3910.9656}; id=200; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item34 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={3538.7981,185.25691,3830.8838}; azimut=10.445154; id=208; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item35 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={3538.8596,185.39278,3832.2031}; azimut=175; id=207; side="EAST"; vehicle="RU_Soldier_AR"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item36 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={3539.7278,185.42358,3831.4375}; azimut=295.4213; id=206; side="EAST"; vehicle="RU_Soldier_MG"; leader=1; rank="CORPORAL"; skill=0.33333331; init="this setbehaviour ""SAFE"""; }; }; }; class Item37 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={3538.5876,186.31189,3841.355}; azimut=96.898842; id=209; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item38 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={3539.4631,186.32903,3840.4541}; azimut=-24.138231; id=210; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item39 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={3539.9136,186.49184,3841.355}; azimut=-101.25058; id=211; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; }; class Item40 { side="EAST"; class Vehicles { items=3; class Item0 { position[]={7737.2739,235.1806,5416.3169}; azimut=227.621; id=214; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item1 { position[]={7736.5898,235.24651,5412.9663}; azimut=-21.206879; id=213; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item2 { position[]={7733.9922,235.68808,5415.4966}; azimut=104.63003; id=212; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; class Waypoints { items=2; class Item0 { position[]={6927.937,281.44016,6528.708}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={7737.2739,235.1806,5416.3169}; id=214; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item41 { side="EAST"; class Vehicles { items=3; class Item0 { position[]={7289.5596,272.95789,7161.8765}; azimut=172.16106; id=217; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item1 { position[]={7291.9312,273.26157,7159.4131}; azimut=-76.66684; id=216; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item2 { position[]={7288.375,272.77667,7158.708}; azimut=49.17009; id=215; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; class Waypoints { items=2; class Item0 { position[]={7624.1699,201.25188,5995.0181}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={7289.5596,272.95789,7161.8765}; id=217; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item42 { side="EAST"; class Vehicles { items=6; class Item0 { position[]={5373.8984,59.872902,2796.6865}; azimut=174.99998; id=219; side="EAST"; vehicle="RU_Soldier_SL"; leader=1; rank="LIEUTENANT"; skill=0.59999996; }; class Item1 { position[]={5368.4819,59.016708,2801.2319}; azimut=174.99998; id=220; side="EAST"; vehicle="RU_Soldier_AT"; rank="SERGEANT"; skill=0.46666664; }; class Item2 { position[]={5364.4971,58.852226,2800.8833}; azimut=174.99998; id=221; side="EAST"; vehicle="RU_Soldier_GL"; rank="CORPORAL"; skill=0.33333331; }; class Item3 { position[]={5360.5122,58.650295,2800.5347}; azimut=174.99998; id=222; side="EAST"; vehicle="RU_Soldier_MG"; rank="CORPORAL"; skill=0.33333331; }; class Item4 { position[]={5356.5273,58.400917,2800.186}; azimut=174.99998; id=223; side="EAST"; vehicle="RU_Soldier_AR"; skill=0.2; }; class Item5 { position[]={5350.5503,57.974827,2799.6631}; azimut=174.99998; id=224; side="EAST"; vehicle="RU_Soldier"; skill=0.2; }; }; class Waypoints { items=2; class Item0 { position[]={5562.1592,64.400589,2452.2441}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={5373.8984,59.872902,2796.6865}; id=219; type="CYCLE"; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item43 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={4618.3813,9.0122929,2632.8479}; azimut=66.799553; special="NONE"; id=225; side="EAST"; vehicle="T90"; leader=1; lock="UNLOCKED"; skill=0.2; }; }; }; class Item44 { side="EAST"; class Vehicles { items=3; class Item0 { position[]={5865.7217,139.55746,4633.3047}; azimut=227.621; id=228; side="EAST"; vehicle="RU_Soldier"; leader=1; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item1 { position[]={5865.0376,139.7079,4629.9541}; azimut=-21.206879; id=227; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; class Item2 { position[]={5862.4399,139.33459,4632.4844}; azimut=104.63003; id=226; side="EAST"; vehicle="RU_Soldier"; skill=0.2; init="this setbehaviour ""SAFE"""; }; }; class Waypoints { items=2; class Item0 { position[]={5869.9604,137.54549,4930.9932}; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; class Item1 { position[]={5865.7217,139.55746,4633.3047}; id=228; speed="LIMITED"; combat="SAFE"; class Effects { }; showWP="NEVER"; }; }; }; class Item45 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={5576.3794,321.94193,8721.8027}; id=268; side="LOGIC"; vehicle="AmbientCombatManager"; leader=1; skill=0.60000002; synchronizations[]={108,132}; }; }; }; class Item46 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={5915.3975,323.9642,8661.6689}; azimut=174.323; special="NONE"; id=269; side="LOGIC"; vehicle="LocationLogic"; leader=1; skill=0.59999996; init="this exec ""intro.sqs"""; synchronizations[]={268}; }; }; }; }; class Vehicles { items=110; class Item0 { position[]={4885.8506,339,9664.9414}; azimut=-29.639105; id=0; side="EMPTY"; vehicle="C130J"; skill=0.60000002; text="air1"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item1 { position[]={5715.7222,319.57065,8789.2227}; azimut=78.510757; id=1; side="EMPTY"; vehicle="MV22"; skill=0.60000002; text="air2"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item2 { position[]={5701.5122,318.93646,8740.3584}; azimut=112.14605; id=2; side="EMPTY"; vehicle="MH60S"; skill=0.60000002; text="air3"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item3 { position[]={5730.8398,318.03839,8677.2588}; azimut=10.884148; id=3; side="EMPTY"; vehicle="MH60S"; skill=0.60000002; text="air4"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item4 { position[]={4627.9531,8.8326321,2600.0525}; azimut=177.01791; id=63; side="EMPTY"; vehicle="GRAD_CDF"; leader=1; skill=0.2; text="grad1"; }; class Item5 { position[]={4416.9541,6.003788,2325.272}; azimut=66.120117; id=64; side="EMPTY"; vehicle="GRAD_CDF"; leader=1; skill=0.2; text="grad2"; }; class Item6 { position[]={5145.5078,8.8781776,2349.9363}; azimut=212.33701; id=65; side="EMPTY"; vehicle="GRAD_CDF"; leader=1; skill=0.2; text="grad3"; }; class Item7 { position[]={4463.1724,6.2244649,2496.1926}; azimut=148.31491; id=66; side="EMPTY"; vehicle="GRAD_CDF"; leader=1; skill=0.2; text="grad4"; }; class Item8 { position[]={4750.5928,8.7569866,2586.1873}; azimut=210; id=67; side="EMPTY"; vehicle="Su25_Ins"; leader=1; skill=0.2; text="air6"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item9 { position[]={4786.146,8.7569866,2568.4678}; azimut=210; id=68; side="EMPTY"; vehicle="Su25_Ins"; leader=1; skill=0.2; text="air7"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item10 { position[]={4887.4419,339,9838.5176}; azimut=457.8418; id=121; side="EMPTY"; vehicle="76n6ClamShell"; leader=1; skill=1; }; class Item11 { position[]={4989.5513,339,9814.3398}; azimut=122.22452; special="NONE"; id=126; side="EMPTY"; vehicle="MtvrReammo"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item12 { position[]={5788.1763,320.30121,8778.8906}; azimut=284.32639; special="NONE"; id=127; side="EMPTY"; vehicle="MtvrReammo"; leader=1; lock="UNLOCKED"; skill=0.2; init="xhandle = [this,120] execVM ""scripts\vehspawn.sqf"""; }; class Item13 { position[]={4978.4297,339,9818.7148}; azimut=104.42217; special="NONE"; id=128; side="EMPTY"; vehicle="MtvrReammo"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item14 { position[]={5791.5059,320.51929,8787.3818}; azimut=286.69138; special="NONE"; id=129; side="EMPTY"; vehicle="MtvrRepair"; leader=1; lock="UNLOCKED"; skill=0.2; init="xhandle = [this,120] execVM ""scripts\vehspawn.sqf"""; }; class Item15 { position[]={5789.772,320.41168,8783.0566}; azimut=286.69138; special="NONE"; id=130; side="EMPTY"; vehicle="MtvrRefuel"; leader=1; lock="UNLOCKED"; skill=0.2; init="xhandle = [this,120] execVM ""scripts\vehspawn.sqf"""; }; class Item16 { position[]={5774.1567,319.332,8743.7803}; azimut=-154.30365; special="NONE"; id=131; side="EMPTY"; vehicle="HMMWV_Ambulance"; leader=1; skill=0.2; init="xhandle = [this,120] execVM ""scripts\vehspawn.sqf"""; }; class Item17 { position[]={5731.0469,318.04504,8677.6396}; azimut=189.76274; special="NONE"; id=146; side="EMPTY"; vehicle="HeliH"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item18 { position[]={5702.1372,318.9274,8739.666}; azimut=291.02509; special="NONE"; id=147; side="EMPTY"; vehicle="HeliH"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item19 { position[]={5714.4277,319.5625,8788.415}; azimut=291.5267; special="NONE"; id=148; side="EMPTY"; vehicle="HeliH"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item20 { position[]={4978.4443,339,9804.9688}; azimut=-152.15044; special="NONE"; id=149; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item21 { position[]={4983.8447,339,9802.2969}; azimut=-152.15044; special="NONE"; id=150; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item22 { position[]={4980.2402,339,9804.085}; azimut=-152.15044; special="NONE"; id=151; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item23 { position[]={4982.0562,339,9803.1738}; azimut=-152.15044; special="NONE"; id=152; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item24 { position[]={4985.6201,339,9801.4443}; azimut=-152.15044; special="NONE"; id=153; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item25 { position[]={4976.6416,339,9805.8545}; azimut=-152.15044; special="NONE"; id=154; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item26 { position[]={5764.6548,318.64532,8706.1465}; azimut=-156.99699; special="NONE"; id=155; side="EMPTY"; vehicle="LAV25_HQ"; leader=1; lock="UNLOCKED"; skill=0.2; text="HQ"; init="xhandle = [this,120] execVM ""scripts\areyoucommander.sqf""; xhandle = [this,120] execVM ""scripts\vehspawn.sqf"""; }; class Item27 { position[]={4994.2578,339,9748.4395}; azimut=60; special="NONE"; id=156; side="EMPTY"; vehicle="HeliHRescue"; skill=0.46666664; }; class Item28 { position[]={5740.7378,318.77319,8728.415}; azimut=30.460707; id=157; side="EMPTY"; vehicle="FlagCarrierUSA"; skill=0.2; }; class Item29 { position[]={5698.8662,318.51407,8704.2363}; azimut=74.511971; id=158; side="EMPTY"; vehicle="MH60S"; skill=0.60000002; text="air8"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item30 { position[]={5699.7764,318.50589,8704.0791}; azimut=253.3909; special="NONE"; id=159; side="EMPTY"; vehicle="HeliH"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item31 { position[]={4979.8325,339,9807.9883}; azimut=-244.04041; special="NONE"; id=160; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item32 { position[]={4980.6372,339,9807.5908}; azimut=-244.04041; special="NONE"; id=161; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item33 { position[]={4978.1904,339,9808.7646}; azimut=-244.04041; special="NONE"; id=162; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item34 { position[]={4979.0049,339,9808.374}; azimut=-244.04041; special="NONE"; id=163; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item35 { position[]={4977.3677,339,9809.1318}; azimut=-244.04041; special="NONE"; id=164; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item36 { position[]={4985.5825,339,9805.3682}; azimut=-244.04041; special="NONE"; id=165; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item37 { position[]={4986.3901,339,9804.959}; azimut=-244.04041; special="NONE"; id=166; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item38 { position[]={4983.9434,339,9806.1309}; azimut=-244.04041; special="NONE"; id=167; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item39 { position[]={4984.7563,339,9805.7422}; azimut=-244.04041; special="NONE"; id=168; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item40 { position[]={4983.1211,339,9806.5}; azimut=-244.04041; special="NONE"; id=169; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item41 { position[]={4981.6499,339,9811.1338}; azimut=-244.04041; special="NONE"; id=170; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item42 { position[]={4982.4619,339,9810.7354}; azimut=-244.04041; special="NONE"; id=171; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item43 { position[]={4980.0122,339,9811.9043}; azimut=-244.04041; special="NONE"; id=172; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item44 { position[]={4980.8252,339,9811.5186}; azimut=-244.04041; special="NONE"; id=173; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item45 { position[]={4979.188,339,9812.2764}; azimut=-244.04041; special="NONE"; id=174; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item46 { position[]={4987.4023,339,9808.5029}; azimut=-244.04041; special="NONE"; id=175; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item47 { position[]={4988.2153,339,9808.0996}; azimut=-244.04041; special="NONE"; id=176; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item48 { position[]={4985.7686,339,9809.2686}; azimut=-244.04041; special="NONE"; id=177; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item49 { position[]={4986.5811,339,9808.8848}; azimut=-244.04041; special="NONE"; id=178; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item50 { position[]={4984.9424,339,9809.6445}; azimut=-244.04041; special="NONE"; id=179; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item51 { position[]={4989.6479,339,9805.1328}; azimut=-159.14673; special="NONE"; id=180; side="EMPTY"; vehicle="USSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item52 { position[]={4991.4966,339,9804.4258}; azimut=-159.14673; special="NONE"; id=181; side="EMPTY"; vehicle="USSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item53 { position[]={4990.1055,339,9806.3662}; azimut=-159.14673; special="NONE"; id=182; side="EMPTY"; vehicle="USSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item54 { position[]={4991.96,339,9805.6611}; azimut=-159.14673; special="NONE"; id=183; side="EMPTY"; vehicle="USSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item55 { position[]={4950.5786,339,9733.6797}; azimut=-119.04; special="NONE"; id=184; side="EMPTY"; vehicle="Fort_Barracks_USMC"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item56 { position[]={3513.0083,182.40103,3834.3042}; azimut=-132.62218; special="NONE"; id=186; side="EMPTY"; vehicle="Fort_Barracks_USMC"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item57 { position[]={3526.7754,185.20387,3845.6431}; azimut=-132.62218; special="NONE"; id=187; side="EMPTY"; vehicle="Fort_Barracks_USMC"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item58 { position[]={3526.396,183.50206,3827.6848}; azimut=83.120186; special="NONE"; id=188; side="EMPTY"; vehicle="BTR90"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item59 { position[]={3529.5872,184.26581,3832.1553}; azimut=83.120186; special="NONE"; id=189; side="EMPTY"; vehicle="BTR90"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item60 { position[]={3534.2368,185.30219,3837.0352}; azimut=83.120186; special="NONE"; id=190; side="EMPTY"; vehicle="BTR90"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item61 { position[]={3536.8164,184.27312,3822.8989}; azimut=-50.993629; special="NONE"; id=191; side="EMPTY"; vehicle="RUBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item62 { position[]={3538.0796,184.55438,3824.3787}; azimut=-50.993629; special="NONE"; id=192; side="EMPTY"; vehicle="RUBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item63 { position[]={3539.3323,184.83379,3825.8708}; azimut=-50.993629; special="NONE"; id=193; side="EMPTY"; vehicle="RUBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item64 { position[]={3538.3203,184.2832,3821.1807}; azimut=-50.993599; special="NONE"; id=194; side="EMPTY"; vehicle="RULaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item65 { position[]={3539.5422,184.56177,3822.6814}; azimut=-50.993599; special="NONE"; id=195; side="EMPTY"; vehicle="RULaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item66 { position[]={3539.2629,184.31836,3820.4126}; azimut=-50.993599; special="NONE"; id=196; side="EMPTY"; vehicle="RULaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item67 { position[]={3540.4849,184.59044,3821.9133}; azimut=-50.993599; special="NONE"; id=197; side="EMPTY"; vehicle="RULaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item68 { position[]={3542.262,185.1384,3825.6582}; azimut=-50.993599; special="NONE"; id=198; side="EMPTY"; vehicle="RUSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item69 { position[]={3543.5605,185.42239,3827.135}; azimut=-50.993599; special="NONE"; id=199; side="EMPTY"; vehicle="RUSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item70 { position[]={4992.0947,339,9808.3721}; azimut=-159.14673; special="NONE"; id=218; side="EMPTY"; vehicle="USOrdnanceBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item71 { position[]={5654.9854,318.83481,8683.5547}; azimut=-82.694901; special="NONE"; id=229; side="EMPTY"; vehicle="Fort_Barracks_USMC"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item72 { position[]={5661.6387,319.2204,8732.1748}; azimut=-82.694901; special="NONE"; id=230; side="EMPTY"; vehicle="Fort_Barracks_USMC"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item73 { position[]={5764.7739,319.36456,8756.0654}; azimut=124.20442; special="NONE"; id=231; side="EMPTY"; vehicle="MtvrReammo"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item74 { position[]={5753.8135,319.28894,8760.8213}; azimut=106.40205; special="NONE"; id=232; side="EMPTY"; vehicle="MtvrReammo"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item75 { position[]={5753.3511,319.05356,8747.082}; azimut=-150.17061; special="NONE"; id=233; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item76 { position[]={5758.6563,319.07251,8744.2236}; azimut=-150.17061; special="NONE"; id=234; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item77 { position[]={5755.1157,319.05966,8746.1416}; azimut=-150.17061; special="NONE"; id=235; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item78 { position[]={5756.8975,319.06543,8745.165}; azimut=-150.17061; special="NONE"; id=236; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item79 { position[]={5760.4009,319.08109,8743.3096}; azimut=-150.17061; special="NONE"; id=237; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item80 { position[]={5751.5801,319.05487,8748.0332}; azimut=-150.17061; special="NONE"; id=238; side="EMPTY"; vehicle="USLaunchersBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item81 { position[]={5754.8418,319.11902,8750.0566}; azimut=-242.06053; special="NONE"; id=239; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item82 { position[]={5755.6367,319.12158,8749.6221}; azimut=-242.06053; special="NONE"; id=240; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item83 { position[]={5753.229,319.11285,8750.8809}; azimut=-242.06053; special="NONE"; id=241; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item84 { position[]={5754.0278,319.11584,8750.4688}; azimut=-242.06053; special="NONE"; id=242; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item85 { position[]={5752.4204,319.11008,8751.2734}; azimut=-242.06053; special="NONE"; id=243; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item86 { position[]={5760.5,319.14359,8747.2227}; azimut=-242.06053; special="NONE"; id=244; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item87 { position[]={5761.2944,319.14941,8746.793}; azimut=-242.06053; special="NONE"; id=245; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item88 { position[]={5758.8882,319.1355,8748.0518}; azimut=-242.06053; special="NONE"; id=246; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item89 { position[]={5759.689,319.13846,8747.6357}; azimut=-242.06053; special="NONE"; id=247; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item90 { position[]={5758.0767,319.13214,8748.4492}; azimut=-242.06053; special="NONE"; id=248; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item91 { position[]={5756.7705,319.19229,8753.1367}; azimut=-242.06053; special="NONE"; id=249; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item92 { position[]={5757.5659,319.19431,8752.7031}; azimut=-242.06053; special="NONE"; id=250; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item93 { position[]={5755.1592,319.18726,8753.9609}; azimut=-242.06053; special="NONE"; id=251; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item94 { position[]={5755.9595,319.18961,8753.543}; azimut=-242.06053; special="NONE"; id=252; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item95 { position[]={5754.3477,319.18445,8754.3613}; azimut=-242.06053; special="NONE"; id=253; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item96 { position[]={5762.4312,319.22412,8750.3047}; azimut=-242.06053; special="NONE"; id=254; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item97 { position[]={5763.2241,319.23038,8749.8721}; azimut=-242.06053; special="NONE"; id=255; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item98 { position[]={5760.8203,319.21115,8751.126}; azimut=-242.06053; special="NONE"; id=256; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item99 { position[]={5761.6201,319.21738,8750.7148}; azimut=-242.06053; special="NONE"; id=257; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item100 { position[]={5760.0078,319.20462,8751.5293}; azimut=-242.06053; special="NONE"; id=258; side="EMPTY"; vehicle="USBasicWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item101 { position[]={5764.5498,319.20251,8746.8574}; azimut=-157.16687; special="NONE"; id=259; side="EMPTY"; vehicle="USSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item102 { position[]={5766.377,319.21945,8746.0869}; azimut=-157.16687; special="NONE"; id=260; side="EMPTY"; vehicle="USSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item103 { position[]={5765.0552,319.23108,8748.082}; azimut=-157.16687; special="NONE"; id=261; side="EMPTY"; vehicle="USSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item104 { position[]={5766.8828,319.24927,8747.3037}; azimut=-157.16687; special="NONE"; id=262; side="EMPTY"; vehicle="USSpecialWeaponsBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item105 { position[]={5767.1104,319.30008,8750.0088}; azimut=-157.16687; special="NONE"; id=263; side="EMPTY"; vehicle="USOrdnanceBox"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item106 { position[]={4937.4897,339,9776.1924}; azimut=61.076344; id=264; side="EMPTY"; vehicle="MH60S"; skill=0.60000002; text="air3_1"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item107 { position[]={4938.4214,339,9776.2402}; azimut=239.9554; special="NONE"; id=265; side="EMPTY"; vehicle="HeliH"; leader=1; lock="UNLOCKED"; skill=0.2; }; class Item108 { position[]={4926.4912,339,9791.501}; azimut=56.092854; id=266; side="EMPTY"; vehicle="MH60S"; skill=0.60000002; text="air3_2"; init="xhandle = [this,120] execVM ""scripts\areyoupilot.sqf"""; }; class Item109 { position[]={4927.4131,339,9791.6387}; azimut=234.97194; special="NONE"; id=267; side="EMPTY"; vehicle="HeliH"; leader=1; lock="UNLOCKED"; skill=0.2; }; }; class Markers { items=9; class Item0 { position[]={5889.2778,135.53745,4883.3813}; name="tar1"; text="Destroy 256M Tunguska"; type="mil_destroy"; }; class Item1 { position[]={4855.7188,322.43024,5640.4482}; name="tunguska2"; text="Destroy 256M Tunguska"; type="mil_destroy"; }; class Item2 { position[]={5737.5615,318.72928,8725.4385}; name="start"; text="Starting point"; type="mil_start"; colorName="ColorGreen"; }; class Item3 { position[]={4493.8657,5.9921808,2405.864}; name="tar2"; text="Destroy 4 BM-21 Grads"; type="mil_destroy"; }; class Item4 { position[]={5103.8984,352.45493,8343.293}; name="re"; text="Remember: If our HQ vehicle is destroyed, the game is over!"; type="mil_dot"; b=0; }; class Item5 { position[]={4992.291,339,9747.4951}; name="service"; text="Chopper Service"; type="b_service"; }; class Item6 { position[]={5736.7231,318.59521,8716.1094}; name="respawn_west"; type="Empty"; angle=30.460707; }; class Item7 { position[]={3532.4934,183.98964,3825.1165}; name="secondary"; text="Enemy ammunition base"; type="mil_flag"; }; class Item8 { position[]={4740.3936,9,2536.5098}; name="tar3"; text="Drive LAV-25 HQ to here"; type="Empty"; colorName="ColorGreen"; }; }; class Sensors { items=11; class Item0 { position[]={6671.6719,219.3053,4563.9141}; a=5000; b=5000; activationBy="EAST"; timeoutMin=5; timeoutMid=5; timeoutMax=5; interruptable=1; age="UNKNOWN"; expActiv="tank1 action [""engineOff"", vehicle tank1]; tank2 action [""engineOff"", vehicle tank2]; tank3 action [""engineOff"", vehicle tank3]; "; class Effects { }; }; class Item1 { position[]={4529.7852,314.66302,5726.2031}; a=5000; b=5000; activationBy="EAST"; timeoutMin=5; timeoutMid=5; timeoutMax=5; interruptable=1; age="UNKNOWN"; expActiv="tunguska action [""engineOff"", vehicle tunguska]; tunguska2 action [""engineOff"", vehicle tunguska2];"; class Effects { }; }; class Item2 { position[]={4863.9556,339,10036.23}; a=0; b=0; interruptable=1; age="UNKNOWN"; expCond="!alive HQ"; expActiv="hint ""Our only HQ vehicle has been destroyed! MISSION FAILED""; end=1;"; class Effects { track="Track08_Harvest_Red"; }; }; class Item3 { position[]={4870.6333,339,10023.995}; a=50000; b=50000; activationBy="WEST"; timeoutMin=5; timeoutMid=5; timeoutMax=5; interruptable=1; type="LOOSE"; age="UNKNOWN"; expCond="end==1"; class Effects { track="Track08_Harvest_Red"; }; }; class Item4 { position[]={4788.3066,339,9995.2637}; a=0; b=0; interruptable=1; age="UNKNOWN"; expCond="!alive tunguska && !alive tunguska2"; expActiv="hint ""Tunguskas has been destroyed. Objective completed!""; objekti_1 setTaskState ""SUCCEEDED""; tung=1; deletemarker ""tar1""; deletemarker ""tunguska2"";"; class Effects { }; }; class Item5 { position[]={4778.5503,339,9988.5879}; a=0; b=0; interruptable=1; age="UNKNOWN"; expCond="!alive grad1 && !alive grad2 && !alive grad3 && !alive grad4"; expActiv="hint ""Grads has been destroyed. Objective completed!""; objekti_2 setTaskState ""SUCCEEDED""; end1=1; deletemarker ""tar2"";"; class Effects { }; }; class Item6 { position[]={4788.4937,339,9979.7354}; a=0; b=0; timeoutMin=10; timeoutMid=10; timeoutMax=10; interruptable=1; type="END1"; age="UNKNOWN"; expCond="end1==1 && end2==1"; class Effects { }; }; class Item7 { position[]={4994.3052,339,9748.3818}; a=8; b=8; activationBy="WEST"; repeating=1; interruptable=1; age="UNKNOWN"; expCond="(""Helicopter"" countType thislist > 0) && ((getpos (thislist select 0)) select 2 < 1)"; expActiv="xhandle= [(thislist select 0)] execVM ""scripts\chopperload.sqf"";"; class Effects { }; }; class Item8 { position[]={4741.2124,9,2537.0977}; activationBy="ANY"; interruptable=1; age="UNKNOWN"; expCond="HQ in thislist"; expActiv="hint ""Objective completed, HQ has arrived!""; objekti_3 setTaskState ""SUCCEEDED""; hq=1; deletemarker ""tar3"""; class Effects { }; }; class Item9 { position[]={4794.98,339,9988.3955}; a=0; b=0; interruptable=1; age="UNKNOWN"; expCond="tung==1 && hq==1"; expActiv="end2=1"; class Effects { }; }; class Item10 { position[]={5842.7061,320.78369,8693.7451}; a=50000; b=50000; activationBy="ANY"; interruptable=1; age="UNKNOWN"; class Effects { track="Track16_Valentine"; }; }; }; }; class Intro { addOns[]= { "chernarus" }; addOnsAuto[]= { "chernarus" }; randomSeed=8355591; class Intel { startWeather=0.25; forecastWeather=0.25; year=2008; month=10; day=11; hour=9; minute=20; }; }; class OutroWin { addOns[]= { "chernarus" }; addOnsAuto[]= { "chernarus" }; randomSeed=15999394; class Intel { startWeather=0.25; forecastWeather=0.25; year=2008; month=10; day=11; hour=9; minute=20; }; }; class OutroLoose { addOns[]= { "chernarus" }; addOnsAuto[]= { "chernarus" }; randomSeed=15828326; class Intel { startWeather=0.25; forecastWeather=0.25; year=2008; month=10; day=11; hour=9; minute=20; }; }; _vehicle = _this select 0; _delay = _this select 1; _startpos = getpos _vehicle; _startdir = getdir _vehicle; _type = typeof _vehicle; _vehicle setVehicleInit "this addeventhandler [""getin"", {_this execVM ""scripts\commandercheck.sqf"";}]"; processInitCommands; waitUntil {!isNil "helispawn"}; if (!helispawn) exitWith {}; while {true} do { sleep (_delay + random 15); if (({alive _x} count (crew _vehicle)) == 0) then { _disabled = (if (damage _vehicle > 0.9) then {true} else {false}); if (_disabled || !(alive _vehicle)) then { clearVehicleInit _vehicle; deletevehicle _vehicle; sleep 0.5; _vehicle = _type createvehicle _startpos; _vehicle setpos _startpos; _vehicle setdir _startdir; _vehicle setVehicleInit "this addeventhandler [""getin"", {_this execVM ""scripts\commandercheck.sqf"";}]"; processInitCommands; }; }; }; _vehicle = _this select 0; _delay = _this select 1; _startpos = getpos _vehicle; _startdir = getdir _vehicle; _type = typeof _vehicle; _vehicle setVehicleInit "this addeventhandler [""getin"", {_this execVM ""scripts\pilotcheck.sqf"";}]"; processInitCommands; waitUntil {!isNil "helispawn"}; if (!helispawn) exitWith {}; while {true} do { sleep (_delay + random 15); if (({alive _x} count (crew _vehicle)) == 0) then { _disabled = (if (damage _vehicle > 0.9) then {true} else {false}); if (_disabled || !(alive _vehicle)) then { clearVehicleInit _vehicle; deletevehicle _vehicle; sleep 0.5; _vehicle = _type createvehicle _startpos; _vehicle setpos _startpos; _vehicle setdir _startdir; _vehicle setVehicleInit "this addeventhandler [""getin"", {_this execVM ""scripts\pilotcheck.sqf"";}]"; processInitCommands; }; }; }; // by Xeno private ["_config","_count","_i","_magazines","_object","_type","_type_name"]; _object = _this select 0; _type = typeof _object; if (_object isKindOf "ParachuteBase") exitWith {}; if (isNil "x_reload_time_factor") then {x_reload_time_factor = 1;}; //if (!local _object) exitWith {}; if (!alive _object) exitWith {}; _object setFuel 0; _object setVehicleAmmo 1; // Reload turrets / drivers magazine _type_name = typeOf _object; _object vehicleChat format ["Servicing %1... Please stand by...", _type]; _magazines = getArray(configFile >> "CfgVehicles" >> _type >> "magazines"); if (count _magazines > 0) then { _removed = []; { if (!(_x in _removed)) then { _object removeMagazines _x; _removed = _removed + [_x]; }; } forEach _magazines; { _object vehicleChat format ["Reloading %1", _x]; sleep x_reload_time_factor; if (!alive _object) exitWith {}; _object addMagazine _x; } forEach _magazines; }; _count = count (configFile >> "CfgVehicles" >> _type >> "Turrets"); if (_count > 0) then { for "_i" from 0 to (_count - 1) do { scopeName "xx_reload2_xx"; _config = (configFile >> "CfgVehicles" >> _type >> "Turrets") select _i; _magazines = getArray(_config >> "magazines"); _removed = []; { if (!(_x in _removed)) then { _object removeMagazines _x; _removed = _removed + [_x]; }; } forEach _magazines; { _object vehicleChat format ["Reloading %1", _x]; sleep x_reload_time_factor; if (!alive _object) then {breakOut "xx_reload2_xx"}; _object addMagazine _x; sleep x_reload_time_factor; if (!alive _object) then {breakOut "xx_reload2_xx"}; } forEach _magazines; // check if the main turret has other turrets _count_other = count (_config >> "Turrets"); // this code doesn't work, it's not possible to load turrets that are part of another turret :( // nevertheless, I leave it here if (_count_other > 0) then { for "_i" from 0 to (_count_other - 1) do { _config2 = (_config >> "Turrets") select _i; _magazines = getArray(_config2 >> "magazines"); _removed = []; { if (!(_x in _removed)) then { _object removeMagazines _x; _removed = _removed + [_x]; }; } forEach _magazines; { _object vehicleChat format ["Reloading %1", _x]; sleep x_reload_time_factor; if (!alive _object) then {breakOut "xx_reload2_xx"}; _object addMagazine _x; sleep x_reload_time_factor; if (!alive _object) then {breakOut "xx_reload2_xx"}; } forEach _magazines; }; }; }; }; _object setVehicleAmmo 1; // Reload turrets / drivers magazine sleep x_reload_time_factor; if (!alive _object) exitWith {}; _object vehicleChat "Repairing..."; _object setDamage 0; sleep x_reload_time_factor; if (!alive _object) exitWith {}; _object vehicleChat "Refueling..."; while {fuel _object < 0.99} do { //_object setFuel ((fuel _vehicle + 0.1) min 1); _object setFuel 1; sleep 0.01; }; sleep x_reload_time_factor; if (!alive _object) exitWith {}; _object vehicleChat format ["%1 is ready...", _type_name]; if (true) exitWith {}; if (!isServer) exitWith{}; _vehicle = _this select 0; _position = _this select 1; _enterer = _this select 2; _enterer_name = typeOf _enterer; if (_position == "driver") then { if (_enterer_name != "USMC_Soldier_SL") then { driver _vehicle action["Eject",_vehicle]; hint "Remember: Only squad leader can use HQ vehicles."; }; }; if (true) exitWith {};if (!isServer) exitWith{}; _vehicle = _this select 0; _position = _this select 1; _enterer = _this select 2; _enterer_name = typeOf _enterer; if (_position == "driver") then { if (_enterer_name != "USMC_Soldier_Pilot") then { driver _vehicle action["Eject",_vehicle]; hint "Remember: Only pilots can fly."; }; }; if (true) exitWith {};private ["_vehicle", "_delay", "_startpos", "_startdir", "_type", "_disabled", "_empty"]; if (!isServer) exitWith{}; _vehicle = _this select 0; _delay = _this select 1; _startpos = getpos _vehicle; _startdir = getdir _vehicle; _type = typeof _vehicle; while {true} do { sleep (_delay + random 15); if (({alive _x} count (crew _vehicle)) == 0) then { _disabled = (if (damage _vehicle > 0.9) then {true} else {false}); if (_disabled || !(alive _vehicle)) then { deletevehicle _vehicle; sleep 0.5; _vehicle = _type createvehicle _startpos; _vehicle setpos _startpos; _vehicle setdir _startdir; }; }; }; #define ReadAndWrite 0 #define ReadAndCreate 1 #define ReadOnly 2 #define ReadOnlyVerified 3 #define true 1 #define false 0 class KEGsRscText { access = ReadAndWrite; type = 0; idc = -1; style = 0; w = 0.1; h = 0.05; font = "TahomaB"; sizeEx = 0.04; colorBackground[] = {0, 0, 0, 0}; colorText[] = {1, 1, 1, 1}; text = ""; }; class KEGsRscListBox { access = ReadAndWrite; type = 5; style = 0; w = 0.4; h = 0.4; font = "TahomaB"; sizeEx = 0.04; rowHeight = 0; colorText[] = {1, 1, 1, 1}; colorScrollbar[] = {1, 1, 1, 1}; colorSelect[] = {0, 0, 0, 1}; colorSelect2[] = {1, 0.5, 0, 1}; colorSelectBackground[] = {0.6, 0.6, 0.6, 1}; colorSelectBackground2[] = {0.2, 0.2, 0.2, 1}; colorBackground[] = {0, 0, 0, 1}; soundSelect[] = {"", 0.1, 1}; period = 1; }; class KEGsRscActiveText { access = ReadAndWrite; type = 11; style = 2; h = 0.05; w = 0.15; font = "TahomaB"; sizeEx = 0.04; color[] = {1, 1, 1, 1}; colorActive[] = {1, 0.5, 0, 1}; soundEnter[] = {"", 0.1, 1}; soundPush[] = {"", 0.1, 1}; soundClick[] = {"", 0.1, 1}; soundEscape[] = {"", 0.1, 1}; text = ""; default = 0; }; class KEGsRscMapControl { access = ReadAndWrite; type = 101; idc = 51; style = 48; colorBackground[] = {1, 1, 1, 1}; colorText[] = {0, 0, 0, 1}; font = "TahomaB"; sizeEx = 0.04; colorSea[] = {0.56, 0.8, 0.98, 0.5}; colorForest[] = {0.6, 0.8, 0.2, 0.5}; colorRocks[] = {0.5, 0.5, 0.5, 0.5}; colorCountlines[] = {0.65, 0.45, 0.27, 0.5}; colorMainCountlines[] = {0.65, 0.45, 0.27, 1}; colorCountlinesWater[] = {0, 0.53, 1, 0.5}; colorMainCountlinesWater[] = {0, 0.53, 1, 1}; colorForestBorder[] = {0.4, 0.8, 0, 1}; colorRocksBorder[] = {0.5, 0.5, 0.5, 1}; colorPowerLines[] = {0, 0, 0, 1}; colorNames[] = {0, 0, 0, 1}; colorInactive[] = {1, 1, 1, 0.5}; colorLevels[] = {0, 0, 0, 1}; fontLabel = "Zeppelin32"; sizeExLabel = 0.027; fontGrid = "Zeppelin32"; sizeExGrid = 0.027; fontUnits = "Zeppelin32"; sizeExUnits = 0.027; fontNames = "Zeppelin32"; sizeExNames = 0.027; fontInfo = "Zeppelin32"; sizeExInfo = 0.027; fontLevel = "Zeppelin32"; sizeExLevel = 0.027; text = "#(argb,8,8,3)color(1,1,1,1)"; stickX[] = {0.2, {"Gamma", 1, 1.5}}; stickY[] = {0.2, {"Gamma", 1, 1.5}}; ptsPerSquareSea = 6; ptsPerSquareTxt = 8; ptsPerSquareCLn = 8; ptsPerSquareExp = 8; ptsPerSquareCost = 8; ptsPerSquareFor = "4.0f"; ptsPerSquareForEdge = "10.0f"; ptsPerSquareRoad = 2; ptsPerSquareObj = 10; class Bunker { icon = "\ca\ui\data\map_bunker_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 1.5 * 14 * 0.05; coefMin = 0.25; coefMax = 4; }; class Bush { icon = "\ca\ui\data\map_bush_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 0.2 * 14 * 0.05; coefMin = 0.25; coefMax = 4; }; class BusStop { icon = "\ca\ui\data\map_busstop_ca.paa"; color[] = {0, 0, 1, 1}; size = 10; importance = 1 * 10 * 0.05; coefMin = 0.25; coefMax = 4; }; class Cross { icon = "\ca\ui\data\map_cross_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 0.7 * 16 * 0.05; coefMin = 0.25; coefMax = 4; }; class Fortress { icon = "\ca\ui\data\map_bunker_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 2 * 16 * 0.05; coefMin = 0.25; coefMax = 4; }; class Fuelstation { icon = "\ca\ui\data\map_fuelstation_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 2 * 16 * 0.05; coefMin = 0.75; coefMax = 4; }; class Fountain { icon = "\ca\ui\data\map_fountain_ca.paa"; color[] = {0, 0.35, 0.7, 1}; size = 12; importance = 1 * 12 * 0.05; coefMin = 0.25; coefMax = 4; }; class Hospital { icon = "\ca\ui\data\map_hospital_ca.paa"; color[] = {0.78, 0, 0.05, 1}; size = 16; importance = 2 * 16 * 0.05; coefMin = 0.5; coefMax = 4; }; class Chapel { icon = "\ca\ui\data\map_chapel_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 1 * 16 * 0.05; coefMin = 0.9; coefMax = 4; }; class Church { icon = "\ca\ui\data\map_church_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 2 * 16 * 0.05; coefMin = 0.9; coefMax = 4; }; class Lighthouse { icon = "\ca\ui\data\map_lighthouse_ca.paa"; color[] = {0.78, 0, 0.05, 1}; size = 20; importance = 3 * 16 * 0.05; coefMin = 0.9; coefMax = 4; }; class Quay { icon = "\ca\ui\data\map_quay_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 2 * 16 * 0.05; coefMin = 0.5; coefMax = 4; }; class Rock { icon = "\ca\ui\data\map_rock_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 12; importance = 0.5 * 12 * 0.05; coefMin = 0.25; coefMax = 4; }; class Ruin { icon = "\ca\ui\data\map_ruin_ca.paa"; color[] = {0.78, 0, 0.05, 1}; size = 16; importance = 1.2 * 16 * 0.05; coefMin = 1; coefMax = 4; }; class SmallTree { icon = "\ca\ui\data\map_smalltree_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 0.6 * 12 * 0.05; coefMin = 0.25; coefMax = 4; }; class Stack { icon = "\ca\ui\data\map_stack_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 20; importance = 2 * 16 * 0.05; coefMin = 0.9; coefMax = 4; }; class Tree { icon = "\ca\ui\data\map_tree_ca.paa"; color[] = {0.55, 0.64, 0.43, 1}; size = 16; importance = 0.9 * 16 * 0.05; coefMin = 0.25; coefMax = 4; }; class Tourism { icon = "\ca\ui\data\map_tourism_ca.paa"; color[] = {0.78, 0, 0.05, 1}; size = 16; importance = 1 * 16 * 0.05; coefMin = 0.7; coefMax = 4; }; class Transmitter { icon = "\ca\ui\data\map_transmitter_ca.paa"; size = 20; color[] = {0, 0.35, 0.7, 1}; importance = 2 * 16 * 0.05; coefMin = 0.9; coefMax = 4; }; class ViewTower { icon = "\ca\ui\data\map_viewtower_ca.paa"; size = 16; color[] = {0, 0.35, 0.7, 1}; importance = 2.5 * 16 * 0.05; coefMin = 0.5; coefMax = 4; }; class Watertower { icon = "\ca\ui\data\map_watertower_ca.paa"; color[] = {0, 0.35, 0.7, 1}; size = 32; importance = 1.2 * 16 * 0.05; coefMin = 0.9; coefMax = 4; }; class Waypoint { icon = "\ca\ui\data\map_waypoint_ca.paa"; size = 16; color[] = {0, 0.35, 0.7, 1}; importance = 2.5 * 16 * 0.05; coefMin = 0.5; coefMax = 4; }; class WaypointCompleted { icon = "\ca\ui\data\map_waypoint_completed_ca.paa"; size = 16; color[] = {0, 0.35, 0.7, 1}; importance = 2.5 * 16 * 0.05; coefMin = 0.5; coefMax = 4; }; }; class KEGsRscControlsGroup { type = 15; idc = -1; style = 0; x = 0; y = 0; w = 1; h = 1; class VScrollbar { color[] = {1, 1, 1, 1}; width = 0.021; autoScrollRewind=0; autoScrollDelay=5; autoScrollSpeed=-1; }; class HScrollbar { color[] = {1, 1, 1, 1}; height = 0.028; }; class Controls {}; };// BAS f - waitForJIP // Version: 0-0-1 (2007-07-23) // Author(s): Raedor | zx64 // Thanks: zx64 for conversion to include format. // ==================================================================================== if ( (!isServer) && (player != player) ) then { waitUntil {player == player}; waitUntil {time > 10}; }; // JIP CHECK // Prevents the script executing until the player has synchronised correctly: #include "f_waitForJIP.sqf" // Spectating Script for Armed Assault // by Kegetys // Modifyed for Evoloution by KilJoy. //_player = _this select 0; _player = player; _killer = _this select 1; //_seagull = _this select 2; _seagull = vehicle player; // If seagull is valid we came from the respawn scene /* if(typeName _seagull != "string") then { _seagull setpos[-1000, -1000, 1000]; sleep 1.5; titleCut["","BLACK OUT", 1.5]; }; */ // Globals etc. if (isnil'spectate_events') then { spectate_events = compile preprocessFileLineNumbers "spect\specta_events.sqf"; }; //dwarden, time for preprocessing :) KEGsMouseButtons = [false, false]; KEGsMouseScroll = 0; KEGsMouseCoord = [0.5, 0.5]; KEGsUseNVG = false; KEGsMissileCamActive = false; KEGsUseMissileCam = false; KEGsMarkerNames = false; // True = display marker names and arrows KEGsMarkerType = 1; // 0 = disabled, 1 = names, 2 = types KEGsTags =false; // Particlesource tags KEGsAIfilter = true; // Filter AI units (only players displayed) KEGsFORMLfilter = true; KEGsClientAddonPresent = false; // Is client-side addon present? KEGsMarkerSize = 0.8; // Full map marker size KEGsMinimapZoom = 0.5; // Minimap zoom KEGsSelect = 0; // Used to change selected target KEGs1stGunner = false; // Gunner view on 1st person camera? KEGsDroppedCamera = false; // Free camera dropped (non-targeted with free motion)? KEGsCamForward = false; KEGsCamBack = false; KEGsCamLeft = false; KEGsCamRight = false; KEGsNeedUpdateLB = false; _mouseDeltaX = 0; _mouseDeltaY = 0; _sdistance = 1; // camera distance _fangle = 0; // Free camera angle _fangleY = 15; _flybydst = 35; // Distance of flyby camera (adjusted based on target speed) _szoom = 0.976; _markers = []; // Map markers showing positions of all units KEGsTagSources = []; // Particle sources for tags _lastTgt = 0; _nameCache = []; // Used to store valid names since name command cannot be trusted _maxDistance = 50; // Maximum distance for camera _maxZoom = 0.05; // Maximum zoom level _minZoom = 2; // Unit sides shown - Show all if sides not set if(format["%1", KEGsShownSides] == "scalar bool array string 0xe0ffffef") then { if(debug) then {KEGsShownSides = [west, east, resistance, civilian, sideEnemy, sideFriendly, sideLogic,sideUnknown]}else{KEGsShownSides = [west]}; }; if ((name player) in admins) then { KEGsShownSides = [west, east, resistance, civilian, sideEnemy, sideFriendly, sideLogic,sideUnknown]; } else {KEGsShownSides = [(side player)]}; // format ["DwDebug#KEGsShownSides: %1",KEGsShownSides] createVehicleLocal [0,0,0]; deathCam = []; _ehVehicles = []; // Used to keep track of added eventhandlers KEGsAllUnits = []; // Create trigger for retrieving all vehicles _t = createTrigger["EmptyDetector", getpos _player]; _t setTriggerType "NONE"; _t setTriggerStatements ["this", "KEGsAllUnits = thislist", ""]; _t setTriggerArea[50000, 50000, 0, false]; _t setTriggerActivation["ANY", "PRESENT", false]; // Wait until trigger assigns the array waitUntil{count KEGsAllUnits > 0}; if(typeName _seagull != "string") then { sleep 1; titleCut ["","BLACK IN", 8]; } else { titleText["","BLACK IN", 0]; }; // Create dialog & assign keyboard handler createDialog "rscSpectate"; disableSerialization; //Disable saving of script containing this command. After this, script can work with the data types which do not support serialization (UI types). _disp = (findDisplay 55001); _disp displaySetEventHandler["KeyDown", "[""KeyDown"",_this] call spectate_events"]; _disp displaySetEventHandler["KeyUp", "[""KeyUp"",_this] call spectate_events"]; // Hide menus by default ["ToggleCameraMenu",0] call spectate_events; ["ToggleTargetMenu",0] call spectate_events; ["ToggleHelp",0] call spectate_events; ["ToggleMap",1] call spectate_events; // IDC's from rsc _cCamera = 55002; _cTarget = 55003; _cName = 55004; _cLBCameras = 55005; _cLBTargets = 55006; _cCamerasBG = 55007; _cTargetsBG = 55008; _cMap = 55013; _cMapFull = 55014; _cDebug = 55100; _nearest = objNull; // Create cameras _pos = [(getpos _player select 0)-1+random 2, (getpos _player select 1)-1+random 2, 2]; KEGscam_static = "camera" camCreate _pos; KEGscam_target = "camera" camCreate _pos; // "Dummy" target camera for smooth transitions KEGscam_free = "camera" camCreate _pos; KEGscam_flyby = "camera" camCreate _pos; KEGscam_topdown = "camera" camCreate _pos; KEGscam_1stperson = "camera" camCreate _pos; // Dummy camera KEGscam_missile = "camera" camCreate _pos; // Missile camera KEGscam_fullmap = "camera" camCreate _pos; // Full map view camera _cameras = [KEGscam_free, KEGscam_static, KEGscam_flyby, KEGscam_topdown, KEGscam_1stperson]; _cameraNames = ["Free", "Chase", "Flyby", "Top-down", "1st person"]; _dummy = "helihempty" createVehicleLocal [0,0,0]; // Dummy object for distance command KEGscameras = _cameras; // Hack to allow access from events.sqf // Add cameras to listbox lbClear _cLBCameras; {lbAdd[_cLBCameras, _x]} foreach _cameraNames; // Add separator & toggles //_cLbSeparator = lbAdd[_cLBCameras, "---"]; //lbSetColor[_cLBCameras, _cLbSeparator, [0.5, 0.5, 0.5, 0.5]]; _cLbMissileCam = lbAdd[_cLBCameras, "Missile camera"]; _cLbToggleNVG = lbAdd[_cLBCameras, "Night vision"]; _cLbToggleTags = lbAdd[_cLBCameras, "Unit tags"]; _cLbToggleAiFilter = lbAdd[_cLBCameras, "Filter AI"]; _cLbToggleFORMLFilter = lbAdd[_cLBCameras, "FORM Leader"]; KEGs_tgtIdx = 0; KEGs_cameraIdx = 0; showcinemaborder false; lbClear _cLBTargets; onMapSingleClick "[""MapClick"",_pos] call spectate_events"; ["EventLogAdd",["Initialize",[1,1,1,1]]] call spectate_events; /* dwarden, was disabled*/ // Check for client side addon _foo = "KEGsAddon10" createVehicleLocal[-1000,-1000,0]; // //_foo = "KEGspect_bar_yellow" createVehicleLocal[-1000,-1000,0]; //dwarden,was disbled x2 if(!isNull _foo) then { deletevehicle _foo; KEGsClientAddonPresent = true; }; /* ^^ was disabled*/ // Spawn thread to display help reminder after a few seconds [] spawn {sleep(3);if(dialog) then {cutText["\n\n\n\n\nPress F1 for help","PLAIN DOWN", 0.75]}}; _camSelLast = 0; _tgtSelLast = 0; _mouseLastX = 0.5; _mouseLastY = 0.5; _nNoDialog = 0; _lastCheckNewUnits = -100; _lastUpdateMarkers = -100; _lastUpdateMarkerTypes = -100; _lastUpdateTags = -100; _lastAutoUpdateLB = time; KEGsCamPos = [0,0,0]; _cxpos = 0; _cypos = 0; _czpos = 0; _cspeedx = 0; _cspeedy = 0; _tbase = 0.1; _h = 2; // Main loop - Ugly double loop to avoid exit after 10000 iterations while{dialog} do { while{dialog} do { call { // Check for listbox selections if(_camSelLast != lbCurSel _cLBCameras) then { _cs = lbCurSel _cLBCameras; //if(_cs == _cLbSeparator) then {_cs = _camSelLast}; // Special for toggling missile camera if(_cs == _cLbMissileCam) then { KEGsUseMissileCam = !KEGsUseMissileCam; _cs = _camSelLast; }; // Special for toggling NVG if(_cs == _cLbToggleNVG) then { KEGsUseNVG = !KEGsUseNVG; _cs = _camSelLast; }; // Special for toggling tags if(_cs == _cLbToggleTags) then { KEGsTags = !KEGsTags; ["ToggleTags", [KEGsTags, (_cameras select KEGs_cameraIdx)]] call spectate_events; _cs = _camSelLast; }; // Special for toggling AI filter if(_cs == _cLbToggleAiFilter) then { KEGsAIfilter = !KEGsAIfilter; _cs = _camSelLast; KEGsNeedUpdateLB = true; // Request listbox update }; // Special for toggling FORMATION LEADER filter if(_cs == _cLbToggleFORMLFilter) then { KEGsFORMLfilter = !KEGsFORMLfilter; _cs = _camSelLast; KEGsNeedUpdateLB = true; // Request listbox update }; if(_cs != _camSelLast) then { // Selected another camera - disable dropped cam KEGsDroppedCamera = false; }; KEGs_cameraIdx = _cs; }; if(lbCurSel _cLBTargets > lbSize _cLBTargets) then { lbSetCurSel[_cLBTargets, lbSize _cLBTargets]; // Selection outside listbox size }; // Update selected target from listbox if(KEGsSelect != 0) then { lbSetCurSel[_cLBTargets, ((lbCurSel _cLBTargets)+KEGsSelect)]; KEGsSelect = 0; }; if(_tgtSelLast != lbCurSel _cLBTargets) then { KEGsDroppedCamera = false; KEGs_tgtIdx = lbValue[_cLBTargets, (lbCurSel _cLBTargets)]; }; // Process mouse movement _mouseDeltaX = _mouseLastX - (KEGsMouseCoord select 0); _mouseDeltaY = _mouseLastY - (KEGsMouseCoord select 1); if(!(KEGsMouseButtons select 0) and (KEGsMouseButtons select 1)) then { // Right mouse button - Adjust position _fangle = _fangle - (_mouseDeltaX*360); _fangleY=_fangleY + (_mouseDeltaY*180); if(_fangleY > 89) then {_fangleY = 89}; if(_fangleY < -89) then {_fangleY = -89}; }; if((KEGsMouseButtons select 0) and !(KEGsMouseButtons select 1)) then { // Left mouse button - Adjust distance _sdistance = _sdistance - (_mouseDeltaY*10); if(_sdistance > _maxDistance) then {_sdistance = _maxDistance}; if(_sdistance < -_maxDistance) then {_sdistance = -_maxDistance}; }; if(KEGsMouseScroll != 0) then { // Mouse scroll wheel - Adjust distance _sdistance = _sdistance - (KEGsMouseScroll*0.11); KEGsMouseScroll = KEGsMouseScroll * 0.75; if(_sdistance > _maxDistance) then {_sdistance = _maxDistance}; if(_sdistance < -_maxDistance) then {_sdistance = -_maxDistance}; }; if((KEGsMouseButtons select 0) and (KEGsMouseButtons select 1)) then { // Both mousebuttons - Adjust zoom _szoom = _szoom - (_mouseDeltaY*3); if(_szoom > _minZoom) then {_szoom = _minZoom}; if(_szoom < _maxZoom) then {_szoom = _maxZoom}; }; // Check for new units every 2 seconds if(time - _lastCheckNewUnits > 3) then { //dwarden-changed to 3 _lastCheckNewUnits = time; _allUnits = []; _allVehicles = []; // Avoid game logics _foo = []; {if(side _x != sideLogic) then {_foo = _foo + [_x]}} foreach KEGsAllUnits; {_allUnits = _allUnits + (crew _x);_allVehicles = _allVehicles + [_x]} foreach _foo; _newUnits = _allUnits - deathCam; _newVehicles = _allVehicles - _ehVehicles; if(count _newVehicles > 0) then { // Add event handlers to new vehicles _ehVehicles = _ehVehicles + _newVehicles; { // Add fired eventhandler for map indication _fh = _x addeventhandler["fired", {["UnitFired",_this] call spectate_events}]; // _kh = _x addeventhandler["killed", {["UnitKilled",_this] call spectate_events}]; //dwarden, was disabled _x setVariable["KEGsEHfired", _fh]; // _x setVariable["KEGsEHkilled", _kh]; //dwarden,was disabled } foreach _newVehicles; }; if(count _newUnits > 0) then { // Add new units to end of list deathCam = deathCam + _newUnits; // Request listbox update KEGsNeedUpdateLB = true; // Create markers { // Create marker _m = createMarkerLocal[format["KEGsMarker%1", count _markers], getpos _player]; _m setMarkerTypeLocal "Dot"; _m setMarkerSizeLocal[0.4, 0.4]; _markers = _markers + [_m]; // Set marker color if(side _x == west) then {_m setMarkerColorLocal "ColorBlue";}; if(side _x == east) then {_m setMarkerColorLocal "ColorRed";}; if(side _x == resistance) then {_m setMarkerColorLocal "ColorGreen";}; if(side _x == civilian) then {_m setMarkerColorLocal "ColorWhite";}; if(_x in (units group _player)) then {_m setMarkerColorLocal "ColorYellow";}; // Create particle source _s_pos=_x modelToWorld [0,0,0]; _s = "#particlesource" createvehiclelocal _s_pos; //_s = "#particlesource" createvehiclelocal (getpos _x); KEGsTagSources = KEGsTagSources + [[_x, _s]]; // If tags are on, turn them off and back again to include new units if(KEGsTags) then { ["ToggleTags",[false, (_cameras select KEGs_cameraIdx)]] call spectate_events; ["ToggleTags",[true, (_cameras select KEGs_cameraIdx)]] call spectate_events; }; } foreach _newUnits; }; }; // Request listbox update every 4 seconds to update dead units or jip player names if(time - _lastAutoUpdateLB > 4) then { _lastAutoUpdateLB = time; KEGsNeedUpdateLB = true; }; if(KEGsNeedUpdateLB) then { // Clear and re-fill targets listbox lbClear _cLBTargets; for "_idx" from 0 to ((count deathCam)-1) do { _x = deathCam select _idx; _name = ""; if(alive _x) then { // Unit is alive, use name command _name = name _x; _nameCache set[_idx, _name]; } else { // Dead unit, use cached name //_name = _nameCache select _idx; //tmp fix _name = "Unknown"; }; if((!KEGsAIfilter or isPlayer _x) and ((side _x) in KEGsShownSides)) then { _i = lbAdd[_cLBTargets, _name]; lbSetValue[_cLBTargets, _i, _idx]; // Value used to id unit /* if(side _x == east) then {lbSetColor[_cLBTargets, _i, [1,0.8,0.8,1]]}; if(side _x == west) then {lbSetColor[_cLBTargets, _i, [0.8,0.8,1,1]]}; if(side _x == resistance) then {lbSetColor[_cLBTargets, _i, [0.8,1,0.8,1]]}; if(side _x == civilian) then {lbSetColor[_cLBTargets, _i, [1,1,1,1]]}; */ if(side _x == west) then {lbSetColor[_cLBTargets, _i, [0,0,1,1]]}; //if((isFormationLeader _x) and (side _x == west)) then {lbSetColor[_cLBTargets, _i, [0.25,0.25,1,1]]}; if(side _x == east) then {lbSetColor[_cLBTargets, _i, [1,0,0,1]]}; //if((isFormationLeader _x) and (side _x == east)) then {lbSetColor[_cLBTargets, _i, [1,0.25,0.25,1]]}; if(side _x == resistance) then {lbSetColor[_cLBTargets, _i, [0,1,0,1]]}; //if((isFormationLeader _x) and (side _x == resistance)) then {lbSetColor[_cLBTargets, _i, [0.25,1,0.25,1]]}; if(side _x == civilian) then {lbSetColor[_cLBTargets, _i, [0.5,0.5,0.5,1]]}; //if((isFormationLeader _x) and (side _x == civilian)) then {lbSetColor[_cLBTargets, _i, [0.75,0.75,0.75,1]]}; if(_x in (units group _player)) then {lbSetColor[_cLBTargets, _i, [1,1,0,1]]}; // Your group members, yellow if((isPlayer _x) and (_x in (units group _player))) then {lbSetColor[_cLBTargets, _i, [1,0,1,1]]}; // Your group player members, magenta if(_x == _player) then {lbSetColor[_cLBTargets, _i, [0,1,1,1]]}; //yourself,cyan if(not alive _x) then { // Whoops, unit is dead, change color lbSetColor[_cLBTargets, _i, [0.25,0.25,0.25,1]]; }; //if(_x == KEGs_target) then { // Select target // Not a good idea //lbSetCurSel[_cLBTargets, _i]; //}; }; /* experimental formation leader filter */ if((!KEGsFORMLfilter and isFormationLeader _x) and ((side _x) in KEGsShownSides)) then { _i = lbAdd[_cLBTargets, _name]; lbSetValue[_cLBTargets, _i, _idx]; // Value used to id unit //if(side _x == west) then {lbSetColor[_cLBTargets, _i, [0,0,1,1]]}; if((isFormationLeader _x) and (side _x == west)) then {lbSetColor[_cLBTargets, _i, [0.33,0.33,1,1]]}; //if(side _x == east) then {lbSetColor[_cLBTargets, _i, [1,0,0,1]]}; if((isFormationLeader _x) and (side _x == east)) then {lbSetColor[_cLBTargets, _i, [1,0.33,0.33,1]]}; //if(side _x == resistance) then {lbSetColor[_cLBTargets, _i, [0,1,0,1]]}; if((isFormationLeader _x) and (side _x == resistance)) then {lbSetColor[_cLBTargets, _i, [0.33,1,0.33,1]]}; //if(side _x == civilian) then {lbSetColor[_cLBTargets, _i, [0.5,0.5,0.5,1]]}; if((isFormationLeader _x) and (side _x == civilian)) then {lbSetColor[_cLBTargets, _i, [0.75,0.75,0.75,1]]}; //if(_x in (units group player)) then {lbSetColor[_cLBTargets, _i, [1,1,0,1]]}; // Your group members, yellow //if((isPlayer _x) and (_x in (units group player))) then {lbSetColor[_cLBTargets, _i, [1,0,1,1]]}; // Your group player members, magenta //if(_x == _player) then {lbSetColor[_cLBTargets, _i, [0,1,1,1]]}; //yourself,cyan /* if(not alive _x) then { // Whoops, unit is dead, change color lbSetColor[_cLBTargets, _i, [0.25,0.25,0.25,1]]; }; */ }; }; KEGsNeedUpdateLB = false; }; // Check limits if(KEGs_tgtIdx >= count deathCam) then {KEGs_tgtIdx = (count deathCam)-1;}; if(KEGs_tgtIdx < 0) then {KEGs_tgtIdx = 0}; if(KEGs_cameraIdx < 0) then {KEGs_cameraIdx = 0}; if(KEGs_cameraIdx >= count _cameras) then {KEGs_cameraIdx = (count _cameras)-1;}; // Select camera, get target if(!KEGsMissileCamActive) then { (_cameras select KEGs_cameraIdx) cameraEffect["internal", "BACK"]; KEGs_target = deathCam select KEGs_tgtIdx; }; lbSetCurSel[_cLBCameras, KEGs_cameraIdx]; if(lbValue[_cLBTargets, (lbCurSel _cLBTargets)] != KEGs_tgtIdx) then { // Find listbox element with matching value for "_idx" from 0 to (lbSize _cLBTargets) do { if(lbValue[_cLBTargets, (lbCurSel _cLBTargets)] == KEGs_tgtIdx) then { lbSetCurSel[_cLBTargets, _idx]; _found = true; }; }; }; //if(lbCurSel _cLBTargets != KEGs_tgtIdx) then { // lbSetCurSel[_cLBTargets, KEGs_tgtIdx]; // }; camUseNVG KEGsUseNVG; if(ctrlVisible _cMapFull) then { KEGscam_fullmap cameraEffect["internal", "BACK"]; }; //ctrlSetText[_cDebug, format["%1", count _markers]]; // Update tag particlesources if(time - _lastUpdateTags > (1/5)) then { _lastUpdateTags = time; if(KEGsTags) then { ["ToggleTags", [true, (_cameras select KEGs_cameraIdx)]] call spectate_events; }; }; // Update markers 10fps _rate = 30; if(count _markers > 100) then {_rate = 15}; // Update large number of markers less often if(count _markers > 200) then {_rate = 7.5}; // Update very large number of markers less often if(time - _lastUpdateMarkers > (1/_rate)) then { _lastUpdateMarkers = time; // setMarkerTypeLocal is very slow, call it only once per second _doMarkerTypes = false; if(time - _lastUpdateMarkerTypes > 1) then { _lastUpdateMarkerTypes = time; _doMarkerTypes = true; // Allow update marker types }; if(ctrlVisible _cMapFull) then { // Position camera in the middle of full map, for sound and // smoother marker motion (distant objects appear less smooth) _mapFull = _disp displayctrl _cMapFull; _mappos = _mapFull posScreenToWorld[0.5, 0.5]; KEGscam_fullmap camsettarget _mappos; KEGscam_fullmap camsetrelpos [0, -1, 150]; KEGscam_fullmap camcommit 0; }; _markedVehicles = []; // Keep track of vehicles with markers to avoid multiple markers for one vehicle for "_i" from 0 to ((count _markers)-1) do { _m = _markers select _i; _u = (deathCam select _i); _m setMarkerPosLocal (getpos vehicle _u); if(!((side _u) in KEGsShownSides)) then { // We arent' supposed to show this side unit - hide marker if(_doMarkerTypes) then {_m setMarkerTypeLocal "empty"}; } else { if(KEGsMarkerNames or KEGsMinimapZoom < 0.15) then { // Set full screen map marker types - Also zoomed minimap if(ctrlVisible _cMapFull) then { switch(KEGsMarkerType) do { case 0: { // No text _m setMarkerTextLocal ""; }; case 1: { // Names if(alive (vehicle _u)) then { if(name (vehicle _u) != "Error: no unit") then {_m setMarkerTextLocal name ( _u)}; }; }; case 2: { // Types _m setMarkerTextLocal getText (configFile >> "CfgVehicles" >> format["%1", typeOf (vehicle _u)] >> "DisplayName"); }; }; } else { // Minimap with detailed icons but no text _m setMarkerTextLocal ""; }; if(KEGsClientAddonPresent) then { // With client side addon use better icons _type = getText(configFile >> "CfgVehicles" >> format["%1", typeOf (vehicle _u)] >> "simulation"); _icon = "Arrow"; switch(_type) do { case "tank": {_icon = "KEGsTank"}; case "car": {_icon = "KEGsCar"}; case "soldier": {_icon = "KEGsMan"}; case "ship": {_icon = "KEGsShip"}; case "airplane": {_icon = "KEGsPlane"}; case "helicopter": {_icon = "KEGsHelicopter"}; case "motorcycle": {_icon = "KEGsMotorcycle"}; case "parachute": {_icon = "KEGsParachute"}; }; if(_doMarkerTypes) then {_m setMarkerTypeLocal _icon}; _m setMarkerSizeLocal[0.42*KEGsMarkerSize, 0.42*KEGsMarkerSize]; } else { // No client side addon - basic markers if(_doMarkerTypes) then {_m setMarkerTypeLocal "Arrow"}; if(_u == vehicle _u) then { _m setMarkerSizeLocal[0.33*KEGsMarkerSize, 0.27*KEGsMarkerSize]; } else { _m setMarkerSizeLocal[0.42*KEGsMarkerSize, 0.42*KEGsMarkerSize]; }; }; _m setMarkerDirLocal (getdir (vehicle _u)); } else { _m setMarkerTextLocal ""; if(_doMarkerTypes) then {_m setMarkerTypeLocal "Dot"}; _m setMarkerSizeLocal[0.4,0.4]; }; }; if(not alive _u) then { if(KEGsClientAddonPresent) then { // Switch to darker color, cant use side since the unit is already dead if(getMarkerColor _m == "ColorBlue") then {_m setMarkerColorLocal "KEGsDarkBlue"}; if(getMarkerColor _m == "ColorRed") then {_m setMarkerColorLocal "KEGsDarkRed"}; if(getMarkerColor _m == "ColorGreen") then {_m setMarkerColorLocal "KEGsDarkGreen"}; if(getMarkerColor _m == "ColorWhite") then {_m setMarkerColorLocal "KEGsGrey"}; } else { _m setMarkerColorLocal "ColorBlack" }; }; if(vehicle _u in _markedVehicles) then { // This vehicle was already marked, hide marker _m setMarkerTypeLocal "Empty"; } else { _markedVehicles = _markedVehicles + [vehicle _u]; }; }; // Follow target with small map _map = _disp displayctrl _cMap; ctrlMapAnimClear _map; if(KEGsDroppedCamera) then { // Center on dropped camera position _map ctrlMapAnimAdd[0.3, KEGsMinimapZoom, [_cxpos, _cypos,0]]; } else { // Center on target _map ctrlMapAnimAdd[0.3, KEGsMinimapZoom, getpos KEGs_target]; }; ctrlMapAnimCommit _map; }; // Check if target changed and center main map if(KEGs_tgtIdx != _lastTgt) then { _map = _disp displayctrl _cMapFull; ctrlMapAnimClear _map; _map ctrlMapAnimAdd [0.2, 1.0, getpos (deathcam select KEGs_tgtIdx)]; ctrlMapAnimCommit _map; }; if((_cameras select KEGs_cameraIdx) == KEGscam_1stperson) then { // 1st person view if(KEGs1stGunner) then { (vehicle KEGs_target) switchCamera "GUNNER"; } else { (vehicle KEGs_target) switchCamera "INTERNAL"; }; (vehicle KEGs_target) cameraEffect ["terminate","FRONT"]; }; // Get target properties _dir = getdir vehicle KEGs_target; _bb = boundingBox vehicle KEGs_target; //_h = ((_bb select 1) select 2) - ((_bb select 0) select 2); // Height //dwarden,was disabled _foo = ((_bb select 1) select 2) - ((_bb select 0) select 2); // Height _l = ((_bb select 1) select 1) - ((_bb select 0) select 1); // Length _w = ((_bb select 1) select 0) - ((_bb select 0) select 0); // Width _hstr = 0.15; _h = (_foo*_hstr)+(_h*(1-_hstr)); // Set UI texts _role = ""; if(vehicle KEGs_target != KEGs_target) then { /* if(KEGs_target == driver vehicle KEGs_target) then {_role = "(Driver)"}; if(KEGs_target == gunner vehicle KEGs_target) then {_role = "(1st Gunner)"}; //first gunner if(KEGs_target == commander vehicle KEGs_target) then {_role = "(Commander)"}; */ /* added by dwarden */ // _role = AssignedVehicleRole KEGs_target; /* [] - Not assigned to any vehicle ["Driver"] - Assigned as driver ["Cargo"] - Assigned as cargo ["TURRET", [turret path]] - Assigned to a turret ["TURRET", [[0]] - 1st Gunner ["TURRET", [[1]] - 2nd Gunner ["TURRET", [0,0]] - Commander */ _role0 = AssignedVehicleRole KEGs_target; //player groupchat format ["Role: %1",_role0]; //array with gunners and commanders if( _role0 select 0 == "TURRET" ) then { _gunners = _role0 select 1; _gunner = _gunners select 0; _gunnersc = count _gunners; if (_gunnersc==1) then { if (_gunner == 0)then { _role= "(Gunner)"; if (isFormationLeader KEGs_target) then { _role = _role + "(Form.Ldr)"; }; if (Leader KEGs_target == KEGs_Target) then { _role = _role + "(Grp.Ldr)"; }; } else { _role= format ["(Gunner 'position: %1')",(_gunner+1)] ; if (isFormationLeader KEGs_target) then { _role = _role + "(Form.Ldr)"; }; if (Leader KEGs_target == KEGs_Target) then { _role = _role + "(Grp.Ldr)"; }; }; } else { if (_gunnersc == 2) then { _commander = _gunners select 1; if (_commander == 0) then { _role= "(Commander)"; if (isFormationLeader KEGs_target) then { _role = _role + "(Form.Ldr)"; }; if (Leader KEGs_target == KEGs_Target) then { _role = _role + "(Grp.Ldr)"; }; } else { _role= format ["(Commander 'position: %1')",(_commander+1)] ; if (isFormationLeader KEGs_target) then { _role = _role + "(Form.Ldr)"; }; if (Leader KEGs_target == KEGs_Target) then { _role = _role + "(Grp.Ldr)"; }; }; }; }; }; /* if( _role0 select 0 == "TURRET" ) then { if (_gunner == 0) then { _role= "(Gunner)" } else { _role= format ["(Gunner 'position: %1')",(_gunner+1)] }; }; if( _role0 select 0 == "TURRET" ) then { if (_commander == 0) then { _role= "(Commander)" } else { _role= format ["(Commander 'position: %1')",(_commander+1)] }; }; */ if( _role0 select 0 == "Driver" ) then { if( (vehicle KEGs_target) isKindOf "Air" ) then { _altASL = round ((getposAsl (vehicle KEGs_target)) select 2); _objz = "Misc01" createVehicle[ 0,0,0 ]; _objz setPos[ ( getPos (vehicle KEGs_target) )select 0,(getPos (vehicle KEGs_target) )select 1,0 ]; _altAGL = round ((vehicle KEGs_target) distance _objz); deleteVehicle _objz; _role = "(Pilot)" ; if (isFormationLeader KEGs_target) then { _role = _role + "(Form.Ldr)"; }; if (Leader KEGs_target == KEGs_Target) then { _role = _role + "(Grp.Ldr)"; }; _role = format ["%1,altitude(ASL: %2)(AGL: %3)",_role,_altASL,_altAGL]; } else { _role = "(Driver)"; if (isFormationLeader KEGs_target) then { _role = _role + "(Form.Ldr)"; }; if (Leader KEGs_target == KEGs_Target) then { _role = _role + "(Grp.Ldr)"; }; }; }; if( _role0 select 0 == "Cargo" ) then { _role = "(Passenger)"; if (isFormationLeader KEGs_target) then { _role = _role + "(Form.Ldr)"; }; if (Leader KEGs_target == KEGs_Target) then { _role = _role + "(Grp.Ldr)"; }; }; //format ["#Role %1 /+/ In Vehicle: %2 unit got this role: %3",date,(vehicle KEGs_target),(AssignedVehicleRole KEGs_target)] createVehicleLocal [0,0,0]; /* */ }; _name = "Unknown"; if(alive KEGs_target) then { _name = name KEGs_target; if(_name == "Error: no unit") then {_name = "Unknown"}; }; if(KEGsDroppedCamera and isNull _nearest) then { // Dropped camera mode - no target _name = ""; _role = ""; }; if ((vehicle KEGs_target == KEGs_target) and (isFormationLeader KEGs_target)) then { _role = _role + "(Form.Ldr)"; }; if ((vehicle KEGs_target == KEGs_target) and (Leader KEGs_target == KEGs_Target)) then { _role = _role + "(Grp.Ldr)"; }; _healthstatus = damage KEGs_target; /* if ( _damagestatus < 0.0001 ) then { _damagestatus = 0; } ; if ( (_damagestatus < 0.1 ) AND (_damagestatus > 0 ) ) then { _damagestatus = 100*(_damagestatus); }; if ((damage (vehicle KEGs_target) ) > 0.1 ) then { _damagestatus = round (100*(_damagestatus)); }; */ _role = format ["%1,health:(%2)",_role,_healthstatus]; if(vehicle KEGs_target != KEGs_target) then { _fuelstatus = fuel (vehicle KEGs_target); if ( _fuelstatus < 0.0001 ) then { _fuelstatus = 0; } ; if ( (_fuelstatus < 0.1 ) AND (_fuelstatus > 0 ) ) then { _fuelstatus = 100*(_fuelstatus); }; if ((fuel (vehicle KEGs_target) ) > 0.1 ) then { _fuelstatus = round (100*(_fuelstatus)); }; _speed = round (speed (vehicle KEGs_target)); _damagestatus = damage (vehicle KEGs_target); /* if ( _damagestatus < 0.0001 ) then { _damagestatus = 0; } ; if ( (_damagestatus < 0.1 ) AND (_damagestatus > 0 ) ) then { _damagestatus = 100*(_damagestatus); }; if ((damage (vehicle KEGs_target) ) > 0.1 ) then { _damagestatus = round (100*(_damagestatus)); }; */ _role = format ["%1,fuel:(%2),spd:(%3),dmg:(%4)",_role,_fuelstatus,_speed,_damagestatus]; }; if(vehicle KEGs_target != KEGs_target) then { _vwArray = weapons (vehicle KEGs_target); _role = format ["%1,vw:(%2)",_role,_vwArray]; }; _iwArray = weapons KEGs_target; _role = format ["%1,iw:(%2)",_role,_iwArray]; ctrlSetText[_cName, format["%1 %2", _name, _role]]; ctrlSetText[_cCamera, format["Camera: %1", _cameraNames select KEGs_cameraIdx]]; // Set name color to gray if dropped cam _ccName = _disp displayctrl _cName; if(KEGsDroppedCamera) then { _ccName ctrlSetTextColor[0.6, 0.6, 0.6, 1]; } else { _ccName ctrlSetTextColor[1, 1, 1, 1]; }; // Set toggle text color for camera menu if(KEGsUseMissileCam) then {lbSetColor[_cLBCameras, _cLbMissileCam, [1, 0.5, 0, 1]]} else {lbSetColor[_cLBCameras, _cLbMissileCam, [1,1,1,0.33]]}; if(KEGsUseNVG) then {lbSetColor[_cLBCameras, _cLbToggleNVG, [1, 0.5, 0, 1]]} else {lbSetColor[_cLBCameras, _cLbToggleNVG, [1,1,1,0.33]]}; if(KEGsTags) then {lbSetColor[_cLBCameras, _cLbToggleTags, [1, 0.5, 0, 1]]} else {lbSetColor[_cLBCameras, _cLbToggleTags, [1,1,1,0.33]]}; if(KEGsAIfilter) then {lbSetColor[_cLBCameras, _cLbToggleAiFilter, [1, 0.5, 0, 1]]} else {lbSetColor[_cLBCameras, _cLbToggleAiFilter, [1,1,1,0.33]]}; if(KEGsFORMLfilter) then {lbSetColor[_cLBCameras, _cLbToggleFORMLFilter, [1, 0.5, 0, 1]]} else {lbSetColor[_cLBCameras, _cLbToggleFORMLFilter, [1,1,1,0.33]]}; if(KEGsDroppedCamera) then { // Dropped free camera, moved with WSAD keys if(KEGs_cameraIdx != 0) then { // User changed camera KEGsDroppedCamera = false; }; // Adjust speed from buttons held down _spd = (_sdistance max 1)*20; if(KEGsCamForward) then { _cspeedx = _cspeedx + ((_spd*_tbase)*sin _fangle); _cspeedy = _cspeedy + ((_spd*_tbase)*cos _fangle); }; if(KEGsCamBack) then { _cspeedx = _cspeedx + ((-_spd*_tbase)*sin _fangle); _cspeedy = _cspeedy + ((-_spd*_tbase)*cos _fangle); }; if(KEGsCamLeft) then { _cspeedx = _cspeedx + ((_spd*_tbase)*sin (_fangle-90)); _cspeedy = _cspeedy + ((_spd*_tbase)*cos (_fangle-90)); }; if(KEGsCamRight) then { _cspeedx = _cspeedx + ((-_spd*_tbase)*sin (_fangle-90)); _cspeedy = _cspeedy + ((-_spd*_tbase)*cos (_fangle-90)); }; // Move camera _cxpos = _cxpos + (_cspeedx*_tbase); _cypos = _cypos + (_cspeedy*_tbase); _czpos = 0; //_h = 2; // Static camera height _l = 2.2; // Slow down _bstr = 5; _cspeedx = _cspeedx * ((1.0-(_tbase*_bstr)) max 0); _cspeedy = _cspeedy * ((1.0-(_tbase*_bstr)) max 0); // Check for nearby targets _dummy setpos[_cxpos, _cypos, 1.5]; _objs = [_cxpos, _cypos, 1.5] nearObjects 5; _nearest = objNull; _dist = 10; { { _d = _dummy distance _x; if(_d < _dist and _x in deathCam and alive _x) then {_nearest = _x;_dist = _d;}; } foreach crew _x; } foreach _objs; if(!isNull _nearest) then {KEGs_tgtIdx = deathCam find _nearest}; } else { // Set targets for all cameras /* _cxpos = getpos vehicle KEGs_target select 0; _cypos = getpos vehicle KEGs_target select 1; _czpos = getpos vehicle KEGs_target select 2; */ _c_pos=(vehicle KEGs_target) modelToWorld [0,0,0]; _cxpos = _c_pos select 0; _cypos = _c_pos select 1; _czpos = _c_pos select 2; }; KEGscam_target camSetPos[_cxpos, _cypos, _czpos+(_h*0.7)]; KEGscam_static camSetTarget KEGscam_target; KEGscam_free camSetTarget[_cxpos, _cypos, _czpos+(_h*0.6)]; KEGscam_flyby camSetTarget KEGscam_target; KEGscam_topdown camSetTarget[_cxpos, _cypos, _czpos+(_h*0.6)]; {_x camSetFov _szoom} foreach _cameras; // Static camera, follows unit from behind KEGscam_static camSetRelPos[sin(_dir)*(-(_l*_sdistance)), cos(_dir)*(-(_l*_sdistance)), 0.6*abs _sdistance]; // Free camera, user rotates camera around target _d = (-(_l*(0.3 max _sdistance))); _z = sin(_fangleY)*(_l*(0.3 max _sdistance)); KEGscam_free camSetRelPos[(sin(_fangle)*_d)*cos(_fangleY), (cos(_fangle)*_d)*cos(_fangleY), _z]; KEGscam_free camCommit 0; // Flyby camera, no user control except zoom if(KEGs_target distance KEGscam_flyby > (_flybydst*1.1)) then { _flybydst = 20+(speed vehicle KEGs_target); KEGscam_flyby camSetRelPos[sin(_dir)*_flybydst, cos(_dir)*_flybydst, 1+((random _h)*1.5)]; KEGscam_flyby camCommit 0; KEGscam_target camCommit 0; }; // Top-down camera KEGscam_topdown camSetRelPos[0.0, -0.01, 2+((0 max _sdistance)*15)]; KEGscam_topdown camCommit 0; // Commit static and flyby cameras _comSpeed = 1.0 - ((speed vehicle KEGs_target)/70); if(_comSpeed < 0.0) then {_comSpeed = 0.0;}; if((vehicle KEGs_target) distance KEGscam_static > 650) then {_comSpeed = 0}; // Jump immediately to distant target KEGscam_static camCommit _comSpeed/2; KEGscam_target camCommit _comSpeed/3; KEGscam_flyby camCommit _comSpeed; _mouseLastX = KEGsMouseCoord select 0; _mouseLastY = KEGsMouseCoord select 1; _camSelLast = lbCurSel _cLBCameras; _tgtSelLast = lbCurSel _cLBTargets; _lastTgt = KEGs_tgtIdx; }; // Wait a moment. 150fps ought to be enough for everyone :-) _tt = time; sleep(1/180);//1/150 _tbase = time-_tt; }}; // Dialog closed with esc key titleText["","BLACK IN", 0.5]; // Destroy cameras, markers, particlesources, etc. {camDestroy _x} foreach _cameras; deletevehicle KEGscam_target; deletevehicle KEGscam_missile; deletevehicle KEGscam_fullmap; {deletemarkerlocal _x} foreach _markers; deletevehicle _t; camUseNVG false; KEGsTags = false; onMapSingleClick ""; {deletevehicle (_x select 1)} foreach KEGsTagSources; KEGsTagSources = []; // Remove eventhandlers TODO: does this work properly? { _fh = _x getVariable "KEGsEHfired"; // _kh = _x getVariable "KEGsEHkilled"; //dwarden,was disabled if(typeName _fh == "SCALAR") then {_x removeEventHandler["fired", _fh]}; // if(typeName _kh == "SCALAR") then {_x removeEventHandler["killed", _kh]}; //dwarden, was disabled } foreach _ehVehicles; /* // Create a butterfly for player to fly with _bpos = [(getpos (vehicle KEGs_target) select 0)-5+random 10, (getpos (vehicle KEGs_target) select 1)-5+random 10, 1]; _bird = "ButterFly" createVehicle _bpos; _bird setvelocity[0,0,5]; _bird setpos _bpos; _bird switchCamera "INTERNAL"; _bird cameraEffect["terminate","FRONT"]; _bird camCommand "manual on"; KEGsBird = _bird; onMapSingleClick "KEGsBird setpos [_pos select 0, _pos select 1, 2];KEGsBird setvelocity[0,0,5];"; cutText["\n\n\n\n\nLand on ground to return to spectating\nClick at map to jump to location","PLAIN DOWN", 0.75]; // Wait until landed, delete bird & restart script waitUntil{getpos _bird select 2 < 0.05 and speed _bird < 1}; */ _seagull switchCamera "INTERNAL"; _seagull cameraEffect["terminate","FRONT"]; [] call EVO_ResetClick;// // Spectating Script for Armed Assault // by Kegetys // #include "common.hpp" #define BORDERSIZE 0.06 #define BORDERXSIZE 0.015 #define CMENUWIDTH 0.1575 // Camera menu width #define TMENUWIDTH 0.200 // Target menu width #define MENUHEIGHT 0.25 #define MAPWIDTH 0.3 #define MAPHEIGHT 0.28 #define MAPTXTSIZE 0.02 #define ELOGWIDTH 0.900 //#define ELOGHEIGHT 0.1525 #define ELOGHEIGHT 0.0 #define IDC_MAIN 55001 #define IDC_CAMERA 55002 #define IDC_TARGET 55003 #define IDC_NAME 55004 #define IDC_MENUCAM 55005 #define IDC_MENUTGT 55006 #define IDC_MENUCAMB 55007 #define IDC_MENUTGTB 55008 #define IDC_BG1 55009 #define IDC_BG2 55010 #define IDC_TITLE 55011 #define IDC_HELP 55012 #define IDC_MAP 55013 #define IDC_MAPFULL 55014 #define IDC_MAPFULLBG 55015 #define IDC_EVENTLOG 50016 #define IDC_DEBUG 55100 #define COL_ORANGE {1, 0.5, 0, 1} #define COL_GRAY {0.2, 0.2, 0.2, 1} class rscSpectate { idd = IDC_MAIN; movingEnable = false; class controls { class mouseHandler: KEGsRscControlsGroup { class ScrollBar { color[] = {1,1,1,0.6}; colorActive[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.3}; thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; border = "\ca\ui\data\ui_border_scroll_ca.paa"; }; onMouseMoving = "[""MouseMoving"",_this] call spectate_events"; onMouseButtonDown = "[""MouseButtonDown"",_this] call spectate_events"; onMouseButtonUp = "[""MouseButtonUp"",_this] call spectate_events"; onMouseZChanged = "[""MouseZChanged"",_this] call spectate_events"; idc = 123; x = 0.0; y = 0.0; w = 1.0; h = 1.0; colorBackground[] = {0.2, 0.0, 0.0, 0.0}; }; // Borders and title text class BackgroundTop: KEGsRscText { idc = IDC_BG1; x = -3.0; y = -1.0; w = 7.0; h = BORDERSIZE+1; colorBackground[] = {0.0, 0.0, 0.0, 1.0}; }; class BackgroundBottom: BackgroundTop { idc = IDC_BG2; y = 1.0-BORDERSIZE; }; class title : BackgroundTop { idc = IDC_TITLE; colorBackground[] = {0.0, 0.0, 0.0, 0.0}; text = "SPECTATING"; style = 2; sizeEx = 0.035; colorText[] = {1.0, 0.0, 0.0, 1.0}; shadow = true; y = 0.0; h = BORDERSIZE; font = "Zeppelin32"; } // Camera menu class menuCameras : KEGsRscText { idc = IDC_MENUCAMB; style = ST_HUD_BACKGROUND; x = BORDERXSIZE; y = BORDERSIZE; w = CMENUWIDTH; h = MENUHEIGHT; text = ; colorBackground[] = {0, 0, 0, 0.7}; }; class menuCamerasLB : KEGsRscListBox { class ScrollBar { color[] = {1,1,1,0.6}; colorActive[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.3}; thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; border = "\ca\ui\data\ui_border_scroll_ca.paa"; }; autoScrollRewind=0; autoScrollDelay=5; autoScrollSpeed=-1; maxHistoryDelay=1; idc = IDC_MENUCAM; x = BORDERXSIZE; y = BORDERSIZE; w = CMENUWIDTH; h = MENUHEIGHT; colorSelect[] = COL_ORANGE; colorSelect2[] = COL_ORANGE; colorSelectBackground[] = COL_GRAY; colorSelectBackground2[] = COL_GRAY; sizeEx = 0.025; } // Targets menu class menuTargets : KEGsRscText { idc = IDC_MENUTGTB; style = ST_HUD_BACKGROUND; x = 1.0-BORDERXSIZE-TMENUWIDTH; y = BORDERSIZE; w = TMENUWIDTH; h = MENUHEIGHT; text = ; colorBackground[] = {0, 0, 0, 0.7}; }; class menuTargetsLB : KEGsRscListBox { class ScrollBar { color[] = {1,1,1,0.6}; colorActive[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.3}; thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; border = "\ca\ui\data\ui_border_scroll_ca.paa"; }; autoScrollRewind=0; autoScrollDelay=5; autoScrollSpeed=-1; maxHistoryDelay=1; idc = IDC_MENUTGT; x = 1.0-BORDERXSIZE-TMENUWIDTH; y = BORDERSIZE; w = TMENUWIDTH; h = MENUHEIGHT; colorSelect[] = COL_ORANGE; colorSelect2[] = COL_ORANGE; colorSelectBackground[] = COL_GRAY; colorSelectBackground2[] = COL_GRAY; colorScrollbar[] = COL_ORANGE; colorText[] = {1, 1, 1, 1}; sizeEx = 0.025; period = 0; } // Top texts class tCamera : KEGsRscActiveText { idc = IDC_CAMERA; x = BORDERXSIZE; y = 0.0; w = 1.0-(2*BORDERXSIZE); h = BORDERSIZE; text = "Camera"; style = 0; sizeEx = 0.025; color[] = {1.0, 1.0, 1.0, 0.9}; shadow = true; font = "Zeppelin32"; onMouseButtonUp = "[""ToggleCameraMenu"",0] call spectate_events"; } class tTarget : tCamera { idc = IDC_TARGET; text = "Target"; style = 1; onMouseButtonUp = "[""ToggleTargetMenu"",0] call spectate_events"; } // Bottom texts class tName : KEGsRscText { idc = IDC_NAME; x = BORDERXSIZE;y= 1.0-BORDERSIZE; w = 1.0-(BORDERXSIZE); h = BORDERSIZE; text = "Unknown"; style = 0; sizeEx = 0.015; //0.030 colorText[] = {1.0, 1.0, 1.0, 0.9}; font = "Zeppelin32"; } // Help text class tHelp : KEGsRscText { type = 13; idc = IDC_HELP; x = BORDERXSIZE*3;y=BORDERSIZE*3; w = 1-(2*BORDERXSIZE*3); h = 1.0-(2*BORDERSIZE*2); text = "Spectating Script v1.01 by Kegetys

Click at the camera/target text at the top to open camera/target menus.
Units on the map can be clicked to target them

Keyboard controls:
A/D - Previous/Next target
W/S - Previous/Next camera
1-5 - Direct camera change
N - 3D view: Toggle night vision on/off
N - Full map: Toggle marker text off/names/types
T - Toggle unit tags on/off
F - Toggle AI filter on/off
G - Toggle Group/Formation Leader filter on/off
Tab - Toggle UI on/off
M - Toggle map on/full/off
Numpad plus/minus - Increase/decrease full map marker size
Space - Drop camera (W,S,A,D keys = movement)
Space - Toggle gunsight (1st person view)
Esc - Butterfly mode

Mouse controls:
Right button - Rotate camera (free camera mode only)
Left button - Move camera
Left and right button - Zoom

Download the client-side addon from
http://www.kegetys.net for enhanced functionality
Improvement modifications by Dwarden
"; style = 2; sizeEx = 0.025; size = 0.025; colorText[] = {1.0, 1.0, 1.0, 1.0}; color[] = {0.0, 0.0, 0.0, 1.0}; font = "LucidaConsoleB"; class Attributes{ font = "Bitstream"; color = "#ffffff"; align = "left"; shadow = true; }; } // Debug text class tDebug : tCamera { idc = IDC_DEBUG; text = ""; style = 2; x = 0; y = 0; w = 1; h = 1; action =""; } // Map class map : KEGsRscMapControl { colorOutside[] = {0,0,0,1}; colorRailWay[] = {0,0,0,1}; maxSatelliteAlpha = 0; alphaFadeStartScale = 1; alphaFadeEndScale = 1.1; class Task { icon = "\ca\ui\data\map_waypoint_ca.paa"; size = 20; color[] = {0,0.9,0,1}; importance = "1.2 * 16 * 0.05"; coefMin = 0.9; coefMax = 4; }; class CustomMark { icon = "\ca\ui\data\map_waypoint_ca.paa"; color[] = {0,0,1,1}; size = 18; importance = 1; coefMin = 1; coefMax = 1; }; idc = IDC_MAP; x = 1.0-MAPWIDTH;y=1.0-MAPHEIGHT; w = MAPWIDTH; h = MAPHEIGHT; colorBackground[] = {0.7, 0.7, 0.7, 0.75}; //sizeEx = 0.02; sizeExLabel = MAPTXTSIZE; sizeExGrid = MAPTXTSIZE; sizeExUnits = MAPTXTSIZE; sizeExNames = MAPTXTSIZE; sizeExInfo = MAPTXTSIZE; sizeExLevel = MAPTXTSIZE; showCountourInterval = "false"; onMouseZChanged = "[""MouseZChangedminimap"",_this] call spectate_events"; class Command { icon = "#(argb,8,8,3)color(1,1,1,1)"; color[] = {0, 0, 0, 1}; size = 18; importance = 1; coefMin = 1; coefMax = 1; }; class ActiveMarker { color[] = {0.3, 0.1, 0.9, 1}; size = 50; }; } // Fullscreen map class mapFullBG : BackgroundTop { idc = IDC_MAPFULLBG; x = -3;y=-3; w = 9;h=9; colorBackground[] = {0.0, 0.0, 0.0, 1.0}; } class mapFull : map { colorOutside[] = {0,0,0,1}; colorRailWay[] = {0,0,0,1}; maxSatelliteAlpha = 0; alphaFadeStartScale = 1; alphaFadeEndScale = 1.1; showCountourInterval = "true"; idc = IDC_MAPFULL; x = 0;y=BORDERSIZE; w = 1;h=1.0-(BORDERSIZE*2); colorBackground[] = {0.85, 0.85, 0.85, 1.0}; } // Fullscreen event log class mapFullEventLog : KEGsRscListBox { class ScrollBar { color[] = {1,1,1,0.6}; colorActive[] = {1,1,1,1}; colorDisabled[] = {1,1,1,0.3}; thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; border = "\ca\ui\data\ui_border_scroll_ca.paa"; }; autoScrollRewind=0; autoScrollDelay=5; autoScrollSpeed=-1; maxHistoryDelay=1; idc = IDC_EVENTLOG; x = 0; y = 1-ELOGHEIGHT; w = ELOGWIDTH; h = ELOGHEIGHT; colorText[] = {1, 1, 1, 0}; colorSelect[] = {1, 1, 1, 0}; colorSelect2[] = {1, 1, 1, 0}; colorSelectBackground[] = {1, 1, 1, 0}; colorSelectBackground2[] = {1, 1, 1, 0}; colorBackground[] = {0, 0, 0, 0.5}; colorScrollbar[] = {1, 1, 1, 0}; sizeEx = 0.021; } // Dummy element for retrieving mouse events } }comment "for Spectating Script"; comment "Handles events such as keyboard keypresses"; comment "by Kegetys "; _type = _this select 0; _param = _this select 1; _cCamera = 55002; _cTarget = 55003; _cName = 55004; _cLBCameras = 55005; _cLBTargets = 55006; _cCamerasBG = 55007; _cTargetsBG = 55008; _cBG1 = 55009; _cBG2 = 55010; _cTitle = 55011; _cHelp = 55012; _cMap = 55013; _cMapFull = 55014; _cMapFullBG = 55015; _cEventLog = 50016; _cDebug = 55100; _UI = [_cCamera, _cTarget, _cName, _cLBCameras, _cLBTargets, _cCamerasBG, _cTargetsBG, _cBG1, _cBG2, _cTitle, _cHelp]; switch (_type) do { comment "User clicked map, find nearest unit"; case "MapClick": { _dummy = "helihempty" createVehicleLocal _param; _closest = 250; _id = -1; for "_i" from 0 to ((count deathCam)-1) do { if((side (deathCam select _i)) in KEGsShownSides) then { _d = _dummy distance (deathCam select _i); if(_d < _closest) then {_id = _i;_closest = _d}; }; }; if(_id != -1) then { KEGs_tgtIdx = _id; KEGsDroppedCamera = false; if(ctrlVisible _cMapFull) then { comment "Full map -> Small map"; [] spawn {sleep(0.25);["ToggleMap",0] call spectate_events;["ToggleMap",0] call spectate_events;}; } }; deletevehicle _dummy; }; case "KeyDown": { _key = _param select 1; comment "WSAD keys: camera movement in dropped mode"; switch(_key) do { case 32: { KEGsCamRight = true; }; case 30: { KEGsCamLeft = true; }; case 17: { KEGsCamForward = true; }; case 31: { KEGsCamBack = true; }; }; }; comment "Key up - process keypress"; case "KeyUp": { _key = _param select 1; switch(_key) do { case 32: { comment "D = Next target"; if(!KEGsDroppedCamera) then {KEGsSelect = 1}; KEGsCamRight = false; }; case 30: { comment "A = Previous target"; if(!KEGsDroppedCamera) then {KEGsSelect = -1}; KEGsCamLeft = false; }; case 17: { comment "W = Previous camera"; if(!KEGsDroppedCamera) then {KEGs_cameraIdx = KEGs_cameraIdx - 1}; KEGsCamForward = false; }; case 31: { comment "S = Next camera"; if(!KEGsDroppedCamera) then {KEGs_cameraIdx = KEGs_cameraIdx + 1}; KEGsCamBack = false; }; case 20: { comment "T = Toggle tags"; KEGsTags = !KEGsTags; if(!KEGsTags) then { ["ToggleTags", [false, objNull]] call spectate_events; }; }; case 33: { comment "F = Toggle filter"; KEGsAIfilter = !KEGsAIfilter; KEGsNeedUpdateLB = true; }; case 34: { comment "G = Toggle Group/Formation Leader"; KEGsFORMLfilter = !KEGsFORMLfilter; KEGsNeedUpdateLB = true; }; case 57: { comment "Space - drop camera or toggle 1stperson/gunner"; if(KEGscameras select KEGs_cameraIdx == KEGscam_1stperson) then { KEGs1stGunner = !KEGs1stGunner; } else { KEGsDroppedCamera = !KEGsDroppedCamera; if(KEGsDroppedCamera) then { KEGs_cameraIdx = 0; }; }; }; comment "Direct camera change with number keys"; case 2: {KEGs_cameraIdx = 0}; case 3: {KEGs_cameraIdx = 1}; case 4: {KEGs_cameraIdx = 2}; case 5: {KEGs_cameraIdx = 3}; case 6: {KEGs_cameraIdx = 4}; comment "Toggle NVG or map text type"; case 49: { if(ctrlVisible _cMapFull) then { KEGsMarkerType = KEGsMarkerType + 1; if(KEGsMarkerType > 2) then {KEGsMarkerType=0;}; } else { KEGsUseNVG = !KEGsUseNVG; }; }; case 50: {["ToggleMap",0] call spectate_events;}; case 15: {["ToggleUI",0] call spectate_events;}; case 59: {["ToggleHelp",0] call spectate_events;}; comment "Numpad + / -"; case 78: {if(KEGsMarkerSize < 1.7) then {KEGsMarkerSize = KEGsMarkerSize * 1.15}}; case 74: {if(KEGsMarkerSize > 0.7) then {KEGsMarkerSize = KEGsMarkerSize * (1/1.15)}}; } }; comment "Mouse events"; case "MouseMoving": { _x = _param select 1; _y = _param select 2; KEGsMouseCoord = [_x, _y]; }; case "MouseButtonDown": { _x = _param select 2; _y = _param select 3; _button = _param select 1; KEGsMouseButtons set[_button, true]; }; case "MouseButtonUp": { _x = _param select 2; _y = _param select 3; _button = _param select 1; KEGsMouseButtons set[_button, false]; }; case "MouseZChanged": { KEGsMouseScroll = KEGsMouseScroll + (_param select 1); }; case "MouseZChangedminimap": { KEGsMinimapZoom = KEGsMinimapZoom + ((_param select 1)*0.066); if(KEGsMinimapZoom > 0.5) then {KEGsMinimapZoom=0.5}; if(KEGsMinimapZoom < 0.05) then {KEGsMinimapZoom=0.05}; }; case "ToggleCameraMenu": { comment "Hide/unhide camera menu"; if(ctrlVisible _cLBCameras) then { ctrlShow[_cLBCameras, false]; ctrlShow[_cCamerasBG, false]; } else { ctrlShow[_cLBCameras, true]; ctrlShow[_cCamerasBG, true]; }; }; case "ToggleTargetMenu": { comment "Hide/unhide targets menu"; if(ctrlVisible _cLBTargets) then { ctrlShow[_cLBTargets, false]; ctrlShow[_cTargetsBG, false]; } else { ctrlShow[_cLBTargets, true]; ctrlShow[_cTargetsBG, true]; }; }; case "ToggleUI": { comment "Hide/unhide UI"; if(ctrlVisible _cName) then { {ctrlShow[_x, false]} foreach _UI; } else { {ctrlShow[_x, true]} foreach _UI; ctrlShow[_cHelp, false]; ctrlShow[_cLBTargets, false]; ctrlShow[_cTargetsBG, false]; ctrlShow[_cLBCameras, false]; ctrlShow[_cCamerasBG, false]; }; }; case "ToggleHelp": { comment "Hide/unhide Help text"; if(ctrlVisible _cHelp) then { ctrlShow[_cHelp, false]; } else { ctrlShow[_cHelp, true]; }; }; case "ToggleMap": { comment "Hide/unhide Map"; if(ctrlVisible _cMap and ctrlVisible _cMapFull) then { comment "Beginning, hide both"; ctrlShow[_cMap, false]; ctrlShow[_cMapFull, false]; ctrlShow[_cMapFullBG, false]; }; if(ctrlVisible _cMap) then { ctrlShow[_cMap, false]; ctrlShow[_cMapFull, true]; ctrlShow[_cMapFullBG, true]; KEGsMarkerNames = true; KEGsSoundVolume = soundVolume; 0.5 fadeSound 0.2; } else { KEGsMarkerNames = false; if(ctrlVisible _cMapFull) then { ctrlShow[_cMapFull, false]; ctrlShow[_cMapFullBG, false]; 0.5 fadeSound KEGsSoundVolume; } else { ctrlShow[_cMap, true]; }; }; }; comment "Toggle particlesource tags"; case "ToggleTags": { if(_param select 0) then { comment "turn on"; _lifeTime = 1.00; _dropPeriod = 0.05; _size = 1.0; _cam = _param select 1; //_part = "\Ca\Data\ParticleEffects\FireAndSmokeAnim\FireAnim.p3d"; _part = "\Ca\Data\ParticleEffects\Universal\Universal.p3d"; { _u = _x select 0; _s = _x select 1; _size = 1.33 min (((vehicle _u) distance _cam)/100); _color = [1,1,1,1]; /* if(side _u == west) then {_color = [0,0,1,1]}; if(side _u == east) then {_color = [1,0,0,1]}; if(side _u == resistance) then {_color = [0,1,0,1]}; */ if(side _u == west) then {_color = [0,0,1,1]}; if((isFormationLeader _u) and (side _u == west)) then {_color = [0.08,0.08,1,1]}; if(side _u == east) then {_color = [1,0,0,1]}; if((isFormationLeader _u) and (side _u == east)) then {_color = [1,0.08,0.08,1]}; if(side _u == resistance) then {_color = [0,1,0,1]}; if((isFormationLeader _u) and (side _u == resistance)) then {_color = [0.08,1,0.08,1]}; if(side _u == civilian) then {_color = [0.25,0.25,0.25,1]}; if((isFormationLeader _u) and (side _u == civilian)) then {_color = [0.5,0.5,0.5,1]}; //ok if(_u in (units group player)) then {_color = [1,1,0,1]}; // Your group AI members, yellow if((isPlayer _u) and (_u in (units group player))) then {_color = [1,0,1,1]}; // Your group player members, magenta if(_u == player) then {_color = [0,1,1,1]}; //yourself,cyan if(alive _u) then { _colorB = [_color select 0, _color select 1, _color select 2, 0]; _s setParticleParams[[_part,8,4,1], "", "billboard", 1, _lifeTime, [0, 0, 2], [0,0,0], 1, 1, 0.784, 0.1, [_size*2, _size*0.85], [_color, _color, _color, _color, _colorB], [1], 10.0, 0.0, "", "", vehicle _u]; _s setDropInterval _dropPeriod; } else { //let's see dead ones too _colorB = [0.05,0.05,0.05,0]; _s setParticleParams[[_part,8,4,1], "", "billboard", 1, _lifeTime, [0, 0, 2], [0,0,0], 1, 1, 0.784, 0.1, [_size*2, _size*0.85], [_color, _color, _color, _color, _colorB], [1], 10.0, 0.0, "", "", vehicle _u]; _s setDropInterval _dropPeriod; // _s setDropInterval 0; //default }; } foreach KEGsTagSources; } else { comment "turn off"; { _s = _x select 1; _s setDropInterval 0; } foreach KEGsTagSources; }; }; comment "Add string to event log"; case "EventLogAdd": { _txt = _param select 0; _color = _param select 1; _i = lbAdd[_cEventLog, _txt]; lbSetColor[_cEventLog, _i, _color]; lbSetCurSel[_cEventLog, _i]; }; comment "Killed eventhandler, add to log"; case "UnitKilled": { _killed = _param select 0; _killer = _param select 1; _txt = format["%1 (%2) was killed by %3 (%4) (%5m)", _killed, side _killed, _killer, side _killer, _killed distance _killer]; ["EventLogAdd",[_txt,[1,1,1,1]]] call spectate_events; }; comment "Fired eventhandler, display as marker in map"; comment "Also missile camera is handled here"; case "UnitFired": { if(KEGsTags and KEGsClientAddonPresent) then { comment "Bullet path bar"; _u = _param select 0; _w = _param select 1; _a = _param select 4; _o = (_u modelToWorld [0,0,0]) nearestObject _a; //_o = (getpos _u) nearestObject _a; _type = getText(configFile >> "CfgAmmo" >> format["%1", typeOf _o] >> "simulation"); if(_type == "shotBullet") then { _bar = "KEGspect_bar_yellow"; if(side _u == west) then {_bar = "KEGspect_bar_red"}; if(side _u == east) then {_bar = "KEGspect_bar_green"}; _bars = []; for "_i" from 0 to 300 step 5 do { _pos = _o modelToWorld[0,_i+2.5,0]; _b = _bar createVehicleLocal _pos; _b setVectorDir(vectorDir _o); _b setVectorUp(vectorUp _o); _bars = _bars + [_b]; }; _bars spawn {sleep 1.5;{deletevehicle _x} foreach _this}; }; }; if(ctrlVisible _cMapFull) then { _u = _param select 0; _w = _param select 1; _a = _param select 4; _o = (_u modelToWorld [0,0,0]) nearestObject _a; //_o = (getpos _u) nearestObject _a; _len = (speed _o)/15; _dir = getdir _o; comment "Marker for shot effect (stationary circle)"; _m2 = createMarkerLocal[format["KEGsMarkerFired%1", random 10000], getpos _o]; _m2 setMarkerColorLocal "ColorYellow"; _m2 setMarkerSizeLocal[0.45, 0.45]; _m2 setMarkerTypeLocal "Select"; _type = getText(configFile >> "CfgAmmo" >> format["%1", typeOf _o] >> "simulation"); _name = getText(configFile >> "CfgWeapons" >> format["%1", _w] >> "displayName"); comment "Marker for round itself, for bullet display line, everything else a named marker"; if(_type == "shotMissile" OR _type == "shotRocket" OR _type == "shotShell" OR _type == "shotTimeBomb" OR _type == "shotPipeBomb" OR _type == "shotMine" OR _type == "shotSmoke") then { _m = createMarkerLocal[format["KEGsMarkerFired%1", random 10000], [(getpos _o select 0)+(sin _dir)*_len, (getpos _o select 1)+(cos _dir)*_len, 0]]; _m setMarkerTypeLocal "Dot"; _m setMarkerColorLocal "ColorWhite"; _m setMarkerSizeLocal[0.25,0.5]; _m setMarkerTextLocal _name; _m2 spawn {sleep(2);deleteMarkerLocal _this}; [_m, _o] spawn { _m = _this select 0; _o = _this select 1; while{!isNull _o} do { _m setMarkerPosLocal getpos _o; _m setMarkerDirLocal getdir _o; sleep(1/50); }; _m setMarkerColorLocal "ColorBlack"; sleep(3); deleteMarkerLocal _m; }; } else { _m = createMarkerLocal[format["KEGsMarkerFired%1", random 10000], [(getpos _o select 0)+(sin _dir)*_len, (getpos _o select 1)+(cos _dir)*_len, 0]]; _m setMarkerShapeLocal "RECTANGLE"; _m setMarkerSizeLocal[0.25,_len]; _m setMarkerDirLocal (getdir _o); if(KEGsClientAddonPresent) then { _m setMarkerColorLocal "KEGsDarkYellow"; [_m2, _m] spawn {sleep(1.0);(_this select 1) setMarkerColorLocal "KEGsYellowAlpha";sleep(1);deletemarkerLocal (_this select 1);deletemarkerLocal (_this select 0);}; } else { _m setMarkerColorLocal "ColorYellow"; [_m2, _m] spawn {sleep(1.0);(_this select 1) setmarkerbrushLocal "grid";sleep(1);deletemarkerLocal (_this select 1);deletemarkerLocal (_this select 0);}; }; } }; comment "Missile camera"; if(KEGsUseMissileCam and !KEGsDroppedCamera) then { _u = _param select 0; _w = _param select 1; _a = _param select 4; _o = (_u modelToWorld [0,0,0]) nearestObject _a; //_o = (getpos _u) nearestObject _a; _type = getText(configFile >> "CfgAmmo" >> format["%1", typeOf _o] >> "simulation"); _name = getText(configFile >> "CfgWeapons" >> format["%1", _w] >> "displayName"); if(_u == vehicle KEGs_target and (_type == "shotMissile" or _type == "shotRocket") and !KEGsMissileCamActive) then { KEGsMissileCamActive = true; cutText[_name,"PLAIN DOWN", 0.10]; KEGscam_missile switchCamera "INTERNAL"; KEGscam_missile cameraEffect["internal", "BACK"]; KEGscam_missile camsettarget _o; KEGscam_missile camsetrelpos[0,0,0]; KEGscam_missile camSetFov 0.5; KEGscam_missile camCommit 0; KEGscam_missile camSetFov 1.25; KEGscam_missile camCommit 2; _o spawn { while{!isNull _this and speed _this > 1} do { KEGscam_missile camsettarget _this; KEGscam_missile camsetrelpos[0,-0.1,0.20]; KEGscam_missile camCommit 0; sleep(0.01); }; sleep(3); KEGsMissileCamActive = false; }; } }; }; default { hint "Unknown event"; }; } // JIP CHECK // Prevents the script executing until the player has synchronised correctly: #include "f_waitForJIP.sqf" // Connect handler for spectating script, check if camera on seagull for first 10 seconds and launch spectating script for "_i" from 0 to 20 do { scopeName "SpectaLoop"; if(typeof cameraOn == "SeaGull") then {[cameraOn,cameraOn,cameraOn] execVM "spect\specta.sqf";breakOut "SpectaLoop"}; sleep 0.5; };0蓶Ê{#PHÛ