Files
AltisLifeFramework/life_server/Functions/Systems/fn_vehicleUpdate.sqf
Benjamin Kyd c8014ec81e initial commit
2019-06-05 00:45:50 +01:00

56 lines
2.1 KiB
Plaintext

#include "\life_server\script_macros.hpp"
/*
File: fn_vehicleUpdate.sqf
Author : NiiRoZz
Description:
Tells the database that this vehicle need update inventory.
*/
private ["_vehicle","_plate","_uid","_query","_sql","_dbInfo","_thread","_cargo","_trunk","_resourceItems","_fuel","_damage","_itemList","_totalweight","_weight"];
_vehicle = [_this,0,objNull,[objNull]] call BIS_fnc_param;
_mode = [_this,1,1,[0]] call BIS_fnc_param;
if (isNull _vehicle) exitWith {}; //NULL
_dbInfo = _vehicle getVariable ["dbInfo",[]];
if (count _dbInfo isEqualTo 0) exitWith {};
_uid = _dbInfo select 0;
_plate = _dbInfo select 1;
switch (_mode) do {
case 1: {
_vehItems = getItemCargo _vehicle;
_vehMags = getMagazineCargo _vehicle;
_vehWeapons = getWeaponCargo _vehicle;
_vehBackpacks = getBackpackCargo _vehicle;
_cargo = [_vehItems,_vehMags,_vehWeapons,_vehBackpacks];
// Keep it clean!
if ((count (_vehItems select 0) isEqualTo 0) && (count (_vehMags select 0) isEqualTo 0) && (count (_vehWeapons select 0) isEqualTo 0) && (count (_vehBackpacks select 0) isEqualTo 0)) then {
_cargo = [];
};
_cargo = [_cargo] call DB_fnc_mresArray;
_query = format ["UPDATE vehicles SET gear='%3' WHERE pid='%1' AND plate='%2'",_uid,_plate,_cargo];
_thread = [_query,1] call DB_fnc_asyncCall;
};
case 2: {
_resourceItems = LIFE_SETTINGS(getArray,"save_vehicle_items");
_trunk = _vehicle getVariable ["Trunk",[[],0]];
_itemList = _trunk select 0;
_totalweight = 0;
_items = [];
{
if ((_x select 0) in _resourceItems) then {
_items pushBack [_x select 0,_x select 1];
_weight = (ITEM_WEIGHT(_x select 0)) * (_x select 1);
_totalweight = _weight + _totalweight;
};
}forEach _itemList;
_trunk = [_items,_totalweight];
_trunk = [_trunk] call DB_fnc_mresArray;
_query = format ["UPDATE vehicles SET inventory='%3' WHERE pid='%1' AND plate='%2'",_uid,_plate,_trunk];
_thread = [_query,1] call DB_fnc_asyncCall;
};
};