Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ~~~~~~~~~~~~~~ Red Mage Lua ~~~~~~~~~~~~~~ ~by Pergatory~ https://pastebin.com/u/pergatory
- -- //gs c tp <TPMode> - Determines the set used after casting when engaged to a mosnter.
- -- //gs c idle <IdleMode> - Determines the set used after casting.
- -- Additional Bindings:
- -- F9 - Toggles between a subset of TP Modes (TP > Hybrid > HybridEnspell)
- -- F10 - Toggles between a subset of Idle Modes (Kite > Refresh > Regain)
- -- F11 - Panacea
- -- F12 - Holy Water
- -- Ctrl+F9 - Weapon Lock to prevent TP loss
- -- //gs c naeg - Equip Naegling & Gleti's Knife
- -- //gs c tauret - Equip Tauret & Bunzi's Rod
- -- //gs c max - Equip Maxentius & Ammurapi Shield
- -- //gs c crocea - Equip Crocea & Ammurapi Shield
- -- Ctrl+F10 - Treasure Hunter toggle
- function file_unload()
- send_command('unbind f9')
- send_command('unbind f10')
- send_command('unbind f11')
- send_command('unbind f12')
- send_command('unbind ^f9')
- send_command('unbind ^f10')
- send_command('unbind ^f11')
- send_command('unbind ^f12')
- send_command('unbind !f9')
- send_command('unbind !f10')
- send_command('unbind !f11')
- enable("main","sub","range","ammo","head","neck","ear1","ear2","body","hands","ring1","ring2","back","waist","legs","feet")
- end
- function get_sets()
- send_command('bind f9 gs c ToggleTP')
- send_command('bind f10 gs c ToggleIdle')
- send_command('bind f11 input /item "Panacea" <me>')
- send_command('bind f12 input /item "Holy Water" <me>')
- send_command('bind ^f9 gs c MeleeMode')
- send_command('bind ^f10 gs c TH') -- Treasure Hunter toggle. Only equips for spells in the "THSpells" list below.
- send_command('bind ^f11 gs c CureObjective') -- Use to toggle high-HP cure build to complete 500HP cure objectives in Omen
- send_command('bind ^f12 input /item "Remedy" <me>')
- send_command('bind !f9 gs c LockEffect') -- Used to lock in enfeebling potency gear. I use this for Chainspell Gravity on Aita.
- send_command('bind !f10 gs c MB') -- Magic Burst Mode
- send_command('bind !f11 gs c LowDmg') -- Low Dmg toggle for stuff like Omen objectives
- StartLockStyle = '78'
- IdleMode = 'Kite'
- TPMode = 'Hybrid'
- MeleeMode = false
- AccMode = false
- MagicBurst = true
- OccultMode = false
- TreasureHunter = false
- CureObjective = false
- LowDmg = false
- LockEffect = false
- THSpells = S{"Dia","Dia II","Diaga","Dispelga"} -- If you want Treasure Hunter gear to swap for a spell/ability, add it here.
- IdleModeCommands = {'Refresh','DT','Kite','MDB','Regain'}
- TPModeCommands = {'TP','Hybrid','DT','KC','Enspell','HybridEnspell','Odin'}
- -- ===================================================================================================================
- -- Sets
- -- ===================================================================================================================
- sets.precast = {}
- -- Main fast cast set
- sets.precast.FC = {
- ammo="Impatiens",
- head="Bunzi's Hat", -- +10
- neck="Loricate Torque +1",
- ear1="Malignance Earring", -- +4
- ear2="Lethargy Earring +2", -- +8
- body="Vitiation Tabard +3", -- +15
- hands="Leyline Gloves", -- +8
- ring1="Lebeche Ring",
- ring2="Kishar Ring", -- +4
- back="Perimede Cape",
- waist="Witful Belt", -- +3
- legs={ name="Kaykaus Tights +1", augments={'INT+12','"Mag.Atk.Bns."+20','Enmity-6',}}, -- +7
- feet="Carmine Greaves +1" -- +8
- }
- sets.precast['Impact'] = set_combine(sets.precast.FC, { -- Make sure to leave the head empty --
- head=empty,
- body="Crepuscular Cloak"
- })
- sets.precast["Dispelga"] = set_combine(sets.precast.FC, {
- main="Daybreak",
- sub="Ammurapi Shield"
- })
- sets.midcast = {}
- -- Cure potency build.
- sets.midcast.Cure = {
- main="Daybreak",
- sub="Genmei Shield",
- ammo="Pemphredo Tathlum",
- head="Kaykaus Mitra +1",
- neck="Nodens Gorget",
- ear1="Meili Earring",
- ear2="Beatific Earring",
- body="Adamantite Armor",
- hands="Kaykaus Cuffs +1",
- ring1="Defending Ring",
- ring2="Naji's Loop",
- back={ name="Moonlight Cape", priority=1 },
- waist="Witful Belt",
- legs="Kaykaus Tights +1",
- feet="Kaykaus Boots +1"
- }
- sets.midcast.Cure.Weather = set_combine(sets.midcast.Cure, {
- main="Chatoyant Staff",
- sub="Clerisy Strap +1",
- waist="Hachirin-no-Obi",
- })
- -- Cure set used for 500HP Cure Objective. Make sure it has 500HP more than your "aftercast.CureObjective" set.
- sets.midcast.CureObjective = set_combine(sets.midcast.Cure, {
- ear1="Tuisto Earring",
- ear2="Odnowa Earring +1",
- back="Moonlight Cape"
- })
- -- Enhancing set
- sets.midcast.Enhancing = {
- main="Pukulatmuj +1",
- sub="Forfend +1",
- ammo="Pemphredo Tathlum",
- head="Befouled Crown",
- neck="Incanter's Torque",
- ear1="Mimir Earring",
- ear2="Andoaa Earring",
- body="Vitiation Tabard +3",
- hands="Vitiation Gloves +3",
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- ring2={name="Stikini Ring +1", bag="wardrobe4"},
- back="Ghostfyre Cape",
- waist="Olympus Sash",
- legs="Atrophy Tights +3",
- feet="Lethargy Houseaux +3"
- }
- sets.midcast.Enhancing.Self = set_combine(sets.midcast.Enhancing, {
- })
- sets.midcast.EnhancingDuration = set_combine(sets.midcast.Enhancing, {
- sub="Ammurapi Shield",
- ammo="Sapience Orb",
- head="Lethargy Chappel +3",
- neck="Duelist's Torque +2",
- ear2="Lethargy Earring +2",
- body="Lethargy Sayon +3",
- hands="Atrophy Gloves +3",
- waist="Embla Sash",
- legs="Lethargy Fuseau +3",
- })
- sets.midcast.EnhancingDuration.Self = set_combine(sets.midcast.EnhancingDuration, {
- head={ name="Telchine Cap", augments={'Mag. Evasion+24','"Conserve MP"+4','Enh. Mag. eff. dur. +10',}},
- body="Vitiation Tabard +3",
- hands="Atrophy Gloves +3",
- legs={ name="Telchine Braconi", augments={'Mag. Evasion+25','"Conserve MP"+4','Enh. Mag. eff. dur. +10',}},
- })
- -- Make sure this set has 500 skill as well.
- sets.midcast.BarElement = set_combine(sets.midcast.EnhancingDuration, {
- })
- sets.midcast.BarAilment = set_combine(sets.midcast.EnhancingDuration, {
- neck="Sroda Necklace"
- })
- sets.midcast.Regen = set_combine(sets.midcast.EnhancingDuration, {
- main="Bolelabunga",
- sub="Ammurapi Shield"
- })
- -- Make sure this set has 500 skill as well.
- sets.midcast.Phalanx = set_combine(sets.midcast.EnhancingDuration, {
- })
- sets.midcast.Phalanx.Self = set_combine(sets.midcast.Phalanx, {
- body={ name="Taeon Tabard", augments={'Mag. Evasion+20','Spell interruption rate down -10%','Phalanx +3',}},
- hands={ name="Taeon Gloves", augments={'Mag. Evasion+20','Enemy crit. hit rate -3','Phalanx +3',}},
- back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},
- feet={ name="Taeon Boots", augments={'Mag. Evasion+20','Spell interruption rate down -10%','Phalanx +3',}}
- })
- sets.midcast.Stoneskin = set_combine(sets.midcast.EnhancingDuration, {
- neck="Nodens Gorget",
- ear2="Earthcry Earring",
- waist="Siegel Sash"
- })
- sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
- head="Amalric Coif +1",
- body="Atrophy Tabard +3",
- })
- sets.midcast.Refresh.Self = set_combine(sets.midcast.EnhancingDuration.Self, {
- head="Amalric Coif +1",
- body="Atrophy Tabard +3",
- waist="Gishdubar Sash"
- })
- sets.midcast.Aquaveil = set_combine(sets.midcast.EnhancingDuration, {
- main="Vadose Rod",
- head="Amalric Coif +1",
- hands="Regal Cuffs",
- waist="Emphatikos Rope",
- --legs="Shedir Seraweels"
- })
- sets.midcast.Enfeebling = {
- main="Contemplator +1",
- sub="Enki Strap",
- ammo="Regal Gem",
- head="Vitiation Chapeau +3",
- neck="Duelist's Torque +2",
- ear1="Snotra Earring",
- ear2="Lethargy Earring +2",
- body="Lethargy Sayon +3",
- --body="Atrophy Tabard +3",
- hands="Lethargy Gantherots +3",
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- ring2="Kishar Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},
- waist="Obstinate Sash",
- legs={ name="Chironic Hose", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','Haste+1','MND+10','Mag. Acc.+7','"Mag.Atk.Bns."+11',}},
- feet="Vitiation Boots +3"
- }
- sets.midcast.EnfeeblingMND = set_combine(sets.midcast.Enfeebling, {
- main="Daybreak",
- sub="Ammurapi Shield",
- waist="Luminary Sash",
- ring2="Metamorph Ring +1",
- })
- sets.midcast.EnfeeblingINT = set_combine(sets.midcast.Enfeebling, {
- main="Naegling",
- sub="Ammurapi Shield",
- ring1="Kishar Ring",
- })
- -- Set for Gravity
- sets.midcast.EnfeeblingPotency = set_combine(sets.midcast.Enfeebling, {
- body="Lethargy Sayon +3",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10','Phys. dmg. taken-10%',}},
- })
- -- Put Saboteur+ gear here, leave other slots empty. This overrides your normal enfeebling gear.
- sets.midcast.Enfeebling.Saboteur = {
- hands="Lethargy Gantherots +3"
- }
- sets.midcast.EnfeeblingDuration = set_combine(sets.midcast.Enfeebling, {
- hands="Regal Cuffs",
- })
- sets.midcast.Cursna = {
- main="Daybreak",
- sub="Genmei Shield",
- ammo="Sapience Orb",
- head={ name="Vanya Hood", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
- neck="Debilis Medallion",
- ear1="Meili Earring",
- ear2="Beatific Earring",
- --body="Ebers Bliaut +3",
- hands="Hieros Mittens",
- ring1="Menelaus's Ring",
- ring2="Haoma's Ring",
- back="Tempered Cape +1",
- waist="Bishop's Sash",
- legs="Carmine Cuisses +1",
- feet={ name="Vanya Clogs", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}}
- }
- sets.midcast.Elemental = {
- main="Bunzi's Rod",
- sub="Ammurapi Shield",
- ammo="Pemphredo Tathlum",
- head="Lethargy Chappel +3",
- neck="Sibyl Scarf",
- ear1="Malignance Earring",
- ear2="Regal Earring",
- body="Lethargy Sayon +3",
- hands="Bunzi's Gloves",
- ring1="Freke Ring",
- ring2="Metamorph Ring +1",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10','Phys. dmg. taken-10%',}},
- waist="Acuity Belt +1",
- legs="Lethargy Fuseau +3",
- feet="Lethargy Houseaux +3",
- }
- sets.midcast.Elemental.Weather = set_combine(sets.midcast.Elemental, {
- waist="Hachirin-no-Obi"
- })
- sets.midcast.Elemental.MagicBurst = set_combine(sets.midcast.Elemental, {
- head="Bunzi's Hat",
- ring1="Mujin Band",
- feet="Bunzi's Sabots",
- })
- sets.midcast.Elemental.MagicBurst.Weather = set_combine(sets.midcast.Elemental.MagicBurst, {
- waist="Hachirin-no-Obi"
- })
- sets.midcast.Elemental.Occult = set_combine(sets.midcast.Elemental, {
- neck="Combatant's Torque",
- ear1="Telos Earring",
- ear2="Crepuscular Earring",
- hands={ name="Merlinic Dastanas", augments={'"Mag.Atk.Bns."+17','"Occult Acumen"+11','INT+1','Mag. Acc.+11',}},
- ring1="Crepuscular Ring",
- ring2={name="Chirich Ring +1", bag="wardrobe4"},
- waist="Oneiros Rope",
- legs="Perdition Slops",
- feet={ name="Merlinic Crackows", augments={'Accuracy+4','"Occult Acumen"+11','INT+4','Mag. Acc.+15','"Mag.Atk.Bns."+1',}}
- })
- sets.midcast.Elemental.Occult.Weather = set_combine(sets.midcast.Elemental.Occult, {
- waist="Hachirin-no-Obi"
- })
- sets.midcast["Impact"] = set_combine(sets.midcast.Elemental, { -- Make sure to leave the head empty --
- head=empty,
- neck="Duelist's Torque +2",
- ear2="Snotra Earring",
- body="Crepuscular Cloak",
- hands="Lethargy Gantherots +3",
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- back="Aurist's Cape +1",
- waist="Acuity Belt +1",
- })
- sets.midcast["Impact"].Occult = set_combine(sets.midcast["Impact"], {
- neck="Combatant's Torque",
- ear1="Telos Earring",
- ear2="Crepuscular Earring",
- hands={ name="Merlinic Dastanas", augments={'"Mag.Atk.Bns."+17','"Occult Acumen"+11','INT+1','Mag. Acc.+11',}},
- ring1="Crepuscular Ring",
- ring2={name="Chirich Ring +1", bag="wardrobe4"},
- waist="Oneiros Rope",
- legs="Perdition Slops",
- feet={ name="Merlinic Crackows", augments={'Accuracy+4','"Occult Acumen"+11','INT+4','Mag. Acc.+15','"Mag.Atk.Bns."+1',}}
- })
- sets.midcast["Protect V"] = set_combine(sets.midcast.EnhancingDuration, {
- })
- sets.midcast["Protect V"].Self = set_combine(sets.midcast["Protect V"], {
- ring2="Sheltered Ring"
- })
- sets.midcast["Shell V"] = set_combine(sets.midcast.EnhancingDuration, {
- })
- sets.midcast["Shell V"].Self = set_combine(sets.midcast["Shell V"], {
- ring2="Sheltered Ring"
- })
- sets.midcast["Dispelga"] = set_combine(sets.midcast.EnfeeblingINT, {
- main="Daybreak",
- sub="Ammurapi Shield"
- })
- sets.midcast["Absorb-TP"] = set_combine(sets.precast.FC, {
- ammo="Pemphredo Tathlum",
- head="Bunzi's Hat",
- neck="Erra Pendant",
- body="Vitiation Tabard +3",
- hands="Lethargy Gantherots +3",
- ring1="Metamorph Ring +1",
- ring2="Kishar Ring",
- back="Aurist's Cape +1",
- waist="Acuity Belt +1",
- legs="Lethargy Fuseau +3",
- feet="Lethargy Houseaux +3",
- })
- sets.midcast["Aspir"] = {
- head="Bunzi's Hat",
- neck="Erra Pendant",
- ear1="Mani Earring",
- ear2="Regal Earring",
- body={ name="Merlinic Jubbah", augments={'Mag. Acc.+30','"Drain" and "Aspir" potency +11','INT+2','"Mag.Atk.Bns."+11',}},
- hands="Lethargy Gantherots +3",
- ring1="Archon Ring",
- ring2="Evanescence Ring",
- back="Aurist's Cape +1",
- waist="Fucho-no-Obi",
- legs="Lethargy Fuseau +3",
- feet={ name="Merlinic Crackows", augments={'Attack+5','"Drain" and "Aspir" potency +10','MND+9','Mag. Acc.+3','"Mag.Atk.Bns."+5',}}
- }
- -- Job Abilities
- sets.midcast["Chainspell"] = { body="Vitiation Tabard +3" }
- -- Base weaponskill set, use WSD for this since most stuff is single or double hit.
- sets.midcast.Weaponskill = {
- ammo="Oshasha's Treatise",
- head="Nyame Helm",
- neck="Fotia Gorget",
- ear1="Ishvara Earring",
- ear2="Telos Earring",
- body="Nyame Mail",
- hands="Nyame Gauntlets",
- ring1="Epaminondas's Ring",
- ring2="Ilabrat Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Accuracy+20 Attack+20','MND+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},
- waist="Fotia Belt",
- legs="Nyame Flanchard",
- feet="Nyame Sollerets"
- }
- sets.midcast.Weaponskill.MAB = {
- ammo="Oshasha's Treatise",
- head="Nyame Helm",
- neck="Sibyl Scarf",
- ear1="Malignance Earring",
- ear2="Regal Earring",
- body="Nyame Mail",
- hands="Nyame Gauntlets",
- ring1="Epaminondas's Ring",
- ring2="Freke Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Accuracy+20 Attack+20','MND+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},
- waist="Orpheus's Sash",
- legs="Nyame Flanchard",
- feet="Nyame Sollerets"
- }
- sets.midcast['Savage Blade'] = set_combine(sets.midcast.Weaponskill, {
- neck="Rep. Plat. Medal",
- ear2="Regal Earring",
- --back="Aurist's Cape +1",
- waist="Sailfi Belt +1",
- ring2="Sroda Ring",
- })
- sets.midcast["Chant du Cygne"] = set_combine(sets.midcast.Weaponskill, {
- ear1="Sherida Earring",
- })
- sets.midcast["Sanguine Blade"] = set_combine(sets.midcast.Weaponskill.MAB, {
- head="Pixie Hairpin +1",
- neck="Sanctity Necklace",
- ring1="Archon Ring",
- ring2="Metamorph Ring +1",
- waist="Orpheus's Sash",
- })
- sets.midcast["Seraph Blade"] = set_combine(sets.midcast.Weaponskill.MAB, {
- ammo="Regal Gem",
- ring1="Metamorph Ring +1",
- })
- sets.midcast["Red Lotus Blade"] = set_combine(sets.midcast.Weaponskill.MAB, {
- ammo="Pemphredo Tathlum",
- ear2="Friomisi Earring",
- ring1="Metamorph Ring +1",
- })
- sets.midcast['Aeolian Edge'] = set_combine(sets.midcast.Weaponskill.MAB, {
- })
- sets.midcast['Black Halo'] = set_combine(sets.midcast.Weaponskill, {
- --neck="Duelist's Torque +2",
- neck="Republican Platinum Medal",
- ear1="Regal Earring",
- ear2="Lethargy Earring +2",
- ring2="Metamorph Ring +1",
- --ring2="Sroda Ring",
- waist="Grunfeld Rope",
- feet="Lethargy Houseaux +3",
- })
- -- Low-damage WS sets for making skillchains
- sets.midcast.LowDmg = set_combine(sets.precast.FC, {})
- sets.midcast['Burning Blade'] = set_combine(sets.midcast.LowDmg, {})
- sets.midcast['Flat Blade'] = set_combine(sets.midcast.LowDmg, {})
- -- Treasure Hunter set. Don't put anything in here except TH+ gear.
- -- It overwrites slots in other sets when TH toggle is on (Ctrl+F10).
- sets.midcast.TH = {
- head="Volte Cap",
- waist="Chaac Belt",
- hands="Volte Bracers",
- feet="Volte Boots"
- }
- -- Aftercast Sets
- sets.aftercast = {
- main="Mpaca's Staff",
- sub="Oneiros Grip",
- ammo="Homiliary",
- head="Vitiation Chapeau +3",
- neck="Loricate Torque +1",
- ear1="Moonshade Earring",
- ear2="Etiolation Earring",
- body="Lethargy Sayon +3",
- hands={ name="Chironic Gloves", augments={'Pet: INT+10','AGI+12','"Refresh"+2','Accuracy+6 Attack+6',}},
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- ring2="Shneddick Ring +1",
- back={ name="Sucellos's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Phys. dmg. taken-10%',}},
- waist="Carrier's Sash",
- legs={ name="Chironic Hose", augments={'AGI+8','Pet: Mag. Acc.+14','"Refresh"+2','Accuracy+16 Attack+16','Mag. Acc.+15 "Mag.Atk.Bns."+15',}},
- --legs="Carmine Cuisses +1",
- feet={ name="Chironic Slippers", augments={'Pet: INT+6','"Snapshot"+1','"Refresh"+2','Accuracy+12 Attack+12','Mag. Acc.+4 "Mag.Atk.Bns."+4',}}
- }
- sets.aftercast.Sub50 = set_combine(sets.aftercast, {
- waist="Fucho-no-obi",
- })
- -- Perp Down set, used when you have a pet out
- sets.aftercast.Avatar = set_combine(sets.aftercast, {
- waist="Avatar Belt",
- })
- sets.aftercast.DT = set_combine(sets.aftercast, {
- main="Bolelabunga",
- --sub="Genmei Shield",
- sub="Diamond Aspis",
- ammo="Staunch Tathlum +1",
- --body="Adamantite Armor",
- hands="Nyame Gauntlets",
- legs="Nyame Flanchard",
- feet="Nyame Sollerets"
- })
- sets.aftercast.Kite = set_combine(sets.aftercast.DT, {
- --legs="Carmine Cuisses +1",
- })
- sets.aftercast.MDB = set_combine(sets.aftercast.DT, {
- head="Vitiation Chapeau +3",
- body="Adamantite Armor",
- hands="Lethargy Gantherots +3",
- waist="Flume Belt +1",
- legs="Lethargy Fuseau +3",
- feet="Lethargy Houseaux +3",
- })
- sets.aftercast.Regain = set_combine(sets.aftercast.DT, {
- head="Null Masque",
- ring1="Roller's Ring",
- })
- -- Used for CureObjective mode. If you plan to use that mode, ensure this set has 500HP less than "midcast.CureObjective".
- sets.aftercast.CureObjective = set_combine(sets.aftercast.Refresh, {
- ring1="Metamorph Ring +1",
- })
- -- Aftercast Engaged sets
- sets.aftercast.Engaged = set_combine(sets.aftercast, {
- })
- sets.aftercast.Engaged.TP = {
- ammo="Coiste Bodhar",
- head="Malignance Chapeau",
- neck="Anu Torque",
- ear1="Telos Earring",
- ear2="Sherida Earring",
- body="Malignance Tabard",
- hands="Malignance Gloves",
- ring1={name="Chirich Ring +1", bag="wardrobe2"},
- ring2={name="Chirich Ring +1", bag="wardrobe4"},
- back="Null Shawl",
- waist="Sailfi Belt +1",
- legs={ name="Chironic Hose", augments={'Rng.Atk.+28','Accuracy+23','"Store TP"+6','Accuracy+17 Attack+17',}},
- feet="Malignance Boots",
- --feet={ name="Chironic Slippers", augments={'"Dual Wield"+4','Rng.Acc.+21 Rng.Atk.+21','Quadruple Attack +3','Accuracy+17 Attack+17',}}
- }
- sets.aftercast.Engaged.Hybrid = set_combine(sets.aftercast.Engaged.TP, {
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}},
- legs="Nyame Flanchard",
- })
- sets.aftercast.Engaged.DT = set_combine(sets.aftercast.DT, {
- })
- sets.aftercast.Engaged.KC = set_combine(sets.aftercast.Engaged.TP, {
- ammo="Aurgelmir Orb +1",
- ear2="Crepuscular Earring",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}},
- })
- sets.aftercast.Engaged.Enspell = set_combine(sets.aftercast.Engaged.TP, {
- ear1="Cessance Earring",
- hands="Ayanmo Manopolas +2",
- waist="Orpheus's Sash",
- })
- sets.aftercast.Engaged.HybridEnspell = set_combine(sets.aftercast.Engaged.Hybrid, {
- ear1="Cessance Earring",
- neck="Loricate Torque +1",
- hands="Ayanmo Manopolas +2",
- waist="Orpheus's Sash",
- })
- -- For Lv1 enspell weapon strategy to feed 0 TP. Drop Store TP and pick up multi-attack and magic accuracy.
- sets.aftercast.Engaged.Odin = set_combine(sets.aftercast.Engaged.Enspell, {
- ammo="Ghastly Tathlum +1",
- head="Nyame Helm",
- neck="Null Loop",
- ear1="Eabani Earring",
- ear2="Suppanomimi",
- body="Nyame Mail",
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- ring2="Metamorph Ring +1",
- legs="Nyame Flanchard",
- --legs={ name="Chironic Hose", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','Haste+1','MND+10','Mag. Acc.+7','"Mag.Atk.Bns."+11',}},
- feet="Nyame Sollerets",
- })
- -- ===================================================================================================================
- -- End of Sets
- -- ===================================================================================================================
- TownIdle = S{"windurst woods","windurst waters","windurst walls","port windurst","bastok markets","bastok mines","port bastok","southern san d'oria","northern san d'oria","port san d'oria","upper jeuno","lower jeuno","port jeuno","ru'lude gardens","norg","kazham","tavnazian safehold","rabao","selbina","mhaura","aht urhgan whitegate","al zahbi","nashmau","western adoulin","eastern adoulin"}
- EnhancingSpells = S{"Temper","Temper II","Enfire","Enfire II","Enstone","Enstone II","Enwater","Enwater II","Enaero","Enaero II","Enblizzard","Enblizzard II","Enthunder","Enthunder II"}
- EnfeeblingMND = S{"Addle", "Addle II", "Distract", "Distract II", "Distract III", "Frazzle", "Frazzle II", "Frazzle III", "Paralyze", "Paralyze II", "Silence", "Slow", "Slow II"}
- EnfeeblingPotency = S{"Gravity","Gravity II"}
- EnfeeblingDuration = S{"Sleep","Sleepga","Sleep II","Sleepga II","Bind","Silence","Break"}
- BarElement = S{"Barfira","Barstonra","Barwatera","Baraera","Barblizzara","Barthundra","Barfire","Barstone","Barwater","Baraero","Barblizzard","Barthunder"}
- send_command('input /macro book 20;wait .1;input /macro set 1;wait 3;input /lockstyleset '..StartLockStyle)
- send_command('console_echo "TP Mode: ['..TPMode..'] ~ Idle Mode: ['..IdleMode..']"')
- end
- function precast(spell)
- --if midaction() then
- --cancel_spell()
- --return
- --end
- if spell.type=="Item" then
- return
- end
- -- Spell fast cast
- if spell.action_type=="Magic" and not buffactive["Chainspell"] then
- if sets.precast[spell.english] then
- equip(sets.precast[spell.english])
- else
- equip(sets.precast.FC)
- end
- end
- end
- function midcast(spell)
- if spell.type=="Item" then
- return
- end
- if spell.type=="WeaponSkill" and LowDmg then
- equip(sets.midcast.LowDmg)
- -- Check for a specific set
- elseif sets.midcast[spell.english] then
- equipSet = sets.midcast[spell.english]
- if spell.target.type=="SELF" and equipSet.Self then
- equipSet = equipSet.Self
- end
- if OccultMode and equipSet.Occult then
- equipSet = equipSet.Occult
- end
- equip(equipSet)
- -- Specific Spells
- elseif string.find(spell.name,"Cure") or string.find(spell.name,"Cura") then
- if CureObjective then
- equip(sets.midcast.CureObjective)
- elseif spell.element==world.weather_element or buffactive['Aurorastorm'] then
- equip(sets.midcast.Cure.Weather)
- else
- equip(sets.midcast.Cure)
- end
- -- Spells by Type/Skill
- elseif spell.skill=="Enfeebling Magic" then
- equipSet = sets.midcast.Enfeebling
- if EnfeeblingPotency:contains(spell.name) then
- equipSet = sets.midcast.EnfeeblingPotency
- elseif EnfeeblingDuration:contains(spell.name) then
- equipSet = sets.midcast.EnfeeblingDuration
- elseif EnfeeblingMND:contains(spell.name) then
- equipSet = sets.midcast.EnfeeblingMND
- elseif spell.type=="BlackMagic" then
- equipSet = sets.midcast.EnfeeblingINT
- end
- equip(equipSet)
- if buffactive["Saboteur"] and not EnfeeblingDuration:contains(spell.name) then
- equip(sets.midcast.Enfeebling.Saboteur)
- end
- elseif spell.skill=="Enhancing Magic" then
- equipSet = sets.midcast.EnhancingDuration
- if EnhancingSpells:contains(spell.name) then
- equipSet = sets.midcast.Enhancing
- elseif string.find(spell.name,"Regen") then
- equipSet = sets.midcast.Regen
- elseif string.find(spell.name,"Refresh") then
- equipSet = sets.midcast.Refresh
- elseif string.sub(spell.name,1,3)=="Bar" then
- if BarElement:contains(spell.name) then
- equipSet = sets.midcast.BarElement
- else
- equipSet = sets.midcast.BarAilment
- end
- elseif string.find(spell.name,"Phalanx") then
- equipSet = sets.midcast.Phalanx
- end
- if spell.target.type=="SELF" and equipSet.Self then
- equipSet = equipSet.Self
- end
- equip(equipSet)
- elseif spell.skill=='Elemental Magic' then
- equipSet = sets.midcast.Elemental
- if OccultMode and equipSet.Occult then
- equipSet = equipSet.Occult
- end
- if MagicBurst and equipSet.MagicBurst then
- equipSet = equipSet.MagicBurst
- end
- if (spell.element == world.weather_element or spell.element == world.day_element) and equipSet.Weather then
- equipSet = equipSet.Weather
- end
- equip(equipSet)
- elseif spell.type=="WeaponSkill" then
- equip(sets.midcast.Weaponskill)
- else
- idle()
- end
- -- Treasure Hunter
- if THSpells:contains(spell.name) then
- equip(sets.midcast.TH)
- end
- -- Auto-cancel existing buffs
- if spell.name=="Stoneskin" and buffactive["Stoneskin"] then
- windower.send_command('cancel 37;')
- elseif spell.name=="Sneak" and buffactive["Sneak"] and spell.target.type=="SELF" then
- windower.send_command('cancel 71;')
- elseif spell.name=="Utsusemi: Ichi" and buffactive["Copy Image"] then
- windower.send_command('wait 1;cancel 66;')
- end
- end
- function aftercast(spell)
- if spell.type=="Item" then
- return
- end
- idle()
- end
- function status_change(new,old)
- idle()
- end
- function buff_change(name,gain)
- -- Auto-cancel Stoneskin if slept with Sublimation active.
- if name=="sleep" and gain and buffactive["Sublimation: Activated"] and buffactive["Stoneskin"] then
- windower.send_command('cancel 37;')
- end
- end
- function self_command(command)
- is_valid = command:lower()=="idle"
- announceModes = false
- skip_idle = false
- if command:lower()=="toggletp" then
- is_valid = true
- if TPMode=="TP" then
- TPMode = "Hybrid"
- elseif TPMode=="Hybrid" then
- TPMode = "HybridEnspell"
- else
- TPMode = "TP"
- end
- announceModes = true
- elseif command:lower()=="toggleidle" then
- is_valid = true
- if IdleMode=="Regain" then
- IdleMode = "Kite"
- elseif IdleMode=="Kite" then
- IdleMode = "Refresh"
- else
- IdleMode = "Regain"
- end
- announceModes = true
- -- "gs c TP <mode>" to change TP mode
- elseif string.sub(command:lower(),1,2)=="tp" and string.len(command) > 3 then
- tpCommand = string.sub(command,4,string.len(command))
- for _, v in ipairs(TPModeCommands) do
- if tpCommand:lower()==v:lower() then
- is_valid = true
- TPMode = v
- announceModes = true
- end
- end
- -- "gs c Idle <mode>" to change Idle mode
- elseif string.sub(command:lower(),1,4)=="idle" and string.len(command) > 5 then
- idleCommand = string.sub(command,6,string.len(command))
- for _, v in ipairs(IdleModeCommands) do
- if idleCommand:lower()==v:lower() then
- is_valid = true
- IdleMode = v
- announceModes = true
- end
- end
- elseif command:lower()=="togglemeva" then
- if IdleMode=="Kite" then
- IdleMode = "Refresh"
- elseif IdleMode=="Refresh" then
- IdleMode = "DT"
- else
- IdleMode = "Kite"
- end
- is_valid = true
- send_command('console_echo "Idle Mode: '..IdleMode..'"')
- elseif command:lower()=="meleemode" then
- if MeleeMode then
- enable("main","sub","range","ammo")
- MeleeMode = false
- send_command('console_echo "Melee Mode: false"')
- else
- disable("main","sub")
- MeleeMode = true
- send_command('console_echo "Melee Mode: true"')
- end
- is_valid = true
- elseif command:lower()=="th" then
- TreasureHunter = TreasureHunter==false
- is_valid = true
- send_command('console_echo "Treasure Hunter Mode: '..tostring(TreasureHunter)..'"')
- elseif command:lower()=="mb" then
- MagicBurst = MagicBurst==false
- is_valid = true
- send_command('console_echo "Magic Burst Mode: '..tostring(MagicBurst)..'"')
- elseif command:lower()=="lowdmg" then
- LowDmg = LowDmg==false
- is_valid = true
- send_command('console_echo "Low Dmg Mode: '..tostring(LowDmg)..'"')
- elseif command:lower()=="cureobjective" then
- CureObjective = CureObjective==false
- is_valid = true
- send_command('console_echo "Cure Objective Mode: '..tostring(CureObjective)..'"')
- elseif command:lower()=="occult" then
- OccultMode = OccultMode==false
- is_valid = true
- send_command('console_echo "Occult Acumen Mode: '..tostring(OccultMode)..'"')
- -- Weapon commands
- elseif command:lower()=="naeg" then
- is_valid = true
- enable("main","sub","range","ammo")
- equip({main="Naegling",sub="Gleti's Knife"})
- if MeleeMode then
- disable("main","sub")
- end
- elseif command:lower()=="naegullr" then
- is_valid = true
- enable("main","sub","range","ammo")
- equip({main="Naegling",sub="Ammurapi Shield",range="Ullr",ammo=empty})
- if MeleeMode then
- disable("main","sub","range","ammo")
- end
- elseif command:lower()=="tauret" then
- is_valid = true
- enable("main","sub","range","ammo")
- equip({main="Tauret",sub="Bunzi's Rod"})
- if MeleeMode then
- disable("main","sub")
- end
- elseif command:lower()=="fermion" then
- is_valid = true
- enable("main","sub","range","ammo")
- equip({main="Fermion Sword",sub="Kraken Club"})
- if MeleeMode then
- disable("main","sub")
- end
- elseif command:lower()=="aern" then
- is_valid = true
- enable("main","sub","range","ammo")
- equip({main="Aern Dagger",sub="Kraken Club"})
- if MeleeMode then
- disable("main","sub")
- end
- elseif command:lower()=="max" then
- is_valid = true
- enable("main","sub","range","ammo")
- equip({main="Maxentius",sub="Ammurapi Shield"})
- if MeleeMode then
- disable("main","sub")
- end
- elseif command:lower()=="crocea" then
- is_valid = true
- enable("main","sub","range","ammo")
- equip({main="Crocea Mors",sub="Ammurapi Shield"})
- if MeleeMode then
- disable("main","sub")
- end
- elseif command:lower()=="lockeffect" then
- LockEffect = LockEffect==false
- is_valid = true
- send_command('console_echo "Lock Enfeebling Effect Gear: '..tostring(LockEffect)..'"')
- if LockEffect then
- enable("head","neck","ear1","ear2","body","hands","ring1","ring2","back","waist","legs","feet")
- equip(sets.midcast.EnfeeblingPotency, sets.midcast.Enfeebling.Saboteur)
- disable("main","sub","range","ammo","head","neck","ear1","ear2","body","hands","ring1","ring2","back","waist","legs","feet")
- else
- enable("range","ammo","head","neck","ear1","ear2","body","hands","ring1","ring2","back","waist","legs","feet")
- if not MeleeMode then
- enable("main","sub")
- end
- end
- end
- if is_valid then
- if announceModes then
- send_command('console_echo "TP Mode: ['..TPMode..'] ~ Idle Mode: ['..IdleMode..']"')
- end
- if not midaction() and not pet_midaction() and not skip_idle then
- idle()
- end
- else
- sanitized = command:gsub("\"", "")
- send_command('console_echo "Invalid self_command: '..sanitized..'"')
- end
- end
- function idle()
- equipSet = sets.aftercast
- if equipSet[player.status] then
- equipSet = equipSet[player.status]
- end
- if equipSet[TPMode] and player.status=="Engaged" then
- equipSet = equipSet[TPMode]
- elseif equipSet[IdleMode] then
- equipSet = equipSet[IdleMode]
- end
- if pet.isvalid and equipSet["Avatar"] then
- equipSet = equipSet["Avatar"]
- end
- if player.mpp < 50 and equipSet["LowMP"] then
- equipSet = equipSet["LowMP"]
- end
- equip(equipSet)
- -- CureObjective Mode takes precedence over everything else
- if CureObjective then
- equip(sets.aftercast.CureObjective)
- end
- end
Add Comment
Please, Sign In to add comment