MGT

ExileServer_system_trading_network_sendMoneyRequest.sqf

MGT
Dec 4th, 2015
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. /**
  2. * ExileServer_system_trading_network_sendMoneyRequest
  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","_amountToTransferString","_receiverNetID","_amountToTransfer","_senderPlayerObject","_receiverPlayerObject","_senderAccountBalance","_receiverAccountBalance"];
  13. _sessionID = _this select 0;
  14. _parameters = _this select 1;
  15. _amountToTransferString = _parameters select 0;
  16. _receiverNetID = _parameters select 1;
  17. try
  18. {
  19. _amountToTransfer = floor (parseNumber _amountToTransferString);
  20. if (_amountToTransfer < 1) then
  21. {
  22. throw "You cannot transfer weird amounts.";
  23. };
  24. _senderPlayerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  25. if (isNull _senderPlayerObject) then
  26. {
  27. throw "Player (sender) object not found.";
  28. };
  29. _receiverPlayerObject = objectFromNetId _receiverNetID;
  30. if (isNull _receiverPlayerObject) then
  31. {
  32. throw "Player (receiver) object not found.";
  33. };
  34. if (_senderPlayerObject isEqualTo _receiverPlayerObject) then
  35. {
  36. throw "You want to send yourself some MONEH, huh?";
  37. };
  38. _senderAccountBalance = _senderPlayerObject getVariable ["ExileMoney", 0];
  39. _receiverAccountBalance = _receiverPlayerObject getVariable ["ExileMoney", 0];
  40. if (_amountToTransfer > _senderAccountBalance) then
  41. {
  42. throw "You do not have enough pop tabs in your account.";
  43. };
  44. _senderAccountBalance = _senderAccountBalance - _amountToTransfer;
  45. _senderPlayerObject setVariable ["ExileMoney", _senderAccountBalance];
  46. format["setAccountMoney:%1:%2", _senderAccountBalance, getPlayerUID _senderPlayerObject] call ExileServer_system_database_query_fireAndForget;
  47. [_sessionID, "moneySentRequest", [str _senderAccountBalance, name _receiverPlayerObject]] call ExileServer_system_network_send_to;
  48. _receiverAccountBalance = _receiverAccountBalance + _amountToTransfer;
  49. _receiverPlayerObject setVariable ["ExileMoney", _receiverAccountBalance];
  50. format["setAccountMoney:%1:%2", _receiverAccountBalance, getPlayerUID _receiverPlayerObject] call ExileServer_system_database_query_fireAndForget;
  51. [_receiverPlayerObject, "moneyReceivedRequest", [str _receiverAccountBalance, name _senderPlayerObject]] call ExileServer_system_network_send_to;
  52. _poptabLog = format ["POPTAB TRANSFER %1:%4 SENT %2 POPTABS TO %3:%5",_senderPlayerObject,_amountToTransfer,_receiverPlayerObject,(getPlayerUID _senderPlayerObject),(getPlayerUID _receiverPlayerObject)];
  53. 'ARMA_LOG' callExtension format['A3_EXILE_POPTABS:%1',_poptabLog];
  54. }
  55. catch
  56. {
  57. [_sessionID, "notificationRequest", ["Whoops", [_exception]]] call ExileServer_system_network_send_to;
  58. _exception call ExileServer_util_log;
  59. };
Add Comment
Please, Sign In to add comment