56 lines
2.1 KiB
Plaintext
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;
|
|
};
|
|
}; |