Enhance mission generator markers with alpha, brush, and color settings

This commit is contained in:
Jacob Schmidt 2026-05-22 23:24:18 -05:00
parent afb3c665af
commit 256ce0d5af
5 changed files with 28 additions and 68 deletions

View File

@ -355,6 +355,9 @@ CaptureHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
_extZone setMarkerShape "ELLIPSE";
_extZone setMarkerSize [160, 160];
_extZone setMarkerText format ["HVT Extraction Zone %1", _grid];
_extZone setMarkerAlpha 0.5;
_extZone setMarkerBrush "DiagGrid";
_extZone setMarkerColor "ColorOrange";
private _success = [
"hvt",

View File

@ -291,6 +291,9 @@ DefendMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
_defenseZone setMarkerShape "ELLIPSE";
_defenseZone setMarkerSize [25, 25];
_defenseZone setMarkerText format ["Defense Zone %1", _grid];
_defenseZone setMarkerAlpha 0.5;
_defenseZone setMarkerBrush "DiagGrid";
_defenseZone setMarkerColor "ColorOrange";
private _success = [
"defend",

View File

@ -235,7 +235,9 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
private _position = _locationData getOrDefault ["position", [0, 0, 0]];
private _grid = _locationData getOrDefault ["grid", mapGridPosition _position];
private _taskID = format ["task_delivery_%1", round (diag_tickTime * 1000)];
private _pickupMarker = format ["forge_delivery_pickup_%1", _taskID];
private _deliveryZone = format ["forge_delivery_zone_%1", _taskID];
private _dropoffMarker = format ["forge_delivery_dropoff_%1", _taskID];
private _worldSize = worldSize;
private _center = [_worldSize / 2, _worldSize / 2, 0];
private _deliveryPos = [0, 0, 0];
@ -265,10 +267,23 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
if (_cargoObjects isEqualTo []) exitWith { "" };
createMarker [_pickupMarker, _position];
_pickupMarker setMarkerType "hd_pickup";
_pickupMarker setMarkerColor "ColorBLUFOR";
_pickupMarker setMarkerText format ["Pickup %1", _grid];
createMarker [_deliveryZone, _deliveryPos];
_deliveryZone setMarkerShape "ELLIPSE";
_deliveryZone setMarkerSize [25, 25];
_deliveryZone setMarkerText format ["Delivery Zone %1", _deliveryGrid];
_deliveryZone setMarkerAlpha 0.5;
_deliveryZone setMarkerBrush "DiagGrid";
_deliveryZone setMarkerColor "ColorOrange";
createMarker [_dropoffMarker, _deliveryPos];
_dropoffMarker setMarkerType "hd_end";
_dropoffMarker setMarkerColor "ColorBLUFOR";
_dropoffMarker setMarkerText format ["Drop-off %1", _deliveryGrid];
private _fundsReward = _rewardRange call BIS_fnc_randomNum;
private _reputationReward = _reputationRange call BIS_fnc_randomNum;
@ -305,7 +320,9 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
] call forge_server_task_fnc_startTask;
if !(_success) exitWith {
deleteMarker _pickupMarker;
deleteMarker _deliveryZone;
deleteMarker _dropoffMarker;
""
};
@ -313,7 +330,7 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
_activeMissionRegistry set [_taskID, createHashMapFromArray [
["generatorType", _self call ["getGeneratorType", []]],
["position", _position],
["markers", [_deliveryZone]],
["markers", [_pickupMarker, _deliveryZone, _dropoffMarker]],
["startedAt", serverTime]
]];
_manager set ["activeMissionRegistry", _activeMissionRegistry];

View File

@ -555,6 +555,9 @@ HostageMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
_extZone setMarkerShape "ELLIPSE";
_extZone setMarkerSize [25, 25];
_extZone setMarkerText format ["Hostage Extraction %1", _grid];
_extZone setMarkerAlpha 0.5;
_extZone setMarkerBrush "DiagGrid";
_extZone setMarkerColor "ColorOrange";
private _hostageCount = count _hostageUnits;
private _limitFail = 1;

View File

@ -295,67 +295,6 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
private _reputationPenalty = _penaltyRange call BIS_fnc_randomNum;
private _timeLimit = _timeRange call BIS_fnc_randomNum;
private _extZone = format ["forge_hvt_ext_zone_%1", _taskID];
private _extPos = [0, 0, 0];
private _extZoneMarkers = allMapMarkers select {
(toLowerANSI (markerText _x) find "extzone") == 0
|| { (toLowerANSI _x find "extzone") == 0 }
|| { (toLowerANSI (markerText _x) find "extmarker") == 0 }
|| { (toLowerANSI _x find "extmarker") == 0 }
};
if (_extZoneMarkers isNotEqualTo []) then {
_extPos = getMarkerPos (selectRandom _extZoneMarkers);
_extPos set [2, 0];
} else {
private _blkListMarkers = allMapMarkers select { markerShape _x in ["RECTANGLE", "ELLIPSE"] };
_blkListMarkers = _blkListMarkers select {
(
(toLowerANSI _x find "blklist") == 0
|| { (toLowerANSI (markerText _x) find "blklist") == 0 }
|| { (toLowerANSI _x find "blkmarker") == 0 }
|| { (toLowerANSI (markerText _x) find "blkmarker") == 0 }
)
&& { getMarkerPos _x distance2D [0, 0] > 0 }
};
if (_blkListMarkers isNotEqualTo []) then {
private _selectedBlk = selectRandom _blkListMarkers;
private _attempt = 0;
while { _attempt < 60 && { _extPos isEqualTo [0, 0, 0] } } do {
_attempt = _attempt + 1;
private _candidate = [getMarkerPos _selectedBlk, 0, 2000, 3, 0, 0.3, 0] call BIS_fnc_findSafePos;
if (_candidate isEqualTo [0, 0, 0]) then { continue; };
if !(_candidate inArea _selectedBlk) then { continue; };
_candidate set [2, 0];
_extPos = _candidate;
};
};
if (_extPos isEqualTo [0, 0, 0]) then {
private _attempt = 0;
while { _attempt < 80 && { _extPos isEqualTo [0, 0, 0] } } do {
_attempt = _attempt + 1;
private _probe = [random worldSize, random worldSize, 0];
if ((_probe distance2D _position) < 2000) then { continue; };
private _safe = [_probe, 0, 500, 3, 0, 0.3, 0] call BIS_fnc_findSafePos;
if (_safe isEqualTo [0, 0, 0]) then { continue; };
_safe set [2, 0];
_extPos = _safe;
};
};
if (_extPos isEqualTo [0, 0, 0]) then {
_extPos = _position vectorAdd [2500, 0, 0];
_extPos set [2, 0];
};
};
createMarker [_extZone, _extPos];
_extZone setMarkerShape "ELLIPSE";
_extZone setMarkerSize [160, 160];
_extZone setMarkerText format ["HVT Extraction Zone %1", _grid];
private _success = [
"hvt",
_taskID,
@ -366,7 +305,6 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
createHashMapFromArray [
["limitFail", 0],
["limitSuccess", 1],
["extractionZone", _extZone],
["captureHvt", false],
["funds", _fundsReward],
["ratingFail", _reputationPenalty],
@ -385,16 +323,12 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
"mission_manager"
] call forge_server_task_fnc_startTask;
if !(_success) exitWith {
deleteMarker _extZone;
""
};
if !(_success) exitWith { "" };
private _activeMissionRegistry = _manager getOrDefault ["activeMissionRegistry", createHashMap];
_activeMissionRegistry set [_taskID, createHashMapFromArray [
["generatorType", _self call ["getGeneratorType", []]],
["position", _position],
["markers", [_extZone]],
["startedAt", serverTime]
]];
_manager set ["activeMissionRegistry", _activeMissionRegistry];