This is an old revision of the document!
ACR (Advanced Combat Routines) is a platform for highly customizable combat routines that are written in lua. Routines built on this platform can use a custom GUI, have access to a special multi-clickable Party Interface, and the routines are not bound by the same generic rules that SkillManager routines use.
Enables the current profile. If this is off, FFXIVMinion uses SkillManager instead. If a profile is not listed here, it is not properly built/compiled.
Enables ACR if a profile is found for the current class. This will hold true in reverse, and it will be disabled if no valid profiles are found.
Toggles the multi-clickable party interface window, discussed in the next section.
ACR does not include FFXIV icons, but these can be downloaded from this link. To install the icons, place the icons folder in the root of the ACR module [ACR\icons].
The party interface is a multi-clickable display that can work in conjunction with routines via their OnClick procedure.
Right-click to dispel debuffs. Left-click to cast a small heal. Shift+Left-click to cast a large heal. Middle-click to use an ability such as Cover/Goad on your teammate.
OnClick API documented in Routine API below.
-- Create the basic profile table. local profile = {} -- Create a GUI table, to hold GUI-related information. profile.GUI = { open = false, visible = true, name = "Batman", } -- Create a classes table, to specify which classes this profile can be used for. profile.classes = { [FFXIV.JOBS.NINJA] = true, [FFXIV.JOBS.ROGUE] = true, } -- The Cast() function is where the magic happens. -- Action code should be called and fired here. function profile.Cast() local currentTarget = MGetTarget() if (currentTarget) then local spinningEdge = ActionList:Get(2240,1,currentTarget.id) if (spinningEdge and spinningEdge.isready) then spinningEdge:Cast(currentTarget.id) return true end end return false end -- The Draw() function provides a place where a developer can show custom options. function profile.Draw() if (profile.GUI.open) then profile.GUI.visible, profile.GUI.open = GUI:Begin(profile.GUI.name, profile.GUI.open) if ( profile.GUI.visible ) then ACR_MyProfile_MySavedVar = GUI:Checkbox("AOE",ACR_MyProfile_MySavedVar) end GUI:End() end end -- The OnOpen() function is fired when a user pressed "View Profile Options" on the main ACR window. function profile.OnOpen() -- Set our GUI table //open// variable to true so that it will be drawn. profile.GUI.open = true end -- The OnLoad() function is fired when a profile is prepped and loaded by ACR. function profile.OnLoad() -- Set and (if necessary) create a saved variable named ACR_MyProfile_MySavedVar. ACR_MyProfile_MySavedVar = ACR.GetSetting("ACR_MyProfile_MySavedVar",false) end -- The OnClick function is fired when a user clicks on the ACR party interface. -- It accepts 5 parameters: -- mouse /int/ - Possible values are 0 (Left-click), 1 (Right-click), 2 (Middle-click) -- shiftState /bool/ - Is shift currently pressed? -- controlState /bool/ - Is control currently pressed? -- altState /bool/ - Is alt currently pressed? -- entity /table/ - The entity information for the party member that was clicked on. function profile.OnClick(mouse,shiftState,controlState,altState,entity) end -- The OnUpdate() function is fired on the gameloop, like any other OnUpdate function found in FFXIVMinion code. function profile.OnUpdate(event, tickcount) end -- Return the profile to ACR, so it can be read. return profile