Advertisement
MGT

​ExileServer_system_territory_network_payTerritoryProtection

MGT
Nov 22nd, 2015
678
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. private["_sessionID","_parameters","_flagNetID","_playerObject","_flagObject","_flagStolen","_territoryDatabaseID","_radius","_level","_objectsInTerritory","_territoryName","_popTabAmountPerObject","_totalPopTabAmount","_playerPopTabs","_currentTimestamp","_logging","_territoryLog"];
  2. _sessionID = _this select 0;
  3. _parameters = _this select 1;
  4. _flagNetID = _parameters select 0;
  5. try
  6. {
  7. _playerObject = _sessionID call ExileServer_system_session_getPlayerObject;
  8. if (isNull _playerObject) then
  9. {
  10. throw "Invalid player object";
  11. };
  12. _flagObject = objectFromNetId _flagNetID;
  13. if (isNull _flagObject) then
  14. {
  15. throw "Invalid flag object";
  16. };
  17. _flagStolen = _flagObject getVariable ["ExileFlagStolen", 0];
  18. if (_flagStolen isEqualTo 1) then
  19. {
  20. throw "Flag stolen!";
  21. };
  22. _territoryDatabaseID = _flagObject getVariable ["ExileDatabaseID", 0];
  23. _territoryName = _flagObject getVariable ["ExileTerritoryName", 0];
  24. _radius = _flagObject getVariable ["ExileTerritorySize", 15];
  25. _level = _flagObject getVariable ["ExileTerritoryLevel", 1];
  26. _objectsInTerritory = _flagObject getVariable ["ExileTerritoryNumberOfConstructions", 0];
  27. _popTabAmountPerObject = getNumber (missionConfigFile >> "CfgTerritories" >> "popTabAmountPerObject");
  28. _totalPopTabAmount = _level * _popTabAmountPerObject * _objectsInTerritory;
  29. _playerPopTabs = _playerObject getVariable ["ExileMoney", 0];
  30. if (_playerPopTabs < _totalPopTabAmount) then
  31. {
  32. throw "You do not have enough pop tabs!";
  33. };
  34. _playerPopTabs = _playerPopTabs - _totalPopTabAmount;
  35. _playerObject setVariable ["ExileMoney", _playerPopTabs, true];
  36. format["setPlayerMoney:%1:%2", _playerPopTabs, _playerObject getVariable ["ExileDatabaseID", 0]] call ExileServer_system_database_query_fireAndForget;
  37. _currentTimestamp = call ExileServer_util_time_currentTime;
  38. _flagObject setVariable ["ExileTerritoryLastPayed", _currentTimestamp];
  39. _flagObject call ExileServer_system_territory_maintenance_recalculateDueDate;
  40. format["maintainTerritory:%1", _territoryDatabaseID] call ExileServer_system_database_query_fireAndForget;
  41. [_sessionID, "toastRequest", ["SuccessTitleOnly", ["Protection money paid!"]]] call ExileServer_system_network_send_to;
  42.  
  43. [_sessionID, "toastRequest", ["SuccessTitleAndText", ["Territory fee paid for:", _territoryName]]] call ExileServer_system_network_send_to;
  44.  
  45. _logging = getNumber(configFile >> "CfgSettings" >> "Logging" >> "territoryLogging");
  46. if (_logging isEqualTo 1) then
  47. {
  48. _territoryLog = format ["PLAYER ( %1 ) %2 PAID %3 POP TABS TO PROTECT TERRITORY #%4 %6 | PLAYER TOTAL POP TABS: %5",getPlayerUID _playerObject,_playerObject,_totalPopTabAmount,_territoryDatabaseID,_playerPopTabs,_territoryName];
  49.  
  50. ["TERRITORYLOG",_territoryLog] call FNC_A3_CUSTOMLOG;
  51. };
  52. _flagObject call ExileServer_system_xm8_sendProtectionMoneyPaid;
  53. }
  54. catch
  55. {
  56. [_sessionID, "toastRequest", ["ErrorTitleAndText", ["Failed to pay!", _exception]]] call ExileServer_system_network_send_to;
  57. _exception call ExileServer_util_log;
  58. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement