MGT

ExileServer_system_trading_network_wasteDumpRequest.sqf

MGT
Nov 22nd, 2015
385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. /**
  2. * ExileServer_system_trading_network_wasteDumpRequest
  3. *
  4. * Exile Mod
  5. * www.exilemod.com
  6. * © 2015 Exile Mod Team
  7. *
  8. * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
  9. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
  10. */
  11.  
  12. private["_sessionID","_parameters","_vehicleNetID","_mode","_vehicleObject","_playerObject","_cargo","_revenue","_playerMoney","_respectGain","_playerRespect","_responseCode"];
  13. _sessionID = _this select 0;
  14. _parameters = _this select 1;
  15. _vehicleNetID = _parameters select 0;
  16. _mode = _parameters select 1;
  17. try
  18. {
  19. _vehicleObject = objectFromNetId _vehicleNetID;
  20. if (isNull _vehicleObject) then
  21. {
  22. throw 6;
  23. };
  24. if (_vehicleObject getVariable ["ExileMutex", false]) then
  25. {
  26. throw 12;
  27. };
  28. _vehicleObject setVariable ["ExileMutex", true];
  29. _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  30. if (isNull _playerObject) then
  31. {
  32. throw 1;
  33. };
  34. if !(alive _playerObject) then
  35. {
  36. throw 2;
  37. };
  38. _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
  39. _revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice;
  40. clearBackpackCargoGlobal _vehicleObject;
  41. clearItemCargoGlobal _vehicleObject;
  42. clearMagazineCargoGlobal _vehicleObject;
  43. clearWeaponCargoGlobal _vehicleObject;
  44. if (_mode isEqualTo 2) then
  45. {
  46. _revenue = _revenue + ([(typeOf _vehicleObject)] call ExileClient_util_gear_calculateTotalSellPrice);
  47. _vehicleObject call ExileServer_object_vehicle_remove;
  48. deleteVehicle _vehicleObject;
  49. }
  50. else
  51. {
  52. _vehicleObject call ExileServer_object_vehicle_database_update;
  53. };
  54. _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  55. _playerMoney = _playerMoney + _revenue;
  56. _playerObject setVariable ["ExileMoney", _playerMoney];
  57. _respectGain = _revenue * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
  58. _playerRespect = _playerObject getVariable ["ExileScore", 0];
  59. _playerRespect = floor (_playerRespect + _respectGain);
  60. _playerObject setVariable ["ExileScore", _playerRespect];
  61. format["setAccountMoneyAndRespect:%1:%2:%3", _playerMoney, _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
  62. [_sessionID, "wasteDumpResponse", [0, str _playerMoney, str _playerRespect]] call ExileServer_system_network_send_to;
  63. _recycleLog = format ["PLAYER: %1:%7 RECYCLED ITEM: %5 FOR %2 POPTABS AND %3 RESPECT WITH %6 CARGO | PLAYER TOTAL MONEY: %4 RESPECT %8",_playerObject,_revenue,_respectGain,_playerMoney,_vehicleObject,_cargo,(getPlayerUID _playerObject),_playerRespect];
  64. 'ARMA_LOG' callExtension format['A3_EXILE_RECYCLELOG:%1',_recycleLog];
  65. }
  66. catch
  67. {
  68. _responseCode = _exception;
  69. [_sessionID, "wasteDumpResponse", [_responseCode, "", ""]] call ExileServer_system_network_send_to;
  70. };
  71. if (!isNull _vehicleObject) then
  72. {
  73. _vehicleObject setVariable ["ExileMutex", false];
  74. };
  75. true
Add Comment
Please, Sign In to add comment