Skip to content

Commit 018ef93

Browse files
committed
Merge branch 'develop'
2 parents 4513334 + ea0a489 commit 018ef93

File tree

8 files changed

+55
-77
lines changed

8 files changed

+55
-77
lines changed

checkEndConditions.sqf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ while { _run } do
1212
_aliveOpfor = { isPlayer _x && alive _x && side group _x == east } count allUnits;
1313
_playingBluFor = { isPlayer _x && side group _x == west } count (allUnits + allDead);
1414

15+
// Just in case someone joins blufor mid game
16+
if(initialBluFor == 0 && _playingBluFor > 0) then
17+
{
18+
initialBluFor = _playingBluFor;
19+
};
20+
1521
if(initialOpfor > 0 && initialBlufor > 0) then
1622
{
1723
if(_aliveOpfor == 0) then

description.ext

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ class Params
3838
class DroneMarkerSizeInfantry
3939
{
4040
title = "Infantry drone marker size"; // Param name visible in the list
41-
values[] = {75, 150, 225, 275, 325, 375, 425}; // Values; must be integers; has to have the same number of elements as 'texts'
42-
default = 325; // Default value; must be listed in 'values' array, otherwise 0 is used
41+
values[] = {100, 150, 200, 250, 300, 350, 400, 450}; // Values; must be integers; has to have the same number of elements as 'texts'
42+
default = 350; // Default value; must be listed in 'values' array, otherwise 0 is used
4343
};
4444

4545
class DroneMarkerSizeVehicle

init.sqf

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@ enableSaving [ false, false ];
44

55
if(isServer) then
66
{
7+
// All assumptions here are that the game starting time is noon
78
timeSkip = random 24;
89

9-
// Eliminate dark night time
10-
if(timeSkip > 12 && timeSkip < 17) then
10+
// Eliminate dark night time (4-6 AM)
11+
if(timeSkip >= 16 && timeSkip <= 18) then
1112
{
12-
timeSkip = timeSkip + 5;
13+
timeSkip = timeSkip + 2;
1314
};
1415

1516
switch (startingTime) do
1617
{
17-
case 1: { timeSkip = -4 + random 10; };
18-
case 2: { timeSkip = 12 + random 3; };
18+
// Skip to an hour between 7 AM and 6 PM
19+
case 1: { timeSkip = -5 + random 11; };
20+
// Skip to an hour between 8 PM and 6 AM
21+
case 2: { timeSkip = 8 + random 10; };
1922
};
2023
publicVariable "timeSkip";
2124

initBriefingChanges.sqf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
#define BLUFOR_FASTROPING "All helicopters allow for fast roping - simply have the pilot slow the chopper down to a hover, throw the ropes and then fast rope. The rope should be safe to use up to 45 meters above ground level, just make sure the helicopter maintains a steady hover during the whole process."
1515

16-
#define OPFOR_OVERVIEW "You start in a helicopter and can eject anywhere within the <marker name=""insertion_zone"">insertion zone</marker>, land quickly and make sure to find a hiding spot - the hunters will be on your tail. Make sure you do not hit the ground too hard, a rocky landing can hurt or kill you! As soon as possible start moving towards some good cover, once you have died the game is over for you. Your job is to secure %3 pieces of intel and <marker name=""extraction_zone"">extract</marker> with them. Extraction will be available as soon as you have completed %1 objectives out of %2 available to you. One piece of intel is given to you for every task you complete."
16+
#define OPFOR_OVERVIEW "You start in a helicopter and can eject anywhere within the <marker name=""insertion_zone"">insertion zone</marker>, land quickly and make sure to find a hiding spot - the hunters will be on your tail. Make sure you do not hit the ground too hard, a rocky landing can hurt or kill you! As soon as possible start moving towards some good cover, once you have died the game is over for you. Your job is to secure %3 pieces of intel and <marker name=""extraction_zone"">extract</marker> with them. Extraction will be available as soon as you have completed %1 objectives out of %2 available to you. One piece of intel is given to you for every task you complete. Keep in mind, while BluFor can respawn as many times as they want, you have one life only."
1717

1818
#define OPFOR_INTEL "Intel is what you came here for, you need the specified amount of it to be carried by players in the extraction helicopter to win. It does not matter who lives, only how much intel is carried off the island. You can share it with another player, if you are close enough, and take it from friendly bodies. Make sure one player does not hoard all of it, and remember you can accomplish more objectives than the minimum if you want to. Finally, BluFor can not take intel from your dead friendlies, however they can search the body to recover information about your position at the time of the teammate's death!"
1919

@@ -29,7 +29,7 @@
2929

3030
#define CREDITS_STRING "<font size=""16"">Made by</font><br/><br/>Michał ""Mavrick"" Tuśnio, Revendel on BIStudio forums.<br/><br/><font size=""16"">Special thanks to</font><br/><br/>DMK Gman for OpFor loadouts, gameplay videos.<br/>ATi for gameplay videos<br/>ATi, DMK Gman, GuðniM, Ingi, Snake, Wezzlok for testing and suggestions.<br/><br/><font size=""16"">Scripts</font><br/><br/>Nametags by JTS <br/>Fast roping script by Zealot<br/>Random weather script by Meatball"
3131

32-
#define CHANGELOG_STRING "<font size=""16"">Version 4</font><br/><br/>- Initial drone delay is now a parameter, decreased from 5 minutes to 4 minutes<br/>- Readjusted speedboats position to avoid collisions<br/>- Removed speedboats thermal vision<br/>- Added information about repair action<br/>- Repair is now only available when something's actually damaged<br/><br/><font size=""16"">Version 3</font><br/><br/>- Increased extraction time from 4 minutes to 5 minutes<br/>- Changed the warning time before the chopper leaves from 30 seconds before extraction to 60 seconds<br/>- BlueFor units in the selection menu have been reordered to Pilots->Air Station Mike->Airfield paratroopers<br/>- Restructured the in-game guide for BluFor and OpFor<br/><br/><font size=""16"">Version 2</font><br/><br/>- Removed a custom spectator mode in favour of BI's<br/>- Blufor respawn time now 105s, can be changed in parameters<br/>- Updated briefing to reflect some recent changes <br/>- Fix wrongly displayed minimum player count<br/><br/><font size=""16"">Version 1</font><br/><br/>Initial release"
32+
#define CHANGELOG_STRING "<font size=""16"">Version 5</font><br/><br/>- Changed mission headline info to include proper information<br/>- Added info about respawns for OpFor<br/>- Ghillie loadout now carries Mk20 instead of an SMG<br/>- Flashlights added to all loadouts wherever the attachment is available<br/>- Changed the mission date to allow for better night brightness<br/>- Possibly fixed one case of the mission never ending despite all OpFor being dead<br/>- Drone markers will not try to place their center over ground if possible (unless the target is at sea)<br/>- Rebalanced slightly the timing of the drones and marker size to buff OpFor<br/><br/><font size=""16"">Version 4</font><br/><br/>- Initial drone delay is now a parameter, decreased from 5 minutes to 4 minutes<br/>- Readjusted speedboats position to avoid collisions<br/>- Removed speedboats thermal vision<br/>- Added information about repair action<br/>- Repair is now only available when something's actually damaged<br/><br/><font size=""16"">Version 3</font><br/><br/>- Increased extraction time from 4 minutes to 5 minutes<br/>- Changed the warning time before the chopper leaves from 30 seconds before extraction to 60 seconds<br/>- BlueFor units in the selection menu have been reordered to Pilots->Air Station Mike->Airfield paratroopers<br/>- Restructured the in-game guide for BluFor and OpFor<br/><br/><font size=""16"">Version 2</font><br/><br/>- Removed a custom spectator mode in favour of BI's<br/>- Blufor respawn time now 105s, can be changed in parameters<br/>- Updated briefing to reflect some recent changes <br/>- Fix wrongly displayed minimum player count<br/><br/><font size=""16"">Version 1</font><br/><br/>Initial release"
3333

3434
// Handle markers
3535
if(side group player == west) then

initWeaponsCache.sqf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ if(isServer) then
3232
_cache addMagazineCargoGlobal ["RPG32_F", 1];
3333
_cache addMagazineCargoGlobal ["150Rnd_762x54_Box", 1];
3434
_cache addMagazineCargoGlobal ["30Rnd_65x39_caseless_green", 3];
35+
_cache addMagazineCargoGlobal ["30Rnd_556x45_Stanag", 2];
3536
_cache addMagazineCargoGlobal ["10Rnd_762x54_Mag", 3];
3637
_cache addMagazineCargoGlobal ["ATMine_Range_Mag", 1];
3738
_cache addMagazineCargoGlobal ["APERSMine_Range_Mag", 1];

mission.sqm

1.61 KB
Binary file not shown.

tracker.sqf

Lines changed: 12 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
/* ******************** Defines ***************** */
22

3-
#define INFANTRY_MIN_TIME 160
4-
#define INFANTRY_VAR 20
3+
#define INFANTRY_MIN_TIME 175
4+
#define INFANTRY_VAR 10
55

66
// Initial wait before drone tracking starts
77
#define INITIAL_WAIT initialDroneDelay
88

9-
// Delay after drones are online and the first check is done
10-
#define MIN_FIRST_TRACKING_DELAY 10
11-
#define RAND_FIRST_TRACKING_DELAY 10
9+
// Delay after drones are turned online and the first check is done
10+
#define MIN_FIRST_TRACKING_DELAY 5
11+
#define RAND_FIRST_TRACKING_DELAY 8
1212

1313
#define MAX_CHANCE 100
1414

1515
#define INFANTRY_CHANCE 20
1616

1717

18-
#define VEHICLE_MIN_TIME 20
18+
// This is the time when any manned vehicles will be captured & tracked
19+
#define VEHICLE_MIN_TIME 35
1920
#define VEHICLE_VAR 10
20-
#define VEHICLE_SWEETSPOT 20
21+
// The time when only old vehicles are being checked, and no new vehicles are being added to the list
22+
#define VEHICLE_SWEETSPOT 10
23+
2124
#define ROAD_DISTANCE 8
2225

2326
#define VEHICLE_MIN_CHANCE 30
@@ -28,7 +31,7 @@
2831

2932
#define SPOT_COUNT_VAR "mh_drone_spotcount"
3033
#define SPOT_POSITION_VAR "mh_drone_spotposition"
31-
#define SPOT_DISTANCE 130
34+
#define SPOT_DISTANCE 115
3235

3336
/* ******************** End defines ***************** */
3437

@@ -269,49 +272,4 @@ nextVehicleCheckUnits = [ ];
269272
};
270273
};
271274
// End while loop
272-
};
273-
274-
/*private ["_droneCheck"];
275-
_droneCheck = {
276-
private ["_detected"];
277-
_detected = false;
278-
279-
{
280-
281-
if(side _x == east) then
282-
{
283-
private ["_rand", "_chance"];
284-
_rand = floor random (MAX_CHANCE + 1);
285-
_chance = INFANTRY_CHANCE;
286-
287-
if(vehicle _x != _x) then
288-
{
289-
_chance = VEHICLE_CHANCE;
290-
};
291-
292-
diag_log format["Checking %1, chance is %2, random is %3", name _x, _chance, _rand];
293-
294-
if(_rand <= _chance) then
295-
{
296-
diag_log format["Detected: %1", name _x];
297-
_detected = true;
298-
[[[_x, detectionRadius, detectionRadiusVehicle], "trackerMarker.sqf"], "BIS_fnc_execVM", West] call BIS_fnc_MP;
299-
sleep 2;
300-
};
301-
};
302-
} forEach (if (isMultiplayer) then {playableUnits} else {switchableUnits});
303-
304-
if(!_detected) then
305-
{
306-
[[west, "Drone operators have nothing to report", "side"], "Mh_fnc_chatMessage", west] call BIS_fnc_MP;
307-
};
308-
};
309-
310-
while{true} do
311-
{
312-
call _droneCheck;
313-
_waitingTime = MIN_TRACKER_TIME + random TRACKER_TIME_VAR;
314-
diag_log format ["Drones sleeping %1 seconds", _waitingTime];
315-
316-
sleep _waitingTime;
317-
};*/
275+
};

