5fa1bc18fd
Basically, a basic simulation manager is implemented and parseSimpleArray exhanged from call compile so database is faster. For issues PM me on discord or Exile forums.
92 lines
3.2 KiB
Plaintext
92 lines
3.2 KiB
Plaintext
/**
|
|
* ExileServer_object_container_database_insert
|
|
*
|
|
* Exile Mod
|
|
* www.exilemod.com
|
|
* © 2015 Exile Mod Team
|
|
*
|
|
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
|
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
|
*/
|
|
|
|
private["_containerObject","_position","_vectorDirection","_vectorUp","_territoryFlag","_territoryID","_data","_extDB2Message","_containerID","_cargoContainers"];
|
|
_containerObject = _this;
|
|
_position = getPosATL _containerObject;
|
|
_vectorDirection = vectorDir _containerObject;
|
|
_vectorUp = vectorUp _containerObject;
|
|
_territoryFlag = _containerObject call ExileClient_util_world_getTerritoryAtPosition;
|
|
_territoryID = if (isNull _territoryFlag) then { '' } else { _territoryFlag getVariable ["ExileDatabaseID", '']};
|
|
if !(ExileContainerCargo isEqualTo []) then
|
|
{
|
|
_data =
|
|
[
|
|
typeOf _containerObject,
|
|
_containerObject getVariable ["ExileOwnerUID", ""],
|
|
_position select 0,
|
|
_position select 1,
|
|
_position select 2,
|
|
_vectorDirection select 0,
|
|
_vectorDirection select 1,
|
|
_vectorDirection select 2,
|
|
_vectorUp select 0,
|
|
_vectorUp select 1,
|
|
_vectorUp select 2,
|
|
ExileContainerCargo select 0,
|
|
ExileContainerCargo select 1,
|
|
ExileContainerCargo select 2,
|
|
ExileContainerCargo select 3,
|
|
ExileContainerCargo select 4,
|
|
"0000",
|
|
_territoryID
|
|
];
|
|
} else
|
|
{
|
|
_data =
|
|
[
|
|
typeOf _containerObject,
|
|
_containerObject getVariable ["ExileOwnerUID", ""],
|
|
_position select 0,
|
|
_position select 1,
|
|
_position select 2,
|
|
_vectorDirection select 0,
|
|
_vectorDirection select 1,
|
|
_vectorDirection select 2,
|
|
_vectorUp select 0,
|
|
_vectorUp select 1,
|
|
_vectorUp select 2,
|
|
[],
|
|
[],
|
|
[],
|
|
[],
|
|
0,
|
|
"0000",
|
|
_territoryID
|
|
];
|
|
};
|
|
_extDB2Message = ["insertContainer", _data] call ExileServer_util_extDB2_createMessage;
|
|
_containerID = _extDB2Message call ExileServer_system_database_query_insertSingle;
|
|
if !(ExileContainerCargo isEqualTo []) then
|
|
{
|
|
[_containerObject, (_data select 11)] call ExileServer_util_fill_fillItems;
|
|
[_containerObject, (_data select 12)] call ExileServer_util_fill_fillMagazines;
|
|
[_containerObject, (_data select 13)] call ExileServer_util_fill_fillWeapons;
|
|
_cargoContainers = format ["loadContainerCargo:%1", _containerID] call ExileServer_system_database_query_selectSingle;
|
|
if !(_cargoContainers isEqualTo []) then
|
|
{
|
|
[_containerObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers;
|
|
};
|
|
ExileContainerCargo = [];
|
|
};
|
|
_containerObject setVariable ["ExileDatabaseID", _containerID];
|
|
_containerObject setVariable ["ExileIsPersistent", true];
|
|
_containerObject setVariable ["ExileIsContainer", true];
|
|
_containerObject setVariable ["ExileAccessCode","0000"];
|
|
_containerObject setVariable ["ExileTerritoryID", _territoryID];
|
|
_containerObject setVariable ["ExileMoney", parseNumber (_data select 15), true];
|
|
_containerObject addMPEventHandler ["MPKilled", { if !(isServer) exitWith {}; (_this select 0) call ExileServer_object_container_event_onMpKilled; }];
|
|
if(getNumber(configFile >> "CfgVehicles" >> typeOf _containerObject >> "exileIsLockable") isEqualTo 1)then
|
|
{
|
|
_containerObject setVariable ["ExileIsLocked",-1,true];
|
|
};
|
|
_containerID
|