Jump to content

Search the Community

Showing results for tags 'curator'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • BOHEMIA INTERACTIVE
    • BOHEMIA INTERACTIVE - NEWS
    • BOHEMIA INTERACTIVE - JOBS
    • BOHEMIA INTERACTIVE - GENERAL
  • FEATURED GAMES
    • Vigor
    • DAYZ
    • ARMA 3
    • ARMA 2
    • YLANDS
  • MOBILE GAMES
    • ARMA MOBILE OPS
    • MINIDAYZ
    • ARMA TACTICS
    • ARMA 2 FIRING RANGE
  • BI MILITARY GAMES FORUMS
  • BOHEMIA INCUBATOR
    • PROJECT LUCIE
  • OTHER BOHEMIA GAMES
    • ARGO
    • TAKE ON MARS
    • TAKE ON HELICOPTERS
    • CARRIER COMMAND: GAEA MISSION
    • ARMA: ARMED ASSAULT / COMBAT OPERATIONS
    • ARMA: COLD WAR ASSAULT / OPERATION FLASHPOINT
    • IRON FRONT: LIBERATION 1944
    • BACK CATALOGUE
  • OFFTOPIC
    • OFFTOPIC
  • Die Hard OFP Lovers' Club's Topics
  • ArmA Toolmakers's Releases
  • ArmA Toolmakers's General
  • Japan in Arma's Topics
  • Arma 3 Photography Club's Discussions
  • The Order Of the Wolfs- Unit's Topics
  • 4th Infantry Brigade's Recruitment
  • 11th Marine Expeditionary Unit OFFICIAL | 11th MEU(SOC)'s 11th MEU(SOC) Recruitment Status - OPEN
  • Legion latina semper fi's New Server Legion latina next wick
  • Legion latina semper fi's https://www.facebook.com/groups/legionlatinasemperfidelis/
  • Legion latina semper fi's Server VPN LEGION LATINA SEMPER FI
  • Team Nederland's Welkom bij ons club
  • Team Nederland's Facebook
  • [H.S.O.] Hellenic Special Operations's Infos
  • BI Forum Ravage Club's Forum Topics
  • Exilemod (Unofficial)'s General Discussion
  • Exilemod (Unofficial)'s Scripts
  • Exilemod (Unofficial)'s Addons
  • Exilemod (Unofficial)'s Problems & Bugs
  • Exilemod (Unofficial)'s Exilemod Server tweaks
  • Exilemod (Unofficial)'s Promotion
  • Exilemod (Unofficial)'s Maps - Mission Files
  • TKO's Weferlingen
  • TKO's Chernarus
  • TKO's Livonia
  • TKO's Rules
  • TKO's Changelog
  • TKO's Help
  • TKO's What we Need
  • TKO's Virolahti
  • MSOF A3 Wasteland's Server Game Play Features
  • MSOF A3 Wasteland's Problems & Bugs
  • MSOF A3 Wasteland's Maps in Rotation
  • SOS GAMING's Server
  • SOS GAMING's News on Server
  • SOS GAMING's Regeln / Rules
  • SOS GAMING's Ghost-Town-Team
  • SOS GAMING's Steuerung / Keys
  • SOS GAMING's Div. Infos
  • SOS GAMING's Small Talk
  • NAMC's Topics

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Yahoo


Jabber (xmpp)


Skype


Biography


Twitter


Google+


Youtube


Vimeo


Xfire


Steam url id


Raptr


MySpace


Linkedin


Tumblr


Flickr


XBOX Live


PlayStation PSN


Origin


PlayFire


SoundCloud


Pinterest


Reddit


Twitch.Tv


Ustream.Tv


Duxter


Instagram


Location


Interests


Interests


Occupation

Found 11 results

  1. Description: This is a GUI that allows the person who executed the script to add/assign or remove/unassign Zeus to any specified player(s). Downloads & More Information: GitHub: link Pastebin: link * No download required! Video: link Steam Guide: link Curator Creator Version 1.0: (Check the GitHub for the latest version) comment "Script Title: Curator Creator (Create and Assign New Zeuses). < Current Version: 1.0 > "; comment "Credits: Created by J [WoLF] and M9-SD. "; comment "Description: - Creates new unique zeus module for specified players. - Assigns unique Zeus module to specified clients. - Automatically updates zeus interface with new objects. - Re-assigns zeus to player every respawn. - Re-assigns zeus to player upon reconnecting to the session. - JIP (join-in-progress) compatible. "; comment "Usage: - Copy entire script. Paste in debug console. - Execute on local client. - Exit the pause menu if open. - Wait for GUI to appear. - Select recipients of the Zeus Interface. - Choose to remove or add interface. - The selected players will now either be assigned or unassigned their unique Zeus module. "; comment "Distribution: - You may share this script with anyone you want. - Don't give this to trolls, please. - Give credit where it is due. - Enjoy :) "; [] spawn { comment "-----------------------------------------------"; if (!hasInterface) exitWith {}; waitUntil { !isNil { player } && { !isNull player } }; waitUntil { !isNull (findDisplay 46) }; comment "-----------------------------------------------"; systemChat "[JAM] >>> Zeus Helper >>> Initializing Curator Creator..."; JAM_fnc_createAndAssignZeus = { if (typeOf getAssignedCuratorLogic player != "") then { comment "do nothing"; systemChat "[JAM] >>> Zeus Helper >>> You already have a zeus interface."; } else { JAM_fnc_createAssignCurator = { comment "-----------------------------------------------"; if (!hasInterface) exitWith {}; waitUntil { !isNil { player } && { !isNull player } }; waitUntil { !isNull (findDisplay 46) }; comment "-----------------------------------------------"; _myPlayer = _this # 0; _myCuratorPlayer = _myPlayer; JAM_addZeus_UID = getPlayerUID _myPlayer; JAM_addZeus_superCuratorVar = ("JAM_" + JAM_addZeus_UID + "_superCurator"); JAM_addZeus_superCuratorPlayerAttributesVar = ("JAM_" + JAM_addZeus_UID + "_superCuratorPlayerAttributes"); _JAM_my_curatorInitText = ("" + "if (isNil """ + JAM_addZeus_superCuratorVar + """) then {" + JAM_addZeus_superCuratorVar + " = JAM_superCurator_group createUnit ['ModuleCurator_F', [0, 90, 90],[],0.5,'NONE'];" + JAM_addZeus_superCuratorVar + " setVehicleVarName '" + JAM_addZeus_superCuratorVar + "';" + JAM_addZeus_superCuratorVar + " setVariable ['text','" + JAM_addZeus_superCuratorVar + "'];" + JAM_addZeus_superCuratorVar + " setVariable ['Addons',3,true];" + JAM_addZeus_superCuratorVar + " setVariable ['owner','objnull'];" + JAM_addZeus_superCuratorVar + " setVariable ['vehicleinit',"" _this setVariable ['Addons',3,true]; _this setVariable ['owner','objnull']; ""];" + "unassignCurator " + JAM_addZeus_superCuratorVar + ";" + "objnull assignCurator " + JAM_addZeus_superCuratorVar + ";" + JAM_addZeus_superCuratorPlayerAttributesVar + " = JAM_superCurator_group createUnit ['ModuleCuratorSetAttributesPlayer_F', [2, 91, 91],[],0.5,'NONE'];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['curator','" + JAM_addZeus_superCuratorVar + "'];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['unitpos',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['fuel',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['respawnposition',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['respawnvehicle',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['skill',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['rank',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['damage',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['exec',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['lock',true];" + JAM_addZeus_superCuratorPlayerAttributesVar + " setVariable ['vehicleinit',"" _this setVariable ['curator','" + JAM_addZeus_superCuratorVar + "']; _this setVariable ['unitpos',true]; _this setVariable ['fuel',true]; _this setVariable ['respawnposition',true]; _this setVariable ['respawnvehicle',true]; _this setVariable ['skill',true]; _this setVariable ['rank',true]; _this setVariable ['damage',true]; _this setVariable ['exec',true]; _this setVariable ['lock',true]; ""];" + "[" + JAM_addZeus_superCuratorVar + ",[-2,-1,0,1]] spawn BIS_fnc_setCuratorVisionModes;" + "JAM_" + JAM_addZeus_UID + "_updateSuperCuratorEditableObjects = true;" + "[] spawn {while {(JAM_" + JAM_addZeus_UID + "_updateSuperCuratorEditableObjects" + ")} do { if ( ((getAssignedCuratorUnit " + JAM_addZeus_superCuratorVar + ") != objNull) && (alive (getAssignedCuratorUnit " + JAM_addZeus_superCuratorVar + "))) then { " + JAM_addZeus_superCuratorVar + " addCuratorEditableObjects [([] call JAM_fnc_getEditableObjects),true]; }; sleep 30;}; };" + "}; " + ""); [_JAM_my_curatorInitText,{ _initText = _this; _initCode = compile _initText; if (isNil "JAM_blacklistedObjectsArray_01") then { JAM_blacklistedObjectsArray_01 = [ "ModuleCurator_F", "ModuleCuratorSetCamera_F", "Logic", "ModuleHQ_F", "VirtualCurator_F", "ModuleCuratorSetModuleCosts_F", "ModuleCuratorAddPoints_F", "ModuleCuratorSetObjectCosts_F", "ModuleCuratorSetCosts_F", "ModuleCuratorSetCoefs_F", "ModuleCuratorSetDefaultCosts_F", "ModuleCuratorAddEditingAreaPlayers_F", "ModuleMPTypeGameMaster_F", "ModuleRadioChannelCreate_F", "ModuleCuratorSetAttributesPlayer_F" ]; }; if (isNil "JAM_fnc_getEditableObjects") then { JAM_fnc_getEditableObjects = { _allObjs = allMissionObjects 'all'; _editableObjs = []; { if ( ( not ( ( typeOf _x ) in JAM_blacklistedObjectsArray_01 ) ) && ( not ( _x isKindOf "Logic" ) ) ) then { _editableObjs pushBackUnique _x; }; } forEach _allObjs; _editableObjs; }; }; if (isNil "JAM_superCurator_group") then { JAM_superCurator_group = createGroup sideLogic; }; [] spawn _initCode; }] remoteExec ['spawn',2]; comment "JIP"; [[JAM_addZeus_UID,JAM_addZeus_superCuratorVar], { comment "-----------------------------------------------"; if (!hasInterface) exitWith {}; waitUntil { !isNil { player } && { !isNull player } }; waitUntil { !isNull (findDisplay 46) }; comment "-----------------------------------------------"; _curatorUID = _this # 0; _curatorVarStr = _this # 1; if (getPlayerUID player == _curatorUID) then { _curatorPlayer = player; JAM_my_curatorInitText = ("" + "waitUntil {(not isNil """ + _curatorVarStr + """)}; " + "_curatorVar = " + _curatorVarStr + "; " + "_curatorPlayer = _this select 0; " + "[_curatorVar,_curatorPlayer] spawn { _curatorVar = _this # 0; _curatorPlayer = _this # 1; while {((getAssignedCuratorLogic _curatorPlayer) != _curatorVar)} do { unassignCurator _curatorVar; objnull assignCurator _curatorVar; unassignCurator _curatorVar; _curatorPlayer assignCurator _curatorVar; sleep 3.5; }; };" + "JAM_" + _curatorUID + "_updateSuperCuratorEditableObjects = true;" + "_curatorPlayer = _this select 0; '[JAM] >>> Zeus Helper >>> You were given Zeus interface. To open, press [Y].' remoteExec ['systemChat', _curatorPlayer];" + ""); [[JAM_my_curatorInitText,_curatorPlayer],{ _initText = _this # 0; _curatorPlayer = _this # 1; _initCode = compile _initText; [_curatorPlayer] spawn _initCode; }] remoteExec ['spawn',2]; comment "re-assign upon death/respawn"; JAM_keepGivingMeZeus = true; if (!isNil "JAM_EH_autoReassignCuratorUponDeath") then { player removeEventHandler ["Respawn",JAM_EH_autoReassignCuratorUponDeath]; }; waitUntil {(alive _curatorPlayer)}; JAM_EH_autoReassignCuratorUponDeath = player addEventHandler ["Respawn",{ if (JAM_keepGivingMeZeus) then { [] spawn { waitUntil {(alive player)}; sleep 3.5; [[JAM_my_curatorInitText,player],{ _initText = _this # 0; _curatorPlayer = _this # 1; _initCode = compile _initText; [_curatorPlayer] spawn _initCode; }] remoteExec ['spawn',2]; }; }; }]; }; }] remoteExec ['spawn',0,JAM_addZeus_superCuratorVar]; }; _target = player; [_target] spawn JAM_fnc_createAssignCurator; }; }; JAM_fnc_deleteAndUnassignZeus = { if (typeOf getAssignedCuratorLogic player == "") then { comment "do nothing"; systemChat "[JAM] >>> Zeus Helper >>> You already do not have a zeus interface."; } else { JAM_fnc_deleteUnassignCurator = { comment "-----------------------------------------------"; if (!hasInterface) exitWith {}; waitUntil { !isNil { player } && { !isNull player } }; waitUntil { !isNull (findDisplay 46) }; comment "-----------------------------------------------"; _myPlayer = _this # 0; _myCuratorPlayer = _myPlayer; JAM_addZeus_UID = getPlayerUID _myPlayer; JAM_addZeus_superCuratorVar = ("JAM_" + JAM_addZeus_UID + "_superCurator"); JAM_addZeus_superCuratorPlayerAttributesVar = ("JAM_" + JAM_addZeus_UID + "_superCuratorPlayerAttributes"); _JAM_my_curatorInitText = ("" + "if (!isNil """ + JAM_addZeus_superCuratorVar + """) then {" + "JAM_" + JAM_addZeus_UID + "_updateSuperCuratorEditableObjects = false;" + "unassignCurator " + JAM_addZeus_superCuratorVar + ";" + "objnull assignCurator " + JAM_addZeus_superCuratorVar + ";" + "unassignCurator " + JAM_addZeus_superCuratorVar + "; sleep 0.1;" + "comment 'deleteVehicle " + JAM_addZeus_superCuratorVar + ";';" + "};" + "if (!isNil """ + JAM_addZeus_superCuratorPlayerAttributesVar + """) then {" + "comment 'deleteVehicle " + JAM_addZeus_superCuratorPlayerAttributesVar + ";';" + "};" + ""); [_JAM_my_curatorInitText,{ _initText = _this; _initCode = compile _initText; [] spawn _initCode; }] remoteExec ['spawn',2]; comment "remove JIP"; [[JAM_addZeus_UID,JAM_addZeus_superCuratorVar], { comment "-----------------------------------------------"; if (!hasInterface) exitWith {}; waitUntil { !isNil { player } && { !isNull player } }; waitUntil { !isNull (findDisplay 46) }; comment "-----------------------------------------------"; _curatorUID = _this # 0; _curatorVarStr = _this # 1; if (getPlayerUID player == _curatorUID) then { _curatorPlayer = player; JAM_my_curatorInitText = ("" + "_curatorPlayer = _this select 0; '[JAM] >>> Zeus Helper >>> Zeus Interface was removed from your client.' remoteExec ['systemChat', _curatorPlayer];" + ""); [[JAM_my_curatorInitText,_curatorPlayer],{ _initText = _this # 0; _curatorPlayer = _this # 1; _initCode = compile _initText; [_curatorPlayer] spawn _initCode; }] remoteExec ['spawn',2]; JAM_keepGivingMeZeus = false; [] spawn { if (not (isNull (findDisplay 312))) then { (findDisplay 312) closeDisplay 0; }; waitUntil {(not (isNull (findDisplay 312)))}; if (not JAM_keepGivingMeZeus) then { if (not (isNull (findDisplay 312))) then { (findDisplay 312) closeDisplay 0; }; }; }; if (!isNil "JAM_EH_autoReassignCuratorUponDeath") then { player removeEventHandler ["Respawn",JAM_EH_autoReassignCuratorUponDeath]; }; }; }] remoteExec ['spawn',0]; [[],{}] remoteExec ['spawn',0,JAM_addZeus_superCuratorVar]; }; _target = player; [_target] spawn JAM_fnc_deleteUnassignCurator; }; }; JAM_curator_recipients = []; comment "check if player is Zeus"; if (isNil "JAM_fnc_getDisplay46or312") then { JAM_fnc_getDisplay46or312 = { comment "default"; _displayNumber = 46; if ((isNull (findDisplay 312)) && (not isNull (findDisplay 46))) then { _displayNumber = 46; }; if (not isNull (findDisplay 312)) then { _displayNumber = 312; }; comment "return value (display number)"; _displayNumber }; }; comment " - Define critical variables. > JAM_txtSizeNum > JAM_txtSizeStr "; JAM_txtSizeNum = 0.5 * safezoneH; JAM_txtSizeStr = str JAM_txtSizeNum; with uiNamespace do { JAM_txtSizeNum = 0.5 * safezoneH; JAM_txtSizeStr = str JAM_txtSizeNum; }; with missionNamespace do { JAM_txtSizeNum = 0.5 * safezoneH; JAM_txtSizeStr = str JAM_txtSizeNum; }; comment " ...Variables Defined. "; JAM_open_selectJAMZeusRecipients = { JAM_curator_recipients = []; _centerScreenPos = [0.494844 * safezoneW + safezoneX,0.489 * safezoneH + safezoneY,0.004125 * safezoneW,0.0055 * safezoneH]; disableSerialization; d_selectJAMZeusRecipients = (findDisplay ([] call JAM_fnc_getDisplay46or312)) createDisplay "RscDisplayEmpty"; showChat true; _ctrl_selectJAMZeusRecipientsTitle = d_selectJAMZeusRecipients ctrlCreate ["RscStructuredText", -1]; _ctrl_selectJAMZeusRecipientsTitle ctrlSetStructuredText parseText ("<t valign='middle' align='center' size='" + (str (JAM_txtSizeNum * 0.8)) + "'>ZEUS HELPER >>> CURATOR CREATOR<br/><t size='" + (str (JAM_txtSizeNum * 0.7)) + "'>(Create and Assign New Zeuses)<t/>"); _ctrl_selectJAMZeusRecipientsTitle ctrlSetBackgroundColor [0,0,0,0.77]; _ctrl_selectJAMZeusRecipientsTitle ctrlSetPosition _centerScreenPos; _ctrl_selectJAMZeusRecipientsTitle ctrlSetFade 1; _ctrl_selectJAMZeusRecipientsTitle ctrlCommit 0; _ctrl_selectJAMZeusRecipientsTitle ctrlSetPosition [0.427812 * safezoneW + safezoneX,0.313 * safezoneH + safezoneY,0.128906 * safezoneW,0.033 * safezoneH]; _ctrl_selectJAMZeusRecipientsTitle ctrlSetFade 0; _ctrl_selectJAMZeusRecipientsTitle ctrlCommit 0.5; ctrl_sJr_PlayerList = d_selectJAMZeusRecipients ctrlCreate ["RscListBox", -1]; { _pL_index = ctrl_sJr_PlayerList lbAdd name _x; } forEach allPlayers; ctrl_sJr_PlayerList ctrlSetPosition _centerScreenPos; ctrl_sJr_PlayerList ctrlSetFade 1; ctrl_sJr_PlayerList ctrlCommit 0; ctrl_sJr_PlayerList ctrlSetPosition [0.427812 * safezoneW + safezoneX,0.379 * safezoneH + safezoneY,0.061875 * safezoneW,0.22 * safezoneH]; ctrl_sJr_PlayerList ctrlSetFade 0; ctrl_sJr_PlayerList ctrlCommit 0.5; ctrl_sJr_recipientList = d_selectJAMZeusRecipients ctrlCreate ["RscListBox", -1]; ctrl_sJr_recipientList ctrlSetPosition _centerScreenPos; ctrl_sJr_recipientList ctrlSetFade 1; ctrl_sJr_recipientList ctrlCommit 0; ctrl_sJr_recipientList ctrlSetPosition [0.494844 * safezoneW + safezoneX,0.379 * safezoneH + safezoneY,0.061875 * safezoneW,0.22 * safezoneH]; ctrl_sJr_recipientList ctrlSetFade 0; ctrl_sJr_recipientList ctrlCommit 0.5; _ctrl_cancel = d_selectJAMZeusRecipients ctrlCreate ["RscButtonMenu", -1]; _ctrl_cancel ctrlSetStructuredText parseText ("<t valign='middle' align='center' size='" + JAM_txtSizeStr + "'>CLOSE<t/>"); _ctrl_cancel ctrlSetTooltip "Cancel the script and close this menu."; _ctrl_cancel ctrladdEventHandler ["ButtonClick",{ d_selectJAMZeusRecipients closeDisplay 0; JAM_curator_recipients = []; }]; _ctrl_cancel ctrlSetFade 1; _ctrl_cancel ctrlSetPosition _centerScreenPos; _ctrl_cancel ctrlCommit 0; _ctrl_cancel ctrlSetPosition [0.469063 * safezoneW + safezoneX,0.698 * safezoneH + safezoneY, 0.0464063 * safezoneW,0.022 * safezoneH]; _ctrl_cancel ctrlSetFade 0; _ctrl_cancel ctrlCommit 0.5; _ctrl_removeJAMZeusbutton = d_selectJAMZeusRecipients ctrlCreate ["RscButtonMenu", -1]; _ctrl_removeJAMZeusbutton ctrlSetStructuredText parseText ("<t valign='middle' align='center' size='" + JAM_txtSizeStr + "'>---------REMOVE ZEUS---------<t/>"); _ctrl_removeJAMZeusbutton ctrlSetTooltip "Delete and unassign unique zeus module for each player on the right-hand list."; _ctrl_removeJAMZeusbutton ctrlSetBackgroundColor [0.5,0.2,0,0.6]; _ctrl_removeJAMZeusbutton ctrladdEventHandler ["ButtonClick",{ if (count JAM_curator_recipients != 0) then { d_selectJAMZeusRecipients closeDisplay 0; { _recipientName = _x; systemChat ("[JAM] >>> Zeus Helper >>> Removing Zeus from " + (_recipientName) + "..."); { if ((name _x) == (_recipientName)) then { [JAM_fnc_deleteAndUnassignZeus,{ _code = _this; [] spawn _code; }] remoteExec ['spawn',_x]; }; } forEach allPlayers; } forEach JAM_curator_recipients; comment "[] call JAM_init;"; } else { hint "[JAM] : ERROR : You have not selected any players; Array is empty."; systemChat "[JAM] : ERROR : You have not selected any players; Array is empty."; }; }]; _ctrl_removeJAMZeusbutton ctrlSetPosition _centerScreenPos; _ctrl_removeJAMZeusbutton ctrlSetFade 1; _ctrl_removeJAMZeusbutton ctrlCommit 0; _ctrl_removeJAMZeusbutton ctrlSetPosition [0.432969 * safezoneW + safezoneX,0.654 * safezoneH + safezoneY,0.118594 * safezoneW,0.033 * safezoneH]; _ctrl_removeJAMZeusbutton ctrlSetFade 0; _ctrl_removeJAMZeusbutton ctrlCommit 0.5; _ctrl_addBtn = d_selectJAMZeusRecipients ctrlCreate ["RscButtonMenu", -1]; _ctrl_addBtn ctrlSetStructuredText parseText ("<t valign='middle' align='center' size='" + JAM_txtSizeStr + "'>Add<t/>"); _ctrl_addBtn ctrlSetTooltip "Add selected player to the target list."; _ctrl_addBtn ctrlSetBackgroundColor [-1,0.5,-1,0.6]; _ctrl_addBtn ctrladdEventHandler ["ButtonClick",{ _selectedItem = lbCurSel ctrl_sJr_PlayerList; _playerName = ctrl_sJr_PlayerList lbText _selectedItem; if (JAM_curator_recipients find _playerName == -1) then { JAM_curator_recipients pushBackUnique _playerName; ctrl_sJr_recipientList lbAdd _playerName; }; }]; _ctrl_addBtn ctrlSetPosition _centerScreenPos; _ctrl_addBtn ctrlSetFade 1; _ctrl_addBtn ctrlCommit 0; _ctrl_addBtn ctrlSetPosition [0.427812 * safezoneW + safezoneX,0.357 * safezoneH + safezoneY,0.061875 * safezoneW,0.022 * safezoneH]; _ctrl_addBtn ctrlSetFade 0; _ctrl_addBtn ctrlCommit 0.5; _ctrl_removeBtn = d_selectJAMZeusRecipients ctrlCreate ["RscButtonMenu", -1]; _ctrl_removeBtn ctrlSetStructuredText parseText ("<t valign='middle' align='center' size='" + JAM_txtSizeStr + "'>Remove<t/>"); _ctrl_removeBtn ctrlSetTooltip "Remove selected player from the target list."; _ctrl_removeBtn ctrlSetBackgroundColor [0.5,-1,-1,0.6]; _ctrl_removeBtn ctrladdEventHandler ["ButtonClick",{ _selectedItem = lbCurSel ctrl_sJr_recipientList; _playerName = ctrl_sJr_recipientList lbText _selectedItem; if (JAM_curator_recipients find _playerName > -1) then { _idx = JAM_curator_recipients find _playerName; JAM_curator_recipients deleteAt _idx; ctrl_sJr_recipientList lbDelete _selectedItem; }; }]; _ctrl_removeBtn ctrlSetPosition _centerScreenPos; _ctrl_removeBtn ctrlSetFade 1; _ctrl_removeBtn ctrlCommit 0; _ctrl_removeBtn ctrlSetPosition [0.494844 * safezoneW + safezoneX,0.357 * safezoneH + safezoneY,0.061875 * safezoneW,0.022 * safezoneH]; _ctrl_removeBtn ctrlSetFade 0; _ctrl_removeBtn ctrlCommit 0.5; _ctrl_giveJAMZeusbutton = d_selectJAMZeusRecipients ctrlCreate ["RscButtonMenu", -1]; _ctrl_giveJAMZeusbutton ctrlSetStructuredText parseText ("<t valign='middle' align='center' size='" + JAM_txtSizeStr + "'>------------GIVE ZEUS------------<t/>"); _ctrl_giveJAMZeusbutton ctrlSetTooltip "Create and assign unique zeus module for each player on the right-hand list."; _ctrl_giveJAMZeusbutton ctrlSetBackgroundColor [-1,-1,0.4,0.6]; _ctrl_giveJAMZeusbutton ctrladdEventHandler ["ButtonClick",{ if (count JAM_curator_recipients != 0) then { d_selectJAMZeusRecipients closeDisplay 0; comment "[] call JAM_init;"; { _recipientName = _x; systemChat ("[JAM] >>> Zeus Helper >>> Giving Zeus to " + (_recipientName) + "..."); { if ((name _x) == (_recipientName)) then { [JAM_fnc_createAndAssignZeus,{ _code = _this; [] spawn _code; }] remoteExec ['spawn',_x]; }; } forEach allPlayers; } forEach JAM_curator_recipients; } else { hint "[JAM] : ERROR : You have not selected any players; Array is empty."; systemChat "[JAM] : ERROR : You have not selected any players; Array is empty."; }; }]; _ctrl_giveJAMZeusbutton ctrlSetFade 1; _ctrl_giveJAMZeusbutton ctrlSetPosition _centerScreenPos; _ctrl_giveJAMZeusbutton ctrlCommit 0; _ctrl_giveJAMZeusbutton ctrlSetPosition [0.432969 * safezoneW + safezoneX,0.61 * safezoneH + safezoneY,0.118594 * safezoneW,0.033 * safezoneH]; _ctrl_giveJAMZeusbutton ctrlSetFade 0; _ctrl_giveJAMZeusbutton ctrlCommit 0.5; systemChat "[JAM] >>> Zeus Helper >>> Select players to give or remove Zeus Interface."; }; comment "close debug console"; if ( not (isNull (findDisplay 49)) ) then { (findDisplay 49) closeDisplay 0; }; waitUntil { isNull (findDisplay 49) }; sleep 0.1; systemChat "[JAM] >>> Zeus Helper >>> Spawning GUI..."; [] spawn JAM_open_selectJAMZeusRecipients; }; - Feel free to give me some feedback on this script, as I am sure there are some bugs to be reported with it, and I would like to improve it however I can. I might make an alternate version where it doesn't auto-add objects to the Zeus interface every 30 seconds.
  2. Zeus Enhanced Requires the latest version of CBA A3. Zeus Enhanced, also known as ZEN, is an Arma 3 mod aimed at improving and expanding the functionality of the Zeus real-time editor. Zeus Enhanced is built with communities who use Zeus as their primary mission making tool in mind by enabling curators with powerful tools to create dynamic scenarios in an efficient manner. For an in-depth breakdown of the features and frameworks please visit the website. This mod is built using the same foundation and design standards as the ACE3 Project. Special thanks to the ACE3 Team for their open source nature and permission to use their systems, without their work this would not be possible. You can download Zeus Enhanced from: GitHub Steam Workshop Features A lot of new and improved modules Extended attributes displays Settings to customize the editor display Context menu providing easy access to common actions Various bug fixes for the Zeus interface Rewritten vehicle garage specifically for Zeus Rewritten, faster remote controlling of units Contributing You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. We are always welcoming new pull requests containing bug fixes, refactors and new features. We have a list of tasks and bugs on our issue tracker on GitHub. Please comment on issues you want to contribute with, to avoid duplicating effort. To contribute something to ZEN, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the AUTHORS.txt file; including a valid email address. Submitting Issues and Feature Requests Please use our Issue Tracker to report a bug, propose a feature, or suggest changes to the existing ones. License Zeus Enhanced is licensed under the GNU General Public License (GPLv3).
  3. Latest V1.3: MOD THREAD MOD VERSION WORKSHOP ARMAHOLIC This script enables Curators to see the Frames-per-second of each individual client when playing in multiplayer, or yourself when in SP. Allowing the Zeus to identify if there is a widespread framerate problem, or if a few select users are experiencing issues. Comments in the code explain how to modify it if you want to change the 'Warning text' threshold which by default is 20fps. Pasting this code into the initPlayerLocal.sqf of any mission should work without a problem.Given Arma 3 is now in 64 bit it's the perfect opportunity for players to test their performance in multiplayer coop games with large scale combat. Find out who's computer is the beefiest when playing with your unit, or be able to identify which player's computers are having trouble keeping up with all the action on screen. A great tool for mission makers looking to maintain an optimized experience for their players when monitoring their progress in Zeus. DISCLAIMER: The script version is out of date and does not have all the features of the mod. The mod only needs to be downloaded client side and I recommend you use it instead. If you still wish to use the script, or simply see how it runs, it is here at your disposal. ///////////////////////////////////////////////////////// //Paste the following into the initPlayerLocal.sqf file// ///////////////////////////////////////////////////////// ////////////Script Written by DriftingNitro////////////// //////////Help from Commy2, Dedmen, and Dscha//////////// ///////////////////////////////////////////////////////// ///////////////////////////////////////////////////////// //Spawns a thread that will loop for each player and // //output their FPS to the server to be read by the zeus// ///////////////////////////////////////////////////////// [] spawn { while {true} do { player setVariable ["DNI_PlayerFPS", floor diag_fps, true]; sleep 0.1; }; }; ///////////////////////////////////////////////////////// //Waits until curators are initalized in order to check// //if player is zeus to run the fps scripts // ///////////////////////////////////////////////////////// waitUntil { private _hasCurators = (count allcurators) > 0; private _hasInitializedCurators = (count (call BIS_fnc_listCuratorPlayers)) > 0; private _curatorsInitialized = !_hasCurators || _hasInitializedCurators; ((time > 2) || _curatorsInitialized) }; ///////////////////////////////////////////////////////// //If player is a curator it will run the script and each/ //player will have their FPS appear beneath them // ///////////////////////////////////////////////////////// if (player in (call bis_fnc_listcuratorplayers)) then { addMissionEventHandler ["Draw3D", { { _distance = position curatorCamera distance _x; //if zeus camera is farther than 1200 meters away from the targets the text will not display if (_distance < 1200) then { _playerFPS = _x getVariable ["DNI_PlayerFPS",50]; //if the FPS is below 20 it turns red and becomes more visible for zeus to see so they are aware if (_playerFPS <20) then { drawIcon3D [ "",//Path to image displayed near text [1,0,0,0.7],//color of the text using RGBA position _x,//position of the text _x referring to the player in 'allPlayers' 1,//Width 2,//height from position, below 0,//angle format["%1 FPS: %2", name _x, str _playerFPS],//text to be displayed 0,//shadow on text, 0=none,1=shadow,2=outline 0.05,//text size "PuristaMedium",//text font "center"//align text left, right, or center ]; } //if the FPS is above 20 text is smaller and less visible as to not conern zeus as much else { drawIcon3D [ "",//Path to image displayed near text [1,1,1,0.3],//color of the text using RGBA position _x,//position of the text _x referring to the player in 'allPlayers' 1,//Width 2,//height from position, below 0,//angle format["%1 FPS: %2", name _x, str _playerFPS],//text to be displayed 0,//shadow on text, 0=none,1=shadow,2=outline 0.03,//text size "PuristaMedium",//text font "center"//align text left, right, or center ]; }; }; } forEach allPlayers; //Here is the array of units you wish to display the FPS text for, it can be //changed to be an array of specific units or players if you wish }]; }; ///////////////////////////////////////////////////////// /////////////////////End FPS Script////////////////////// /////////////////////////////////////////////////////////
  4. Does anyone have any idea how to use the function "BIS_fnc_isCuratorEditable" to kill curator editable units when they enter a trigger. I am trying to create a restriction zone around my map which kills the player and curator units when they enter the zone but will allow none curator units to pass through (so I can simulate reinforcements entering the region after a certain amount of time). I have been running some tests to get an idea on how the "BIS_fnc_isCuratorEditable" function works. I currently have four triggers around the map which tell me through a hint whether a unit is curator editable or not. I am now trying to work out how to change it from giving me a hint which is either true or false, to killing the unit if true or allow the unit through if false. Something along the lines of... Just can not seem to work it out. Also tried this to no avail...
  5. Hi all, I am currently making a map which requires a Curator Editing Area to follow the player around the map. I would like it so that if an enemy of the player enters the Curator Editing Area, the Curator Editing Area is disabled (to stop him spawning stuff on top of the enemy). I have managed to write a script which has the Curator Editing Area follow the player... //init.sqf [] spawn { while { alive t1 } do { myCurator addCuratorEditingArea [ 0, position t1, 50 ]; sleep 0.05; }; }; How this works is by creating a Curator Editing Area at the position of the player every 0.05 seconds. The interesting part is that you keep the ID of the Curator Editing Area, this means that it deletes the old Curator Editing Area when the new one is created. (Curator Editing Area ID being 0 in this case). The problem I have is temporarily disabling the creation of "new" Curator Editing Area 's while an enemy is within range. So I need to be able to temporarily disable the script (which I do not know how to do).
  6. oOKexOo

    Achilles

    Achilles Achilles is a gameplay modification for Arma 3. It expands the Zeus real-time editor with many new additions as well as provides bug fixes. Achilles started as an expansion to Ares mod, which was created by Anton Struyk. Achilles became the de facto successor to Ares at the point the latter was no longer updated. Achilles has already grown into a splendid project, but new additions are still to come! Table of Contents Features Language Localization Getting Started Installing Required Addons Incompatible Addons Optional Addons Other Zeus Addons Documentation Reporting Issues, Requesting Features and Changes How to Contribute Basic Steps Setting up Your Local Development Environment Add a New Module Add a Translation Authors Contact License Features Visual changes to the Zeus interface Tons of new modules: ACE Medical (e.g. heal, injury; also work in vanilla!) AI Behaviour (e.g. animations, garrison buildings, surrender) Arsenal (e.g. add/modify) Buildings (e.g. destruction, breachable doors) Development Tools (e.g. execute code, config/function viewer) Environment (e.g. advanced weather, earthquakes) Equipment (e.g. toggle tac light) Fire Support (e.g. artillery, suppressive fire) Objects (e.g. attach to, toggle simulation, IEDs) Reinforcements (e.g. spawn reinforcements on the fly) Scenario Flow (e.g. advanced intel, side relations) Spawn (e.g. custom compositions, smoke pillar, USS Freedom) Zeus (e.g. add/remove objects) Extended attribute window: Groups (e.g. careless, hold fire) Vehicles (e.g. cargo, pylons, garage, damage wheels) etc. New waypoint types: e.g. seek and destroy, paradrop, sling load Hotkeys: Copy/past units including the full loadouts Remote control etc. Customizations: Settings (e.g. faction filter) Language Localization Achilles is available for the following languages: English French German Japanese Russian Simplified Chinese Traditional Chinese If your language is not on the list, the English localization will be used. We welcome any new translations (check out How to Contribute). Getting Started Below is what you need to know to get Achilles up and running: Installing Required Addons Incompatible Addons Optional Addons Other Zeus Addons Installing You can download Achilles from: GitHub Steam Workshop Armaholic If you are not familiar with installing ArmA 3 addons, check out the Armaholic installation guide. Required Addons Achilles requires: Arma 3 Community Based Addons A3 (CBA_A3) Incompatible Addons Addons that you should not run when you use Achilles: Ares Optional Addons These mods below are required for certain features (e.g. fast-roping): Advanced Combat Environment 3 (ACE3) Advanced Rappeling (AR) Task Force Arrowhead Radio (TFAR) Other Zeus Addons A list of other Zeus mods that are not required, but nice additions: Zeus/Eden Compositions (ZEC) Zeus/Eden Compositions for CUP (ZECCUP) Zeus/Eden Interiors (ZEI) Documentation Check out the Achilles Wiki and the Achilles Tutorial Series on YouTube. The documentation is rather limited at the time and thus, you will certainly have questions. We will gladly answer them on our Discord server. Reporting Issues, Requesting Features and Changes Please use our Issue Tracker for these kinds of purposes. In the case of a bug report, please only use a minimal set of mods (i.e. only use other mods than the required ones if they are clearly related to the issue). How to Contribute We always welcome contribution to the repository and thank you for your work! We will update the list of contributors. What you need to know: Basic Steps Setting up Your Local Development Environment Add a New Module Add a Translation Basic Steps Fork the Achilles repository Set up your local development environment Do your stuff Create your pull request And then we will have a look at your work! Setting up Your Local Development Environment Clone your forked repository Set up your addon builder (either get Hephaestus or use the AchillesAddonBuilder.bat in the repository) Add a New Module A good starting point for your new module is the custom module framework. We will gladly help you to port your custom module to Achilles (message us on our Discord server). Add a Translation You have to edit the stringtable.xml. The basics about string tables can be found on the Bohemia Interactive Wiki. If you don't want to edit the file with a text editor, you can use a dedicated tool such as Tabler. Authors Check out the list of contributors. Contact Find us on our Discord server. License Achilles is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.
  7. Hello, I am modifying curator interface, and I've run into a problem with AI following waypoints. The curator interface has only friendly units editable. Enemy units are rendered through my script separatedly so they can't be manipulated. To reinvent the functionality of "right-pressing" the enemy units with mouse to attack them, I am using CuratorWaypointPlaced event handler. I tried to modify waypoint passed from event handler, I tried to create new one and set it to waypointType "DESTROY" and delete the passed one. And I tried to set the one event handler gave me. AI just refuses to behave correctly as in vanilla zeus interface What am I trying to do: - Recreate the RMB behaviour in curator interface - Make AI move to and attack units at "DESTROY" waypoint What is actually happening: [when waypoint is attached to enemy] AI just stands on place nothing is happening, except the AI seems to guard more the direction to it's waypoint attached waypoints are offset to units they are attached to even several meters. (the position is different) sometimes attachWaypointVehicle attaches waypoint to nearby objects instead to enemy unit (but waypointAttachedVehicle still returns enemy unit) [when waypoint is spatial on ground] AI moves to position, sometimes attacking the enemy usually doing weird sh** on the way. when friendly units are too close to waypoint, unit may start killing nearby friendly units (nearby to waypoint) instead of enemy sometimes the waypoint survives for about 5 seconds before disappearing (maybe false completion?) when forced waypoint position by setWaypointPosition to position identical to enemy unit, sometimes the waypoint refuses and jumps to a nearby position What vanilla zeus does when creating a waypoint: Type: "DESTROY" Behaviour: "COMBAT" Position: under interface cursor it doesn't attach the waypoint to units, only sets position, type and behaviour. When I do the exact same, my AI's refuses to work properly (identical to vanilla zeus) //Event Hadler: When zeus places a waypoint (context: added when pressed RMB while hovering over an enemy unit - attack order) eh_waypointModifier = zeusModule addEventHandler ["CuratorWaypointPlaced", { params ["","_group","_waypointID"]; //Waypoint created by curator interface _wp = [_group,_waypointID]; //Waypoint array _group reveal cw_var_unitToAttack; //Revealing the enemy to ordered group (not helping) _wp setWaypointType "DESTROY"; //Sets the waypoint as "DESTROY" so AI would know it is going to attack something (Curator interface does the same) //AI usually moves towards the target, sometimes it does nothing. But it won't attack the enemy. //** Method 1 ** _wp setWaypointBehaviour "COMBAT"; //Makes the AI move towards the waypoint more reliably (Curator interface does the same) //AI moves towards the target tacticaly, it sometimes even engages against the enemy. //** Method 2 ** _wp setWaypointPosition [(position cw_var_unitToAttack),0]; //Sets the position of the waypoint so spatial DESTROY can find it's actual target more easily - does quite the opposite //AI usually stays on position //** Method 3 ** //Variable 'sys_unitToAttack' set by logic calling this EH _wp waypointAttachVehicle sys_unitToAttack; //Attaches the waypoint to the enemy unit - actually attaches the waypoint several meters away from unit, sometimes to different object (waypointAttachedVehicle still returns sys_unitToAttack) //AI usually moves towards the target, but won't attack //** Method 4 ** deleteWaypoint _wp; //Removes the waypoint created by curator interface _wp = _group addWaypoint [position sys_unitToAttack, 0]; //Creates a whole new waypoint on enemy's position _group setCurrentWaypoint _wp; //Sets the new waypoint as current so AI can't be confused which waypoint to use //AI just stands on place doing nothing. zeusModule removeEventHandler ["CuratorWaypointPlaced",eh_waypointModifier]; //Not needed anymore sys_unitToAttack = nil; //Not needed anymore }]; I've spend at least 7 hours figuring this nonsense out and trying several AI hacks. I want to have my scenario addon-free, just working with vanilla, so any mods are not usable to me. Only scripting hacks. This is not really a request for help. It is a request for someone from dev-team to give me some insight on how zeus waypoints works so I can successfuly and reliably replicate. Thx.
  8. Script Version This mod enables Curators to see the Frames-per-second of each individual client when playing in multiplayer. Allowing the Zeus to identify if there is a widespread framerate problem, or if a few select users are experiencing issues. Comments in the code explain how to modify it if you want to change the 'Warning text' threshold which by default is 20fps.Given Arma 3 is now in 64 bit it's the perfect opportunity for players to test their performance in multiplayer coop games with large scale combat. Find out who's computer is the beefiest when playing with your unit, or be able to identify which player's computers are having trouble keeping up with all the action. A great tool for mission makers looking to maintain an optimized experience for their players when monitoring their progress in Zeus. Workshop Google Drive Armaholic
  9. A bit ago I begun working on my own little project to introduce simulated Fog of War to the Zeus commander to allow for a true Zeus vs. Player experience. The idea is simply unrendering objects that the zeus's AI are not aware of. Unfortunately I had to put that project on hold because I ran into a bug that seems unavoidable. That bug being that zeus is completely capable of editing supposedly non-editable objects and even if you remove all editable attributes one-by-one, the fact still stands that the zeus player can simply scan his mouse across the map and find the names/locations of any unit on the map (Ultimately destroying the idea of FOW). Zooming out on the map makes it even easier to discover "hidden" units as the clickable area for all units is increased with the zoom. Original discovery thread here and cobwebbed bug report here I've decided to come back and see if I can work around this problem with the idea of simply hiding the map when the zeus player is in the zeus interface. My hacky idea is this: When the zeus player is in the curator display (IDD 312), recognize when the map is opened (keydown on "M") and black out their screen. Possibly with the text "No map available" or what ever. The prototyping code is: if (player == ZeusCommander) then { fnc_blackScreen = { _blackScreened = _this getVariable "blackScreen"; //Screen isn't black if !_blackScreened then { cutText ["","BLACK",0,true]; //black it //screen is black } else { cutText ["","BLACK IN",1,true]; //remove black }; //flip boolean _this setvariable ["blackScreen",!_blackScreened]; }; ZeusCommander setvariable ["blackScreen",false]; waituntil {!(IsNull (findDisplay 312))}; _keyDown = (findDisplay 312) displayAddEventHandler ["KeyDown","if (_this select 1 == 50) then {ZeusCommander call fnc_blackScreen;}"]; }; In the curator display, recognize "M" (50), check if screen already black. If not, black it, If is, un black it. Simple stuff. To much of my frustration however it seems like no matter what the Zeus map and zeus map unit icons are always ontop. I'm clueless with arma's UI and display infrastructure but it feels like the curator interface is just top priority. I have tried simply covering the map up for the zeus player with a giant area maker but it does not cover up unit icons (Only covers terrain) and now I have tried to black out the screen with cutText which which works perfectly on the normal map (display IDD 46) but not on zeus. It is clear the cutText is running but just behind the zeus map as I can see the BLACK IN fade when I close the zeus map. At this point I'm looking for any recommendation, fix, hacky hack, or what ever to just get rid of this damned broken zeus map. The player's normal map is fine. No unit icons, no ability to hover over the map to discover units, nothin. It's the zeus map that is the problem. If I can discover a way to, in any form, stop the use of the zeus map, then I will have my Fog of War functioning without any extremely obvious exploits.
  10. Hello there Arma community (and developers)! Is there any way to assign costs directly to groups (of units) such as OIA_InfSquad and so on? Well heh, actually I know that it is possible: you just declare the costs of individual classes in the cost table and then call it with bis_fnc_curatorObjectRegisteredTable; That does work so long that when I place a vanilla infantry squad for example the CSAT one, the individual costs I've set will get summed up and then subtracted from the total amount of available Curator (Zeus) points. Why is it then that when I declare individual class costs for a game modification such as Iron Front lite placing individual soldiers works as intended (the set points get subtracted) but when placing a group that consists of those same individual soldiers no curator points get subracted Shouldn't the game handle modifications the same way as it does with vanilla game's groups? That is, when placing a group of units -> sum up all the individual costs and then subtract the total amount. So what gives? Might this be an issue with the base game or the modification I'm using.. or maybe I should declare some additional stuff somewhere that I just currently don't know what to declare and where. I even tried to declare cost (0.9) for LIB_GER_infantry_squad in the very same list where I have set costs for the individual soldiers but that didn't help much. By using the module Set Costs - Soldiers & Vehicles it is possible to circumvent the behavior I'm struggling with here. In that module there's an empty field Men where you can set a cost for every class type "Man". By setting a cost (eg. 0.5) in that field every class type "Man" gets the same cost and then the cost for placing a group from game modifications (such as Iron Front in this case) will be subtracted from the available Curator points. But if I set the cost like that I lose all the control over setting individual costs for every single soldier and then every grunt, marksman, officer and so on will cost the same amount to place and that's a thing I'd like to avert as much as possible.
  11. A little bit of background first. I am an amateur scripter with a decent amount of mission making under my belt. Because of my amateur status I've had to rely on awesome people in my community and the arma 3 community in general to do what I wanted to do for my missions and templates. This was my very first step into what I consider really trying to create something that is a little different. I'm sure there are better ways to do what I've done, and I would love to hear them! But I just wanted to share this to hopefully help anyone who has also started the journey into arma 3 scripting. To really get into things I'll start by saying that with the way my unit works in Arma 3 I make all of the mission templates for our operations. Which averages around 3-4 per week depending on mod updates, errors (on my part mostly!) module tweaks, etc. None of that really bothers me, what did bother me is when I got all of that out of the way and the mission works fine, and there is no need to update the template except for the fact that the unit has changed starting locations for a few players. ARGH! lol So with that in mind I went to youtube to try and figure something out and I cam across this nifty video: I thought cool that would work. I could place the initial spawn right inside of a teleport zone and immediately have the players that load in move to that zone. Zeus can move whatever object it is to the new starting point for the week and I'll be able to perhaps make a few less templates on average. (Still need have updates and stuff right? yep, no worries.) Well then I came up with a few more ideas to make it "better" which is certainly my own fault. So about a week and a half later, and lots of help from a few different people and a lot of browsing the wiki led me to this finally: The Features: - JIP Functional - Enable or Disable the Teleport Manually - Automatically Disable the Teleport if the Teleport Flag is deleted - Automatically Renable the Teleport if the Teleport Flag is rebuilt - Rebuild the Teleport Flag - Delete the Teleport Flag - Only Accessible by Zeus - Automatically Add the Teleport Flag to Zeus at map start, and if rebuilt - Spawn the players randomly around the flag (within 16 meters) How it works: 1. Placed on the Map: Player: controller Player: s3ops Player x 50: other names/players ModuleCurator_F, name: zeusmod, owner: #adminLogged ModuleCurator_F, name: zeusmod_1, owner: controller ModuleCurator_F, name: zeusmod_2, owner: s3ops flag named "s3_tf_spawn" marker named "s3_tf_spawn_marker" marker named "s3_tp_zone", size 16x16 "s3_tf_spawn" synced to ModuleCuratorAddEditableObjects ModuleCuratorAddEditableObjects synced to 3 x ModuleCurator_F trigger, size 0x0, activated repeatedly, blufor not present, condition "this && !alive s3_tf_spawn;", on act "s3_tf_spawn = nil;" object (Laptop), name: s3_spawn 2. In the init.sqf: s3_spawn addAction ["Enable Teleport to Flag", "scripts\s3_tp_enable.sqf"]; s3_spawn addAction ["Disable Teleport to Flag", "scripts\s3_tp_disable.sqf"]; s3_spawn addAction ["-----------",""]; s3_spawn addAction ["Rebuild Teleport Flag", "scripts\s3_spawn_s3_tf_spawn.sqf"]; s3_spawn addAction ["Delete Teleport Flag", "scripts\s3_delete_s3_tf_spawn.sqf"]; s3_spawn addAction ["-----------",""]; 3. in the initplayerlocal.sqf: waituntil {! isnull player}; if (player == player) then { null = execVM "scripts\s3_tp_init.sqf"; } else {}; Now the Scripts: 4. s3_tp_init.sqf: _run = true; while {_run} do { if(isNil "s3_tf_spawn") then { stopTeleporter = "yes"; publicVariable "stopTeleporter"; } else { if(isNil "stopTeleporter") then { stopTeleporter = "no"; publicVariable "stopTeleporter"; }; if(stopTeleporter == "yes") then { _run = false; }; if(player distance (getMarkerpos "s3_tp_zone") < 15) then { player setPos [(getPos s3_tf_spawn select 0)+((random 16)-8), (getPos s3_tf_spawn select 1)+((random 16)-8)]; }; }; sleep 2; }; 5. s3_tp_enable.sqf: _s3curators = allCurators; _s3logic = getAssignedCuratorLogic player; if(_s3logic in _s3curators) then { if(isNil "s3_tf_spawn") then { Hint "The Flag Does Not Exist, Please Rebuild it." } else { stopTeleporter = "no"; publicVariable "stopTeleporter"; ["scripts\s3_tp_init.sqf","BIS_fnc_execVM",true,true] call BIS_fnc_MP; Hint "Teleport Enabled"; sleep 2; }; } else { Hint "You are not in the Zeus Slot, Access Denied." }; 6. s3_tp_disable.sqf: _s3curators = allCurators; _s3logic = getAssignedCuratorLogic player; if(_s3logic in _s3curators) then { stopTeleporter = "yes"; publicVariable "stopTeleporter"; Hint "Teleport Stopped"; sleep 2; } else { Hint "You are not in the Zeus Slot, Access Denied." }; 7. s3_spawn_s3_tf_spawn.sqf: _s3curators = allCurators; _s3logic = getAssignedCuratorLogic player; if(_s3logic in _s3curators) then { if(isNil "s3_tf_spawn") then { s3_tf_spawn = "FlagCarrierWest" createVehicle markerPos "s3_tf_spawn_marker"; zeusmod addCuratorEditableObjects [[s3_tf_spawn],true]; zeusmod_1 addCuratorEditableObjects [[s3_tf_spawn],true]; zeusmod_2 addCuratorEditableObjects [[s3_tf_spawn],true]; publicVariable "s3_tf_spawn"; Hint "Teleport Flag Rebuilt"; } else { zeusmod addCuratorEditableObjects [[s3_tf_spawn],true]; zeusmod_1 addCuratorEditableObjects [[s3_tf_spawn],true]; zeusmod_2 addCuratorEditableObjects [[s3_tf_spawn],true]; Hint "The Flag Already Exists, Added to Zeus." }; } else { Hint "You are not in the Zeus Slot, Access Denied." }; 8. s3_delete_s3_tf_spawn.sqf: _s3curators = allCurators; _s3logic = getAssignedCuratorLogic player; if(_s3logic in _s3curators) then { deleteVehicle s3_tf_spawn; s3_tf_spawn = nil; publicVariable "s3_tf_spawn"; Hint "Teleport Flag Deleted"; } else { Hint "You are not in the Zeus Slot, Access Denied." }; If you have any questions on why, or how things worked feel free to ask and I shall answer to the best of my abilities.Good luck and have a great one!
×