Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.86 KB | None | 0 0
  1. /**
  2. * ExileServer_system_trading_network_wasteDumpRequest
  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","_vehicleNetID","_mode","_vehicleObject","_vehicleDBID","_playerObject","_cargo","_revenue","_playerMoney","_respectGain","_playerRespect","_logging","_traderLog","_responseCode"];
  13. _sessionID = _this select 0;
  14. _parameters = _this select 1;
  15. _vehicleNetID = _parameters select 0;
  16. _mode = _parameters select 1;
  17. try
  18. {
  19. _vehicleObject = objectFromNetId _vehicleNetID;
  20. _vehicleDBID = _vehicleObject getVariable "ExileDatabaseID";
  21. if (isNull _vehicleObject) then
  22. {
  23. throw 6;
  24. };
  25. if (_vehicleObject getVariable ["ExileMutex", false]) then
  26. {
  27. throw 12;
  28. };
  29. _vehicleObject setVariable ["ExileMutex", true];
  30. _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  31. if (isNull _playerObject) then
  32. {
  33. throw 1;
  34. };
  35. if !(alive _playerObject) then
  36. {
  37. throw 2;
  38. };
  39. _vehicleInfo = _x getVariable ["XG_AntiTheftInfo",[]];
  40. if!(_vehicleInfo isEqualTo []) then
  41. {
  42. _vehicleInfo params [["_group",""],["_vifamily","No Family"],["_ownerUID",""]];
  43. _family = _playerObject getVariable ["ExileClanID",""];
  44. if(_family isEqualTo -1) then
  45. {
  46. _family = "No Family";
  47. };
  48. if(_group isEqualTo "No Group") then
  49. {
  50. if!(_family isEqualTo "No Family") then
  51. {
  52. if((_family isEqualTo _vifamily) || (getPlayerUID _playerObject) isEqualTo _ownerUID) then
  53. {
  54. throw 6;
  55. };
  56. }
  57. else
  58. {
  59. if((getPlayerUID _playerObject) isEqualTo _ownerUID) then
  60. {
  61. throw 6;
  62. };
  63. };
  64. }
  65. else
  66. {
  67. if!(_family isEqualTo "No Family") then
  68. {
  69. if((str(group _playerObject) isEqualTo _group) || (_family isEqualTo _vifamily) || (getPlayerUID _playerObject) isEqualTo _ownerUID) then
  70. {
  71. throw 6;
  72. };
  73. }
  74. else
  75. {
  76. if((str(group _playerObject) isEqualTo _group) || (getPlayerUID _playerObject) isEqualTo _ownerUID) then
  77. {
  78. throw 6;
  79. };
  80. };
  81. };
  82. }
  83. else
  84. {
  85. if !((owner _vehicleObject) isEqualTo (owner _playerObject)) then
  86. {
  87. throw 6;
  88. };
  89. };
  90.  
  91. /* deafult
  92. _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
  93. _revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice;
  94. clearBackpackCargoGlobal _vehicleObject;
  95. clearItemCargoGlobal _vehicleObject;
  96. clearMagazineCargoGlobal _vehicleObject;
  97. clearWeaponCargoGlobal _vehicleObject;
  98. */
  99. _cargo = [];
  100. _revenue = 0;
  101.  
  102. if(_mode isEqualTo 1) then
  103. {
  104. //standard cargo
  105. _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
  106. _revenue = _cargo call ExileClient_util_gear_calculateTotalSellPrice;
  107. clearBackpackCargoGlobal _vehicleObject;
  108. clearItemCargoGlobal _vehicleObject;
  109. clearMagazineCargoGlobal _vehicleObject;
  110. clearWeaponCargoGlobal _vehicleObject;
  111. _vehicleObject call ExileServer_object_vehicle_database_update;
  112. };
  113. if(_mode isEqualTo 2) then
  114. {
  115. if (count (_vehicleObject getVariable ["R3F_LOG_objets_charges", []]) >0) then
  116. {
  117. {
  118. _cargo = _x call ExileClient_util_containerCargo_list;
  119. _revenue = _revenue + (_cargo call ExileClient_util_gear_calculateTotalSellPrice);
  120. _revenue = _revenue + ([(typeOf _x)] call ExileClient_util_gear_calculateTotalSellPrice);
  121. clearBackpackCargoGlobal _x;
  122. clearItemCargoGlobal _x;
  123. clearMagazineCargoGlobal _x;
  124. clearWeaponCargoGlobal _x;
  125. _x call ExileServer_object_vehicle_remove;
  126. deleteVehicle _x;
  127. }forEach (_vehicleObject getVariable ["R3F_LOG_objets_charges", []]);
  128. };
  129. _vehicleObject setVariable ["R3F_LOG_objets_charges", [], true];
  130. _vehicleObject call ExileServer_object_vehicle_database_update;
  131. };
  132. if (_mode isEqualTo 3) then
  133. {
  134. {
  135. _cargo = _x call ExileClient_util_containerCargo_list;
  136. _revenue = _revenue + (_cargo call ExileClient_util_gear_calculateTotalSellPrice);
  137. _revenue = _revenue + ([(typeOf _x)] call ExileClient_util_gear_calculateTotalSellPrice);
  138. clearBackpackCargoGlobal _x;
  139. clearItemCargoGlobal _x;
  140. clearMagazineCargoGlobal _x;
  141. clearWeaponCargoGlobal _x;
  142. _x call ExileServer_object_vehicle_remove;
  143. deleteVehicle _x;
  144. }forEach (_vehicleObject getVariable ["R3F_LOG_objets_charges", []]);
  145.  
  146. //standard cargo
  147. _cargo = _vehicleObject call ExileClient_util_containerCargo_list;
  148. _revenue = _revenue + (_cargo call ExileClient_util_gear_calculateTotalSellPrice);
  149. clearBackpackCargoGlobal _vehicleObject;
  150. clearItemCargoGlobal _vehicleObject;
  151. clearMagazineCargoGlobal _vehicleObject;
  152. clearWeaponCargoGlobal _vehicleObject;
  153.  
  154. _revenue = _revenue + ([(typeOf _vehicleObject)] call ExileClient_util_gear_calculateTotalSellPrice);
  155. _vehicleObject call ExileServer_object_vehicle_remove;
  156. deleteVehicle _vehicleObject;
  157. };
  158. /*
  159. else
  160. {
  161. _vehicleObject call ExileServer_object_vehicle_database_update;
  162. };
  163. */
  164. _playerMoney = _playerObject getVariable ["ExileMoney", 0];
  165. _playerMoney = _playerMoney + _revenue;
  166. _playerObject setVariable ["ExileMoney", _playerMoney, true];
  167. format["setPlayerMoney:%1:%2", _playerMoney, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
  168. _respectGain = _revenue * getNumber (configFile >> "CfgSettings" >> "Respect" >> "tradingRespectFactor");
  169. _playerRespect = _playerObject getVariable ["ExileScore", 0];
  170. _playerRespect = floor (_playerRespect + _respectGain);
  171. _playerObject setVariable ["ExileScore", _playerRespect];
  172. format["setAccountScore:%1:%2", _playerRespect, (getPlayerUID _playerObject)] call ExileServer_system_database_query_fireAndForget;
  173. [_sessionID, "wasteDumpResponse", [0, _revenue, str _playerRespect]] call ExileServer_system_network_send_to;
  174. _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "traderLogging");
  175. if (_logging isEqualTo 1) then
  176. {
  177. _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,typeOf _vehicleObject,_vehicleDBID,_cargo,_revenue,_respectGain,_playerMoney];
  178. "extDB2" callExtension format["1:TRADING:%1",_traderLog];
  179.  
  180. _recycleLog = format["PLAYER: %1:%7 %2 POPTABS AND %3 RESPECT | PLAYER TOTAL MONEY: %4 | RECYCLED ITEM: %5 WITH %6 CARGO",_playerObject,_revenue,_respectGain,_playerMoney,_vehicleObject,_cargo,(getPlayerUID _playerObject)];
  181. ['A3_EXILE_RECYCLELOG_BIG',_recycleLog] call FNC_A3_CUSTOMLOG;
  182. };
  183. }
  184. catch
  185. {
  186. _responseCode = _exception;
  187. [_sessionID, "wasteDumpResponse", [_responseCode, 0, ""]] call ExileServer_system_network_send_to;
  188. };
  189.  
  190. if (!isNull _vehicleObject) then
  191. {
  192. _vehicleObject setVariable ["ExileMutex", false];
  193. };
  194.  
  195. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement