mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 19:52:38 +03:00
These may exceed 2048 in some cases, so best to be safe and use str
formatText.
Partial revert of fbfb124 to more readable form
93 lines
2.5 KiB
Plaintext
93 lines
2.5 KiB
Plaintext
private ["_object","_worldspace","_location","_dir","_class","_uid","_dam","_hitpoints","_selection","_array","_damage","_fuel","_key","_totaldam","_spawnDMG","_characterID","_result","_outcome","_oid"];
|
|
//[_veh,[_dir,_location],"V3S_Civ",true]
|
|
#include "\z\addons\dayz_server\compile\server_toggle_debug.hpp"
|
|
|
|
_object = _this select 0;
|
|
_worldspace = _this select 1;
|
|
_class = _this select 2;
|
|
_spawnDMG = _this select 3;
|
|
_characterID = _this select 4;
|
|
|
|
_fuel = 1;
|
|
_damage = 0;
|
|
_array = [];
|
|
|
|
#ifdef OBJECT_DEBUG
|
|
diag_log ("PUBLISH: Attempt " + str(_object));
|
|
#endif
|
|
|
|
_dir = _worldspace select 0;
|
|
_location = _worldspace select 1;
|
|
_uid = _worldspace call dayz_objectUID2;
|
|
|
|
if (_spawnDMG) then {
|
|
_fuel = 0;
|
|
if (getNumber(configFile >> "CfgVehicles" >> _class >> "isBicycle") != 1) then {
|
|
_totaldam = 0;
|
|
_hitpoints = _object call vehicle_getHitpoints;
|
|
{
|
|
_dam = call generate_new_damage;
|
|
_selection = getText(configFile >> "cfgVehicles" >> _class >> "HitPoints" >> _x >> "name");
|
|
if (_dam > 0) then {
|
|
_array set [count _array,[_selection,_dam]];
|
|
_totaldam = _totaldam + _dam;
|
|
};
|
|
} count _hitpoints;
|
|
_damage = 0;
|
|
_fuel = (random(DynamicVehicleFuelHigh-DynamicVehicleFuelLow)+DynamicVehicleFuelLow) / 100;
|
|
};
|
|
};
|
|
|
|
_key = str formatText["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance,_class,_damage,_characterID,_worldspace,[],_array,_fuel,_uid];
|
|
|
|
#ifdef OBJECT_DEBUG
|
|
diag_log ("HIVE: WRITE: "+ str(_key));
|
|
#endif
|
|
|
|
_key call server_hiveWrite;
|
|
|
|
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
|
|
|
|
// GET DB ID
|
|
_key = format["CHILD:388:%1:",_uid];
|
|
|
|
#ifdef OBJECT_DEBUG
|
|
diag_log ("HIVE: WRITE: "+ str(_key));
|
|
#endif
|
|
|
|
_result = _key call server_hiveReadWrite;
|
|
_outcome = _result select 0;
|
|
|
|
if (_outcome != "PASS") then {
|
|
deleteVehicle _object;
|
|
diag_log("CUSTOM: failed to get id for : " + str(_uid));
|
|
} else {
|
|
_oid = _result select 1;
|
|
_object setVariable ["ObjectID", _oid, true];
|
|
|
|
#ifdef OBJECT_DEBUG
|
|
diag_log("CUSTOM: Selected " + str(_oid));
|
|
#endif
|
|
|
|
_object setVariable ["lastUpdate",diag_tickTime];
|
|
_object setVariable ["CharacterID", _characterID, true];
|
|
_object setDamage _damage;
|
|
|
|
{
|
|
_selection = _x select 0;
|
|
_dam = _x select 1;
|
|
if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8};
|
|
[_object,_selection,_dam] call fnc_veh_setFixServer;
|
|
} count _array;
|
|
|
|
_object setFuel _fuel;
|
|
_object setvelocity [0,0,1];
|
|
_object call fnc_veh_ResetEH;
|
|
|
|
PVDZE_veh_Init = _object;
|
|
publicVariable "PVDZE_veh_Init";
|
|
|
|
diag_log ("PUBLISH: Created " + (_class) + " with ID " + str(_uid));
|
|
};
|
|
|