Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. /**
  2. * ExileServer_system_trading_network_purchaseItemRequest
  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","_itemClassName","_quantity","_containerType","_containerNetID","_playerObject","_vehicleObject","_salesPrice","_playerMoney","_responseCode","_playerRespect","_salesRespect"];
  13. _sessionID = _this select 0;
  14. _parameters = _this select 1;
  15. _itemClassName = _parameters select 0;
  16. _quantity = _parameters select 1;
  17. _containerType = _parameters select 2;
  18. _containerNetID = _parameters select 3;
  19. try
  20. {
  21. _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  22. if (_playerObject getVariable ["ExileMutex",false]) then
  23. {
  24. throw 12;
  25. };
  26. _playerObject setVariable ["ExileMutex",true];
  27. _vehicleObject = objNull;
  28. if (isNull _playerObject) then
  29. {
  30. throw 1;
  31. };
  32. if !(alive _playerObject) then
  33. {
  34. throw 2;
  35. };
  36. if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then
  37. {
  38. throw 3;
  39. };
  40. _salesPrice = getNumber (missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "price");
  41. if (_salesPrice <= 0) then
  42. {
  43. throw 4;
  44. };
  45. _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  46. if (_playerMoney < _salesPrice) then
  47. {
  48. throw 5;
  49. };
  50. _playerMoney = _playerMoney - _salesPrice;
  51. _playerObject setVariable ["ExileMoney", _playerMoney];
  52. _salesRespect = getNumber (missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "respect");
  53. if (_salesRespect <= 0) then
  54. {
  55. throw 6;
  56. };
  57. _playerRespect = _playerObject getVariable ["ExileScore", 0];
  58. if (_playerRespect < _salesRespect) then
  59. {
  60. throw 7;
  61. };
  62. _playerRespect = _playerRespect - _salesRespect;
  63. _playerObject setVariable ["ExileScore", _playerRespect]
  64. _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  65. _playerMoney = _playerMoney + _sellPrice;
  66. _playerObject setVariable ["ExileMoney", _playerMoney];
  67. _respectGain = _sellPrice * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
  68. _playerRespect = _playerObject getVariable ["ExileScore", 0];
  69. _playerObject setVariable ["ExileScore", _playerRespect];
  70. format["setAccountMoneyAndRespect:%1:%2:%3", _playerMoney, _playerRespect (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
  71. [_sessionID, "purchaseItemResponse", [0, str _playerMoney, _itemClassName, 1, _containerType, _containerNetID, str _playerRespect]] call ExileServer_system_network_send_to;
  72. if !(_vehicleObject isEqualTo objNull) then
  73. {
  74. _vehicleObject call ExileServer_object_vehicle_database_update;
  75. }
  76. else
  77. {
  78. _playerObject call ExileServer_object_player_database_update;
  79. };
  80. }
  81. catch
  82. {
  83. _responseCode = _exception;
  84. [_sessionID, "purchaseItemResponse", [_responseCode, "", "", 0, 0, ""]] call ExileServer_system_network_send_to;
  85. };
  86. _playerObject setVariable ["ExileMutex",false];
  87. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement