From c055d44dcdb87e8db49fb23e632fc086aa44cce6 Mon Sep 17 00:00:00 2001 From: hybrid Date: Thu, 11 Jun 2026 19:53:22 +0300 Subject: init --- Client/PVFunctions/TownCapturedPublic.sqf | 96 +++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 Client/PVFunctions/TownCapturedPublic.sqf (limited to 'Client/PVFunctions/TownCapturedPublic.sqf') diff --git a/Client/PVFunctions/TownCapturedPublic.sqf b/Client/PVFunctions/TownCapturedPublic.sqf new file mode 100644 index 0000000..4d9df03 --- /dev/null +++ b/Client/PVFunctions/TownCapturedPublic.sqf @@ -0,0 +1,96 @@ +Private ["_award","_bounty","_location","_locationName","_marker1","_mysqlUpdate","_name","_locations","_objective","_ptask","_range","_side","_sideName","_sideValue","_task","_units"]; + +_location = _this select 0; +_sideValue = _this select 1; + +if !(clientInitComplete) exitWith {}; + +_name = str _location; +_mysqlUpdate = ""; + +_task = _location getVariable 'taskLink'; +_ptask = currentTask player; +if (isNil '_task') then {_task = objNull}; +_locationName = _location getVariable "name"; + +_sideName = localize "STR_WF_PARAMETER_Side_East"; +if (_sideValue == WESTID) then {_sideName = localize "STR_WF_PARAMETER_Side_West"}; + +[Format[Localize "STR_WF_CHAT_Town_Captured",_locationName,_sideName]] Call TitleTextMessage; +_marker1 = Format["%1Depot",_name]; + +if (_sideValue == sideID) then {_marker1 setMarkerColorLocal ("Friendly" Call GetMarkerColoration)} else {_marker1 setMarkerColorLocal ("Enemy" Call GetMarkerColoration)}; + +if (_sideValue == sideID) then { + _award = false; + if ((Leader Group player) == player) then { + _units = Units Group player; + {if (vehicle _x distance _location < ('WFBE_TOWNCAPTURERANGE' Call GetNamespace)) then {_award = true};} ForEach _units; + }; + + if (player distance _location < ('WFBE_TOWNCAPTURERANGE' Call GetNamespace) || _award) then { + if (_task == _ptask) then { + ["TownHintDone",_location] Spawn TaskSystem; + ('WFBE_TOWNMISSIONCAPTUREBOUNTY' Call GetNamespace) Call ChangePlayerFunds; + WFBE_RequestChangeScore = ['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_SCORECAPTURETOWN' Call GetNamespace)]]; + publicVariable 'WFBE_RequestChangeScore'; + if (isHostedServer) then {['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_SCORECAPTURETOWN' Call GetNamespace)]] Spawn HandleSPVF}; + Format[Localize "STR_WF_CHAT_Town_Bounty_Full",_locationName,('WFBE_TOWNMISSIONCAPTUREBOUNTY' Call GetNamespace)] Call CommandChatMessage; + _mysqlUpdate = "towncaptured"; + } else { + ('WFBE_TOWNCAPTUREBOUNTY' Call GetNamespace) Call ChangePlayerFunds; + WFBE_RequestChangeScore = ['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_SCORECAPTURETOWN' Call GetNamespace)]]; + publicVariable 'WFBE_RequestChangeScore'; + if (isHostedServer) then {['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_SCORECAPTURETOWN' Call GetNamespace)]] Spawn HandleSPVF}; + Format[Localize "STR_WF_CHAT_Town_Bounty_Full",_locationName,('WFBE_TOWNCAPTUREBOUNTY' Call GetNamespace)] Call CommandChatMessage; + _mysqlUpdate = "towncaptured"; + }; + } else { + _range = (_location getVariable "range") * ('WFBE_TOWNCAPTUREASSISTRANGEMODIFIER' Call GetNamespace); + if (player distance _location < _range) then { + if (_task == _ptask) then { + ["TownHintDone",_location] Spawn TaskSystem; + ('WFBE_TOWNMISSIONASSISTCAPTUREBOUNTY' Call GetNamespace) Call ChangePlayerFunds; + WFBE_RequestChangeScore = ['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_SCOREASSISTCAPTURETOWN' Call GetNamespace)]]; + publicVariable 'WFBE_RequestChangeScore'; + if (isHostedServer) then {['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_SCOREASSISTCAPTURETOWN' Call GetNamespace)]] Spawn HandleSPVF}; + Format[Localize "STR_WF_CHAT_Town_Bounty_Full",_locationName,('WFBE_TOWNMISSIONASSISTCAPTUREBOUNTY' Call GetNamespace)] Call CommandChatMessage; + _mysqlUpdate = "townassist"; + } else { + ('WFBE_TOWNASSISTCAPTUREBOUNTY' Call GetNamespace) Call ChangePlayerFunds; + WFBE_RequestChangeScore = ['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_SCOREASSISTCAPTURETOWN' Call GetNamespace)]]; + publicVariable 'WFBE_RequestChangeScore'; + if (isHostedServer) then {['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_SCOREASSISTCAPTURETOWN' Call GetNamespace)]] Spawn HandleSPVF}; + Format[Localize "STR_WF_CHAT_Town_Bounty_Assist",_locationName,('WFBE_TOWNASSISTCAPTUREBOUNTY' Call GetNamespace)] Call CommandChatMessage; + _mysqlUpdate = "townassist"; + }; + }; + }; +}; + +if (mysql) then { + if (_mysqlUpdate != "") then { + WF_Logic setVariable ["WF_MYSQL_CLIENT",(WF_Logic getVariable "WF_MYSQL_CLIENT") + [Format ["MYSQLDATA?WFBE_Update?%1?%2?%3?%4",getPlayerUID(player),name player,_mysqlUpdate,worldName]],true]; + }; +}; + +if (!isNull commanderTeam && sideID == _sideValue) then { + if (commanderTeam == Group player) then { + _bounty = (_location getVariable "startingSupplyValue") * ('WFBE_COMMANDERTOWNCAPTURECOEF' Call GetNamespace); + _bounty Call ChangePlayerFunds; + WFBE_RequestChangeScore = ['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_COMMANDERTOWNCAPTURESCORE' Call GetNamespace)]]; + publicVariable 'WFBE_RequestChangeScore'; + if (isHostedServer) then {['SRVFNCREQUESTCHANGESCORE',[player,score player + ('WFBE_COMMANDERTOWNCAPTURESCORE' Call GetNamespace)]] Spawn HandleSPVF}; + Format[Localize "STR_WF_CHAT_Commander_Bounty_Town",_bounty,_locationName] Call CommandChatMessage; + }; +}; + +/* Task Handling */ +["TownUpdate",_location] Spawn TaskSystem; +if (sideID == _sideValue) then { + if !(isNull _task) then { + if (_ptask == _task) then { + ["TownAssignClosest"] Spawn TaskSystem; + }; + }; +}; \ No newline at end of file -- cgit v1.3.1