Open Coryf88 opened 1 year ago
Anyway to replicate the error?
Probably not in single player, I have a feeling that a locality change is needed for it to occur. So, replication would probably be:
I didn't have any luck replicating it.
Spawn Server AI (Local exec)
[player, { private _unit = createGroup [side _this, true] createUnit ["B_Survivor_F", getPosWorld _this select [0, 2], [], 0, "NONE"]; { _x addCuratorEditableObjects [[_unit], false] } forEach allCurators; }] remoteExec ["call", 2];
Spawn HC AI (Local exec)
[player, { private _unit = createGroup [side _this, true] createUnit ["B_Survivor_F", getPosWorld _this select [0, 2], [], 0, "NONE"]; [_unit, { { _x addCuratorEditableObjects [[_this], false] } forEach allCurators; }] remoteExec ["call", 2]; }] remoteExec ["call", entities "HeadlessClient_F" select 0];
HC Auto-test with dead driver (Local exec)
[["UK3CB_CW_SOV_O_EARLY_BMP1", 10, player], {
params ["_vehicleClass", "_attempts", "_player"];
private _pos = getPosWorld _player;
private _side = side _player;
private _vehicle = createVehicle [_vehicleClass, _pos select [0, 2]];
private _hc = entities "HeadlessClient_F" select 0;
private _hcClient = owner _hc;
_pos = getPosWorld _vehicle;
private _group = createGroup [_side, false];
_group setGroupOwner _hcClient;
private _running = true;
sleep 1;
while { _running && _attempts > 0 } do {
[[_group, _pos], {
params ["_group", "_pos"];
private _unit = _group createUnit ["B_Survivor_F", _pos select [0, 2], [], 0, "NONE"];
}] remoteExec ["call", _hc];
sleep 0.01;
waitUntil { { alive _x } count units _group > 0 };
private _ai = units _group select { alive _x } select 0;
[_ai, _vehicle] remoteExec ["moveInDriver", _hc];
waitUntil { owner _vehicle == _hcClient };
_ai setDamage 1;
[_player, ["getInDriver", _vehicle]] remoteExec ["action", remoteExecutedOwner];
waitUntil { !local _vehicle && owner _vehicle == remoteExecutedOwner };
sleep 2;
if ((getPosWorld _vehicle) distanceSqr _pos > 1) then {
_running = false;
["Arma'd"] remoteExec ["systemChat", remoteExecutedOwner];
} else {
_player moveOut _vehicle;
waitUntil { driver _vehicle != _player };
sleep 1;
_attempts = _attempts - 1;
};
deleteVehicle _ai;
};
deleteGroup _group;
deleteVehicle _vehicle;
if (_attempts < 1) then {
["Test attempts exhausted"] remoteExec ["systemChat", remoteExecutedOwner];
} else {
["Test complete"] remoteExec ["systemChat", remoteExecutedOwner];
};
}] remoteExec ["spawn", 2];
Example
I originally thought this was caused by RHS's engine start script, but I'm having doubts after reviewing the code again. For reference/testing:
RHS_ENGINE_STARTUP_OFF = true;
disables RHS's engine start script.Perhaps ejection of the dead body causes it? Similar to driving over AI. Though, I can only recall occurrences where it affected RHS.