Advertisement
MGT

Untitled

MGT
Oct 21st, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. /*
  2. ExileServer_system_trading_network_wasteDumpRequest
  3. */
  4. _this spawn {
  5. private["_sessionID","_parameters","_vehicleNetID","_mode","_fnc_network_send","_vehicleObject","_playerObject","_cargo","_revenue","_playerMoney","_respectGain","_playerRespect","_traderLog"];
  6. _sessionID = _this select 0;
  7. _parameters = _this select 1;
  8. _vehicleNetID = _parameters select 0;
  9. _mode = _parameters select 1;
  10. _fnc_network_send = {[_this select 0, "wasteDumpResponse", [_this select 1, 0, ""]] call call ExileServer_system_network_send_to;};
  11.  
  12. _vehicleObject = objectFromNetId _vehicleNetID;
  13. if(isNull _vehicleObject)exitWith{[_sessionID, 6] call _fnc_network_send;};
  14. _mutexvarname = format["ExileMutex_%1",netId _vehicleObject];
  15. if(missionNameSpace getVariable [_mutexvarname,false])exitWith{[_sessionID,12] call _fnc_network_send;};
  16. missionNameSpace setVariable [_mutexvarname,true];
  17.  
  18. _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  19. if(isNull _playerObject)exitWith{[_sessionID, 1] call _fnc_network_send;};
  20. if!(alive _playerObject)exitWith{[_sessionID, 2] call _fnc_network_send;};
  21. if!((owner _vehicleObject) isEqualTo (owner _playerObject))exitWith{[_sessionID, 6] call _fnc_network_send;};
  22.  
  23. _class = typeOf _vehicleObject;
  24. _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
  25. _revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice;
  26. clearBackpackCargoGlobal _vehicleObject;
  27. clearItemCargoGlobal _vehicleObject;
  28. clearMagazineCargoGlobal _vehicleObject;
  29. clearWeaponCargoGlobal _vehicleObject;
  30.  
  31. _deleted = false;
  32. if(_mode isEqualTo 2)then
  33. {
  34. _revenue = _revenue + ([(typeOf _vehicleObject)] call ExileClient_util_gear_calculateTotalSellPrice);
  35. _vehicleObject call ExileServer_object_vehicle_remove;
  36. _vehicleObject setPos [0,0,0];
  37. _vehicleObject setDamage 1;
  38. deleteVehicle _vehicleObject;
  39. _deleted = true;
  40. }
  41. else
  42. {
  43. _vehicleObject call ExileServer_object_vehicle_database_update;
  44. };
  45. _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  46. _playerMoney = _playerMoney + _revenue;
  47. _playerObject setVariable ["ExileMoney", _playerMoney, true];
  48. format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
  49. _respectGain = _revenue * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
  50. _playerRespect = _playerObject getVariable ["ExileScore", 0];
  51. _playerRespect = floor (_playerRespect + _respectGain);
  52. _playerObject setVariable ["ExileScore", _playerRespect];
  53. format["setAccountScore:%1:%2", _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
  54. [_sessionID, "wasteDumpResponse", [0, _revenue, str _playerRespect]] call ExileServer_system_network_send_to;
  55.  
  56. _traderLog = format ["PLAYER: ( %1 ) %2 SOLD ITEM: %3 (ID# %4) with Cargo %5 FOR %6 POPTABS AND %7 RESPECT | PLAYER TOTAL MONEY: %8",getPlayerUID _playerObject,_playerObject,_class,_vehicleNetID,_cargo,_revenue,_respectGain,_playerMoney];
  57. ["RECYCLELOG",_traderLog] call FNC_A3_CUSTOMLOG;
  58.  
  59. if(_deleted)then
  60. {
  61. missionNameSpace setVariable [_mutexvarname,nil];
  62. if(!isNull _vehicleObject)then
  63. {
  64. _vehicleObject setPos [0,0,0];
  65. _vehicleObject setDamage 1;
  66. deleteVehicle _vehicleObject;
  67. };
  68. }
  69. else
  70. {
  71. missionNameSpace setVariable [_mutexvarname,false];
  72. };
  73. };
  74. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement