Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----- <keybinds> --
- -- CTRL Keybinds
- send_command('bind ^%numpad. input /ja "Unbridled Learning" <me>;wait 1.2;input /ja "Diffusion" <me>;wait 2;input /ma "Mighty Guard" <me>;wait 0.3;input /p Casting diffusion Mighty Guard.; wait 307;input /echo Diffusion Mighty Guard wearing in 10 seconds.')
- --buffs--
- send_command('bind !x input /ma "Erratic flutter" <me>;wait 4.3;input //barriertusk;wait 5;input //cocoon;wait 4.5;input //natmeditation;wait 4.5;input //berserk')
- send_command('alias solodark input /ja "Efflux" <me>;wait 1.2;input /ja "Chain affinity" <me>;wait 1.2;input /ja "Burst affinity" <me>;wait 2;input /ws "Chant du cygne" <t>;wait 3.8;input /ma "Sinker drill" <t>;wait 4;input /ma "Tenebral crush" <t>')
- -- </keybinds> --
- function file_unload()
- if binds_on_unload then
- binds_on_unload()
- end
- send_command('unbind !%numpad.')
- send_command('unbind ^%numpad.')
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Customizable OnEvent features for this job.
- -------------------------------------------------------------------------------------------------------------------
- --OnEvent Function
- --Use '..wav..' to point to wav directory. Assign wav directory in blu_user_setup
- pdt_command = "nothing for nowwww"
- utsusemi_command = "Copy.-Image.- effect wears off."
- warn_command = "].- .-Angry.-Seas"
- osmosis_command = "readies Howl"
- stunr_command = "readies Thunderbolt"
- dread_command = "Dread.-Spikes.- .-"
- test_command = "nothing at allll"
- windower.raw_register_event('incoming text',function(original, modified, original_mode, modified_mode, blocked)
- if string.find(original,pdt_command) and not buffactive.blink then
- windower.send_command('wait 1.5;gs c C15;wait 2;gs c C15')
- elseif string.find(original,utsusemi_command) then
- if Utsusemi then
- windower.send_command('input /ma "Utsusemi: Ni" <me>;wait 0.3;input /ma "Utsusemi: Ichi" <me>')
- end
- elseif string.find(original,warn_command) then
- if ShowM then
- add_to_chat(123, 'Warning! Warning!')
- end
- windower.play_sound(''..wav..'Chime.wav')
- elseif string.find(original,osmosis_command) then
- windower.send_command('wait 2;input //osmosis')
- elseif string.find(original,stunr_command) then
- windower.send_command('gs c C15;wait 3;gs c C15')
- elseif string.find(original,dread_command) then
- if DreadW then
- if DreadH then
- DreadH = not DreadH
- windower.send_command('input /attackoff; wait 2; input /p He just casted dread spikes, guys.')
- add_to_chat(123, 'Dread spikes being cast! Dispel! Dispel!')
- windower.play_sound(''..wav..'Expired.wav')
- end
- end
- windower.play_sound(''..wav..'Chime.wav')
- elseif string.find(original,test_command) then
- windower.send_command('input /echo The test worked!')
- end
- end)
- --/OnEvent Function--
- --Auto CDC & TH Function--
- windower.register_event('tp change', function(tp, new, old)
- if aCDC == 'Fast' or aCDC == 'Standard' then
- if aWS then
- if player.status == 'Engaged' and player.tp >= 1000 then
- aWS = false
- if ShowD then
- add_to_chat(158,'aCDC activation debug message.')
- end
- rng()
- windower.send_command('wait '..N..';input /ws "Chant du Cygne" <t>;gs c aWSon')
- end
- end
- end
- if THTP then
- if EngagedTP > -1 and player.tp > (EngagedTP+80) and player.status == 'Engaged' then
- windower.send_command('gs c TPchange')
- end
- end
- end)
- --/Auto CDC & TH Function--
- -------------------------------------------------------------------------------------------------------------------
- -- Setup functions for this job. Generally should not be modified.
- -------------------------------------------------------------------------------------------------------------------
- -- Setup vars used by this job
- function blu_user_setup()
- MagicBurst = false
- aCDC = 'Standard' -- Standard is suggested
- aWS = true
- TreasureHunter = 'None'
- THTP = false
- EngagedTP = -1 -- For automatic TH gear during first hit of every fight.
- Utsusemi = false
- ShowM = true
- ShowD = false
- DreadW = false
- DreadH = true
- Sword = 'Melee' -- For sword refresh while cleaving
- AccIndex = 1
- AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For TP/WS/Hybrid. Default ACC Set Is LowACC. The First TP Set Of Your Main Weapon Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below --
- IdleIndex = 1
- IdleArray = {"Movement","Regen"} -- Default Idle Set Is Movement
- Armor = 'None'
- target_distance = 5 -- Set Default Distance Here
- -- Set directory for .wavs
- wav = 'D:/Games/ffxi/Windower4/addons/GearSwap/libs/wav/'
- -- Load sidecar file
- include(""..player.name.."/BLU_"..player.name..".lua")
- -- Define spellmaps for use with pre/midcast
- blu_spell_maps()
- -----------------------------
- -- Toggles
- -----------------------------
- send_command('bind f9 gs c C1') --ACC toggle
- send_command('bind ^f12 gs c C2') --Hybrid toggle
- send_command('bind ^f10 gs c C4') --PDT II toggle
- send_command('bind f12 gs c C6') --Idle toggle
- send_command('bind f10 gs c C7') --PDT toggle
- send_command('bind %\ gs c C8') --Gear Auto Update
- send_command('bind f11 gs c C15') --MDT toggle
- --My Toggles
- send_command('alias cleave gs c CLV') -- Cleave Mode
- send_command('alias brute gs c BRT') -- Brute Mode
- send_command('alias sword gs c C17') --Sword Mode Toggle
- send_command('bind ^%numpad1 gs c TH') --TH toggle
- send_command('alias shadows gs c AU') --Auto Utsusemi Toggle
- send_command('bind ] gs c ACDC') --Auto CDC toggl
- send_command('alias dread gs c DrW') --Dread Spikes Toggle
- send_command('alias showm gs c showm') --Message Toggle
- send_command('alias showd gs c showd') --Debug Toggle
- send_command('alias dist gs c dist') --Distance toggle
- end
- -- Auto-initialize the user setup
- blu_user_setup()
- -- Define sets used by this job file.
- function get_sets()
- -- Grab gearsets from sidecar
- sidecar_get_sets()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function pretarget(spell,action)
- if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
- cancel_spell()
- send_command('input /item "Echo Drops" <me>')
- elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
- cancel_spell()
- send_command('Aggressor')
- 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 spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Out of Range]')
- return
- end
- end
- function precast(spell,action)
- if spell.type == "WeaponSkill" then
- if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
- cancel_spell()
- add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
- return
- else
- equipSet = sets.WS
- if equipSet[spell.english] then
- equipSet = equipSet[spell.english]
- end
- if equipSet[AccArray[AccIndex]] then
- equipSet = equipSet[AccArray[AccIndex]]
- end
- equip(equipSet)
- end
- elseif spell.type == "JobAbility" then
- if sets.JA[spell.english] then
- equip(sets.JA[spell.english])
- end
- elseif spell.english == "Subduction" then
- if Sword == 'Cleave' then
- equip(set_combine(sets.Midcast.MagicalBlueMagic,{main="Nibiru cudgel",sub="Nibiru cudgel"}))
- cast_delay(0.2)
- else
- equip(sets.Midcast.MagicalBlueMagic)
- cast_delay(0.2)
- end
- elseif 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,'Utsusemi') then
- if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
- if not Utsusemi then
- cancel_spell()
- add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
- end
- 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 == "Waltz" then
- equip(sets.Waltz)
- elseif spell.type == "Step" then
- equip(sets.Step)
- elseif spell.type == "Flourish" then
- equip(sets.Flourish)
- elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
- cast_delay(0.2)
- send_command('cancel Sneak')
- elseif spell.type == "Trust" then
- equip(sets.Precast.FastCast)
- end
- end
- function midcast(spell,action)
- equipSet = {}
- if spell.action_type == 'Magic' then
- equipSet = sets.Midcast
- if spell.skill=='Elemental Magic' or spell.name == 'Sanguine Blade' or MagicalBlueMagic:contains(spell.english) or MagicalBlueMagicDark:contains(spell.english) or MagicalBlueMagicLight:contains(spell.english) then
- if world.day_element == spell.element or world.weather_element == spell.element then
- elemental_waist.name=elemental_obi_day[spell.element]
- else
- elemental_waist.name="Eschan stone"
- end
- end
- if equipSet[spell.english] then
- equipSet = equipSet[spell.english]
- elseif (string.find(spell.english,'Cure') or BlueMagic_Healing:contains(spell.english)) and spell.english ~= "Cursna" then
- if string.find(spell.english,'Cura') then
- equipSet = equipSet.Cure
- elseif spell.target.type == 'SELF' then
- equipSet = equipSet.CureSelf
- elseif spell.target.type == 'PLAYER' then
- equipSet = equipSet.Cure
- end
- elseif PhysicalBlueMagic:contains(spell.english) or PhysicalBlueMagic_STR:contains(spell.english) or PhysicalBlueMagic_STRAcc:contains(spell.english) or PhysicalBlueMagic_DEX:contains(spell.english) or PhysicalBlueMagic_VIT:contains(spell.english) or PhysicalBlueMagic_AGI:contains(spell.english) then
- if PhysicalBlueMagic_STR:contains(spell.english) then
- equipSet = equipSet.PhysicalBlueMagic_STR
- elseif PhysicalBlueMagic_DEX:contains(spell.english) then
- equipSet = equipSet.PhysicalBlueMagic_DEX
- elseif PhysicalBlueMagic_STRAcc:contains(spell.english) then
- equipSet = equipSet.PhysicalBlueMagic_STRAcc
- elseif PhysicalBlueMagic_VIT:contains(spell.english) then
- equipSet = equipSet.PhysicalBlueMagic_VIT
- elseif PhysicalBlueMagic_AGI:contains(spell.english) then
- equipSet = equipSet.PhysicalBlueMagic_AGI
- elseif PhysicalBlueMagic:contains(spell.english) then
- equipSet = equipSet.PhysicalBlueMagic
- end
- if buffactive['Chain Affinity'] then
- equipSet = set_combine(equipSet,{head="Hashishin Kavuk +1",feet="Assim. charuqs +1"})
- end
- if buffactive.Efflux then
- equipSet = set_combine(equipSet,{legs="Hashishin tayt +1"})
- end
- elseif MagicalBlueMagic:contains(spell.english) then
- equipSet = equipSet.MagicalBlueMagic
- if MagicBurst then
- equipSet = equipSet.MagicBurst or equipSet
- elseif buffactive['Burst Affinity'] then
- equipSet = set_combine(equipSet,{feet="Hashishin basmak +1"})
- end
- if buffactive.Convergence then
- equipSet = set_combine(equipSet,{})
- end
- if Sword == 'Cleave' then
- equipSet = set_combine(equipSet,{main="Nibiru cudgel",sub="Nibiru cudgel"})
- end
- if TreasureHunter == 'Cleave' then
- equipSet = equipSet.TreasureHunter
- add_to_chat(003,'Cleaving in treasure hunter gear.')
- end
- elseif MagicalBlueMagicDark:contains(spell.english) then
- equipSet = equipSet.MagicalBlueMagicDark
- if MagicBurst then
- equipSet = equipSet.MagicBurst or equipSet
- elseif buffactive['Burst Affinity'] then
- equipSet = set_combine(equipSet,{feet="Hashishin basmak +1"})
- end
- if buffactive.Convergence then
- equipSet = set_combine(equipSet,{})
- end
- if Sword == 'Cleave' then
- equipSet = set_combine(equipSet,{main="Nibiru cudgel",sub="Nibiru cudgel"})
- end
- if TreasureHunter == 'Cleave' then
- equipSet = equipSet.TreasureHunter
- add_to_chat(003,'Cleaving in treasure hunter gear.')
- end
- elseif MagicalBlueMagicLight:contains(spell.english) then
- equipSet = equipSet.MagicalBlueMagicLight
- if MagicBurst then
- equipSet = equipSet.MagicBurst or equipSet
- elseif buffactive['Burst Affinity'] then
- equipSet = set_combine(equipSet,{feet="Hashishin basmak +1"})
- end
- if buffactive.Convergence then
- equipSet = set_combine(equipSet,{})
- end
- elseif BlueMagic_Accuracy:contains(spell.english) then
- equipSet = equipSet.BlueMagic_Accuracy
- elseif BlueMagic_AccuracyRecast:contains(spell.english) then
- equipSet = equipSet.BlueMagic_AccuracyRecast
- elseif BlueMagic_AccuracyRecastDark:contains(spell.english) then
- equipSet = equipSet.BlueMagic_AccuracyRecastDark
- elseif BlueMagic_Stun:contains(spell.english) then
- equipSet = equipSet.BlueMagic_Stun
- elseif BlueMagic_HealingWW:contains(spell.english) then
- equipSet = equipSet.BlueMagic_HealingWW
- elseif BlueMagicBuffRecast:contains(spell.english) then
- equipSet = equipSet.BlueMagicBuffRecast
- elseif BlueMagic_BuffSkill:contains(spell.english) then
- equipSet = equipSet.BlueMagic_BuffSkill
- elseif BlueMagic_BuffRefresh:contains(spell.english) then
- equipSet = equipSet.BlueMagic_BuffRefresh
- elseif BlueMagic_Diffusion:contains(spell.english) and buffactive.Diffusion then
- equipSet = set_combine(equipSet,{feet="Luhlaza charuqs"})
- elseif BlueMagic_Breath:contains(spell.english) then
- equipSet = equipSet.BlueMagic_Breath
- elseif BlueMagic_Regen:contains(spell.english) then
- equipSet = equipSet.BlueMagic_Regen
- 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 0.7;cancel Copy Image*')
- end
- equipSet = equipSet.Haste
- elseif spell.english == 'Monomi: Ichi' then
- if buffactive['Sneak'] then
- send_command('@wait 0.7;cancel sneak')
- end
- equipSet = equipSet.Haste
- elseif equipSet[spell.skill] then
- equipSet = equipSet[spell.skill]
- end
- elseif equipSet[spell.english] then
- equipSet = equipSet[spell.english]
- end
- equip(equipSet)
- end
- function aftercast(spell,action)
- if spell.type == "WeaponSkill" and not spell.interrupted then
- send_command('wait 0.2;gs c TP')
- end
- if MagicalBlueMagic:contains(spell.english) then
- if Sword == 'Cleave' then
- equip({main ="Medeina kilij",sub="Bolelabunga"})
- end
- elseif MagicalBlueMagicDark:contains(spell.english) then
- if Sword == 'Cleave' then
- equip({main ="Medeina kilij",sub="Bolelabunga"})
- end
- end
- if not spell.interrupted then
- if spell.english == 'Dream Flower' then
- send_command('input /echo Dream Flower has been cast.')
- send_command('wait 60;gs c DFa;wait 15;gs c DFb;wait 15;gs c DFc')
- end
- end
- status_change(player.status)
- end
- function status_change(new,old)
- if Armor == 'PDT' then
- equip(sets.PDT)
- elseif Armor == 'PDTII' then
- equip(sets.PDTII)
- elseif Armor == 'MDT' then
- equip(sets.MDT)
- elseif new == 'Engaged' then
- if aWS then
- if player.tp == 3000 and not buffactive.amnesia then
- if ShowD then
- add_to_chat(154,'aWS 3k TP upon engagement failsafe activation debug message.')
- end
- rng()
- windower.send_command('wait 2;wait '..N..';input /ws "Chant du Cygne" <t>;gs c aWSfs')
- end
- end
- if TreasureHunter == 'Tag' or TreasureHunter == 'Cleave' then
- equipSet = sets.TH
- EngagedTP = player.tp
- add_to_chat(003,'Equipping Treasure Hunter gear.')
- else
- equipSet = sets.TP
- end
- if Armor == 'Hybrid' and equipSet["Hybrid"] then
- equipSet = equipSet["Hybrid"]
- end
- if equipSet[AccArray[AccIndex]] then
- equipSet = equipSet[AccArray[AccIndex]]
- end
- if buffactive.March == 2 or buffactive.March == 1 or buffactive[580] or buffactive['Mighty Guard'] and (buffactive.Embrava or buffactive.Haste) and equipSet["HighHaste"] then
- equipSet = equipSet["HighHaste"]
- end
- equip(equipSet)
- elseif new == 'Idle' then
- equip(sets.Idle[IdleArray[IdleIndex]])
- elseif new == 'Resting' then
- equip(sets.Resting)
- end
- end
- function buff_change(buff,gain)
- buff = string.lower(buff)
- if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
- if gain then
- send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
- else
- send_command('timers delete "Aftermath: Lv.3"')
- add_to_chat(123,'AM3: [OFF]')
- end
- elseif buff == 'weakness' then -- Weakness Timer --
- if gain then
- send_command('timers create "Weakness" 300 up')
- else
- send_command('timers delete "Weakness"')
- end
- elseif buff == 'aquaveil' then -- Aquaveil Timer --
- if gain then
- add_to_chat(123,'Aquaveil has been cast.')
- send_command('wait 1047;gs c CAa;wait 22;gs c CAb')
- else
- add_to_chat(123,'Aquaveil has expired.')
- windower.play_sound('C:/Users/Shirley/Documents/Windower4/addons/GearSwap/data/wav/Expired.wav')
- end
- elseif buff == 'stun' then -- Stun PDT --
- if gain and armor == 'None' then
- send_command('gs c C7;wait 8;gs c C7')
- end
- end
- end
- -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
- function self_command(orig_command)
- if type(orig_command) == 'string' then
- command = T(orig_command:split(' '))
- if #command == 0 then
- return
- end
- end
- if command[1] == 'C1' then -- Accuracy Level Toggle --
- AccIndex = (AccIndex % #AccArray) + 1
- add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
- status_change(player.status)
- elseif command[1] == 'C3' then -- Magic Burst Toggle --
- MagicBurst = not MagicBurst
- add_to_chat(MagicBurst and 158 or 123, 'Magic Burst: ' .. (MagicBurst and '[Activated]' or '[Deactivated]'))
- elseif command[1] == 'C5' then -- Auto Update Gear Toggle --
- status_change(player.status)
- add_to_chat(158,'Auto Update Gear')
- elseif command[1] == 'C2' then -- Hybrid Toggle --
- if Armor == 'Hybrid' then
- Armor = 'None'
- add_to_chat(123,'Hybrid Set: [Unlocked]')
- else
- Armor = 'Hybrid'
- add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
- end
- status_change(player.status)
- elseif command[1] == '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[1] == 'C4' then -- PDTII Toggle --
- if Armor == 'PDTII' then
- Armor = 'None'
- add_to_chat(123,'PDTII Set: [Unlocked]')
- else
- Armor = 'PDTII'
- add_to_chat(158,'PDTII Set: [Locked]')
- end
- status_change(player.status)
- elseif command[1] == 'C15' then -- MDT Toggle --
- if Armor == 'MDT' then
- Armor = 'None'
- add_to_chat(123,'MDT Set: [Unlocked]')
- else
- Armor = 'MDT'
- add_to_chat(158,'MDT Set: [Locked]')
- end
- status_change(player.status)
- elseif command[1] == 'dist' then -- Distance Toggle //dist 6 to set to 6
- target_distance = command[2]
- add_to_chat(158,'Distance: '..target_distance)
- elseif command[1] == 'C6' then -- Idle Toggle --
- IdleIndex = (IdleIndex % #IdleArray) + 1
- add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
- status_change(player.status)
- elseif command[1] == 'C17' then -- Sword Mode Toggle --
- if Sword == 'Melee' then
- Sword = 'Cleave'
- add_to_chat(158,'Sword Mode: Cleave')
- else
- Sword = 'Melee'
- add_to_chat(158,'Sword Mode: Melee')
- end
- elseif command[1] == 'TP' then
- add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
- elseif command[1] == 'ACDC' then -- Auto CDC Toggle --
- if aCDC == 'None' then
- aWS = true
- aCDC = 'Standard'
- add_to_chat(158, '[Standard]')
- send_command('gs c aWSfs')
- elseif aCDC == 'Standard' then
- aWS = true
- aCDC = 'Fast'
- add_to_chat(158, '[Fast]')
- elseif aCDC =='Fast' then
- aWS = false
- aCDC = 'None'
- add_to_chat(123, '[Deactivated]')
- end
- elseif command[1] == 'aWSon' then -- aWS reactivation
- send_command('wait 2;gs c aWSfs')
- aWS = true
- if ShowD then
- add_to_chat(158,'Returning aWS to true.')
- end
- elseif command[1] == 'aWSfs' then -- aWS failsafe
- if test then
- if player.status == 'Engaged' and player.tp == 3000 then
- if ShowD then
- add_to_chat(154,'aWS 3k TP failsafe activation debug message.')
- end
- rng()
- windower.send_command('wait 2;wait '..N..';input /ws "Chant du Cygne" <t>;gs c aWSfs')
- else
- if ShowD then
- add_to_chat(154,'aCDC\'s 3k TP failsafe not required.')
- end
- end
- end
- elseif command[1] == 'showm' then --Debug Message Toggle
- ShowM = not ShowM
- add_to_chat(ShowM and 158 or 123, 'Roland\'s Messages: ' .. (ShowD and '[Activated]' or '[Deactivated]'))
- elseif command[1] == 'showd' then --Debug Message Toggle
- ShowD = not ShowD
- add_to_chat(ShowD and 158 or 123, 'Roland\'s Debug Messages: ' .. (ShowD and '[Activated]' or '[Deactivated]'))
- elseif command[1] == 'TH' then -- Treasure Hunter Toggle --
- if TreasureHunter == 'None' then
- TreasureHunter = 'Tag'
- THTP = true
- add_to_chat(158, 'Treasure Hunter: Tag [Activated]')
- elseif TreasureHunter == 'Tag' then
- TreasureHunter = 'Cleave'
- THTP = true
- add_to_chat(158, 'Treasure Hunter: Tag & Cleave [Activated]')
- elseif TreasureHunter == 'Cleave' then
- TreasureHunter = 'None'
- THTP = false
- add_to_chat(123, 'Treasure Hunter: [Deactivated]')
- end
- status_change(player.status)
- elseif command[1] == "TPchange" then --Treasure Hunter asset--
- EngagedTP = -1
- equip(sets.TP)
- add_to_chat(003,'The enemy has been tagged, switching to TP set.')
- elseif command[1] == "AU" then --Utsusemi toggle
- Utsusemi = not Utsusemi
- add_to_chat(Utsusemi and 158 or 123, 'Auto Utsusemi: ' .. (Utsusemi and '[Activated]' or '[Deactivated]'))
- elseif command[1] == "DrW" then --Dread Spikes warning toggle
- DreadW = not DreadW
- add_to_chat(DreadW and 158 or 123, 'Dread Warning: ' .. (DreadW and '[Activated]' or '[Deactivated]'))
- elseif command[1] == 'W1' then
- add_to_chat(123,'Warning')
- windower.play_sound('C:/Users/Shirley/Documents/Windower4/addons/GearSwap/data/wav/Chime.wav')
- elseif command[1] == "CLV" then -- Cleave Mode Initialization --
- add_to_chat(201,'Cleave Mode Activated.')
- set_macro_page(2, 16)
- send_command('input //aset spellset cleave2;wait 3;gs equip sets.Medeina')
- Armor = 'PDTII'
- add_to_chat(158,'PDTII Set: [Locked]')
- Sword = 'Cleave'
- add_to_chat(158,'Sword Mode: Cleave')
- add_to_chat(160,'Setting spells...')
- status_change(player.status)
- elseif command[1] == "BRT" then -- Brute Mode Initialization --
- add_to_chat(201,'Brute Mode Activated.')
- set_macro_page(2, 17)
- send_command('input //aset spellset brute;wait 3;gs equip sets.Coladas')
- Armor = 'None'
- add_to_chat(158,'Armor: [Unlocked]')
- Sword = 'Melee'
- add_to_chat(158,'Sword Mode: Melee')
- add_to_chat(160,'Setting spells...')
- status_change(player.status)
- elseif command[1] == 'DFa' then
- add_to_chat(123,'Warning: Dream Flower has 30-60 seconds remaining.')
- elseif command[1] == 'DFb' then
- add_to_chat(123,'Warning: Dream Flower has 15-45 seconds remaining.')
- windower.play_sound('C:/Users/Shirley/Documents/Windower4/addons/GearSwap/data/wav/Honk.wav')
- elseif command[1] == 'DFc' then
- add_to_chat(123,'Warning: Dream Flower will wear soon!')
- windower.play_sound('C:/Users/Shirley/Documents/Windower4/addons/GearSwap/data/wav/Bike.wav')
- elseif command[1] == 'EstLuo' then
- add_to_chat(005,'Estherr\'s luopan has vanished!')
- elseif command[1] == 'LevLuo' then
- add_to_chat(005,'Levii\'s luopan has vanished!')
- 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
- -----------------------------------------------------------------
- -- Spell maps for this job
- -----------------------------------------------------------------
- function blu_spell_maps()
- PhysicalBlueMagic = S{
- 'Asuran Claws','Bludgeon','Body Slam','Feather Storm','Mandibular Bite',
- 'Queasyshroom','Power Attack','Ram Charge','Screwdriver','Sickle Slash',
- 'Smite of Rage','Spinal Cleave','Spiral Spin','Terror Touch'}
- PhysicalBlueMagic_STR = S{
- 'Sinker Drill','Thrashing Assault','Battle Dance','Bloodrake','Death Scissors','Dimensional Death','Empty Thrash',
- 'Quadrastrike','Uppercut','Vertical Cleave'}
- PhysicalBlueMagic_STRAcc = S{
- 'Heavy Strike'}
- PhysicalBlueMagic_DEX = S{
- 'Amorphic Spikes','Claw Cyclone','Disseverment','Foot Kick',
- 'Frenetic Rip','Goblin Rush','Hysteric Barrage','Seedspray',
- 'Vanity Dive'}
- PhysicalBlueMagic_VIT = S{
- 'Cannonball','Glutinous Dart','Grand Slam','Quad. Continuum',
- 'Sprout Smack'}
- PhysicalBlueMagic_AGI = S{
- 'Helldive','Hydro Shot','Jet Stream','Pinecone Bomb',
- 'Wild Oats'}
- MagicalBlueMagic = S{
- 'Blitzstrahl','Tearing Gust','Cesspool','Searing Tempest','Spectral Floe','Scouring Spate','Anvil Lightning','Silent Storm','Entomb','Charged Whisker','Ice Break','Molting Plumage','Nectarous Deluge','Polar Roar','Crashing Thunder','Cursed Sphere','Bomb Toss','Maelstrom','Blazing Bound','Thunderbolt','Acrid Stream','Droning Whirlwind','Embalming Earth',
- 'Sandspin','Firespit','Foul Waters','Gates of Hades','Leafstorm','Subduction','Mind Blast','Corrosive Ooze',
- 'Regurgitation','Rending Deluge','Tem. Upheaval','Thermal Pulse','Water Bomb'}
- MagicalBlueMagicDark = S{
- 'Tenebral Crush','Palling Salvo','Eyes On Me','Dark Orb','Evryone. Grudge','Death Ray'}
- MagicalBlueMagicLight = S{
- 'Retinal Glare','Blinding Fulgor','Magic Hammer','Uproot','Rail Cannon','Diffusion Ray',}
- BlueMagic_Accuracy = S{
- 'Temporal Shift','Cruel Joke','Absolute Terror','1000 Needles','Actinic Burst','Auroral Drape','Awful Eye',
- 'Dream Flower','Blank Gaze','Blistering Roar','Chaotic Eye',
- 'Cimicine Discharge','Cold Wave','Demoralizing Roar',
- 'Enervation','Feather Tickle','Filamented Hold','Frightful Roar',
- 'Geist Wall','Hecatomb Wave','Infrasonics','Jettatura','Light of Penance','Lowing',
- 'Mortal Ray','Reaving Wind',
- 'Sandspray','Sheep Song','Soporific','Sound Blast','Stinking Gas','Sub-zero Smash',
- 'Venom Shell','Yawn'}
- BlueMagic_AccuracyRecast= S{
- 'Voracious Trunk'}
- BlueMagic_AccuracyRecastDark = S{
- 'Digest','Blood Saber','Blood Drain','Osmosis','MP Drainkiss',}
- BlueMagic_Breath = S{
- 'Bad Breath','Flying Hip Press','Final Sting','Frost Breath','Heat Breath',
- 'Magnetite Cloud','Poison Breath','Radiant Breath','Self Destruct','Thunder Breath',
- 'Wind Breath'}
- BlueMagic_Regen = S{'Regeneration'}
- BlueMagicBuffRecast = S{
- 'Erratic Flutter','Cocoon','Memento Mori','Harden Shell','Amplification','Zephyr Mantle','Animating Wail','Winds of Promy.','Carcharian Verve',
- 'Orcish Counterstance','Nature\'s Meditation','Plasma Charge','Saline Coat',
- 'Pyric Bulwark','Warm-Up','Reactor Cool','Triumphant Roar'}
- BlueMagic_BuffSkill = S{
- 'Diamondhide','Magic Barrier','Barrier Tusk','Occultation','Metallic Body'}
- BlueMagic_BuffRefresh = S{'Battery Charge','Refresh'}
- BlueMagic_Diffusion = S{
- 'Mighty Guard','Amplification','Cocoon','Exuviation','Feather Barrier','Harden Shell','Memento Mori',
- 'Metallic Body','Plasma Charge','Reactor Cool','Refueling','Saline Coat','Animating Wail','Battery Charge','Warm-Up',
- 'Zephyr Mantle'}
- BlueMagic_Healing = S{
- 'Restoral','Healing Breeze','Magic Fruit','Plenilune Embrace','Pollen',
- 'Wild Carrot'}
- BlueMagic_HealingWW = S{
- 'White Wind',}
- BlueMagic_Stun = S{
- 'Benthic Typhoon','Bilgestorm','Barbed Crescent','Paralyzing Triad','Tourbillion','Saurian Slide','Sweeping Gouge','Frypan','Head Butt',
- 'Sudden Lunge','Tail slap','Delta Thrust','Whirl of Rage'}
- Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation
- Curaga_Spells = {"Curaga","Curaga II"} -- Curaga Degradation
- select_default_macro_book() -- Change Default Macro Book At The End
- end
- -----------------------------------------------------------------
- -- Utiilty functions for this job
- -----------------------------------------------------------------
- function rng()
- if aCDC == 'Fast' then
- if ShowD then
- add_to_chat(158,'aCDC\'s fast RNG activation.')
- end
- N = (math.random(20,60)/100)
- if N == 0.6 then
- N = (math.random(150,180)/100)
- elseif N == 0.59 then
- N = (math.random(100,140)/100)
- elseif N >= 0.57 then
- N = (math.random(60,90)/100)
- end
- if ShowD then
- add_to_chat(158,'ACDC\'s fast N value was equal to '..N..' prior to rounding.')
- end
- else
- if ShowD then
- add_to_chat(158,'aCDC\' standard RNG activation.')
- end
- N = (math.random(40,90)/100)
- if N >= 0.88 then
- N = (math.random(150,180)/100)
- elseif N >= 0.81 then
- N = (math.random(100,140)/100)
- end
- if ShowD then
- add_to_chat(158,'ACDC\'s standard N value was equal to '..N..' prior to rounding.')
- end
- end
- N = math.floor(N*10+0.5)/10
- if ShowD then
- add_to_chat(158,'aCDC\'s rounded N value was '..N..'.')
- end
- end
- function sub_job_change(newSubjob, oldSubjob)
- select_default_macro_book()
- end
- function set_macro_page(set,book)
- if not tonumber(set) then
- add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
- return
- end
- if set < 1 or set > 10 then
- add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
- return
- end
- if book then
- if not tonumber(book) then
- add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
- return
- end
- if book < 1 or book > 20 then
- add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
- return
- end
- send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
- else
- send_command('@input /macro set '..tostring(set))
- end
- end
- function select_default_macro_book()
- -- Default macro set/book
- if player.sub_job == 'WAR' or player.sub_job == 'NIN' or player.sub_job == 'THF' then
- set_macro_page(2, 17)
- send_command('wait 7;input /lockstyleset 56')
- else
- set_macro_page(2, 16)
- send_command('wait 7;input /lockstyleset 56')
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement