Post by kodama on Dec 7, 2005 2:59:20 GMT -5
I have made a script that handles macros and shows a palette on the screen. It's kinda beta, a bit slow, and it's hard to edit your macros.
An palette example for bard(40-ish) are included here.
SS
There are submenues, for example pressing alt-2 can open a menu with threnodies and debuffs.
The name on some keys don't show, this to speed up the script a bit, these are:
Ctrl+0 Hide the palette
Ctrl+9 Reload the palette (only in main menu)
Alt+1 Return to main menu
Issues with the script:
- Slow, changing the text values are not as fast I want.
- Text background, The graphics align itself over the text, not good.
- Not user friendly, should be easier to edit the macros, but I want to improve the performance first.
MacroPalette.lua
bard_palette.lua
I have added these line in windowers init.txt:
An palette example for bard(40-ish) are included here.
SS
There are submenues, for example pressing alt-2 can open a menu with threnodies and debuffs.
The name on some keys don't show, this to speed up the script a bit, these are:
Ctrl+0 Hide the palette
Ctrl+9 Reload the palette (only in main menu)
Alt+1 Return to main menu
Issues with the script:
- Slow, changing the text values are not as fast I want.
- Text background, The graphics align itself over the text, not good.
- Not user friendly, should be easier to edit the macros, but I want to improve the performance first.
MacroPalette.lua
Control.control_BindKey("1",true,false,true,".Lunar command MacroPalette.lua 1")
Control.control_BindKey("2",true,false,true,".Lunar command MacroPalette.lua 2")
Control.control_BindKey("3",true,false,true,".Lunar command MacroPalette.lua 3")
Control.control_BindKey("4",true,false,true,".Lunar command MacroPalette.lua 4")
Control.control_BindKey("5",true,false,true,".Lunar command MacroPalette.lua 5")
Control.control_BindKey("6",true,false,true,".Lunar command MacroPalette.lua 6")
Control.control_BindKey("7",true,false,true,".Lunar command MacroPalette.lua 7")
Control.control_BindKey("8",true,false,true,".Lunar command MacroPalette.lua 8")
Control.control_BindKey("9",true,false,true,".Lunar command MacroPalette.lua 9")
Control.control_BindKey("0",true,false,true,".Lunar command MacroPalette.lua 10")
Control.control_BindKey("1",true,true,false,".Lunar command MacroPalette.lua 11")
Control.control_BindKey("2",true,true,false,".Lunar command MacroPalette.lua 12")
Control.control_BindKey("3",true,true,false,".Lunar command MacroPalette.lua 13")
Control.control_BindKey("4",true,true,false,".Lunar command MacroPalette.lua 14")
Control.control_BindKey("5",true,true,false,".Lunar command MacroPalette.lua 15")
Control.control_BindKey("6",true,true,false,".Lunar command MacroPalette.lua 16")
Control.control_BindKey("7",true,true,false,".Lunar command MacroPalette.lua 17")
Control.control_BindKey("8",true,true,false,".Lunar command MacroPalette.lua 18")
Control.control_BindKey("9",true,true,false,".Lunar command MacroPalette.lua 19")
Control.control_BindKey("0",true,true,false,".Lunar command MacroPalette.lua 20")
function show_menu(menu_index)
if palette[menu_index] then
for i, blah in ipairs(activation_color_table) do
Graphics.text_SetColor(255,255,255,255,controls[2][blah[1]])
end
for i = 1, 20, 1 do
if palette[menu_index][i] and palette[menu_index][i][1] then
Graphics.text_SetText(palette[menu_index][i][1],controls[2][i])
elseif palette[menu_open][i] and palette[menu_open][i][1] then
Graphics.text_SetText("",controls[2][i])
end
end
menu_open = menu_index
end
end
function hide_window()
if hidden == 0 then
hidden = 1
dohide = 0
else
hidden = 0
dohide = 1
end
Graphics.primitive_SetVisibility(dohide,background)
for i = 1, 20, 1 do
Graphics.text_SetVisibility(dohide,controls[1][i])
Graphics.text_SetVisibility(dohide,controls[2][i])
end
end
function execute(commands, key)
for i, command in ipairs(commands) do
Control.control_SendString(command)
end
end
arg = Windower.script_GetArg(2)
my_path = "C:\\Documents and Settings\\Jimmy Andersson\\Skrivbord\\ffxi\\windower\\plugins\\Lunar\\Scripts\\"
dofile(my_path..arg.."_palette.lua")
hidden = 0
menu_open = 1
mainmenu_width = 820
x = 200
y = 666
height = 43
menuslot_width = mainmenu_width / 10
controls = {}
controls[1] = {}
controls[2] = {}
background=Graphics.primitive_CreateObject()
Graphics.primitive_SetPosition(x,y,background)
Graphics.primitive_SetSize(mainmenu_width,height,background)
Graphics.primitive_SetColor(70,0,0,0,background)
Graphics.primitive_SetTexture("main_background.png",background)
Graphics.primitive_SetVisibility(0,background)
key_title = "Ctrl + "
number_mod = 0
for i = 1, 20, 1 do
if i == 11 then
key_title = "Alt + "
x = 200
y = 688
number_mod = -10
end
MyText=Graphics.text_CreateObject()
Graphics.text_SetColor(255,234,255,0,MyText)
Graphics.text_SetPosition(x+2,y,MyText)
Graphics.text_SetFont("Small Fonts",6,MyText)
Graphics.text_SetVisibility(0,MyText)
table.insert(controls[1],MyText)
temp = i + number_mod
if temp == 10 then
temp = 0
end
text = key_title .. tostring(temp)
Graphics.text_SetText(text,MyText)
MyText=Graphics.text_CreateObject()
Graphics.text_SetColor(255,255,255,255,MyText)
Graphics.text_SetPosition(x+2,y+9,MyText)
Graphics.text_SetFont("Small Fonts",7,MyText)
Graphics.text_SetVisibility(0,MyText)
table.insert(controls[2],MyText)
if not palette[1][i] or not palette[1][i][1] then
text = ""
else
text = palette[1][i][1]
end
Graphics.text_SetText(text,MyText)
x = x + menuslot_width
end
------------------------------
Graphics.primitive_SetVisibility(1,background)
for i = 1, 20, 1 do
Graphics.text_SetVisibility(1,controls[1][i])
Graphics.text_SetVisibility(1,controls[2][i])
end
------------------------------
activation_color_table = {}
while true do
key = 0
commandCount = Windower.script_GetCommandCount()
for i = 1, commandCount, 1 do
key = tonumber(Windower.script_GetCommand())
if palette[menu_open][key] then
for i2, macro in ipairs(palette[menu_open][key][3]) do
if macro[1] == "exec" then
Graphics.text_SetColor(255,162,201,255,controls[2][key])
table.insert(activation_color_table, {key, 10})
execute(macro[2], key)
elseif macro[1] == "wait" then
Windower.script_Sleep(macro[2])
elseif macro[1] == "reload" then
Graphics.text_SetColor(255,162,201,255,controls[2][key])
table.insert(activation_color_table, {key, 10})
dofile(my_path..arg.."_palette.lua")
elseif macro[1] == "back" then
show_menu(macro[2])
elseif macro[1] == "menu" then
show_menu(key + 1)
elseif macro[1] == "hide" then
hide_window()
end
end
end
end
Windower.script_Sleep(100);
for i, blah in ipairs(activation_color_table) do
blah[2] = blah[2] - 1
if blah[2] == 0 then
Graphics.text_SetColor(255,255,255,255,controls[2][blah[1]])
table.remove(activation_color_table, i)
end
end
end
bard_palette.lua
-- palette[1] = main menu
-- palette[2] = ctrl + 1 = key[1]
-- palette[3] = ctrl + 2 = key[2]
-- palette[4] = ctrl + 3 = key[3]
-- palette[5] = ctrl + 4 = key[4]
-- palette[6] = ctrl + 5 = key[5]
-- palette[7] = ctrl + 6 = key[6]
-- palette[8] = ctrl + 7 = key[7]
-- palette[9] = ctrl + 8 = key[8]
-- palette[10] = ctrl + 9 = key[9]
-- palette[11] = ctrl + 0 = key[10]
-- palette[12] = alt + 1 = key[11]
-- palette[13] = alt + 2 = key[12]
-- palette[14] = alt + 3 = key[13]
-- palette[15] = alt + 4 = key[14]
-- palette[16] = alt + 5 = key[15]
-- palette[17] = alt + 6 = key[16]
-- palette[18] = alt + 7 = key[17]
-- palette[19] = alt + 8 = key[18]
-- palette[20] = alt + 9 = key[19]
-- palette[21] = alt + 0 = key[20]
-- 1 palette
-- 1.1 key
-- 1.1.1 title
-- 1.1.2 menu? "(menu)"
-- 1.1.3 macros
-- 1.1.3.1 type
-- 1.1.3.2 value(s)
hide = {"hide", ""}
menu = {"menu", ""}
chr_gear = {"exec", {"/equip Head \"Noble's Ribbon\"", "/equip Neck \"Flower Necklace\"", "/equip Ring1 \"Loyalty Ring\"", "/equip Ring2 \"Loyalty Ring\""}}
normal_gear = {"exec", {"/equip Head \"Carapace Mask\"", "/equip Neck \"Medieval Collar\"", "/equip Ring1 \"Phalanx Ring\"", "/equip Ring2 \"Phalanx Ring\""}}
target_foe = {"exec", {"/target <bt>"}}
palette = {}
--- Main menu ---
palette[1] = {}
palette[1][1] = {}
palette[1][1][1] = "Target Foe"
palette[1][1][3] = {}
palette[1][1][3][1] = target_foe
palette[1][2] = {}
palette[1][2][1] = "Pulling notice"
palette[1][2][3] = {}
palette[1][2][3][1] = {"exec", {"/p ýý …{ <t> <scall17>"}}
palette[1][3] = {}
palette[1][3][1] = "Elegy"
palette[1][3][3] = {}
palette[1][3][3][1] = {"exec", {"/so \"Battlefield Elegy\" <t>"}}
palette[1][3][3][2] = {"wait", 400}
palette[1][3][3][3] = chr_gear
palette[1][3][3][4] = {"exec", {"/equip Range \"Horn +1\""}}
palette[1][3][3][5] = {"wait", 2000}
palette[1][3][3][6] = normal_gear
palette[1][4] = {}
palette[1][4][1] = "Foe Lullaby"
palette[1][4][3] = {}
palette[1][4][3][1] = {"exec", {"/so \"Foe Lullaby\" <t>"}}
palette[1][4][3][2] = {"exec", {"/p �ô ýÏý �ô …{ <t> !!!ý5ý!!! <scall11>"}}
palette[1][4][3][3] = {"wait", 400}
palette[1][4][3][4] = chr_gear
palette[1][4][3][5] = {"exec", {"/equip Range \"Mary\'s Horn\""}}
palette[1][4][3][6] = {"wait", 2000}
palette[1][4][3][7] = normal_gear
palette[1][5] = {}
palette[1][5][1] = "Horde Lullaby"
palette[1][5][3] = {}
palette[1][5][3][1] = {"exec", {"/so \"Horde Lullaby\" <t>"}}
palette[1][5][3][2] = {"exec", {"/p �ô ýxý �ô !!!ý5ý!!! <scall11>"}}
palette[1][5][3][3] = {"wait", 400}
palette[1][5][3][4] = chr_gear
palette[1][5][3][5] = {"exec", {"/equip Range \"Mary\'s Horn\""}}
palette[1][5][3][6] = {"wait", 2000}
palette[1][5][3][7] = normal_gear
palette[1][8] = {}
palette[1][8][3] = {}
palette[1][8][3][1] = menu
palette[1][8][3][2] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[1][9] = {}
palette[1][9][3] = {}
palette[1][9][3][1] = {"reload", ""}
palette[1][10] = {}
palette[1][10][3] = {}
palette[1][10][3][1] = hide
palette[1][12] = {}
palette[1][12][1] = "Debuffs/Threnod."
palette[1][12][3] = {}
palette[1][12][3][1] = menu
palette[1][13] = {}
palette[1][13][1] = "Buffs"
palette[1][13][3] = {}
palette[1][13][3][1] = menu
palette[1][14] = {}
palette[1][14][1] = "Etudes/Preludes"
palette[1][14][3] = {}
palette[1][14][3][1] = menu
palette[1][15] = {}
palette[1][15][1] = "Cures"
palette[1][15][3] = {}
palette[1][15][3][1] = menu
palette[1][16] = {}
palette[1][16][1] = "WHM misc"
palette[1][16][3] = {}
palette[1][16][3][1] = menu
palette[1][18] = {}
palette[1][18][1] = "Stand up"
palette[1][18][3] = {}
palette[1][18][3][1] = {"exec", {"/heal"}}
palette[1][19] = {}
palette[1][19][1] = "Rest"
palette[1][19][3] = {}
palette[1][19][3][1] = {"exec", {"/heal"}}
--- Ctrl 0 ---
palette[9] = {}
palette[9][1] = {}
palette[9][1][1] = "Target foe"
palette[9][1][3] = {}
palette[9][1][3][1] = target_foe
palette[9][10] = {}
palette[9][10][3] = {}
palette[9][10][3][1] = hide
palette[9][11] = {}
palette[9][11][3] = {}
palette[9][11][3][1] = {"back", 1}
palette[9][12] = {}
palette[9][12][1] = "1"
palette[9][12][3] = {}
palette[9][12][3][1] = {"exec", {"/so \"Wind Threnody\" <t>"}}
palette[9][13] = {}
palette[9][13][1] = "2"
palette[9][13][3] = {}
palette[9][13][3][1] = {"exec", {"/so \"Earth Threnody\" <t>"}}
palette[9][14] = {}
palette[9][14][1] = "3"
palette[9][14][3] = {}
palette[9][14][3][1] = {"exec", {"/so \"Water Threnody\" <t>"}}
palette[9][15] = {}
palette[9][15][1] = "4"
palette[9][15][3] = {}
palette[9][15][3][1] = {"exec", {"/so \"Dark Threnody\" <t>"}}
palette[9][16] = {}
palette[9][16][1] = "5"
palette[9][16][3] = {}
palette[9][16][3][1] = {"exec", {"/so \"Ice Threnody\" <t>"}}
--- Alt 2 ---
palette[13] = {}
palette[13][1] = {}
palette[13][1][1] = "Target foe"
palette[13][1][3] = {}
palette[13][1][3][1] = target_foe
palette[13][2] = {}
palette[13][2][1] = "Light Threnody"
palette[13][2][3] = {}
palette[13][2][3][1] = {"exec", {"/so \"Light Threnody\" <t>"}}
palette[13][2][3][2] = {"wait", 400}
palette[13][2][3][3] = chr_gear
palette[13][2][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[13][2][3][5] = {"wait", 2000}
palette[13][2][3][6] = normal_gear
palette[13][3] = {}
palette[13][3][1] = "Wind Threnody"
palette[13][3][3] = {}
palette[13][3][3][1] = {"exec", {"/so \"Wind Threnody\" <t>"}}
palette[13][3][3][2] = {"wait", 400}
palette[13][3][3][3] = chr_gear
palette[13][3][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[13][3][3][5] = {"wait", 2000}
palette[13][3][3][6] = normal_gear
palette[13][4] = {}
palette[13][4][1] = "Earth Threnody"
palette[13][4][3] = {}
palette[13][4][3][1] = {"exec", {"/so \"Earth Threnody\" <t>"}}
palette[13][4][3][2] = {"wait", 400}
palette[13][4][3][3] = chr_gear
palette[13][4][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[13][4][3][5] = {"wait", 2000}
palette[13][4][3][6] = normal_gear
palette[13][5] = {}
palette[13][5][1] = "Water Threnody"
palette[13][5][3] = {}
palette[13][5][3][1] = {"exec", {"/so \"Water Threnody\" <t>"}}
palette[13][5][3][2] = {"wait", 400}
palette[13][5][3][3] = chr_gear
palette[13][5][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[13][5][3][5] = {"wait", 2000}
palette[13][5][3][6] = normal_gear
palette[13][6] = {}
palette[13][6][1] = "Dark Threnody"
palette[13][6][3] = {}
palette[13][6][3][1] = {"exec", {"/so \"Dark Threnody\" <t>"}}
palette[13][6][3][2] = {"wait", 400}
palette[13][6][3][3] = chr_gear
palette[13][6][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[13][6][3][5] = {"wait", 2000}
palette[13][6][3][6] = normal_gear
palette[13][7] = {}
palette[13][7][1] = "Ice Threnody"
palette[13][7][3] = {}
palette[13][7][3][1] = {"exec", {"/so \"Ice Threnody\" <t>"}}
palette[13][7][3][2] = {"wait", 400}
palette[13][7][3][3] = chr_gear
palette[13][7][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[13][7][3][5] = {"wait", 2000}
palette[13][7][3][6] = normal_gear
palette[13][8] = {}
palette[13][8][1] = "Fire Threnody"
palette[13][8][3] = {}
palette[13][8][3][1] = {"exec", {"/so \"Fire Threnody\" <t>"}}
palette[13][8][3][2] = {"wait", 400}
palette[13][8][3][3] = chr_gear
palette[13][8][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[13][8][3][5] = {"wait", 2000}
palette[13][8][3][6] = normal_gear
palette[13][9] = {}
palette[13][9][1] = "Ltng. Threnody"
palette[13][9][3] = {}
palette[13][9][3][1] = {"exec", {"/so \"Ltng. Threnody\" <t>"}}
palette[13][9][3][2] = {"wait", 400}
palette[13][9][3][3] = chr_gear
palette[13][9][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[13][9][3][5] = {"wait", 2000}
palette[13][9][3][6] = normal_gear
palette[13][10] = {}
palette[13][10][3] = {}
palette[13][10][3][1] = hide
palette[13][11] = {}
palette[13][11][3] = {}
palette[13][11][3][1] = {"back", 1}
palette[13][12] = {}
palette[13][12][1] = "Elegy"
palette[13][12][3] = {}
palette[13][12][3][1] = {"exec", {"/so \"Battlefield Elegy\" <t>"}}
palette[13][12][3][2] = {"wait", 400}
palette[13][12][3][3] = chr_gear
palette[13][12][3][4] = {"exec", {"/equip Range \"Horn +1\""}}
palette[13][12][3][5] = {"wait", 2000}
palette[13][12][3][6] = normal_gear
palette[13][13] = {}
palette[13][13][1] = "Requiem"
palette[13][13][3] = {}
palette[13][13][3][1] = {"exec", {"/so \"Foe Requiem IV\" <t>"}}
palette[13][13][3][2] = {"wait", 400}
palette[13][13][3][3] = chr_gear
palette[13][13][3][4] = {"exec", {"/equip Range \"Flute +1\""}}
palette[13][13][3][5] = {"wait", 2000}
palette[13][13][3][6] = normal_gear
palette[13][14] = {}
palette[13][14][1] = "Magic Finale"
palette[13][14][3] = {}
palette[13][14][3][1] = {"exec", {"/so \"Magic Finale\" <t>"}}
palette[13][14][3][2] = {"exec", {"/p �ô ýÎý �ô …{ <t>"}}
palette[13][14][3][3] = {"wait", 400}
palette[13][14][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
--- Alt 3 ---
palette[14] = {}
palette[14][2] = {}
palette[14][2][1] = "Ballad"
palette[14][2][3] = {}
palette[14][2][3][1] = {"exec", {"/so \"Mage\'s Ballad\" <me>"}}
palette[14][2][3][2] = {"exec", {"/p �ô ý‚ý �ô"}}
palette[14][2][3][3] = {"wait", 1500}
palette[14][2][3][4] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[14][8] = {}
palette[14][8][1] = "Army's Paeon IV"
palette[14][8][3] = {}
palette[14][8][3][1] = {"exec", {"/so \"Army\'s Paeon III\" <me>"}}
palette[14][8][3][2] = {"exec", {"/p �ô ý}ý �ô"}}
palette[14][8][3][3] = {"wait", 1500}
palette[14][8][3][4] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[14][9] = {}
palette[14][9][1] = "Army's Paeon III"
palette[14][9][3] = {}
palette[14][9][3][1] = {"exec", {"/so \"Army\'s Paeon II\" <me>"}}
palette[14][9][3][2] = {"exec", {"/p �ô ý|ý �ô"}}
palette[14][9][3][3] = {"wait", 1500}
palette[14][9][3][4] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[14][10] = {}
palette[14][10][3] = {}
palette[14][10][3][1] = hide
palette[14][11] = {}
palette[14][11][3] = {}
palette[14][11][3][1] = {"back", 1}
palette[14][12] = {}
palette[14][12][1] = "Sword Madrigal"
palette[14][12][3] = {}
palette[14][12][3][1] = {"exec", {"/so \"Sword Madrigal\" <me>"}}
palette[14][12][3][2] = {"wait", 1500}
palette[14][12][3][3] = {"exec", {"/equip Range \"Traversiere +1\""}}
palette[14][13] = {}
palette[14][13][1] = "Valor Minuet III"
palette[14][13][3] = {}
palette[14][13][3][1] = {"exec", {"/so \"Valor Minuet III\" <me>"}}
palette[14][13][3][2] = {"wait", 1500}
palette[14][13][3][3] = {"exec", {"/equip Range \"Cornette +1\""}}
palette[14][14] = {}
palette[14][14][1] = "Valor Minuet II"
palette[14][14][3] = {}
palette[14][14][3][1] = {"exec", {"/so \"Valor Minuet II\" <me>"}}
palette[14][14][3][2] = {"wait", 1500}
palette[14][14][3][3] = {"exec", {"/equip Range \"Cornette +1\""}}
palette[14][15] = {}
palette[14][15][1] = "Sheepfoe Mambo"
palette[14][15][3] = {}
palette[14][15][3][1] = {"exec", {"/so \"Sheepfoe Mambo\" <me>"}}
palette[14][15][3][2] = {"wait", 1500}
palette[14][15][3][3] = {"exec", {"/equip Range \"Gemshorn\""}}
palette[14][16] = {}
palette[14][16][1] = "Advancing March"
palette[14][16][3] = {}
palette[14][16][3][1] = {"exec", {"/so \"Advancing March\" <me>"}}
palette[14][16][3][2] = {"wait", 1500}
palette[14][16][3][3] = {"exec", {"/equip Range \"Faerie Piccolo\""}}
--- Alt 4 ---
palette[15] = {}
palette[15][1] = {}
palette[15][1][1] = "Target me"
palette[15][1][3] = {}
palette[15][1][3][1] = {"exec", {"/target <me>"}}
palette[15][2] = {}
palette[15][2][1] = "Hunter's Prelude"
palette[15][2][3] = {}
palette[15][2][3][1] = {"exec", {"/so \"Hunter\'s Prelude\" <t>"}}
palette[15][2][3][2] = {"wait", 400}
palette[15][2][3][3] = {"exec", {"/equip Range \"Ryl.Spr. Horn\""}}
palette[15][10] = {}
palette[15][10][3] = {}
palette[15][10][3][1] = hide
palette[15][11] = {}
palette[15][11][3] = {}
palette[15][11][3][1] = {"back", 1}
palette[15][12] = {}
palette[15][12][1] = "Enchanting"
palette[15][12][3] = {}
palette[15][12][3][1] = {"exec", {"/so \"Enchanting Etude\" <t>"}}
palette[15][12][3][2] = {"wait", 400}
palette[15][12][3][3] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[15][13] = {}
palette[15][13][1] = "Spirited"
palette[15][13][3] = {}
palette[15][13][3][1] = {"exec", {"/so \"Spirited Etude\" <t>"}}
palette[15][13][3][2] = {"wait", 400}
palette[15][13][3][3] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[15][14] = {}
palette[15][14][1] = "Learned"
palette[15][14][3] = {}
palette[15][14][3][1] = {"exec", {"/so \"Learned Etude\" <t>"}}
palette[15][14][3][2] = {"wait", 400}
palette[15][14][3][3] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[15][15] = {}
palette[15][15][1] = "Quick"
palette[15][15][3] = {}
palette[15][15][3][1] = {"exec", {"/so \"Quick Etude\" <t>"}}
palette[15][15][3][2] = {"wait", 400}
palette[15][15][3][3] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[15][16] = {}
palette[15][16][1] = "Vivacious"
palette[15][16][3] = {}
palette[15][16][3][1] = {"exec", {"/so \"Vivacious Etude\" <t>"}}
palette[15][16][3][2] = {"wait", 400}
palette[15][16][3][3] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[15][17] = {}
palette[15][17][1] = "Dextrous"
palette[15][17][3] = {}
palette[15][17][3][1] = {"exec", {"/so \"Dextrous Etude\" <t>"}}
palette[15][17][3][2] = {"wait", 400}
palette[15][17][3][3] = {"exec", {"/equip Range \"Rose Harp +1\""}}
palette[15][18] = {}
palette[15][18][1] = "Sinewy"
palette[15][18][3] = {}
palette[15][18][3][1] = {"exec", {"/so \"Sinewy Etude\" <t>"}}
palette[15][18][3][2] = {"wait", 400}
palette[15][18][3][3] = {"exec", {"/equip Range \"Rose Harp +1\""}}
--- Alt 5 ---
palette[16] = {}
palette[16][1] = {}
palette[16][1][1] = "Target Foe"
palette[16][1][3] = {}
palette[16][1][3][1] = target_foe
palette[16][2] = {}
palette[16][2][1] = "Poisona"
palette[16][2][3] = {}
palette[16][2][3][1] = {"exec", {"/ma \"Poisona\" <t>"}}
palette[16][3] = {}
palette[16][3][1] = "Paralyna"
palette[16][3][3] = {}
palette[16][3][3][1] = {"exec", {"/ma \"Paralyna\" <t>"}}
palette[16][4] = {}
palette[16][4][1] = "Blindna"
palette[16][4][3] = {}
palette[16][4][3][1] = {"exec", {"/ma \"Blindna\" <t>"}}
palette[16][5] = {}
palette[16][5][1] = "Silena"
palette[16][5][3] = {}
palette[16][5][3][1] = {"exec", {"/ma \"Silena\" <t>"}}
palette[16][10] = {}
palette[16][10][3] = {}
palette[16][10][3][1] = hide
palette[16][11] = {}
palette[16][11][3] = {}
palette[16][11][3][1] = {"back", 1}
palette[16][12] = {}
palette[16][12][1] = "Divine Seal"
palette[16][12][3] = {}
palette[16][12][3][1] = {"exec", {"/target <me>"}}
palette[16][12][3][2] = {"exec", {"/ja \"Divine Seal\""}}
palette[16][13] = {}
palette[16][13][1] = "Cure"
palette[16][13][3] = {}
palette[16][13][3][1] = {"exec", {"/ma \"Cure\" <t>"}}
palette[16][14] = {}
palette[16][14][1] = "Cure II"
palette[16][14][3] = {}
palette[16][14][3][1] = {"exec", {"/ma \"Cure II\" <t>"}}
palette[16][15] = {}
palette[16][15][1] = "Cure III"
palette[16][15][3] = {}
palette[16][15][3][1] = {"exec", {"/ma \"Cure III\" <t>"}}
palette[16][16] = {}
palette[16][16][1] = "Curaga"
palette[16][16][3] = {}
palette[16][16][3][1] = {"exec", {"/ma \"Curaga\" <t>"}}
palette[16][17] = {}
palette[16][17][1] = "Regen"
palette[16][17][3] = {}
palette[16][17][3][1] = {"exec", {"/ma \"Regen\" <t>"}}
--- Alt 6 ---
palette[17] = {}
palette[17][1] = {}
palette[17][1][1] = "Target me"
palette[17][1][3] = {}
palette[17][1][3][1] = {"exec", {"/target <me>"}}
palette[17][2] = {}
palette[17][2][1] = "Protectra"
palette[17][2][3] = {}
palette[17][2][3][1] = {"exec", {"/ma \"Protectra\" <me>"}}
palette[17][3] = {}
palette[17][3][1] = "Shellra"
palette[17][3][3] = {}
palette[17][3][3][1] = {"exec", {"/ma \"Shellra\" <me>"}}
palette[17][4] = {}
palette[17][4][1] = "Barfira"
palette[17][4][3] = {}
palette[17][4][3][1] = {"exec", {"/ma \"Barfira\" <me>"}}
palette[17][5] = {}
palette[17][5][1] = "Barstonra"
palette[17][5][3] = {}
palette[17][5][3][1] = {"exec", {"/ma \"Barstonra\" <me>"}}
palette[17][6] = {}
palette[17][6][1] = "Barwatera"
palette[17][6][3] = {}
palette[17][6][3][1] = {"exec", {"/ma \"Barwatera\" <me>"}}
palette[17][10] = {}
palette[17][10][3] = {}
palette[17][10][3][1] = hide
palette[17][11] = {}
palette[17][11][3] = {}
palette[17][11][3][1] = {"back", 1}
palette[17][12] = {}
palette[17][12][1] = "Blink"
palette[17][12][3] = {}
palette[17][12][3][1] = {"exec", {"/ma \"Blink\" <me>"}}
palette[17][14] = {}
palette[17][14][1] = "Sneak"
palette[17][14][3] = {}
palette[17][14][3][1] = {"exec", {"/ma \"Sneak\" <t>"}}
I have added these line in windowers init.txt:
bind ^!1 input /echo ~ Closing macro palette ~; .Lunar unload MacroPalette.lua; unbind !1;unbind !2;unbind !3;unbind !4;unbind !5;unbind !6;unbind !7;unbind !8 ;unbind !9 ;unbind !0 ;unbind ^1 ;unbind ^2 ;unbind ^3 ;unbind ^4 ;unbind ^5 ;unbind ^6 ;unbind ^7 ;unbind ^8 ;unbind ^9 ;unbind ^0;
bind ^!2 input /echo ~ Loading Paladin macro palette ~; .Lunar load MacroPalette.lua paladin;
bind ^!3 input /echo ~ Loading Bard macro palette ~; .Lunar load MacroPalette.lua bard;
bind ^!9 input /echo ~ Starting Lunar ~; load Lunar;
bind ^!0 input /echo ~ Closing Lunar ~; unload Lunar;