Advertisement
MGT

ExileServer_system_territory_network_payTerritoryProtectionM

MGT
Apr 21st, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. /**
  2. * ExileServer_system_territory_network_payTerritoryProtectionMoneyRequest
  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","_flagNetID","_mode","_playerObject","_flagObject","_territoryDatabaseID","_territoryName","_radius","_level","_objectsInTerritory","_popTabAmountPerObject","_totalPopTabAmount","_respectAmountPerObject","_totalRespectAmount","_playerPopTabs","_playerRespect","_currentTimestamp"];
  13. _sessionID = _this select 0;
  14. _parameters = _this select 1;
  15. _flagNetID = _parameters select 0;
  16. _mode = _parameters select 1;
  17. _territoryName = _paramaters select 3;
  18. try
  19. {
  20. _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  21. if (isNull _playerObject) then
  22. {
  23. throw "Invalid player object";
  24. };
  25. _flagObject = objectFromNetId _flagNetID;
  26. if (isNull _flagObject) then
  27. {
  28. throw "Invalid flag object";
  29. };
  30. _territoryDatabaseID = _flagObject getVariable ["ExileDatabaseID", 0];
  31. _territoryName = _flagObject getVariable ["ExileTerritoryName", 0];
  32. _radius = _flagObject getVariable ["ExileTerritorySize", 15];
  33. _level = _flagObject getVariable ["ExileTerritoryLevel", 1];
  34. _objectsInTerritory = _flagObject getVariable ["ExileTerritoryNumberOfConstructions", 0];
  35. _popTabAmountPerObject = getNumber (missionConfigFile >> "CfgTerritories" >> "popTabAmountPerObject");
  36. _totalPopTabAmount = _level * _popTabAmountPerObject * _objectsInTerritory;
  37. _respectAmountPerObject = getNumber (missionConfigFile >> "CfgTerritories" >> "respectAmountPerObject");
  38. _totalRespectAmount = _level * _respectAmountPerObject * _objectsInTerritory;
  39. _playerPopTabs = _playerObject getVariable ["ExileMoney", 0];
  40. _playerRespect = _playerObject getVariable ["ExileScore", 0];
  41. if (_mode isEqualTo 0) then
  42. {
  43. if (_playerPopTabs < _totalPopTabAmount) then
  44. {
  45. throw "You do not have enough pop tabs!";
  46. };
  47. _playerPopTabs = _playerPopTabs - _totalPopTabAmount;
  48. _playerObject setVariable ["ExileMoney", _playerPopTabs];
  49. format["setAccountMoney:%1:%2", _playerPopTabs, getPlayerUID _playerObject] call ExileServer_system_database_query_fireAndForget;
  50. _TerritoryPOPTABLog = format ["PLAYER: %1:%6 PAID TERRITORY %2 SIZE %3 FOR %4 POPTABS | PLAYER TOTAL MONEY: %5",_playerObject,_territoryName,_level,_totalPopTabAmount,_playerPopTabs,(getPlayerUID _playerObject)];
  51. 'ARMA_LOG' callExtension format['A3_EXILE_TERRITORYLOG:%1',_TerritoryPOPTABLog];
  52. }
  53. else
  54. {
  55. if (_playerRespect < _totalRespectAmount) then
  56. {
  57. throw "You do not have enough respect!";
  58. };
  59. _playerRespect = _playerRespect - _totalRespectAmount;
  60. _playerObject setVariable ["ExileScore", _playerRespect];
  61. format["setAccountScore:%1:%2", _playerRespect, getPlayerUID _playerObject] call ExileServer_system_database_query_fireAndForget;
  62. _TerritoryRESPECTLog = format ["PLAYER: %1:%6 PAID TERRITORY %2 SIZE %3 FOR %4 RESPECT | PLAYER TOTAL RESPECT: %5",_playerObject,_territoryName,_level,_totalRespectAmount,_playerRespect,(getPlayerUID _playerObject)];
  63. 'ARMA_LOG' callExtension format['A3_EXILE_TERRITORYLOG:%1',_TerritoryRESPECTLog];
  64. };
  65. _currentTimestamp = call ExileServer_util_time_currentTime;
  66. _flagObject setVariable ["ExileTerritoryLastPayed", _currentTimestamp];
  67. _flagObject call ExileServer_system_territory_maintenance_recalculateDueDate;
  68. format["maintainTerritory:%1", _territoryDatabaseID] call ExileServer_system_database_query_fireAndForget;
  69. [_sessionID, "payTerritoryProtectionMoneyResponse", [str _playerPopTabs, str _playerRespect]] call ExileServer_system_network_send_to;
  70. }
  71. catch
  72. {
  73. [_sessionID, "notificationRequest", ["Whoops", [_exception]]] call ExileServer_system_network_send_to;
  74. _exception call ExileServer_util_log;
  75. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement