This commit is contained in:
Eero af Heurlin 2016-07-26 02:01:42 +03:00
parent d40ff01b70
commit 060d3c5388
11 changed files with 416 additions and 385 deletions

View File

@ -1,4 +1,4 @@
diag_log format["createDropoffLZ called, _this: %1", _this];
//diag_log format["createDropoffLZ called, _this: %1", _this];
private _lzLocation = _this select 0;
private _bindToVehicle = _this select 1;
private _bindToSquad = _this select 2;
@ -45,7 +45,7 @@ private _assignTo = [_assignToPlayer, west];
// PONDER: make a parent task "ferry squad X" ??
private _taskid = format["dropoff_%1", lzCounter];
[_assignTo,[_taskid],[_longdesc, _shortdesc, _shortestDesc],getPos _lzLocation,"CREATED",(STARTPRIORITY-lzCounter),true, _taskType, true] call BIS_fnc_taskCreate;
_assignToPlayer setCurrentTask _taskid;
//_assignToPlayer setCurrentTask _taskid;
private _trg = createTrigger["EmptyDetector",getPos _lzLocation, false];
_trg setTriggerArea[lzSize,lzSize,0,false];
@ -60,7 +60,7 @@ scopeName "main";
while {true} do
{
scopeName "mainloop";
diag_log format["createDropoffLZ: ticking %1", _this];
//diag_log format["createDropoffLZ: ticking %1", _this];
if (( _taskid call BIS_fnc_taskCompleted)) then
{

View File

@ -1,4 +1,4 @@
diag_log format["createPickupLZ called, _this: %1", _this];
//diag_log format["createPickupLZ called, _this: %1", _this];
private _lzLocation = _this select 0;
private _assignExtra = _this select 1;
@ -12,13 +12,16 @@ if ((random 1) < hotLZChance) then
_lzhot = true
};
private _lzAA = false;
private _taskType = "move";
if ((random 1) < AAChance) then
{
_lzhot = true;
_lzAA = true;
};
private _taskType = "move";
if (_lzhot) then
{
_taskType = "defend";
_enemies = _enemies + ([_lzLocation, _lzAA] call createEnemySquads);
};
@ -56,7 +59,10 @@ if (!(_assignExtra isEqualTo false)) then
// PONDER: make a parent task "ferry squad X" ??
private _taskid = format["pickup_%1", lzCounter];
[_assignTo,[_taskid],[_longdesc, _shortdesc, _shortestDesc],getPos _lzLocation,"AUTOASSIGNED",(STARTPRIORITY-lzCounter),true, "meet", true] call BIS_fnc_taskCreate;
(_assignExtra select 0) setCurrentTask _taskid;
if (!(_assignExtra isEqualTo false)) then
{
// (_assignExtra select 0) setCurrentTask _taskid;
};
if (bSmoke) then
{
@ -75,7 +81,7 @@ scopeName "main";
while {true} do
{
scopeName "mainloop";
diag_log format["createPickupLZ: ticking %1", _this];
//diag_log format["createPickupLZ: ticking %1", _this];
if (( _taskid call BIS_fnc_taskCompleted)) then
{
@ -94,7 +100,9 @@ while {true} do
if (triggerActivated _trg) then
{
diag_log format["createPickupLZ: triggedred, loading up %1", _squad];
// TODO: Filter the list so that locations near currently active tasks are not considered
private _newLZLocation = (lzList - [_lzLocation]) call BIS_fnc_SelectRandom;
private _veh = [list _trg] call playerVehicleInList;
private _handle = [_veh, _squad, _taskid] spawn loadSquad;
waitUntil {isNull _handle};

View File

@ -1,4 +1,4 @@
diag_log format["ejectSquad called, _this: %1", _this];
//diag_log format["ejectSquad called, _this: %1", _this];
private _lz = _this select 0;
private _vehicle = _this select 1;
private _squad = _this select 2;
@ -22,7 +22,7 @@ scopeName "main";
while {true} do
{
scopeName "ejectloop";
diag_log format["ejectSquad: ticking %1", _this];
// diag_log format["ejectSquad: ticking %1", _this];
if (({(_x in _vehicle) && (alive _x)} count units _squad) == 0) then
{
// No squad units left alive inside
@ -34,4 +34,4 @@ while {true} do
[_squadCmdr, format["%1, everyone is out, you're clear to lift off", name _pilot]] remoteExec ['sideChat', _side];
diag_log format["ejectSquad done, _this: %1", _this];
//diag_log format["ejectSquad done, _this: %1", _this];

View File

@ -1,2 +1,3 @@
// Load the briefing (it will wait for the player object)
execVM "briefing.sqf";
player addRating 9999;

View File

@ -0,0 +1,20 @@
diag_log format["isLanded called, _this: %1", _this];
private _vehicle = _this select 0;
private _returnValue = false;
private _altitude = (getPosATL _vehicle) select 2;
private _isSlow = true;
{
if (_x > 0.5) then
{
_isSlow = false;
}
} forEach (velocity _vehicle);
if (_isSlow && (_altitude < 1)) then
{
_returnValue = true;
}
diag_log format["isLanded returning: %1", _returnValue];
_returnValue

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
diag_log format["playerVehicleInList called, _this: %1", _this];
//diag_log format["playerVehicleInList called, _this: %1", _this];
private _triggerList = _this select 0;
private _returnValue = false;
@ -7,7 +7,7 @@ scopeName "main";
{
private _plr = _x;
private _veh = vehicle _plr;
if ( (_plr != _veh) && (isTouchingGround _veh) && (_veh in _triggerList) ) then
if ( (_plr != _veh) && (isLanded _veh) && (_veh in _triggerList) ) then
{
_returnValue = _veh;
breakTo "main";

View File

@ -13,6 +13,8 @@ playerVehicleInList = compile preProcessfile "playerVehicleInList.sqf";
playerVehicleInListBool = compile preProcessfile "playerVehicleInListBool.sqf";
getSideTasks = compile preProcessfile "getSideTasks.sqf";
getSideActiveTasks = compile preProcessfile "getSideActiveTasks.sqf";
isLanded = compile preProcessfile "isLanded.sqf";
selectLZ = compile preProcessfile "selectLZ.sqf";
taskSpawner = compile preProcessfile "taskSpawner.sqf";
xenoRepair = compile preProcessfile "xenoRepair.sqf";

View File

@ -0,0 +1,13 @@
diag_log format["selectLZ called, _this: %1", _this];
private _excludeList = _this select 0;
private _returnValue = false;
private _candidates = lzList - _excludeList;
private _tasks = [west] call getSideActiveTasks;
scopeName "main";
while {true};
diag_log format["selectLZ returning: %1", _returnValue];
_returnValue

View File

@ -1,4 +1,4 @@
diag_log format["spawnSmokeBySquad called, _this: %1", _this];
//diag_log format["spawnSmokeBySquad called, _this: %1", _this];
private _bindToSquad = _this select 0;
private _smokeTgt = _this select 1;
private _smokeLocation = getPos _smokeTgt;
@ -12,7 +12,7 @@ private _keepSpawning = true;
// TODO: switch color based on arguments
while {_keepSpawning} do
{
diag_log format["spawnSmokeBySquad: spawning smoke to %1", _smokeLocation];
//diag_log format["spawnSmokeBySquad: spawning smoke to %1", _smokeLocation];
_hour = daytime;
if (_hour > 5 && _hour < 19) then
{
@ -36,5 +36,5 @@ while {_keepSpawning} do
};
} forEach (units _bindToSquad);
};
diag_log format["spawnSmokeBySquad done, _this: %1", _this];
//diag_log format["spawnSmokeBySquad done, _this: %1", _this];
deleteVehicle _trg;

View File

@ -8,6 +8,7 @@ while {true} do
while {count ([west] call getSideActiveTasks) < count _justPlayers} do
{
scopename "spawnloop";
// TODO: Filter the list so that locations near currently active tasks are not considered
private _newLZLocation = lzList call BIS_fnc_SelectRandom;
private _plrAssigned = false;
{