I'm finally getting back to this. Sorry, my year has been horribly busy with Accounting stuff and closing the financials for the year.
I'm beating my head trying to understand this, but not sure I'm making any ground other than getting a headache.
For blm, I am taking out the TP sets, and I need to create magic sets for nuking:
- Normal Nuking
- Nuking on a magic burst
- Magic accuracy set
- Magic accuracy set for a magic burst
I'm sure it's in the 'Function self_command(command) area, but I need to build this part up from scratch and also somehow get it incorporated into the rules but I dont know how. I have some place-holder sets in the lua below, lines 148-155. My midcast rules that these need to come into play is from lines 263-269. I know there is a re-write needed so that the rules point to the right set, which is ever-changing based on the nuking-type I designate (#1-4 above), I just dont know how. Please please help. This is so frustrating.
function get_sets()
-------------------------------------------
-- aftercast for returning to TP and Idle sets
-- the 'self command' area will change the set defined as aftercast.TP
-------------------------------------------
sets.aftercast = {}
sets.engaged = {}
sets.precast = {}
sets.midcast = {}
sets.aftercast.Idle = {
main="Lathi",
sub="Niobid Strap",
ammo="Pemphredo Tathlum",
-- head="Nahtirah Hat",
neck="Twilight Torque",
lear="Infused Earring",
rear="Friomisi Earring",
body="Respite Cloak",
hands="Wicce Gloves +1",
-- hands="Serpentes Cuffs",
lring="Defending Ring",
rring="Shneddick Ring",
back="Bane Cape",
waist="Slipor Sash",
legs="Nares Trews",
feet="Merlinic Crackows"}
sets.aftercast.Resting = set_combine(sets.aftercast.Idle, {
ammo="Mana Ampulla",
rear="Relaxing Earring",
hands="Nares Cuffs",
waist="Austerity Belt",
legs="Nisse Slacks"})
-------------------------------------------
-- The outermost table has to be named "sets", but
-- otherwise there are no restrictions.
-------------------------------------------
sets.engaged.TPnormal = {
ammo="Flame Sachet",
head="Spae. Petasos +1",
neck="Asperity Necklace",
lear="Bladeborn Earring",
rear="Steelflash Earring",
body="Count's Garb",
hands="Wicce Gloves +1",
lring="K'ayres Ring",
rring="Rajas Ring",
back="Potentia Cape",
waist="Goading Belt",
legs="Spae. Tonban +1",
feet="Umbani Boots"} --6+7+3+5+5+3=29 haste
sets.aftercast.TP = sets.engaged.TPnormal
-------------------------------------------
-- WS sets
-- So it's easy to determine if new obtained gear can replace anything, listed str/mnd/int stats per piece
-------------------------------------------
sets.precast.WSStr = {
ammo="Flame Sachet", --2/0/0
head="Sukeroku Hachi.", --25/20/20
neck="Asperity Necklace",
lear="Bladeborn Earring",
rear="Steelflash Earring",
body="Count's Garb", --21/29/38
hands="Wicce Gloves +1", --6/32/27
lring="K'ayres Ring",
rring="Rajas Ring", --5/0/0
back="Potentia Cape", --6/0/6
waist="Goading Belt",
legs="Spae. Tonban +1", --25/24/34
feet="Umbani Boots"} --10/19/22
sets.precast.WSStrMnd = set_combine(sets.precast.WSStr, {
ammo="Mana Ampulla", --0/0/4
lring="Diamond Ring"}) --0/4/4
sets.precast.WSStrInt = set_combine(sets.precast.WSStr, {
lring="Sprial Ring", --5/0/5
waist="Wanion Belt", --8/(5)/8
legs="Wicce Chausses +1", --21/23/38
feet="Merlinic Crackows"}) --6/23/31
sets.precast.Myrkr = set_combine(sets.precast.WSStr, {
rear="Moonshade Earring"})
-------------------------------------------
-- Fastcast sets:
-------------------------------------------
sets.precast.Fastcast = {
ammo="Impatiens",
head="Nahtirah Hat",
neck="Voltsurge Torque",
lear="Loquac. Earring",
rear="Enchntr. Earring +1",
body="Count's Garb",
hands="Helios Gloves",
lring="Lebeche Ring",
rring="Prolix Ring",
back="Shadow Mantle",
waist="Witful Belt",
legs="Artsieq Hose",
feet="Merlinic Crackows"}
sets.precast.HasteEnhancing = set_combine(sets.precast.Fastcast, {
waist="Siegel Sash"})
sets.precast.HasteStoneskin = set_combine(sets.precast.HasteEnhancing, {
head="Umuthi Hat",
hands="Carapacho Cuffs"})
sets.precast.HasteHealing = set_combine(sets.precast.Fastcast, {
rear="Mendi. Earring",
body="Heka's Kalasiris",
back="Pahtli Cape"})
sets.precast.HasteElemental = set_combine(sets.precast.Fastcast, {
main="Lathi",
sub="Niobid Strap",
head="Wicce Petasos +1",
neck="Stoicheion Medal",
body="Wicce Coat +1",
feet="Spae. Sabots +1"})
-------------------------------------------
-- Spell (midcast) sets:
-------------------------------------------
sets.midcast['Elemental Magic'] = {
main="Lathi",
sub="Niobid Strap",
ammo="Pemphredo Tathlum",
head="Merlinic Hood",
neck="Eddy Necklace",
lear="Barkaro. Earring",
rear="Friomisi Earring",
body="Count's Garb",
hands="Wicce Gloves +1",
lring="Strendu Ring",
rring="Acumen Ring",
back="Toro Cape",
waist="Yamabuki-no-Obi",
legs="Merlinic Shalwar",
--legs="Hagondes Pants +1",
feet="Merlinic Crackows"}
sets.midcast.Macc = set_combine(sets.midcast['Elemental Magic'], {
lring="Patricius Ring",
rring="Mars's Ring"})
sets.midcast.Burst = set_combine(sets.midcast['Elemental Magic']{
rear="Moonshade Earring",
body="Spae. Coat +1",
back="Mecisto. Mantle"})
sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {
body="Twilight Cloak"})
sets.midcast['Dark Magic'] = set_combine(sets.midcast['Elemental Magic'], {
ammo="Pemphredo Tathlum",
hands="Arch. Gloves +1",
rring="Archon Ring",
legs="Spae. Tonban +1",
feet="Wicce Sabots +1"})
sets.midcast.weather = {waist="Hachirin-No-Obi"}
sets.midcast['Enfeebling Magic'] = {
main="Lathi",
sub="Niobid Strap",
ammo="Pemphredo Tathlum",
head="Befouled Crown",
neck="Voltsurge Torque",
lear="Barkaro. Earring",
rear="Enchntr. Earring +1",
body="Spae. Coat +1",
hands="Lurid Mitts",
lring="Spiral Ring",
rring="Strendu Ring",
back="Bane Cape",
waist="Rumination Sash",
legs="Portent Pants",
feet="Spae. Sabots +1"}
sets.midcast['Enhancing Magic'] = {
main="Lathi",
sub="Niobid Strap",
ammo="Impatiens",
head="Befouled Crown",
neck="Twilight Torque",
lear="Gifted Earring",
rear="Enchntr. Earring +1",
body="Count's Garb",
hands="Wicce Gloves +1",
lring="Defending Ring",
rring="Sirona's Ring",
back="Shadow Mantle",
waist="Siegel Sash",
legs="Portent Pants",
feet="Rubeus Boots"}
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
neck="Stone Gorget",
waist="Siegel Sash",
legs="Haven Hose"})
sets.midcast['Healing Magic'] = {
--33% potency, this is taking into consideration that blm's mostly cast single tier cure spells
-- commented stats are potency/skill/mnd (ignoring vitality)
main="Lathi",
sub="Niobid Strap",
ammo="Mana Ampulla", --0/0/3
head="Spae. Petasos +1", --0/0/24
neck="Phalaina Locket", --4/0/3
lear="Gifted Earring",
rear="Mendi. Earring", --5/0/0
body="Heka's Kalasiris", --15/0/17
hands="Wicce Gloves +1", --0/0/32
lring="Lebeche Ring", --3/0/0
rring="Sirona's Ring", --0/10/3
back="Tempered Cape +1", --6/8/0
waist="Korin Obi", --0/0/5
legs="Spae. Tonban +1", --0/0/24
feet="Rubeus Boots"} --0/10/0
sets.midcast.ProtectShell = set_combine(sets.midcast['Healing Magic'], {
rring="Sheltered Ring"})
sets.midcast.Cursna = set_combine(sets.precast.Fastcast, {
rear="Enchntr. Earring +1",
lring="Ephedra Ring", --0/7/0
rring="Sirona's Ring", --0/10/3
feet="Rubeus Boots"}) --0/10/0
sets.midcast['Divine Magic'] = set_combine(sets.midcast['Healing Magic'], {
ammo="Pemphredo Tathlum",})
-------------------------------------------
-- Job Ability sets
-------------------------------------------
sets.precast["Manafont"] = {body="Arch. Coat"}
--sets.precast["Elemental Seal"] = {main="Laevateinn"}
sets.precast["Mana Wall"] = {feet="Wicce Sabots +1"}
send_command('input /macro book 4')
end
function precast(spell,action)
if player.equipment.head == 'Reraise Hairpin' then
disable('head')
else enable('head') end
if player.equipment.left_ear == 'Reraise Earring' then
disable('ear1')
else enable('ear1') end
if sets.aftercast.TP == sets.engaged.CPfarm then
equip(sets.engaged.CPfarm)
disable('main', 'sub', 'rear', 'body', 'back')
else enable('main', 'sub', 'rear', 'body', 'back') end
if spell.action_type == 'Magic' or spell.type == 'Ninjutsu' then
if spell.skill == 'Elemental Magic' then
if spell.name == 'Impact' then
equip(sets.precast.HasteElemental,{body="Twilight Cloak"})
elseif spell.element == world.weather_element or spell.element == world.day_element then
equip(sets.midcast.weather)
else equip(sets.precast.HasteElemental)
end
elseif spell.skill == 'Enhancing Magic' then
if spell.name == 'Stoneskin' then
equip(sets.precast.HasteStoneskin)
else equip(sets.precast.HasteEnhancing)
end
elseif spell.skill == 'Healing Magic' then
if spell.english:startswith('Cur') then
if spell.name == 'Cursna' then
equip(sets.midcast.Cursna)
else equip(sets.midcast['Healing Magic'])
end
else equip(sets.precast.HasteHealing)
end
else equip(sets.precast.Fastcast)
end
elseif spell.type == 'WeaponSkill' then
if spell.english == 'Brainshaker' or 'Skullbreaker' or 'True Strike' or 'Heavy Swing' or 'Full Swing' or 'Shell Crusher' then
equip(sets.precast.WSStr)
elseif spell.english == 'Shining Strike' or 'Seraph Strike' or 'Judgement' or 'Hexa Strike' or 'Black Halo' or 'Flash Nova' or 'Starburst' or 'Sunburst' or 'Retribution' then
equip(sets.precast.WSStrMnd)
elseif spell.english == 'Rock Crusher' or 'Earth Crusher' or 'Spirit Taker' or 'Vidohunir' or 'Cataclysm' then
equip(sets.precast.WSStrInt)
elseif spell.english == 'Myrkr' then
equip(sets.precast.Myrkr)
else equip(sets.precast.WSStr)
end
elseif sets.precast[spell.english] then
equip(sets.precast[spell.english])
end
end
function midcast(spell,action)
if spell.action_type == 'Magic' then
if spell.skill == 'Elemental Magic' then
if spell.english == 'Impact' then
equip(sets.midcast.Impact)
else equip(sets.midcast['Elemental Magic'])
end
if spell.element == world.weather_element or spell.element == world.day_element then
equip(sets.midcast.weather)
end
elseif spell.skill == 'Enhancing Magic' then
if spell.english:startswith('Protect') or spell.english:startswith('Shell') then
equip(sets.midcast.ProtectShell)
elseif spell.name == 'Stoneskin' then
equip(sets.midcast.Stoneskin)
else equip(sets.midcast['Enhancing Magic'])
end
elseif sets.midcast[spell.skill] then
equip(sets.midcast[spell.skill])
else equip(sets.precast.Fastcast)
end
end
end
function aftercast(spell)
if player.status == 'Engaged' then
equip(sets.aftercast.TP)
else
equip(sets.aftercast.Idle)
end
end
function status_change(new,old)
if new == 'Idle' then
equip(sets.aftercast.Idle)
elseif new == 'Resting' then
equip(sets.aftercast.Resting)
elseif new == 'Engaged' then
equip(sets.aftercast.TP)
end
end
function self_command(command) --this is all messed up, its not sets.aftercast.tp anymore, nor is it sets.engaged because we're nuking... what is it?
if command == 'toggle TP set' then
if sets.aftercast.TP == sets.engaged.TPnormal then
sets.aftercast.TP = sets.engaged.Macc
send_command('@input /echo M.ACC SET')
elseif sets.aftercast.TP == sets.engaged.Macc then
sets.aftercast.TP = sets.engaged.Burst
send_command('@input /echo BURST SET')
elseif sets.aftercast.TP == sets.engaged.Burst then
sets.aftercast.TP = sets.engaged.TPnormal
send_command('@input /echo NORMAL SET')
end
end
end