Files
Benjamin Kyd c8014ec81e initial commit
2019-06-05 00:45:50 +01:00

68 lines
2.8 KiB
Plaintext

#include "\life_server\script_macros.hpp"
/*
File: fn_cleanup.sqf
Author: Bryan "Tonic" Boardwine
Description:
Server-side cleanup script on vehicles.
Sort of a lame way but whatever. Yep someone should look at it!
*/
private "_deleted";
_deleted = false;
for "_i" from 0 to 1 step 0 do {
private ["_veh","_units","_fuel"];
uiSleep (60 * 60);
{
_protect = false;
_veh = _x;
_vehicleClass = getText(configFile >> "CfgVehicles" >> (typeOf _veh) >> "vehicleClass");
_fuel = 1;
if (!isNil {_veh getVariable "NPC"} && {_veh getVariable "NPC"}) then {_protect = true;};
if ((_vehicleClass in ["Car","Air","Ship","Armored","Submarine"]) && {!(_protect)}) then {
if (LIFE_SETTINGS(getNumber,"save_vehicle_fuel") isEqualTo 1) then {_fuel = (fuel _veh);};
_dbInfo = _veh getVariable ["dbInfo",[]];
_units = {(_x distance _veh < 300)} count playableUnits;
if (count crew _x isEqualTo 0) then {
switch (true) do {
case ((_x getHitPointDamage "HitEngine") > 0.7 && _units isEqualTo 0) : {deleteVehicle _x; _deleted = true;};
case ((_x getHitPointDamage "HitLFWheel") > 0.98 && _units isEqualTo 0) : {deleteVehicle _x; _deleted = true;};
case ((_x getHitPointDamage "HitLF2Wheel") > 0.98 && _units isEqualTo 0) : {deleteVehicle _x; _deleted = true;};
case ((_x getHitPointDamage "HitRFWheel") > 0.98 && _units isEqualTo 0) : {deleteVehicle _x; _deleted = true;};
case ((_x getHitPointDamage "HitRF2Wheel") > 0.98 && _units isEqualTo 0) : {deleteVehicle _x; _deleted = true;};
case (_units isEqualTo 0): {deleteVehicle _x; _deleted = true;};
};
};
if (_deleted) then {
waitUntil {isNull _veh};
_deleted = false;
};
if (isNull _veh) then {
if (count _dbInfo > 0) then {
_uid = _dbInfo select 0;
_plate = _dbInfo select 1;
_query = format ["UPDATE vehicles SET active='0', fuel='%3' WHERE pid='%1' AND plate='%2'",_uid,_plate,_fuel];
[_query,1] call DB_fnc_asyncCall;
};
};
};
} forEach vehicles;
uiSleep (3 * 60); //3 minute cool-down before next cycle.
{
if ((typeOf _x) in ["Land_BottlePlastic_V1_F","Land_TacticalBacon_F","Land_Can_V3_F","Land_CanisterFuel_F", "Land_Can_V3_F","Land_Money_F","Land_Suitcase_F"]) then {
deleteVehicle _x;
};
} forEach (allMissionObjects "Thing");
uiSleep (2 * 60);
{
deleteVehicle _x;
} forEach (allMissionObjects "GroundWeaponHolder");
};