diff --git a/AUTHORS.txt b/AUTHORS.txt index f62618e359..b931d774ac 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -6,12 +6,22 @@ # request, preferably including an email address. # CORE TEAM +bux578 commy2 esteldunedain Felix Wiegand Garth "L-H" de Wet -bux578 +Giallustio +Glowbal +Janus +Kieran +NouberNou PabstMirror +Ruthberg +tpM +ViperMaul +VKing +Walter Pearce # CONTRIBUTORS 11RDP-LoupVert diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index 89ab74d5bb..10b2d0285f 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -149,11 +149,6 @@ class CfgVehicles { MACRO_LOADUNLOADCAPTIVE }; - class StaticMortar; - class Mortar_01_base_F: StaticMortar { - MACRO_LOADUNLOADCAPTIVE - }; - class Box_NATO_Support_F; class ACE_Box_Misc: Box_NATO_Support_F { class TransportItems { diff --git a/addons/captives/functions/fnc_handleOnUnconscious.sqf b/addons/captives/functions/fnc_handleOnUnconscious.sqf index 6d5ba1f47c..1924b6bb47 100644 --- a/addons/captives/functions/fnc_handleOnUnconscious.sqf +++ b/addons/captives/functions/fnc_handleOnUnconscious.sqf @@ -16,8 +16,11 @@ */ #include "script_component.hpp" -PARAMS_2(_unit,_isUnconc); +EXPLODE_2_PVT(_this,_unit,_isUnconc); +diag_log "handleOnUnconscious"; +diag_log _this; +diag_log _unit; if (!local _unit) exitWith {}; if (_isUnconc) then { diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index 3304c4d69a..f09dae0eb3 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -106,60 +106,31 @@ GVAR(OldPlayerWeapon) = currentWeapon ACE_player; // PFH to raise varios events [{ - if(!isNil "ACE_player" && { !isNull ACE_player }) then { - // "playerInventoryChanged" event - _newPlayerInventory = [ACE_player] call FUNC(getAllGear); - if !(_newPlayerInventory isEqualTo GVAR(OldPlayerInventory)) then { - // Raise ACE event locally - GVAR(OldPlayerInventory) = _newPlayerInventory; - ["playerInventoryChanged", [ACE_player, _newPlayerInventory]] call FUNC(localEvent); - }; - // "playerVisionModeChanged" event - _newPlayerVisionMode = currentVisionMode ACE_player; - if !(_newPlayerVisionMode isEqualTo GVAR(OldPlayerVisionMode)) then { - // Raise ACE event locally - GVAR(OldPlayerVisionMode) = _newPlayerVisionMode; - ["playerVisionModeChanged", [ACE_player, _newPlayerVisionMode]] call FUNC(localEvent); - }; - - // "inventoryDisplayChanged" event - _newInventoryDisplayIsOpen = !(isNull findDisplay 602); - if !(_newInventoryDisplayIsOpen isEqualTo GVAR(OldInventoryDisplayIsOpen)) then { - // Raise ACE event locally - GVAR(OldInventoryDisplayIsOpen) = _newInventoryDisplayIsOpen; - ["inventoryDisplayChanged", [ACE_player, _newInventoryDisplayIsOpen]] call FUNC(localEvent); - }; - - // "playerVehicleChanged" event - _newPlayerVehicle = vehicle ACE_player; - if !(_newPlayerVehicle isEqualTo GVAR(OldPlayerVehicle)) then { - // Raise ACE event locally - GVAR(OldPlayerVehicle) = _newPlayerVehicle; - ["playerVehicleChanged", [ACE_player, _newPlayerVehicle]] call FUNC(localEvent); - }; - - // "playerTurretChanged" event - _newPlayerTurret = [ACE_player] call FUNC(getTurretIndex); - if !(_newPlayerTurret isEqualTo GVAR(OldPlayerTurret)) then { - // Raise ACE event locally - GVAR(OldPlayerTurret) = _newPlayerTurret; - ["playerTurretChanged", [ACE_player, _newPlayerTurret]] call FUNC(localEvent); - }; - - // "playerWeaponChanged" event - _newPlayerWeapon = currentWeapon ACE_player; - if (_newPlayerWeapon != GVAR(OldPlayerWeapon)) then { - // Raise ACE event locally - GVAR(OldPlayerWeapon) = _newPlayerWeapon; - ["playerWeaponChanged", [ACE_player, _newPlayerWeapon]] call FUNC(localEvent); - }; + // "playerInventoryChanged" event + _newPlayerInventory = [ACE_player] call FUNC(getAllGear); + if !(_newPlayerInventory isEqualTo GVAR(OldPlayerInventory)) then { + // Raise ACE event locally + GVAR(OldPlayerInventory) = _newPlayerInventory; + ["playerInventoryChanged", [ACE_player, _newPlayerInventory]] call FUNC(localEvent); }; - - // - // These events can fire on a null player object - // - + + // "playerVisionModeChanged" event + _newPlayerVisionMode = currentVisionMode ACE_player; + if !(_newPlayerVisionMode isEqualTo GVAR(OldPlayerVisionMode)) then { + // Raise ACE event locally + GVAR(OldPlayerVisionMode) = _newPlayerVisionMode; + ["playerVisionModeChanged", [ACE_player, _newPlayerVisionMode]] call FUNC(localEvent); + }; + + // "inventoryDisplayChanged" event + _newInventoryDisplayIsOpen = !(isNull findDisplay 602); + if !(_newInventoryDisplayIsOpen isEqualTo GVAR(OldInventoryDisplayIsOpen)) then { + // Raise ACE event locally + GVAR(OldInventoryDisplayIsOpen) = _newInventoryDisplayIsOpen; + ["inventoryDisplayChanged", [ACE_player, _newInventoryDisplayIsOpen]] call FUNC(localEvent); + }; + // "zeusDisplayChanged" event _newZeusDisplayIsOpen = !(isNull findDisplay 312); if !(_newZeusDisplayIsOpen isEqualTo GVAR(OldZeusDisplayIsOpen)) then { @@ -167,7 +138,7 @@ GVAR(OldPlayerWeapon) = currentWeapon ACE_player; GVAR(OldZeusDisplayIsOpen) = _newZeusDisplayIsOpen; ["zeusDisplayChanged", [ACE_player, _newZeusDisplayIsOpen]] call FUNC(localEvent); }; - + // "cameraViewChanged" event _newCameraView = cameraView; if !(_newCameraView isEqualTo GVAR(OldCameraView)) then { @@ -175,7 +146,31 @@ GVAR(OldPlayerWeapon) = currentWeapon ACE_player; GVAR(OldCameraView) = _newCameraView; ["cameraViewChanged", [ACE_player, _newCameraView]] call FUNC(localEvent); }; - + + // "playerVehicleChanged" event + _newPlayerVehicle = vehicle ACE_player; + if !(_newPlayerVehicle isEqualTo GVAR(OldPlayerVehicle)) then { + // Raise ACE event locally + GVAR(OldPlayerVehicle) = _newPlayerVehicle; + ["playerVehicleChanged", [ACE_player, _newPlayerVehicle]] call FUNC(localEvent); + }; + + // "playerTurretChanged" event + _newPlayerTurret = [ACE_player] call FUNC(getTurretIndex); + if !(_newPlayerTurret isEqualTo GVAR(OldPlayerTurret)) then { + // Raise ACE event locally + GVAR(OldPlayerTurret) = _newPlayerTurret; + ["playerTurretChanged", [ACE_player, _newPlayerTurret]] call FUNC(localEvent); + }; + + // "playerWeaponChanged" event + _newPlayerWeapon = currentWeapon ACE_player; + if (_newPlayerWeapon != GVAR(OldPlayerWeapon)) then { + // Raise ACE event locally + GVAR(OldPlayerWeapon) = _newPlayerWeapon; + ["playerWeaponChanged", [ACE_player, _newPlayerWeapon]] call FUNC(localEvent); + }; + }, 0, []] call cba_fnc_addPerFrameHandler; [QGVAR(StateArrested),false,true,QUOTE(ADDON)] call FUNC(defineVariable); diff --git a/addons/common/functions/fnc_localEvent.sqf b/addons/common/functions/fnc_localEvent.sqf index cc136d2083..0b8c218eca 100644 --- a/addons/common/functions/fnc_localEvent.sqf +++ b/addons/common/functions/fnc_localEvent.sqf @@ -12,8 +12,7 @@ */ #include "script_component.hpp" -_eventName = _this select 0; -_eventArgs = _this select 1; +PARAMS_2(_eventName,_eventArgs); _eventNames = GVAR(events) select 0; _eventIndex = _eventNames find _eventName; diff --git a/addons/dragging/CfgEventHandlers.hpp b/addons/dragging/CfgEventHandlers.hpp index f568eace4e..e5c454e969 100644 --- a/addons/dragging/CfgEventHandlers.hpp +++ b/addons/dragging/CfgEventHandlers.hpp @@ -23,11 +23,6 @@ class Extended_Init_EventHandlers { init = QUOTE(_this call DFUNC(initObject)); }; }; - class StaticMortar { - class ADDON { - init = QUOTE(_this call DFUNC(initObject)); - }; - }; class ReammoBox_F { class ADDON { init = QUOTE(_this call DFUNC(initObject)); diff --git a/addons/interact_menu/XEH_clientInit.sqf b/addons/interact_menu/XEH_clientInit.sqf index 501cc9eb91..8d6ef78a79 100644 --- a/addons/interact_menu/XEH_clientInit.sqf +++ b/addons/interact_menu/XEH_clientInit.sqf @@ -18,11 +18,37 @@ addMissionEventHandler ["Draw3D", DFUNC(render)]; ["ACE3", QGVAR(InteractKey), (localize "STR_ACE_Interact_Menu_InteractKey"), -{[0] call FUNC(keyDown)}, +{ + // Conditions: canInteract + if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false}; + // Statement + [0] call FUNC(keyDown) +}, {[0] call FUNC(keyUp)}, [219, [false, false, false]], false] call cba_fnc_addKeybind; //Left Windows Key ["ACE3", QGVAR(SelfInteractKey), (localize "STR_ACE_Interact_Menu_SelfInteractKey"), -{[1] call FUNC(keyDown)}, +{ + // Conditions: canInteract + if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false}; + // Statement + [1] call FUNC(keyDown) +}, {[1] call FUNC(keyUp)}, [219, [false, true, false]], false] call cba_fnc_addKeybind; //Left Windows Key + Ctrl/Strg + + +// Listens for the falling unconscious event, just in case the menu needs to be closed +["medical_onUnconscious", { + diag_log ["im_onUn 1:",_this]; + // If no menu is open just quit + if (GVAR(openedMenuType) < 0) exitWith {}; + + EXPLODE_2_PVT(_this,_unit,_isUnconscious); + + if (_unit != ACE_player || !_isUnconscious) exitWith {}; + + GVAR(actionSelected) = false; + [] call FUNC(keyUp); + diag_log ["im_onUn 2:",_this]; +}] call EFUNC(common,addEventhandler); diff --git a/addons/interact_menu/functions/fnc_renderActionPoints.sqf b/addons/interact_menu/functions/fnc_renderActionPoints.sqf index a2f9d929c1..e14b69472c 100644 --- a/addons/interact_menu/functions/fnc_renderActionPoints.sqf +++ b/addons/interact_menu/functions/fnc_renderActionPoints.sqf @@ -89,7 +89,7 @@ _fnc_renderSelfActions = { { _action = _x; - _pos = if !(visibleMap) then { + _pos = if !(GVAR(useCursorMenu)) then { (((positionCameraToWorld [0, 0, 0]) call EFUNC(common,positionToASL)) vectorAdd GVAR(selfMenuOffset)) call EFUNC(common,ASLToPosition) } else { [0.5, 0.5] diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index 8054e9d800..1cfc13923e 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -35,7 +35,7 @@ GVAR(iconCount) = GVAR(iconCount) + 1; if(_icon == "") then { _icon = DEFAULT_ICON; }; -_text = format ["
%4", _icon, _color, _color, _text]; +_text = format ["
%4", _icon, _color, _color, _text]; _ctrl ctrlSetStructuredText (parseText _text); _ctrl ctrlSetPosition [(_sPos select 0)-(0.125*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.25*SafeZoneW, 0.1*SafeZoneW]; //_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1]; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 02dd078a2b..e85300f301 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -525,26 +525,6 @@ class CfgVehicles { }; }; - class StaticMortar; - class Mortar_01_base_F: StaticMortar { - class ACE_Actions { - class ACE_MainActions { - displayName = "$STR_ACE_Interaction_MainAction"; - selection = "gunnerview"; - distance = 2; - condition = "true"; - }; - }; - class ACE_SelfActions { - class ACE_Passengers { - displayName = "$STR_ACE_Interaction_Passengers"; - condition = "true"; - statement = ""; - insertChildren = QUOTE(_this call FUNC(addPassengersActions)); - }; - }; - }; - class thingX; class ReammoBox_F: thingX { class ACE_Actions { diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index 4255e599ff..af5981ebba 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -2155,18 +2155,4 @@ class CfgVehicles { }; }; }; - - class StaticMortar; - class Mortar_01_base_F: StaticMortar { - class ACE_Actions { - class ACE_MainActions { - class ACE_UnloadPatients { - displayName = "$STR_ACE_Medical_UnloadPatient"; - condition = "true"; - statement = ""; - insertChildren = QUOTE(_this call FUNC(addUnloadPatientActions)); - }; - }; - }; - }; }; diff --git a/addons/medical/XEH_postInit.sqf b/addons/medical/XEH_postInit.sqf index eedf7e08bb..77fed65110 100644 --- a/addons/medical/XEH_postInit.sqf +++ b/addons/medical/XEH_postInit.sqf @@ -241,3 +241,7 @@ if (USE_WOUND_EVENT_SYNC) then { {((_this select 0) getvariable ["ACE_isDead", false])}, {(((_this select 0) getvariable [QGVAR(airwayStatus), 100]) < 80)} ] call FUNC(addUnconsciousCondition); + +// Prevent all types of interaction while unconscious +// @todo: probably remove this when CBA keybind hold key works properly +["isNotUnconscious", {!((_this select 0) getVariable ["ACE_isUnconscious", false])}] call EFUNC(common,addCanInteractWithCondition); diff --git a/addons/testmissions/$PBOPREFIX$ b/addons/testmissions/$PBOPREFIX$ new file mode 100644 index 0000000000..30f861b8ff --- /dev/null +++ b/addons/testmissions/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\Addons\testmissions \ No newline at end of file diff --git a/addons/testmissions/MPMissions/ACETestingMap1.Stratis/description.ext b/addons/testmissions/MPMissions/ACETestingMap1.Stratis/description.ext new file mode 100644 index 0000000000..d61b2cf200 --- /dev/null +++ b/addons/testmissions/MPMissions/ACETestingMap1.Stratis/description.ext @@ -0,0 +1,17 @@ +enableDebugConsole = 2; //note security risk + +// respawn = "GROUP"; +respawn = "BASE"; +// respawn = "BIRD"; +respawnDelay = 2; + +class Header { + gameType = Coop; + minPlayers = 1; + maxPlayers = 491; +}; + +onLoadName = "ACE3 Testing"; +// onLoadMission = ""; +// author = ""; +// loadScreen = ""; \ No newline at end of file diff --git a/addons/testmissions/MPMissions/ACETestingMap1.Stratis/init.sqf b/addons/testmissions/MPMissions/ACETestingMap1.Stratis/init.sqf new file mode 100644 index 0000000000..f2c95b8ca2 --- /dev/null +++ b/addons/testmissions/MPMissions/ACETestingMap1.Stratis/init.sqf @@ -0,0 +1 @@ +enableSaving [false, false]; diff --git a/addons/testmissions/MPMissions/ACETestingMap1.Stratis/mission.sqm b/addons/testmissions/MPMissions/ACETestingMap1.Stratis/mission.sqm new file mode 100644 index 0000000000..08bba0bcb1 --- /dev/null +++ b/addons/testmissions/MPMissions/ACETestingMap1.Stratis/mission.sqm @@ -0,0 +1,1248 @@ +version=12; +class Mission +{ + addOns[]= + { + "A3_Characters_F_BLUFOR", + "a3_characters_f", + "a3_map_stratis", + "A3_armor_f_beta_APC_Tracked_02", + "A3_Characters_F_INDEP", + "ace_vehiclelock", + "A3_Soft_F_MRAP_01", + "A3_Soft_F_Car", + "ace_map", + "A3_Static_F_Gamma_AA", + "A3_Static_F_Mortar_01", + "A3_Static_F_Gamma", + "a3_static_f", + "ace_captives", + "A3_Armor_F_Slammer", + "A3_Air_F_Beta_Heli_Attack_01", + "ace_medical", + "ace_common", + "A3_Weapons_F_Ammoboxes", + "A3_Armor_F_EPB_APC_tracked_03", + "A3_Air_F_Heli_Light_01", + "A3_Air_F_Beta_Heli_Transport_01", + "A3_Armor_F_T100K", + "A3_Boat_F_Boat_Armed_01", + "A3_Boat_F_Civilian_Boat", + "A3_Boat_F_Boat_Transport_01", + "A3_Characters_F_Gamma", + "A3_Air_F_Gamma_UAV_02", + "A3_Static_F_Gamma_AT" + }; + addOnsAuto[]= + { + "A3_Characters_F_BLUFOR", + "a3_characters_f", + "A3_Characters_F_INDEP", + "ace_vehiclelock", + "ace_captives", + "A3_Air_F_Gamma_UAV_02", + "A3_Characters_F_Gamma", + "A3_Soft_F_MRAP_01", + "A3_Soft_F_Car", + "A3_Static_F_Gamma_AA", + "A3_Static_F_Mortar_01", + "A3_Static_F_Gamma", + "a3_static_f", + "A3_Armor_F_Slammer", + "ace_medical", + "ace_common", + "A3_Weapons_F_Ammoboxes", + "A3_Armor_F_EPB_APC_tracked_03", + "A3_Air_F_Beta_Heli_Attack_01", + "A3_Air_F_Heli_Light_01", + "A3_Air_F_Beta_Heli_Transport_01", + "A3_Armor_F_T100K", + "A3_Boat_F_Boat_Armed_01", + "A3_Boat_F_Civilian_Boat", + "A3_Boat_F_Boat_Transport_01", + "A3_Static_F_Gamma_AT", + "a3_map_stratis" + }; + randomSeed=709402; + class Intel + { + startWeather=0; + startWind=0; + startWaves=0.099999994; + forecastWeather=0; + forecastWind=0; + forecastWaves=0.099999994; + forecastLightnings=0.099999994; + year=2035; + month=7; + day=6; + hour=12; + minute=0; + startFogDecay=0.013; + forecastFogDecay=0.013; + }; + class Groups + { + items=19; + class Item0 + { + side="WEST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1716.1971,5.5,5752.0244}; + azimut=-50.831005; + id=0; + side="WEST"; + vehicle="B_Soldier_F"; + player="PLAY CDG"; + leader=1; + skill=0.60000002; + init="this addItem ""ACE_key_civ"""; + description="Keys For CD"; + syncId=0; + synchronizations[]={3}; + }; + }; + }; + class Item1 + { + side="GUER"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1709.5989,5.5,5740.709}; + azimut=-67.220284; + id=1; + side="GUER"; + vehicle="I_soldier_F"; + player="PLAY CDG"; + leader=1; + skill=0.60000002; + init="this addItem ""ACE_key_east"""; + description="Keys for AB"; + syncId=1; + synchronizations[]={2}; + }; + }; + }; + class Item2 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1712.0765,5.5,5743.5811}; + id=2; + side="LOGIC"; + vehicle="ACE_VehicleLock_ModuleSyncedAssign"; + leader=1; + lock="UNLOCKED"; + skill=0.60000002; + syncId=2; + synchronizations[]={1,6}; + }; + }; + }; + class Item3 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1714.5892,5.5,5748.7002}; + id=3; + side="LOGIC"; + vehicle="ACE_VehicleLock_ModuleSyncedAssign"; + leader=1; + lock="UNLOCKED"; + skill=0.60000002; + syncId=3; + synchronizations[]={7,0}; + }; + }; + }; + class Item4 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1715.7699,5.5,5745.752}; + class args + { + items=3; + class Item0 + { + value="1"; + parentCls="ACE_VehicleLock_ModuleSetup"; + typeName="LockVehicleInventory"; + }; + class Item1 + { + value="0"; + parentCls="ACE_VehicleLock_ModuleSetup"; + typeName="SetLockState"; + }; + class Item2 + { + value="15"; + parentCls="ACE_VehicleLock_ModuleSetup"; + typeName="DefaultLockpickStrength"; + }; + }; + id=4; + side="LOGIC"; + vehicle="ACE_VehicleLock_ModuleSetup"; + leader=1; + lock="UNLOCKED"; + skill=0.60000002; + }; + }; + }; + class Item5 + { + side="WEST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1703.6329,5.5,5730.1909}; + azimut=119.576; + id=5; + side="WEST"; + vehicle="B_Soldier_F"; + player="PLAY CDG"; + leader=1; + skill=0.60000002; + text="Q"; + init="nul = this spawn {sleep 3; [_this] call ace_medical_fnc_setUnconscious};"; + description="Q Unconscious at start"; + }; + }; + }; + class Item6 + { + side="WEST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1702.6882,5.5,5728.8687}; + azimut=103.13899; + id=6; + side="WEST"; + vehicle="B_Soldier_F"; + player="PLAY CDG"; + leader=1; + skill=0.60000002; + text="a1"; + description="Surrender At Start"; + syncId=4; + synchronizations[]={5}; + }; + }; + }; + class Item7 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1701.0719,5.5,5727.5586}; + azimut=15.1769; + id=7; + side="LOGIC"; + vehicle="ace_captives_ModuleSurrender"; + leader=1; + lock="UNLOCKED"; + skill=0.60000002; + syncId=5; + synchronizations[]={4}; + }; + }; + }; + class Item8 + { + side="WEST"; + class Vehicles + { + items=4; + class Item0 + { + position[]={1703.7711,5.5,5715.2427}; + azimut=11.294894; + id=8; + side="WEST"; + vehicle="B_Soldier_TL_F"; + player="PLAY CDG"; + leader=1; + rank="CORPORAL"; + skill=0.60000002; + text="GrpNATO_A1_0"; + description="NATO Alpha 1 Fireteam Leader"; + }; + class Item1 + { + position[]={1706.2533,5.5,5712.9951}; + azimut=11.294894; + id=9; + side="WEST"; + vehicle="B_Soldier_LAT_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A1_1"; + description="NATO Alpha 1 Rifleman (AT)"; + }; + class Item2 + { + position[]={1709.2836,5.5,5712.2866}; + azimut=11.294894; + id=10; + side="WEST"; + vehicle="B_Soldier_AAR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A1_2"; + description="NATO Alpha 1 Assistant Automatic Rifleman"; + }; + class Item3 + { + position[]={1712.4042,5.5,5711.6323}; + azimut=11.294894; + id=11; + side="WEST"; + vehicle="B_Soldier_AR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A1_3"; + description="NATO Alpha 1 Automatic Rifleman"; + }; + }; + }; + class Item9 + { + side="WEST"; + class Vehicles + { + items=4; + class Item0 + { + position[]={1700.8379,5.5,5704.4658}; + azimut=11.294894; + id=12; + side="WEST"; + vehicle="B_Soldier_TL_F"; + player="PLAY CDG"; + leader=1; + rank="CORPORAL"; + skill=0.60000002; + text="GrpNATO_A2_0"; + description="NATO Alpha 2 Fireteam Leader"; + }; + class Item1 + { + position[]={1703.1456,5.5,5702.0576}; + azimut=11.294894; + id=13; + side="WEST"; + vehicle="B_Soldier_LAT_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A2_1"; + description="NATO Alpha 2 Rifleman (AT)"; + }; + class Item2 + { + position[]={1706.1492,5.5,5701.3618}; + azimut=11.294894; + id=14; + side="WEST"; + vehicle="B_Soldier_AAR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A2_2"; + description="NATO Alpha 2 Assistant Automatic Rifleman"; + }; + class Item3 + { + position[]={1709.3947,5.5,5700.7007}; + azimut=11.294894; + id=15; + side="WEST"; + vehicle="B_Soldier_AR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A2_3"; + description="NATO Alpha 2 Automatic Rifleman"; + }; + }; + }; + class Item10 + { + side="WEST"; + class Vehicles + { + items=4; + class Item0 + { + position[]={1696.9097,5.5,5693.7847}; + azimut=11.294894; + id=16; + side="WEST"; + vehicle="B_Soldier_TL_F"; + player="PLAY CDG"; + leader=1; + rank="CORPORAL"; + skill=0.60000002; + text="GrpNATO_A3_0"; + description="NATO Alpha 3 Fireteam Leader"; + }; + class Item1 + { + position[]={1699.3469,5.5,5691.3257}; + azimut=11.294894; + id=17; + side="WEST"; + vehicle="B_Soldier_LAT_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A3_1"; + description="NATO Alpha 3 Rifleman (AT)"; + }; + class Item2 + { + position[]={1702.4423,5.5,5690.4912}; + azimut=11.294894; + id=18; + side="WEST"; + vehicle="B_Soldier_AAR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A3_2"; + description="NATO Alpha 3 Assistant Automatic Rifleman"; + }; + class Item3 + { + position[]={1705.6521,5.5,5689.7666}; + azimut=11.294894; + id=19; + side="WEST"; + vehicle="B_Soldier_AR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_A3_3"; + description="NATO Alpha 3 Automatic Rifleman"; + }; + }; + }; + class Item11 + { + side="WEST"; + class Vehicles + { + items=4; + class Item0 + { + position[]={1685.6747,5.5,5720.1187}; + azimut=11.294894; + id=20; + side="WEST"; + vehicle="B_Soldier_TL_F"; + player="PLAY CDG"; + leader=1; + rank="CORPORAL"; + skill=0.60000002; + text="GrpNATO_B1_0"; + description="NATO Bravo 1 Fireteam Leader"; + }; + class Item1 + { + position[]={1688.1687,5.5,5717.9639}; + azimut=11.294894; + id=21; + side="WEST"; + vehicle="B_Soldier_LAT_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B1_1"; + description="NATO Bravo 1 Rifleman (AT)"; + }; + class Item2 + { + position[]={1691.0776,5.5,5717.2754}; + azimut=11.294894; + id=22; + side="WEST"; + vehicle="B_Soldier_AAR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B1_2"; + description="NATO Bravo 1 Assistant Automatic Rifleman"; + }; + class Item3 + { + position[]={1694.293,5.5,5716.6172}; + azimut=11.294894; + id=23; + side="WEST"; + vehicle="B_Soldier_AR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B1_3"; + description="NATO Bravo 1 Automatic Rifleman"; + }; + }; + }; + class Item12 + { + side="WEST"; + class Vehicles + { + items=4; + class Item0 + { + position[]={1682.364,5.5,5709.4131}; + azimut=11.294894; + id=24; + side="WEST"; + vehicle="B_Soldier_TL_F"; + player="PLAY CDG"; + leader=1; + rank="CORPORAL"; + skill=0.60000002; + text="GrpNATO_B2_0"; + description="NATO Bravo 2 Fireteam Leader"; + }; + class Item1 + { + position[]={1685.1151,5.5,5707.0654}; + azimut=11.294894; + id=25; + side="WEST"; + vehicle="B_Soldier_LAT_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B2_1"; + description="NATO Bravo 2 Rifleman (AT)"; + }; + class Item2 + { + position[]={1688.1718,5.5,5706.313}; + azimut=11.294894; + id=26; + side="WEST"; + vehicle="B_Soldier_AAR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B2_2"; + description="NATO Bravo 2 Assistant Automatic Rifleman"; + }; + class Item3 + { + position[]={1691.5254,5.5,5705.6113}; + azimut=11.294894; + id=27; + side="WEST"; + vehicle="B_Soldier_AR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B2_3"; + description="NATO Bravo 2 Automatic Rifleman"; + }; + }; + }; + class Item13 + { + side="WEST"; + class Vehicles + { + items=4; + class Item0 + { + position[]={1678.4825,5.5,5697.4468}; + azimut=11.294894; + id=28; + side="WEST"; + vehicle="B_Soldier_TL_F"; + player="PLAY CDG"; + leader=1; + rank="CORPORAL"; + skill=0.60000002; + text="GrpNATO_B3_0"; + description="NATO Bravo 3 Fireteam Leader"; + }; + class Item1 + { + position[]={1681.5645,5.5,5696.561}; + azimut=11.294894; + id=29; + side="WEST"; + vehicle="B_Soldier_LAT_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B3_1"; + description="NATO Bravo 3 Rifleman (AT)"; + }; + class Item2 + { + position[]={1684.6531,5.5,5695.8491}; + azimut=11.294894; + id=30; + side="WEST"; + vehicle="B_Soldier_AAR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B3_2"; + description="NATO Bravo 3 Assistant Automatic Rifleman"; + }; + class Item3 + { + position[]={1687.8109,5.5,5695.1021}; + azimut=11.294894; + id=31; + side="WEST"; + vehicle="B_Soldier_AR_F"; + player="PLAY CDG"; + skill=0.60000002; + text="GrpNATO_B3_3"; + description="NATO Bravo 3 Automatic Rifleman"; + }; + }; + }; + class Item14 + { + side="WEST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1540.8328,-27.831757,6018.0283}; + azimut=4.41886; + special="FLY"; + id=32; + side="WEST"; + vehicle="B_UAV_02_CAS_F"; + isUAV=1; + leader=1; + skill=0.60000002; + }; + }; + }; + class Item15 + { + side="WEST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={2861.0947,0,6407.8574}; + azimut=4.41886; + special="FLY"; + id=33; + side="WEST"; + vehicle="B_UAV_02_CAS_F"; + isUAV=1; + leader=1; + skill=0.60000002; + }; + }; + }; + class Item16 + { + side="WEST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={1944.1785,0,6868.8906}; + azimut=4.41886; + special="FLY"; + id=34; + side="WEST"; + vehicle="B_UAV_02_CAS_F"; + isUAV=1; + leader=1; + skill=0.60000002; + }; + }; + }; + class Item17 + { + side="WEST"; + class Vehicles + { + items=4; + class Item0 + { + position[]={1713.3085,5.5,5725.0205}; + azimut=98.173798; + id=35; + side="WEST"; + vehicle="B_medic_F"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.60000002; + text="Medic2"; + description="Medic 2"; + }; + class Item1 + { + position[]={1712.2098,5.5,5727.1675}; + azimut=98.173798; + id=36; + side="WEST"; + vehicle="B_medic_F"; + player="PLAY CDG"; + skill=0.60000002; + text="Medic1"; + description="Medic 1"; + }; + class Item2 + { + position[]={1711.6387,5.5,5725.041}; + azimut=98.173798; + id=37; + side="WEST"; + vehicle="B_medic_F"; + player="PLAY CDG"; + skill=0.60000002; + text="Medic3"; + description="Medic 3"; + }; + class Item3 + { + position[]={1710.0735,5.5,5726.4287}; + id=38; + side="WEST"; + vehicle="B_soldier_UAV_F"; + player="PLAY CDG"; + skill=0.60000002; + text="uavGuy"; + }; + }; + }; + class Item18 + { + side="WEST"; + class Vehicles + { + items=2; + class Item0 + { + position[]={1722.298,5.5,5733.4629}; + azimut=4.41886; + special="FLY"; + id=39; + side="WEST"; + vehicle="B_Soldier_F"; + player="PLAYER COMMANDER"; + leader=1; + skill=0.60000002; + text="R1"; + description="sp tester"; + }; + class Item1 + { + position[]={1722.7957,5.5,5732.481}; + azimut=4.41886; + special="FLY"; + id=40; + side="WEST"; + vehicle="B_Soldier_F"; + player="PLAY CDG"; + skill=0.60000002; + text="R2"; + description="sp tester2"; + }; + }; + }; + }; + class Vehicles + { + items=38; + class Item0 + { + position[]={1706.5913,5.5,5748.0903}; + azimut=-68.59301; + id=41; + side="EMPTY"; + vehicle="B_MRAP_01_F"; + leader=1; + skill=0.60000002; + text="car1"; + syncId=6; + synchronizations[]={2}; + }; + class Item1 + { + position[]={1707.5599,5.5,5753.0518}; + azimut=-65.45974; + id=42; + side="EMPTY"; + vehicle="B_MRAP_01_F"; + leader=1; + lock="LOCKED"; + skill=0.60000002; + text="car3"; + syncId=7; + synchronizations[]={3}; + }; + class Item2 + { + position[]={1708.7251,5.5,5757.8809}; + azimut=-65.45974; + id=43; + side="EMPTY"; + vehicle="C_Hatchback_01_F"; + leader=1; + lock="UNLOCKED"; + skill=0.60000002; + text="car4"; + }; + class Item3 + { + position[]={1704.4299,5.5,5742.8721}; + azimut=-68.59301; + id=44; + side="EMPTY"; + vehicle="C_Hatchback_01_F"; + leader=1; + lock="UNLOCKED"; + skill=0.60000002; + text="car0"; + init="this setVariable [""ACE_VehicleLock_lockSide"", east];"; + }; + class Item4 + { + position[]={1738.8502,5.5,5728.8525}; + azimut=101.05981; + id=45; + side="EMPTY"; + vehicle="B_static_AA_F"; + skill=0.60000002; + text="q1"; + }; + class Item5 + { + position[]={1738.4388,5.5,5726.1929}; + azimut=101.05981; + id=46; + side="EMPTY"; + vehicle="B_Mortar_01_F"; + skill=0.60000002; + text="q2"; + }; + class Item6 + { + position[]={1737.8582,5.5,5723.3979}; + azimut=101.05981; + id=47; + side="EMPTY"; + vehicle="B_HMG_01_high_F"; + skill=0.60000002; + text="q3"; + }; + class Item7 + { + position[]={1738.9786,5.5,5734.6968}; + azimut=104.535; + id=48; + side="EMPTY"; + vehicle="B_MBT_01_cannon_F"; + lock="UNLOCKED"; + skill=0.60000002; + }; + class Item8 + { + position[]={1734.713,5.5,5720.061}; + azimut=10.202663; + id=49; + side="EMPTY"; + vehicle="ACE_medicalSupplyCrate"; + leader=1; + skill=0.60000002; + }; + class Item9 + { + position[]={1737.2236,5.5,5719.5591}; + azimut=10.202663; + id=50; + side="EMPTY"; + vehicle="ACE_medicalSupplyCrate"; + leader=1; + skill=0.60000002; + }; + class Item10 + { + position[]={1733.2904,5.5,5717.6465}; + azimut=13.57355; + id=51; + side="EMPTY"; + vehicle="ACE_Box_Misc"; + leader=1; + skill=0.60000002; + }; + class Item11 + { + position[]={1736.1099,5.5,5717.1831}; + azimut=13.57355; + id=52; + side="EMPTY"; + vehicle="ACE_Box_Misc"; + leader=1; + skill=0.60000002; + }; + class Item12 + { + position[]={1732.4794,5.5,5715.4067}; + azimut=9.5156059; + id=53; + side="EMPTY"; + vehicle="Box_NATO_AmmoOrd_F"; + leader=1; + skill=0.60000002; + }; + class Item13 + { + position[]={1735.2601,5.5,5714.7891}; + azimut=9.5156059; + id=54; + side="EMPTY"; + vehicle="Box_NATO_AmmoOrd_F"; + leader=1; + skill=0.60000002; + }; + class Item14 + { + position[]={1743.4641,5.5,5753.5161}; + azimut=104.535; + id=55; + side="EMPTY"; + vehicle="B_MRAP_01_hmg_F"; + lock="UNLOCKED"; + skill=0.60000002; + }; + class Item15 + { + position[]={1741.916,5.5,5747.4302}; + azimut=104.535; + id=56; + side="EMPTY"; + vehicle="I_APC_tracked_03_cannon_F"; + lock="UNLOCKED"; + skill=0.60000002; + }; + class Item16 + { + position[]={1722.1113,5.5,5768.3818}; + azimut=193.13876; + id=57; + side="EMPTY"; + vehicle="B_Heli_Attack_01_F"; + skill=0.60000002; + }; + class Item17 + { + position[]={1733.6005,5.5,5765.2881}; + azimut=198.2417; + id=58; + side="EMPTY"; + vehicle="B_Heli_Light_01_armed_F"; + skill=0.60000002; + }; + class Item18 + { + position[]={1746.17,5.5,5764.1099}; + azimut=198.97742; + id=59; + side="EMPTY"; + vehicle="B_Heli_Transport_01_F"; + skill=0.60000002; + }; + class Item19 + { + position[]={1909.3875,10.094501,5668.21}; + azimut=4.41886; + id=60; + side="EMPTY"; + vehicle="O_MBT_02_cannon_F"; + skill=0.60000002; + }; + class Item20 + { + position[]={1724.0231,5.5,5722.8857}; + azimut=104.535; + id=61; + side="EMPTY"; + vehicle="Box_IND_Wps_F"; + skill=0.60000002; + }; + class Item21 + { + position[]={1724.6892,5.5,5724.7744}; + azimut=104.535; + id=62; + side="EMPTY"; + vehicle="Box_IND_Ammo_F"; + skill=0.60000002; + }; + class Item22 + { + position[]={1717.6512,5.5,5724.0181}; + azimut=104.535; + id=63; + side="EMPTY"; + vehicle="Box_IND_Wps_F"; + skill=0.60000002; + }; + class Item23 + { + position[]={1718.2023,5.5,5726.3066}; + azimut=104.535; + id=64; + side="EMPTY"; + vehicle="Box_IND_Ammo_F"; + skill=0.60000002; + }; + class Item24 + { + position[]={1733.6895,5.5,5706.4785}; + azimut=104.535; + id=65; + side="EMPTY"; + vehicle="Box_NATO_WpsLaunch_F"; + skill=0.60000002; + }; + class Item25 + { + position[]={1733.21,5.5,5704.1836}; + azimut=104.535; + id=66; + side="EMPTY"; + vehicle="Box_East_WpsLaunch_F"; + skill=0.60000002; + }; + class Item26 + { + position[]={1732.4906,5.5,5701.6831}; + azimut=104.535; + id=67; + side="EMPTY"; + vehicle="Box_IND_WpsLaunch_F"; + skill=0.60000002; + }; + class Item27 + { + position[]={1825.109,5.5,5676.3613}; + azimut=4.41886; + id=68; + side="EMPTY"; + vehicle="O_MBT_02_cannon_F"; + skill=0.60000002; + text="t1"; + }; + class Item28 + { + position[]={1894.5531,5.6621442,5745.1523}; + azimut=4.41886; + id=69; + side="EMPTY"; + vehicle="O_MBT_02_cannon_F"; + skill=0.60000002; + }; + class Item29 + { + position[]={1863.2545,5.5,5712.0615}; + azimut=4.41886; + id=70; + side="EMPTY"; + vehicle="O_MBT_02_cannon_F"; + skill=0.60000002; + }; + class Item30 + { + position[]={1740.923,5.5,5741.1685}; + azimut=104.535; + id=71; + side="EMPTY"; + vehicle="B_MBT_01_cannon_F"; + lock="UNLOCKED"; + skill=0.60000002; + }; + class Item31 + { + position[]={1721.363,5.5,5724.4956}; + azimut=104.535; + id=72; + side="EMPTY"; + vehicle="Box_NATO_Grenades_F"; + lock="UNLOCKED"; + skill=0.60000002; + }; + class Item32 + { + position[]={1722.3844,5.5,5727.0381}; + azimut=104.535; + id=73; + side="EMPTY"; + vehicle="Box_NATO_WpsSpecial_F"; + lock="UNLOCKED"; + skill=0.60000002; + }; + class Item33 + { + position[]={1644.8666,0,5751.0166}; + azimut=-19.956911; + id=74; + side="EMPTY"; + vehicle="B_Boat_Armed_01_minigun_F"; + skill=0.60000002; + }; + class Item34 + { + position[]={1639.6296,0,5741.1772}; + azimut=-19.956911; + id=75; + side="EMPTY"; + vehicle="B_Boat_Armed_01_minigun_F"; + skill=0.60000002; + }; + class Item35 + { + position[]={1636.3765,0,5727.1333}; + azimut=-19.9569; + id=76; + side="EMPTY"; + vehicle="C_Boat_Civil_01_F"; + skill=0.60000002; + }; + class Item36 + { + position[]={1652.0231,-0.71640843,5760.2349}; + azimut=-19.9569; + id=77; + side="EMPTY"; + vehicle="B_Boat_Transport_01_F"; + skill=0.60000002; + }; + class Item37 + { + position[]={1739.5898,5.5,5730.6455}; + azimut=101.06; + id=78; + side="EMPTY"; + vehicle="B_static_AT_F"; + skill=0.60000002; + text="q0"; + }; + }; +}; +class Intro +{ + addOns[]= + { + "a3_map_stratis" + }; + addOnsAuto[]= + { + "a3_map_stratis" + }; + randomSeed=13628778; + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0.30000001; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2035; + month=7; + day=6; + hour=12; + minute=0; + startFogDecay=0.013; + forecastFogDecay=0.013; + }; +}; +class OutroWin +{ + addOns[]= + { + "a3_map_stratis" + }; + addOnsAuto[]= + { + "a3_map_stratis" + }; + randomSeed=8997795; + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0.30000001; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2035; + month=7; + day=6; + hour=12; + minute=0; + startFogDecay=0.013; + forecastFogDecay=0.013; + }; +}; +class OutroLoose +{ + addOns[]= + { + "a3_map_stratis" + }; + addOnsAuto[]= + { + "a3_map_stratis" + }; + randomSeed=1617621; + class Intel + { + timeOfChanges=1800.0002; + startWeather=0.30000001; + startWind=0.1; + startWaves=0.1; + forecastWeather=0.30000001; + forecastWind=0.1; + forecastWaves=0.1; + forecastLightnings=0.1; + year=2035; + month=7; + day=6; + hour=12; + minute=0; + startFogDecay=0.013; + forecastFogDecay=0.013; + }; +}; diff --git a/addons/testmissions/config.cpp b/addons/testmissions/config.cpp new file mode 100644 index 0000000000..3a73a661d5 --- /dev/null +++ b/addons/testmissions/config.cpp @@ -0,0 +1,20 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_common"}; + VERSION_CONFIG; + }; +}; + +class CfgMissions { + class MPMissions { + class ACETestingMap1 { + briefingName = "ACE Testing Map 1"; + directory = QUOTE(PATHTO_R(MPMissions\ACETestingMap1.Stratis)); + }; + }; +}; diff --git a/addons/testmissions/script_component.hpp b/addons/testmissions/script_component.hpp new file mode 100644 index 0000000000..c6c629ff91 --- /dev/null +++ b/addons/testmissions/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT testmissions +#include "\z\ace\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_TESTMISSIONS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_ENABLED_TESTMISSIONS + #define DEBUG_SETTINGS DEBUG_ENABLED_TESTMISSIONS +#endif + +#include "\z\ace\Addons\main\script_macros.hpp" \ No newline at end of file