Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function get_sets()
- -- hagondes_head_atk = {name='Hagondes Hat +1', augments={'Phys. dmg. taken -4%', 'Pet: Attack+23 Pet: Rng.Atk.+23'}}
- -- hagondes_head_macc = {name='Hagondes Hat', augments={'Phys. dmg. taken -3%', 'Pet: Mag. Acc.+24'}}
- -- hagondes_body_perp = {name='Hagondes Coat +1', augments={'Phys. dmg. taken -3%', '"Avatar perpetuation cost" -5'}}
- -- hagondes_body_macc = {name='Hagondes Coat', augments={'Phys. dmg. taken -3%', 'Pet: Mag. Acc.+25'}}
- -- hagondes_hands_mab = {name='Hagondes Cuffs', augments={'Phys. dmg. taken -3%', 'Pet: "Mag.Atk.Bns."+25'}}
- -- hagondes_hands_macc = {name='Hagondes Cuffs +1', augments={'Phys. dmg. taken -4%', 'Magic dmg. taken -3%', 'Pet: Mag. Acc.+23'}}
- -- hagondes_hands_fc = {name='Hagondes Cuffs', augments={'Phys. dmg. taken -3%', '"Fast Cast"+4'}}
- -- hagondes_legs_mab = {name='Hagondes Pants', augments={'Phys. dmg. taken -3%', 'Pet: "Mag.Atk.Bns."+25'}}
- -- hagondes_legs_macc = {name='Hagondes Pants +1', augments={'Phys. dmg. taken -3%', 'Magic dmg. taken -2%', 'Pet: Mag. Acc.+23'}}
- -- hagondes_feet_mab = {name='Hag. Sabots +1', augments={'Phys. dmg. taken -3%', 'Pet: "Mag.Atk.Bns."+23'}}
- -- hagondes_feet_macc = {name='Hagondes Sabots', augments={'Phys. dmg. taken -3%', 'Pet: Mag. Acc.+23'}}
- sets.precast = {}
- sets.midcast = {}
- sets.aftercast = {}
- sets.avatar = {}
- ------------------------------------------
- -- 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="Artsieq Jubbah", --21/29/29
- hands="Otomi Gloves", --11/38/19
- lring="K'ayres Ring",
- rring="Rajas Ring", --5/0/0
- back="Potentia Cape", --6/0/6
- waist="Goading Belt",
- legs="Hagondes Pants +1", --25/24/34
- feet="Hagondes Sabots"} --10/24/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, {
- hands="Yaoyotl Gloves", --6/33/19
- lring="Sprial Ring", --5/0/5
- waist="Wanion Belt"}) --8/(5)/8
- sets.precast.WSMnd = {
- ammo="Mana Ampulla", --0/0/4
- head="Sukeroku Hachi.", --25/20/20
- body="Artsieq Jubbah", --21/29/29
- hands="Otomi Gloves", --11/38/19
- lring="Sprial Ring", --5/0/5
- back="Pahtli Cape", --6/0/6
- waist="Wanion Belt", --8/(5)/8
- legs="Hagondes Pants +1", --25/24/34
- feet="Hagondes Sabots"} --10/24/22
- -------------------------------------------
- -- Fastcast sets:
- -------------------------------------------
- sets.precast.Fastcast = {
- ammo="Impatiens",
- head="Nahtirah Hat",
- neck="Twilight Torque",
- lear="Loquac. Earring",
- rear="Enchntr. Earring +1",
- body="Artsieq Jubbah",
- hands="Hagondes Cuffs",
- lring="Dark Ring",
- rring="Defending Ring",
- back="Shadow Mantle",
- waist="Goading Belt",
- legs="Artsieq Hose",
- feet="Augur's Gaiters"}
- 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, {
- main="Tamaxchi",
- sub="Genbu's Shield",
- body="Heka's Kalasiris",
- back="Pahtli Cape"})
- sets.precast.HasteElemental = set_combine(sets.precast.Fastcast, {
- main="Boonwell Staff",
- sub="Zuuxowu Grip",
- neck="Stoicheion Medal"})
- sets.precast.HasteSummoning = set_combine(sets.precast.Fastcast, {
- hands="Carbuncle's Cuffs"})
- -------------------------------------------
- -- Spell (precast) Avatar-related sets:
- -------------------------------------------
- sets.precast['Blood Pact'] = {
- ammo="Seraphicaller",
- head="Con. Horn +1",
- lear="Caller's Earring",
- body="Glyphic Doublet",
- hands="Glyphic Bracers +1",
- back="Conveyance Cape",
- legs="Glyphic Spats",
- feet="Glyph. Pigaches +1"} -- delay I: -8-1-6-5=-20 (15 max); delay II: -5-1-1=-7
- -------------------------------------------
- -- Spell (midcast) sets:
- -------------------------------------------
- sets.midcast['Elemental Magic'] = {
- main="Boonwell Staff",
- sub="Zuuxowu Grip",
- ammo="Dosis Tathlum",
- head="Hagondes Hat +1",
- neck="Eddy Necklace",
- lear="Friomisi Earring",
- rear="Crematio Earring",
- body="Artsieq Jubbah",
- hands="Otomi Gloves",
- lring="Strendu Ring",
- rring="Acumen Ring",
- back="Toro Cape",
- waist="Sekhmet Corset",
- legs="Hagondes Pants +1",
- feet="Umbani Boots"}
- sets.midcast.Stone = set_combine(sets.midcast['Elemental Magic'], {
- neck="Quanpur Necklace"})
- sets.midcast['Dark Magic'] = set_combine(sets.midcast['Elemental Magic'], {
- ammo="Ombre Tathlum +1",
- legs="Portent Pants"})
- sets.midcast['Enfeebling Magic'] = {
- main="Boonwell Staff",
- sub="Zuuxowu Grip",
- ammo="Ombre Tathlum +1",
- head="Buremte Hat",
- neck="Eddy Necklace",
- lear="Gifted Earring",
- rear="Enchntr. Earring +1",
- body="Artsieq Jubbah",
- hands="Lurid Mitts",
- lring="Globidonta Ring",
- rring="Strendu Ring",
- back="Shadow Mantle",
- waist="Yamabuki-no-Obi",
- legs="Portent Pants",
- feet="Rubeus Boots"}
- sets.midcast['Enhancing Magic'] = {
- main="Bolelabunga",
- sub="Genbu's Shield",
- ammo="Impatiens",
- head="Umuthi Hat",
- neck="Twilight Torque",
- lear="Gifted Earring",
- rear="Enchntr. Earring +1",
- body="Artsieq Jubbah",
- hands="Augur's Gloves",
- lring="Globidonta Ring",
- rring="Sirona's Ring",
- back="Pahtli Cape",
- 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'] = {
- --55% potency
- -- commented stats are potency/skill/mnd (ignoring vitality)
- main="Tamaxchi", --22/0/5
- sub="Genbu's Shield", --4/0/0
- ammo="Mana Ampulla", --0/0/3
- head="Nahtirah Hat", --0/0/24
- neck="Phalaina Locket", --4/0/3
- lear="Gifted Earring",
- rear="Enchntr. Earring +1",
- body="Heka's Kalasiris", --15/0/17
- hands="Hagondes Cuffs", --0/0/26
- lring="Sirona's Ring", --0/10/3
- rring="Ephedra Ring", --0/7/0
- back="Oretania's Cape", --4/0/0
- waist="Korin Obi", --0/0/5
- legs="Nares Trews", --7/0/14
- feet="Rubeus Boots"} --0/10/0
- sets.midcast.ProtectShell = set_combine(sets.midcast['Healing Magic'], {
- lring="Sheltered Ring"})
- sets.midcast.Cursna = set_combine(sets.precast.Fastcast, {
- lring="Sirona's Ring", --0/10/3
- rring="Ephedra Ring", --0/7/0
- feet="Rubeus Boots"}) --0/10/0
- sets.midcast['Divine Magic'] = set_combine(sets.midcast['Healing Magic'], {
- ammo="Ombre Tathlum +1",
- lring="Globidonta Ring"})
- sets.midcast['Summoning Magic'] = set_combine(sets.precast.HasteSummoning, {
- lring="Prolix Ring",
- waist="Witful Belt"})
- -------------------------------------------
- -- Spell (aftercast) Avatar-related sets:
- -- These is the gear for Bloodpacts.
- -- 'Aftercast' ensures you're standing in right gear after you initiate BP, and continue wearing gear as avatar readies BP
- -- The pet_aftercast rules will return you to -perp idle gear after the pet does the BP.
- -------------------------------------------
- sets.aftercast.physical = {
- main="Uffrat +1",
- sub="Vox Grip",
- ammo="Seraphicaller",
- head="Con. Horn +1",
- neck="Caller's Pendant",
- lear="Gifted Earring",
- rear="Smn. Earring",
- body="Con. Doublet +1",
- hands="Glyphic Bracers +1",
- lring="Evoker's Ring",
- rring="Globidonta Ring",
- back="Samanisi Cape",
- waist="Mujin Obi",
- legs="Caller's Spats +2",
- feet="Con. Pigaches +1"}
- sets.aftercast.hybrid = set_combine(sets.aftercast.physical, {
- neck="Eidolon Pendant",
- waist="Caller's Sash"})
- sets.aftercast.magical = set_combine(sets.aftercast.physical, {
- head="Glyphic Horn +1",
- neck="Eidolon Pendant",
- rring="Globidonta Ring",
- waist="Caller's Sash",
- feet="Hagondes Sabots +1"})
- sets.aftercast.magical.ifrit = set_combine(sets.aftercast.magical, {
- rring="Fervor Ring"})
- sets.aftercast.magical.garuda = set_combine(sets.aftercast.magical, {
- head="Chimera Hairpin",
- back="Kaikias' Cape"})
- sets.aftercast.debuff = set_combine(sets.aftercast.physical, {
- main="Yaskomo's Pole",
- hands="Regimen Mittens",
- legs="Glyphic Spats",
- feet="Caller's Pigaches +2"})
- sets.aftercast.buff = set_combine(sets.aftercast.physical, {
- main="Soulscourge", --7
- head="Con. Horn +1", --15
- body="Call. Doublet +2", --10
- back="Conveyance Cape", --8
- waist="Diabolos's Rope",
- feet="Rubeus Boots"})
- -- smn magic skill by gear: 7+3+15+9+3+10+18+10+5+8+6+10=104, plus lvl 99 cap of 417=521
- sets.aftercast.other = set_combine(sets.aftercast.physical, {})
- -------------------------------------------
- -- Job Ability sets
- -------------------------------------------
- sets.precast.elemental_siphon = {
- main="Soulscourge",
- sub="Vox Grip",
- ammo="Seraphicaller",
- head="Con. Horn +1",
- neck="Caller's Pendant",
- lear="Gifted Earring",
- rear="Smn. Earring",
- body="Call. Doublet +2",
- hands="Glyphic Bracers +1",
- lring="Evoker's Ring",
- rring="Globidonta Ring",
- back="Conveyance Cape",
- waist="Mujin Obi",
- legs="Caller's Spats +2",
- feet="Caller's Pgch. +2"}
- sets.precast.elemental_siphon.weather = set_combine(sets.precast.elemental_siphon, {
- main="Chatoyant Staff"})
- sets.precast.elemental_siphon.day = set_combine(sets.precast.elemental_siphon, {
- lring="Zodiac Ring"})
- sets.precast['Astral Flow'] = {head="Glyphic Horn +1"}
- sets.precast['Mana Cede'] = {hands="Call. Bracers +2"}
- -------------------------------------------
- -- Idle sets for when Avatar is present, depending on avatar's mode, mixtures of -perp and 'mode' gear
- -------------------------------------------
- sets.avatar.normal = {
- main="Fay Crozier", -- -3
- sub="Vox Grip",
- ammo="Seraphicaller",
- head="Glyphic Horn +1", -- -4
- neck="Caller's Pendant",
- lear="Moonshade Earring",
- rear="Smn. Earring",
- body="Glyphic Doublet", -- -4
- hands="Caller's Bracers +2",
- lring="Evoker's Ring", -- -1
- rring="Globidonta Ring",
- back="Pahtli Cape",
- waist="Mujin Obi",
- legs="Nares Trews",
- feet="Con. Pigaches +1"} -- -4
- sets.avatar.tank = set_combine(sets.avatar.normal, {
- head="Con. Horn +1",
- hands="Regimen Mittens",
- legs="Con. Spats +1"})
- sets.avatar.attack = set_combine(sets.avatar.normal, {
- hands="Glyphic Bracers +1",
- waist="Mujin Obi",
- legs="Con. Spats +1"})
- sets.avatar.favor = set_combine(sets.avatar.normal, {
- head="Caller's Horn +2"})
- sets.avatar.alexander = {
- main="Soulscourge", --7
- sub="Vox Grip", --3
- ammo="Seraphicaller",
- head="Con. Horn +1", --15
- neck="Caller's Pendant", --9
- lear="Gifted Earring",
- rear="Smn. Earring", --3
- body="Call. Doublet +2", --10
- hands="Glyphic Bracers +1", --18
- lring="Evoker's Ring", --10
- rring="Globidonta Ring", --5
- back="Conveyance Cape", --8
- waist="Diabolos's Rope",
- legs="Caller's Spats +2", --6
- feet="Rubeus Boots"} --10
- -- smn magic skill by gear: 104, plus lvl 99 cap of 417=521
- sets.avatar.odin = sets.aftercast.magical
- sets.avatar.atomos = sets.aftercast.debuff
- sets.spirit = {
- main="Soulscourge", --7
- sub="Vox Grip", --3
- ammo="Seraphicaller",
- head="Con. Horn +1", --15
- neck="Caller's Pendant", --9
- lear="Gifted Earring",
- rear="Smn. Earring", --3
- body="Call. Doublet +2", --10
- hands="Glyphic Bracers +1", --18
- lring="Evoker's Ring", --10
- rring="Globidonta Ring", --5
- back="Conveyance Cape", --8
- waist="Diabolos's Rope",
- legs="Caller's Spats +2", --6
- feet="Rubeus Boots"} --10
- sets.spirit.light = set_combine(sets.spirit, {
- lring="Sheltered Ring"})
- sets.idle = {
- main="Bolelabunga",
- sub="Genbu's Shield",
- ammo="Mana Ampulla",
- head="Con. Horn +1",
- neck="Twilight Torque",
- lear="Gifted Earring",
- rear="Enchntr. Earring +1",
- body="Artsieq Jubbah",
- hands="Glyphic Bracers +1",
- -- hands="Serpentes Cuffs",
- lring="Dark Ring",
- rring="Defending Ring",
- back="Pahtli Cape",
- waist="Slipor Sash",
- legs="Nares Trews",
- feet="Umbani Boots"}
- sets.slept = {
- neck="Sacrifice Torque"}
- sets.speed = {
- feet="Herald's Gaiters"}
- end
- bp_physical = S{'Punch', 'Rock Throw', 'Barracuda Dive', 'Claw', 'Axe Kick', 'Shock Strike', 'Camisado', 'Regal Scratch', 'Poison Nails', 'Moonlit Charge', 'Crescent Fang', 'Rock Buster', 'Tail Whip', 'Double Punch', 'Megalith Throw', 'Double Slap', 'Eclipse Bite', 'Mountain Buster', 'Spinning Dive', 'Predator Claws', 'Rush', 'Chaotic Strike', 'Crag Throw', 'Volt Strike', 'Blindside', 'Regal Gash'}
- bp_hybrid = S{'Burning Strike', 'Flaming Crush'}
- bp_magical = S{'Inferno', 'Earthen Fury', 'Tidal Wave', 'Aerial Blast', 'Diamond Dust', 'Judgment Bolt', 'Searing Light', 'Howling Moon', 'Ruinous Omen', 'Fire II', 'Stone II', 'Water II', 'Aero II', 'Blizzard II', 'Thunder II', 'Thunderspark', 'Somnolence', 'Meteorite', 'Fire IV', 'Stone IV', 'Water IV', 'Aero IV', 'Blizzard IV', 'Thunder IV', 'Nether Blast', 'Meteor Strike', 'Geocrush', 'Grand Fall', 'Wind Blade', 'Heavenly Strike', 'Thunderstorm', 'Level ? Holy', 'Holy Mist', 'Lunar Bay', 'Night Terror', 'Conflagration Strike'}
- bp_debuff = S{'Lunar Cry', 'Mewing Lullaby', 'Nightmare', 'Lunar Roar', 'Slowga', 'Ultimate Terror', 'Sleepga', 'Eerie Eye', 'Tidal Roar', 'Diamond Storm', 'Shock Squall', 'Pavor Nocturnus', 'Impact'}
- bp_buff = S{'Shining Ruby', 'Frost Armor', 'Rolling Thunder', 'Crimson Howl', 'Lightning Armor', 'Ecliptic Growl', 'Hastega', 'Noctoshield', 'Ecliptic Howl', 'Dream Shroud', 'Earthen Armor', 'Fleet Wind', 'Inferno Howl', 'Soothing Ruby', 'Heavenward Howl', 'Soothing Current', 'Hastega II', 'Crystal Blessing'}
- bp_other = S{'Healing Ruby', 'Raise II', 'Aerial Armor', 'Reraise II', 'Whispering Wind', 'Glittering Ruby', 'Earthen Ward', 'Spring Water', 'Healing Ruby II'}
- aftermath_timers = {['Aftermath: Lv.1']=270, ['Aftermath: Lv.2']=270, ['Aftermath: Lv.3']=180}
- spirit_element = {Fire='Fire Spirit', Earth='Earth Spirit', Water='Water Spirit', Wind='Air Spirit', Ice='Ice Spirit', Lightning='Thunder Spirit', Light='Light Spirit', Dark='Dark Spirit'}
- spirit_conflict = {Fire='Ice', Earth='Lightning', Water='Fire', Wind='Earth', Ice='Wind', Lightning='Water', Light='Dark', Dark='Light'}
- avatar_mode = 'normal'
- bp_repeat = true
- tp_lock = false
- function pet_change(pet, gain)
- if gain then
- if pet.name == 'Odin' then
- equip(sets.avatar.odin)
- elseif pet.name == 'Alexander' then
- equip(sets.avatar.alexander)
- elseif pet.name == 'Atomos' then
- equip(sets.avatar.atomos)
- elseif pet.name:match('Light') then
- equip(sets.spirit.light)
- elseif pet.name:match('Spirit') then
- equip(sets.spirit)
- elseif buffactive["Avatar's Favor"] then
- equip(sets.avatar.favor)
- else
- equip(sets.avatar[avatar_mode])
- end
- disable('main', 'ammo')
- else
- if not tp_lock then
- enable('main', 'ammo')
- end
- equip(sets.idle)
- end
- end
- function buff_change(name, gain)
- if pet.isvalid and name == "Avatar's Favor" then
- equip(gain and sets.avatar.favor or sets.avatar[avatar_mode])
- elseif pet.isvalid and name == 'sleep' then
- if gain then
- windower.ffxi.cancel_buff(37)
- equip(sets.slept)
- else
- pet_change(pet, pet.isvalid)
- end
- elseif aftermath_timers[name] then
- if gain then
- send_command('timers c "Aftermath" %s':format(aftermath_timers[name]))
- else
- send_command('timers d "Aftermath"')
- end
- end
- end
- function status_change(new, old)
- if new == 'Idle' or new == 'Resting' then
- pet_change(pet, pet.isvalid)
- end
- 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 spell.action_type == 'Magic' or spell.type == 'Ninjutsu' then
- if spell.skill == 'Elemental Magic' then
- if spell.cast_time < 9 then
- if spell.english:startswith('Stone') then
- equip(sets.midcast.Stone,{head="Buremte Hat"})
- else equip(sets.midcast.ElementalLow)
- end
- if spell.element == world.weather_element or spell.element == world.day_element then
- equip(sets.midcast.weather)
- end
- elseif spell.name == 'Impact' then
- equip(sets.precast.HasteElemental,{body="Twilight Cloak"})
- else equip(sets.precast.HasteElemental)
- end
- elseif spell.skill == 'Enhancing Magic' then
- if spell.name == 'Stoneskin' then
- windower.ffxi.cancel_buff(37)
- equip(sets.precast.HasteStoneskin)
- elseif spell.name == 'Sneak' then
- windower.ffxi.cancel_buff(71)
- equip(sets.precast.HasteEnhancing)
- 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)
- elseif spell.cast_time < 9 then
- equip(sets.midcast.CureSingle)
- else equip(sets.precast.HasteHealing)
- end
- else equip(sets.precast.HasteHealing)
- end
- elseif spell.type == 'SummonerPact' then
- if spell.name == 'Dark Spirit' then
- if world.weather_element == 'Dark' then
- equip(sets.precast.HasteSummoning)
- elseif world.weather_element ~= 'None' and spirit_conflict[world.day_element] ~= world.weather_element then
- cancel_spell()
- send_command('input /ma "%s" <me>':format(spirit_element[world.weather_element]))
- elseif world.day_element == 'Dark' then
- equip(sets.precast.HasteSummoning)
- else
- cancel_spell()
- send_command('input /ma "%s" <me>':format(spirit_element[world.day_element]))
- end
- elseif (spell.name == 'Alexander' or spell.name == 'Odin') and not pet.isvalid and not buffactive['Astral Flow'] and windower.ffxi.get_ability_recasts()[0] == 0 then
- cast_delay(1)
- send_command('input /ja "Astral Flow" <me>')
- else
- equip(sets.precast.HasteSummoning)
- 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 'Cataclysm' then
- equip(sets.precast.WSStrInt)
- elseif spell.english == 'Garland of Bliss' then
- equip(sets.precast.WSMnd)
- else equip(sets.precast.WSStr)
- end
- elseif (spell.type == 'BloodPactRage' or spell.type == 'BloodPactWard') and not buffactive['Astral Conduit'] then
- equip(sets.precast['Blood Pact'])
- elseif spell.name == 'Elemental Siphon' then
- enable('main', 'sub', 'ranged', 'ammo')
- equip(sets.precast.elemental_siphon)
- if pet.element == world.weather_element then
- equip(sets.precast.elemental_siphon.weather)
- end
- if pet.element ~= 'Dark' and pet.element ~= 'Light' and pet.element == world.day_element then
- equip(sets.precast.elemental_siphon.day)
- 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.cast_time < 9 then
- if spell.english:startswith('Stone') then
- equip(sets.midcast.Stone,{head="Buremte Hat"})
- else equip(sets.midcast.ElementalLow)
- end
- elseif spell.english:startswith('Stone') then
- equip(sets.midcast.Stone)
- elseif spell.english == 'Impact' then
- equip(sets.midcast.Impact,{body="Twilight Cloak"})
- else equip(sets.midcast['Elemental Magic'])
- end
- if spell.element == world.weather_element or spell.element == world.day_element then
- equip(sets.obi[spell.element])
- 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 (spell.type == 'BloodPactRage' or spell.type == 'BloodPactWard') and not spell.interrupted then
- if bp_physical:contains(spell.name) then
- equip(sets.aftercast.physical)
- elseif bp_hybrid:contains(spell.name) then
- equip(sets.aftercast.hybrid)
- elseif bp_magical:contains(spell.name) then
- if pet.name == 'Ifrit' then
- equip(sets.aftercast.magical.ifrit)
- elseif pet.name == 'Garuda' then
- equip(sets.aftercast.magical.garuda)
- else equip(sets.aftercast.magical)
- end
- elseif bp_debuff:contains(spell.name) then
- equip(sets.aftercast.debuff)
- elseif bp_buff:contains(spell.name) then
- equip(sets.aftercast.buff)
- elseif bp_other:contains(spell.name) then
- equip(sets.aftercast.other)
- end
- elseif spell.type == 'SummonerPact' and not spell.interrupted then
- pet_change(spell, true)
- elseif spell.name == 'Release' and not spell.interrupted then
- pet_change(spell, false)
- else
- pet_change(pet, pet.isvalid)
- if spell.name == 'Elemental Siphon' then
- disable('main', 'ammo')
- if tp_lock then
- disable('sub', 'ranged')
- end
- end
- end
- end
- function pet_aftercast(spell)
- if bp_repeat and spell.type == 'BloodPactRage' and spell.name ~= 'Perfect Defense' and spell.name ~= 'Zantetsuken' and windower.ffxi.get_ability_recasts()[173] == 0 and not spell.interrupted then
- send_command('input /pet "%s" <t>':format(spell.name))
- else
- pet_change(pet, pet.isvalid)
- end
- end
- function self_command(command)
- if command == 'toggle TP set' then
- if avatar_mode == 'normal' then
- avatar_mode = 'tank'
- pet_change(pet, pet.isvalid)
- send_command('@input /echo Avatar Tank SET')
- elseif avatar_mode == 'tank' then
- avatar_mode = 'attack'
- pet_change(pet, pet.isvalid)
- send_command('@input /echo Avatar Attack SET')
- elseif avatar_mode == 'attack' then
- avatar_mode = 'normal'
- pet_change(pet, pet.isvalid)
- send_command('@input /echo Avatar Normal SET')
- end
- end
- if command:lower() == 'lock' then
- tp_lock = not tp_lock
- if tp_lock then
- disable('main', 'sub', 'ranged', 'ammo')
- else
- enable('sub', 'ranged')
- if not pet.isvalid then
- enable('main', 'ammo')
- end
- end
- end
- add_to_chat(207, '---- avatar mode: \31\200%s\30\1, bp repeat: %s, tp lock: %s ----':format(avatar_mode, bp_repeat and '\31\204on\30\1' or '\31\167off\30\1', tp_lock and '\31\204on\30\1' or '\31\167off\30\1'))
- end
Advertisement
Add Comment
Please, Sign In to add comment