trackerMarker.sqf

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
#define TIER2_SPREAD 10
22
#define TIER3_SPREAD 20
33

4-
#define TIER2_MULTIPLIER 1.8
5-
#define TIER3_MULTIPLIER 2.3
4+
#define TIER2_MULTIPLIER 1.6
5+
#define TIER3_MULTIPLIER 2.5
66

77
#define MARKER_STAYING_TIME 240
88

9+
#define WATER_RETRIES 20
10+
911
if(isNil "currentMarkers") then { currentMarkers = [ ]; };
1012

11-
private["_calculateRadius"];
12-
_calculateRadius = {
13+
private _calculateRadius = {
1314
private["_rand"];
1415
_rand = _this select 0;
1516

@@ -42,6 +43,24 @@ _calculateRadius = {
4243
_radius;
4344
};
4445

46+
private _calculatePosition = {
47+
params ["_target", "_radius"];
48+
private _pos = position _target;
49+
private _markerPos = [];
50+
// Regardless if the player is in water or not we want to run some retries to make sure the marker ends up on the mainland
51+
// This way, unless the target is out in the sea, the marker will always stay close to the coast giving less info regarding the position of the player
52+
// Not an ideal solution, especially since it runs a retry per every fail, but it should be enough for now
53+
for "_i" from 0 to WATER_RETRIES do
54+
{
55+
private _yDist = _radius - random ( _radius * 2);
56+
private _maxX = sqrt ( _radius^2 - _yDist^2 );
57+
private _xDist = _maxX - random (_maxX * 2);
58+
59+
_markerPos = [(_pos select 0) + _xDist,(_pos select 1) + _yDist, 0];
60+
if(!surfaceIsWater _markerPos) exitWith { };
61+
};
62+
_markerPos;
63+
};
4564

4665
private ["_target", "_radius", "_rand", "_chance"];
4766
_target = _this select 0;
@@ -54,22 +73,13 @@ _radius = [_rand, _chance, _radius] call _calculateRadius;
5473

5574
if(_radius > 0) then
5675
{
57-
private["_pos"];
58-
_pos = position _target;
59-
60-
private ["_yDist", "_xDist", "_maxX"];
61-
_yDist = _radius - random ( _radius * 2);
62-
_maxX = sqrt ( _radius^2 - _yDist^2 );
63-
_xDist = _maxX - random (_maxX * 2);
64-
6576
private["_markerName", "_timerMarkerName"];
6677
_markerName = [droneTrackerMarkers] call BIS_fnc_arrayShift;
6778
droneTrackerMarkers pushBack _markerName;
6879

6980
_timeMarkerName = _markerName + "_time";
7081

71-
private["_markerPos"];
72-
_markerPos = [(_pos select 0) + _xDist,(_pos select 1) + _yDist, 0];
82+
private _markerPos = [_target, _radius] call _calculatePosition;
7383

7484
private ["_markerColor"];
7585
_markerColor = "ColorRed";

0 commit comments

Comments
 (0)