Advertisement
the_eraser1

Untitled

Jul 11th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 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","_logging","_traderLog","_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), false, _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, true];
  72. format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
  73. [_sessionID, "purchaseVehicleResponse", [0, netId _vehicleObject, _salesPrice]] call ExileServer_system_network_send_to;
  74. _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
  75. if (_logging isEqualTo 1) then
  76. {
  77. _traderLog = format ["PLAYER: ( %1 ) %2 PURCHASED VEHICLE %3 FOR %4 POPTABS | PLAYER TOTAL MONEY: %5",getPlayerUID _playerObject,_playerObject,_vehicleClass,_salesPrice,_playerMoney];
  78. "extDB2" callExtension format["1:TRADING:%1",_traderLog];
  79. };
  80. }
  81. catch
  82. {
  83. _responseCode = _exception;
  84. [_sessionID, "purchaseVehicleResponse", [_responseCode, "", 0]] call ExileServer_system_network_send_to;
  85. };
  86. if !(isNull _playerObject) then
  87. {
  88. _playerObject setVariable ["ExileMutex", false];
  89. };
  90. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement