This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
acr [2016/04/01 16:56] – ace | acr [2021/12/22 04:22] – ace | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Features | + | ===== About ===== |
ACR (Advanced Combat Routines) is a platform for highly customizable combat routines that are written in lua. | 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. | 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. | ||
- | ==== Usage ==== | + | ===== Features ===== |
- | + | ||
- | ---- | + | |
=== ACR Main Interface === | === ACR Main Interface === | ||
Line 26: | Line 24: | ||
{{http:// | {{http:// | ||
+ | |||
+ | //ACR does not include FFXIV icons, but these can be downloaded from [[http:// | ||
+ | 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. | The party interface is a multi-clickable display that can work in conjunction with routines via their OnClick procedure. | ||
Line 68: | Line 69: | ||
local spinningEdge = ActionList: | local spinningEdge = ActionList: | ||
if (spinningEdge and spinningEdge.isready) then | if (spinningEdge and spinningEdge.isready) then | ||
- | spinningEdge: | + | spinningEdge: |
return true | return true | ||
end | end | ||
Line 82: | Line 83: | ||
ACR_MyProfile_MySavedVar = GUI: | ACR_MyProfile_MySavedVar = GUI: | ||
end | end | ||
+ | GUI:End() | ||
end | end | ||
+ | end | ||
+ | |||
+ | -- Adds a customizable header to the top of the ffxivminion task window. | ||
+ | function profile.DrawHeader() | ||
+ | |||
+ | end | ||
+ | |||
+ | -- Adds a customizable footer to the top of the ffxivminion task window. | ||
+ | function profile.DrawFooter() | ||
+ | |||
end | end | ||
Line 115: | Line 127: | ||
-- Return the profile to ACR, so it can be read. | -- Return the profile to ACR, so it can be read. | ||
return profile | return profile | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Pushing Routines API ==== | ||
+ | |||
+ | <code lua> | ||
+ | |||
+ | -- This code is an example of how to push routines into ACR using the new API call. | ||
+ | |||
+ | acelib.routinePath = GetStartupPath()..[[\LuaMods\AceLib\CombatRoutines\]] --this can be any subfolder, I'm using the old structure for ease | ||
+ | |||
+ | function AceLib.LoadCombatProfile(filename, | ||
+ | if (acelib.ModuleFunctions and acelib.ModuleFunctions.ReadModuleFile) then | ||
+ | local fileInfo = { p = " | ||
+ | local fileString = acelib.ModuleFunctions.ReadModuleFile(fileInfo) | ||
+ | if (fileString) then | ||
+ | local fileFunction, | ||
+ | if (fileFunction) then | ||
+ | local ok, profileData = pcall(fileFunction) | ||
+ | if (ok and profileData ~= nil) then | ||
+ | ACR.AddPrivateProfile(profileData, | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | else | ||
+ | if (filename ~= "" | ||
+ | local profileData, | ||
+ | if (ValidTable(profileData)) then | ||
+ | ACR.AddPrivateProfile(profileData, | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | |||
+ | function AceLib.LoadCombatProfiles() | ||
+ | AceLib.LoadCombatProfile(" | ||
+ | end | ||
+ | |||
+ | -- Final call should be done in a ModuleInit so that all modules can finish loading other API where required. | ||
+ | function acelib.ModuleInit() | ||
+ | AceLib.LoadCombatProfiles() | ||
+ | end | ||
</ | </ |