|
Gearswap Support Thread
Asura.Gotenn
サーバ: Asura
Game: FFXI
Posts: 243
By Asura.Gotenn 2016-05-04 00:15:03
So to double check what was going on, I took a clean copy of the RDM gearswap, and tried the cureself that is listed. That command does not work either. So it only makes sense that the refresh one does not work.
By floydtrey1 2016-05-04 01:55:03
So I just got the Arbatel Bracers lv 109 completed and was testing them out. W/O Gearswap running i got accurate numbers. However w/ gearswap running i'm not getting the enhancment duration bonus. Would someone mind checking over my lua and seeing if you can see where the issue lies?
SCH.lua -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
--[[
Custom commands:
Shorthand versions for each strategem type that uses the version appropriate for
the current Arts.
Light Arts Dark Arts
gs c scholar light Light Arts/Addendum
gs c scholar dark Dark Arts/Addendum
gs c scholar cost Penury Parsimony
gs c scholar speed Celerity Alacrity
gs c scholar aoe Accession Manifestation
gs c scholar power Rapture Ebullience
gs c scholar duration Perpetuance
gs c scholar accuracy Altruism Focalization
gs c scholar enmity Tranquility Equanimity
gs c scholar skillchain Immanence
gs c scholar addendum Addendum: White Addendum: Black
--]]
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
state.MagicBurst = M(false, 'Magic Burst')
info.addendumNukes = S{"Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",
"Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}
state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
send_command('bind ^s gs c stratcount')
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('None', 'Normal')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT')
info.low_nukes = S{"Stone", "Water", "Aero", "Fire", "Blizzard", "Thunder"}
info.mid_nukes = S{"Stone II", "Water II", "Aero II", "Fire II", "Blizzard II", "Thunder II",
"Stone III", "Water III", "Aero III", "Fire III", "Blizzard III", "Thunder III",
"Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",}
info.high_nukes = S{"Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}
gear.macc_hagondes = {name="Hagondes Cuffs", augments={'Phys. dmg. taken -3%','Mag. Acc.+29'}}
send_command('bind ^` input /ma "stun" <t>')
send_command('bind ^b gs c toggle MagicBurst')
send_command('bind ^q gs c stratcount')
select_default_macro_book(1,10)
end
function user_unload()
send_command('unbind ^`')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA['Tabula Rasa'] = {legs="Pedagogy Pants"}
-- Fast cast sets for spells
sets.precast.FC = {ammo="Impatiens",
head="Nahtirah Hat",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",
back="Swith Cape +1",waist="Witful Belt",legs="Orvail Pants +1",feet="Academic's Loafers"}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal"})
sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Heka's Kalasiris",back="Pahtli Cape"})
sets.precast.FC.Curaga = sets.precast.FC.Cure
sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {head=empty,body="Twilight Cloak"})
-- Midcast Sets
sets.midcast.FastRecast = {ammo="Incantor Stone",
head="Nahtirah Hat",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",
back="Swith Cape +1",waist="Goading Belt",legs="",feet="Academic's Loafers"}
sets.midcast.Cure = {main="Tamaxchi",sub="Genbu's Shield",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Colossus's Torque",ear1="Lifestorm Earring",ear2="Loquacious Earring",
body="Heka's Kalasiris",hands="Bokwus Gloves",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Swith Cape +1",waist="Goading Belt",legs="Orvail Pants +1",feet="Academic's Loafers"}
sets.midcast.CureWithLightWeather = {main="Chatoyant Staff",sub="Achaq Grip",ammo="Incantor Stone",
head="Gendewitha Caubeen",neck="Colossus's Torque",ear1="Lifestorm Earring",ear2="Loquacious Earring",
body="Heka's Kalasiris",hands="Bokwus Gloves",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Twilight Cape",waist="Korin Obi",legs="Nares Trews",feet="Academic's Loafers"}
sets.midcast.Curaga = sets.midcast.Cure
sets.midcast.Regen = {main="Bolelabunga",head="Savant's Bonnet +2"}
sets.midcast.Cursna = {
neck="Malison Medallion",
hands="Hieros Mittens",ring1="Ephedra Ring",
feet="Gendewitha Galoshes"}
sets.midcast['Enhancing Magic'] = {ammo="Savant's Treatise",
head="Savant's Bonnet +2",neck="Colossus's Torque",
body="Manasa Chasuble",hands="Ayao's Gages",
waist="Olympus Sash",legs="Portent Pants"}
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})
sets.midcast.Storm = set_combine(sets.midcast['Enhancing Magic'], {feet="Pedagogy Loafers"})
sets.midcast.Protect = {ring1="Sheltered Ring"}
sets.midcast.Protectra = sets.midcast.Protect
sets.midcast.Shell = {ring1="Sheltered Ring"}
sets.midcast.Shellra = sets.midcast.Shell
-- Custom spell classes
sets.midcast.MndEnfeebles = {main="Akademos",sub="Mephitis Grip",ammo="Sturm's Report",
head="Nahtirah Hat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Manasa Chasuble",hands="Yaoyotl Gloves",ring1="Aquasoul Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Demonry Sash",legs="Bokwus Slops",feet="Bokwus Boots"}
sets.midcast.IntEnfeebles = {main="Akademos",sub="Mephitis Grip",ammo="Sturm's Report",
head="Nahtirah Hat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Manasa Chasuble",hands="Yaoyotl Gloves",ring1="Icesoul Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Demonry Sash",legs="Bokwus Slops",feet="Bokwus Boots"}
sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
sets.midcast['Dark Magic'] = {main="Akademos",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Goading Belt",legs="Bokwus Slops",feet="Bokwus Boots"}
sets.midcast.Kaustra = {main="Akademos",sub="Wizzan Grip",ammo="Witchstone",
head="Hagondes Hat",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Friomisi Earring",
body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Icesoul Ring",ring2="Strendu Ring",
back="Toro Cape",waist="Cognition Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
sets.midcast.Drain = {main="Akademos",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Excelsis Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Goading Belt",legs="Pedagogy Pants",feet="Academic's Loafers"}
sets.midcast.Aspir = sets.midcast.Drain
sets.midcast.Stun = {main="Apamajas II",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Witful Belt",legs="Pedagogy Pants",feet="Academic's Loafers"}
sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {main="Akademos"})
-- Elemental Magic sets are default for handling low-tier nukes.
sets.midcast['Elemental Magic'] = {main="Akademos",sub="Zuuxowu Grip",ammo="Dosis Tathlum",
head="Hagondes Hat",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Friomisi Earring",
body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Icesoul Ring",ring2="Acumen Ring",
back="Toro Cape",waist=gear.ElementalObi,legs="Hagondes Pants",feet="Hagondes Sabots"}
sets.midcast['Elemental Magic'].Resistant = {main="Akademos",sub="Mephitis Grip",ammo="Dosis Tathlum",
head="Hagondes Hat",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Friomisi Earring",
body="Vanir Cotehardie",hands=gear.macc_hagondes,ring1="Icesoul Ring",ring2="Acumen Ring",
back="Toro Cape",waist=gear.ElementalObi,legs="Hagondes Pants",feet="Bokwus Boots"}
-- Custom refinements for certain nuke tiers
sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})
sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'].Resistant, {sub="Wizzan Grip"})
sets.midcast.Impact = {main="Akademos",sub="Mephitis Grip",ammo="Dosis Tathlum",
head=empty,neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Twilight Cloak",hands=gear.macc_hagondes,ring1="Icesoul Ring",ring2="Sangoma Ring",
back="Toro Cape",waist="Demonry Sash",legs="Hagondes Pants",feet="Bokwus Boots"}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main="Chatoyant Staff",sub="Mephitis Grip",
head="Nefer Khat +1",neck="Wiglen Gorget",
body="Heka's Kalasiris",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
waist="Austerity Belt",legs="Nares Trews",feet="Serpentes Sabots"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle.Town = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Savant's Bonnet +2",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Savant's Gown +2",hands="Savant's Bracers +2",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Savant's Pants +2",feet="Herald's Gaiters"}
sets.idle.Field = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Nefer Khat +1",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Heka's Kalasiris",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Nares Trews",feet="Herald's Gaiters"}
sets.idle.Field.PDT = {main=gear.Staff.PDT,sub="Achaq Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Paguroidea Ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Nares Trews",feet="Herald's Gaiters"}
sets.idle.Field.Stun = {main="Apamajas II",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
back="Swith Cape +1",waist="Goading Belt",legs="Bokwus Slops",feet="Academic's Loafers"}
sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Sheltered Ring",ring2="Meridian Ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Nares Trews",feet="Herald's Gaiters"}
-- Defense sets
sets.defense.PDT = {main=gear.Staff.PDT,sub="Achaq Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2=gear.DarkRing.physical,
back="Umbra Cape",waist="Hierarch Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
sets.defense.MDT = {main=gear.Staff.PDT,sub="Achaq Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Tuilha Cape",waist="Hierarch Belt",legs="Bokwus Slops",feet="Hagondes Sabots"}
sets.Kiting = {feet="Herald's Gaiters"}
sets.latent_refresh = {waist="Fucho-no-obi"}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = {
head="Zelus Tiara",
body="Vanir Cotehardie",hands="Bokwus Gloves",ring1="Rajas Ring",
waist="Goading Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
-- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
sets.buff['Ebullience'] = {head="Savant's Bonnet +2"}
sets.buff['Rapture'] = {head="Savant's Bonnet +2"}
sets.buff['Perpetuance'] = {hands="Savant's Bracers +2"}
sets.buff['Immanence'] = {hands="Savant's Bracers +2"}
sets.buff['Penury'] = {legs="Savant's Pants +2"}
sets.buff['Parsimony'] = {legs="Savant's Pants +2"}
sets.buff['Celerity'] = {feet="Pedagogy Loafers"}
sets.buff['Alacrity'] = {feet="Pedagogy Loafers"}
sets.buff['Klimaform'] = {feet="Savant's Loafers +2"}
sets.buff.FullSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring",body="Pedagogy Gown"}
sets.buff.PDTSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring"}
--sets.buff['Sandstorm'] = {feet="Desert Boots"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Run after the general midcast() is done.
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.action_type == 'Magic' then
apply_grimoire_bonuses(spell, action, spellMap, eventArgs)
end
if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
if state.MagicBurst.value then equip(sets.MagicBurst) end
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
if buff == "Sublimation: Activated" then
handle_equipping_gear(player.status)
end
end
-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
if stateField == 'Offense Mode' then
if newValue == 'Normal' then
disable('main','sub','range')
else
enable('main','sub','range')
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
if spell.action_type == 'Magic' then
if default_spell_map == 'Cure' or default_spell_map == 'Curaga' then
if world.weather_element == 'Light' then
return 'CureWithLightWeather'
end
elseif spell.skill == 'Enfeebling Magic' then
if spell.type == 'WhiteMagic' then
return 'MndEnfeebles'
else
return 'IntEnfeebles'
end
elseif spell.skill == 'Elemental Magic' then
if info.low_nukes:contains(spell.english) then
return 'LowTierNuke'
elseif info.mid_nukes:contains(spell.english) then
return 'MidTierNuke'
elseif info.high_nukes:contains(spell.english) then
return 'HighTierNuke'
end
end
end
end
function customize_idle_set(idleSet)
if state.Buff['Sublimation: Activated'] then
if state.IdleMode.value == 'Normal' then
idleSet = set_combine(idleSet, sets.buff.FullSublimation)
elseif state.IdleMode.value == 'PDT' then
idleSet = set_combine(idleSet, sets.buff.PDTSublimation)
end
end
if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end
return idleSet
end
-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
if cmdParams[1] == 'user' and not (buffactive['light arts'] or buffactive['dark arts'] or
buffactive['addendum: white'] or buffactive['addendum: black']) then
if state.IdleMode.value == 'Stun' then
send_command('@input /ja "Dark Arts" <me>')
else
send_command('@input /ja "Light Arts" <me>')
end
end
update_active_strategems()
update_sublimation()
end
-- Function to display the current relevant user state when doing an update.
-- Return true if display was handled, and you don't want the default info shown.
function display_current_job_state(eventArgs)
display_current_caster_state()
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------
-- Called for direct player commands.
function job_self_command(cmdParams, commandArgs, eventArgs)
if cmdParams[1]:lower() == 'scholar' then
handle_strategems(cmdParams)
eventArgs.handled = true
end
if cmdParams[1]=='stratcount' then
local stratty = get_current_strategem_count()
add_to_chat(122, 'There are currently -- ['..stratty..'] -- Strategems available!')
end
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Reset the state vars tracking strategems.
function update_active_strategems()
state.Buff['Ebullience'] = buffactive['Ebullience'] or false
state.Buff['Rapture'] = buffactive['Rapture'] or false
state.Buff['Perpetuance'] = buffactive['Perpetuance'] or false
state.Buff['Immanence'] = buffactive['Immanence'] or false
state.Buff['Penury'] = buffactive['Penury'] or false
state.Buff['Parsimony'] = buffactive['Parsimony'] or false
state.Buff['Celerity'] = buffactive['Celerity'] or false
state.Buff['Alacrity'] = buffactive['Alacrity'] or false
state.Buff['Klimaform'] = buffactive['Klimaform'] or false
end
function update_sublimation()
state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
end
-- Equip sets appropriate to the active buffs, relative to the spell being cast.
function apply_grimoire_bonuses(spell, action, spellMap)
if state.Buff.Perpetuance and spell.type =='WhiteMagic' and spell.skill == 'Enhancing Magic' then
equip(sets.buff['Perpetuance'])
end
if state.Buff.Rapture and (spellMap == 'Cure' or spellMap == 'Curaga') then
equip(sets.buff['Rapture'])
end
if spell.skill == 'Elemental Magic' and spellMap ~= 'ElementalEnfeeble' then
if state.Buff.Ebullience and spell.english ~= 'Impact' then
equip(sets.buff['Ebullience'])
end
if state.Buff.Immanence then
equip(sets.buff['Immanence'])
end
if state.Buff.Klimaform and spell.element == world.weather_element then
equip(sets.buff['Klimaform'])
end
end
if state.Buff.Penury then equip(sets.buff['Penury']) end
if state.Buff.Parsimony then equip(sets.buff['Parsimony']) end
if state.Buff.Celerity then equip(sets.buff['Celerity']) end
if state.Buff.Alacrity then equip(sets.buff['Alacrity']) end
end
-- General handling of strategems in an Arts-agnostic way.
-- Format: gs c scholar <strategem>
function handle_strategems(cmdParams)
if not cmdParams[2] then
add_to_chat(123,'Error: No strategem command given.')
return
end
local currentStrats = get_current_strategem_count()
local newStratCount = currentStrats - 1
if currentStrats > 0 then
add_to_chat(122, '***Current Charges Available: ['..newStratCount..']***')
else
add_to_chat(122, '***Out of strategems! Canceling...***')
return
end
local strategem = cmdParams[2]:lower()
if strategem == 'light' then
if buffactive['light arts'] then
send_command('input /ja "Addendum: White" <me>')
elseif buffactive['addendum: white'] then
add_to_chat(122,'Error: Addendum: White is already active.')
else
send_command('input /ja "Light Arts" <me>')
end
elseif strategem == 'dark' then
if buffactive['dark arts'] then
send_command('input /ja "Addendum: Black" <me>')
elseif buffactive['addendum: black'] then
add_to_chat(122,'Error: Addendum: Black is already active.')
else
send_command('input /ja "Dark Arts" <me>')
end
elseif buffactive['light arts'] or buffactive['addendum: white'] then
if strategem == 'cost' then
send_command('@input /ja Penury <me>')
elseif strategem == 'speed' then
send_command('@input /ja Celerity <me>')
elseif strategem == 'aoe' then
send_command('@input /ja Accession <me>')
elseif strategem == 'power' then
send_command('@input /ja Rapture <me>')
elseif strategem == 'duration' then
send_command('@input /ja Perpetuance <me>')
elseif strategem == 'accuracy' then
send_command('@input /ja Altruism <me>')
elseif strategem == 'enmity' then
send_command('@input /ja Tranquility <me>')
elseif strategem == 'skillchain' then
add_to_chat(122,'Error: Light Arts does not have a skillchain strategem.')
elseif strategem == 'addendum' then
send_command('@input /ja "Addendum: White" <me>')
else
add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
end
elseif buffactive['dark arts'] or buffactive['addendum: black'] then
if strategem == 'cost' then
send_command('@input /ja Parsimony <me>')
elseif strategem == 'speed' then
send_command('@input /ja Alacrity <me>')
elseif strategem == 'aoe' then
send_command('@input /ja Manifestation <me>')
elseif strategem == 'power' then
send_command('@input /ja Ebullience <me>')
elseif strategem == 'duration' then
add_to_chat(122,'Error: Dark Arts does not have a duration strategem.')
elseif strategem == 'accuracy' then
send_command('@input /ja Focalization <me>')
elseif strategem == 'enmity' then
send_command('@input /ja Equanimity <me>')
elseif strategem == 'skillchain' then
send_command('@input /ja Immanence <me>')
elseif strategem == 'addendum' then
send_command('@input /ja "Addendum: Black" <me>')
else
add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
end
else
add_to_chat(123,'No arts has been activated yet.')
end
end
-- Gets the current number of available strategems based on the recast remaining
-- and the level of the sch.
function get_current_strategem_count()
-- returns recast in seconds.
local allRecasts = windower.ffxi.get_ability_recasts()
local stratsRecast = allRecasts[231]
local maxStrategems = (player.main_job_level + 10) / 20
local fullRechargeTime = 4*60
local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime)
return currentCharges
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1,10 )
end
***
SCH_gear.lua
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA['Tabula Rasa'] = {legs="Pedagogy Pants"}
sets.precast.JA['Perpetuation'] = {hands="Arbatel Bracers"}
sets.precast.JA['Immanence'] = {hands="Arbatel Bracers"}
-- Fast cast sets for spells
sets.precast.FC = {
main="Akademos",
sub="Niobid Strap",
ammo="Ghastly Tathlum",
head="Merlinic Hood",
body="Shango Robe",
hands="Merlinic Dastanas",
legs="Psycloth Lappas",
feet="Merlinic Crackows",
neck="Eddy Necklace",
waist="Witful Belt",
left_ear="Barkarole Earring",
right_ear="Psystorm Earring",
left_ring="Thurandaut Ring",
right_ring="Prolix Ring",
back={ name="Mecisto. Mantle", augments={'Cap. Point+41%','MP+19','Mag. Acc.+2','DEF+9',}},
}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal"})
sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Heka's Kalasiris",ear2="Mendicant's earring",back="Pahtli Cape"})
sets.precast.FC.Curaga = sets.precast.FC.Cure
sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {head=empty,body="Twilight Cloak"})
-- Midcast Sets
sets.midcast.FastRecast = {ammo="Incantor Stone",
head="Nahtirah Hat",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",
back="Swith Cape +1",waist="Goading Belt",legs="",feet="Academic's Loafers"}
sets.midcast.Cure = {main="Akademos",sub="Genbu's Shield",ammo="Incantor Stone",
head="Vanya Hood",neck="Colossus's Torque",ear2="Lifestorm Earring",ear1="Mendicant's earring",
body="Amalric Doublet",hands="Telchine Gloves",ring1="Ephedra Ring",ring2="Ephedra Ring",
back="Swith Cape +1",waist="Luminary Sash",legs="Orvail Pants +1",feet="Vanya Clogs"}
sets.midcast.CureWithLightWeather = {main="Akademos",sub="Achaq Grip",ammo="Incantor Stone",
head="Gendewitha Caubeen",neck="Colossus's Torque",ear1="Lifestorm Earring",ear2="Loquacious Earring",
body="Heka's Kalasiris",hands="Telchine Gloves",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Twilight Cape",waist="Korin Obi",legs="Nares Trews",feet="Academic's Loafers"}
sets.midcast.Curaga = sets.midcast.Cure
sets.midcast.Regen = {main="Bolelabunga",head="Savant's Bonnet +2",back="Lugh's Cape"}
sets.midcast.Cursna = {
neck="Malison Medallion",
hands="Hieros Mittens",ring1="Ephedra Ring",ring2="Ephedra Ring",
feet="Vanya Clogs"}
sets.midcast['Enhancing Magic'] = {ammo="Savant's Treatise",
head="Savant's Bonnet +2",neck="Enhancing Torque",
body="Hyksos Robe",hands="Ayao's Gages",
waist="Olympus Sash",legs="Portent Pants"}
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash",ear1="Earthcry earring"})
sets.midcast.Storm = set_combine(sets.midcast['Enhancing Magic'], {feet="Pedagogy Loafers"})
sets.midcast.Protect = {ring1="Sheltered Ring"}
sets.midcast.Protectra = sets.midcast.Protect
sets.midcast.Shell = {ring1="Sheltered Ring"}
sets.midcast.Shellra = sets.midcast.Shell
-- Custom spell classes
sets.midcast.MndEnfeebles = {main="Akademos",sub="Niobid Strap",ammo="Sturm's Report",
head="Hyksos khat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanya Robe",hands="Yaoyotl Gloves",ring1="Aquasoul Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Demonry Sash",legs="Bokwus Slops",feet="Bokwus Boots"}
sets.midcast.IntEnfeebles = {main="Akademos",sub="Niobid Strap",ammo="Sturm's Report",
head="Hyksos khat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanya Robe",hands="Yaoyotl Gloves",ring1="Irrwisch Ring",ring2="Aquilo's Ring",
back="Bookworm's Cape",waist="Demonry Sash",legs="Bokwus Slops",feet="Bokwus Boots"}
sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
sets.midcast['Dark Magic'] = {
main="Akademos",
sub="Niobid Strap",
ammo="Kalboron Stone",
head={ name="Merlinic Hood", augments={'Magic burst mdg.+10%','CHR+3','"Mag.Atk.Bns."+4',}},
body="Helios Jacket",
hands="Merlinic Dastanas",
legs={ name="Psycloth Lappas", augments={'MP+70','Mag. Acc.+13','"Fast Cast"+6',}},
feet={ name="Merlinic Crackows", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','"Drain" and "Aspir" potency +10','CHR+5','Mag. Acc.+3','"Mag.Atk.Bns."+9',}},
neck="Eddy Necklace",
waist="Refoccilation Stone",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring="Evanescence Ring",
right_ring="Aquilo's Ring",
back="Twilight Cape",
}
sets.midcast.Kaustra = {
main="Akademos",
sub="Willpower Grip",
ammo="Kalboron Stone",
head={ name="Merlinic Hood", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Mag. Acc.+10','"Mag.Atk.Bns."+5',}},
body={ name="Amalric Doublet", augments={'MP+60','"Mag.Atk.Bns."+20','"Fast Cast"+3',}},
hands="Merlinic Dastanas",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Enmity-4','VIT+10','"Mag.Atk.Bns."+12',}},
feet={ name="Merlinic Crackows", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','"Drain" and "Aspir" potency +10','CHR+5','Mag. Acc.+3','"Mag.Atk.Bns."+9',}},
neck="Twilight Torque",
waist="Refoccilation Stone",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring={ name="Dark Ring", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%',}},
right_ring={ name="Dark Ring", augments={'Breath dmg. taken -3%','Phys. dmg. taken -3%',}},
back={ name="Mecisto. Mantle", augments={'Cap. Point+41%','MP+19','Mag. Acc.+2','DEF+9',}},
}
sets.midcast.Drain = {
main="Akademos",
sub="Niobid Strap",
ammo="Kalboron Stone",
head={ name="Merlinic Hood", augments={'Magic burst mdg.+10%','CHR+3','"Mag.Atk.Bns."+4',}},
body="Helios Jacket",
hands="Merlinic Dastanas",
legs={ name="Psycloth Lappas", augments={'MP+70','Mag. Acc.+13','"Fast Cast"+6',}},
feet={ name="Merlinic Crackows", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','"Drain" and "Aspir" potency +10','CHR+5','Mag. Acc.+3','"Mag.Atk.Bns."+9',}},
neck="Eddy Necklace",
waist="Refoccilation Stone",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring="Evanescence Ring",
right_ring="Aquilo's Ring",
back="Bookworm's Cape",
}
sets.midcast.Aspir = sets.midcast.Drain
sets.midcast.Stun = {
main="Akademos",
main="Akademos",
sub="Niobid Strap",
ammo="Kalboron Stone",
head={ name="Merlinic Hood", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Mag. Acc.+10','"Mag.Atk.Bns."+5',}},
body={ name="Amalric Doublet", augments={'MP+60','"Mag.Atk.Bns."+20','"Fast Cast"+3',}},
hands="Merlinic Dastanas",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Enmity-4','VIT+10','"Mag.Atk.Bns."+12',}},
feet={ name="Merlinic Crackows", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','"Drain" and "Aspir" potency +10','CHR+5','Mag. Acc.+3','"Mag.Atk.Bns."+9',}},
neck="Twilight Torque",
waist="Refoccilation Stone",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring={ name="Dark Ring", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%',}},
right_ring={ name="Dark Ring", augments={'Breath dmg. taken -3%','Phys. dmg. taken -3%',}},
back={ name="Mecisto. Mantle", augments={'Cap. Point+41%','MP+19','Mag. Acc.+2','DEF+9',}},
}
sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {main="Akademos"})
-- Elemental Magic sets are default for handling low-tier nukes.
sets.midcast['Elemental Magic'] = {
main="Akademos",
sub="Niobid Strap",
ammo="Kalboron Stone",
head={ name="Merlwinic Hood"},
body={ name="Amalric Doublet", augments={'MP+60','"Mag.Atk.Bns."+20','"Fast Cast"+3',}},
hands="Merlinic Dastanas",
legs={ name="Merlinic Shalwar"},
feet={ name="Merlinic Crackows"},
neck="Eddy Necklace",
waist="Refoccilation Stone",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring="Acumen Ring",
right_ring="Aquilo's Ring",
back="Lugh's Cape",
}
sets.midcast['Elemental Magic'].Resistant = {
main="Akademos",
sub="Niobid Strap",
ammo="Kalboron Stone",
head={ name="Merlwinic Hood"},
body={ name="Amalric Doublet", augments={'MP+60','"Mag.Atk.Bns."+20','"Fast Cast"+3',}},
hands="Merlinic Dastanas",
legs={ name="Merlinic Shalwar"},
feet={ name="Merlinic Crackows"},
neck="Eddy Necklace",
waist="Refoccilation Stone",
left_ear="Barkarole Earring",
right_ear="Friomisi Earring",
left_ring="Acumen Ring",
right_ring="Aquilo's Ring",
back="Lugh's Cape",
}
sets.MagicBurst = {
main="Akademos",
sub="Niobid Strap",
ammo="Kalboron Stone",
head="Merlinic Hood",
body="Wretched Coat",
hands="Merlinic Dastanas",
legs="Merlinic Shalwar",
feet="Merlinic Crackows",
neck="Eddy Necklace",
waist="Refoccilation Stone",
left_ear="Barkarole Earring",
right_ear="Friomisi Earring",
left_ring="Mujin Band",
right_ring="Locus Ring",
back="Seshaw cape",
}
-- Custom refinements for certain nuke tiers
sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})
sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'].Resistant, {sub="Wizzan Grip"})
sets.midcast.Impact = {main="Akademos",sub="Niobid Strap",ammo="Dosis Tathlum",
head=empty,neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Twilight Cloak",hands=gear.macc_hagondes,ring1="Icesoul Ring",ring2="Sangoma Ring",
back="Toro Cape",waist="Demonry Sash",legs="Hagondes Pants",feet="Bokwus Boots"}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main="Chatoyant Staff",sub="Niobid Strap",
head="Nefer Khat +1",neck="Wiglen Gorget",
body="Heka's Kalasiris",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
waist="Austerity Belt",legs="Nares Trews",feet="Serpentes Sabots"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle.Town = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Savant's Bonnet +2",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Savant's Gown +2",hands="Savant's Bracers +2",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Savant's Pants +2",feet="Herald's Gaiters"}
sets.idle.Field = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Nefer Khat +1",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Heka's Kalasiris",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Mecisto. Mantle",waist="Hierarch Belt",legs="Nares Trews",feet="Herald's Gaiters"}
sets.idle.Field.PDT = {
main="Akademos",
sub="Niobid Strap",
ammo="Kalboron Stone",
head={ name="Merlinic Hood"},
body={ name="Amalric Doublet"},
hands={ name="Merlinic Dastanas"},
legs={ name="Merlinic Shalwar"},
feet={ name="Merlinic Crackows"},
neck="Twilight Torque",
waist="Refoccilation Stone",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring={ name="Dark Ring"},
right_ring={ name="Dark Ring"},
back={ name="Mecisto. Mantle"},
}
sets.idle.Field.Stun = {main="Apamajas II",sub="Niobid Strap",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
back="Swith Cape +1",waist="Goading Belt",legs="Bokwus Slops",feet="Academic's Loafers"}
sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Sheltered Ring",ring2="Meridian Ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Nares Trews",feet="Herald's Gaiters"}
-- Defense sets
sets.defense.PDT = {
main="Akademos",
sub="Niobid Strap",
ammo="Kalboron Stone",
head={ name="Merlinic Hood"},
body={ name="Amalric Doublet"},
hands={ name="Merlinic Dastanas"},
legs={ name="Merlinic Shalwar"},
feet={ name="Merlinic Crackows"},
neck="Twilight Torque",
waist="Refoccilation Stone",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring={ name="Dark Ring"},
right_ring={ name="Dark Ring"},
back={ name="Mecisto. Mantle"},
}
sets.defense.MDT = {main=gear.Staff.PDT,sub="Achaq Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Tuilha Cape",waist="Hierarch Belt",legs="Bokwus Slops",feet="Hagondes Sabots"}
sets.Kiting = {feet="Herald's Gaiters"}
sets.latent_refresh = {waist="Fucho-no-obi"}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = {
head="Zelus Tiara",
body="Vanir Cotehardie",hands="Bokwus Gloves",ring1="Rajas Ring",
waist="Goading Belt",legs="Hagondes Pants",feet="Hagondes Sabots",back="Mecisto. Mantle"}
-- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
sets.buff['Ebullience'] = {head="Savant's Bonnet +2"}
sets.buff['Rapture'] = {head="Savant's Bonnet +2"}
-------------------------------------------------------
-- This is where I added the hands.
sets.buff['Perpetuance'] = {hands="Arbatel Bracers"}
sets.buff['Immanence'] = {hands="Arbatel Bracers"}
--------------------------------------------------------
sets.buff['Penury'] = {legs="Savant's Pants +2"}
sets.buff['Parsimony'] = {legs="Savant's Pants +2"}
sets.buff['Celerity'] = {feet="Pedagogy Loafers"}
sets.buff['Alacrity'] = {feet="Pedagogy Loafers"}
sets.buff['Klimaform'] = {feet="Savant's Loafers +2"}
sets.buff.FullSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring",body="Pedagogy Gown"}
sets.buff.PDTSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring"}
--sets.buff['Sandstorm'] = {feet="Desert Boots"}
end
I know that i have a lot of redundant functions that aren't being used in my SCH.lua file atm. I'm a beginner at this and testing different ways to get things done. Currently CTRL + S displays my current stratty count properly and all other strategem count & Reports are not working. I'll clean that part up later :)
Shiva.Hiep
サーバ: Shiva
Game: FFXI
Posts: 669
By Shiva.Hiep 2016-05-04 13:45:51
Is there any way to find the ID of every debuff in the game?
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-05-04 18:03:27
Windower4>res folder. If you mean status effect ID, they're all in buffs.lua (lists both positive and negative status effects).
[+]
Lakshmi.Rumorian
サーバ: Lakshmi
Game: FFXI
Posts: 10
By Lakshmi.Rumorian 2016-05-05 17:59:00
Any idea why I'm getting these messages every time I use Unbridled Learning on my BLU?
GearSwap: Lua runtime error: GearSwap/flow.lua:336:
GearSwap has detected an error in the user function aftercast:
... (x86)/Windower4//addons/GearSwap/user_functions.lua:235: attempt to concatenate local 'command' (a nil value)
Valefor.Neehi
サーバ: Valefor
Game: FFXI
Posts: 2
By Valefor.Neehi 2016-05-05 19:46:40
How can I mimic javascript's setTimeout() in .lua?
For instance, if I want to equip a treasure hunter belt for the first 30 seconds of a fight, I could do something like this "in javascript":
Code function status_change(new,old) {
if (new == "Engaged") {
equip({waist: "Tarutaru Sash"})
disable("waist") // I don't actually believe disable works in this case, but it's an example. If I recall, the disable applies to the compiled equips of the total function.
setTimeout(function() {
enable("waist");
}, 30000); // The 30000 means 30 seconds
}
}
What I have that works, if possibly inefficient, is this: Code send_command('input /equip waist "Tarutaru Sash"; gs disable waist; wait 30; gs enable waist')
By Faelar 2016-05-07 00:34:20
This isn't working at all...
Code
function precast(spell)
if spell.prefix == '/magic' then
-- Magic precast
equip(sets.FastCast)
elseif spell.name:startswith("Fir", "Wat", "Blizz", "Thund", "Ston", "Aero") then
equip(sets.Nuking)
elseif spell.name:startswith("Cure", "Cura", "Curaga") then
equip(sets.Cure)
elseif spell.name:startswith("Indi-", "Geo-") then
equip(sets.Geomancy)
end
end
What's wrong with it? Earlier the Geomancy part was working, but it just stopped. No visible errors when I load it or cast anything.
[+]
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-05-07 01:12:58
Once a condition is met within an if cluster, the program will skip over all following conditions until the end of the cluster.
Syntactically, your code is fine. Logically, however, none of the elseif conditions will work because they are all magic, thus meeting the first condition and ignoring all the other conditions. The best solution is to change the order so that the /magic condition comes last.
[+]
By Faelar 2016-05-07 01:26:45
Ragnarok.Flippant said: »Once a condition is met within an if cluster, the program will skip over all following conditions until the end of the cluster.
Syntactically, your code is fine. Logically, however, none of the elseif conditions will work because they are all magic, thus meeting the first condition and ignoring all the other conditions. The best solution is to change the order so that the /magic condition comes last.
Doh! I see what you're saying. Thank you! ^^;;;
By Selindrile 2016-05-08 10:38:43
So when I logged in today, my gearswap was broken, and come to find out my mote-utility file had reverted I guess to what it was like I guess two years ago, thankfully I had a backup and don't think I lost anything, but, just wondering if anyone knew why this happened or if it will happen again.
サーバ: Odin
Game: FFXI
Posts: 31
By Odin.Phillybalboa 2016-05-09 15:16:42
I can't figure out how to add my marsyas and honor march to my bokuras GS. anyone know?
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-05-09 20:26:20
Odin.Phillybalboa said: »I can't figure out how to add my marsyas and honor march to my bokuras GS. anyone know?
Best way I can think about doing it without changing too much:
Change your equip_song_gear function to: Code function equip_song_gear(spell)
if DaurdSongs:contains(spell.english) then
equip(sets.Precast.Daurdabla)
add_to_chat(158,'Daurdabla: [ON]')
else
if spell.target.type == 'MONSTER' then
equip(sets.Midcast.Wind)
if string.find(spell.english,'Finale') then equip(sets.Midcast.Finale) end
if string.find(spell.english,'Lullaby') then equip(sets.Midcast.Lullaby) end
else
equip(sets.Midcast.WindBuff)
if string.find(spell.english,'March') then equip(sets.Midcast.March) end
if string.find(spell.english,'Minuet') then equip(sets.Midcast.Minuet) end
if string.find(spell.english,'Madrigal') then equip(sets.Midcast.Madrigal) end
if string.find(spell.english,'Ballad') then equip(sets.Midcast.Ballad) end
if string.find(spell.english,'Scherzo') then equip(sets.Midcast.Scherzo) end
if string.find(spell.english,'Mazurka') then equip(sets.Midcast.Mazurka) end
if string.find(spell.english,'Paeon') then equip(sets.Midcast.Paeon) end
if spell.english=="Honor March" then equip(sets.Midcast.Honor) end
end
end
end
Add sets.Midcast.Honor: Code sets.Midcast.Honor = {range="Marsyas"}
But his rules equip your song precast set after this (in the precast function), so make sure you don't have any ammo/range being equipped in there (including 'empty'). If you're set on having 2% FC in there for the other songs, then we'll have to change the rules a bit.
[+]
サーバ: Odin
Game: FFXI
Posts: 31
By Odin.Phillybalboa 2016-05-11 13:28:32
Thank you , flippant. Worked like a charm!
サーバ: Odin
Game: FFXI
Posts: 11
By Odin.Nehalania 2016-05-11 17:48:27
What about Motes BRD GS? That's the one I'm using. I can't figure out how to put Marsyas / Honor March in there. D:
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-05-11 17:56:23
I might have to take a closer look, but does making a specific precast and midcast set not work?
Code sets.precast.FC["Honor March"] = set_combine(sets.precast.FC.BardSong,{range="Marsyas"})
sets.midcast["Honor March"] = set_combine(sets.midcast.SongEffect,{range="Marsyas"})
サーバ: Odin
Game: FFXI
Posts: 11
By Odin.Nehalania 2016-05-11 18:02:08
Yes!! That worked, thanks so much! :D
By zaxtiss 2016-05-13 17:01:35
getting errors in on mall my joibs on lines 102 in flow.lua and 147 in organizer.lua anyoneknow whats up?
it seams kuje im the onlly one getting these
Lakshmi.Byrth
VIP
サーバ: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2016-05-13 17:38:08
Your resources aren't updated and you have a new item.
By Faelar 2016-05-18 23:53:59
Probably going to go to using Equipsets, since everytime I make a tiny change to my lua, it stops working.
Having a problem with my GEO lua again, only works for Indi- spells, and NOTHING else.
Code
function precast(spell)
if spell.name:startswith("Fire", "Water", "Blizzard", "Thunder", "Stone", "Aero") then
equip(sets.Nuking)
elseif spell.name:startswith("Cure", "Cura", "Curaga") then
equip(sets.Cure)
elseif spell.name:startswith("Indi-", "Geo-") then
equip(sets.Geomancy)
end
end
By Faelar 2016-05-19 09:42:17
Probably going to go to using Equipsets, since everytime I make a tiny change to my lua, it stops working.
Having a problem with my GEO lua again, only works for Indi- spells, and NOTHING else.
Code
function precast(spell)
if spell.name:startswith("Fire", "Water", "Blizzard", "Thunder", "Stone", "Aero") then
equip(sets.Nuking)
elseif spell.name:startswith("Cure", "Cura", "Curaga") then
equip(sets.Cure)
elseif spell.name:startswith("Indi-", "Geo-") then
equip(sets.Geomancy)
end
end
Did a little more testing.
When casting any Fire Nuke, it puts my nuke set on.
When casting any Cures, it puts my Cure set on.
When casting an Indi- spell, it puts my Geomancy Skill set on.
When casting a Geo- spell, or any other elemental nuke, nothing happens. At first glance, everything looks correct and in working order, but it's not working...Do I have too many elseif conditions in there?
サーバ: Cerberus
Game: FFXI
Posts: 1786
By Cerberus.Shadowmeld 2016-05-19 10:31:30
I don't think startswith can accept multiple parameters like that can it?
So it is catching the first passed argument and ignoring all the rest.
You would have to parse the spell name being passed to get it to work probably.
Code
local spell_first_name = spell.name:split(" ")[1]
if S{"Fire", "Water", "Blizzard", "Thunder", "Stone", "Aero"}:contains(spell_first_name) then
equip(sets.Nuking)
elseif S{"Cure", "Curaga", "Cura"}:contains(spell_first_name) then
equip(sets.Cure)
elseif spell.name:startswith("Indi-") or spell.name:startswith("Geo-") then
equip(sets.Geomancy)
end
[+]
Quetzalcoatl.Orestes
サーバ: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2016-05-19 10:47:35
Probably going to go to using Equipsets, since everytime I make a tiny change to my lua, it stops working.
Having a problem with my GEO lua again, only works for Indi- spells, and NOTHING else.
Code
function precast(spell)
if spell.name:startswith("Fire", "Water", "Blizzard", "Thunder", "Stone", "Aero") then
equip(sets.Nuking)
elseif spell.name:startswith("Cure", "Cura", "Curaga") then
equip(sets.Cure)
elseif spell.name:startswith("Indi-", "Geo-") then
equip(sets.Geomancy)
end
end
Did a little more testing.
When casting any Fire Nuke, it puts my nuke set on.
When casting any Cures, it puts my Cure set on.
When casting an Indi- spell, it puts my Geomancy Skill set on.
When casting a Geo- spell, or any other elemental nuke, nothing happens. At first glance, everything looks correct and in working order, but it's not working...Do I have too many elseif conditions in there?
edit: I was beaten to the punch.
As mentioned, startswith() doesn't accept multiple strings as arguments.
You could call startswith() in a loop, but this is the easiest solution.
Code
if spell.skill == 'Elemental Magic' then
equip(sets.Nuking)
elseif spell.skill == 'Healing Magic' then
equip(sets.Cure)
elseif spell.skill == 'Geomancy' then
equip(sets.Geomancy)
end
Also, just noticing you're equipping sets in precast(). This is generally where your fast cast sets go. midcast() is what you'll be wearing when spells go off.
Asura.Thorva
By Asura.Thorva 2016-05-20 21:13:55
I need help with a couple lua, first one is cor, I need to add in weather/day bonus for obi and zodiac ring.
Code -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
--[[
gs c toggle LuzafRing -- Toggles use of Luzaf Ring on and off
Offense mode is melee or ranged. Used ranged offense mode if you are engaged
for ranged weaponskills, but not actually meleeing.
Weaponskill mode, if set to 'Normal', is handled separately for melee and ranged weaponskills.
--]]
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
-- Whether to use Luzaf's Ring
state.LuzafRing = M(false, "Luzaf's Ring")
-- Whether a warning has been given for low ammo
state.warned = M(false)
define_roll_values()
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Ranged', 'Melee', 'Acc')
state.RangedMode:options('Normal', 'Acc')
state.WeaponskillMode:options('Normal', 'Acc', 'Att', 'Mod')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT', 'Refresh')
gear.RAbullet = "Adlivun Bullet"
gear.WSbullet = "Divine Bullet"
gear.MAbullet = "Orichalc. Bullet"
gear.QDbullet = "Animikii Bullet"
options.ammo_warning_limit = 15
-- Additional local binds
send_command('bind ^` input /ja "Double-up" <me>')
send_command('bind !` input /ja "Bolter\'s Roll" <me>')
select_default_macro_book()
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !`')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA['Snake Eye'] = {legs={ name="Lanun Culottes +1", augments={'Enhances "Snake Eye" effect',}},}
sets.precast.JA['Wild Card'] = {feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},}
sets.precast.JA['Random Deal'] = {body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},}
sets.precast.JA['Triple shot'] = {body="Chasseur's Frac +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}}
sets.precast.CorsairRoll = {head={ name="Lanun Tricorne +1", augments={'Enhances "Winning Streak" effect',}},hands="Chasseur's gants +1",ring1="Barataria ring",ring2="Luzaf's Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
}
sets.precast.CorsairRoll["Caster's Roll"] = set_combine(sets.precast.CorsairRoll, {legs="Chasseur's Culottes +1"})
sets.precast.CorsairRoll["Courser's Roll"] = set_combine(sets.precast.CorsairRoll, {feet="Chasseur's Bottes"})
sets.precast.CorsairRoll["Blitzer's Roll"] = set_combine(sets.precast.CorsairRoll, {head="Chasseur's tricorne +1"})
sets.precast.CorsairRoll["Tactician's Roll"] = set_combine(sets.precast.CorsairRoll, {body="Chasseur's Frac +1"})
sets.precast.CorsairRoll["Allies' Roll"] = set_combine(sets.precast.CorsairRoll, {hands="Chasseur's gants +1"})
sets.precast.FoldDoubleBust = {hands="Lanun Gants"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Rawhide Mask",neck="Tjukurrpa medal",
body="Pursuer's doublet",hands="Taeon gloves",ring1="Titan ring",ring2="Titan ring",
back="Iximulew cape",waist="Caudata belt",legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Fast cast sets for spells
sets.precast.FC = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="Foppish Tunica",
hands={ name="Leyline Gloves", augments={'Accuracy+14','Mag. Acc.+13','"Mag.Atk.Bns."+13','"Fast Cast"+2',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}},
neck="Wiglen Gorget",
waist="Tempus Fugit",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Roller's Ring",
back="Iximulew Cape",}
sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
sets.precast.RA = {ammo=gear.RAbullet,
head="Aurore beret +1",neck="Ej necklace +1",ear1="Vision Earring",ear2="Volley Earring",
body="Pursuer's doublet",hands="Chasseur's gants +1",ring1="Hajduk Ring",ring2="Hajduk Ring",
waist="Yemaya belt",legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},hands="Chasseur's gants +1",
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
neck="Moepapa medal",waist="Yemaya belt",left_ear=" Earring",right_ear="Ishvara Earring",left_ring="Garuda Ring",right_ring="Garuda Ring",
back="Ik Cape",}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Evisceration'] = sets.precast.WS
sets.precast.WS['Exenterator'] = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Pursuer's Cuffs", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Caudata belt",
left_ear="Breeze pearl",
right_ear="Ishvara Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Requiescat'] = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Tjukurrpa Medal",
waist="Caudata Belt",
left_ear="Tati Earring",
right_ear="Vulcan's pearl",
left_ring="Petrov Ring",
right_ring="Ifrit Ring +1",
back="Buquwik Cape"}
sets.precast.WS['Last Stand'] = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Yemaya belt",
left_ear="Infused Earring",
right_ear="Enervating Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Last Stand'].Acc = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Yemaya belt",
left_ear="Infused Earring",
right_ear="Enervating Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'] = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'].Acc = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'].Brew = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Aeolian Edge'] = {ammo=gear.QDbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back="Aput mantle"}
sets.precast.WS['Leaden Salute'] = {ammo=gear.MAbullet,
head="Pixie hairpin +1",
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Shadow Gorget",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Archon ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Leaden Salute'].Acc = {ammo=gear.MAbullet,
head="Pixie hairpin +1",
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Shadow Gorget",
waist="Anrin Obi",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Archon ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Savage Blade'] = {
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body="Foppish Tunica",
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Tjukurrpa Medal",
waist="Caudata Belt",
left_ear="Tati Earring",
right_ear="Vulcan's pearl",
left_ring="Petrov Ring",
right_ring="Ifrit Ring +1",
back="Buquwik Cape",}
-- Midcast Sets
sets.midcast.FastRecast = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="Foppish Tunica",
hands={ name="Leyline Gloves", augments={'Accuracy+14','Mag. Acc.+13','"Mag.Atk.Bns."+13','"Fast Cast"+2',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}},
neck="Wiglen Gorget",
waist="Tempus Fugit",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Roller's Ring",
back="Iximulew Cape",}
-- Specific spells
sets.midcast.Utsusemi = sets.midcast.FastRecast
sets.midcast.CorsairShot = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back="Aput Mantle",}
sets.midcast.CorsairShot.Acc = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
left_ring="Fenrir Ring +1",
right_ring="Arvina ringlet +1",
back="Aput Mantle",}
sets.midcast.CorsairShot['Light Shot'] = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet="Chasseur's bottes",
neck="Waylayer's scarf +1",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
ring1="Arvina Ring +1",
ring2="Perception Ring",
back="Aput Mantle",}
sets.midcast.CorsairShot['Dark Shot'] = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet="Chasseur's bottes",
neck="Waylayer's scarf +1",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
ring1="Archon Ring",
ring2="Perception Ring",
back="Aput Mantle",}
-- Ranged gear
sets.midcast.RA = {ammo=gear.RAbullet,
head="Chasseur's tricorne +1",neck="Ej necklace +1",ear1="Volley Earring",ear2="Enervating Earring",
body="Pursuer's doublet",hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
left_ring="Petrov Ring",right_ring="Rajas Ring",waist="Yemaya belt",feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs="Chasseur's Culottes +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.midcast.RA.Acc = {ammo=gear.RAbullet,
head="Chass. Tricorne +1",
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands="Chasseur's Gants +1",
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Ej necklace +1",
waist="Yemaya Belt",
left_ear="Volley Earring",
right_ear="Enervating Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},
}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {neck="Wiglen Gorget",ring1="Paguroidea Ring",ring2="Sheltered Ring"}
-- Idle sets
sets.idle = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Roller's Ring",
back="Iximulew cape"
}
sets.idle.Town = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Iximulew cape"
}
-- Defense sets
sets.defense.PDT = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Iximulew cape"
}
sets.defense.MDT = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Veisa collar",
waist="Flume belt +1",
left_ear="Coral Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Engulfer cape +1"
}
sets.Kiting = {legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged.Melee = {ammo=gear.RAbullet,
head={ name="Herculean Helm", augments={'Attack+22','"Dual Wield"+6','INT+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Taeon Boots", augments={'Accuracy+24','"Dual Wield"+4','Weapon skill damage +3%',}},
neck="Clotharius Torque",
waist="Windbuffet Belt +1",
left_ear="Suppanomimi",
right_ear="Eabani Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back="Bleating mantle"}
sets.engaged.Acc = {ammo=gear.RAbullet,
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Ej necklace +1",
waist="Kentarch belt +1",
left_ear="Dudgeon Earring",
right_ear="Heartseeker Earring",
left_ring="Yacuruna Ring +1",
right_ring="Etana Ring",
back="Meanagh cape +1"}
sets.engaged.Melee.DW = {ammo=gear.RAbullet,
head={ name="Herculean Helm", augments={'Attack+22','"Dual Wield"+6','INT+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Taeon Tights", augments={'Accuracy+23','"Triple Atk."+2','Weapon skill damage +3%',}},
feet={ name="Taeon Boots", augments={'Accuracy+24','"Dual Wield"+4','Weapon skill damage +3%',}},
neck="Clotharius Torque",
waist="Windbuffet Belt +1",
left_ear="Suppanomimi",
right_ear="Eabani Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back="Bleating mantle"}
sets.engaged.Acc.DW = {ammo=gear.RAbullet,
head={ name="Taeon Chapeau", augments={'Accuracy+24','"Triple Atk."+2','Crit. hit damage +1%',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Taeon Tights", augments={'Accuracy+23','"Triple Atk."+2','Weapon skill damage +3%',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Ej necklace +1",
waist="Kentarch belt +1",
left_ear="Dudgeon Earring",
right_ear="Heartseeker Earring",
left_ring="Yacuruna Ring +1",
right_ring="Etana Ring",
back="Meanagh cape +1"}
sets.engaged.Ranged = {ammo=gear.RAbullet,
head="Chass. Tricorne +1",
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Ej necklace +1",
waist="Yemaya Belt",
left_ear="Volley Earring",
right_ear="Enervating Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},
}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
-- Check that proper ammo is available if we're using ranged attacks or similar.
if spell.action_type == 'Ranged Attack' or spell.type == 'WeaponSkill' or spell.type == 'CorsairShot' then
do_bullet_checks(spell, spellMap, eventArgs)
end
-- gear sets
if (spell.type == 'CorsairRoll' or spell.english == "Double-Up") and state.LuzafRing.value then
equip(sets.precast.LuzafRing)
elseif spell.type == 'CorsairShot' and state.CastingMode.value == 'Resistant' then
classes.CustomClass = 'Acc'
elseif spell.english == 'Fold' and buffactive['Bust'] == 2 then
if sets.precast.FoldDoubleBust then
equip(sets.precast.FoldDoubleBust)
eventArgs.handled = true
end
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
if spell.type == 'CorsairRoll' and not spell.interrupted then
display_roll_info(spell)
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Return a customized weaponskill mode to use for weaponskill sets.
-- Don't return anything if you're not overriding the default value.
function get_custom_wsmode(spell, spellMap, default_wsmode)
if buffactive['Transcendancy'] then
return 'Brew'
end
end
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
if newStatus == 'Engaged' and player.equipment.main == 'Chatoyant Staff' then
state.OffenseMode:set('Ranged')
end
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
local msg = ''
msg = msg .. 'Off.: '..state.OffenseMode.current
msg = msg .. ', Rng.: '..state.RangedMode.current
msg = msg .. ', WS.: '..state.WeaponskillMode.current
msg = msg .. ', QD.: '..state.CastingMode.current
if state.DefenseMode.value ~= 'None' then
local defMode = state[state.DefenseMode.value ..'DefenseMode'].current
msg = msg .. ', Defense: '..state.DefenseMode.value..' '..defMode
end
if state.Kiting.value then
msg = msg .. ', Kiting'
end
if state.PCTargetMode.value ~= 'default' then
msg = msg .. ', Target PC: '..state.PCTargetMode.value
end
if state.SelectNPCTargets.value then
msg = msg .. ', Target NPCs'
end
msg = msg .. ', Roll Size: ' .. ((state.LuzafRing.value and 'Large') or 'Small')
add_to_chat(122, msg)
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
function define_roll_values()
rolls = {
["Corsair's Roll"] = {lucky=5, unlucky=9, bonus="Experience Points"},
["Ninja Roll"] = {lucky=4, unlucky=8, bonus="Evasion"},
["Hunter's Roll"] = {lucky=4, unlucky=8, bonus="Accuracy"},
["Chaos Roll"] = {lucky=4, unlucky=8, bonus="Attack"},
["Magus's Roll"] = {lucky=2, unlucky=6, bonus="Magic Defense"},
["Healer's Roll"] = {lucky=3, unlucky=7, bonus="Cure Potency Received"},
["Puppet Roll"] = {lucky=4, unlucky=8, bonus="Pet Magic Accuracy/Attack"},
["Choral Roll"] = {lucky=2, unlucky=6, bonus="Spell Interruption Rate"},
["Monk's Roll"] = {lucky=3, unlucky=7, bonus="Subtle Blow"},
["Beast Roll"] = {lucky=4, unlucky=8, bonus="Pet Attack"},
["Samurai Roll"] = {lucky=2, unlucky=6, bonus="Store TP"},
["Evoker's Roll"] = {lucky=5, unlucky=9, bonus="Refresh"},
["Rogue's Roll"] = {lucky=5, unlucky=9, bonus="Critical Hit Rate"},
["Warlock's Roll"] = {lucky=4, unlucky=8, bonus="Magic Accuracy"},
["Fighter's Roll"] = {lucky=5, unlucky=9, bonus="Double Attack Rate"},
["Drachen Roll"] = {lucky=3, unlucky=7, bonus="Pet Accuracy"},
["Gallant's Roll"] = {lucky=3, unlucky=7, bonus="Defense"},
["Wizard's Roll"] = {lucky=5, unlucky=9, bonus="Magic Attack"},
["Dancer's Roll"] = {lucky=3, unlucky=7, bonus="Regen"},
["Scholar's Roll"] = {lucky=2, unlucky=6, bonus="Conserve MP"},
["Bolter's Roll"] = {lucky=3, unlucky=9, bonus="Movement Speed"},
["Caster's Roll"] = {lucky=2, unlucky=7, bonus="Fast Cast"},
["Courser's Roll"] = {lucky=3, unlucky=9, bonus="Snapshot"},
["Blitzer's Roll"] = {lucky=4, unlucky=9, bonus="Attack Delay"},
["Tactician's Roll"] = {lucky=5, unlucky=8, bonus="Regain"},
["Allies's Roll"] = {lucky=3, unlucky=10, bonus="Skillchain Damage"},
["Miser's Roll"] = {lucky=5, unlucky=7, bonus="Save TP"},
["Companion's Roll"] = {lucky=2, unlucky=10, bonus="Pet Regain and Regen"},
["Avenger's Roll"] = {lucky=4, unlucky=8, bonus="Counter Rate"},
}
end
function display_roll_info(spell)
rollinfo = rolls[spell.english]
local rollsize = (state.LuzafRing.value and 'Large') or 'Small'
if rollinfo then
add_to_chat(104, spell.english..' provides a bonus to '..rollinfo.bonus..'. Roll size: '..rollsize)
add_to_chat(104, 'Lucky roll is '..tostring(rollinfo.lucky)..', Unlucky roll is '..tostring(rollinfo.unlucky)..'.')
end
end
-- Determine whether we have sufficient ammo for the action being attempted.
function do_bullet_checks(spell, spellMap, eventArgs)
local bullet_name
local bullet_min_count = 1
if spell.type == 'WeaponSkill' then
if spell.skill == "Marksmanship" then
if spell.element == 'None' then
-- physical weaponskills
bullet_name = gear.WSbullet
else
-- magical weaponskills
bullet_name = gear.MAbullet
end
else
-- Ignore non-ranged weaponskills
return
end
elseif spell.type == 'CorsairShot' then
bullet_name = gear.QDbullet
elseif spell.action_type == 'Ranged Attack' then
bullet_name = gear.RAbullet
if buffactive['Triple Shot'] then
bullet_min_count = 3
end
end
local available_bullets = player.inventory[bullet_name] or player.wardrobe[bullet_name]
-- If no ammo is available, give appropriate warning and end.
if not available_bullets then
if spell.type == 'CorsairShot' and player.equipment.ammo ~= 'empty' then
add_to_chat(104, 'No Quick Draw ammo left. Using what\'s currently equipped ('..player.equipment.ammo..').')
return
elseif spell.type == 'WeaponSkill' and player.equipment.ammo == gear.RAbullet then
add_to_chat(104, 'No weaponskill ammo left. Using what\'s currently equipped (standard ranged bullets: '..player.equipment.ammo..').')
return
else
add_to_chat(104, 'No ammo ('..tostring(bullet_name)..') available for that action.')
eventArgs.cancel = true
return
end
end
-- Don't allow shooting or weaponskilling with ammo reserved for quick draw.
if spell.type ~= 'CorsairShot' and bullet_name == gear.QDbullet and available_bullets.count <= bullet_min_count then
add_to_chat(104, 'No ammo will be left for Quick Draw. Cancelling.')
eventArgs.cancel = true
return
end
-- Low ammo warning.
if spell.type ~= 'CorsairShot' and state.warned.value == false
and available_bullets.count > 1 and available_bullets.count <= options.ammo_warning_limit then
local msg = '***** LOW AMMO WARNING: '..bullet_name..' *****'
--local border = string.repeat("*", #msg)
local border = ""
for i = 1, #msg do
border = border .. "*"
end
add_to_chat(104, border)
add_to_chat(104, msg)
add_to_chat(104, border)
state.warned:set()
elseif available_bullets.count > options.ammo_warning_limit and state.warned then
state.warned:reset()
end
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 3)
end
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-05-21 08:54:38
I need help with a couple lua, first one is cor, I need to add in weather/day bonus for obi and zodiac ring.
Code -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
--[[
gs c toggle LuzafRing -- Toggles use of Luzaf Ring on and off
Offense mode is melee or ranged. Used ranged offense mode if you are engaged
for ranged weaponskills, but not actually meleeing.
Weaponskill mode, if set to 'Normal', is handled separately for melee and ranged weaponskills.
--]]
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
-- Whether to use Luzaf's Ring
state.LuzafRing = M(false, "Luzaf's Ring")
-- Whether a warning has been given for low ammo
state.warned = M(false)
define_roll_values()
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Ranged', 'Melee', 'Acc')
state.RangedMode:options('Normal', 'Acc')
state.WeaponskillMode:options('Normal', 'Acc', 'Att', 'Mod')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT', 'Refresh')
gear.RAbullet = "Adlivun Bullet"
gear.WSbullet = "Divine Bullet"
gear.MAbullet = "Orichalc. Bullet"
gear.QDbullet = "Animikii Bullet"
options.ammo_warning_limit = 15
-- Additional local binds
send_command('bind ^` input /ja "Double-up" <me>')
send_command('bind !` input /ja "Bolter\'s Roll" <me>')
select_default_macro_book()
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !`')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA['Snake Eye'] = {legs={ name="Lanun Culottes +1", augments={'Enhances "Snake Eye" effect',}},}
sets.precast.JA['Wild Card'] = {feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},}
sets.precast.JA['Random Deal'] = {body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},}
sets.precast.JA['Triple shot'] = {body="Chasseur's Frac +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}}
sets.precast.CorsairRoll = {head={ name="Lanun Tricorne +1", augments={'Enhances "Winning Streak" effect',}},hands="Chasseur's gants +1",ring1="Barataria ring",ring2="Luzaf's Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
}
sets.precast.CorsairRoll["Caster's Roll"] = set_combine(sets.precast.CorsairRoll, {legs="Chasseur's Culottes +1"})
sets.precast.CorsairRoll["Courser's Roll"] = set_combine(sets.precast.CorsairRoll, {feet="Chasseur's Bottes"})
sets.precast.CorsairRoll["Blitzer's Roll"] = set_combine(sets.precast.CorsairRoll, {head="Chasseur's tricorne +1"})
sets.precast.CorsairRoll["Tactician's Roll"] = set_combine(sets.precast.CorsairRoll, {body="Chasseur's Frac +1"})
sets.precast.CorsairRoll["Allies' Roll"] = set_combine(sets.precast.CorsairRoll, {hands="Chasseur's gants +1"})
sets.precast.FoldDoubleBust = {hands="Lanun Gants"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Rawhide Mask",neck="Tjukurrpa medal",
body="Pursuer's doublet",hands="Taeon gloves",ring1="Titan ring",ring2="Titan ring",
back="Iximulew cape",waist="Caudata belt",legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Fast cast sets for spells
sets.precast.FC = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="Foppish Tunica",
hands={ name="Leyline Gloves", augments={'Accuracy+14','Mag. Acc.+13','"Mag.Atk.Bns."+13','"Fast Cast"+2',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}},
neck="Wiglen Gorget",
waist="Tempus Fugit",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Roller's Ring",
back="Iximulew Cape",}
sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
sets.precast.RA = {ammo=gear.RAbullet,
head="Aurore beret +1",neck="Ej necklace +1",ear1="Vision Earring",ear2="Volley Earring",
body="Pursuer's doublet",hands="Chasseur's gants +1",ring1="Hajduk Ring",ring2="Hajduk Ring",
waist="Yemaya belt",legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},hands="Chasseur's gants +1",
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
neck="Moepapa medal",waist="Yemaya belt",left_ear=" Earring",right_ear="Ishvara Earring",left_ring="Garuda Ring",right_ring="Garuda Ring",
back="Ik Cape",}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Evisceration'] = sets.precast.WS
sets.precast.WS['Exenterator'] = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Pursuer's Cuffs", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Caudata belt",
left_ear="Breeze pearl",
right_ear="Ishvara Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Requiescat'] = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Tjukurrpa Medal",
waist="Caudata Belt",
left_ear="Tati Earring",
right_ear="Vulcan's pearl",
left_ring="Petrov Ring",
right_ring="Ifrit Ring +1",
back="Buquwik Cape"}
sets.precast.WS['Last Stand'] = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Yemaya belt",
left_ear="Infused Earring",
right_ear="Enervating Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Last Stand'].Acc = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Yemaya belt",
left_ear="Infused Earring",
right_ear="Enervating Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'] = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'].Acc = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'].Brew = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Aeolian Edge'] = {ammo=gear.QDbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back="Aput mantle"}
sets.precast.WS['Leaden Salute'] = {ammo=gear.MAbullet,
head="Pixie hairpin +1",
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Shadow Gorget",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Archon ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Leaden Salute'].Acc = {ammo=gear.MAbullet,
head="Pixie hairpin +1",
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Shadow Gorget",
waist="Anrin Obi",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Archon ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Savage Blade'] = {
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body="Foppish Tunica",
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Tjukurrpa Medal",
waist="Caudata Belt",
left_ear="Tati Earring",
right_ear="Vulcan's pearl",
left_ring="Petrov Ring",
right_ring="Ifrit Ring +1",
back="Buquwik Cape",}
-- Midcast Sets
sets.midcast.FastRecast = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="Foppish Tunica",
hands={ name="Leyline Gloves", augments={'Accuracy+14','Mag. Acc.+13','"Mag.Atk.Bns."+13','"Fast Cast"+2',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}},
neck="Wiglen Gorget",
waist="Tempus Fugit",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Roller's Ring",
back="Iximulew Cape",}
-- Specific spells
sets.midcast.Utsusemi = sets.midcast.FastRecast
sets.midcast.CorsairShot = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back="Aput Mantle",}
sets.midcast.CorsairShot.Acc = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
left_ring="Fenrir Ring +1",
right_ring="Arvina ringlet +1",
back="Aput Mantle",}
sets.midcast.CorsairShot['Light Shot'] = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet="Chasseur's bottes",
neck="Waylayer's scarf +1",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
ring1="Arvina Ring +1",
ring2="Perception Ring",
back="Aput Mantle",}
sets.midcast.CorsairShot['Dark Shot'] = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet="Chasseur's bottes",
neck="Waylayer's scarf +1",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
ring1="Archon Ring",
ring2="Perception Ring",
back="Aput Mantle",}
-- Ranged gear
sets.midcast.RA = {ammo=gear.RAbullet,
head="Chasseur's tricorne +1",neck="Ej necklace +1",ear1="Volley Earring",ear2="Enervating Earring",
body="Pursuer's doublet",hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
left_ring="Petrov Ring",right_ring="Rajas Ring",waist="Yemaya belt",feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs="Chasseur's Culottes +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.midcast.RA.Acc = {ammo=gear.RAbullet,
head="Chass. Tricorne +1",
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands="Chasseur's Gants +1",
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Ej necklace +1",
waist="Yemaya Belt",
left_ear="Volley Earring",
right_ear="Enervating Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},
}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {neck="Wiglen Gorget",ring1="Paguroidea Ring",ring2="Sheltered Ring"}
-- Idle sets
sets.idle = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Roller's Ring",
back="Iximulew cape"
}
sets.idle.Town = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Iximulew cape"
}
-- Defense sets
sets.defense.PDT = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Iximulew cape"
}
sets.defense.MDT = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Veisa collar",
waist="Flume belt +1",
left_ear="Coral Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Engulfer cape +1"
}
sets.Kiting = {legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged.Melee = {ammo=gear.RAbullet,
head={ name="Herculean Helm", augments={'Attack+22','"Dual Wield"+6','INT+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Taeon Boots", augments={'Accuracy+24','"Dual Wield"+4','Weapon skill damage +3%',}},
neck="Clotharius Torque",
waist="Windbuffet Belt +1",
left_ear="Suppanomimi",
right_ear="Eabani Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back="Bleating mantle"}
sets.engaged.Acc = {ammo=gear.RAbullet,
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Ej necklace +1",
waist="Kentarch belt +1",
left_ear="Dudgeon Earring",
right_ear="Heartseeker Earring",
left_ring="Yacuruna Ring +1",
right_ring="Etana Ring",
back="Meanagh cape +1"}
sets.engaged.Melee.DW = {ammo=gear.RAbullet,
head={ name="Herculean Helm", augments={'Attack+22','"Dual Wield"+6','INT+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Taeon Tights", augments={'Accuracy+23','"Triple Atk."+2','Weapon skill damage +3%',}},
feet={ name="Taeon Boots", augments={'Accuracy+24','"Dual Wield"+4','Weapon skill damage +3%',}},
neck="Clotharius Torque",
waist="Windbuffet Belt +1",
left_ear="Suppanomimi",
right_ear="Eabani Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back="Bleating mantle"}
sets.engaged.Acc.DW = {ammo=gear.RAbullet,
head={ name="Taeon Chapeau", augments={'Accuracy+24','"Triple Atk."+2','Crit. hit damage +1%',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Taeon Tights", augments={'Accuracy+23','"Triple Atk."+2','Weapon skill damage +3%',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Ej necklace +1",
waist="Kentarch belt +1",
left_ear="Dudgeon Earring",
right_ear="Heartseeker Earring",
left_ring="Yacuruna Ring +1",
right_ring="Etana Ring",
back="Meanagh cape +1"}
sets.engaged.Ranged = {ammo=gear.RAbullet,
head="Chass. Tricorne +1",
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Ej necklace +1",
waist="Yemaya Belt",
left_ear="Volley Earring",
right_ear="Enervating Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},
}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
-- Check that proper ammo is available if we're using ranged attacks or similar.
if spell.action_type == 'Ranged Attack' or spell.type == 'WeaponSkill' or spell.type == 'CorsairShot' then
do_bullet_checks(spell, spellMap, eventArgs)
end
-- gear sets
if (spell.type == 'CorsairRoll' or spell.english == "Double-Up") and state.LuzafRing.value then
equip(sets.precast.LuzafRing)
elseif spell.type == 'CorsairShot' and state.CastingMode.value == 'Resistant' then
classes.CustomClass = 'Acc'
elseif spell.english == 'Fold' and buffactive['Bust'] == 2 then
if sets.precast.FoldDoubleBust then
equip(sets.precast.FoldDoubleBust)
eventArgs.handled = true
end
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
if spell.type == 'CorsairRoll' and not spell.interrupted then
display_roll_info(spell)
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Return a customized weaponskill mode to use for weaponskill sets.
-- Don't return anything if you're not overriding the default value.
function get_custom_wsmode(spell, spellMap, default_wsmode)
if buffactive['Transcendancy'] then
return 'Brew'
end
end
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
if newStatus == 'Engaged' and player.equipment.main == 'Chatoyant Staff' then
state.OffenseMode:set('Ranged')
end
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
local msg = ''
msg = msg .. 'Off.: '..state.OffenseMode.current
msg = msg .. ', Rng.: '..state.RangedMode.current
msg = msg .. ', WS.: '..state.WeaponskillMode.current
msg = msg .. ', QD.: '..state.CastingMode.current
if state.DefenseMode.value ~= 'None' then
local defMode = state[state.DefenseMode.value ..'DefenseMode'].current
msg = msg .. ', Defense: '..state.DefenseMode.value..' '..defMode
end
if state.Kiting.value then
msg = msg .. ', Kiting'
end
if state.PCTargetMode.value ~= 'default' then
msg = msg .. ', Target PC: '..state.PCTargetMode.value
end
if state.SelectNPCTargets.value then
msg = msg .. ', Target NPCs'
end
msg = msg .. ', Roll Size: ' .. ((state.LuzafRing.value and 'Large') or 'Small')
add_to_chat(122, msg)
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
function define_roll_values()
rolls = {
["Corsair's Roll"] = {lucky=5, unlucky=9, bonus="Experience Points"},
["Ninja Roll"] = {lucky=4, unlucky=8, bonus="Evasion"},
["Hunter's Roll"] = {lucky=4, unlucky=8, bonus="Accuracy"},
["Chaos Roll"] = {lucky=4, unlucky=8, bonus="Attack"},
["Magus's Roll"] = {lucky=2, unlucky=6, bonus="Magic Defense"},
["Healer's Roll"] = {lucky=3, unlucky=7, bonus="Cure Potency Received"},
["Puppet Roll"] = {lucky=4, unlucky=8, bonus="Pet Magic Accuracy/Attack"},
["Choral Roll"] = {lucky=2, unlucky=6, bonus="Spell Interruption Rate"},
["Monk's Roll"] = {lucky=3, unlucky=7, bonus="Subtle Blow"},
["Beast Roll"] = {lucky=4, unlucky=8, bonus="Pet Attack"},
["Samurai Roll"] = {lucky=2, unlucky=6, bonus="Store TP"},
["Evoker's Roll"] = {lucky=5, unlucky=9, bonus="Refresh"},
["Rogue's Roll"] = {lucky=5, unlucky=9, bonus="Critical Hit Rate"},
["Warlock's Roll"] = {lucky=4, unlucky=8, bonus="Magic Accuracy"},
["Fighter's Roll"] = {lucky=5, unlucky=9, bonus="Double Attack Rate"},
["Drachen Roll"] = {lucky=3, unlucky=7, bonus="Pet Accuracy"},
["Gallant's Roll"] = {lucky=3, unlucky=7, bonus="Defense"},
["Wizard's Roll"] = {lucky=5, unlucky=9, bonus="Magic Attack"},
["Dancer's Roll"] = {lucky=3, unlucky=7, bonus="Regen"},
["Scholar's Roll"] = {lucky=2, unlucky=6, bonus="Conserve MP"},
["Bolter's Roll"] = {lucky=3, unlucky=9, bonus="Movement Speed"},
["Caster's Roll"] = {lucky=2, unlucky=7, bonus="Fast Cast"},
["Courser's Roll"] = {lucky=3, unlucky=9, bonus="Snapshot"},
["Blitzer's Roll"] = {lucky=4, unlucky=9, bonus="Attack Delay"},
["Tactician's Roll"] = {lucky=5, unlucky=8, bonus="Regain"},
["Allies's Roll"] = {lucky=3, unlucky=10, bonus="Skillchain Damage"},
["Miser's Roll"] = {lucky=5, unlucky=7, bonus="Save TP"},
["Companion's Roll"] = {lucky=2, unlucky=10, bonus="Pet Regain and Regen"},
["Avenger's Roll"] = {lucky=4, unlucky=8, bonus="Counter Rate"},
}
end
function display_roll_info(spell)
rollinfo = rolls[spell.english]
local rollsize = (state.LuzafRing.value and 'Large') or 'Small'
if rollinfo then
add_to_chat(104, spell.english..' provides a bonus to '..rollinfo.bonus..'. Roll size: '..rollsize)
add_to_chat(104, 'Lucky roll is '..tostring(rollinfo.lucky)..', Unlucky roll is '..tostring(rollinfo.unlucky)..'.')
end
end
-- Determine whether we have sufficient ammo for the action being attempted.
function do_bullet_checks(spell, spellMap, eventArgs)
local bullet_name
local bullet_min_count = 1
if spell.type == 'WeaponSkill' then
if spell.skill == "Marksmanship" then
if spell.element == 'None' then
-- physical weaponskills
bullet_name = gear.WSbullet
else
-- magical weaponskills
bullet_name = gear.MAbullet
end
else
-- Ignore non-ranged weaponskills
return
end
elseif spell.type == 'CorsairShot' then
bullet_name = gear.QDbullet
elseif spell.action_type == 'Ranged Attack' then
bullet_name = gear.RAbullet
if buffactive['Triple Shot'] then
bullet_min_count = 3
end
end
local available_bullets = player.inventory[bullet_name] or player.wardrobe[bullet_name]
-- If no ammo is available, give appropriate warning and end.
if not available_bullets then
if spell.type == 'CorsairShot' and player.equipment.ammo ~= 'empty' then
add_to_chat(104, 'No Quick Draw ammo left. Using what\'s currently equipped ('..player.equipment.ammo..').')
return
elseif spell.type == 'WeaponSkill' and player.equipment.ammo == gear.RAbullet then
add_to_chat(104, 'No weaponskill ammo left. Using what\'s currently equipped (standard ranged bullets: '..player.equipment.ammo..').')
return
else
add_to_chat(104, 'No ammo ('..tostring(bullet_name)..') available for that action.')
eventArgs.cancel = true
return
end
end
-- Don't allow shooting or weaponskilling with ammo reserved for quick draw.
if spell.type ~= 'CorsairShot' and bullet_name == gear.QDbullet and available_bullets.count <= bullet_min_count then
add_to_chat(104, 'No ammo will be left for Quick Draw. Cancelling.')
eventArgs.cancel = true
return
end
-- Low ammo warning.
if spell.type ~= 'CorsairShot' and state.warned.value == false
and available_bullets.count > 1 and available_bullets.count <= options.ammo_warning_limit then
local msg = '***** LOW AMMO WARNING: '..bullet_name..' *****'
--local border = string.repeat("*", #msg)
local border = ""
for i = 1, #msg do
border = border .. "*"
end
add_to_chat(104, border)
add_to_chat(104, msg)
add_to_chat(104, border)
state.warned:set()
elseif available_bullets.count > options.ammo_warning_limit and state.warned then
state.warned:reset()
end
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 3)
end
I'm sure there's some more automated way to do this with Mote's, but I wouldn't know it off hand, so try this (can paste it anywhere that's outside of any other functions). Code function job_post_midcast(spell, action, spellMap, eventArgs)
if S{"Wildfire","Something Something"}:contains(spell.english) and (spell.element==world.day_element or spell.element==world.weather_element) then
equip({waist="Hachirin-no-Obi",ring1="Zodiac Ring"})
end
end
I dont use Gear swap, i still using Script macros for now, I have a problems
I have two DRK capes
Ankou's mantle for TP
Ankou's mantle for WS
Via Scripting macro i can't swap the cape, there its a way to fix this problem? or i will need use Gear Swap after all?
You could use FFXI's native equip sets instead, which I've read will remember which cape is which as long as they're in the same inventory and they aren't moved around.
Bismarck.Speedyjim
サーバ: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-05-23 12:37:02
Code function job_buff_change(buff, gain, buff_table)
buff = string.lower(buff)
if buff_table['id'] == 15 then -- Doom Party Chat --
if gain then
send_command('input /party Doom')
else
send_command('input /party Doom off')
add_to_chat(158,'Doom: [OFF]')
end
elseif buff_table['id'] == 9 then -- Curse Party Chat --
if gain then
send_command('input /party Curse')
else
add_to_chat(158,'Curse: [OFF]')
end
elseif buff_table['id'] == 14 or buff_table['id'] == 17 then -- Charm Party Chat --
if gain then
send_command('input /party Charmed')
else
send_command('input /party Charm off')
add_to_chat(158,'Charm: [OFF]')
end
elseif buff_table['id'] == 4 then -- Paralysis Party Chat --
if gain then
add_to_chat(123,'Paralyzed!')
else
add_to_chat(158,'Paralysis: [OFF]')
end
elseif buff_table['id'] == 91 then -- Nat. Meditation --
if not gain then
add_to_chat(123,'Nat. Meditation: [OFF]')
end
elseif buff_table['id'] == 93 then -- Cocoon Notification --
if not gain then
add_to_chat(123,'Cocoon: [OFF]')
end
elseif buff_table['id'] == 33 then -- Haste --
if not gain then
add_to_chat(123,'Haste: [OFF]')
end
elseif buff_table['id'] == 147 then -- Attack Down --
if not gain then
add_to_chat(158,'Attack Down: [OFF]')
end
elseif buff_table['id'] == 149 then -- Defense Down --
if not gain then
add_to_chat(158,'Defense Down: [OFF]')
end
elseif buff_table['id'] == 13 then -- Slow --
if gain then
add_to_chat(123,'Slowed!')
else
add_to_chat(158,'Slow: [OFF]')
end
elseif buff_table['id'] == 42 then -- Regen --
if not gain then
add_to_chat(123,'Regen: [OFF]')
end
elseif buff_table['id'] == 43 then -- Refresh --
if not gain then
add_to_chat(123,'Refresh: [OFF]')
end
elseif buff_table['id'] == 152 then -- Magic Barrier --
if not gain then
add_to_chat(123,'Magic Barrier: [OFF]')
end
elseif buff_table['id'] == 116 then -- Phalanx/Barrier Tusk --
if not gain then
add_to_chat(123,'Phalanx: [OFF]')
end
elseif buff_table['id'] == 36 then -- Blink/Occultation --
if not gain then
add_to_chat(123,'Blink: [OFF]')
end
elseif buff_table['id'] == 604 then -- Mighty Guard --
if not gain then
add_to_chat(123,'Mighty Guard: [OFF]')
end
elseif buff_table['id'] == 251 then -- Food --
if not gain then
add_to_chat(123,'Food: [OFF]')
end
elseif buff_table['id'] == 28 then -- Terror --
if not gain then
add_to_chat(158,'Terror: [OFF]')
end
elseif buff_table['id'] == 10 then -- Stun --
if not gain then
add_to_chat(158,'Stun: [OFF]')
end
elseif buff_table['id'] == 16 then -- Amnesia --
if not gain then
add_to_chat(158,'Amnesia: [OFF]')
end
elseif buff_table['id'] == 2 or buff_table['id'] == 19 then -- Sleep --
if gain then
send_command('input /party ZZZ')
else
add_to_chat(158,'Sleep: [OFF]')
end
end
end Found this in another LUA, doesn't seem to work with Mote's. Any ideas how to get this working? Thanks!
By Gruknor 2016-05-23 12:59:50
I need help with a couple lua, first one is cor, I need to add in weather/day bonus for obi and zodiac ring.
Code -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
--[[
gs c toggle LuzafRing -- Toggles use of Luzaf Ring on and off
Offense mode is melee or ranged. Used ranged offense mode if you are engaged
for ranged weaponskills, but not actually meleeing.
Weaponskill mode, if set to 'Normal', is handled separately for melee and ranged weaponskills.
--]]
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
-- Whether to use Luzaf's Ring
state.LuzafRing = M(false, "Luzaf's Ring")
-- Whether a warning has been given for low ammo
state.warned = M(false)
define_roll_values()
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Ranged', 'Melee', 'Acc')
state.RangedMode:options('Normal', 'Acc')
state.WeaponskillMode:options('Normal', 'Acc', 'Att', 'Mod')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT', 'Refresh')
gear.RAbullet = "Adlivun Bullet"
gear.WSbullet = "Divine Bullet"
gear.MAbullet = "Orichalc. Bullet"
gear.QDbullet = "Animikii Bullet"
options.ammo_warning_limit = 15
-- Additional local binds
send_command('bind ^` input /ja "Double-up" <me>')
send_command('bind !` input /ja "Bolter\'s Roll" <me>')
select_default_macro_book()
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !`')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA['Snake Eye'] = {legs={ name="Lanun Culottes +1", augments={'Enhances "Snake Eye" effect',}},}
sets.precast.JA['Wild Card'] = {feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},}
sets.precast.JA['Random Deal'] = {body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},}
sets.precast.JA['Triple shot'] = {body="Chasseur's Frac +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}}
sets.precast.CorsairRoll = {head={ name="Lanun Tricorne +1", augments={'Enhances "Winning Streak" effect',}},hands="Chasseur's gants +1",ring1="Barataria ring",ring2="Luzaf's Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
}
sets.precast.CorsairRoll["Caster's Roll"] = set_combine(sets.precast.CorsairRoll, {legs="Chasseur's Culottes +1"})
sets.precast.CorsairRoll["Courser's Roll"] = set_combine(sets.precast.CorsairRoll, {feet="Chasseur's Bottes"})
sets.precast.CorsairRoll["Blitzer's Roll"] = set_combine(sets.precast.CorsairRoll, {head="Chasseur's tricorne +1"})
sets.precast.CorsairRoll["Tactician's Roll"] = set_combine(sets.precast.CorsairRoll, {body="Chasseur's Frac +1"})
sets.precast.CorsairRoll["Allies' Roll"] = set_combine(sets.precast.CorsairRoll, {hands="Chasseur's gants +1"})
sets.precast.FoldDoubleBust = {hands="Lanun Gants"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Rawhide Mask",neck="Tjukurrpa medal",
body="Pursuer's doublet",hands="Taeon gloves",ring1="Titan ring",ring2="Titan ring",
back="Iximulew cape",waist="Caudata belt",legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Fast cast sets for spells
sets.precast.FC = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="Foppish Tunica",
hands={ name="Leyline Gloves", augments={'Accuracy+14','Mag. Acc.+13','"Mag.Atk.Bns."+13','"Fast Cast"+2',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}},
neck="Wiglen Gorget",
waist="Tempus Fugit",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Roller's Ring",
back="Iximulew Cape",}
sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
sets.precast.RA = {ammo=gear.RAbullet,
head="Aurore beret +1",neck="Ej necklace +1",ear1="Vision Earring",ear2="Volley Earring",
body="Pursuer's doublet",hands="Chasseur's gants +1",ring1="Hajduk Ring",ring2="Hajduk Ring",
waist="Yemaya belt",legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},hands="Chasseur's gants +1",
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
neck="Moepapa medal",waist="Yemaya belt",left_ear=" Earring",right_ear="Ishvara Earring",left_ring="Garuda Ring",right_ring="Garuda Ring",
back="Ik Cape",}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Evisceration'] = sets.precast.WS
sets.precast.WS['Exenterator'] = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Pursuer's Cuffs", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Caudata belt",
left_ear="Breeze pearl",
right_ear="Ishvara Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Requiescat'] = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Tjukurrpa Medal",
waist="Caudata Belt",
left_ear="Tati Earring",
right_ear="Vulcan's pearl",
left_ring="Petrov Ring",
right_ring="Ifrit Ring +1",
back="Buquwik Cape"}
sets.precast.WS['Last Stand'] = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Yemaya belt",
left_ear="Infused Earring",
right_ear="Enervating Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Last Stand'].Acc = {ammo=gear.WSbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Moepapa medal",
waist="Yemaya belt",
left_ear="Infused Earring",
right_ear="Enervating Earring",
left_ring="Garuda Ring",
right_ring="Garuda Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'] = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'].Acc = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Wildfire'].Brew = {ammo=gear.MAbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Aeolian Edge'] = {ammo=gear.QDbullet,
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back="Aput mantle"}
sets.precast.WS['Leaden Salute'] = {ammo=gear.MAbullet,
head="Pixie hairpin +1",
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Shadow Gorget",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Archon ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Leaden Salute'].Acc = {ammo=gear.MAbullet,
head="Pixie hairpin +1",
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Shadow Gorget",
waist="Anrin Obi",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Archon ring",
right_ring="Arvina ringlet +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.precast.WS['Savage Blade'] = {
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body="Foppish Tunica",
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Tjukurrpa Medal",
waist="Caudata Belt",
left_ear="Tati Earring",
right_ear="Vulcan's pearl",
left_ring="Petrov Ring",
right_ring="Ifrit Ring +1",
back="Buquwik Cape",}
-- Midcast Sets
sets.midcast.FastRecast = {
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="Foppish Tunica",
hands={ name="Leyline Gloves", augments={'Accuracy+14','Mag. Acc.+13','"Mag.Atk.Bns."+13','"Fast Cast"+2',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}},
neck="Wiglen Gorget",
waist="Tempus Fugit",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Roller's Ring",
back="Iximulew Cape",}
-- Specific spells
sets.midcast.Utsusemi = sets.midcast.FastRecast
sets.midcast.CorsairShot = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Sortiarius Earring",
left_ring="Acumen ring",
right_ring="Arvina ringlet +1",
back="Aput Mantle",}
sets.midcast.CorsairShot.Acc = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +3%','INT+1','Mag. Acc.+14',}},
neck="Stoicheion medal",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
left_ring="Fenrir Ring +1",
right_ring="Arvina ringlet +1",
back="Aput Mantle",}
sets.midcast.CorsairShot['Light Shot'] = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet="Chasseur's bottes",
neck="Waylayer's scarf +1",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
ring1="Arvina Ring +1",
ring2="Perception Ring",
back="Aput Mantle",}
sets.midcast.CorsairShot['Dark Shot'] = {ammo="Animikii Bullet",
head={ name="Herculean Helm", augments={'Mag. Acc.+12 "Mag.Atk.Bns."+12','Weapon skill damage +5%','STR+6','Mag. Acc.+11','"Mag.Atk.Bns."+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Weapon skill damage +5%','STR+3','Mag. Acc.+7','"Mag.Atk.Bns."+15',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet="Chasseur's bottes",
neck="Waylayer's scarf +1",
waist="Salire Belt",
left_ear="Friomisi Earring",
right_ear="Enervating Earring",
ring1="Archon Ring",
ring2="Perception Ring",
back="Aput Mantle",}
-- Ranged gear
sets.midcast.RA = {ammo=gear.RAbullet,
head="Chasseur's tricorne +1",neck="Ej necklace +1",ear1="Volley Earring",ear2="Enervating Earring",
body="Pursuer's doublet",hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
left_ring="Petrov Ring",right_ring="Rajas Ring",waist="Yemaya belt",feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
legs="Chasseur's Culottes +1",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
,}
sets.midcast.RA.Acc = {ammo=gear.RAbullet,
head="Chass. Tricorne +1",
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands="Chasseur's Gants +1",
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Ej necklace +1",
waist="Yemaya Belt",
left_ear="Volley Earring",
right_ear="Enervating Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},
}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {neck="Wiglen Gorget",ring1="Paguroidea Ring",ring2="Sheltered Ring"}
-- Idle sets
sets.idle = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Roller's Ring",
back="Iximulew cape"
}
sets.idle.Town = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Iximulew cape"
}
-- Defense sets
sets.defense.PDT = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
neck="Wiglen Gorget",
waist="Flume belt +1",
left_ear="Infused Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Iximulew cape"
}
sets.defense.MDT = {ammo=gear.RAbullet,
head="Rawhide Mask",
body={ name="Lanun Frac +1", augments={'Enhances "Loaded Deck" effect',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','INT+4','Mag. Acc.+2','"Mag.Atk.Bns."+9',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Veisa collar",
waist="Flume belt +1",
left_ear="Coral Earring",
right_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Sheltered Ring",
back="Engulfer cape +1"
}
sets.Kiting = {legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged.Melee = {ammo=gear.RAbullet,
head={ name="Herculean Helm", augments={'Attack+22','"Dual Wield"+6','INT+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Taeon Boots", augments={'Accuracy+24','"Dual Wield"+4','Weapon skill damage +3%',}},
neck="Clotharius Torque",
waist="Windbuffet Belt +1",
left_ear="Suppanomimi",
right_ear="Eabani Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back="Bleating mantle"}
sets.engaged.Acc = {ammo=gear.RAbullet,
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Ej necklace +1",
waist="Kentarch belt +1",
left_ear="Dudgeon Earring",
right_ear="Heartseeker Earring",
left_ring="Yacuruna Ring +1",
right_ring="Etana Ring",
back="Meanagh cape +1"}
sets.engaged.Melee.DW = {ammo=gear.RAbullet,
head={ name="Herculean Helm", augments={'Attack+22','"Dual Wield"+6','INT+7',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Taeon Tights", augments={'Accuracy+23','"Triple Atk."+2','Weapon skill damage +3%',}},
feet={ name="Taeon Boots", augments={'Accuracy+24','"Dual Wield"+4','Weapon skill damage +3%',}},
neck="Clotharius Torque",
waist="Windbuffet Belt +1",
left_ear="Suppanomimi",
right_ear="Eabani Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back="Bleating mantle"}
sets.engaged.Acc.DW = {ammo=gear.RAbullet,
head={ name="Taeon Chapeau", augments={'Accuracy+24','"Triple Atk."+2','Crit. hit damage +1%',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+13','"Mag.Atk.Bns."+14','"Fast Cast"+3','"Dual Wield"+4',}},
hands={ name="Herculean Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+1','AGI+8','Accuracy+12',}},
legs={ name="Taeon Tights", augments={'Accuracy+23','"Triple Atk."+2','Weapon skill damage +3%',}},
feet={ name="Herculean Boots", augments={'Accuracy+25 Attack+25','Magic dmg. taken -4%',}},
neck="Ej necklace +1",
waist="Kentarch belt +1",
left_ear="Dudgeon Earring",
right_ear="Heartseeker Earring",
left_ring="Yacuruna Ring +1",
right_ring="Etana Ring",
back="Meanagh cape +1"}
sets.engaged.Ranged = {ammo=gear.RAbullet,
head="Chass. Tricorne +1",
body={ name="Pursuer's Doublet", augments={'DEX+7','AGI+10','"Recycle"+15',}},
hands={ name="Floral Gauntlets", augments={'Rng.Acc.+9','Accuracy+2','Magic dmg. taken -1%',}},
legs={ name="Pursuer's Pants", augments={'AGI+10','"Rapid Shot"+10','"Subtle Blow"+7',}},
feet={ name="Pursuer's Gaiters", augments={'DEX+7','AGI+10','"Recycle"+15',}},
neck="Ej necklace +1",
waist="Yemaya Belt",
left_ear="Volley Earring",
right_ear="Enervating Earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}},
}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
-- Check that proper ammo is available if we're using ranged attacks or similar.
if spell.action_type == 'Ranged Attack' or spell.type == 'WeaponSkill' or spell.type == 'CorsairShot' then
do_bullet_checks(spell, spellMap, eventArgs)
end
-- gear sets
if (spell.type == 'CorsairRoll' or spell.english == "Double-Up") and state.LuzafRing.value then
equip(sets.precast.LuzafRing)
elseif spell.type == 'CorsairShot' and state.CastingMode.value == 'Resistant' then
classes.CustomClass = 'Acc'
elseif spell.english == 'Fold' and buffactive['Bust'] == 2 then
if sets.precast.FoldDoubleBust then
equip(sets.precast.FoldDoubleBust)
eventArgs.handled = true
end
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
if spell.type == 'CorsairRoll' and not spell.interrupted then
display_roll_info(spell)
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Return a customized weaponskill mode to use for weaponskill sets.
-- Don't return anything if you're not overriding the default value.
function get_custom_wsmode(spell, spellMap, default_wsmode)
if buffactive['Transcendancy'] then
return 'Brew'
end
end
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
if newStatus == 'Engaged' and player.equipment.main == 'Chatoyant Staff' then
state.OffenseMode:set('Ranged')
end
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
local msg = ''
msg = msg .. 'Off.: '..state.OffenseMode.current
msg = msg .. ', Rng.: '..state.RangedMode.current
msg = msg .. ', WS.: '..state.WeaponskillMode.current
msg = msg .. ', QD.: '..state.CastingMode.current
if state.DefenseMode.value ~= 'None' then
local defMode = state[state.DefenseMode.value ..'DefenseMode'].current
msg = msg .. ', Defense: '..state.DefenseMode.value..' '..defMode
end
if state.Kiting.value then
msg = msg .. ', Kiting'
end
if state.PCTargetMode.value ~= 'default' then
msg = msg .. ', Target PC: '..state.PCTargetMode.value
end
if state.SelectNPCTargets.value then
msg = msg .. ', Target NPCs'
end
msg = msg .. ', Roll Size: ' .. ((state.LuzafRing.value and 'Large') or 'Small')
add_to_chat(122, msg)
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
function define_roll_values()
rolls = {
["Corsair's Roll"] = {lucky=5, unlucky=9, bonus="Experience Points"},
["Ninja Roll"] = {lucky=4, unlucky=8, bonus="Evasion"},
["Hunter's Roll"] = {lucky=4, unlucky=8, bonus="Accuracy"},
["Chaos Roll"] = {lucky=4, unlucky=8, bonus="Attack"},
["Magus's Roll"] = {lucky=2, unlucky=6, bonus="Magic Defense"},
["Healer's Roll"] = {lucky=3, unlucky=7, bonus="Cure Potency Received"},
["Puppet Roll"] = {lucky=4, unlucky=8, bonus="Pet Magic Accuracy/Attack"},
["Choral Roll"] = {lucky=2, unlucky=6, bonus="Spell Interruption Rate"},
["Monk's Roll"] = {lucky=3, unlucky=7, bonus="Subtle Blow"},
["Beast Roll"] = {lucky=4, unlucky=8, bonus="Pet Attack"},
["Samurai Roll"] = {lucky=2, unlucky=6, bonus="Store TP"},
["Evoker's Roll"] = {lucky=5, unlucky=9, bonus="Refresh"},
["Rogue's Roll"] = {lucky=5, unlucky=9, bonus="Critical Hit Rate"},
["Warlock's Roll"] = {lucky=4, unlucky=8, bonus="Magic Accuracy"},
["Fighter's Roll"] = {lucky=5, unlucky=9, bonus="Double Attack Rate"},
["Drachen Roll"] = {lucky=3, unlucky=7, bonus="Pet Accuracy"},
["Gallant's Roll"] = {lucky=3, unlucky=7, bonus="Defense"},
["Wizard's Roll"] = {lucky=5, unlucky=9, bonus="Magic Attack"},
["Dancer's Roll"] = {lucky=3, unlucky=7, bonus="Regen"},
["Scholar's Roll"] = {lucky=2, unlucky=6, bonus="Conserve MP"},
["Bolter's Roll"] = {lucky=3, unlucky=9, bonus="Movement Speed"},
["Caster's Roll"] = {lucky=2, unlucky=7, bonus="Fast Cast"},
["Courser's Roll"] = {lucky=3, unlucky=9, bonus="Snapshot"},
["Blitzer's Roll"] = {lucky=4, unlucky=9, bonus="Attack Delay"},
["Tactician's Roll"] = {lucky=5, unlucky=8, bonus="Regain"},
["Allies's Roll"] = {lucky=3, unlucky=10, bonus="Skillchain Damage"},
["Miser's Roll"] = {lucky=5, unlucky=7, bonus="Save TP"},
["Companion's Roll"] = {lucky=2, unlucky=10, bonus="Pet Regain and Regen"},
["Avenger's Roll"] = {lucky=4, unlucky=8, bonus="Counter Rate"},
}
end
function display_roll_info(spell)
rollinfo = rolls[spell.english]
local rollsize = (state.LuzafRing.value and 'Large') or 'Small'
if rollinfo then
add_to_chat(104, spell.english..' provides a bonus to '..rollinfo.bonus..'. Roll size: '..rollsize)
add_to_chat(104, 'Lucky roll is '..tostring(rollinfo.lucky)..', Unlucky roll is '..tostring(rollinfo.unlucky)..'.')
end
end
-- Determine whether we have sufficient ammo for the action being attempted.
function do_bullet_checks(spell, spellMap, eventArgs)
local bullet_name
local bullet_min_count = 1
if spell.type == 'WeaponSkill' then
if spell.skill == "Marksmanship" then
if spell.element == 'None' then
-- physical weaponskills
bullet_name = gear.WSbullet
else
-- magical weaponskills
bullet_name = gear.MAbullet
end
else
-- Ignore non-ranged weaponskills
return
end
elseif spell.type == 'CorsairShot' then
bullet_name = gear.QDbullet
elseif spell.action_type == 'Ranged Attack' then
bullet_name = gear.RAbullet
if buffactive['Triple Shot'] then
bullet_min_count = 3
end
end
local available_bullets = player.inventory[bullet_name] or player.wardrobe[bullet_name]
-- If no ammo is available, give appropriate warning and end.
if not available_bullets then
if spell.type == 'CorsairShot' and player.equipment.ammo ~= 'empty' then
add_to_chat(104, 'No Quick Draw ammo left. Using what\'s currently equipped ('..player.equipment.ammo..').')
return
elseif spell.type == 'WeaponSkill' and player.equipment.ammo == gear.RAbullet then
add_to_chat(104, 'No weaponskill ammo left. Using what\'s currently equipped (standard ranged bullets: '..player.equipment.ammo..').')
return
else
add_to_chat(104, 'No ammo ('..tostring(bullet_name)..') available for that action.')
eventArgs.cancel = true
return
end
end
-- Don't allow shooting or weaponskilling with ammo reserved for quick draw.
if spell.type ~= 'CorsairShot' and bullet_name == gear.QDbullet and available_bullets.count <= bullet_min_count then
add_to_chat(104, 'No ammo will be left for Quick Draw. Cancelling.')
eventArgs.cancel = true
return
end
-- Low ammo warning.
if spell.type ~= 'CorsairShot' and state.warned.value == false
and available_bullets.count > 1 and available_bullets.count <= options.ammo_warning_limit then
local msg = '***** LOW AMMO WARNING: '..bullet_name..' *****'
--local border = string.repeat("*", #msg)
local border = ""
for i = 1, #msg do
border = border .. "*"
end
add_to_chat(104, border)
add_to_chat(104, msg)
add_to_chat(104, border)
state.warned:set()
elseif available_bullets.count > options.ammo_warning_limit and state.warned then
state.warned:reset()
end
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 3)
end
Do you have the one obi that works for all days or is it one for each day/weather? The link below should help you out. The ring should work for each day, just add it to the equip for each day/weather.
http://www.ffxiah.com/forum/topic/47504/gearswap-question-about-weather-tp/
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-05-23 13:23:29
Bismarck.Speedyjim said: »Code function job_buff_change(buff, gain, buff_table)
buff = string.lower(buff)
if buff_table['id'] == 15 then -- Doom Party Chat --
if gain then
send_command('input /party Doom')
else
send_command('input /party Doom off')
add_to_chat(158,'Doom: [OFF]')
end
elseif buff_table['id'] == 9 then -- Curse Party Chat --
if gain then
send_command('input /party Curse')
else
add_to_chat(158,'Curse: [OFF]')
end
elseif buff_table['id'] == 14 or buff_table['id'] == 17 then -- Charm Party Chat --
if gain then
send_command('input /party Charmed')
else
send_command('input /party Charm off')
add_to_chat(158,'Charm: [OFF]')
end
elseif buff_table['id'] == 4 then -- Paralysis Party Chat --
if gain then
add_to_chat(123,'Paralyzed!')
else
add_to_chat(158,'Paralysis: [OFF]')
end
elseif buff_table['id'] == 91 then -- Nat. Meditation --
if not gain then
add_to_chat(123,'Nat. Meditation: [OFF]')
end
elseif buff_table['id'] == 93 then -- Cocoon Notification --
if not gain then
add_to_chat(123,'Cocoon: [OFF]')
end
elseif buff_table['id'] == 33 then -- Haste --
if not gain then
add_to_chat(123,'Haste: [OFF]')
end
elseif buff_table['id'] == 147 then -- Attack Down --
if not gain then
add_to_chat(158,'Attack Down: [OFF]')
end
elseif buff_table['id'] == 149 then -- Defense Down --
if not gain then
add_to_chat(158,'Defense Down: [OFF]')
end
elseif buff_table['id'] == 13 then -- Slow --
if gain then
add_to_chat(123,'Slowed!')
else
add_to_chat(158,'Slow: [OFF]')
end
elseif buff_table['id'] == 42 then -- Regen --
if not gain then
add_to_chat(123,'Regen: [OFF]')
end
elseif buff_table['id'] == 43 then -- Refresh --
if not gain then
add_to_chat(123,'Refresh: [OFF]')
end
elseif buff_table['id'] == 152 then -- Magic Barrier --
if not gain then
add_to_chat(123,'Magic Barrier: [OFF]')
end
elseif buff_table['id'] == 116 then -- Phalanx/Barrier Tusk --
if not gain then
add_to_chat(123,'Phalanx: [OFF]')
end
elseif buff_table['id'] == 36 then -- Blink/Occultation --
if not gain then
add_to_chat(123,'Blink: [OFF]')
end
elseif buff_table['id'] == 604 then -- Mighty Guard --
if not gain then
add_to_chat(123,'Mighty Guard: [OFF]')
end
elseif buff_table['id'] == 251 then -- Food --
if not gain then
add_to_chat(123,'Food: [OFF]')
end
elseif buff_table['id'] == 28 then -- Terror --
if not gain then
add_to_chat(158,'Terror: [OFF]')
end
elseif buff_table['id'] == 10 then -- Stun --
if not gain then
add_to_chat(158,'Stun: [OFF]')
end
elseif buff_table['id'] == 16 then -- Amnesia --
if not gain then
add_to_chat(158,'Amnesia: [OFF]')
end
elseif buff_table['id'] == 2 or buff_table['id'] == 19 then -- Sleep --
if gain then
send_command('input /party ZZZ')
else
add_to_chat(158,'Sleep: [OFF]')
end
end
end Found this in another LUA, doesn't seem to work with Mote's. Any ideas how to get this working? Thanks!
You would have to go into the Mote-Include.lua file, and change the buff_change function (line 1023 in the version I'm looking at) so that it passes the table to your function. Code function buff_change(buff, gain, buffTable)
-- Init a new eventArgs
local eventArgs = {handled = false}
if state.Buff[buff] ~= nil then
state.Buff[buff] = gain
end
-- Allow a global function to be called on buff change.
if user_buff_change then
user_buff_change(buff, gain, buffTable, eventArgs)
end
-- Allow jobs to handle buff change events.
if not eventArgs.handled then
if job_buff_change then
job_buff_change(buff, gain, buffTable, eventArgs)
end
end
end
By Gruknor 2016-05-23 21:49:37
Quetzalcoatl.Mystery said: »GearCollector
It should, it worked with spellcast. You should look into organizer . That is what I use and it works wonders. Just becareful about putting stuff in mogwardrobe2. Some people are having issues with it not using anything that is in there.
Bismarck.Speedyjim
サーバ: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-05-23 22:35:10
Ragnarok.Flippant said: »You would have to go into the Mote-Include.lua file, and change the buff_change function (line 1023 in the version I'm looking at) so that it passes the table to your function. Code function buff_change(buff, gain, buffTable)
-- Init a new eventArgs
local eventArgs = {handled = false}
if state.Buff[buff] ~= nil then
state.Buff[buff] = gain
end
-- Allow a global function to be called on buff change.
if user_buff_change then
user_buff_change(buff, gain, buffTable, eventArgs)
end
-- Allow jobs to handle buff change events.
if not eventArgs.handled then
if job_buff_change then
job_buff_change(buff, gain, buffTable, eventArgs)
end
end
end Thanks, that worked. Add_to_chat is a bit late to actually add to the chat, sometimes appearing 20secs after the buff wore.
Just looking for someone to explain this addon a bit for me. It looks like it is an alternative to Spellcast.
Is it going to be replacing Spellcast? In which ways is it better or worse. I don't know any programming but I've slowly learned more and more about spellcast and the 'language' used in gearswap is confusing to me.
It says it uses packets so it potentially could be more detectable? but does that also eliminate any lag that spellcast may encounter?
I plan on redoing my PUP xml to include pet casting sets thanks to the new addon petschool. I'm just not sure if it's worth it to just wait until gearswap gets more popular or to go ahead and do it in spellcast.
If anyone could give me more info I'd greatly appreciate it.
|
|