Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- Setup functions for this job. Generally should not be modified.
- -------------------------------------------------------------------------------------------------------------------
- include('organizer-lib')
- ------ GEO HELPER
- Geomancy = {
- "Poison","Voidance","Precision","Regen","Attunement","Focus","Barrier","Refresh",
- "CHR","MND","Fury","INT","AGI","Fend","VIT","DEX",
- "Acumen","STR","Slow","Torpor","Slip","Languor","Paralysis","Vex",
- "Frailty","Wilt","Malaise","Gravity","Fade","Haste"
- }
- Geomancy["Poison"]={"-","Poi","Poison"}
- Geomancy["Voidance"]={"+","Eva","Evasion"}
- Geomancy["Precision"]={"+","Acc","Accuracy"}
- Geomancy["Regen"]={"+","Reg","Regen"}
- Geomancy["Attunement"]={"+","MEva","Magic Evasion"}
- Geomancy["Focus"]={"+","MAcc","Magic Accuracy"}
- Geomancy["Barrier"]={"+","Def","Defense"}
- Geomancy["Refresh"]={"+","Ref","Refresh"}
- Geomancy["CHR"]={"+","CHR","Charisma"}
- Geomancy["MND"]={"+","MND","Mind"}
- Geomancy["Fury"]={"+","Atk","Attack"}
- Geomancy["INT"]={"+","INT","Intelligence"}
- Geomancy["AGI"]={"+","AGI","Agility"}
- Geomancy["Fend"]={"+","MDB","Magic Defense"}
- Geomancy["VIT"]={"+","VIT","Vitality"}
- Geomancy["DEX"]={"+","DEX","Dexterity"}
- Geomancy["Acumen"]={"+","MAB","Magic Attack"}
- Geomancy["STR"]={"+","STR","Strengh"}
- Geomancy["Slow"]={"-","Slow","Speed"}
- Geomancy["Torpor"]={"-","Eva","Evasion"}
- Geomancy["Slip"]={"-","Acc","Accuracy"}
- Geomancy["Languor"]={"-","MEva","Magic Evasion"}
- Geomancy["Paralysis"]={"-","Para","Paralysis"}
- Geomancy["Vex"]={"-","MAcc","Magic Accuracy"}
- Geomancy["Frailty"]={"-","Def","Defense"}
- Geomancy["Wilt"]={"-","Atk","Attack"}
- Geomancy["Malaise"]={"-","MDB","Magic Defense"}
- Geomancy["Gravity"]={"-","Grav","Gravity"}
- Geomancy["Fade"]={"-","MAB","Magic Attack"}
- Geomancy["Haste"]={"+","Haste","Speed"}
- GEOSPELL = "Precision"
- INDISPELL = "Haste"
- ENTRUSTSPELL = "Acumen"
- ENTRUSTPLAYER = player.name
- tb_name = "geohelp"
- visible = true
- textinbox = ''
- textinbox = textinbox..' \\cs(125, 125, 125) GEO-'..GEOSPELL..'\\cr \n'
- textinbox = textinbox..' \\cs(125, 125, 125) INDI-'..INDISPELL..'\\cr \n'
- textinbox = textinbox..' \\cs(125, 125, 125) ENTRUST-'..ENTRUSTSPELL..'\\cr \n'
- windower.text.create(tb_name)
- windower.text.set_location(tb_name, 300, 150)
- windower.text.set_bg_color(tb_name, 200, 54, 43, 0)
- windower.text.set_color(tb_name, 255, 147, 161, 161)
- windower.text.set_font(tb_name, "Arial")
- windower.text.set_font_size(tb_name, 10)
- windower.text.set_bold(tb_name, false)
- windower.text.set_italic(tb_name, false)
- windower.text.set_text(tb_name, textinbox)
- windower.text.set_bg_visibility(tb_name, visible)
- local player = windower.ffxi.get_player()
- geotr = 0
- geotg = 125
- geotb = 0
- inditr = 0
- inditg = 125
- inditb = 0
- entrusttr = 0
- entrusttg = 125
- entrusttb = 0
- Gr = 125
- Gg = 125
- Gb = 125
- GEr = 125
- GEg = 125
- GEb = 125
- GEOr = 125
- GEOg = 125
- GEOb = 125
- function refresh()
- textinbox = ''
- -- GEO SPELL
- textinbox = textinbox..' \\cs('..Gr..', '..Gg..', '..Gb..') G\\cr\\cs('..GEr..', '..GEg..', '..GEb..')E\\cr\\cs('..GEOr..', '..GEOg..', '..GEOb..')O\\cr-\\cs('..geotr..', '..geotg..', '..geotb..')'..GEOSPELL..'\\cr \n'
- textinbox = textinbox..' \\cs(125, 125, 125) INDI\\cr-\\cs('..inditr..', '..inditg..', '..inditb..')'..INDISPELL..'\\cr \n'
- textinbox = textinbox..' \\cs(125, 125, 125) ENTRUST\\cr-\\cs('..entrusttr..', '..entrusttg..', '..entrusttb..')'..ENTRUSTSPELL..'\\cr \n'
- windower.text.set_text(tb_name, textinbox)
- end
- windower.register_event('unload', function()
- windower.text.delete(tb_name)
- end)
- ---- NOT MY LUA FROM HERE
- function get_sets()
- IdleIndex = 1
- IdleArray = {"Refresh","Pet","Town"} -- Default Idle Set Is Movement --
- Armor = 'None'
- define_geomancy_values()
- Obi = 'ON' -- Turn Default Obi ON or OFF Here --
- target_distance = 5 -- Set Default Distance Here --
- Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation --
- Curaga_Spells = {"Curaga","Curaga II"} -- Curaga Degradation --
- sc_map = {SC1 = "GeoTorpor", SC2 = "GeoLanguor", SC3 = "IndiFocus"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
- Non_Obi_Spells = S{
- 'Burn','Choke','Drown','Frost','Rasp','Shock','Impact','Anemohelix','Cryohelix',
- 'Geohelix','Hydrohelix','Ionohelix','Luminohelix','Noctohelix','Pyrohelix'}
- Cities = S{
- "Ru'lude Gardens","Upper Jeuno","Lower Jeuno","Port Jeuno",
- "Port Windurst","Windurst Waters","Windurst Woods","Windurst Walls","Heavens Tower",
- "Port San d'Oria","Northern San d'Oria","Southern San d'Oria",
- "Port Bastok","Bastok Markets","Bastok Mines","Metalworks",
- "Aht Urhgan Whitegate","Nashmau","Tavanazian Safehold",
- "Selbina","Mhaura","Norg","Eastern Adoulin","Western Adoulin","Kazham"}
- -- Idle Sets --
- sets.Idle = {}
- sets.Idle.Refresh = {
- main="Solstice",
- sub="Sors Shield",
- range="Dunna",
- head="Spurrina Coif",
- neck="Twilight Torque",
- ear1="Ethereal Earring",
- ear2="Sanare Earring",
- body="Geo. Tunic +1",
- hands="Bagua Mitaines",
- ring1="Dark Ring",
- ring2="Dark Ring",
- back="Umbra Cape",
- waist="Fucho-no-obi",
- legs="Assid. Pants +1",
- feet="Geo. Sandals +1",
- ammo=empty}
- sets.Idle.Town = {
- main="Solstice",
- sub="Sors Shield",
- range="Dunna",
- head="Spurrina Coif",
- neck="Orunmila's Torque",
- ear1="Ethereal Earring",
- ear2="Enchanter Earring +1",
- body="Geo. Tunic +1",
- hands="Bagua Mitaines",
- ring1="Shiva Ring +1",
- ring2="Shiva Ring +1",
- back="Umbra Cape",
- waist="Austerity Belt +1",
- legs="Geo. Pants +1",
- feet="Geo. Sandals +1",
- ammo=empty}
- sets.Resting = set_combine(sets.Idle.Refresh,{})
- -- .Pet sets are for when Luopan is present. --
- sets.Idle.Pet = {main="Earth Staff",sub="Oneiros Grip",range="Dunna",ammo=empty,
- head="Hagondes Hat",neck="Twilight Torque",ear1="Ethereal Earring",ear2="Sanare Earring",
- body="Hagondes Coat",hands="Geomancy Mitaines",ring1="Dark Ring",ring2="Dark Ring",
- back="Lifestream Cape",waist="Slipor Sash",legs="Gyve Trousers",feet="Bagua Sandals"}
- -- PDT Set --
- sets.PDT = {
- main="Earth Staff",
- sub="Oneiros Grip",
- head="Hagondes Hat",
- neck="Twilight Torque",
- body="Hagondes Coat",
- hands="Geomancy Mitaines",
- ring1="Dark Ring",
- ring2="Dark Ring",
- back="Lifestream Cape",
- ear1="Ethereal Earring",
- ear2="Sanare Earring",
- waist="Slipor Sash",
- legs="Gyve Trousers",
- feet="Bagua Sandals",
- range="Dunna",
- ammo=empty}
- sets.Sublimation = {
- main="Solstice",
- sub="Sors Shield",
- ammo="Oreiad's Tathlum",
- head="Spurrina Coif",
- neck="Dualism Collar",
- ear1="Bloodgem Earring",
- ear2="Loquac. Earring",
- body="Hagondes Coat",
- hands="Serpentes Cuffs",
- ring1="K'ayres Ring",
- ring2="Meridian Ring",
- back="Gigant Mantle",
- waist="Forest Sash",
- legs="Assid. Pants +1",
- feet="Hagondes Sabots +1"}
- sets.Precast = {}
- -- FastCast Sets --
- sets.Precast.FastCast = {
- main="Serenity",
- ammo="Impatiens",
- sub="Arbuda Grip",
- head="Nahtirah Hat",
- neck="Orunmila's Torque",
- ear1="Enchanter Earring +1",
- ear2="Loquac. Earring",
- body="Anhur Robe",
- hands="Hagondes Cuffs",
- ring1="Prolix Ring",
- ring2="Veneficium Ring",
- back="Lifestream Cape",
- waist="Witful Belt";
- legs="Geo. Pants +1",
- feet="Chelona Boots +1"}
- -- Geomancy Sets --
- sets.Precast.GeoCast = set_combine(sets.Precast.FastCast,{
- main="Serenity",
- sub="Arbuda Grip",
- range="Dunna",
- ammo=empty,
- head="Azimuth Hood",
- waist="Austerity Belt +1",
- body="Bagua Tunic +1",
- hands="Geomancy Mitaines",
- back="Lifestream Cape",
- ear1="Gifted Earring",
- legs="Bagua Pants +1",
- feet="Medium's Sabots"})
- -- Elemental Staves --
- sets.Precast.Thunder = {main='Serenity'}
- sets.Precast.Water = {main='Serenity'}
- sets.Precast.Fire = {main='Serenity'}
- sets.Precast.Ice = {main='Serenity'}
- sets.Precast.Wind = {main='Serenity'}
- sets.Precast.Earth = {main='Serenity'}
- sets.Precast.Light = {main='Serenity'}
- sets.Precast.Dark = {main='Serenity'}
- sets.Precast['Enhancing Magic'] = set_combine(sets.Precast.FastCast,{waist="Siegel Sash",head="Umuthi Hat"})
- -- Precast Cure Set --
- sets.Precast.Cure = {
- main="Tamaxchi",
- sub="Sors Shield",
- head="Nahtirah Hat",
- neck="Orunmila's Torque",
- ear2="Loquac. Earring",
- body="Heka's Kalasiris",
- hands="Hagondes Cuffs",
- ring1="Prolix Ring",
- ring2="Veneficium Ring",
- back="Pahtli Cape",
- waist="Witful Belt";
- legs="Geo. Pants +1",
- feet="Chelona Boots +1"}
- -- Midcast Base Set --
- sets.Midcast = {}
- -- Cure Set --
- sets.Midcast.Cure = {
- main="Tamaxchi",
- sub="Sors Shield",
- ammo="Oreiad's Tathlum",
- head="Kaabnax Hat",
- neck="Phalaina Locket",
- ear1="Lifestorm Earring",
- ear2="Beatific Earring",
- body="Heka's Kalasiris",
- hands="Bagua Mitaines",
- ring1="Leviathan Ring +1",
- ring2="Haoma's Ring",
- back="Pahtli Cape",
- waist="Bishop's Sash",
- legs="Assid. Pants +1",
- feet="Hagondes Sabots +1"}
- -- Curaga Set --
- sets.Midcast.Curaga = {
- main="Tamaxchi",
- sub="Sors Shield",
- ammo="Oreiad's Tathlum",
- head="Kaabnax Hat",
- neck="Phalaina Locket",
- ear1="Lifestorm Earring",
- ear2="Loquac. Earring",
- body="Heka's Kalasiris",
- hands="Bagua Mitaines",
- ring1="Leviathan Ring +1",
- ring2="Karka Ring",
- back="Pahtli Cape",
- waist="Bishop's Sash",
- legs="Assid. Pants +1",
- feet="Hagondes Sabots +1"}
- -- Haste Set --
- sets.Midcast.Haste = {
- ammo="Impatiens",
- head="Nahtirah Hat",
- neck="Orunmila's Torque",
- ear2="Loquac. Earring",
- body="Anhur Robe",
- hands="Geomancy Mitaines",
- ring1="Prolix Ring",
- ring2="Veneficium Ring",
- back="Lifestream Cape",
- waist="Ninurta's Sash",
- legs="Geo. Pants +1",
- feet="Umbani Boots"}
- sets.Midcast['Enhancing Magic'] = {
- main="Kirin's Pole",
- sub="Fulcio Grip",
- head="Umuthi Hat",
- neck="Colossus's Torque",
- body="Anhur Robe",
- hands="Ayao's Gages",
- ring1="Prolix Ring",
- ring2="Veneficium Ring",
- waist="Cascade Belt",
- legs="Portent Pants",
- feet="Umbani Boots"}
- sets.Midcast.Stoneskin = set_combine(sets.Midcast['Enhancing Magic'],{
- head="Umuthi Hat",
- waist="Siegel Sash"})
- sets.Midcast.Cursna = set_combine(sets.Midcast.Haste,{
- head="Nahtirah Hat",
- neck="Colossus's Torque",
- ear2="Beatific Earring",
- body="Anhur Robe",
- hands="Bokwus Gloves",
- ring1="Haoma's Ring",
- ring2="Haoma's Ring",
- back="Altruistic Cape",
- waist="Witful Belt",
- legs="Bokwus Slops",
- feet="Geo. Sandals +1"})
- sets.Midcast.Stun = {
- main="Serenity",
- sub="Mephitis Grip",
- range="Aureole",
- head="Nahtirah Hat",
- neck="Orunmila's Torque",
- ear1="Loquac. Earring",
- ear2="Enchanter Earring +1",
- body="Vanir Cotehardie",
- hands="Hagondes Cuffs",
- ring1="Prolix Ring",
- ring2="Sangoma Ring",
- back="Lifestream Cape",
- waist="Ninurta's Sash",
- legs="Geo. Pants +1",
- feet="Hagondes Sabots +1"}
- sets.Midcast.Stun.MidACC = set_combine(sets.Midcast.Stun,{})
- sets.Midcast.Stun.HighACC = set_combine(sets.Midcast.Stun.MidACC,{})
- -- Elemental Sets --
- sets.Midcast['Elemental Magic'] = {
- main="Serenity",
- sub="Mephitis grip",
- ammo="Erlene's Notebook",
- head="Buremte Hat",
- neck="Baetyl Pendant",
- ear1="Novio Earring",
- ear2="Friomisi Earring",
- body="Seidr Cotehardie",
- hands="Otomi Gloves",
- ring1="Shiva Ring +1",
- ring2="Shiva Ring +1",
- back="Toro Cape",
- waist="Sekhmet Corset",
- legs="Gyve Trousers",
- feet="Umbani Boots"}
- sets.Midcast['Elemental Magic'].MidACC = set_combine(sets.Midcast['Elemental Magic'],{
- head="Hagondes Hat",
- body="Hagondes Coat"})
- sets.Midcast['Elemental Magic'].HighACC = set_combine(sets.Midcast['Elemental Magic'].MidACC,{})
- -- Dark Magic Sets --
- sets.Midcast['Dark Magic'] = set_combine(sets.Midcast['Elemental Magic'],{
- ear1="Psystorm Earring",
- ear2="Lifestorm Earring",
- body="Geo. Tunic +1",
- head="Buremte Hat",
- hands="Hagondes Cuffs",
- legs="Gyve Trousers",
- back="Refraction Cape",
- ring1="Archon Ring",
- ring2="Shiva Ring +1"})
- sets.Midcast['Dark Magic'].MidACC = set_combine(sets.Midcast['Dark Magic'],{})
- sets.Midcast['Dark Magic'].HighACC = set_combine(sets.Midcast['Dark Magic'].MidACC,{})
- sets.Midcast.Aspir = set_combine(sets.Midcast['Dark Magic'],{
- ring2="Excelsis Ring",
- head="Bagua Galero",
- waist="Fucho-no-obi"})
- sets.Midcast.Drain = set_combine(sets.Midcast.Aspir)
- -- Enfeebling Sets --
- sets.Midcast['Enfeebling Magic'] = {
- main="Serenity",
- sub="Mephitis Grip",
- range=empty,
- ammo="Kalboron Stone",
- head="Kaabnax Hat",
- neck="Imbodla Necklace",
- ear1="Lifestorm Earring",
- ear2="Psystorm Earring",
- body="Ischemia Chasuble",
- hands="Hagondes Cuffs",
- waist="Yamabuki-No-Obi",
- back="Refraction Cape",
- legs="Gyve Trousers",
- ring1="Sangoma Ring",
- ring2="Leviathan Ring +1",
- feet="Bagua Sandals"}
- sets.Midcast['Enfeebling Magic'].MidACC = set_combine(sets.Midcast['Enfeebling Magic'],{})
- sets.Midcast['Enfeebling Magic'].HighACC = set_combine(sets.Midcast['Enfeebling Magic'].MidACC,{})
- sets.Midcast.Impact = {
- main="Serenity",
- sub="Mephitis grip",
- neck="Imbodla necklace",
- head=empty,
- ear1="Lifestorm Earring",
- ear2="Psystorm Earring",
- body="Twilight Cloak",
- hands="Hagondes Cuffs",
- ring1="Archon Ring",
- ring2="Sangoma Ring",
- back="Refraction Cape",
- waist="Yamabuki-No-Obi",
- legs="Gyve Trousers",
- feet="Bagua Sandals"}
- -- Para/Slow Set --
- sets.Midcast.paralyze = set_combine(sets.Midcast['Enfeebling Magic'],{
- feet="Uk'uxkaj boots"})
- sets.Midcast.slow = set_combine(sets.Midcast['Enfeebling Magic'],{
- feet="Uk'uxkaj boots"})
- -- Geomancy Midcast --
- sets.Midcast.GeoCast = set_combine(sets.Precast.GeoCast,{
- main="Serenity",
- sub="Arbuda Grip",
- range="Dunna",
- ammo=empty,
- body="Bagua Tunic +1",
- hands="Geomancy Mitaines",
- waist="Austerity Belt +1",
- back="Lifestream Cape",
- ear1="Gifted Earring",
- ear2="Gwati Earring",
- legs="Bagua Pants +1",
- feet="Umbani Boots"})
- -- Elemental Obi/Twilight Cape --
- sets.Obi = {}
- sets.Obi.Thunder = {back="Twilight Cape",waist='Rairin Obi'}
- sets.Obi.Water = {back="Twilight Cape",waist='Suirin Obi'}
- sets.Obi.Fire = {back="Twilight Cape",waist='Karin Obi'}
- sets.Obi.Ice = {back="Twilight Cape",waist='Hyorin Obi'}
- sets.Obi.Wind = {back="Twilight Cape",waist='Furin Obi'}
- sets.Obi.Earth = {back="Twilight Cape",waist='Dorin Obi'}
- sets.Obi.Light = {back="Twilight Cape",waist='Korin Obi'}
- sets.Obi.Dark = {back="Twilight Cape",waist='Anrin Obi'}
- -- JA Sets --
- sets.JA = {}
- sets.JA['Life Cycle'] = {body="Geo. Tunic +1"}
- sets.JA.Bolster = {body="Bagua Tunic +1"}
- sets.JA['Radial Arcana'] = {feet="Bagua Sandals"}
- sets.JA['Mending Halation'] = {legs="Bagua Pants +1"}
- -- Melee Set --
- sets.Melee = {
- range="Dunna",
- ammo=empty,
- head="Kaabnax Hat",
- neck="Asperity Necklace",
- ear1="Bladeborn Earring",
- ear2="Steelflash Earring",
- body="Onca Suit",
- ring1="Petrov Ring",
- ring2="Rajas Ring",
- back="Kayapa Cape",
- waist="Windbuffet Belt"}
- -- WS Base Set --
- sets.WS = set_combine(sets.Melee,{})
- sets.WS["Hexa Strike"] = {
- range="Dunna",
- ammo=empty,
- head="Buremte Hat",
- neck="Nefarious Collar",
- ear1="Vulcan's Pearl",
- ear2="Flame Pearl",
- body="Vanir Cotehardie",
- hands="Otomi Gloves",
- ring1="Rajas Ring",
- ring2="Pyrosoul Ring",
- back="Rancorous Mantle",
- waist="Wanion Belt",
- legs="Perdition Slops",
- feet="Uk'uxkaj Boots"}
- sets.WS.Realmrazer = {}
- sets.WS.Shattersoul = {}
- sets.WS["Flash Nova"] = {
- range="Dunna",
- ammo=empty,
- head="Hagondes Hat",
- neck="Eddy Necklace",
- ear1="Novio Earring",
- ear2="Friomisi Earring",
- body="Hagondes Coat",
- hands="Yaoyotl Gloves",
- ring1="Shiva Ring +1",
- ring2="Shiva Ring +1",
- back="Toro Cape",
- waist="Yamabuki-No-Obi",
- legs="Gyve Trousers",
- feet="Umbani Boots"}
- -- Latent Idle Set --
- sets.latent_refresh = {waist="Fucho-no-obi"}
- -- Lock Main Weapon --
- sets.MainWeapon = {
- main="Solstice",
- sub="Sors Shield"}
- end
- function pretarget(spell,action)
- if (string.find(spell.type,'Magic') or spell.type == "Ninjutsu" or spell.type == "Geomancy") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
- cancel_spell()
- send_command('input /item "Echo Drops" <me>')
- elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
- degrade_spell(spell,Cure_Spells)
- elseif spell.english:ifind("Curaga") and player.mp<actualCost(spell.mp_cost) then
- degrade_spell(spell,Curaga_Spells)
- elseif string.find(spell.english,'Geo') and pet.isvalid then -- Change Any Geo Spells To Full Circle If You Have A Luopan Active --
- cancel_spell()
- send_command('input /ja "Full Circle" <me>')
- elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
- if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
- cancel_spell()
- send_command('input /ja Addendum: White <me>')
- elseif spell.english == "Manifestation" then
- cancel_spell()
- send_command('input /ja Accession <me>')
- elseif spell.english == "Alacrity" then
- cancel_spell()
- send_command('input /ja Celerity <me>')
- elseif spell.english == "Parsimony" then
- cancel_spell()
- send_command('input /ja Penury <me>')
- end
- elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
- if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
- cancel_spell()
- send_command('input /ja Addendum: Black <me>')
- elseif spell.english == "Accession" then
- cancel_spell()
- send_command('input /ja Manifestation <me>')
- elseif spell.english == "Celerity" then
- cancel_spell()
- send_command('input /ja Alacrity <me>')
- elseif spell.english == "Penury" then
- cancel_spell()
- send_command('input /ja Parsimony <me>')
- end
- end
- end
- function precast(spell,action)
- if spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
- if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
- return
- else
- if string.find(spell.english,'Cur') or spell.english == "Cursna" then
- equip(sets.Precast.Cure)
- elseif spell.type == "Geomancy" then
- equip(sets.Precast.GeoCast)
- elseif string.find(spell.english,'Fir') or string.find(spell.english,'Bliz') or string.find(spell.english,'Thund') or string.find(spell.english,'Aer') or string.find(spell.english,'Wat') or string.find(spell.english,'Stone') then
- equip(set_combine(sets.Precast.FastCast,{hands="Bagua Mitaines"}))
- elseif spell.english == "Impact" then
- equip(set_combine(sets.Precast.FastCast,{head=empty,body="Twilight Cloak"}))
- elseif spell.english == "Dia" then
- equip(set_combine(sets.Midcast['Enfeebling Magic'],{waist="Chaac Belt"}))
- elseif string.find(spell.english,'Utsusemi') then
- if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
- cancel_spell()
- add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
- return
- else
- equip(sets.Precast.FastCast)
- end
- elseif sets.Precast[spell.skill] then
- equip(sets.Precast[spell.skill])
- else
- equip(sets.Precast.FastCast)
- end
- end
- elseif spell.type == "WeaponSkill" then
- if sets.WS[spell.english] then
- equip(sets.WS[spell.english])
- end
- elseif spell.type == "JobAbility" then
- if sets.JA[spell.english] then
- equip(sets.JA[spell.english])
- end
- elseif spell.type == "Geomancy" then
- if Cities:contains(world.area) then
- cancel_spell()
- add_to_chat(123,'Unable To Use Geomancy In Town')
- return
- else
- if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Geomancy If You Are Silenced or Out of Range --
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
- return
- else
- display_geomancy_info(spell)
- equip(sets.Precast.GeoCast)
- end
- end
- elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
- cast_delay(0.2)
- send_command('cancel Sneak')
- end
- if sets.Precast[spell.element] then
- equip(sets.Precast[spell.element])
- end
- if StunIndex == 1 then
- equip(sets.Midcast.Stun)
- end
- if spell.english == 'Paralyze' then
- equip(sets.Midcast.paralyze)
- end
- if spell.english == 'Slow' then
- equip(sets.Midcast.slow)
- end
- if Main == 'ON' then
- equip(sets.MainWeapon)
- end
- end
- function midcast(spell,action)
- equipSet = {}
- if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
- equipSet = sets.Midcast
- if string.find(spell.english,'Cure') then
- equipSet = equipSet.Cure
- elseif string.find(spell.english,'Cura') then
- equipSet = equipSet.Curaga
- elseif string.find(spell.english,'Banish') then
- equipSet = set_combine(equipSet.Haste,{ring1="Fenian Ring"})
- elseif spell.type == "Geomancy" then
- equipSet = sets.Midcast.GeoCast
- elseif spell.english == "Stoneskin" then
- if buffactive.Stoneskin then
- send_command('@wait 2.8;cancel stoneskin')
- end
- equipSet = equipSet.Stoneskin
- elseif spell.english == "Sneak" then
- if spell.target.name == player.name and buffactive['Sneak'] then
- send_command('cancel sneak')
- end
- equipSet = equipSet.Haste
- elseif string.find(spell.english,'Utsusemi') then
- if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
- send_command('@wait 1.7;cancel Copy Image*')
- end
- equipSet = equipSet.Haste
- elseif spell.english == 'Monomi: Ichi' then
- if buffactive['Sneak'] then
- send_command('@wait 1.7;cancel sneak')
- end
- equipSet = equipSet.Haste
- else
- if equipSet[spell.english] then
- equipSet = equipSet[spell.english]
- end
- if equipSet[spell.skill] then
- equipSet = equipSet[spell.skill]
- end
- if equipSet[spell.type] then
- equipSet = equipSet[spell.type]
- end
- if (spell.type == 'Elemental Magic' or string.find(spell.english,'Cur') or string.find(spell.english,'Bio') or string.find(spell.english,'Dia')) and not Non_Obi_Spells:contains(spell.english) and (world.day_element == spell.element or world.weather_element == spell.element) and sets.Obi[spell.element] and Obi == 'ON' then -- Use Obi Toggle To Equip Normal Waist Gear --
- equipSet = set_combine(equipSet,sets.Obi[spell.element])
- end
- end
- elseif equipSet[spell.english] then
- equipSet = equipSet[spell.english]
- end
- equip(equipSet)
- if StunIndex == 1 then
- equip(sets.Midcast.Stun)
- end
- if Main == 'ON' then
- equip(sets.MainWeapon)
- end
- end
- function aftercast(spell,action)
- if player.status == 'Engaged' then
- equip(sets.Melee)
- else
- equip(sets.Idle[IdleArray[IdleIndex]])
- end
- end
- function status_change(new,old)
- if Armor == 'PDT' then
- equip(sets.PDT)
- elseif buffactive["Sublimation: Activated"] then
- equip(sets.Sublimation)
- elseif new == 'Engaged' then
- equip(sets.Melee)
- elseif new == 'Idle' then
- equip(sets.Idle[IdleArray[IdleIndex]])
- elseif new == 'Resting' then
- equip(sets.Resting)
- end
- if StunIndex == 1 then
- equip(sets.Midcast.Stun)
- end
- if Main == 'ON' then
- equip(sets.MainWeapon)
- end
- end
- function buff_change(buff,gain)
- buff = string.lower(buff)
- if buff == 'Weakness' then -- Weakness Timer --
- if gain then
- send_command('timers create "Weakness" 300 up')
- else
- send_command('timers delete "Weakness"')
- end
- end
- if not midaction() then
- status_change(player.status)
- end
- end
- function partycounter()
- pcount = 1
- for i=2,6 do
- if party[i] then
- pcount = pcount+1
- end
- end
- return pcount
- end
- -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
- function self_command(command)
- add_to_chat(123,'self-command = '.. tostring(command))
- if command == "geo" then
- if Geomancy[GEOSPELL][1] == "-" then
- send_command('input /ma Geo-'..GEOSPELL..' <t>')
- else
- send_command('input /ma Geo-'..GEOSPELL..' <me>')
- end
- add_to_chat(392,'*-*-*-*-*-*-*-*-* [ Casting GEO-'..GEOSPELL..'] *-*-*-*-*-*-*-*-*')
- elseif command == "Indi" then
- send_command('input /ma Indi-'..INDISPELL..' <me>')
- elseif command == "Entrust" then
- send_command('input /ja Entrust <me>; /wait 1; input /ma Indi-'..ENTRUSTSPELL..' <t>')
- elseif command == "pcount" then
- print(windower.ffxi.get_party()[1])
- elseif command == 'C1' then -- Stun Toggle --
- if StunIndex == 1 then
- StunIndex = 0
- add_to_chat(123,'Stun Set: [Unlocked]')
- else
- StunIndex = 1
- add_to_chat(158,'Stun Set: [Locked]')
- end
- status_change(player.status)
- elseif command == 'C5' then -- Auto Update Gear Toggle --
- status_change(player.status)
- add_to_chat(158,'Auto Update Gear')
- elseif command == 'C3' then -- Obi Toggle --
- if Obi == 'ON' then
- Obi = 'OFF'
- add_to_chat(123,'Obi: [OFF]')
- else
- Obi = 'ON'
- add_to_chat(158,'Obi: [ON]')
- end
- status_change(player.status)
- elseif command == 'C7' then -- PDT Toggle --
- if Armor == 'PDT' then
- Armor = 'None'
- add_to_chat(123,'PDT Set: [Unlocked]')
- else
- Armor = 'PDT'
- add_to_chat(158,'PDT Set: [Locked]')
- end
- status_change(player.status)
- elseif command == 'w' then -- Main Weapon Toggle --
- if Main == 'ON' then
- Main = 'OFF'
- add_to_chat(123,'Main Weapon: [Unlocked]')
- else
- Main = 'ON'
- add_to_chat(158,'Main Weapon: [Locked]')
- end
- status_change(player.status)
- elseif command == 'C8' then -- Distance Toggle --
- if player.target.distance then
- target_distance = math.floor(player.target.distance*10)/10
- add_to_chat(158,'Distance: '..target_distance)
- else
- add_to_chat(123,'No Target Selected')
- end
- elseif command == 'C6' then -- Idle Toggle --
- IdleIndex = (IdleIndex % #IdleArray) + 1
- add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
- status_change(player.status)
- elseif command:match('^SC%d$') then
- send_command('//' .. sc_map[command])
- end
- end
- function actualCost(originalCost)
- if buffactive["Penury"] then
- return originalCost*.5
- elseif buffactive["Light Arts"] then
- return originalCost*.9
- else
- return originalCost
- end
- end
- function degrade_spell(spell,degrade_array)
- spell_index = table.find(degrade_array,spell.name)
- if spell_index > 1 then
- new_spell = degrade_array[spell_index - 1]
- change_spell(new_spell,spell.target.raw)
- add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
- end
- end
- function change_spell(spell_name,target)
- cancel_spell()
- send_command('//'..spell_name..' '..target)
- end
- function customize_idle_set(idleSet)
- if player.mpp < 51 then
- idleSet = set_combine(idleSet, sets.latent_refresh)
- end
- return idleSet
- end
- function define_geomancy_values()
- geomancy = {
- Frailty = {bonus="Defense Down"},
- Torpor = {bonus="Evasion Down"},
- Languor = {bonus="Magic Evasion Down"},
- Focus = {bonus="Magic Accuracy"},
- Malaise = {bonus="Magic Defense Down"},
- Precision = {bonus="Accuracy"},
- Refresh = {bonus="Refresh"},
- Fade = {bonus="Magic Attack Down"},
- Wilt = {bonus="Attack Down"},
- Vex = {bonus="Magic Accuracy Down"},
- Slip = {bonus="Accuracy Down"},
- Acumen = {bonus="Magic Attack"},
- Fend = {bonus="Magic Defense"},
- Fury = {bonus="Attack"},
- Attunement = {bonus="Magic Evasion"},
- Voidance = {bonus="Evasion"},
- Barrier = {bonus="Defense"},
- Haste = {bonus="Haste"}
- }
- end
- function display_geomancy_info(spell)
- geoType=nil
- string.gsub(spell.english.."-","-(.-)-",function(geo) geoType=geo end)
- geoInfo = geomancy[geoType]
- if geoInfo then
- add_to_chat(158, spell.english..' = '..tostring(geoInfo.bonus))
- end
- end
- --- NOT MY LUA ENDS HERE
- geoswitch = false
- indiswitch = false
- entrustswitch = false
- windower.register_event('chat message', function(original, sender, mode, gm)
- local match
- ---- Invite checker
- --match = original:match(') ([%w]+)%')
- if sender == player.name then
- if original == "GEO" or original == "geo" or original == "Geo" then
- geoswitch = true
- indiswitch = false
- entrustswitch = false
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Choose your GEO spell. ] *-*-*-*-*-*-*-*-*')
- elseif original == "INDI" or original == "indi" or original == "Indi" then
- geoswitch = false
- indiswitch = true
- entrustswitch = false
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Choose your INDI spell. ] *-*-*-*-*-*-*-*-*')
- elseif original == "ENTRUST" or original == "entrust" or original == "Entrust" or original == "Ent" then
- geoswitch = false
- indiswitch = false
- entrustswitch = true
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Choose your ENTRUST spell. ] *-*-*-*-*-*-*-*-*')
- elseif geoswitch and original then
- command=original
- target = string.match(command, "(%a+)")
- targeto = string.match(command, "%p")
- geot = ""
- for i=1,30,1 do
- if Geomancy[Geomancy[i]][2] == target then
- if Geomancy[Geomancy[i]][1] == targeto then
- geot = Geomancy[i]
- end
- end
- end
- if geot ~= "" then
- GEOSPELL = geot
- add_to_chat(204,"Spell is GEO-"..geot.." which does "..Geomancy[geot][3]..""..Geomancy[geot][1])
- geoswitch = false
- end
- elseif indiswitch and original then
- command=original
- target = string.match(command, "(%a+)")
- targeto = string.match(command, "%p")
- geot = ""
- for i=1,30,1 do
- if Geomancy[Geomancy[i]][2] == target then
- if Geomancy[Geomancy[i]][1] == targeto then
- geot = Geomancy[i]
- end
- end
- end
- if geot ~= "" then
- INDISPELL = geot
- add_to_chat(204,"Spell is INDI-"..geot.." which does "..Geomancy[geot][3]..""..Geomancy[geot][1])
- indiswitch = false
- end
- elseif entrustswitch and original then
- command=original
- target = string.match(command, "(%a+)")
- targeto = string.match(command, "%p")
- geot = ""
- for i=1,30,1 do
- if Geomancy[Geomancy[i]][2] == target then
- if Geomancy[Geomancy[i]][1] == targeto then
- geot = Geomancy[i]
- end
- end
- end
- if geot ~= "" then
- ENTRUSTSPELL = geot
- add_to_chat(204,"Spell is Entrust Indi-"..geot.." which does "..Geomancy[geot][3]..""..Geomancy[geot][1])
- entrustswitch = false
- end
- end
- end
- return sender, mode, gm
- end)
- fps = 1
- sec = 0
- geoblink = false
- Gg = 0
- Gb = 0
- GEr = 0
- GEb = 0
- GEOr = 0
- windower.register_event('prerender', function()
- GEONr = 0
- GEONg = 0
- GEONb = 0
- if fps < 50 then
- fps = fps +1
- else
- fps = 1
- end
- if fps == 1 then
- --if pet.isvalid and not geoblink then
- --add_to_chat(204,"START BLINKING")
- -- geoblink = true
- --end
- --if pet.isvalid and geoblink then
- GEONr = GEOr
- GEONg = GEOg
- GEONb = GEOb
- GEOr = GEr
- GEOg = GEg
- GEOb = GEb
- GEr = Gr
- GEg = Gg
- GEb = Gb
- Gr = GEONr
- Gg = GEONg
- Gb = GEONb
- --end
- --if not pet.isvalid and geoblink then
- --add_to_chat(204,"STOP BLINKING")
- -- Gr = 125
- -- Gg = 125
- -- Gb = 125-
- -- GEr = 125
- -- GEg = 125
- -- GEb = 125
- -- GEOr = 125
- -- GEOg = 125
- -- GEOb = 125
- -- geoblink = false
- --end
- refresh()
- end
- end)
- -- MAKE A MACRO : /tell <me> check
- function open_coffer()
- CofferType = "Bounty List"
- if player.inventory[CofferType] then
- NCoffer = player.inventory[CofferType].count
- bag = windower.ffxi.get_bag_info(0).count
- max = windower.ffxi.get_bag_info(0).max
- spots = max-bag
- if spots > 0 then
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ '..NCoffer..'x '..CofferType..' to open - Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
- local nextcommand = ""
- for i=1, spots do
- nextcommand = nextcommand .. 'input /item "'..CofferType..'" <me>; wait 2;'
- end
- nextcommand = nextcommand .. 'input /tell '..player.name..' check'
- send_command(nextcommand)
- else
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
- end
- else
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ No '..CofferType..' in inventory ] *-*-*-*-*-*-*-*-*')
- end
- end
- -- MAKE A MACRO : /tell <me> chec
- function go_synth()
- CofferType = "Bone. Kit 40"
- if player.inventory[CofferType] then
- NCoffer = player.inventory[CofferType].count
- bag = windower.ffxi.get_bag_info(0).count
- max = windower.ffxi.get_bag_info(0).max
- spots = max-bag
- if spots > 0 then
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ '..NCoffer..'x '..CofferType..' to open - Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
- local nextcommand = ""
- for i=1, spots do
- nextcommand = nextcommand .. 'input /lastsynth; wait 20;'
- end
- nextcommand = nextcommand .. 'input /tell '..player.name..' chec'
- send_command(nextcommand)
- else
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
- end
- else
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ No '..CofferType..' in inventory ] *-*-*-*-*-*-*-*-*')
- end
- end
- --- Delve Assistant
- windower.register_event('incoming text', function(original, modified, mode)
- local match
- if player.target then
- if player.target.name == "Apex Jagil" or player.target.name == "Apex Crab" or player.target.name == "Apex Craklaw" then
- match = original:match('Faloun uses Leaden Salute.')
- if match then
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Counting ] *-*-*-*-*-*-*-*-*')
- send_command('input /ma "Stone IV" <t>')
- end
- match = original:match('Astan uses Chant du Cygne.')
- if match then
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Counting ] *-*-*-*-*-*-*-*-*')
- send_command('input /ma "Stone III" <t>')
- end
- end
- end
- return modified, mode
- end)
- fps = 1
- sec = 0
- i=1
- j=1
- sav = 0
- count = 3
- spells = {"Indi-Regen", "Indi-Poison", "Indi-Precision", "Indi-Voidance", "Indi-Malaise"}
- spell = {"Indi-Focus", "Geo-Refresh", "Bio", "Bio", "Poisonga", "Blind", "Stun", "Bio", "Bio", "Bio", "Bio", "Bio", "Blind", "Stun", "Bio", "Bio", "Bio", "Bio", "Bio", "Blind", "Stun", "Bio", "Bio"}
- windower.register_event('prerender', function()
- if fps < 150 then
- fps = fps +1
- else
- fps = 1
- end
- if fps == 1 and buffactive['silence'] then
- send_command('input /item "echo drops" '..player.name..'')
- end
- if fps == 1 then
- if player.target.name then
- if player.target.name == "Faloun" then
- if player.mp >=100 then
- if buffactive["Refresh"] then
- send_command('input /ma '..spells[i]..' <me>')
- if i <5 then
- i=i+1
- else
- i = 1
- end
- else
- send_command('input /ma Geo-Refresh <me>')
- end
- end
- elseif player.target.name == "Apex Jagil" then
- --if j < 3 then
- --send_command('input /ma '..spell[j]..' <me>')
- --else
- --send_command('input /ma '..spell[j]..' <t>')
- --end
- -- if j <23 then
- -- j=j+1
- -- else
- -- j = 1
- -- end
- if not buffactive["Magic Atk. Boost"] then
- send_command('input /ma Indi-Acumen <me>')
- end
- if player.tp >= 1000 then
- send_command('input /ws "Exudation" <t>')
- count = count +1
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Count = '..count..' ] *-*-*-*-*-*-*-*-*')
- end
- end
- end
- end
- end)
- windower.register_event('chat message', function(original, sender, mode, gm)
- local match
- ---- Invite checker
- if sender == "Etsune" then
- if original == "check" then
- open_coffer()
- end
- end
- return sender, mode, gm
- end)
- function open_coffer()
- CofferType = "Inv. Report"
- if player.inventory[CofferType] then
- NCoffer = player.inventory[CofferType].count
- bag = windower.ffxi.get_bag_info(0).count
- max = windower.ffxi.get_bag_info(0).max
- spots = max-bag
- if spots > 0 then
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ '..NCoffer..'x '..CofferType..' to open - Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
- local nextcommand = ""
- for i=1, spots do
- nextcommand = nextcommand .. 'input /item "'..CofferType..'" <me>; wait 2;'
- end
- nextcommand = nextcommand .. 'input /tell Etsune check'
- send_command(nextcommand)
- else
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
- end
- else
- add_to_chat(204, '*-*-*-*-*-*-*-*-* [ No '..CofferType..' in inventory ] *-*-*-*-*-*-*-*-*')
- end
- end
Add Comment
Please, Sign In to add comment