fly cleanup and do not remove player bodys

This commit is contained in:
[VB]AWOL
2013-08-23 11:43:09 -05:00
parent 2811e2913a
commit 070a870fc1

View File

@@ -459,98 +459,51 @@ dayz_recordLogin = {
_key call server_hiveWrite;
};
///////////////
// from dayzero
///////////////
server_Delete =
// Cleanup flies
server_cleanFlies =
{
private["_body","_bodyGroup","_pos","_sfx"];
private ["_sound","_newdayz_flyMonitor"];
DZE_FlyWorkingSet = DZE_FlyWorkingSet+dayz_flyMonitor;
dayz_flyMonitor = [];
_body = _this select 0;
_bodyGroup = group _body;
_pos = getPosATL _body;
_sfx = nearestObject [_pos,"Sound_Flies"];
_body removeAllEventHandlers "HandleDamage";
_body removeAllEventHandlers "Killed";
_body removeAllEventHandlers "Fired";
_body removeAllEventHandlers "FiredNear";
deleteVehicle _body;
deleteGroup _bodyGroup;
if ((!isNull _sfx) and ((_sfx distance _pos) < 10)) then
_newdayz_flyMonitor = [];
{
deleteVehicle _sfx;
};
_sound = _x select 0;
_body = _x select 1;
// Remove flies
if (isNull _body) then {
deleteVehicle _sound;
[_body] call server_Delete;
} else {
_newdayz_flyMonitor set [count _newdayz_flyMonitor,_x];
};
} forEach DZE_FlyWorkingSet;
DZE_FlyWorkingSet = _newdayz_flyMonitor;
};
server_cleanDead =
{
private ["_deletedZombies","_deletedBodies","_timeStamp","_backpack","_magazines","_backpackMagazines"];
_deletedZombies = 0;
_deletedBodies = 0;
{
if (_x isKindOf "zZombie_Base") then
{
deleteVehicle _x;
_deletedZombies = _deletedZombies + 1;
}
else
{
_timeStamp = _x getVariable ["timeStamp",0];
//diag_log (format["CLEANUP: TIMESTAMP ON BODY: %1, VALUE: %2",(typeOf _x),_timeStamp]);
if (_timeStamp == 0) then
{
_handled = _x getVariable ["handled",true];
if (_handled) then {
_x enableSimulation false;
_backpack = unitBackpack _x;
if (!isNull _backpack) then
{
_magazines = magazines _x;
_backpackMagazines = getMagazineCargo _backpack;
//diag_log (format["CLEANUP: UNIT HAS BACKPACK, MAG COUNT: %1 PACK COUNT: %2",(count _magazines),(count _backpackMagazines)]);
if ((count _magazines < 4) and (count _backpackMagazines < 3)) then
{
[_x] call server_Delete;
_deletedBodies = _deletedBodies + 1;
}
else
{
_x setVariable ["timeStamp",diag_tickTime];
//diag_log (format["CLEANUP: TIMESTAMPED BODY WITH BACKPACK: %1",_x]);
};
}
else
{
_magazines = magazines _x;
//diag_log (format["CLEANUP: UNIT HAS NO BACKPACK, MAG COUNT: %1",(count _magazines)]);
if (count _magazines < 4) then
{
[_x] call server_Delete;
_deletedBodies = _deletedBodies + 1;
}
else
{
_x setVariable ["timeStamp",diag_tickTime];
//diag_log (format["CLEANUP: TIMESTAMPED BODY WITHOUT BACKPACK: %1",_x]);
};
};
}
else
{
if ((diag_tickTime - _timeStamp) > 2400) then
{
[_x] call server_Delete;
_deletedBodies = _deletedBodies + 1;
};
_body removeAllEventHandlers "HandleDamage";
_body removeAllEventHandlers "Killed";
_body removeAllEventHandlers "Fired";
_body removeAllEventHandlers "FiredNear";
};
};
} forEach allDead;
diag_log (format["CLEANUP: DELETED %1 PLAYERS AND %2 ZOMBIES",_deletedBodies,_deletedZombies]);
};
server_cleanLoot =