Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * ExileServer_system_trading_network_wasteDumpRequest
- *
- * 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["_sessionID","_parameters","_vehicleNetID","_mode","_vehicleObject","_vehicleDBID","_playerObject","_cargo","_revenue","_playerMoney","_respectGain","_playerRespect","_logging","_traderLog","_responseCode"];
- _sessionID = _this select 0;
- _parameters = _this select 1;
- _vehicleNetID = _parameters select 0;
- _mode = _parameters select 1;
- try
- {
- _vehicleObject = objectFromNetId _vehicleNetID;
- _vehicleDBID = _vehicleObject getVariable "ExileDatabaseID";
- if (isNull _vehicleObject) then
- {
- throw 6;
- };
- if (_vehicleObject getVariable ["ExileMutex", false]) then
- {
- throw 12;
- };
- _vehicleObject setVariable ["ExileMutex", true];
- _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
- if (isNull _playerObject) then
- {
- throw 1;
- };
- if !(alive _playerObject) then
- {
- throw 2;
- };
- _vehicleInfo = _x getVariable ["XG_AntiTheftInfo",[]];
- if!(_vehicleInfo isEqualTo []) then
- {
- _vehicleInfo params [["_group",""],["_vifamily","No Family"],["_ownerUID",""]];
- _family = _playerObject getVariable ["ExileClanID",""];
- if(_family isEqualTo -1) then
- {
- _family = "No Family";
- };
- if(_group isEqualTo "No Group") then
- {
- if!(_family isEqualTo "No Family") then
- {
- if((_family isEqualTo _vifamily) || (getPlayerUID _playerObject) isEqualTo _ownerUID) then
- {
- throw 6;
- };
- }
- else
- {
- if((getPlayerUID _playerObject) isEqualTo _ownerUID) then
- {
- throw 6;
- };
- };
- }
- else
- {
- if!(_family isEqualTo "No Family") then
- {
- if((str(group _playerObject) isEqualTo _group) || (_family isEqualTo _vifamily) || (getPlayerUID _playerObject) isEqualTo _ownerUID) then
- {
- throw 6;
- };
- }
- else
- {
- if((str(group _playerObject) isEqualTo _group) || (getPlayerUID _playerObject) isEqualTo _ownerUID) then
- {
- throw 6;
- };
- };
- };
- }
- else
- {
- if !((owner _vehicleObject) isEqualTo (owner _playerObject)) then
- {
- throw 6;
- };
- };
- /* deafult
- _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
- _revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice;
- clearBackpackCargoGlobal _vehicleObject;
- clearItemCargoGlobal _vehicleObject;
- clearMagazineCargoGlobal _vehicleObject;
- clearWeaponCargoGlobal _vehicleObject;
- */
- _cargo = [];
- _revenue = 0;
- if(_mode isEqualTo 1) then
- {
- //standard cargo
- _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
- _revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice;
- clearBackpackCargoGlobal _vehicleObject;
- clearItemCargoGlobal _vehicleObject;
- clearMagazineCargoGlobal _vehicleObject;
- clearWeaponCargoGlobal _vehicleObject;
- _vehicleObject call ExileServer_object_vehicle_database_update;
- };
- if(_mode isEqualTo 2) then
- {
- if (count (_vehicleObject getVariable ["R3F_LOG_objets_charges", []]) >0) then
- {
- {
- _cargo = _x call ExileClient_util_containerCargo_list;
- _revenue = _revenue + (_cargo call ExileClient_util_gear_calculateTotalSellPrice);
- _revenue = _revenue + ([(typeOf _x)] call ExileClient_util_gear_calculateTotalSellPrice);
- clearBackpackCargoGlobal _x;
- clearItemCargoGlobal _x;
- clearMagazineCargoGlobal _x;
- clearWeaponCargoGlobal _x;
- _x call ExileServer_object_vehicle_remove;
- deleteVehicle _x;
- }forEach (_vehicleObject getVariable ["R3F_LOG_objets_charges", []]);
- };
- _vehicleObject setVariable ["R3F_LOG_objets_charges", [], true];
- _vehicleObject call ExileServer_object_vehicle_database_update;
- };
- if (_mode isEqualTo 3) then
- {
- {
- _cargo = _x call ExileClient_util_containerCargo_list;
- _revenue = _revenue + (_cargo call ExileClient_util_gear_calculateTotalSellPrice);
- _revenue = _revenue + ([(typeOf _x)] call ExileClient_util_gear_calculateTotalSellPrice);
- clearBackpackCargoGlobal _x;
- clearItemCargoGlobal _x;
- clearMagazineCargoGlobal _x;
- clearWeaponCargoGlobal _x;
- _x call ExileServer_object_vehicle_remove;
- deleteVehicle _x;
- }forEach (_vehicleObject getVariable ["R3F_LOG_objets_charges", []]);
- //standard cargo
- _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
- _revenue = _revenue + (_cargo call ExileClient_util_gear_calculateTotalSellPrice);
- clearBackpackCargoGlobal _vehicleObject;
- clearItemCargoGlobal _vehicleObject;
- clearMagazineCargoGlobal _vehicleObject;
- clearWeaponCargoGlobal _vehicleObject;
- _revenue = _revenue + ([(typeOf _vehicleObject)] call ExileClient_util_gear_calculateTotalSellPrice);
- _vehicleObject call ExileServer_object_vehicle_remove;
- deleteVehicle _vehicleObject;
- };
- /*
- else
- {
- _vehicleObject call ExileServer_object_vehicle_database_update;
- };
- */
- _playerMoney = _playerObject getVariable ["ExileMoney", 0];
- _playerMoney = _playerMoney + _revenue;
- _playerObject setVariable ["ExileMoney", _playerMoney, true];
- format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
- _respectGain = _revenue * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
- _playerRespect = _playerObject getVariable ["ExileScore", 0];
- _playerRespect = floor (_playerRespect + _respectGain);
- _playerObject setVariable ["ExileScore", _playerRespect];
- format["setAccountScore:%1:%2", _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
- [_sessionID, "wasteDumpResponse", [0, _revenue, str _playerRespect]] call ExileServer_system_network_send_to;
- _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
- if (_logging isEqualTo 1) then
- {
- _traderLog = format ["PLAYER: ( %1 ) %2 SOLD ITEM: %3 (ID# %4) with Cargo %5 FOR %6 POPTABS AND %7 RESPECT | PLAYER TOTAL MONEY: %8",getPlayerUID _playerObject,_playerObject,typeOf _vehicleObject,_vehicleDBID,_cargo,_revenue,_respectGain,_playerMoney];
- "extDB2" callExtension format["1:TRADING:%1",_traderLog];
- _recycleLog = format["PLAYER: %1:%7 %2 POPTABS AND %3 RESPECT | PLAYER TOTAL MONEY: %4 | RECYCLED ITEM: %5 WITH %6 CARGO",_playerObject,_revenue,_respectGain,_playerMoney,_vehicleObject,_cargo,(getPlayerUID _playerObject)];
- ['A3_EXILE_RECYCLELOG_BIG',_recycleLog] call FNC_A3_CUSTOMLOG;
- };
- }
- catch
- {
- _responseCode = _exception;
- [_sessionID, "wasteDumpResponse", [_responseCode, 0, ""]] call ExileServer_system_network_send_to;
- };
- if (!isNull _vehicleObject) then
- {
- _vehicleObject setVariable ["ExileMutex", false];
- };
- true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement