82 lines
2.9 KiB
Plaintext
82 lines
2.9 KiB
Plaintext
|
/**
|
||
|
* ExileServer_object_vehicle_database_load
|
||
|
*
|
||
|
* 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["_vehicleID","_data","_position","_vectorDirection","_vectorUp","_pinCode","_texture","_vehicleObject","_lock","_unlockInSafeZonesAfterRestart","_isLocked","_hitpoints","_cargoContainers"];
|
||
|
_vehicleID = _this;
|
||
|
_data = format ["loadVehicle:%1", _vehicleID] call ExileServer_system_database_query_selectSingle;
|
||
|
_position = [_data select 8, _data select 9, _data select 10];
|
||
|
_vectorDirection = [_data select 11, _data select 12, _data select 13];
|
||
|
_vectorUp = [_data select 14, _data select 15, _data select 16];
|
||
|
_pinCode = _data select 20;
|
||
|
_texture = _data select 21;
|
||
|
_vehicleObject = [(_data select 1), _position, [_vectorDirection, _vectorUp], true,_pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
|
||
|
_vehicleObject setVariable ["ExileDatabaseID", _vehicleID];
|
||
|
_vehicleObject setVariable ["ExileOwnerUID", (_data select 3)];
|
||
|
_vehicleObject setVariable ["ExileMoney", (_data select 23), true];
|
||
|
_lock = (_data select 4);
|
||
|
_unlockInSafeZonesAfterRestart = (getNumber (configFile >> "CfgSettings" >> "VehicleSpawn" >> "unlockInSafeZonesAfterRestart")) isEqualTo 1;
|
||
|
_isLocked = (_lock isEqualTo -1);
|
||
|
if (_isLocked) then
|
||
|
{
|
||
|
if (_unlockInSafeZonesAfterRestart) then
|
||
|
{
|
||
|
if (_position call ExileClient_util_world_isInTraderZone) then
|
||
|
{
|
||
|
_isLocked = false;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
if (_isLocked) then
|
||
|
{
|
||
|
_vehicleObject setVariable ["ExileIsLocked", -1];
|
||
|
_vehicleObject lock 2;
|
||
|
_vehicleObject enableRopeAttach false;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
_vehicleObject setVariable ["ExileIsLocked", 0];
|
||
|
_vehicleObject lock 0;
|
||
|
_vehicleObject enableRopeAttach true;
|
||
|
};
|
||
|
_vehicleObject setFuel (_data select 5);
|
||
|
_vehicleObject setDamage (_data select 6);
|
||
|
_hitpoints = _data select 7;
|
||
|
if ((typeName _hitpoints) isEqualTo "ARRAY") then
|
||
|
{
|
||
|
{
|
||
|
_vehicleObject setHitPointDamage [_x select 0, _x select 1];
|
||
|
}
|
||
|
forEach _hitpoints;
|
||
|
};
|
||
|
[_vehicleObject, (_data select 17)] call ExileServer_util_fill_fillItems;
|
||
|
[_vehicleObject, (_data select 18)] call ExileServer_util_fill_fillMagazines;
|
||
|
[_vehicleObject, (_data select 19)] call ExileServer_util_fill_fillWeapons;
|
||
|
_cargoContainers = format ["loadVehicleContainer:%1", _vehicleID] call ExileServer_system_database_query_selectSingle;
|
||
|
if ((typeName _cargoContainers) isEqualTo "ARRAY") then
|
||
|
{
|
||
|
if !(_cargoContainers isEqualTo []) then
|
||
|
{
|
||
|
[_vehicleObject, (_cargoContainers select 0)] call ExileServer_util_fill_fillContainers;
|
||
|
};
|
||
|
};
|
||
|
if !(_texture isEqualTo "") then
|
||
|
{
|
||
|
{
|
||
|
_vehicleObject setObjectTextureGlobal [_forEachIndex, _texture select _forEachIndex];
|
||
|
}
|
||
|
forEach _texture;
|
||
|
};
|
||
|
_vehicleObject enableDynamicSimulation true;
|
||
|
if (_vehicleObject call ExileClient_util_world_isInTraderZone) then
|
||
|
{
|
||
|
_vehicleObject allowDamage false;
|
||
|
};
|
||
|
_vehicleObject
|