Code:
-- *** Credit goes to Flippant for helping me with Gearswap *** --
-- ** I use Motenten's define_roll_values function ** --
-- Last Updated: 03/30/14 2:25 PM *Added More Sets* --
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 = {'Movement', 'Regen'} -- Default Idle Set Is Movement --
autoRAmode = 0
Armor = 'None'
define_roll_values()
Obi = 'ON' -- Turn Default Obi ON or OFF Here --
target_distance = 5 -- Set Default Distance Here --
send_command('input /macro book 9;input /macro set 1') -- Change Default Macro Book Here --
ranged_ws = S{
"Hot Shot","Split Shot","Sniper Shot","Slug Shot","Detonator","Numbing Shot",
"Last Stand","Requiescat","Wildfire","Leaden Salute"}
ACC_Shots = S{"Light Shot","Dark Shot"}
sc_map = {SC1="CoursersRoll", SC2="DiaII", SC3="LightShot"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
-- Idle/Town Sets --
sets.Idle = {}
sets.Idle.Regen = {
head="Oce. Headpiece +1",
neck="Wiglen gorget",
ear1="Ethereal Earring",
ear2="Volley Earring",
body="Lanun Frac",
ammo="Bullet",
hands="Alruna's gloves +1",
ring1="sheltered Ring",
ring2="Paguroidea Ring",
back="Shadow mantle",
waist="flume Belt +1",
legs="Crimson Cuisses",
feet={ name="Taeon boots", augments={'Rng. Acc.+25','"Snapshot"+8'}},}
sets.Idle.Movement = set_combine(sets.Idle.Regen,{
legs="Crimson Cuisses"})
-- QD Sets --
sets.QD = {
ammo="Animikii bullet",
head={ name="Taeon chapeau", augments={'"Mag. Atk. Bns."+20','Weapon skill damage +3%'}},
neck="Stoicheion Medal",
ear1="Friomisi earring",
ear2="hecate's earring",
body={ name="Taeon Tabard", augments={'Mag. Acc.+13 "Mag.Atk.Bns."+13','Weapon skill damage +1%',}},
hands={ name="Taeon Gloves", augments={'Mag. Acc.+15 "Mag. Atk. Bns."+15','Weapon Skill Damage +1%'}},
ring1="Arvina ringlet +1",
ring2="Garuda Ring +1",
back="Gunslinger's Cape",
waist="Salire Belt",
legs={ name="Taeon Tights", augments={'"Mag.Atk.Bns."+20','STR+2 VIT+2',}},
feet={ name="Taeon Boots", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},}
sets.QD.MidACC = set_combine(sets.QD,{})
sets.QD.HighACC = set_combine(sets.QD.MidACC,{})
-- PDT/MDT Sets --
sets.PDT = {
head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
neck="Twilight Torque",
ear1="Ethereal Earring",
ear2="Sanare Earring",
body="Lanun Frac",
hands={ name="Taeon gloves", augments={'Mag. Acc.+15 "Mag. Atk. Bns."+15','Weapon skill damage +1%'}},
ring1="Defending Ring",
ring2="Dark Ring",
back="Shadow Mantle",
waist="flume belt +1",
legs={ name="Taeon Tights", augments={'"Mag.Atk.Bns."+20','STR+2 VIT+2',}},
feet={ name="Taeon Boots", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+3',}}}
sets.MDT = set_combine(sets.PDT,{})
-- Roll Set --
sets.Rolls = set_combine(sets.PDT,{
head="Lanun Tricorne",
hands="Chasseur's Gants",
body="Chasseur's Frac",
ring1="barataria ring",
ring2="Luzaf's ring",
feet="Chasseur's Bottes",
legs="nvrch. culottes +2",
back="Gunslinger's cape"})
-- Preshot --
sets.Preshot = {
head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
body={ name="Taeon Tabard", augments={'Rng.Acc.+17 Rng.Atk.+17','"Snapshot"+5','STR+5 AGI+5',}},
hands="Lanun Gants",
waist="Impulse Belt",
legs="Mirador trousers +1",
feet={ name="Taeon Boots", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+3',}}}
-- Shooting Base Set --
sets.Midshot = {
head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
neck="Ocachi Gorget",
ear1="Clearview Earring",
ear2="Volley Earring",
body={ name="Taeon Tabard", augments={'Rng.Acc.+17 Rng.Atk.+17','"Snapshot"+5','STR+5 AGI+5',}},
hands="Alruna's gloves +1",
ring1="Rajas Ring",
ring2="K'ayres Ring",
back="Gunslinger's Cape",
waist="Aquiline Belt",
legs="Chasseur's Culottes",
feet={ name="Taeon Boots", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+3',}}}
sets.Midshot.MidACC = set_combine(sets.Midshot,{
ring1="Garuda Ring +1",
ring2="Garuda Ring +1",
legs="Mirador Trousers +1"})
sets.Midshot.HighACC = set_combine(sets.Midshot.HighACC,{
ring1="Hajduk Ring"})
-- Death Penalty Sets --
sets.Midshot['Death Penalty'] = {}
sets.Midshot['Death Penalty'].MidACC = set_combine(sets.Midshot['Death Penalty'],{})
sets.Midshot['Death Penalty'].HighACC = set_combine(sets.Midshot['Death Penalty'].MidACC,{})
-- Vanir Gun Sets --
sets.Midshot['Vanir Gun'] = {}
sets.Midshot['Vanir Gun'].MidACC = set_combine(sets.Midshot['Vanir Gun'],{
})
sets.Midshot['Vanir Gun'].HighACC = set_combine(sets.Midshot['Vanir Gun'].MidACC,{})
-- Armageddon Sets --
sets.Midshot.Armageddon = {}
sets.Midshot.Armageddon.MidACC = set_combine(sets.Midshot.Armageddon,{})
sets.Midshot.Armageddon.HighACC = set_combine(sets.Midshot.Armageddon.MidACC,{})
-- Melee Sets --
sets.Melee = {
head={ name="Taeon Chapeau", augments={'Accuracy+14 Attack+14','"Triple Atk."+2','DEX+5',}},
neck="Asperity Necklace",
ear1="Suppanomimi",
ear2="Brutal Earring",
body={ name="Taeon Tabard", augments={'Accuracy+25','"Triple Atk."+2','DEX+2',}},
hands={ name="Taeon Gloves", augments={'Accuracy+22','"Triple Atk."+2','Crit. hit damage +3%',}},
ring1="Oneiros Ring",
ring2="Epona's Ring",
back="Bleating Mantle",
waist="Dynamic Belt +1",
legs={ name="Taeon Tights", augments={'Accuracy+21','"Triple Atk."+2','STR+3 AGI+3',}},
feet={ name="Taeon Boots", augments={'Accuracy+15 Attack+15','"Triple Atk."+2','DEX+3',}},}
sets.Melee.MidACC = set_combine(sets.Melee,{
ring1="Ramuh Ring +1",
ring2="Ramuh Ring +1",
ear1="Dudgeon Earring",
ear2="Heartseeker Earring",})
sets.Melee.HighACC = set_combine(sets.Melee.MidACC,{})
-- WS Base Set --
sets.WS = {
ammo="decimating Bullet",
head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
neck="Fotia Gorget",
ear1="Breeze pearl",
ear2="moonshade earring",
body={ name="Taeon Tabard", augments={'Rng.Acc.+17 Rng.Atk.+17','"Snapshot"+5','STR+5 AGI+5',}},
hands="Alruna's Gloves +1",
ring1="Garuda Ring +1",
ring2="Garuda Ring +1",
back="Gunslinger's Mantle",
waist="Fotia Belt",
legs="Mirador trousers +1",
feet="scupuli nails +1"}
-- Last Stand Sets --
sets.WS["Last Stand"] = {
ammo="decimating Bullet",
head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
neck="Fotia Gorget",
ear1="Breeze pearl",
ear2="moonshade earring",
body={ name="Taeon Tabard", augments={'Rng.Acc.+17 Rng.Atk.+17','"Snapshot"+5','STR+5 AGI+5',}},
hands="Alruna's Gloves +1",
ring1="Garuda Ring +1",
ring2="Garuda Ring +1",
back="Gunslinger's Mantle",
waist="Fotia Belt",
legs="Mirador trousers +1",
feet="scupuli nails +1"}
sets.WS["Last Stand"].MidACC = set_combine(sets.WS["Last Stand"],{})
sets.WS["Last Stand"].HighACC = set_combine(sets.WS["Last Stand"].MidACC,{})
-- Wildfire Sets --
sets.WS.Wildfire = {
ammo="decimating Bullet",
head={ name="Taeon Chapeau", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},
neck="stoicheion medal",
ear1="Friomisi earring",
ear2="hecate's earring",
body={ name="Taeon Tabard", augments={'Mag. Acc.+13 "Mag.Atk.Bns."+13','Weapon skill damage +1%',}},
hands={ name="Taeon gloves", augments={'Mag. Acc.+15 "Mag. Atk. Bns."+15','Weapon skill damage +1%'}},
ring1="Arvina ringlet +1",
ring2="Garuda Ring +1",
back="Gunslinger's Mantle",
waist="salire Belt",
legs={ name="Taeon Tights", augments={'"Mag.Atk.Bns."+20','STR+2 VIT+2',}},
feet={ name="Taeon Boots", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},}
sets.WS.Wildfire.MidACC = set_combine(sets.WS.Wildfire,{})
sets.WS.Wildfire.HighACC = set_combine(sets.WS.Wildfire.MidACC,{})
-- Leaden Salute --
sets.WS['Leaden Salute'] = {
ammo="decimating Bullet",
head={ name="Taeon Chapeau", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},
neck="stoicheion medal",
ear1="Friomisi earring",
ear2="hecate's earring",
body={ name="Taeon Tabard", augments={'Mag. Acc.+13 "Mag.Atk.Bns."+13','Weapon skill damage +1%',}},
hands={ name="Taeon gloves", augments={'Mag. Acc.+15 "Mag. Atk. Bns."+15','Weapon skill damage +1%'}},
ring1="Arvina ringlet +1",
ring2="Archon Ring",
back="Gunslinger's Mantle",
waist="salire Belt",
legs={ name="Taeon Tights", augments={'"Mag.Atk.Bns."+20','STR+2 VIT+2',}},
feet={ name="Taeon Boots", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},}
sets.WS['Leaden Salute'].MidACC = set_combine(sets.WS['Leaden Salute'],{})
sets.WS['Leaden Salute'].HighACC = set_combine(sets.WS['Leaden Salute'].MidACC,{})
-- Elemental Obi --
sets.Obi = {}
sets.Obi.Thunder = {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"}
sets.JA.Fold = {hands="Lanun Gants"}
sets.JA["Snake Eye"] = {legs="Lanun Culottes"}
sets.JA["Wild Card"] = {feet="Lanun Bottes"}
-- Waltz Set --
sets.Waltz = {}
sets.Precast = {}
--Fastcast Set --
sets.Precast.FastCast = {}
sets.Midcast = {}
-- Magic Haste Set --
sets.Midcast.Haste = set_combine(sets.PDT,{})
end
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.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 > 290 then -- Cancel Meditate If TP Is Above 290 --
cancel_spell()
add_to_chat(123, spell.name .. ' Canceled: ' .. player.tp)
elseif (spell.english == 'Ranged' and spell.target.distance > 24.9) or (player.status == 'Engaged' and ((ranged_ws:contains(spell.english) and spell.target.distance > 16+target_distance) or (spell.type == "WeaponSkill" and not ranged_ws:contains(spell.english) and spell.target.distance > target_distance))) then -- Cancel Ranged Attack or 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.english == 'Ranged' 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
elseif spell.english=='Ranged' then
equip(sets.Preshot)
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 spell.english == "Last Stand" and (player.tp > 299 or buffactive.Sekkanoki) then -- Equip Altdorf's Earring and Wilhelm's Earring When You Have 300 TP or Sekkanoki For Last Stand --
equipSet = set_combine(equipSet,{ear1="Altdorf's Earring",ear2="Wilhelm's Earring"})
end
equip(equipSet)
end
end
elseif spell.type == "JobAbility" then
if sets.JA[spell.english] then
equip(sets.JA[spell.english])
if spell.english == "Snake Eye" then -- Auto Double-Up After You Use Snake Eye --
send_command('@wait 1;input /ja Double-Up <me>')
end
end
elseif spell.type == "CorsairRoll" or spell.english == "Double-Up" then
equip(sets.Rolls)
if spell.english == "Tactician's Roll" then
equip({body="Chasseur's Frac"})
elseif spell.english == "Caster's Roll" then
equip({legs="Chasseur's Culottes"})
elseif spell.english == "Courser's Roll" then
equip({feet="Chasseur's Bottes"})
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.type:endswith('Magic') or spell.type == 'Ninjutsu' then
if string.find(spell.english,'Utsusemi') then
if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] 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.english=='Ranged' 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
equip(equipSet)
elseif spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
if 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
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.english == 'Ranged' and autoRAmode==1 then
autoRA()
elseif spell.type == "WeaponSkill" and not spell.interrupted then
send_command('wait 0.2;gs c TP')
elseif spell.type == 'CorsairRoll' and not spell.interrupted then
display_roll_info(spell)
elseif spell.english == 'Light Shot' and not spell.interrupted 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]')
else
status_change(player.status)
end
end
function status_change(new,old)
if Armor == 'PDT' 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
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
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 == 'C1' then -- Accuracy Level Toggle --
AccIndex = (AccIndex % #AccArray) + 1
status_change(player.status)
add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
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 == '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 == '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
status_change(player.status)
add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
elseif command == 'C2' then -- Auto Ranged Attack Toggle. *Don't Rely On This. It Isn't As Fast As Shooting Manually. It Is Mainly For AFK or When You Dualbox* --
if autoRAmode == 0 then
autoRAmode = 1
add_to_chat(158,'AutoRA Mode: [ON]')
else
autoRAmode = 0
add_to_chat(123,'AutoRA Mode: [OFF]')
end
elseif command == 'TP' then
add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
elseif command:match('^SC%d$') then
send_command('//' .. sc_map[command])
end
end
function autoRA()
send_command('@wait 2.7; input /ra <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(158, spell.english..' = '..rollinfo.bonus..'. Lucky Roll is '..
tostring(rollinfo.lucky)..', Unlucky Roll is '..tostring(rollinfo.unlucky)..'.')
end
end