I have this code
Is there a way to make it fetch both ammo from wardrobe too?Code:function ammo_recharge() if player.equipment.ammo == 'empty' then if player.inventory[gear.ammo] then add_to_chat("Replenishing "..gear.ammo.."s.") equip({ammo=gear.ammo}) else add_to_chat("No more "..gear.ammo.."s.") end else gear.ammo = player.equipment.ammo end end
something like this
Code:function ammo_recharge() if player.equipment.ammo == 'empty' then for i=1,12,1 do local bag = gearswap.res.bags[i] local item = player[bag][gear.ammo] if item then if bag then if S{"Safe","Storage","Locker","Safe 2"}:contains(bag) then --if item is found in bags only acsseable from your mog house elseif S{"Satchel","Sack","Case"}:contains(bag) then --if iten is found in a none equipable bag ---gearswap is to fast to move and equip gear in this function so you can only move it from one bag to another else --if an item can be directly equiped it goes here add_to_chat("Replenishing "..gear.ammo.."s.") equip({ammo=gear.ammo}) return end else add_to_chat("No more "..gear.ammo.."s.") end end end else gear.ammo = player.equipment.ammo end end
try this
Code:function ammo_recharge() if player.equipment.ammo == 'empty' then if item_to_bag(gear.ammo) then add_to_chat("Replenishing "..gear.ammo.."s.") equip({ammo=gear.ammo}) else add_to_chat("No more "..gear.ammo.."s.") end else gear.ammo = player.equipment.ammo end end --checks equipable bags for given gear then returns the bag name function item_to_bag(name) for _,bag in ipairs({"inventory","wardrobe","wardrobe2","wardrobe3","wardrobe4"}) do local item = player[bag][name] if item then return bag end end end
Having something very odd occurring with my Ranger Lua- I haven't made any alterations to it, but since the update my weaponskill sets no longer equip. Preshot, Midshot, /ja related sets all equip fine, and the file itself loads without error...I just don't get any gearsets equipping during weaponskills. I don't know if an update happened and my current language no longer works, or what the issue is, but I do know that for over 8 months the format of this lua functioned fine. Here is link to entire lua, weaponskill sets begin in line 372.
https://github.com/celebrindor/GearS...ed%20RNG%20lua
Ignore this- at some point I deleted a line- I often keep multiple files open in notepad++ at once, and was working on my COR lua recently. I must have accidentally taken a line out of my RNG lua by accident when I meant to work on my COR one.
Got it thanks!
You get an enervating earring and use it during daylight and nighttime.
sorry i had things to do yesterday
use this and let me know if you get a "---Ammo Check---" or "---Ammo empty---" chat line after using up your current stock of equiped ammo
Code:function ammo_recharge() add_to_chat("---Ammo Check---") if player.equipment.ammo == 'empty' then add_to_chat("---Ammo empty---") if item_to_bag(gear.ammo) then add_to_chat("Replenishing "..gear.ammo.."s.") equip({ammo=gear.ammo}) else add_to_chat("No more "..gear.ammo.."s.") end else gear.ammo = player.equipment.ammo end end --checks equipable bags for given gear then returns the bag name function item_to_bag(name) for _,bag in ipairs({"inventory","wardrobe","wardrobe2","wardrobe3","wardrobe4"}) do local item = player[bag][name] if item then return bag end end end
Hi - New to the gearswap approach - Below I've pasted my SCH lua which works (loads and no errors) However -- My Academic Gown +1 and Academic Pants +1 dont appear to equipping when I activate the job ability. Am I missing coded rules within the LUA to make the gear equip? I should note that I know nothing about coding and this LUA was cobbled together and the product of online research -- just looking at other SCH lua's from pastebin and MOTES' original file. Thanks in advance to anyone that can help me figure what is missing -
-------------------------------------------------------------------------------------------------------------------
-- 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()
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
update_active_strategems()
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.OffenseModeptions('None', 'Normal')
state.CastingModeptions('Normal', 'Resistant')
state.IdleModeptions('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>')
select_default_macro_book()
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"}
sets.precast.JA['Dark Arts'] = {"Academic's Gown +1"}
sets.precast.JA['Light Arts'] = {"Academic's Pants +1"}
organizer_items = {agown="Academic's Gown +1"}
-- Fast cast sets for spells
sets.precast.FC = {ammo="Impatiens",
head="Nahtirah Hat",neck="Voltsurge Torque",ear1="Loquacious Earring",ear2="Enchanter Earring +1",
body="Shango Robe",hands="Gendewitha Gages +1",ring1="Prolix Ring",ring2="Kishar Ring",
back="Perimede Cape",waist="Witful Belt",legs="Psycloth Lappas",feet="Merlinic Crackows"}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Olympus Sash"})
sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal",legs="Amalric Slops",feet="Tutyr Sabots"})
sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Vanya Robe",hands="Vanya Cuffs",back="Pahtli Cape",waist="Acerbic Sash +1",
legs="Doyen Pants",feet="Vanya Clogs"})
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",ear1="Loquacious Earring",ear2="Enchanter Earring +1",
body="Shango Robe",hands="Gendewitha Gages +1",ring1="Prolix Ring",ring2="Kishar Ring",
back="Perimede Cape",waist="Witful Belt",legs="Psycloth Lappas",feet="Merlinic Crackows"}
sets.midcast.Cure = {main="Gada",sub="Sors Shield",ammo="Incantor Stone",
head="Kaykaus Mitra",neck="Nodens Gorget",ear1="Lifestorm Earring",ear2="Enchanter Earring +1",
body="Kaykaus Bliaut",hands="Kaykaus Cuffs",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Perimede Cape",waist="Acerbic Sash +1",legs="Chironic Hose",feet="Kaykaus Boots"}
sets.midcast.CureWithLightWeather = {main="Chatoyant Staff",sub="Clerisy Strap",ammo="Incantor Stone",
head="Gendewitha Caubeen",neck="Nodens Gorget",ear1="Lifestorm Earring",ear2="Enchanter Earring +1",
body="Heka's Kalasiris",hands="Chironic Gloves",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Twilight Cape",waist="Acerbic Sash +1",legs="Chironic Hose",feet="Kaykaus Boots"}
sets.midcast.Curaga = sets.midcast.Cure
sets.midcast.Regen = {main="Bolelabunga",head="Savant's Bonnet +2"}
sets.midcast.Cursna = {
neck="Malison Medallion",
hands="Gendewitha Gages +1",ring1="Ephedra Ring",ring2="Ephedra Ring",
back="Oretania's Cape +1",feet="Gendewitha Galoshes +1"}
sets.midcast['Enhancing Magic'] = {ammo="Savant's Treatise",
head="Befouled Crown",neck="Nodens Gorget",ear1="Andoaa Earriing",
body="Merlinic Jubbah",hands="Chironic Gloves",ring1="Stikini Ring",ring2="Leviathan Ring +1",
waist="Olympus Sash",legs="Portent Pants",feet="Kaykaus Boots"}
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Olympus 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="Gada",sub="Sors Shield",ammo="Hydrocera",
head="Befouled Crown",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanya Robe",hands="Kaykaus Cuffs",ring1="Stikini Ring",ring2="Kishar Ring",
back="Refraction Cape",waist="Rumination Sash",legs="Psycloth Lappas",feet="Jhakri Pigaches +1"}
sets.midcast.IntEnfeebles = {main="Gada",sub="Sors Shield",ammo="Quartz Tathlum +1",
head="Befouled Crown",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanya Robe",hands="Kaykaus Cuffs",ring1="Stikini Ring",ring2="Kishar Ring",
back="Refraction Cape",waist="Rumination Sash",legs="Psycloth Lappas",feet="Jhakri Pigaches +1"}
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="Psycloth Vest",hands="Amalric Gages",ring1="Evanescence Ring",ring2="Kishar Ring",
back="Perimede Cape",waist="Witful Belt",legs="Merlinic Shalwar",feet="Merlinic Crackows"}
sets.midcast.Kaustra = {main="Akademos",sub="Niobid Strap",ammo="Ombre Tathlum +1",
head="Merlinic Hood",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Barkarole Earring",
body="Jhakri Robe +2",hands="Amalric Gages",ring1="Stikini Ring",ring2="Strendu Ring",
back="Toro Cape",waist="Aswang Sash",legs="Merlinic Shalwar",feet="Jhakri Pigaches +1"}
sets.midcast.Drain = {main="Grioavolr",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Deceiver's Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Psycloth Vest",hands="Gendewitha Gages +1",ring1="Stikini Ring",ring2="Kishar Ring",
back="Refraction Cape",waist="Witful Belt",legs="Pedagogy Pants",feet="Merlinic Crackows"}
sets.midcast.Aspir = sets.midcast.Drain
sets.midcast.Stun = {main="Nibiru Staff",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Shango Robe",hands="Gendewitha Gages +1",ring1="Prolix Ring",ring2="Kishar Ring",
back="Refraction Cape",waist="Witful Belt",legs="Pedagogy Pants",feet="Merlinic Crackows"}
sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {main="Nibiru Staff"})
-- Elemental Magic sets are default for handling low-tier nukes.
sets.midcast['Elemental Magic'] = {main="Grioavolr",sub="Zuuxowu Grip",ammo="Dosis Tathlum",
head="Merlinic Hood",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Barkarole Earring",
body="Jhakri Robe +2",hands="Amalric Gages",ring1="Fenrir Ring +1",ring2="Jhakri Ring",
back="Toro Cape",waist=gear.ElementalObi,legs="Merlinic Shalwar",feet="Jhakri Pigaches +1"}
sets.midcast['Elemental Magic'].Resistant = {main="Grioavolr",sub="Mephitis Grip",ammo="Pemphredo Tathlum",
head="Merlinic Hood",neck="Eddy Necklace",ear1="Hermetic Earring",ear2="Barkarole Earring",
body="Jhakri Robe +2",hands=gear.macc_hagondes,ring1="Fenrir Ring +1",ring2="Jhakri Ring",
back="Toro Cape",waist=gear.ElementalObi,legs="Merlinic Shalwar",feet="Jhakri Pigaches +1"}
-- 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="Kishar Ring",ring2="Stikini Ring",
back="Toro Cape",waist="Aswang Sash",legs="Merlinic Shalwar",feet="Merlinic Crackows"}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main="Boonwell Staff",sub="Mephitis Grip",ammo="Mana Ampulla",
head="Befouled Crown",neck="Eidolon Pendant +1",
body="Jhakri Robe +2",hands="Chironic Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
waist="Hierarch Belt",legs="Merlinic Shalwar",feet="Herald's Gaiters"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle.Town = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
head="Befouled Crown",neck="Wiglen Gorget",ear1="Barkarole Earring",ear2="Enchanter Earring +1",
body="Jhakri Robe +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="Genmei Shield",ammo="Staunch Tathlum",
head="Befouled Crown",neck="Wiglen Gorget",ear1="Barkarole Earring",ear2="Enchanter Earring +1",
body="Jhakri Robe +2",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="Clerisy Strap",ammo="Incantor Stone",
head="Befouled Crown",neck="Wiglen Gorget",ear1="Barkarole Earring",ear2="Enchanter Earring +1",
body="Jhakri Robe +2",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="Nibiru Staff",sub="Mephitis Grip",ammo="Incantor Stone",
head="Vanya Hood",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Shango Robe",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Kishar Ring",
back="Perimede Cape",waist="Witful Belt",legs="Psycloth Lappas",feet="Merlinic Crackows"}
sets.idle.Weak = {main="Bolelabunga",sub="Genmei Shield",ammo="Incantor Stone",
head="Befouled Crown",neck="Wiglen Gorget",ear1="Barkarole Earring",ear2="Enchanter Earring +1",
body="Jhakri Robe +2",hands="Yaoyotl Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Nares Trews",feet="Herald's Gaiters"}
-- Defense sets
sets.defense.PDT = {main=gear.Staff.PDT,sub="Clerisy Strap",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Enchanter Earring +1",
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="Clerisy Strap",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Enchanter Earring +1",
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="Jhakri Coronal",ear1="Steelflash Earring",ear2="Bladeborn Earring",
body="Jhakri Robe +2",hands="Jhakri Cuffs",ring1="Hetairoi Ring",ring2="Jhakri Ring",
waist="Eschan Stone",legs="Jhakri Slops",feet="Jhakri Pigaches +1"}
-- 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="Arbatel Bracers +1"}
sets.buff['Immanence'] = {hands="Arbatel Bracers +1"}
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['Stormsurge'] = {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.Doom = {ring1="Eshmun's Ring", ring2="Eshmun's Ring", waist="Gishdubar Sash"}
sets.LightArts = {legs="Acad. Pants +1"}
sets.DarkArts = {body="Acad. Gown +1"}
--sets.buff['Sandstorm'] = {feet="Herald's Gaiters"}
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
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, eventArgs)
if cmdParams[1]:lower() == 'scholar' then
handle_strategems(cmdParams)
eventArgs.handled = true
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)
-- cmdParams[1] == 'scholar'
-- cmdParams[2] == strategem to use
if not cmdParams[2] then
add_to_chat(123,'Error: No strategem command given.')
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, 18)
end
on thing you need to do instead of posting your lua like this is to post it to something like https://pastebin.com
now to your issue
you need to use the short name
so for "Academic's Gown +1" you need to use "Acad. Gown +1"
and for "Academic's Pants +1" you need to use "Acad. Pants +1"
there are three ways to get the correct names
gearswap command
//gs export
-this exports your currently equiped gear to a file
look up the correct short name in windower/res/items.lua
-for English it would be the en= one for Japanese use the ja= one
when you look at your inventory list of items you will see the short name
-if you select your item and open another window you will see the long name
Thank you - I will try this to see if it works!
Thanks for replying - per your suggestion - I should add those gears into the midcast equipment?
The lua I copied from hadnt done that - instead the person has them written out and placed as I have them in mine -
Another query: is it even worth it to add this gear to the midcast equipment since there are other pieces that may have better benefits/augments?