skotracker

ExileServer_system_trading_network_wasteDumpRequest

Apr 19th, 2018
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQF 4.85 KB | None | 0 0
  1. private["_sessionID","_parameters","_vehicleNetID","_mode","_vehicleObject","_vehicleDBID","_playerObject","_cargo","_revenue","_playerMoney","_respectGain","_playerRespect","_logging","_traderLog","_responseCode","_crateTypes"];
  2. _sessionID = _this select 0;
  3. _parameters = _this select 1;
  4. _vehicleNetID = _parameters select 0;
  5. _mode = _parameters select 1;
  6. _crateTypes = [
  7.         "CargoNet_01_box_F",
  8.         "Exile_Container_SupplyBox",
  9.         "I_CargoNet_01_ammo_F",
  10.         "O_CargoNet_01_ammo_F",
  11.         "B_CargoNet_01_ammo_F",
  12.         "I_supplyCrate_F",
  13.         "O_supplyCrate_F",
  14.         "B_supplyCrate_F",
  15.         "C_supplyCrate_F",
  16.         "IG_supplyCrate_F",
  17.         "Box_NATO_AmmoVeh_F",
  18.         "Box_East_AmmoVeh_F",
  19.         "Box_IND_AmmoVeh_F",
  20.         "I_CargoNET_01_F",
  21.         "O_CargoNET_01_F",
  22.         "B_CargoNET_01_F",
  23.         "Land_CargoBox_V1_F",
  24.         "ASC_B_box",
  25.         "Box_NATO_Wps_F",
  26.         "Box_East_Wps_F",
  27.         "Box_IND_Wps_F",
  28.         "Box_East_WpsLaunch_F",
  29.         "Box_NATO_WpsLaunch_F",
  30.         "Box_IND_WpsLaunch_F",
  31.         "Box_IND_WpsSpecial_F",
  32.         "Box_East_WpsSpecial_F",
  33.         "Box_NATO_WpsSpecial_F",
  34.         "Box_NATO_Wps_F",
  35.         "Box_East_Wps_F",
  36.         "Box_IND_Wps_F",
  37.         "Box_East_WpsLaunch_F",
  38.         "Box_NATO_WpsLaunch_F",
  39.         "Box_IND_WpsLaunch_F",
  40.         "Box_IND_WpsSpecial_F",
  41.         "Box_East_WpsSpecial_F",
  42.         "Box_NATO_WpsSpecial_F",
  43.         "Box_NATO_AmmoOrd_F",
  44.         "Box_East_AmmoOrd_F",
  45.         "Box_IND_AmmoOrd_F",
  46.         "Box_NATO_Grenades_F",
  47.         "Box_East_Grenades_F",
  48.         "Box_IND_Grenades_F",
  49.         "Box_NATO_Ammo_F",
  50.         "Box_East_Ammo_F",
  51.         "Box_IND_Ammo_F",
  52.         "Box_IND_Support_F",
  53.         "Box_East_Support_F",
  54.         "Box_NATO_Support_F"
  55.     ];
  56. try
  57. {
  58.     _vehicleObject = objectFromNetId _vehicleNetID;
  59.     _vehicleDBID = _vehicleObject getVariable "ExileDatabaseID";
  60.     if (isNull _vehicleObject) then
  61.     {
  62.         throw 6;
  63.     };
  64.     if (_vehicleObject getVariable ["ExileMutex", false]) then
  65.     {
  66.         throw 12;
  67.     };
  68.     _vehicleObject setVariable ["ExileMutex", true];
  69.     _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  70.     if (isNull _playerObject) then
  71.     {
  72.         throw 1;
  73.     };
  74.     if !(alive _playerObject) then
  75.     {
  76.         throw 2;
  77.     };
  78.     if !((owner _vehicleObject) isEqualTo (owner _playerObject)) then
  79.     {
  80.         if (typeOf _vehicleObject in _crateTypes) then
  81.         {
  82.             _vehicleObject setOwner (owner _playerObject);
  83.         } else {
  84.             throw 6;
  85.         };
  86.     };
  87.     _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
  88.     _revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice;
  89.     clearBackpackCargoGlobal _vehicleObject;
  90.     clearItemCargoGlobal _vehicleObject;
  91.     clearMagazineCargoGlobal _vehicleObject;
  92.     clearWeaponCargoGlobal _vehicleObject;
  93.     if (_mode isEqualTo 2) then
  94.     {
  95.         _revenue = _revenue + ([(typeOf _vehicleObject)] call ExileClient_util_gear_calculateTotalSellPrice);
  96.         _vehicleObject call ExileServer_object_vehicle_remove;
  97.         deleteVehicle _vehicleObject;
  98.     }
  99.     else
  100.     {
  101.         _vehicleObject call ExileServer_object_vehicle_database_update;
  102.     };
  103.     _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  104.     _playerMoney = _playerMoney + _revenue;
  105.     _playerObject setVariable ["ExileMoney", _playerMoney, true];
  106.     format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
  107.     _respectGain = _revenue * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
  108.     _playerRespect = _playerObject getVariable ["ExileScore", 0];
  109.     _playerRespect = floor (_playerRespect + _respectGain);
  110.     _playerObject setVariable ["ExileScore", _playerRespect];
  111.     format["setAccountScore:%1:%2", _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
  112.     [_sessionID, "wasteDumpResponse", [0, _revenue, str _playerRespect]] call ExileServer_system_network_send_to;
  113.     _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
  114.     if (_logging isEqualTo 1) then
  115.     {
  116.         _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];
  117.         "extDB2" callExtension format["1:TRADING:%1",_traderLog];
  118.     };
  119. }
  120. catch
  121. {
  122.     _responseCode = _exception;
  123.     [_sessionID, "wasteDumpResponse", [_responseCode, 0, ""]] call ExileServer_system_network_send_to;
  124. };
  125. if (!isNull _vehicleObject) then
  126. {
  127.     _vehicleObject setVariable ["ExileMutex", false];
  128. };
  129. true
Add Comment
Please, Sign In to add comment