mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 12:12:34 +03:00
disconnect method from DayZ CE 1.8
This commit is contained in:
@@ -1,26 +1,34 @@
|
|||||||
private ["_invehicle","_isplayernearby","_object","_myGroup","_id","_playerID","_playerName","_characterID","_playerIDtoarray","_timeout","_message","_magazines"];
|
private ["_invehicle","_isplayernearby","_playerObj","_myGroup","_id","_playerUID","_playerName","_characterID","_timeout","_message","_magazines","_playerPos"];
|
||||||
_playerID = _this select 0;
|
_playerUID = _this select 0;
|
||||||
_playerName = _this select 1;
|
_playerName = _this select 1;
|
||||||
_object = call compile format["player%1",_playerID];
|
_playerObj = nil;
|
||||||
_characterID = _object getVariable ["CharacterID","0"];
|
_playerPos = [];
|
||||||
_timeout = _object getVariable["combattimeout",0];
|
{
|
||||||
|
if ((getPlayerUID _x) == _playerUID) exitWith { _playerObj = _x; _playerPos = getPosATL _playerObj;};
|
||||||
|
} forEach playableUnits;
|
||||||
|
|
||||||
_playerIDtoarray = [];
|
if (isNil "_playerObj") exitWith {
|
||||||
_playerIDtoarray = toArray _playerID;
|
diag_log format["%1: nil player object, _this:%2", __FILE__, _this];
|
||||||
|
};
|
||||||
|
|
||||||
|
diag_log format["get: %1 (%2), sent: %3 (%4)",typeName (getPlayerUID _playerObj), getPlayerUID _playerObj, typeName _playerUID, _playerUID];
|
||||||
|
|
||||||
|
if (!isNull _playerObj) then {
|
||||||
|
|
||||||
|
_characterID = _playerObj getVariable ["CharacterID","0"];
|
||||||
|
_timeout = _playerObj getVariable["combattimeout",0];
|
||||||
|
|
||||||
_invehicle = false;
|
_invehicle = false;
|
||||||
|
|
||||||
if (vehicle _object != _object) then {
|
if (vehicle _playerObj != _playerObj) then {
|
||||||
_object action ["eject", vehicle _object];
|
_playerObj action ["eject", vehicle _playerObj];
|
||||||
_invehicle = true;
|
_invehicle = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (59 in _playerIDtoarray) exitWith { };
|
|
||||||
|
|
||||||
if ((_timeout - time) > 0) then {
|
if ((_timeout - time) > 0) then {
|
||||||
|
|
||||||
_object setVariable["NORRN_unconscious",true, true];
|
_playerObj setVariable["NORRN_unconscious",true, true];
|
||||||
_object setVariable["unconsciousTime",300,true];
|
_playerObj setVariable["unconsciousTime",300,true];
|
||||||
|
|
||||||
diag_log format["COMBAT LOGGED: %1 (%2)", _playerName,_timeout];
|
diag_log format["COMBAT LOGGED: %1 (%2)", _playerName,_timeout];
|
||||||
//diag_log format["SET UNCONCIOUSNESS: %1", _playerName];
|
//diag_log format["SET UNCONCIOUSNESS: %1", _playerName];
|
||||||
@@ -30,37 +38,29 @@ if ((_timeout - time) > 0) then {
|
|||||||
[nil,nil,"per",rTITLETEXT,_message,"PLAIN DOWN"] call RE;
|
[nil,nil,"per",rTITLETEXT,_message,"PLAIN DOWN"] call RE;
|
||||||
};
|
};
|
||||||
|
|
||||||
//dayz_disco = dayz_disco - [_playerID];
|
diag_log format["DISCONNECT: %1 (%2) Object: %3, _characterID: %4", _playerName,_playerUID,_playerObj,_characterID];
|
||||||
if (!isNull _object) then {
|
|
||||||
|
|
||||||
diag_log format["DISCONNECT: %1 (%2) Object: %3, _characterID: %4", _playerName,_playerID,_object,_characterID];
|
_id = [_playerUID,_characterID,2] spawn dayz_recordLogin;
|
||||||
|
|
||||||
_id = [_playerID,_characterID,2] spawn dayz_recordLogin;
|
if (alive _playerObj) then {
|
||||||
|
|
||||||
if (alive _object) then {
|
_isplayernearby = (DZE_BackpackGuard and!_invehicle and ({(isPlayer _x) and (alive _x)} count (_playerPos nearEntities ["AllVehicles", 5]) > 1));
|
||||||
|
|
||||||
_isplayernearby = (DZE_BackpackGuard and!_invehicle and ({isPlayer _x} count (_object nearEntities ["AllVehicles", 5]) > 1));
|
|
||||||
|
|
||||||
// prevent saving more than 20 magazine items
|
// prevent saving more than 20 magazine items
|
||||||
_magazines = [(magazines _object),20] call array_reduceSize;
|
_magazines = [(magazines _playerObj),20] call array_reduceSize;
|
||||||
|
|
||||||
[_object,_magazines,true,true,_isplayernearby] call server_playerSync;
|
[_playerObj,_magazines,true,true,_isplayernearby] call server_playerSync;
|
||||||
|
|
||||||
// maybe not needed just testing
|
// maybe not needed just testing
|
||||||
_object removeAllEventHandlers "MPHit";
|
_playerObj removeAllMPEventHandlers "mphit";
|
||||||
_object enableSimulation false;
|
|
||||||
_object removeAllEventHandlers "HandleDamage";
|
|
||||||
_object removeAllEventHandlers "Killed";
|
|
||||||
_object removeAllEventHandlers "Fired";
|
|
||||||
_object removeAllEventHandlers "FiredNear";
|
|
||||||
|
|
||||||
_myGroup = group _object;
|
_myGroup = group _playerObj;
|
||||||
deleteVehicle _object;
|
deleteVehicle _playerObj;
|
||||||
deleteGroup _myGroup;
|
deleteGroup _myGroup;
|
||||||
} else {
|
} else {
|
||||||
//Update Vehicle
|
//Update Vehicle
|
||||||
{
|
{
|
||||||
[_x,"gear"] call server_updateObject;
|
[_x,"gear"] call server_updateObject;
|
||||||
} foreach (nearestObjects [getPosATL _object, dayz_updateObjects, 10]);
|
} foreach (nearestObjects [_playerPos, dayz_updateObjects, 10]);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user