Advertisement
Guest User

SlipperyGypsy.sqf

a guest
Oct 27th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.74 KB | None | 0 0
  1. // ExileServer_system_trading_network_purchaseItemRequest.sqf
  2. // JakeHekesFists[DMD] 28/10/2015
  3. // THIS IS AN EXAMPLE ONLY - IT IS UNTESTED. IT IS A THEORY. I AM NOT PROVIDING SUPPORT. IF IT DOESNT WORK, SETS FIRE TO YOUR PC, COMES INTO YOUR HOUSE AND RAPES YOUR DOG... I DON'T CARE.
  4.  
  5. // reconfig your pricing like
  6. // class U_C_Journalist                             { quality = 1; price = 20; sellPrice = 15; };
  7.  
  8.  
  9.  
  10. /**
  11.  * Exile Mod
  12.  * www.exilemod.com
  13.  * © 2015 Exile Mod Team
  14.  *
  15.  * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
  16.  * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
  17.  */
  18.  
  19. private["_sessionID","_parameters","_itemClassName","_quantity","_containerType","_containerNetID","_playerObject","_vehicleObject","_salesPrice","_sellPrice","_playerMoney","_respectGain","_playerRespect","_responseCode"];
  20. _sessionID = _this select 0;
  21. _parameters = _this select 1;
  22. _itemClassName = _parameters select 0;
  23. _quantity = _parameters select 1;
  24. _containerType = _parameters select 2;
  25. _containerNetID = _parameters select 3;
  26. try
  27. {
  28.     _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  29.     if(_playerObject getVariable ["ExileMutex",false])then
  30.     {
  31.         throw 12;
  32.     };
  33.     _playerObject setVariable ["ExileMutex",true];
  34.     _vehicleObject = objNull;
  35.     if (isNull _playerObject) then
  36.     {
  37.         throw 1;
  38.     };
  39.     if !(alive _playerObject) then
  40.     {
  41.         throw 2;
  42.     };
  43.     if !(isClass (missionConfigFile >> "CfgExileArsenal" >> _itemClassName) ) then
  44.     {
  45.         throw 3;
  46.     };
  47.     _salesPrice = getNumber (missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "sellPrice");
  48.     if (_containerType isEqualTo 1) then
  49.     {
  50.         if (_itemClassName isEqualTo (primaryWeapon _playerObject)) then
  51.         {
  52.             {
  53.                 {
  54.                     if !(_x isEqualTo "") then
  55.                     {
  56.                         _salesPrice = _salesPrice + getNumber (missionConfigFile >> "CfgExileArsenal" >> _x >> "sellPrice");
  57.                     };
  58.                 }
  59.                 forEach _x;
  60.             }
  61.             forEach
  62.             [
  63.                 primaryWeaponItems _playerObject,
  64.                 primaryWeaponMagazine _playerObject
  65.             ];
  66.         };
  67.         if (_itemClassName isEqualTo (handgunWeapon _playerObject)) then
  68.         {
  69.             {
  70.                 {
  71.                     if !(_x isEqualTo "") then
  72.                     {
  73.                         _salesPrice = _salesPrice + getNumber (missionConfigFile >> "CfgExileArsenal" >> _x >> "sellPrice");
  74.                     };
  75.                 }
  76.                 forEach _x;
  77.             }
  78.             forEach
  79.             [
  80.                 handgunItems _playerObject,
  81.                 handgunMagazine _playerObject
  82.             ];
  83.         };
  84.     };
  85.     _sellPrice = _salesPrice;
  86.     if (_sellPrice <= 0) then
  87.     {
  88.         throw 4;
  89.     };
  90.     _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  91.     _playerMoney = _playerMoney + _sellPrice;
  92.     _playerObject setVariable ["ExileMoney", _playerMoney];
  93.     _respectGain = _sellPrice * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
  94.     _playerRespect = _playerObject getVariable ["ExileScore", 0];
  95.     _playerRespect = floor (_playerRespect + _respectGain);
  96.     _playerObject setVariable ["ExileScore", _playerRespect];
  97.     format["setAccountMoneyAndRespect:%1:%2:%3", _playerMoney, _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
  98.     [_sessionID, "sellItemResponse", [0, str _playerMoney, _itemClassName, 1, _containerType, _containerNetID, str _playerRespect]] call ExileServer_system_network_send_to;
  99.     if !(_vehicleObject isEqualTo objNull) then
  100.     {
  101.         _vehicleObject call ExileServer_object_vehicle_database_update;
  102.     }
  103.     else
  104.     {
  105.         _playerObject call ExileServer_object_player_database_update;
  106.     };
  107. }
  108. catch
  109. {
  110.     _responseCode = _exception;
  111.     diag_log format ["NOPE: %1", _responseCode];
  112.     [_sessionID, "sellItemResponse", [_responseCode, "", "", 0, 0, "", ""]] call ExileServer_system_network_send_to;
  113. };
  114. _playerObject setVariable ["ExileMutex",false];
  115. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement