private["_class","_pos","_dir","_fuel","_charID","_worldspace","_ownerID","_discription","_worldspace"];
_class = _this select 0;
_pos = _this select 1;;
_dir = _this select 2;
_fuel = 1;
_charID = _this select 3;
_worldspace = [_dir,_pos];
_ownerID = _charID;
_discription = "Spawned by Admin"; // Discription for world_vehicle Table
/////Insert Veh into DB/////
//Wait for HIVE to be free
waitUntil{!hiveInUse};
hiveInUse = true;
_key = ["addVeh",[_class, _worldspace, _discription]];
diag_log("LEO: SERVER: Calling blishive: _key: " + str(_key));
_key call leo_hiveWrite;
sleep 0.1;
hiveInUse = false;
//////Read Veh from DB///////
//Get Veh page count
waitUntil{!hiveInUse};
hiveInUse = true;
_key = format["Q:%1:call Leo_proc_getVehsPageCount(%2)", (call fnc_instanceName), dayz_instance];
_result = "blisshive" callExtension _key;
_result = call compile _result;
l_pageCount = call compile ((_result select 0) select 0);
sleep 0.5;
hiveInUse = false;
diag_log("Leo: Got " + str(l_pageCount) + " pages of objects...");
//Load objects
waitUntil{!hiveInUse};
hiveInUse = true;
l_objList = [];
l_objCount = 0;
//_page = _pageCount;
_key = format["Q:%1:call Leo_proc_getVehs(%2, %3)", (call fnc_instanceName), dayz_instance, l_pageCount];
diag_log("Leo: Server: Load Objects: _key: " + str(_key));
_result = "blisshive" callExtension _key;
_result = call compile _result;
_end = ((count _result) - 1);
l_item = _result select _end;
if (count l_item > 0) then {
l_objList set [count l_objList, l_item];
l_objCount = l_objCount + 1;
//diag_log("DEBUG: Added object " + l_item);
};
sleep 0.5;
hiveInUse = false;
//Spawn objects
l_countr = 0;
{
//Parse individual vehicle row
l_countr = l_countr + 1;
l_idKey = call compile (_x select 0);
l_type = _x select 1;
l_ownerID = _x select 2;
l_pos = call compile (_x select 3);
l_dir = (l_pos) select 0;
l_pos = (l_pos) select 1;
l_intentory = call compile (_x select 4);
l_hitPoints = call compile (_x select 5);
l_fuel = call compile (_x select 6);
l_damage = call compile (_x select 7);
if (l_damage < 1) then {
//Create it
l_object = createVehicle [l_type, l_pos, [], 0, "CAN_COLLIDE"];
l_object setVariable ["lastUpdate",time];
l_object setVariable ["ObjectID", l_idKey, true];
l_object setVariable ["CharacterID", l_ownerID, true];
l_object setVariable ["ObjectUID", "0", true];
clearWeaponCargoGlobal l_object;
clearMagazineCargoGlobal l_object;
l_object setdir l_dir;
l_object setDamage l_damage;
if (l_object isKindOf "AllVehicles") then {
{
l_selection = _x select 0;
l_dam = _x select 1;
if (l_selection in dayZ_explosiveParts and l_dam > 0.8) then {l_dam = 0.8};
[l_object,l_selection,l_dam] call object_setFixServer;
} forEach l_hitpoints;
l_object setvelocity [0,0,1];
l_object setFuel l_fuel;
l_object addEventHandler ["HandleDamage", { _this call vehicle_handleDamage }];
l_object addEventHandler ["Killed", { _this call vehicle_handleKilled }];
l_object addEventHandler ["GetOut", { _this call vehicle_handleInteract }]; // @Bliss\addons\dayz_server\init\server_functions.sqf Ln 35
l_object addEventHandler ["GetIn", { _this call vehicle_handleInteract }];
};
//Monitor the object
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,l_object];
diag_log("Spawned: " + str(l_idKey) + " " + l_type + " dayz_serverObjectMonitor:" + str(dayz_serverObjectMonitor));
};
// check Veh variables
_oLastUpD = l_object getVariable ["lastUpdate",0];
_oID = l_object getVariable ["ObjectID",0];
_oUID = l_object getVariable ["ObjectUID","0"];
_oChID = l_object getVariable ["CharacterID",0];
_oLastDam = l_object getVariable ["lastDamage",0];
diag_log ("Leo: Server: Spawn Veh:>> l_object: " + str(l_object) + " Type: " + str(typeOf l_object) + " _oLastUpD: " + str(_oLastUpD) + " _oID: " + str(_oID) + " _oUID" + str(_oUID) + " _oChID" + str(_oChID) + " _oLastDam: " + str(_oLastDam));
} forEach l_objList;