initial files
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
private _convoy_destinations_markers = [];
|
||||
private _load_box_fnc = compileFinal preprocessFileLineNumbers "scripts\client\ammoboxes\do_load_box.sqf";
|
||||
|
||||
while { count _convoy_destinations_markers < 3 } do { _convoy_destinations_markers pushback ([2000,999999,false] call KPLIB_fnc_getOpforSpawnPoint); };
|
||||
|
||||
private _couldnt_spawn = false;
|
||||
{ if ( _x == "" ) exitWith { _couldnt_spawn = true; }; } foreach _convoy_destinations_markers;
|
||||
if ( _couldnt_spawn ) exitWith {["Could not find enough map positions for convoy hijack mission", "ERROR"] call KPLIB_fnc_log;};
|
||||
|
||||
private _convoy_destinations = [];
|
||||
{ _convoy_destinations pushback (markerPos _x); } foreach _convoy_destinations_markers;
|
||||
|
||||
private _spawnpos = _convoy_destinations select 0;
|
||||
[4, _spawnpos] remoteExec ["remote_call_intel"];
|
||||
|
||||
private _scout_vehicle = [_spawnpos getPos [30, 0], opfor_mrap, true, false] call KPLIB_fnc_spawnVehicle;
|
||||
private _escort_vehicle = [_spawnpos getPos [10, 0], selectRandom opfor_vehicles_low_intensity, true, false] call KPLIB_fnc_spawnVehicle;
|
||||
private _transport_vehicle = [_spawnpos getPos [10, 180], opfor_ammobox_transport, true, false] call KPLIB_fnc_spawnVehicle;
|
||||
|
||||
private _boxes_amount = 0;
|
||||
{
|
||||
if ( _x select 0 == opfor_ammobox_transport ) exitWith { _boxes_amount = (count _x) - 2 };
|
||||
} foreach KPLIB_transportConfigs;
|
||||
|
||||
if ( _boxes_amount == 0 ) exitWith {["Opfor ammobox truck classname doesn't allow for ammobox transport, correct your preset and/or transport config", "ERROR"] call KPLIB_fnc_log;};
|
||||
|
||||
GRLIB_secondary_in_progress = 1; publicVariable "GRLIB_secondary_in_progress";
|
||||
|
||||
private _boxes_loaded = 0;
|
||||
|
||||
while { _boxes_loaded < _boxes_amount } do {
|
||||
_boxes_loaded = _boxes_loaded + 1;
|
||||
sleep 0.5;
|
||||
private _next_box = [KP_liberation_ammo_crate, 100, _spawnpos getPos [15, 135]] call KPLIB_fnc_createCrate;
|
||||
sleep 0.5;
|
||||
[_next_box, 50] call _load_box_fnc;
|
||||
};
|
||||
|
||||
sleep 0.5;
|
||||
|
||||
private _troop_vehicle = [_spawnpos getPos [30, 180], opfor_transport_truck, true, true, false ] call KPLIB_fnc_spawnVehicle;
|
||||
|
||||
sleep 0.5;
|
||||
|
||||
private _convoy_group = group driver _scout_vehicle;
|
||||
( crew _escort_vehicle + crew _transport_vehicle + crew _troop_vehicle ) joinSilent _convoy_group;
|
||||
|
||||
sleep 0.5;
|
||||
|
||||
{
|
||||
_x addEventHandler ["HandleDamage", { private [ "_damage" ]; if ( side (_this select 3) != GRLIB_side_friendly ) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ];
|
||||
} foreach [ _scout_vehicle, _escort_vehicle, _transport_vehicle, _troop_vehicle ];
|
||||
|
||||
_convoy_group setFormation "FILE";
|
||||
_convoy_group setBehaviour "SAFE";
|
||||
_convoy_group setCombatMode "GREEN";
|
||||
_convoy_group setSpeedMode "LIMITED";
|
||||
|
||||
while {(count (waypoints _convoy_group)) != 0} do {deleteWaypoint ((waypoints _convoy_group) select 0);};
|
||||
{_x doFollow leader _convoy_group} foreach units _convoy_group;
|
||||
|
||||
_waypoint = _convoy_group addWaypoint [_convoy_destinations select 1, 0];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
_waypoint setWaypointCompletionRadius 50;
|
||||
|
||||
_waypoint = _convoy_group addWaypoint [_convoy_destinations select 2, 0];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
_waypoint setWaypointCompletionRadius 50;
|
||||
|
||||
_waypoint = _convoy_group addWaypoint [_convoy_destinations select 0, 0];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
_waypoint setWaypointCompletionRadius 50;
|
||||
|
||||
_waypoint = _convoy_group addWaypoint [_convoy_destinations select 0, 0];
|
||||
_waypoint setWaypointType "CYCLE";
|
||||
_waypoint setWaypointCompletionRadius 50;
|
||||
|
||||
private _troops_group = createGroup [GRLIB_side_enemy, true];
|
||||
{
|
||||
[_x, _spawnpos, _troops_group, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit;
|
||||
} foreach ([] call KPLIB_fnc_getSquadComp);
|
||||
{_x moveInCargo _troop_vehicle} foreach (units _troops_group);
|
||||
|
||||
private _convoy_marker = createMarkerLocal [ format [ "convoymarker%1", round time], getpos _transport_vehicle ];
|
||||
_convoy_marker setMarkerText (localize "STR_SECONDARY_CSAT_CONVOY");
|
||||
_convoy_marker setMarkerType "o_armor";
|
||||
_convoy_marker setMarkerColor GRLIB_color_enemy_bright;
|
||||
|
||||
private _convoy_marker_wp1 = createMarkerLocal [ format [ "convoymarkerwp1%1", round time], _convoy_destinations select 0];
|
||||
private _convoy_marker_wp2 = createMarkerLocal [ format [ "convoymarkerwp2%1", round time], _convoy_destinations select 1];
|
||||
private _convoy_marker_wp3 = createMarkerLocal [ format [ "convoymarkerwp3%1", round time], _convoy_destinations select 2];
|
||||
|
||||
{
|
||||
_x setMarkerText (localize "STR_SECONDARY_CSAT_CONVOY_WP");
|
||||
_x setMarkerType "o_armor";
|
||||
_x setMarkerColor GRLIB_color_enemy_bright;
|
||||
_x setMarkerSize [0.6, 0.6];
|
||||
} foreach [_convoy_marker_wp1, _convoy_marker_wp2, _convoy_marker_wp3];
|
||||
|
||||
private _mission_in_progress = true;
|
||||
private _convoy_attacked = false;
|
||||
private _convoy_flee = false;
|
||||
private _disembark_troops = false;
|
||||
|
||||
while { _mission_in_progress } do {
|
||||
|
||||
if ( !(alive _transport_vehicle) || !(alive driver _transport_vehicle) ) then {
|
||||
_mission_in_progress = false;
|
||||
};
|
||||
|
||||
_convoy_marker setMarkerPos (getpos _transport_vehicle);
|
||||
|
||||
if ( !_convoy_attacked ) then {
|
||||
{
|
||||
if ( !(alive _x) || (damage _x > 0.3) || !(alive driver _x)) exitWith { _convoy_attacked = true; };
|
||||
} foreach [_scout_vehicle, _escort_vehicle, _transport_vehicle, _troop_vehicle];
|
||||
};
|
||||
|
||||
if ( _convoy_attacked && !_disembark_troops) then {
|
||||
|
||||
_disembark_troops = true;
|
||||
|
||||
if (alive (driver _troop_vehicle)) then {
|
||||
private _troop_driver_group = createGroup [GRLIB_side_enemy, true];
|
||||
[ driver _troop_vehicle ] joinSilent _troop_driver_group;
|
||||
sleep 1;
|
||||
while {(count (waypoints _troop_driver_group)) != 0} do {deleteWaypoint ((waypoints _troop_driver_group) select 0);};
|
||||
_waypoint = _troop_driver_group addWaypoint [getpos _troop_vehicle, 0];
|
||||
_waypoint setWaypointType "MOVE";
|
||||
sleep 3;
|
||||
};
|
||||
|
||||
{
|
||||
unAssignVehicle _x;
|
||||
_x action ["eject", vehicle _x];
|
||||
_x action ["getout", vehicle _x];
|
||||
unAssignVehicle _x;
|
||||
sleep 0.7;
|
||||
} foreach (units _troops_group);
|
||||
|
||||
_troops_group setBehaviour "COMBAT";
|
||||
_troops_group setCombatMode "RED";
|
||||
};
|
||||
|
||||
if ( _convoy_attacked && !_convoy_flee) then {
|
||||
_convoy_flee = true;
|
||||
_convoy_group setBehaviour "COMBAT";
|
||||
_convoy_group setSpeedMode "FULL";
|
||||
};
|
||||
|
||||
sleep 5;
|
||||
};
|
||||
|
||||
sleep 20;
|
||||
|
||||
deleteMarker _convoy_marker;
|
||||
{ deleteMarker _x } foreach [_convoy_marker_wp1, _convoy_marker_wp2, _convoy_marker_wp3 ];
|
||||
|
||||
combat_readiness = round (combat_readiness * 0.85);
|
||||
stats_secondary_objectives = stats_secondary_objectives + 1;
|
||||
[5] remoteExec ["remote_call_intel"];
|
||||
GRLIB_secondary_in_progress = -1; publicVariable "GRLIB_secondary_in_progress";
|
||||
sleep 1;
|
||||
[] spawn KPLIB_fnc_doSave;
|
||||
Reference in New Issue
Block a user