Advertisement
MGT

ExileServer_system_trading_network_purchaseItemRequest.sqf

MGT
Nov 22nd, 2015
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. private["_sessionID","_parameters","_itemClassName","_quantity","_containerType","_containerNetID","_playerObject","_vehicleObject","_salesPrice","_playerMoney","_playerRespect","_quality","_requiredRespect","_logging","_traderLog","_responseCode"];
  2. _sessionID = _this select 0;
  3. _parameters = _this select 1;
  4. _itemClassName = _parameters select 0;
  5. _quantity = _parameters select 1;
  6. _containerType = _parameters select 2;
  7. _containerNetID = _parameters select 3;
  8. try
  9. {
  10. _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  11. if (_playerObject getVariable ["ExileMutex",false]) then
  12. {
  13. throw 12;
  14. };
  15. _playerObject setVariable ["ExileMutex",true];
  16. _vehicleObject = objNull;
  17. if (isNull _playerObject) then
  18. {
  19. throw 1;
  20. };
  21. if !(alive _playerObject) then
  22. {
  23. throw 2;
  24. };
  25. if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then
  26. {
  27. throw 3;
  28. };
  29. _salesPrice = getNumber (missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "price");
  30. if (_salesPrice <= 0) then
  31. {
  32. throw 4;
  33. };
  34. _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  35. if (_playerMoney < _salesPrice) then
  36. {
  37. throw 5;
  38. };
  39. _playerRespect = _playerObject getVariable ["ExileScore", 0];
  40. _quality = getNumber(missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "quality");
  41. _requiredRespect = getNumber(missionConfigFile >> "CfgTrading" >> "requiredRespect" >> format["Level%1",_quality]);
  42. if (_playerRespect < _requiredRespect) then
  43. {
  44. throw 14;
  45. };
  46. _playerMoney = _playerMoney - _salesPrice;
  47. _playerObject setVariable ["ExileMoney", _playerMoney, true];
  48. format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
  49. [_sessionID, "purchaseItemResponse", [0, _salesPrice, _itemClassName, 1, _containerType, _containerNetID]] call ExileServer_system_network_send_to;
  50. _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
  51. if (_logging isEqualTo 1) then
  52. {
  53. _traderLog = format ["PLAYER: ( %1 ) %2 PURCHASED ITEM %3 FOR %4 POPTABS | PLAYER TOTAL MONEY: %5",getPlayerUID _playerObject,_playerObject,_itemClassName,_salesPrice,_playerMoney];
  54.  
  55. ["TRADERPURCHASELOG",_traderLog] call FNC_A3_CUSTOMLOG;
  56. };
  57. if !(_vehicleObject isEqualTo objNull) then
  58. {
  59. _vehicleObject call ExileServer_object_vehicle_database_update;
  60. }
  61. else
  62. {
  63. _playerObject call ExileServer_object_player_database_update;
  64. };
  65. }
  66. catch
  67. {
  68. _responseCode = _exception;
  69. [_sessionID, "purchaseItemResponse", [_responseCode, 0, "", 0, 0, ""]] call ExileServer_system_network_send_to;
  70. };
  71. _playerObject setVariable ["ExileMutex",false];
  72. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement