Advertisement
secondcoming

ExileServer_system_trading_network_purchaseVehicleRequest

Jun 1st, 2016
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQF 3.42 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), false, _pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
  55.     }
  56.     else
  57.     {
  58.         if (_vehicleClass isKindOf "Air") then
  59.         {
  60.            
  61.             _nObject = nearestObject [(getPosATL _playerObject), "Land_HelipadSquare_F"];
  62.             if ( isNull _nObject ) then
  63.             {
  64.                 _position = (getPos _playerObject) findEmptyPosition [50, 300, _vehicleClass];
  65.             }
  66.             else
  67.             {
  68.                 _position = getPos _nObject;
  69.             };
  70.            
  71.  
  72.         }
  73.         else
  74.         {
  75.             _position = (getPos _playerObject) findEmptyPosition [10, 275, _vehicleClass];
  76.         };
  77.         if (_position isEqualTo []) then
  78.         {
  79.             throw 13;
  80.         };
  81.         _vehicleObject = [_vehicleClass, _position, (random 360), true, _pinCode] call ExileServer_object_vehicle_createPersistentVehicle;
  82.     }; 
  83.     _vehicleObject setVariable ["ExileOwnerUID", (getPlayerUID _playerObject)];
  84.     _vehicleObject setVariable ["ExileIsLocked",0];
  85.     _vehicleObject lock 0;
  86.     _vehicleObject call ExileServer_object_vehicle_database_insert;
  87.     _vehicleObject call ExileServer_object_vehicle_database_update;
  88.     _playerMoney = _playerMoney - _salesPrice;
  89.     _playerObject setVariable ["ExileMoney", _playerMoney];
  90.     format["setAccountMoney:%1:%2", _playerMoney, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
  91.     [_sessionID, "purchaseVehicleResponse", [0, netId _vehicleObject, str _playerMoney]] call ExileServer_system_network_send_to;
  92.  
  93.     _purchaseLog = format ["PLAYER: ( %5 ) %1 BOUGHT VEHICLE: %4 FOR %2 POPTABS  | PLAYER TOTAL MONEY: %3",_playerObject,_salesPrice,_playerMoney,_vehicleClass,getPlayerUID _playerObject];
  94.     ['A3_EXILE_VEHICLEPURCHASES',_purchaseLog] call FNC_A3_CUSTOMLOG;  
  95. }
  96. catch
  97. {
  98.     _responseCode = _exception;
  99.     [_sessionID, "purchaseVehicleResponse", [_responseCode, "", ""]] call ExileServer_system_network_send_to;
  100. };
  101. if !(isNull _playerObject) then
  102. {
  103.     _playerObject setVariable ["ExileMutex", false];
  104. };
  105. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement