Skip to content

Commit 55e47bf

Browse files
[MISSIONS] Updated to ALiVE_Operation_Cobra.SPE_Normandy to v.1.00.3
1 parent 2a140e0 commit 55e47bf

File tree

11 files changed

+254
-22
lines changed

11 files changed

+254
-22
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
/ALiVE Operation Cobra v.1.00.1.txt
2+
/ALiVE Operation Cobra v.1.00.2.txt
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Changelog
2+
3+
ALiVE Operation Cobra v.1.00.3
4+
5+
- Updated dominant faction in CQB module
6+
- Fixed issue where client's were running ALIVE_fnc_getNearProfiles from global trigger. ALIVE_fnc_getNearProfiles should only be called serverside since ALiVE_profileSystem is not PV'd to clients.
7+
- Fixed locality issues when players JIP'd and interacted with MHQ
8+
- Updated wording of Intel displayMenu's
9+
- Added attack intel script
10+
- Update initServer.sqf
11+
- Update initServer.sqf
12+
- Update initplayerlocal.sqf
13+
- Update init.sqf
14+
- Added empty vehicle markers
15+
- Performance pass on mission.sqm
16+
- Added Main base blacklist for IFS
17+
- Fix for IFS dissapearing on respawn
18+
- Update README.md
19+
20+
21+
Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,44 @@
1-
# ALiVE Operation Cobra
2-
An Arma 3 multiplayer mission for the Spearhead 1944 CDLC by Jman & Atlas
1+
# ALiVE | Operation Cobra
2+
3+
https://steamcommunity.com/sharedfiles/filedetails/?id=3009239549
4+
5+
Welcome to "ALiVE | Operation Cobra," a dynamic multiplayer scenario set during the intense battles of Operation Cobra in Normandy. Engage in challenging bocage fighting, where players take on the roles of American soldiers, tasked with capturing and defending objectives as determined by the AI commander, OPCOM.
6+
7+
**Key Features:**
8+
9+
- **Engaging Bocage Fighting:** Overcome challenging obstacles in immersive bocage combat, requiring strategic coordination for success.
10+
11+
- **Dynamic AI Commander Strategies:** Witness unpredictable battles as AI commanders employ different tactics to occupy and invade objectives. Commanders clash in an ongoing conflict, influencing the outcome of engagements.
12+
13+
- **Strategic Freedom:** Players have the freedom to assist AI units or execute their independent operations, providing diverse and engaging gameplay.
14+
15+
- **ALiVE's Commander Options:** Request reinforcements, access intel, and receive strategic tasks from the AI commander, enhancing immersion and game flow.
16+
17+
- **Military Logistics:** Experience dynamic reinforcement and resupply systems, shaping a constantly changing battlefield.
18+
19+
- **Combined Arms Operations:** Engage in company-level combined arms operations with combat air support, artillery, and logistics systems.
20+
21+
- **C2ISTAR System:** Utilize map overlays and SITREP systems for task/mission generation and management, enhancing tactical decision-making.
22+
23+
- **Player Logistics:** Coordinate complex maneuvers effortlessly with lift/shift operations, towing, and more.
24+
25+
- **Dynamic AT and AP Minefields:** Stay cautious and vigilant as you encounter dynamic minefields on the battlefield.
26+
27+
- **Virtual AI System:** Experience authentic combat with thousands of simulated AI land and air forces in large-scale scenarios.
28+
29+
- **MP Player Support Systems:** Enjoy admin actions, player tags, view distance control, gear persistence, multi-respawn, and more for smooth multiplayer experience.
30+
31+
- **Two Modes:** Choose between "Cadet" for newcomers and "Hardcore" for seasoned veterans, catering to all skill levels.
32+
33+
- **Mobile Headquarters:** Strategize and regroup efficiently with the mobile headquarters respawn point, AI recruitment, and arsenal.
34+
35+
- **Quality of Life Scripts:** Benefit from earplugs, vehicle anti-flip, garbage cleanup, friendly force tracker, and AI squadmate reset for improved gameplay.
36+
37+
- **Open-Ended Gameplay:** Lead your player squad or join forces with AI comrades as infantry, tanks, or planes to achieve victory.
38+
39+
**Mission Objective:**
40+
41+
Communicate openly with teammates, devise strategic plans, and mark key locations on the map to achieve your objectives. Foster collaborative efforts with friendly AI units, utilizing their capabilities to execute joint operations effectively. Adapt your strategies based on the evolving battlefield and seize victory in the intense battles of "ALiVE | Operation Cobra" in Normandy.
42+
43+
---
44+
Prepare for an immersive and intense combat experience on Steam!

addons/missions/MPScenarios/ALiVE_Operation_Cobra.SPE_Normandy/init.sqf

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@
1616
call compile preprocessFileLineNumbers "scripts\frontline_data.sqf"
1717
] call SPE_MISSIONUTILITYFUNCTIONS_fnc_generateFrontline;
1818

19+
if (hasInterface) then {
20+
21+
(group player) addEventHandler ["UnitJoined",
22+
{
23+
params ["_group", "_newUnit"];
24+
25+
[_newUnit] call SPE_MissionUtilityFunctions_fnc_ReviveToksaInit;
26+
[_newUnit] call SPE_MissionUtilityFunctions_fnc_ReviveToksaActionsInit;
27+
}]};
28+
29+
1930
//Starting Init
2031
["| Operation Cobra - Executing init.sqf..."] call ALiVE_fnc_dump;
2132

@@ -48,6 +59,37 @@ if (side player == RESISTANCE) then {
4859
[] execVM "Scripts\Earplugs.sqf";
4960
[] execVM "Scripts\SquadResetInit.sqf";
5061

62+
//Fixes for IFS
63+
[] spawn
64+
{
65+
// Wait for other initializations
66+
sleep 15;
67+
68+
// Fix for clients not initializing scripts
69+
if (!isServer) then {[] call SPE_MissionUtilityFunctions_fnc_IFS_Init};
70+
71+
// Fix for null variable on clients
72+
if (isServer) then {publicVariable "SPE_IFS_availableCalls"};
73+
74+
// Fix for AI not utilizing supports
75+
if (isServer) then
76+
{
77+
if (isNil "SPE_IFS_AmountMultiplier") then
78+
{
79+
SPE_IFS_AmountMultiplier = [[0.33,0.5,1],[0.33,0.5,1]];
80+
};
81+
82+
publicVariable "SPE_IFS_AmountMultiplier";
83+
};
84+
85+
// Fix for player respawn
86+
if (hasInterface) then
87+
{
88+
player addEventHandler ["Respawn",{_this spawn SPE_MissionUtilityFunctions_fnc_IFS_onPlayerRespawn}];
89+
};
90+
};
91+
92+
/////////////////////////// T H I S H A S T O G O L A S T ////////////////////////////////////////////////
5193
if (hasInterface) then {
5294

5395
["| Operation Cobra - Running ClientInit..."] call ALiVE_fnc_dump;
@@ -106,5 +148,4 @@ if (hasInterface) then {
106148
["openSideSmall",0.4] call ALIVE_fnc_displayMenu;
107149
["setSideSmallText",_text] call ALIVE_fnc_displayMenu;
108150
};
109-
};
110-
151+
};

addons/missions/MPScenarios/ALiVE_Operation_Cobra.SPE_Normandy/initServer.sqf

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
*
1010
* */
1111
// ====================================================================================
12+
["Initialize", [true]] call BIS_fnc_dynamicGroups;
13+
1214
if (isDedicated) then {
1315
disableRemoteSensors true;
1416
};
@@ -66,7 +68,11 @@ skipTime 8;
6668
0 setfog 0.01;
6769
forceWeatherChange;
6870

69-
["Initialize", [true]] call BIS_fnc_dynamicGroups;
70-
7171
SPE_IFS_CASAvailability_Side = [east, west, independent];
7272
publicVariable "SPE_IFS_CASAvailability_Side";
73+
74+
[] spawn {
75+
waitUntil {!isNil "ALiVE_REQUIRE_INITIALISED" && time > 120};
76+
ALiVE_Helper_opcomEventListener = compile preprocessFileLineNumbers "Scripts\opcomEventListener.sqf";
77+
opcomEventListener = [nil,"create", ["ALiVE_Helper_opcomEventListener"]] call ALiVE_Helper_opcomEventListener;
78+
};

addons/missions/MPScenarios/ALiVE_Operation_Cobra.SPE_Normandy/initplayerlocal.sqf

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
_player = _this select 0;
1717
_didJIP = _this select 1;
1818

19-
2019
// --- Enable full spectator in respawn screen
2120
{
2221
missionNamespace setVariable [_x,true];
@@ -46,7 +45,12 @@ SPE_fnc_IFS_hasRadio =
4645
_hasRadioItem
4746
};
4847

48+
SPE_IFS_requestedsupportavailabilitydelay = [[210,210,210],[275,275,275],[200,480,300],[420,420,420]];
49+
50+
SPE_IFS_areablacklist = ["mainblacklist"];
4951

52+
SPE_IFS_shouldBlacklistBlockRequestedSupport = true;
53+
5054
// save loadout
5155
[missionnamespace,"arsenalClosed", {[player, [missionNamespace, "inventory_var"]] call BIS_fnc_saveInventory;
5256
diag_log format["%1: initPlayerLocal.sqf -> %2 inventory_var saved", missionName, missionNamespace];
@@ -95,16 +99,8 @@ if (_didJIP) then {
9599
//Initialize BIS group menu
96100
["InitializePlayer", [player, true]] call BIS_fnc_dynamicGroups;
97101

98-
// Initialize SPE Revive for units recruited in a player group
99-
(group player) addEventHandler ["UnitJoined", {
100-
params ["_group", "_newUnit"];
101-
102-
[_newUnit] call SPE_MissionUtilityFunctions_fnc_ReviveToksaInit;
103-
[_newUnit] call SPE_MissionUtilityFunctions_fnc_ReviveToksaActionsInit;
104-
}];
105-
106102
// Add Earplus addaction on mission start
107103
PX_earPlugAction = player addAction [("<t color='#00FF00'>Insert Ear Plugs</t>"), {call PX_fnc_earPlugsInsert}, [], 1, false, true];
108104

109105
//Initialize Soldier Tracker Script
110-
[] execVM "scripts\QS_icons.sqf";
106+
[] execVM "scripts\QS_icons.sqf";
Binary file not shown.
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
11
[player, [missionNamespace, "inventory_var"]] call BIS_fnc_loadInventory;
2-
[] execVM "Scripts\SquadResetInit.sqf";
2+
[] execVM "Scripts\SquadResetInit.sqf";
3+
4+
[] spawn {
5+
waitUntil {!isNil "SPE_IFS_EM_ID" && time > 20};
6+
player setVariable ['SPE_IFS_showCall_EM',false]; // does not work!
7+
[player,SPE_IFS_EM_ID] call BIS_fnc_holdActionRemove; // works!
8+
};

addons/missions/MPScenarios/ALiVE_Operation_Cobra.SPE_Normandy/scripts/QS_icons.sqf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ _QS_ST_GRPrequireGPSItem = FALSE; // BOOL. TRUE to require player have GP
189189
//============================= CONFIGURE BONUS FEATURES ===========================//
190190
//==================================================================================//
191191

192-
_QS_ST_showEmptyVehicles = FALSE; // BOOL. TRUE to mark certain unoccupied vehicles on the map. The vehicle must be assigned this variable: <vehicle> setVariable ['QS_ST_drawEmptyVehicle',TRUE,TRUE]; Default FALSE. Only works if _QS_ST_map_enableUnitIcons = TRUE;
192+
_QS_ST_showEmptyVehicles = TRUE; // BOOL. TRUE to mark certain unoccupied vehicles on the map. The vehicle must be assigned this variable: <vehicle> setVariable ['QS_ST_drawEmptyVehicle',TRUE,TRUE]; Default FALSE. Only works if _QS_ST_map_enableUnitIcons = TRUE;
193193
_QS_ST_iconColor_empty = [0.7,0.6,0,0.5]; // ARRAY (NUMBERS). Color of unoccupied vehicles, in RGBA. Default = [0.7,0.6,0,0.5];
194194
_QS_ST_iconSize_empty = 20; // NUMBER. Icon size of unoccupied vehicles, if shown.
195195

addons/missions/MPScenarios/ALiVE_Operation_Cobra.SPE_Normandy/scripts/mobileRespawn.sqf

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ _HMHQ = (HMHQ_Teleport_Veh select 0);
3838

3939

4040

41-
if (USMHQ getVariable ["Respawned", false]) then {
41+
if (USMHQ getVariable ["Respawned", false] || USMHQ_Respawned == 1) then {
4242

4343
["mobileRespawn.sqf -> Respawned: %1", USMHQ getVariable ["Respawned", false]] call ALIVE_fnc_dump;
4444
[nil,"respawnedText", nil, false] spawn BIS_fnc_MP;
@@ -69,12 +69,14 @@ if (USMHQ getVariable ["Respawned", false]) then {
6969
["mobileRespawn.sqf -> Old MHQ Removed"] call ALIVE_fnc_dump;
7070

7171
USMHQ setVariable ["Respawed",false,true];
72+
USMHQ_Respawned = 0;
73+
publicVariable "USMHQ_Respawned";
7274
};
7375

7476

7577
USMHQ setVariable ['QS_ST_drawEmptyVehicle',true,true];
7678

77-
["mobileRespawn.sqf -> Respawned, Adding actions back, HMHQ_Deployed: %1", USMHQ getVariable ["HMHQ_Deployed", false]] call ALIVE_fnc_dump;
79+
["mobileRespawn.sqf -> Respawned, Adding actions back, HMHQ_Deployed_Var: %1", HMHQ_Deployed_Var] call ALIVE_fnc_dump;
7880

7981
[USMHQ, ["<t color='#ffff00'>Deploy HQ</t>", {[_this,"HZE_fnc_deployHQ", false] call BIS_fnc_MP;},[],0,true,true,"","(!(_target getVariable ['HMHQ_Deployed', true])) && ((_this distance _target) < 4)"]] remoteExec ["addAction"];
8082
[USMHQ, ["<t color='#ffff00'>Pack HQ</t>", {[_this,"HZE_fnc_packHQ", false] call BIS_fnc_MP;},[],0,true,true,"","(_target getVariable ['HMHQ_Deployed', false]) && ((_this distance _target) < 4)"]] remoteExec ["addAction"];
@@ -87,6 +89,8 @@ if (USMHQ getVariable ["Respawned", false]) then {
8789
if (isServer) then {
8890
USMHQ setVariable ["HMHQ_Deployed", false, true];
8991

92+
USMHQ_Respawned = 0;
93+
publicVariable "USMHQ_Respawned";
9094
HMHQ_Deployed_Var = 0;
9195
publicVariable "HMHQ_Deployed_Var";
9296
MHQ_marker_array = [];
@@ -113,6 +117,7 @@ if (isServer) then {
113117
// Create Supply Crate
114118
_supply = createVehicle [INS_MHQ_SUPPLYCRATE,[ (getPos USMHQ select 0)-2, (getPos USMHQ select 1)-6,(getPos USMHQ select 2)+0.1], [], 0, "CAN_COLLIDE"];
115119
USMHQ setVariable ["SUPPLY", _supply];
120+
_supply allowDamage false;
116121
Deployed_Supply = _supply;
117122
publicVariable "Deployed_Supply";
118123
[Deployed_Supply, ["<t color='#0099FF'>Arsenal</t>", {["Open",true] spawn SPE_Arsenal_fnc_arsenal; }]] remoteExec ["addAction"];
@@ -132,6 +137,7 @@ if (isServer) then {
132137
// Create the MHQ USBASE Flag
133138
_flag = createVehicle [INS_MHQ_FLAGCLASS,[ (getPos USMHQ select 0)-2, (getPos USMHQ select 1)-10, (getPos USMHQ select 2)+0], [], 0, "CAN_COLLIDE"];
134139
USMHQ setVariable ["FLAG", _flag];
140+
_flag allowDamage false;
135141
Deployed_Flag = _flag;
136142
publicVariable "Deployed_Flag";
137143
[Deployed_Flag, ["<t color='#ffff00'>Recruit Infantry</t>", {[Deployed_Flag] execVM "bon_recruit_units\open_dialog.sqf";},[],0,true,true,"",""]] remoteExec ["addAction"];
@@ -187,7 +193,7 @@ if (isServer) then {
187193

188194
if (!isDedicated) then {
189195

190-
["mobileRespawn.sqf -> !isDedicated, Adding actions, HMHQ_Deployed: %1", USMHQ getVariable ["HMHQ_Deployed", false]] call ALIVE_fnc_dump;
196+
["mobileRespawn.sqf -> !isDedicated, Adding actions"] call ALIVE_fnc_dump;
191197

192198
USMHQ addAction ["<t color='#ffff00'>Deploy HQ</t>",{
193199
[_this,"HZE_fnc_deployHQ", false] call BIS_fnc_MP;
@@ -201,14 +207,15 @@ if (!isDedicated) then {
201207

202208
[] spawn {
203209

204-
["mobileRespawn.sqf -> USBASE Teleport: %1", USBASE getVariable ["Pole", false]] call ALIVE_fnc_dump;
210+
["mobileRespawn.sqf -> USBASE Teleport Action Status: %1", USBASE getVariable ["Pole", false]] call ALIVE_fnc_dump;
205211

206212
if !(USBASE getVariable ["Pole", false]) then {
207213
private ["_veh_name", "_spawn"];
208214
_veh_name = str(USMHQ);
209215
_thisaction = USBASE addAction [("<t color=""#ffff00"">") + ("Teleport to Mobile Respawn Vehicle") + "</t>", {[_this select 1, _this select 3] call HZE_fnc_teleport}, _veh_name];
210216
USBASE setVariable ["Teleport", _thisaction, true];
211217
USBASE setVariable ["Pole", true,false];
218+
["mobileRespawn.sqf -> USBASE Teleport Action Status: %1", USBASE getVariable ["Pole", false]] call ALIVE_fnc_dump;
212219
};
213220
};
214221
};

0 commit comments

Comments
 (0)