From 070a870fc1fcb9cf74cf0b81c6eddbe247e4910e Mon Sep 17 00:00:00 2001 From: "[VB]AWOL" Date: Fri, 23 Aug 2013 11:43:09 -0500 Subject: [PATCH] fly cleanup and do not remove player bodys --- SQF/dayz_server/init/server_functions.sqf | 101 ++++++---------------- 1 file changed, 27 insertions(+), 74 deletions(-) diff --git a/SQF/dayz_server/init/server_functions.sqf b/SQF/dayz_server/init/server_functions.sqf index d007ea078..c72f1b7b5 100644 --- a/SQF/dayz_server/init/server_functions.sqf +++ b/SQF/dayz_server/init/server_functions.sqf @@ -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 =