Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function get_sets()
- AccIndex = 1
- AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For Shooting/QD/TP/WS. 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 = {"Full","DT","Warp"} -- Default Idle Set Is Movement --
- Armor = 'None'
- define_roll_values()
- warning = false
- Lock_Main = 'OFF' -- Set Default Lock Main Weapon ON or OFF Here --
- AutoGunWS = "Last Stand" -- Set Auto Gun WS Here --
- AutoMode = 'OFF' -- Set Default Auto RA/WS ON or OFF Here --
- Obi = 'ON' -- Turn Default Obi ON or OFF Here --
- ammo_warning_limit = 10 -- Set Ammo Limit Check Here --
- target_distance = 6 -- Set Default Distance Here --
- send_command('input /macro book 1;wait .1;input /macro set 1') -- Change Default Macro Book Here --
- ACC_Shots = S{"Light Shot","Dark Shot"}
- -- Camulus's Mantle Augments --
- MABWSMantle={ name="Camulus's Mantle", augments={'AGI+20','Mag. Acc+20 /Mag. Dmg.+20','AGI+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
- STPMantle={ name="Camulus's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Phys. dmg. taken-10%',}}
- MidShotMantle={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','"Store TP"+10','Phys. dmg. taken-10%',}}
- PreShotMantle={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','"Snapshot"+10',}}
- STRWSDMantle={ name="Camulus's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
- AGIWSDMantle={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
- --------------------
- -- Key Binds Load --
- --------------------
- -- Key Bind Toggles (The Same for all my job files) (Ctrl Key) --
- send_command('bind ^A input //gs c acc')
- send_command('bind ^D input //gs c pdt')
- send_command('bind ^I input //gs c idle')
- -- COR Job Ability Key Binds (Alt Key) --
- send_command('bind !7 input //ja Crooked Cards <me>')
- send_command('bind !8 input //ja Snake Eye <me>')
- send_command('bind !9 input //ja Fold <me>')
- send_command('bind !0 input //ja Random Deal <me>')
- -- COR Phantom Roll Key Binds (Alt Key) --
- send_command('bind !A input //ja Allies\' Roll <me>')
- send_command('bind !B input //ja Bolter\'s Roll <me>')
- send_command('bind !C input //ja Chaos Roll <me>')
- send_command('bind !D input //ja Dancer\'s Roll <me>')
- send_command('bind !E input //ja Evoker\s Roll <me>')
- send_command('bind !F input //ja Fighter\'s Roll <me>')
- send_command('bind !G input //ja Gallant\'s Roll <me>')
- send_command('bind !H input //ja Hunter\'s Roll <me>')
- send_command('bind !Q input //ja Warlock\'s Roll <me>')
- send_command('bind !R input //ja Rogue\'s Roll <me>')
- send_command('bind !S input //ja Samurai Roll <me>')
- send_command('bind !T input //ja Tactician\'s Roll <me>')
- send_command('bind !W input //ja Wizard\'s Roll <me>')
- send_command('bind !X input //ja Corsair\'s Roll <me>')
- -- COR Weapon Skill Key Binds --
- send_command('bind F12 input /ws "Last Stand" <t>')
- send_command('bind !F12 input /ws "Leaden Salute" <t>')
- send_command('bind Delete input /ws "Savage Blade" <t>')
- ----------------------
- -- Key Binds Unload --
- ----------------------
- function file_unload()
- -- Unbind Toggles --
- send_command('unbind ^A')
- send_command('unbind ^D')
- send_command('unbind ^I')
- -- Unbind COR JA's --
- send_command('unbind !7')
- send_command('unbind !8')
- send_command('unbind !9')
- send_command('unbind !0')
- -- Unbind COR Rolls --
- send_command('unbind !A')
- send_command('unbind !B')
- send_command('unbind !C')
- send_command('unbind !D')
- send_command('unbind !E')
- send_command('unbind !F')
- send_command('unbind !G')
- send_command('unbind !H')
- send_command('unbind !Q')
- send_command('unbind !R')
- send_command('unbind !S')
- send_command('unbind !T')
- send_command('unbind !W')
- send_command('unbind !X')
- -- Unload Weapon Skill Key Binds --
- send_command('unbind F7')
- send_command('unbind F12')
- send_command('unbind !F12')
- send_command('unbind Delete')
- end
- -- Idle/Town Sets --
- sets.Idle = {
- ammo="Chrono Bullet",
- head="Meghanada Visor +2",
- neck="Bathy Choker +1",
- ear1="Infused Earring",
- ear2="Odnowa Earring +1",
- body="Meg. Cuirie +2",
- hands="Meg. Gloves +2",
- ring1="Defending Ring",
- ring2="Meghanada Ring",
- back="Moonbeam Cape",
- waist="Flume Belt",
- legs="Carmine Cuisses +1",
- feet="Meg. Jam. +2"}
- sets.Idle.Full = set_combine(sets.Idle,{})
- sets.Idle.DT = set_combine(sets.Idle,{})
- sets.Idle.Warp = set_combine(sets.Idle,{
- ring2="Warp Ring"})
- -- QD Sets --
- sets.QD = {
- ammo="Animikii Bullet",
- head="Lak. Hat +1",
- neck="Sanctity Necklace",
- ear1="Gwati Earring",
- ear2="Hecate's Earring",
- body="Lanun Frac +3",
- hands="Carmine Fin. Ga. +1",
- ring1="Dingir Ring",
- ring2="Arvina Ringlet +1",
- back=MABWSMantle,
- waist="Eschan Stone",
- legs={ name="Herculean Trousers", augments={'Mag. Acc.+19 "Mag.Atk.Bns."+19','Magic burst dmg.+1%','Mag. Acc.+11','"Mag.Atk.Bns."+15',}},
- feet="Chass. Bottes +1"}
- sets.QD.MidACC = set_combine(sets.QD,{})
- sets.QD.HighACC = set_combine(sets.QD.MidACC,{
- ear2="Hermetic Earring",
- body="Mummu Jacket +2",
- hands="Mummu Wrists +2",
- ring1="Kishar Ring",
- legs="Mummu Kecks +2"})
- -- PDT/MDT Sets --
- sets.PDT = {
- ammo="Chrono Bullet",
- head="Meghanada Visor +2",
- neck="Twilight Torque",
- ear1="Odnowa Earring",
- ear2="Odnowa Earring +1",
- body="Meg. Cuirie +2",
- hands="Meg. Gloves +2",
- ring1="Defending Ring",
- ring2="Gelatinous Ring +1",
- back="Moonbeam Cape",
- waist="Flume Belt",
- legs="Mummu Kecks +2",
- feet="Meg. Jam. +2"}
- sets.MDT = set_combine(sets.PDT,{})
- -- Roll Set --
- sets.Rolls = {
- ammo="Chrono Bullet",
- head="Lanun Tricorne +1",
- neck="Regal Necklace",
- hands="Chasseur's Gants +1",
- ring2="Luzaf's Ring",
- back="Camulus's Mantle"}
- -- Preshot --
- sets.Preshot = {
- ammo="Chrono Bullet",
- head="Chass. Tricorne +1",
- neck="Marked Gorget",
- ear1="Enervating Earring",
- ear2="Telos Earring",
- body="Laksa. Frac +3",
- hands="Carmine Fin. Ga. +1",
- ring1="Hajduk Ring +1",
- ring2="Hajduk Ring +1",
- back=PreShotMantle,
- waist="Impulse Belt",
- legs="Adhemar Kecks",
- feet="Meg. Jam. +2"}
- -- Shooting Base Set --
- sets.Midshot = {
- ammo="Chrono Bullet",
- head="Meghanada Visor +2",
- neck="Marked Gorget",
- ear1="Enervating Earring",
- ear2="Telos Earring",
- body="Mummu Jacket +2",
- hands={ name="Adhemar Wristbands", augments={'AGI+10','Rng.Acc.+15','Rng.Atk.+15',}},
- ring1="Mummu Ring",
- ring2="Hajduk Ring +1",
- back=MidShotMantle,
- waist="Kwahu Kachina Belt",
- legs="Adhemar Kecks",
- feet="Mummu Gamash. +2"}
- -- Melee Sets --
- sets.Melee = {
- ammo="Chrono Bullet",
- head="Dampening Tam",
- neck="Lissome Necklace",
- ear1="Suppanomimi",
- ear2="Cessance Earring",
- body="Adhemar Jacket",
- hands={ name="Adhemar Wristbands", augments={'DEX+10','AGI+10','Accuracy+15',}},
- ring1="Petrov Ring",
- ring2="Epona's Ring",
- back=STPMantle,
- waist="Windbuffet Belt +1",
- legs="Samnuha Tights",
- feet={ name="Herculean Boots", augments={'Accuracy+26','"Store TP"+4','DEX+2','Attack+13',}}}
- sets.Melee.MidACC = set_combine(sets.Melee,{
- head="Carmine Mask +1",
- legs="Carmine Cuisses +1"})
- sets.Melee.HighACC = set_combine(sets.Melee.MidACC,{
- neck="Subtlety Spec.",
- ear2="Telos Earring",
- hands="Meg. Gloves +2",
- ring1="Meghanada Ring",
- waist="Hurch'lan Sash",
- feet="Meg. Jam. +2"})
- -- WS Base Set (multi-attack) --
- sets.WS = {
- ammo="Chrono Bullet",
- head="Dampening Tam",
- neck="Fotia Gorget",
- ear1="Moonshade Earring",
- ear2="Brutal Earring",
- body="Adhemar Jacket",
- hands="Adhemar Wristbands",
- ring1="Ifrit Ring",
- ring2="Epona's Ring",
- back=STRWSDMantle,
- waist="Fotia Belt",
- legs="Carmine Cuisses +1",
- feet={ name="Herculean Boots", augments={'Accuracy+26','"Store TP"+4','DEX+2','Attack+13',}}}
- sets.WS.MidACC = set_combine(sets.WS,{})
- sets.WS.HighACC = set_combine(sets.WS.MidACC,{})
- -- MAB WS Set --
- sets.WS.MABWS = {
- ammo="Eminent Bullet",
- head={ name="Herculean Helm", augments={'Weapon skill damage +3%','Accuracy+23','Accuracy+18 Attack+18','Mag. Acc.+1 "Mag.Atk.Bns."+1',}},
- neck="Sanctity Necklace",
- ear1="Moonshade Earring",
- ear2="Friomisi Earring",
- body="Lanun Frac +3",
- hands="Carmine Fin. Ga. +1",
- ring1="Dingir Ring",
- ring2="Arvina Ringlet +1",
- back=MABWSMantle,
- waist="Eschan Stone",
- legs={ name="Herculean Trousers", augments={'Mag. Acc.+19 "Mag.Atk.Bns."+19','Magic burst dmg.+1%','Mag. Acc.+11','"Mag.Atk.Bns."+15',}},
- feet="Lanun Bottes +3"}
- -- One-Hit WS Base Set --
- sets.WS.OneHit = {
- ammo="Chrono Bullet",
- head={ name="Herculean Helm", augments={'Weapon skill damage +3%','Accuracy+23','Accuracy+18 Attack+18','Mag. Acc.+1 "Mag.Atk.Bns."+1',}},
- neck="Caro Necklace",
- ear1="Moonshade Earring",
- ear2="Ishvara Earring",
- body="Laksa. Frac +3",
- hands="Meg. Gloves +2",
- ring1="Ifrit Ring",
- ring2="Ifrit Ring",
- back=STRWSDMantle,
- waist="Prosilio Belt",
- legs={ name="Herculean Trousers", augments={'Accuracy+25','Weapon skill damage +3%','AGI+7',}},
- feet="Lanun Bottes +3"}
- sets.WS.OneHit.MidACC = set_combine(sets.WS.OneHit,{})
- sets.WS.OneHit.HighACC = set_combine(sets.WS.OneHit.MidACC,{})
- -- Ranged WS Base Set --
- sets.WS.Ranged = {
- ammo="Chrono Bullet",
- head="Meghanada Visor +2",
- neck="Fotia Gorget",
- ear1="Moonshade Earring",
- ear2="Ishvara Earring",
- body="Laksa. Frac +3",
- hands="Meg. Gloves +2",
- ring1="Dingir Ring",
- ring2="Garuda Ring +1",
- back=AGIWSDMantle,
- waist="Fotia Belt",
- legs="Meg. Chausses +2",
- feet="Lanun Bottes +3"}
- sets.WS.Ranged.MidACC = set_combine(sets.WS.Ranged,{})
- sets.WS.Ranged.HighACC = set_combine(sets.WS.Ranged.MidACC,{})
- -- Sword WS Sets --
- -- Savage Blade Set --
- sets.WS["Savage Blade"] = set_combine(sets.WS.OneHit,{
- ring2="Rufescent Ring"})
- sets.WS["Savage Blade"].MidACC = set_combine(sets.WS.OneHit.MidACC,{
- ring2="Rufescent Ring"})
- sets.WS["Savage Blade"].HighACC = set_combine(sets.WS.OneHit.HighACC,{
- ring2="Rufescent Ring"})
- -- Requiescat Set --
- sets.WS.Requiescat = set_combine(sets.WS,{
- ring1="Rufescent Ring"})
- sets.WS.Requiescat.MidACC = set_combine(sets.WS.MidACC,{
- ring1="Rufescent Ring"})
- sets.WS.Requiescat.HighACC = set_combine(sets.WS.HighACC,{
- ring1="Rufescent Ring"})
- -- Dagger WS Sets --
- -- Evisceration Set --
- sets.WS.Evisceration = set_combine(sets.WS,{})
- sets.WS.Evisceration.MidACC = set_combine(sets.WS.MidACC,{})
- sets.WS.Evisceration.HighACC = set_combine(sets.WS.HighACC,{})
- -- Exenterator Set --
- sets.WS.Exenterator = set_combine(sets.WS,{})
- sets.WS.Exenterator.MidACC = set_combine(sets.WS.MidACC,{})
- sets.WS.Exenterator.HighACC = set_combine(sets.WS.HighACC,{})
- -- Marksmanship WS Sets --
- -- Hot Shot Sets --
- sets.WS["Hot Shot"] = set_combine(sets.WS.Ranged,{})
- sets.WS["Hot Shot"].MidACC = set_combine(sets.WS.Ranged.MidACC,{})
- sets.WS["Hot Shot"].HighACC = set_combine(sets.WS.Ranged.HighACC,{})
- -- Split Shot Sets --
- sets.WS["Split Shot"] = set_combine(sets.WS.Ranged,{})
- sets.WS["Split Shot"].MidACC = set_combine(sets.WS.Ranged.MidACC,{})
- sets.WS["Split Shot"].HighACC = set_combine(sets.WS.Ranged.HighACC,{})
- -- Sniper Shot Sets --
- sets.WS["Sniper Shot"] = set_combine(sets.WS.Ranged,{})
- sets.WS["Sniper Shot"].MidACC = set_combine(sets.WS.Ranged.MidACC,{})
- sets.WS["Sniper Shot"].HighACC = set_combine(sets.WS.Ranged.HighACC,{})
- -- Slug Shot Sets --
- sets.WS["Slug Shot"] = set_combine(sets.WS.Ranged,{})
- sets.WS["Slug Shot"].MidACC = set_combine(sets.WS.Ranged.MidACC,{})
- sets.WS["Slug Shot"].HighACC = set_combine(sets.WS.Ranged.HighACC,{})
- -- Detonator Sets --
- sets.WS.Detonator = set_combine(sets.WS.Ranged,{})
- sets.WS.Detonator.MidACC = set_combine(sets.WS.Ranged.MidACC,{})
- sets.WS.Detonator.HighACC = set_combine(sets.WS.Ranged.HighACC,{})
- -- Numbing Shot Sets --
- sets.WS["Numbing Shot"] = set_combine(sets.WS.Ranged,{})
- sets.WS["Numbing Shot"].MidACC = set_combine(sets.WS.Ranged.MidACC,{})
- sets.WS["Numbing Shot"].HighACC = set_combine(sets.WS.Ranged.HighACC,{})
- -- Last Stand Sets --
- sets.WS["Last Stand"] = set_combine(sets.WS.Ranged,{})
- sets.WS["Last Stand"].MidACC = set_combine(sets.WS.Ranged.MidACC,{})
- sets.WS["Last Stand"].HighACC = set_combine(sets.WS.Ranged.HighACC,{})
- -- Wildfire Sets --
- sets.WS.Wildfire = set_combine(sets.WS.MABWS,{})
- sets.WS.Wildfire.MidACC = set_combine(sets.WS.MABWS,{})
- sets.WS.Wildfire.HighACC = set_combine(sets.WS.MABWS,{})
- -- Leaden Salute Sets --
- sets.WS['Leaden Salute'] = set_combine(sets.WS.MABWS,{
- head="Pixie Hairpin +1",
- ring2="Archon Ring"})
- sets.WS['Leaden Salute'].MidACC = set_combine(sets.WS.MABWS,{
- head="Pixie Hairpin +1",
- ring2="Archon Ring"})
- sets.WS['Leaden Salute'].HighAC = set_combine(sets.WS.MABWS,{
- head="Pixie Hairpin +1",
- ring2="Archon Ring"})
- -- Elemental Obi --
- sets.Obi = {waist="Hachirin-no-obi"}
- sets.Obi.Lightning = {waist="Hachirin-no-obi"}
- sets.Obi.Water = {waist="Hachirin-no-obi"}
- sets.Obi.Fire = {waist="Hachirin-no-obi"}
- sets.Obi.Ice = {waist="Hachirin-no-obi"}
- sets.Obi.Wind = {waist="Hachirin-no-obi"}
- sets.Obi.Earth = {waist="Hachirin-no-obi"}
- sets.Obi.Light = {waist="Hachirin-no-obi"}
- sets.Obi.Dark = {waist="Hachirin-no-obi"}
- -- JA Sets --
- sets.JA = {}
- sets.JA["Random Deal"] = {body="Lanun Frac +3"}
- sets.JA.Fold = {}
- sets.JA["Snake Eye"] = {legs="Lanun Trews +1"}
- sets.JA["Wild Card"] = {feet="Lanun Bottes +3"}
- sets.JA["Double-Up"] = {
- ammo="Chrono Bullet",
- head="Lanun Tricorne +1",
- neck="Regal Necklace",
- hands="Chasseur's Gants +1",
- ring2="Luzaf's Ring",
- back="Camulus's Mantle"}
- -- Waltz Set --
- sets.Waltz = {}
- sets.Precast = {}
- --Fastcast Set --
- sets.Precast.FastCast = {
- ammo="Chrono Bullet",
- head="Carmine Mask +1",
- neck="Voltsurge Torque",
- ear1="Loquac. Earring",
- body="Taeon Tabard",
- hands="Leyline Gloves",
- ring1="Lebeche Ring",
- ring2="Kishar Ring",
- waist="Flume Belt",
- legs="Carmine Cuisses +1"}
- sets.Midcast = {
- ammo="Chrono Bullet",
- head="Carmine Mask +1",
- neck="Twilight Torque",
- ear1="Loquac. Earring",
- body="Taeon Tabard",
- hands="Leyline Gloves",
- ring1="Defending Ring",
- ring2="Kishar Ring",
- waist="Flume Belt",
- legs="Carmine Cuisses +1"}
- -- Magic Haste Set --
- sets.Midcast.Haste = set_combine(sets.PDT,{
- ammo="Chrono Bullet",
- head="Carmine Mask +1",
- neck="Twilight Torque",
- ear1="Loquac. Earring",
- body="Taeon Tabard",
- hands="Leyline Gloves",
- ring1="Defending Ring",
- ring2="Kishar Ring",
- waist="Flume Belt",
- legs="Carmine Cuisses +1"})
- -- Cure Set --
- sets.Midcast.Cure = {}
- end
- function pretarget(spell,action) if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
- cancel_spell()
- send_command('input /item "Echo Drops" <me>')
- elseif spell.type == "CorsairRoll" and buffactive[spell.english] then -- Change Any Rolls To Double-Up When You Have A Roll Up --
- cancel_spell()
- send_command('doubleup')
- elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
- cancel_spell()
- send_command('ThirdEye')
- elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
- cancel_spell()
- add_to_chat(123, spell.name .. ' Canceled: ' .. player.tp)
- elseif spell.action_type == 'Ranged Attack' then
- if spell.target.distance > 24.9 then -- Cancel Ranged Attack If You Are Out Of Range --
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Out of Range]')
- return
- else
- if AutoMode == 'ON' and not buffactive.amnesia then -- Auto WS/Triple Shot --
- if player.tp >= 1000 then
- cancel_spell()
- autoWS()
- elseif windower.ffxi.get_ability_recasts()[84] < 1 then
- cancel_spell()
- send_command('TripleShot')
- end
- end
- end
- elseif spell.type == 'WeaponSkill' and player.status == 'Engaged' then
- if spell.skill == 'Marksmanship' then
- if spell.target.distance > 16+target_distance then
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Out of Range]')
- return
- end
- else
- if spell.target.distance > target_distance then
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Out of Range]')
- return
- end
- end
- end
- end
- -- detected a error in the user funcion precast: COR.lua:367: attempt to index field '?' (a nil value) --
- function precast(spell,action)
- if spell.action_type == 'Ranged Attack' or spell.type == "WeaponSkill" then
- if player.equipment.ammo == "Animikii Bullet" then -- Cancel Ranged Attack or WS If You Have Animikii Bullet Equipped --
- cancel_spell()
- add_to_chat(123, spell.name .. ' Canceled: [Animikii Bullet Equipped!]')
- return
- else
- local check_ammo
- local check_ammo_count = 1
- if spell.action_type == 'Ranged Attack' then
- check_ammo = player.equipment.ammo
- if player.equipment.ammo == 'empty' or player.inventory[check_ammo].count <= check_ammo_count then
- add_to_chat(123, spell.name..' Canceled: [Out of Ammo]')
- cancel_spell()
- return
- else
- equip(sets.Preshot,(buffactive["Triple Shot"] and {body="Chasseur's Frac +1"} or {}))
- if player.inventory[check_ammo].count <= ammo_warning_limit and player.inventory[check_ammo].count > 1 and not warning then
- add_to_chat(8, '***** [Low Ammo Warning!] *****')
- warning = true
- elseif player.inventory[check_ammo].count > ammo_warning_limit and warning then
- warning = false
- end
- end
- elseif 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
- if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
- equipSet = set_combine(equipSet,{})
- end
- if spell.english == "Last Stand" and player.tp > 2750 or player.equipment.range == 'Fomalhaut' and player.tp > 2250 then
- equipSet = set_combine(equipSet,{ear1="Auster's Pearl"})
- elseif spell.english == "Leaden Salute" and player.tp > 2750 or player.equipment.range == 'Fomalhaut' and player.tp > 2250 then
- equipSet = set_combine(equipSet,{ear1="Hermetic Earring"})
- elseif spell.english == "Leaden Salute" and world.day == "Darksday" or world.weather_element == "Dark" then
- equipSet = set_combine(equipSet,{waist="Hachirin-no-Obi"})
- elseif spell.english == "Wildfire" and player.tp > 2750 or player.equipment.range == 'Fomalhaut' and player.tp > 2250 then
- equipSet = set_combine(equipSet,{ear1="Hermetic Earring"})
- elseif spell.english == "Wildfire" and world.day == "Firesday" or world.weather_element == "Fire" then
- equipSet = set_combine(equipSet,{waist="Hachirin-no-Obi"})
- elseif spell.english == "Savage Blade" and player.tp > 2750 or player.equipment.range == 'Anarchy +2' and player.tp > 1750 then
- equipSet = set_combine(equipSet,{ear1="Flame Pearl"})
- end
- equip(equipSet)
- end
- end
- end
- elseif spell.type == "JobAbility" then
- if sets.JA[spell.english] then
- equip(sets.JA[spell.english])
- end
- elseif spell.type == "CorsairRoll" or spell.english == "Double-Up" then
- equip(sets.Rolls)
- if spell.english == "Tactician's Roll" then -- Change Tactician's Roll Equipment Here --
- equip({body="Chasseur's Frac +1"})
- elseif spell.english == "Caster's Roll" then -- Change Caster's Roll Equipment Here --
- equip({legs="Chas. Culottes +1"})
- elseif spell.english == "Courser's Roll" then -- Change Courser's Roll Equipment Here --
- equip({feet="Chass. Bottes +1"})
- elseif spell.english == "Blitzer's Roll" then -- Change Blitzer's Roll Equipment Here --
- equip({})
- elseif spell.english == "Allies' Roll" then -- Change Allies' Roll Equipment Here --
- equip({hands="Chasseur's Gants +1"})
- end
- elseif spell.type == "CorsairShot" then
- equipSet = sets.QD
- if ACC_Shots:contains(spell.english) then
- equipSet = sets.QD.HighACC
- else
- if equipSet[AccArray[AccIndex]] then
- equipSet = equipSet[AccArray[AccIndex]]
- end
- if not ACC_Shots: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 Unlock Elemental Obi --
- equipSet = set_combine(equipSet,sets.Obi[spell.element])
- end
- end
- equip(equipSet)
- elseif spell.action_type == 'Magic' then
- if spell.english == 'Utsusemi: Ni' then
- if buffactive['Copy Image (3)'] then
- cancel_spell()
- add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
- return
- else
- equip(sets.Precast.FastCast)
- end
- else
- equip(sets.Precast.FastCast)
- end
- elseif spell.type == "Waltz" then
- equip(sets.Waltz)
- elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
- cast_delay(0.2)
- send_command('cancel Sneak')
- end
- end
- function midcast(spell,action)
- if spell.action_type == 'Ranged Attack' then
- equipSet = sets.Midshot
- if equipSet[player.equipment.range] then
- equipSet = equipSet[player.equipment.range]
- end
- if equipSet[AccArray[AccIndex]] then
- equipSet = equipSet[AccArray[AccIndex]]
- end
- if buffactive['Triple Shot'] then
- equipSet = set_combine(equipSet,{body="Chasseur's Frac +1"})
- end
- equip(equipSet)
- elseif spell.action_type == 'Magic' then
- if spell.english:startswith('Cur') and spell.english ~= "Cursna" then
- equip(sets.Midcast.Cure)
- elseif spell.english == "Stoneskin" then
- if buffactive.Stoneskin then
- send_command('@wait 2.8;cancel stoneskin')
- end
- equip(sets.Midcast.Stoneskin)
- elseif spell.english == "Sneak" then
- if spell.target.name == player.name and buffactive['Sneak'] then
- send_command('cancel sneak')
- end
- equip(sets.Midcast.Haste)
- elseif spell.english:startswith('Utsusemi') then
- if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then
- send_command('@wait 1.7;cancel Copy Image*')
- end
- equip(sets.Midcast.Haste)
- elseif spell.english == 'Monomi: Ichi' then
- if buffactive['Sneak'] then
- send_command('@wait 1.7;cancel sneak')
- end
- equip(sets.Midcast.Haste)
- else
- equip(sets.Midcast.Haste)
- end
- end
- end
- function aftercast(spell,action)
- if spell.action_type == 'Ranged Attack' and AutoMode == 'ON' then
- autoRA()
- else
- status_change(player.status)
- end
- if not spell.interrupted then
- if spell.type == "WeaponSkill" then
- send_command('wait 0.2;gs c TP')
- elseif spell.type == 'CorsairRoll' then
- display_roll_info(spell)
- elseif spell.english == 'Light Shot' then -- Sleep Countdown --
- send_command('wait 50;input /echo '..spell.name..' Effect: [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..' Effect: [OFF]')
- end
- end
- end
- function status_change(new,old)
- if Armor == 'PDT' or buffactive.Terror or buffactive.Stun or buffactive.Petrification or buffactive.Sleep then
- equip(sets.PDT)
- elseif Armor == 'MDT' then
- equip(sets.MDT)
- elseif new == 'Engaged' then
- equipSet = sets.Melee
- if equipSet[AccArray[AccIndex]] then
- equipSet = equipSet[AccArray[AccIndex]]
- end
- if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
- equipSet = set_combine(equipSet,{})
- 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,loss)
- buff = string.lower(buff)
- if gain then
- add_to_chat(158,'--- Gained: ['..buff..']')
- elseif loss then
- add_to_chat(123,'--- Lost: ['..buff..']')
- end
- if not midaction() then
- status_change(player.status)
- end
- end
- -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
- function self_command(command)
- if command == 'acc' then -- Accuracy Level Toggle --
- AccIndex = (AccIndex % #AccArray) + 1
- status_change(player.status)
- add_to_chat(155,'Accuracy Level: ' .. AccArray[AccIndex])
- elseif command == 'update' then -- Auto Update Gear Toggle --
- status_change(player.status)
- add_to_chat(155,'Auto Update Gear')
- elseif command == 'obi' 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 == 'pdt' 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 == 'mdt' 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 == 'mainlock' then -- Lock Main Weapon Toggle --
- if Lock_Main == 'ON' then
- Lock_Main = 'OFF'
- add_to_chat(123,'Main Weapon: [Unlocked]')
- else
- Lock_Main = 'ON'
- add_to_chat(158,'Main Weapon: [Locked]')
- end
- status_change(player.status)
- elseif command == 'distance' then -- Distance Toggle --
- if player.target.distance then
- target_distance = math.floor(player.target.distance*10)/10
- add_to_chat(155,'Distance: '..target_distance)
- else
- add_to_chat(123,'No Target Selected')
- end
- elseif command == 'idle' then -- Idle Toggle --
- IdleIndex = (IdleIndex % #IdleArray) + 1
- status_change(player.status)
- add_to_chat(155,'Idle Set: ' .. IdleArray[IdleIndex])
- elseif command == 'C2' then -- Auto RA/WS Toggle. *Don't Rely On This. It Isn't As Fast As Shooting Manually. It Is Mainly For AFK or When You Dualbox* --
- if AutoMode == 'ON' then
- AutoMode = 'OFF'
- add_to_chat(123,'Auto Mode: [OFF]')
- else
- AutoMode = 'ON'
- add_to_chat(158,'Auto Mode: [ON]')
- end
- elseif command == 'TP' then
- add_to_chat(155,'TP Return: ['..tostring(player.tp)..']')
- elseif command:match('^SC%d$') then
- send_command('//' .. sc_map[command])
- end
- end
- function autoRA() -- Make Auto RA Delay Adjustment Here --
- local delay = '2.2'
- if spell.type == "WeaponSkill" then
- delay = '2.25'
- else
- if buffactive["Courser's Roll"] then
- delay = '0.7'
- elseif buffactive[581] then -- Flurry II --
- delay = '0.5'
- else
- delay = '1.05'
- end
- end
- send_command('@wait '..delay..'; input /ra <t>')
- end
- function autoWS()
- send_command('input /ws "'..AutoGunWS..'" <t>')
- end
- function define_roll_values()
- rolls = {
- CorsairsRoll = {lucky=5, unlucky=9, bonus="Experience Points"},
- NinjaRoll = {lucky=4, unlucky=8, bonus="Evasion"},
- HuntersRoll = {lucky=4, unlucky=8, bonus="Accuracy"},
- ChaosRoll = {lucky=4, unlucky=8, bonus="Attack"},
- MagussRoll = {lucky=2, unlucky=6, bonus="Magic Defense"},
- HealersRoll = {lucky=3, unlucky=7, bonus="Cure Potency Received"},
- PuppetRoll = {lucky=4, unlucky=8, bonus="Pet Magic Accuracy/Attack"},
- ChoralRoll = {lucky=2, unlucky=6, bonus="Spell Interruption Rate"},
- MonksRoll = {lucky=3, unlucky=7, bonus="Subtle Blow"},
- BeastRoll = {lucky=4, unlucky=8, bonus="Pet Attack"},
- SamuraiRoll = {lucky=2, unlucky=6, bonus="Store TP"},
- EvokersRoll = {lucky=5, unlucky=9, bonus="Refresh"},
- RoguesRoll = {lucky=5, unlucky=9, bonus="Critical Hit Rate"},
- WarlocksRoll = {lucky=4, unlucky=8, bonus="Magic Accuracy"},
- FightersRoll = {lucky=5, unlucky=9, bonus="Double Attack Rate"},
- DrachenRoll = {lucky=3, unlucky=7, bonus="Pet Accuracy"},
- GallantsRoll = {lucky=3, unlucky=7, bonus="Defense"},
- WizardsRoll = {lucky=5, unlucky=9, bonus="Magic Attack"},
- DancersRoll = {lucky=3, unlucky=7, bonus="Regen"},
- ScholarsRoll = {lucky=2, unlucky=6, bonus="Conserve MP"},
- BoltersRoll = {lucky=3, unlucky=9, bonus="Movement Speed"},
- CastersRoll = {lucky=2, unlucky=7, bonus="Fast Cast"},
- CoursersRoll = {lucky=3, unlucky=9, bonus="Snapshot"},
- BlitzersRoll = {lucky=4, unlucky=9, bonus="Attack Delay"},
- TacticiansRoll = {lucky=5, unlucky=8, bonus="Regain"},
- AlliessRoll = {lucky=3, unlucky=10, bonus="Skillchain Damage"},
- MisersRoll = {lucky=5, unlucky=7, bonus="Save TP"},
- CompanionsRoll = {lucky=2, unlucky=10, bonus="Pet Regain and Regen"},
- AvengersRoll = {lucky=4, unlucky=8, bonus="Counter Rate"}
- }
- end
- function display_roll_info(spell)
- rollinfo = rolls[(string.gsub((string.gsub(spell.english, "%'+", "")), "%s+", ""))]
- if rollinfo then
- add_to_chat(155, spell.english..' = '..rollinfo.bonus..'. Lucky Roll is '..
- tostring(rollinfo.lucky)..', Unlucky Roll is '..tostring(rollinfo.unlucky)..'.')
- end
- end
- function find_player_in_alliance(name)
- for i,v in ipairs(alliance) do
- for k,p in ipairs(v) do
- if p.name == name then
- return p
- end
- end
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement