Advertisement
MGT

ExileServer_system_trading_network_purchaseVehicleRequest

MGT
Nov 22nd, 2015
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. /**
  2. * ExileServer_system_trading_network_purchaseVehicleRequest
  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","_vehicleClass","_pinCode","_playerObject","_salesPrice","_playerMoney","_position","_vehicleObject","_responseCode"];
  13. _sessionID = _this select 0;
  14. _parameters = _this select 1;
  15. _vehicleClass = _parameters select 0;
  16. _pinCode = _parameters select 1;
  17. try
  18. {
  19. _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  20. if (isNull _playerObject) then
  21. {
  22. throw 1;
  23. };
  24. if !(alive _playerObject) then
  25. {
  26. throw 2;
  27. };
  28. if (_playerObject getVariable ["ExileMutex",false]) then
  29. {
  30. throw 12;
  31. };
  32. _playerObject setVariable ["ExileMutex", true];
  33. if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _vehicleClass) ) then
  34. {
  35. throw 3;
  36. };
  37. _salesPrice = getNumber (missionConfigFile >> "CfgExileArsenal" >> _vehicleClass >> "price");
  38. if (_salesPrice <= 0) then
  39. {
  40. throw 4;
  41. };
  42. _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  43. if (_playerMoney < _salesPrice) then
  44. {
  45. throw 5;
  46. };
  47. if !((count _pinCode) isEqualTo 4) then
  48. {
  49. throw 11;
  50. };
  51. if (_vehicleClass isKindOf "Ship") then
  52. {
  53. _position = [(getPosATL _playerObject), 80, 10] call ExileClient_util_world_findWaterPosition;
  54. _vehicleObject = [_vehicleClass, _position, (random 360), true, _pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
  55. }
  56. else
  57. {
  58. _position = (getPos _playerObject) findEmptyPosition [10, 175, _vehicleClass];
  59. if (_position isEqualTo []) then
  60. {
  61. throw 13;
  62. };
  63. _vehicleObject = [_vehicleClass, _position, (random 360), true, _pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
  64. };
  65. _vehicleObject setVariable ["ExileOwnerUID", (getPlayerUID _playerObject)];
  66. _vehicleObject setVariable ["ExileIsLocked",0];
  67. _vehicleObject lock 0;
  68. _vehicleObject call ExileServer_object_vehicle_database_insert;
  69. _vehicleObject call ExileServer_object_vehicle_database_update;
  70. _playerMoney = _playerMoney - _salesPrice;
  71. _playerObject setVariable ["ExileMoney", _playerMoney];
  72. format["setAccountMoney:%1:%2", _playerMoney, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
  73. [_sessionID, "purchaseVehicleResponse", [0, netId _vehicleObject, str _playerMoney]] call ExileServer_system_network_send_to;
  74. _vehiclePurchaseLog = format ["PLAYER: %1:%5 BOUGHT VEH: %4 FOR %2 POPTABS | PLAYER TOTAL MONEY: %3",_playerObject,_salesPrice,_playerMoney,_vehicleClass,(getPlayerUID _playerObject)];
  75. 'ARMA_LOG' callExtension format['A3_EXILE_VEHPURCHASELOG:%1',_vehiclePurchaseLog];
  76. }
  77. catch
  78. {
  79. _responseCode = _exception;
  80. [_sessionID, "purchaseVehicleResponse", [_responseCode, "", ""]] call ExileServer_system_network_send_to;
  81. };
  82. if !(isNull _playerObject) then
  83. {
  84. _playerObject setVariable ["ExileMutex", false];
  85. };
  86. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement