/** * ExileClient_construction_beginExistingObject * * Edited for Exile by _sinworks * * Exile Mod * www.exilemod.com * © 2015 Exile Mod Team * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. */ private["_kitClassName","_previewObjectClassName"]; _kitClassName = _this select 0; _count = 0; if (_kitClassName == "Exile_Item_Flag") then { _playerUID = getPlayerUID player; { _flag = _x; _buildRights = _flag getVariable ["ExileTerritoryBuildRights", []]; if(_playerUID in _buildRights)then { _count = _count + 1; }; } forEach (allMissionObjects "Exile_Construction_Flag_Static"); }; if (_count > 2) then { ["ErrorTitleAndText", ["Error", "You are already in the maximum amount of territories, Please leave one to create a new one"]] call ExileClient_gui_toaster_addTemplateToast; } else { ExileClientConstructionConfig = ("getText(_x >> 'kitMagazine') == _kitClassName" configClasses(configFile >> "CfgConstruction")) select 0; _previewObjectClassName = getText(ExileClientConstructionConfig >> "previewObject"); ExileClientConstructionSnapToObjectClassNames = (ExileClientConstructionConfig >> "SnapObjects") call Bis_fnc_getCfgSubClasses; ExileClientConstructionProcess = 1; ExileClientConstructionOffset = [0, 5, 0]; ExileClientConstructionPosition = [0, 0, 0]; ExileClientConstructionRotation = 0; ExileClientConstructionPitch = 0; ExileClientConstructionBank = 0; ExileClientConstructionVectorMode = false; ExileClientConstructionKitClassName = _kitClassName; ExileClientConstructionObjectDisplayName = getText(configFile >> "CfgVehicles" >> _previewObjectClassName >> "displayName"); if (ExileClientPlayerIsInCombat) then { ["ErrorTitleAndText", ["Construction aborted!", "You cannot build during a combat."]] call ExileClient_gui_toaster_addTemplateToast; } else { ExileClientConstructionMode = 1; ExileClientConstructionIsInSelectSnapObjectMode = true; ExileClientConstructionSupportSnapMode = count(ExileClientConstructionSnapToObjectClassNames) > 0; ExileClientConstructionCurrentSnapToObject = objNull; ExileClientConstructionPosition = [getPosATL player, ExileClientConstructionOffset select 1, getDir player] call ExileClient_util_math_getPositionInDirection; ExileClientConstructionPosition set[2, ExileClientConstructionOffset select 2]; { player reveal _x; } forEach (player nearObjects ["Exile_Construction_Abstract_Static", 20]); if((count _this) < 2 )then { ["buildConstructionRequest", [_previewObjectClassName,ExileClientConstructionPosition]] call ExileClient_system_network_send; } else { ["buildTerritoryRequest", [_previewObjectClassName, (ASLtoAGL (ATLtoASL ExileClientConstructionPosition)),_this select 1,_this select 2]] call ExileClient_system_network_send; }; }; }; true