Odin.Quixacotl said: »
However Motensen has been MIA for a year now and there's no telling if or when he will ever update his files again.
Maybe he just hasn't updated the Kinematics repository on GitHub?
Gearswap Support Thread |
||
Gearswap Support Thread
Odin.Quixacotl said: » However Motensen has been MIA for a year now and there's no telling if or when he will ever update his files again. Maybe he just hasn't updated the Kinematics repository on GitHub? Odin.Quixacotl said: » Kinematics is a separate component from Gearswap. Think of it as an addon to an addon. Gearswap will update itself but it won't do anything to Kinematic's Libs. You have to manually update Kinematics. However Motensen has been MIA for a year now and there's no telling if or when he will ever update his files again. My guess is he got a cushy job over at Google with Aurieus. Not the case. Kinematics luas have been included with gearswap for quite a while now, so nobody has to download them. (they're in the libs folder) With that said, downloading them is only bad practice if he were actually updating the files, since your copies that reside in data would override his and you wouldn't get bug fixes/changes. His last change was 6 months ago though, so it likely doesn't matter. Would this be the correct way to address multiple augmented gear? This is from my blm set.
for Drain/Aspir: Code -- feet={name="Helios Boots", augments={'"Drain" and "Aspir" potency +10',}} sets.midcast.Drain = {main="Baqil Staff",sub="Mephitis Grip",ammo="Kalboron Stone", head="Helios Band",neck="Dark Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring", body="Helios Jacket",hands="Helios Gloves",ring1="Sangoma Ring",ring2=gear.DarkRing.physical, back="Bane Cape",waist="Fucho-no-obi",legs="Artsieq Hose",feet="Helios Boots"} for Nuking, since they share the same type of gear but different augments: Code -- Elemental Magic sets -- feet={ name="Helios Boots", augments={'"Mag.Atk.Bns."+25','"Occult Acumen"+10','Mag. crit. hit dmg. +5%',}} sets.midcast['Elemental Magic'] = {main="Keraunos",sub="Wizzan Grip",ammo="Witchstone", head="Helios Band",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Friomisi Earring", body="Hagondes Coat +1",hands="Helios Gloves",ring1="Shiva Ring",ring2="Shiva Ring", back="Toro Cape",waist="Oneiros Sash",legs="Telchine Braconi",feet="Helios Boots"} Edit: Did some testing and apparently it's not switching out my feet. It keeps putting on the Drain/Aspir Augmented ones. Code function user_setup() -- Augmented Gear -- gear.DrainFeet = {name="Helios Boots", augments={'"Drain" and "Aspir" potency +10'}} gear.NukeFeet = {name="Helios Boots", augments={'"Mag.Atk.Bns."+25','"Occult Acumen"+10','Mag. crit. hit dmg. +5%'}} end sets.midcast.Drain = {main="Baqil Staff", sub="Mephitis Grip", ammo="Kalboron Stone", head="Helios Band", neck="Dark Torque", ear1="Psystorm Earring", ear2="Lifestorm Earring", body="Helios Jacket", hands="Helios Gloves", ring1="Sangoma Ring", ring2=gear.DarkRing.physical, back="Bane Cape", waist="Fucho-no-obi", legs="Artsieq Hose", feet=gear.DrainFeet} sets.midcast.Aspir = sets.midcast.Drain sets.midcast['Elemental Magic'] = {main="Keraunos", sub="Wizzan Grip", ammo="Witchstone", head="Helios Band", neck="Eddy Necklace", ear1="Hecate's Earring", ear2="Friomisi Earring", body="Hagondes Coat +1", hands="Helios Gloves", ring1="Shiva Ring", ring2="Shiva Ring", back="Toro Cape", waist="Oneiros Sash", legs="Telchine Braconi", feet=gear.NukeFeet} Offline
Hi, I'm basing this off of Bokura's GEO.lua, and I was wondering how to implement code that differentiates between low tier nukes (T1-2) and higher tier (T3+) so I can use different sets for this.
Also, how do I get it to differntiate between Geo- and Indicolure spells on midcast? I want to get those "indi-spell duration+" pieces in for those spells. I was also having issues with staff/grip in midcast set; it won't equip them if I was wearing club/Shield. (staff/grip are removed in the version under). Any comments about improvements (not related to gear) are also welcome. I didn't see any staff or grip in your lua so I can't help with that.
As for the low-tier nukes and Indi spells I'm sure you can work this into your lua somehow. Offline
Thanks, I will try. I'm not so good with this :-)
I haven't tested it but this should work for you. Just add your own gear in LowTierNuke and Geomancy midcast sets. http://pastebin.com/Ps14tRp9
I set up a PLD lua file based on Motenn's PLD file and I would like to get dual wielding properly set up, however I can't work out how it works, I can't see a toggle for DW at all but it was already there in the original PLD file before I edited it.
I just thought I'd try it and see if it would equip the right gear, just because it was there but it doesn't, does anyone know how the dual wielding is supposed to work in Motenn's files or alternatively, how I can set up dual wielding? It's not a huge deal since it's just a case of using heartseeker + dudgeon earrings. Code ------------------------------------------------------------------------------------------------------------------- -- Setup functions for this job. Generally should not be modified. ------------------------------------------------------------------------------------------------------------------- -- 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.Buff.Sentinel = buffactive.sentinel or false state.Buff.Cover = buffactive.cover or false state.Buff.Doom = buffactive.Doom or false 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('Normal', 'Acc') state.HybridMode:options('Normal', 'PDT', 'Reraise') state.WeaponskillMode:options('Normal', 'Acc') state.CastingMode:options('Normal', 'Resistant') state.PhysicalDefenseMode:options('PDT', 'HP', 'Reraise', 'Charm') state.MagicalDefenseMode:options('MDT', 'HP', 'Reraise', 'Charm') state.ExtraDefenseMode = M{['description']='Extra Defense Mode', 'None', 'MP', 'Knockback', 'MP_Knockback'} state.EquipShield = M(false, 'Equip Shield w/Defense') update_defense_mode() send_command('bind ^f11 gs c cycle MagicalDefenseMode') send_command('bind !f11 gs c cycle ExtraDefenseMode') send_command('bind @f10 gs c toggle EquipShield') send_command('bind @f11 gs c toggle EquipShield') select_default_macro_book() end function user_unload() send_command('unbind ^f11') send_command('unbind !f11') send_command('unbind @f10') send_command('unbind @f11') end -- Define sets and vars used by this job file. function init_gear_sets() -------------------------------------- -- Precast sets -------------------------------------- -- Precast sets to enhance JAs sets.precast.JA['Invincible'] = {legs="Caballarius Breeches +1"} sets.precast.JA['Holy Circle'] = {feet="Reverence Leggings +1"} sets.precast.JA['Shield Bash'] = {hands="Caballarius Gauntlets +1"} sets.precast.JA['Sentinel'] = {feet="Caballarius Leggings +1"} sets.precast.JA['Rampart'] = {head="Caballarius Coronet +1"} sets.precast.JA['Fealty'] = {body="Caballarius Surcoat +1"} sets.precast.JA['Divine Emblem'] = {feet="Creed Sabatons +2"} sets.precast.JA['Cover'] = {head="Reverence Coronet +1"} -- add mnd for Chivalry sets.precast.JA['Chivalry'] = { head="Reverence Coronet +1", body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Aquasoul Ring",ring2="Aquasoul Ring", back="Weard Mantle",legs="Reverence Breeches +1",feet="Whirlpool Greaves"} -- Waltz set (chr and vit) sets.precast.Waltz = { head="Reverence Coronet +1", hands="Reverence Gauntlets +1", legs="Reverence Breeches +1",feet="Whirlpool Greaves"} -- Don't need any special gear for Healing Waltz. sets.precast.Waltz['Healing Waltz'] = {} sets.precast.Step = {waist="Chaac Belt"} sets.precast.Flourish1 = {waist="Chaac Belt"} -- Fast cast sets for spells sets.precast.FC = {ammo="Incantor Stone", head="Cizin Helm +1",ear2="Loquacious Earring",legs="Enif Cosciales"} sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"}) -- Weaponskill sets -- Default set for any weaponskill that isn't any more specifically defined sets.precast.WS = {ammo="Ginsen", head="Otomi Helm",neck=gear.ElementalGorget,ear1="Brutal Earring",ear2="Moonshade Earring", body="Xaddi Mail",hands="Cizin Mufflers +1",ring1="Rajas Ring",ring2="Karieyh Ring", back="Bleating Mantle",waist=gear.ElementalBelt,legs="Cizin Breeches +1",feet="Whirlpool Greaves"} sets.precast.WS.Acc = {ammo="Ginsen", head="Yaoyotl Helm",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Xaddi Mail",hands="Buremte Gloves",ring1="Rajas Ring",ring2="Patricius Ring", back="Bleating Mantle",waist=gear.ElementalBelt,legs="Cizin Breeches +1",feet="Whirlpool Greaves"} -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found. sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ring1="Aquasoul Ring",ring2="Aquasoul Ring"}) sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS.Acc, {ring1="Aquasoul Ring"}) sets.precast.WS['Savage Blade'] = {ammo="Cheruski Needle", head="Otomi Helm",neck="Breeze Gorget",ear1="Moonshade Earring",ear2="Brutal Earring", body="Phorcys Korazin",hands="Cab. Gauntlets +1",ring1="Ifrit Ring",ring2="Ifrit Ring", back="Bleating Mantle",waist="Windbuffet Belt +1",legs="Cab. Breeches +1",feet="Whirlpool Greaves"} sets.precast.WS['Savage Blade'].Acc = set_combine(sets.precast.WS['Savage Blade'], {head="Yaoyotl Helm",body="Xaddi Mail",hands="Buremte Gloves"}) sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {ammo="Jukikuk Feather", neck="Breeze Gorget",legs="Mikinaak Cuisses",ring1="Ramuh Ring",ring2="Ramuh Ring",waist="Chiner's Belt +1"}) sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS['Chant du Cygne'], {head="Yaoyotl Helm",body="Xaddi Mail",hand="Buremte Gloves"}) sets.precast.WS['Sanguine Blade'] = {ammo="Ginsen", head="Reverence Coronet +1",ear1="Friomisi Earring",ear2="Hecate's Earring", body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Karieyh Ring",ring2="K'ayres Ring", legs="Reverence Breeches +1",feet="Reverence Leggings +1"} sets.precast.WS['Atonement'] = { head="Reverence Coronet +1",neck=gear.ElementalGorget,ear1="Creed Earring",ear2="Steelflash Earring", body="Phorcys Korazin",hands="Reverence Gauntlets +1",ring1="Karieyh Ring", waist=gear.ElementalBelt,legs="Reverence Breeches +1",feet="Caballarius Leggings +1"} -------------------------------------- -- Midcast sets -------------------------------------- sets.midcast.FastRecast = {ammo="Incantor Stone", head="Cizin Helm +1", body="Nuevo Coselete",hands="Reverence Gauntlets +1", waist="Zoran's Belt",legs="Enif Cosciales",feet="Reverence Leggings +1"} sets.midcast.Enmity = { head="Reverence Coronet +1",neck="Invidia Torque", body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Odium Ring",ring2="Hercules' Ring", waist="Goading Belt",legs="Reverence Breeches +1",feet="Caballarius Leggings +1"} sets.midcast.Flash = set_combine(sets.midcast.Enmity, {ammo="Incantor Stone",head="Cizin Helm +1",body="Nuevo Coselete",legs="Enif Cosciales"}) sets.midcast.Stun = sets.midcast.Flash sets.midcast.Cure = { head="Adaman Barbuta",neck="Invidia Torque",ear1="Hospitaler Earring",ear2="Bloodgem Earring", body="Reverence Surcoat +1",hands="Buremte Gloves", legs="Reverence Breeches +1",feet="Caballarius Leggings +1"} sets.midcast['Enhancing Magic'] = {legs="Reverence Breeches +1"} sets.midcast.Protect = {ring1="Sheltered Ring"} sets.midcast.Shell = {ring1="Sheltered Ring"} -------------------------------------- -- Idle/resting/defense/etc sets -------------------------------------- sets.Reraise = {head="Twilight Helm", body="Twilight Mail"} sets.resting = {head="Twilight Helm",neck="Creed Collar", body="Ares' Cuirass +1"} -- Idle sets sets.idle = {ammo="Iron Gobbet", head="Reverence Coronet +1",neck="Creed Collar",ear1="Creed Earring",ear2="Bloodgem Earring", body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="K'ayres Ring",ring2="Meridian Ring", back="Weard Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Reverence Leggings +1"} sets.idle.Town = {main="Burtgang",sub="Ochain",ammo="Incantor Stone", head="Reverence Coronet +1",neck="Creed Collar",ear1="Creed Earring",ear2="Bloodgem Earring", body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="K'ayres Ring",ring2="Meridian Ring", back="Weard Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Reverence Leggings +1"} sets.idle.Weak = {ammo="Iron Gobbet", head="Reverence Coronet +1",neck="Creed Collar",ear1="Creed Earring",ear2="Bloodgem Earring", body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="K'ayres Ring",ring2="Meridian Ring", back="Weard Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Reverence Leggings +1"} sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise) sets.Kiting = {legs="Crimson Cuisses"} sets.latent_refresh = {waist="Fucho-no-obi"} -------------------------------------- -- Defense sets -------------------------------------- -- Extra defense sets. Apply these on top of melee or defense sets. sets.Knockback = {back="Repulse Mantle"} sets.MP = {neck="Creed Collar",waist="Flume Belt"} sets.MP_Knockback = {neck="Creed Collar",waist="Flume Belt",back="Repulse Mantle"} -- If EquipShield toggle is on (Win+F10 or Win+F11), equip the weapon/shield combos here -- when activating or changing defense mode: sets.PhysicalShield = {main="Burtgang",sub="Ochain"} -- Ochain sets.MagicalShield = {main="Burtgang",sub="Aegis"} -- Aegis -- Basic defense sets. sets.defense.PDT = {ammo="Brigantia Pebble", head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Ethereal Earring", body="Reverence Surcoat +1",hands="Cizin Mufflers +1",ring1="Patricius Ring",ring2=gear.DarkRing.physical, back="Repulse Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Cizin Greaves +1"} sets.defense.HP = {ammo="Brigantia Pebble", head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring", body="Reverence Surcoat +1",hands="Caballarius Gauntlets +1",ring1="Patricius Ring",ring2="Meridian Ring", back="Weard Mantle",waist="Creed Baudrier",legs="Reverence Breeches +1",feet="Reverence Leggings +1"} sets.defense.Reraise = {ammo="Brigantia Pebble", head="Twilight Helm",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring", body="Twilight Mail",hands="Cizin Mufflers +1",ring1="Patricius Ring",ring2=gear.DarkRing.physical, back="Repulse Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Cizin Greaves +1"} sets.defense.Charm = {ammo="Brigantia Pebble", head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Ethereal Earring", body="Reverence Surcoat +1",hands="Cizin Mufflers +1",ring1="Patricius Ring",ring2=gear.DarkRing.physical, back="Repulse Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Cizin Greaves +1"} -- To cap MDT with Shell IV (52/256), need 76/256 in gear. -- Shellra V can provide 75/256, which would need another 53/256 in gear. sets.defense.MDT = {ammo="Demonry Stone", head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring", body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Patricius Ring",ring2="Shadow Ring", back="Weard Mantle",waist="Creed Baudrier",legs="Caballarius Breeches +1",feet="Caballarius Leggings +1"} -------------------------------------- -- Engaged sets -------------------------------------- sets.engaged = {ammo="Ginsen", head="Otomi Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Xaddi Mail",hands="Cizin Mufflers +1",ring1="Rajas Ring",ring2="K'ayres Ring", back="Bleating Mantle",waist="Windbuffet Belt +1",legs="Cizin Breeches +1",feet="Whirlpool Greaves"} sets.engaged.Acc = {ammo="Ginsen", head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Xaddi Mail",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring", back="Weard Mantle",waist="Windbuffet Belt +1",legs="Cizin Breeches +1",feet="Whirlpool Greaves"} sets.engaged.DW = {ammo="Ginsen", head="Otomi Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring", body="Xaddi Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring", back="Bleating Mantle",waist="Windbuffet Belt +1",legs="Cizin Breeches +1",feet="Whirlpool Greaves"} sets.engaged.DW.Acc = {ammo="Ginsen", head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring", body="Xaddi Mail",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring", back="Weard Mantle",waist="Windbuffet Belt +1",legs="Cizin Breeches +1",feet="Whirlpool Greaves"} sets.engaged.PDT = set_combine(sets.engaged, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Patricius Ring"}) sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Patricius Ring"}) sets.engaged.Reraise = set_combine(sets.engaged, sets.Reraise) sets.engaged.Acc.Reraise = set_combine(sets.engaged.Acc, sets.Reraise) sets.engaged.DW.PDT = set_combine(sets.engaged.DW, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Patricius Ring"}) sets.engaged.DW.Acc.PDT = set_combine(sets.engaged.DW.Acc, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Patricius Ring"}) sets.engaged.DW.Reraise = set_combine(sets.engaged.DW, sets.Reraise) sets.engaged.DW.Acc.Reraise = set_combine(sets.engaged.DW.Acc, sets.Reraise) -------------------------------------- -- Custom buff sets -------------------------------------- sets.buff.Doom = {ring2="Ephedra Ring"} sets.buff.Cover = {head="Reverence Coronet +1", body="Caballarius Surcoat +1"} end ------------------------------------------------------------------------------------------------------------------- -- Job-specific hooks for standard casting events. ------------------------------------------------------------------------------------------------------------------- function job_midcast(spell, action, spellMap, eventArgs) -- If DefenseMode is active, apply that gear over midcast -- choices. Precast is allowed through for fast cast on -- spells, but we want to return to def gear before there's -- time for anything to hit us. -- Exclude Job Abilities from this restriction, as we probably want -- the enhanced effect of whatever item of gear applies to them, -- and only one item should be swapped out. if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then handle_equipping_gear(player.status) eventArgs.handled = true end end ------------------------------------------------------------------------------------------------------------------- -- Job-specific hooks for non-casting events. ------------------------------------------------------------------------------------------------------------------- -- Called when the player's status changes. function job_state_change(field, new_value, old_value) classes.CustomDefenseGroups:clear() classes.CustomDefenseGroups:append(state.ExtraDefenseMode.current) if state.EquipShield.value == true then classes.CustomDefenseGroups:append(state.DefenseMode.current .. 'Shield') end classes.CustomMeleeGroups:clear() classes.CustomMeleeGroups:append(state.ExtraDefenseMode.current) end ------------------------------------------------------------------------------------------------------------------- -- User code that supplements standard library decisions. ------------------------------------------------------------------------------------------------------------------- -- 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) update_defense_mode() end -- Modify the default idle set after it was constructed. function customize_idle_set(idleSet) if player.mpp < 51 then idleSet = set_combine(idleSet, sets.latent_refresh) end if state.Buff.Doom then idleSet = set_combine(idleSet, sets.buff.Doom) end return idleSet end -- Modify the default melee set after it was constructed. function customize_melee_set(meleeSet) if state.Buff.Doom then meleeSet = set_combine(meleeSet, sets.buff.Doom) end return meleeSet end function customize_defense_set(defenseSet) if state.ExtraDefenseMode.value ~= 'None' then defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value]) end if state.EquipShield.value == true then defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield']) end if state.Buff.Doom then defenseSet = set_combine(defenseSet, sets.buff.Doom) end return defenseSet end function display_current_job_state(eventArgs) local msg = 'Melee' if state.CombatForm.has_value then msg = msg .. ' (' .. state.CombatForm.value .. ')' end msg = msg .. ': ' msg = msg .. state.OffenseMode.value if state.HybridMode.value ~= 'Normal' then msg = msg .. '/' .. state.HybridMode.value end msg = msg .. ', WS: ' .. state.WeaponskillMode.value if state.DefenseMode.value ~= 'None' then msg = msg .. ', Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')' end if state.ExtraDefenseMode.value ~= 'None' then msg = msg .. ', Extra: ' .. state.ExtraDefenseMode.value end if state.EquipShield.value == true then msg = msg .. ', Force Equip Shield' end if state.Kiting.value == true then msg = msg .. ', Kiting' end if state.PCTargetMode.value ~= 'default' then msg = msg .. ', Target PC: '..state.PCTargetMode.value end if state.SelectNPCTargets.value == true then msg = msg .. ', Target NPCs' end add_to_chat(122, msg) eventArgs.handled = true end ------------------------------------------------------------------------------------------------------------------- -- Utility functions specific to this job. ------------------------------------------------------------------------------------------------------------------- function update_defense_mode() if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then classes.CustomDefenseGroups:append('Kheshig Blade') end if player.sub_job == 'NIN' or player.sub_job == 'DNC' then if player.equipment.sub and not player.equipment.sub:contains('Shield') and player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then state.CombatForm:set('DW') else state.CombatForm:reset() end end end -- Select default macro book on initial load or subjob change. function select_default_macro_book() -- Default macro set/book if player.sub_job == 'DNC' then set_macro_page(1, 1) elseif player.sub_job == 'NIN' then set_macro_page(1, 1) elseif player.sub_job == 'RDM' then set_macro_page(1, 1) else set_macro_page(1, 1) end end Cerberus.Tidis said: » I set up a PLD lua file based on Motenn's PLD file and I would like to get dual wielding properly set up, however I can't work out how it works, I can't see a toggle for DW at all but it was already there in the original PLD file before I edited it. I just thought I'd try it and see if it would equip the right gear, just because it was there but it doesn't, does anyone know how the dual wielding is supposed to work in Motenn's files or alternatively, how I can set up dual wielding? It's not a huge deal since it's just a case of using heartseeker + dudgeon earrings. With the way it's written, you need to have an offhand weapon equipped when you change jobs, or subjob to NIN or DNC. i.e. When the PLD lua is first loaded it will check, and assign DW mode. If that doesn't occur, you can press F12 anytime you want, and Mote's file will check your offhand slot again. You could probably get around pressing F12 by adding a call to update_defense_mode() in job_handle_equipping_gear() Code function job_handle_equipping_gear(status, eventArgs) update_defense_mode() end Ah ok thanks, I found it peculiar that it was all of a sudden working just now, nice to know I can manually make it re-check my equipment.
getting a syntax error when trying to load lua file.
error reads: Eithin_BLU.lua:2: syntax error near '2' Only place I can think of that the problem may be is here 1 ------------------------------------------------------------------------------------------------------------------- 2 -- Setup functions for this job. Generally should not be modified. 3 ------------------------------------------------------------------------------------------------------------------- 4 5 -- Initialization function for this job file. 6 function get_sets() 7 mote_include_version = 2 8 9 -- Load and initialize the include file. 10 include('Mote-Include.lua') 11 end 12 I can paste more if needed just didn't want to flood the whole board with the full file. Thanks in advance! Just what you posted looks fine to me. Your lua seems to not load because it cannot find the correct library files (motes includes version 2).
1. Are your main luas and the lib files in the GearSwap/data folder? 2. Are you using a sidecar? 3. Are you using Kinematics latest library files (version 2) from here? There are 7 files and you need them all to work. It might be better just to post your entire lua. When posting codes be sure to contain it within the [code ] [/code ] tags (minus the spaces) so that it shows in a sized window rather than half the forum page which would be painful to read. Better yet, use pastebin.com and post the link. 1. the lib files are in the libs folder, and the job lua is in the data folder.
2.no idea what a sidecar is. 3.yes I am, and I have loaded a Kinematics file successfully within the last couple of days. I will paste the full file. perhaps the error is somewhere else. Code 1 ------------------------------------------------------------------------------------------------------------------- 2 -- Setup functions for this job. Generally should not be modified. 3 ------------------------------------------------------------------------------------------------------------------- 4 5 -- Initialization function for this job file. 6 function get_sets() 7 mote_include_version = 2 8 9 -- Load and initialize the include file. 10 include('Mote-Include.lua') 11 end 12 13 14 -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked. 15 function job_setup() 16 state.Buff['Burst Affinity'] = buffactive['Burst Affinity'] or false 17 state.Buff['Chain Affinity'] = buffactive['Chain Affinity'] or false 18 state.Buff.Convergence = buffactive.Convergence or false 19 state.Buff.Diffusion = buffactive.Diffusion or false 20 state.Buff.Efflux = buffactive.Efflux or false 21 22 state.Buff['Unbridled Learning'] = buffactive['Unbridled Learning'] or false 23 24 25 blue_magic_maps = {} 26 27 -- Mappings for gear sets to use for various blue magic spells. 28 -- While Str isn't listed for each, it's generally assumed as being at least 29 -- moderately signficant, even for spells with other mods. 30 31 -- Physical Spells -- 32 33 -- Physical spells with no particular (or known) stat mods 34 blue_magic_maps.Physical = S{ 35 'Bilgestorm' 36 } 37 38 -- Spells with heavy accuracy penalties, that need to prioritize accuracy first. 39 blue_magic_maps.PhysicalAcc = S{ 40 'Heavy Strike', 41 } 42 43 -- Physical spells with Str stat mod 44 blue_magic_maps.PhysicalStr = S{ 45 'Battle Dance','Bloodrake','Death Scissors','Dimensional Death', 46 'Empty Thrash','Quadrastrike','Sinker Drill','Spinal Cleave', 47 'Uppercut','Vertical Cleave' 48 } 49 50 -- Physical spells with Dex stat mod 51 blue_magic_maps.PhysicalDex = S{ 52 'Amorphic Spikes','Asuran Claws','Barbed Crescent','Claw Cyclone','Disseverment', 53 'Foot Kick','Frenetic Rip','Goblin Rush','Hysteric Barrage','Paralyzing Triad', 54 'Seedspray','Sickle Slash','Smite of Rage','Terror Touch','Thrashing Assault', 55 'Vanity Dive' 56 } 57 58 -- Physical spells with Vit stat mod 59 blue_magic_maps.PhysicalVit = S{ 60 'Body Slam','Cannonball','Delta Thrust','Glutinous Dart','Grand Slam', 61 'Power Attack','Quad. Continuum','Sprout Smack','Sub-zero Smash' 62 } 63 64 -- Physical spells with Agi stat mod 65 blue_magic_maps.PhysicalAgi = S{ 66 'Benthic Typhoon','Feather Storm','Helldive','Hydro Shot','Jet Stream', 67 'Pinecone Bomb','Spiral Spin','Wild Oats' 68 } 69 70 -- Physical spells with Int stat mod 71 blue_magic_maps.PhysicalInt = S{ 72 'Mandibular Bite','Queasyshroom' 73 } 74 75 -- Physical spells with Mnd stat mod 76 blue_magic_maps.PhysicalMnd = S{ 77 'Ram Charge','Screwdriver','Tourbillion' 78 } 79 80 -- Physical spells with Chr stat mod 81 blue_magic_maps.PhysicalChr = S{ 82 'Bludgeon' 83 } 84 85 -- Physical spells with HP stat mod 86 blue_magic_maps.PhysicalHP = S{ 87 'Final Sting' 88 } 89 90 -- Magical Spells -- 91 92 -- Magical spells with the typical Int mod 93 blue_magic_maps.Magical = S{ 94 'Blastbomb','Blazing Bound','Bomb Toss','Cursed Sphere','Dark Orb','Death Ray', 95 'Diffusion Ray','Droning Whirlwind','Embalming Earth','Firespit','Foul Waters', 96 'Ice Break','Leafstorm','Maelstrom','Rail Cannon','Regurgitation','Rending Deluge', 97 'Retinal Glare','Subduction','Tem. Upheaval','Water Bomb' 98 } 99 100 -- Magical spells with a primary Mnd mod 101 blue_magic_maps.MagicalMnd = S{ 102 'Acrid Stream','Evryone. Grudge','Magic Hammer','Mind Blast' 103 } 104 105 -- Magical spells with a primary Chr mod 106 blue_magic_maps.MagicalChr = S{ 107 'Eyes On Me','Mysterious Light' 108 } 109 110 -- Magical spells with a Vit stat mod (on top of Int) 111 blue_magic_maps.MagicalVit = S{ 112 'Thermal Pulse' 113 } 114 115 -- Magical spells with a Dex stat mod (on top of Int) 116 blue_magic_maps.MagicalDex = S{ 117 'Charged Whisker','Gates of Hades' 118 } 119 120 -- Magical spells (generally debuffs) that we want to focus on magic accuracy over damage. 121 -- Add Int for damage where available, though. 122 blue_magic_maps.MagicAccuracy = S{ 123 '1000 Needles','Absolute Terror','Actinic Burst','Auroral Drape','Awful Eye', 124 'Blank Gaze','Blistering Roar','Blood Drain','Blood Saber','Chaotic Eye', 125 'Cimicine Discharge','Cold Wave','Corrosive Ooze','Demoralizing Roar','Digest', 126 'Dream Flower','Enervation','Feather Tickle','Filamented Hold','Frightful Roar', 127 'Geist Wall','Hecatomb Wave','Infrasonics','Jettatura','Light of Penance', 128 'Lowing','Mind Blast','Mortal Ray','MP Drainkiss','Osmosis','Reaving Wind', 129 'Sandspin','Sandspray','Sheep Song','Soporific','Sound Blast','Stinking Gas', 130 'Sub-zero Smash','Venom Shell','Voracious Trunk','Yawn' 131 } 132 133 -- Breath-based spells 134 blue_magic_maps.Breath = S{ 135 'Bad Breath','Flying Hip Press','Frost Breath','Heat Breath', 136 'Hecatomb Wave','Magnetite Cloud','Poison Breath','Radiant Breath','Self-Destruct', 137 'Thunder Breath','Vapor Spray','Wind Breath' 138 } 139 140 -- Stun spells 141 blue_magic_maps.Stun = S{ 142 'Blitzstrahl','Frypan','Head Butt','Sudden Lunge','Tail slap','Temporal Shift', 143 'Thunderbolt','Whirl of Rage' 144 } 145 146 -- Healing spells 147 blue_magic_maps.Healing = S{ 148 'Healing Breeze','Magic Fruit','Plenilune Embrace','Pollen','Restoral','White Wind', 149 'Wild Carrot' 150 } 151 152 -- Buffs that depend on blue magic skill 153 blue_magic_maps.SkillBasedBuff = S{ 154 'Barrier Tusk','Diamondhide','Magic Barrier','Metallic Body','Plasma Charge', 155 'Pyric Bulwark','Reactor Cool', 156 } 157 158 -- Other general buffs 159 blue_magic_maps.Buff = S{ 160 'Amplification','Animating Wail','Battery Charge','Carcharian Verve','Cocoon', 161 'Erratic Flutter','Exuviation','Fantod','Feather Barrier','Harden Shell', 162 'Memento Mori','Nat. Meditation','Occultation','Orcish Counterstance','Refueling', 163 'Regeneration','Saline Coat','Triumphant Roar','Warm-Up','Winds of Promyvion', 164 'Zephyr Mantle' 165 } 166 167 168 -- Spells that require Unbridled Learning to cast. 169 unbridled_spells = S{ 170 'Absolute Terror','Bilgestorm','Blistering Roar','Bloodrake','Carcharian Verve', 171 'Crashing Thunder','Droning Whirlwind','Gates of Hades','Harden Shell','Polar Roar', 172 'Pyric Bulwark','Thunderbolt','Tourbillion','Uproot' 173 } 174 end 175 176 ------------------------------------------------------------------------------------------------------------------- 177 -- User setup functions for this job. Recommend that these be overridden in a sidecar file. 178 ------------------------------------------------------------------------------------------------------------------- 179 180 -- Setup vars that are user-dependent. Can override this function in a sidecar file. 181 function user_setup() 182 state.OffenseMode:options('Normal', 'Acc', 'Refresh', 'Learning') 183 state.WeaponskillMode:options('Normal', 'Acc') 184 state.CastingMode:options('Normal', 'Resistant') 185 state.IdleMode:options('Normal', 'PDT', 'Learning') 186 187 gear.macc_hagondes = {name="Hagondes Cuffs", augments={'Phys. dmg. taken -4%','Mag. Atk. Bns +26'}} 188 189 -- Additional local binds 190 send_command('bind ^` input /ja "Chain Affinity" <me>') 191 send_command('bind !` input /ja "Efflux" <me>') 192 send_command('bind @` input /ja "Burst Affinity" <me>') 193 194 update_combat_form() 195 select_default_macro_book() 196 end 197 198 199 -- Called when this job file is unloaded (eg: job change) 200 function user_unload() 201 send_command('unbind ^`') 202 send_command('unbind !`') 203 send_command('unbind @`') 204 end 205 206 207 -- Set up gear sets. 208 function init_gear_sets() 209 -------------------------------------- 210 -- Start defining the sets 211 -------------------------------------- 212 213 sets.buff['Burst Affinity'] = {feet="Mavi Basmak +1"} 214 sets.buff['Chain Affinity'] = {head="Mavi Kavuk +1"} 215 sets.buff.Convergence = {head="Luhlaza Keffiyeh"} 216 sets.buff.Diffusion = {feet="Luhlaza Charuqs"} 217 sets.buff.Enchainment = {body="Luhlaza Jubbah"} 218 sets.buff.Efflux = {legs="Mavi Tayt +1"} 219 220 221 -- Precast Sets 222 223 -- Precast sets to enhance JAs 224 sets.precast.JA['Azure Lore'] = {hands="Mirage Bazubands +2"} 225 226 227 -- Waltz set (chr and vit) 228 sets.precast.Waltz = {ammo="Sonia's Plectrum", 229 head="Uk'uxkaj Cap", 230 body="Vanir Cotehardie",hands="Buremte Gloves",ring1="Spiral Ring", 231 back="Iximulew Cape",waist="Caudata Belt",legs="Hagondes Pants",feet="Iuitl Gaiters +1"} 232 233 -- Don't need any special gear for Healing Waltz. 234 sets.precast.Waltz['Healing Waltz'] = {} 235 236 -- Fast cast sets for spells 237 238 sets.precast.FC = {ammo="Impatiens", 239 head="Haruspex Hat",ear1="Loquacious Earring",ear2="Enchanter Earring +1", 240 body="Helios Jacket",hands="Helios Gloves",ring1="Prolix Ring", 241 back="Swith Cape +1",waist="Witful Belt",legs="Enif Cosciales",feet="Chelona Boots +1"} 242 243 sets.precast.FC['Blue Magic'] = set_combine(sets.precast.FC, {body="Mavi Mintan +2"}) 244 245 246 -- Weaponskill sets 247 -- Default set for any weaponskill that isn't any more specifically defined 248 sets.precast.WS = { 249 head="Taeon Chapeau",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", 250 body="Taeon Tabard",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", 251 back="Atheling Mantle",waist="Twilight Belt",legs="Taeon Tights",feet="Iaeon Boots"} 252 253 sets.precast.WS.acc = set_combine(sets.precast.WS, {hands="Taeon Gloves"}) 254 255 -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found. 256 sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ring1="Aquasoul Ring",feet="Helios Boots"}) 257 258 sets.precast.WS['Sanguine Blade'] = { 259 head="Helios Band",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring", 260 body="Hagondes Coat +1",hands="Helios Gloves",ring1="Fenrir Ring +1",ring2="Adoulin Ring", 261 back="Cornflower Cape",legs="Hagondes Pants +1",feet="Helios Boots"} 262 263 264 -- Midcast Sets 265 sets.midcast.FastRecast = { 266 head="Haruspex Hat",ear1="Loquacious Earring",ear2="Enchanter Earring +1", 267 body="Helios Jacket",hands="Helios Gloves",ring1="Prolix Ring", 268 back="Swith Cape +1",waist="Witful Belt",legs="Hagondes Pants +1",feet="Helios Boots"} 269 270 sets.midcast['Blue Magic'] = {} 271 272 -- Physical Spells -- 273 274 sets.midcast['Blue Magic'].Physical = {ammo="Mavi Tathlum", 275 head="Taeon Chapeau",neck="Asperity Necklace",ear1="Heartseeker Earring",ear2="Steelflash Earring", 276 body="Taeon Tabard",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", 277 back="Atheling Mantle",waist="Twilight Belt",legs="Taeon Tights",feet="Taeon Boots"} 278 279 sets.midcast['Blue Magic'].PhysicalAcc = {ammo="Jukukik Feather", 280 head="Taeon Chapeau",neck="Asperity Necklace",ear1="Heartseeker Earring",ear2="Steelflash Earring", 281 body="Mavi Mintan +2",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Adoulin Ring", 282 back="Cornflower Cape",waist="Twilight Belt",legs="Taeon Tights",feet="Taeon Boots"} 283 284 sets.midcast['Blue Magic'].PhysicalStr = set_combine(sets.midcast['Blue Magic'].Physical, 285 {body="Taeon Tabard",hands="Taeon Gloves"}) 286 287 sets.midcast['Blue Magic'].PhysicalDex = set_combine(sets.midcast['Blue Magic'].Physical, 288 {ammo="Jukukik Feather",body="Taeon Tabard",hands="Taeon Gloves", 289 waist="Chiner's Belt +1",legs="Taeon Boots"}) 290 291 sets.midcast['Blue Magic'].PhysicalVit = set_combine(sets.midcast['Blue Magic'].Physical, 292 {body="Taeon Tabard",hands="Taeon Gloves",back="Oneiros Cappa"}) 293 294 sets.midcast['Blue Magic'].PhysicalAgi = set_combine(sets.midcast['Blue Magic'].Physical, 295 {body="Taeon Tabard",hands="Hagondes Cuffs",ring2="Stormsoul Ring", 296 waist="Scouter's Rope",feet="Taeon Boots"}) 297 298 sets.midcast['Blue Magic'].PhysicalInt = set_combine(sets.midcast['Blue Magic'].Physical, 299 {ear1="Friomisi Earring",body="Hagondes Coat +1",hands="Helios Gloves", 300 ring2="Icesoul Ring",back="Cornflower Cape",feet="Telchine Pigaches"}) 301 302 sets.midcast['Blue Magic'].PhysicalMnd = set_combine(sets.midcast['Blue Magic'].Physical, 303 {ear1="Lifestorm Earring",body="Telchine Chasuble",hands="Telchine Gloves", 304 ring2="Aquasoul Ring",back="Swith Cape +1"}) 305 306 sets.midcast['Blue Magic'].PhysicalChr = set_combine(sets.midcast['Blue Magic'].Physical, 307 {body="Telchine Chasuble",hands="Telchine Gloves",back="Swith Cape +1", 308 waist="Chaac Belt"}) 309 310 sets.midcast['Blue Magic'].PhysicalHP = set_combine(sets.midcast['Blue Magic'].Physical) 311 312 313 -- Magical Spells -- 314 315 sets.midcast['Blue Magic'].Magical = {ammo="Dosis Tathlum", 316 head="Helios Band",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring", 317 body="Hagondes Coat +1",hands="Helios Gloves",ring1="Fenrir Ring +1",ring2="Adoulin Ring", 318 back="Cornflower Cape",waist="Aswang Sash",legs="Hagondes Pants +1",feet="Helios Boots"} 319 320 sets.midcast['Blue Magic'].Magical.Resistant = set_combine(sets.midcast['Blue Magic'].Magical, 321 {body="Hagondes Coat +1",ring1="Sangoma Ring",legs="Hagondes Pants +1",feet="Helios Boots"}) 322 323 sets.midcast['Blue Magic'].MagicalMnd = set_combine(sets.midcast['Blue Magic'].Magical, 324 {ring1="Aquasoul Ring"}) 325 326 sets.midcast['Blue Magic'].MagicalChr = set_combine(sets.midcast['Blue Magic'].Magical) 327 328 sets.midcast['Blue Magic'].MagicalVit = set_combine(sets.midcast['Blue Magic'].Magical, 329 {ring1="Spiral Ring"}) 330 331 sets.midcast['Blue Magic'].MagicalDex = set_combine(sets.midcast['Blue Magic'].Magical) 332 333 sets.midcast['Blue Magic'].MagicAccuracy = {ammo="Mavi Tathlum", 334 head="Telchine Cap",neck="Stoicheion Medal",ear1="Enchanter Earring +1",ear2="Psystorm Earring", 335 body="Mavi Mintan +2",hands="Hagondes Cuffs",ring1="Adoulin Ring",ring2="Fenrir Ring +1" 336 back="Cornflower Cape",legs="Iuitl Tights",feet="Helios Boots"} 337 338 -- Breath Spells -- 339 340 sets.midcast['Blue Magic'].Breath = {ammo="Mavi Tathlum", 341 head="Telchine Cap",neck="Ej Necklace",ear1="Lifestorm Earring",ear2="Psystorm Earring", 342 body="Vanir Cotehardie",hands="Assimilator's Bazubands +1",ring1="K'ayres Ring",ring2="Beeline Ring", 343 back="Refraction Cape",legs="Enif Cosciales",feet="Iuitl Gaiters +1"} 344 345 -- Other Types -- 346 347 sets.midcast['Blue Magic'].Stun = set_combine(sets.midcast['Blue Magic'].MagicAccuracy, 348 {waist="Chaac Belt"}) 349 350 sets.midcast['Blue Magic']['White Wind'] = { 351 head="Whirlpool Mask",neck="Lavalier +1",ear1="Bloodgem Earring",ear2="Loquacious Earring", 352 body="Vanir Cotehardie",hands="Buremte Gloves",ring1="K'ayres Ring",ring2="Meridian Ring", 353 back="Fravashi Mantle",waist="Hurch'lan Sash",legs="Enif Cosciales",feet="Hagondes Sabots"} 354 355 sets.midcast['Blue Magic'].Healing = { 356 head="Telchine Cap",ear1="Lifestorm Earring",ear2="Loquacious Earring", 357 body="Telchine Chasuble",hands="Telchine Gloves",ring1="Aquasoul Ring",ring2="Asklepian Ring", 358 back="Swith Cape +1"waist="Chuq'aba Belt",legs="Telchine Braconi",feet="Telchine Pigaches"} 359 360 sets.midcast['Blue Magic'].SkillBasedBuff = {ammo="Mavi Tathlum", 361 head="Luhlaza Keffiyeh", 362 body="Assimilator's Jubbah", 363 back="Cornflower Cape",legs="Mavi Tayt +1",feet="Luhlaza Charuqs"} 364 365 sets.midcast['Blue Magic'].Buff = {} 366 367 sets.midcast.Protect = {ring1="Sheltered Ring"} 368 sets.midcast.Protectra = {ring1="Sheltered Ring"} 369 sets.midcast.Shell = {ring1="Sheltered Ring"} 370 sets.midcast.Shellra = {ring1="Sheltered Ring"} 371 372 373 374 375 -- Sets to return to when not performing an action. 376 377 -- Gear for learning spells: +skill and AF hands. 378 sets.Learning = {ammo="Mavi Tathlum",hands="Assimilator's Bazubands +1"} 379 --head="Luhlaza Keffiyeh", 380 --body="Assimilator's Jubbah",hands="Assimilator's Bazubands +1", 381 --back="Cornflower Cape",legs="Mavi Tayt +1",feet="Luhlaza Charuqs"} 382 383 384 sets.latent_refresh = {waist="Fucho-no-obi"} 385 386 -- Resting sets 387 sets.resting = { 388 head="Ocelomeh Headpiece",neck="Wiglen Gorget", 389 body="Hagondes Coat +1",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring", 390 waist="Austerity Belt",feet="Chelona Boots +1"} 391 392 -- Idle sets 393 sets.idle = {ammo="Impatiens", 394 head="Helios Band",neck="Wiglen Gorget",ear1="Enchanter Earring +1",ear2="Loquacious Earring", 395 body="Hagondes Coat +1",hands="Hagondes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring", 396 back="Cornflower Cape",waist="Aswang Sash",legs="Crimson Cuisses",feet="Helios Boots"} 397 398 sets.idle.PDT = {ammo="Impatiens", 399 head="Helios Band",neck="Wiglen Gorget",ear1="Enchanter Earring +1",ear2="Loquacious Earring", 400 body="Hagondes Coat +1",hands="Hagondes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring", 401 back="Cornflower Cape",waist="Aswang Sash",legs="Crimson Cuisses",feet="Helios Boots"} 402 403 sets.idle.Town = {main="Buramenk'ah",ammo="Impatiens", 404 head="Mavi Kavuk +2",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring", 405 body="Luhlaza Jubbah",hands="Assimilator's Bazubands +1",ring1="Sheltered Ring",ring2="Paguroidea Ring", 406 back="Atheling Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Luhlaza Charuqs"} 407 408 sets.idle.Learning = set_combine(sets.idle, sets.Learning) 409 410 411 -- Defense sets 412 sets.defense.PDT = {ammo="Iron Gobbet", 413 head="Whirlpool Mask",neck="Wiglen Gorget",ear1="Bloodgem Earring", 414 body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Defending Ring",ring2=gear.DarkRing.physical, 415 back="Shadow Mantle",waist="Flume Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters +1"} 416 417 sets.defense.MDT = {ammo="Demonry Stone", 418 head="Whirlpool Mask",neck="Twilight Torque",ear1="Bloodgem Earring", 419 body="Hagondes Coat",hands="Iuitl Wristbands",ring1="Defending Ring",ring2="Shadow Ring", 420 back="Engulfer Cape",waist="Flume Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters +1"} 421 422 sets.Kiting = {legs="Crimson Cuisses"} 423 424 -- Engaged sets 425 426 -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous 427 -- sets if more refined versions aren't defined. 428 -- If you create a set with both offense and defense modes, the offense mode should be first. 429 -- EG: sets.engaged.Dagger.Accuracy.Evasion 430 431 -- Normal melee group 432 sets.engaged = {ammo="Focal Orb", 433 head="Taeon Chapeau",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", 434 body="Taeon Tabard",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", 435 back="Atheling Mantle",waist="Chiner's Belt +1",legs="Taeon Tights",feet="Taeon Boots"} 436 437 sets.engaged.Acc = {ammo="Mavi Tathlum", 438 head="Taeon Chapeau",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", 439 body="Taeon Tabard",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", 440 back="Cornflower Cape",waist="Chiner's Belt +1",legs="Taeon Tights",feet="Taeon Boots"} 441 442 sets.engaged.Refresh = {ammo="Dosis Tathlum", 443 head="Helios Band",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", 444 body="Hagondes Coat +1",hands="Helios Gloves",ring1="Rajas Ring",ring2="Epona's Ring", 445 back="Atheling Mantle",waist="Aswang Sash",legs="Hagondes Pants +1",feet="Helios Boots"} 446 447 sets.engaged.DW = {ammo="Jukukik Feather", 448 head="Whirlpool Mask",neck="Asperity Necklace",ear1="Heartseeker Earring",ear2="Dudgeon Earring", 449 body="Luhlaza Jubbah",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", 450 back="Atheling Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Iuitl Gaiters +1"} 451 452 sets.engaged.DW.Acc = {ammo="Jukukik Feather", 453 head="Whirlpool Mask",neck="Ej Necklace",ear1="Heartseeker Earring",ear2="Dudgeon Earring", 454 body="Luhlaza Jubbah",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", 455 back="Letalis Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Qaaxo Leggings"} 456 457 sets.engaged.DW.Refresh = {ammo="Jukukik Feather", 458 head="Whirlpool Mask",neck="Asperity Necklace",ear1="Heartseeker Earring",ear2="Dudgeon Earring", 459 body="Hagondes Coat +1",hands="Assimilator's Bazubands +1",ring1="Rajas Ring",ring2="Epona's Ring", 460 back="Letalis Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Qaaxo Leggings"} 461 462 sets.engaged.Learning = set_combine(sets.engaged, sets.Learning) 463 sets.engaged.DW.Learning = set_combine(sets.engaged.DW, sets.Learning) 464 465 466 sets.self_healing = {ring1="Aquasoul Ring",ring2="Asklepian Ring"} 467 end 468 469 ------------------------------------------------------------------------------------------------------------------- 470 -- Job-specific hooks for standard casting events. 471 ------------------------------------------------------------------------------------------------------------------- 472 473 -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done. 474 -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast. 475 function job_precast(spell, action, spellMap, eventArgs) 476 if unbridled_spells:contains(spell.english) and not state.Buff['Unbridled Learning'] then 477 eventArgs.cancel = true 478 windower.send_command('@input /ja "Unbridled Learning" <me>; wait 1.5; input /ma "'..spell.name..'" '..spell.target.name) 479 end 480 end 481 482 -- Run after the default midcast() is done. 483 -- eventArgs is the same one used in job_midcast, in case information needs to be persisted. 484 function job_post_midcast(spell, action, spellMap, eventArgs) 485 -- Add enhancement gear for Chain Affinity, etc. 486 if spell.skill == 'Blue Magic' then 487 for buff,active in pairs(state.Buff) do 488 if active and sets.buff[buff] then 489 equip(sets.buff[buff]) 490 end 491 end 492 if spellMap == 'Healing' and spell.target.type == 'SELF' and sets.self_healing then 493 equip(sets.self_healing) 494 end 495 end 496 497 -- If in learning mode, keep on gear intended to help with that, regardless of action. 498 if state.OffenseMode.value == 'Learning' then 499 equip(sets.Learning) 500 end 501 end 502 503 504 ------------------------------------------------------------------------------------------------------------------- 505 -- Job-specific hooks for non-casting events. 506 ------------------------------------------------------------------------------------------------------------------- 507 508 -- Called when a player gains or loses a buff. 509 -- buff == buff gained or lost 510 -- gain == true if the buff was gained, false if it was lost. 511 function job_buff_change(buff, gain) 512 if state.Buff[buff] ~= nil then 513 state.Buff[buff] = gain 514 end 515 end 516 517 ------------------------------------------------------------------------------------------------------------------- 518 -- User code that supplements standard library decisions. 519 ------------------------------------------------------------------------------------------------------------------- 520 521 -- Custom spell mapping. 522 -- Return custom spellMap value that can override the default spell mapping. 523 -- Don't return anything to allow default spell mapping to be used. 524 function job_get_spell_map(spell, default_spell_map) 525 if spell.skill == 'Blue Magic' then 526 for category,spell_list in pairs(blue_magic_maps) do 527 if spell_list:contains(spell.english) then 528 return category 529 end 530 end 531 end 532 end 533 534 -- Modify the default idle set after it was constructed. 535 function customize_idle_set(idleSet) 536 if player.mpp < 51 then 537 set_combine(idleSet, sets.latent_refresh) 538 end 539 return idleSet 540 end 541 542 -- Called by the 'update' self-command, for common needs. 543 -- Set eventArgs.handled to true if we don't want automatic equipping of gear. 544 function job_update(cmdParams, eventArgs) 545 update_combat_form() 546 end 547 548 549 ------------------------------------------------------------------------------------------------------------------- 550 -- Utility functions specific to this job. 551 ------------------------------------------------------------------------------------------------------------------- 552 553 function update_combat_form() 554 -- Check for H2H or single-wielding 555 if player.equipment.sub == "Genbu's Shield" or player.equipment.sub == 'empty' then 556 state.CombatForm:reset() 557 else 558 state.CombatForm:set('DW') 559 end 560 end 561 562 563 -- Select default macro book on initial load or subjob change. 564 function select_default_macro_book() 565 -- Default macro set/book 566 if player.sub_job == 'DNC' then 567 set_macro_page(2, 7) 568 else 569 set_macro_page(1, 7) 570 end 571 end 572 573 Oh! perhaps the double column of line numbers? was a copy paste just noticed it :/
Going to edit the second column out. will update shortly. Fixed the problem! thank you for your help @Quixacotl
Odin.Quixacotl said: » Just what you posted looks fine to me. Your lua seems to not load because it cannot find the correct library files (motes includes version 2). 1. Are your main luas and the lib files in the GearSwap/data folder? 2. Are you using a sidecar? 3. Are you using Kinematics latest library files (version 2) from here? There are 7 files and you need them all to work. It might be better just to post your entire lua. When posting codes be sure to contain it within the [code ] [/code ] tags (minus the spaces) so that it shows in a sized window rather than half the forum page which would be painful to read. Better yet, use pastebin.com and post the link. Motes luas have been included with windower for almost a year now. No need to tell people they have to download them. I actually have another issue hopefully someone can help me with.
I've noticed when I play that the gearswapping seems to be inconsistent, for example, casting restoral GS goes to my cure set no problem, but then going back to my idle set it will miss certain pieces. Now if I cast restoral again, upon returning to my idle set it will get the pieces it missed the first time but miss different pieces this time. I have checked all of my spelling and made sure all pieces are in my inventory/wardrobe. Quetzalcoatl.Orestes said: » Odin.Quixacotl said: » Just what you posted looks fine to me. Your lua seems to not load because it cannot find the correct library files (motes includes version 2). 1. Are your main luas and the lib files in the GearSwap/data folder? 2. Are you using a sidecar? 3. Are you using Kinematics latest library files (version 2) from here? There are 7 files and you need them all to work. It might be better just to post your entire lua. When posting codes be sure to contain it within the [code ] [/code ] tags (minus the spaces) so that it shows in a sized window rather than half the forum page which would be painful to read. Better yet, use pastebin.com and post the link. Motes luas have been included with windower for almost a year now. No need to tell people they have to download them. I like to believe people post here because they need help... no matter how trivial that question may seem to some others. I like to help, not to put any feather on my cap or to prove anything. I once posted a SpellCast question back in the heyday and got a reply to the effect that it was a stupid question to ask. Well it wasn't stupid to me it was a big deal. Fortunately I had one truly helpful, knowledgeable and sympathetic person point me in the right direction. Now I find helping others with GS intriguing. It's like solving a puzzle. It's also my way of returning a favor. Quetzalcoatl.Eithin said: » I actually have another issue hopefully someone can help me with. I've noticed when I play that the gearswapping seems to be inconsistent, for example, casting restoral GS goes to my cure set no problem, but then going back to my idle set it will miss certain pieces. Now if I cast restoral again, upon returning to my idle set it will get the pieces it missed the first time but miss different pieces this time. I have checked all of my spelling and made sure all pieces are in my inventory/wardrobe. Thank you. However, that is not the problem.
Odin.Quixacotl said: » Quetzalcoatl.Orestes said: » Odin.Quixacotl said: » Just what you posted looks fine to me. Your lua seems to not load because it cannot find the correct library files (motes includes version 2). 1. Are your main luas and the lib files in the GearSwap/data folder? 2. Are you using a sidecar? 3. Are you using Kinematics latest library files (version 2) from here? There are 7 files and you need them all to work. It might be better just to post your entire lua. When posting codes be sure to contain it within the [code ] [/code ] tags (minus the spaces) so that it shows in a sized window rather than half the forum page which would be painful to read. Better yet, use pastebin.com and post the link. Motes luas have been included with windower for almost a year now. No need to tell people they have to download them. I like to believe people post here because they need help... no matter how trivial that question may seem to some others. I like to help, not to put any feather on my cap or to prove anything. I once posted a SpellCast question back in the heyday and got a reply to the effect that it was a stupid question to ask. Well it wasn't stupid to me it was a big deal. Fortunately I had one truly helpful, knowledgeable and sympathetic person point me in the right direction. Now I find helping others with GS intriguing. It's like solving a puzzle. It's also my way of returning a favor. I commend you for all the help you do. Sorry if that seemed like a jab at you. I didn't post that without reason though. If somebody is saying Mote's luas won't load, there's only a few likely reasons. They either don't have the gearswap addon loaded. Their resources are horribly outdated, or they have old copies of mote's libs residing in their data folder (from downloading them). Tossing Mote's files in your data folder can actually do harm to the user. Gearswap's lua include path checks lib, then data. Anything inside data will take precedence over Mote's files inside lib. If Mote was to fix something critical, any user who tossed his files in data would come here looking for fixes to their broken gearswap, as their files would block them from loading his. None of this technically matters since Mote has been MIA for 6 months. That doesn't mean he will never update them again though, and following good practice is worthwhile. Quetzalcoatl.Orestes said: » Odin.Quixacotl said: » Quetzalcoatl.Orestes said: » Odin.Quixacotl said: » Just what you posted looks fine to me. Your lua seems to not load because it cannot find the correct library files (motes includes version 2). 1. Are your main luas and the lib files in the GearSwap/data folder? 2. Are you using a sidecar? 3. Are you using Kinematics latest library files (version 2) from here? There are 7 files and you need them all to work. It might be better just to post your entire lua. When posting codes be sure to contain it within the [code ] [/code ] tags (minus the spaces) so that it shows in a sized window rather than half the forum page which would be painful to read. Better yet, use pastebin.com and post the link. Motes luas have been included with windower for almost a year now. No need to tell people they have to download them. I like to believe people post here because they need help... no matter how trivial that question may seem to some others. I like to help, not to put any feather on my cap or to prove anything. I once posted a SpellCast question back in the heyday and got a reply to the effect that it was a stupid question to ask. Well it wasn't stupid to me it was a big deal. Fortunately I had one truly helpful, knowledgeable and sympathetic person point me in the right direction. Now I find helping others with GS intriguing. It's like solving a puzzle. It's also my way of returning a favor. I commend you for all the help you do. Sorry if that seemed like a jab at you. I didn't post that without reason though. If somebody is saying Mote's luas won't load, there's only a few likely reasons. They either don't have the gearswap addon loaded. Their resources are horribly outdated, or they have old copies of mote's libs residing in their data folder (from downloading them). Tossing Mote's files in your data folder can actually do harm to the user. Gearswap's lua include path checks lib, then data. Anything inside data will take precedence over Mote's files inside lib. If Mote was to fix something critical, any user who tossed his files in data would come here looking for fixes to their broken gearswap, as their files would block them from loading his. None of this technically matters since Mote has been MIA for 6 months. That doesn't mean he will never update them again though, and following good practice is worthwhile. Quetzalcoatl.Eithin said: » Thank you. However, that is not the problem. Code ------------------------------------------------------------------------------------------------------------------- -- Setup functions for this job. Generally should not be modified. ------------------------------------------------------------------------------------------------------------------- -- 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.Buff['Burst Affinity'] = buffactive['Burst Affinity'] or false state.Buff['Chain Affinity'] = buffactive['Chain Affinity'] or false state.Buff.Convergence = buffactive.Convergence or false state.Buff.Diffusion = buffactive.Diffusion or false state.Buff.Efflux = buffactive.Efflux or false state.Buff['Unbridled Learning'] = buffactive['Unbridled Learning'] or false blue_magic_maps = {} -- Mappings for gear sets to use for various blue magic spells. -- While Str isn't listed for each, it's generally assumed as being at least -- moderately signficant, even for spells with other mods. -- Physical Spells -- -- Physical spells with no particular (or known) stat mods blue_magic_maps.Physical = S{ 'Bilgestorm' } -- Spells with heavy accuracy penalties, that need to prioritize accuracy first. blue_magic_maps.PhysicalAcc = S{ 'Heavy Strike', } -- Physical spells with Str stat mod blue_magic_maps.PhysicalStr = S{ 'Battle Dance','Bloodrake','Death Scissors','Dimensional Death', 'Empty Thrash','Quadrastrike','Sinker Drill','Spinal Cleave', 'Uppercut','Vertical Cleave' } -- Physical spells with Dex stat mod blue_magic_maps.PhysicalDex = S{ 'Amorphic Spikes','Asuran Claws','Barbed Crescent','Claw Cyclone','Disseverment', 'Foot Kick','Frenetic Rip','Goblin Rush','Hysteric Barrage','Paralyzing Triad', 'Seedspray','Sickle Slash','Smite of Rage','Terror Touch','Thrashing Assault', 'Vanity Dive' } -- Physical spells with Vit stat mod blue_magic_maps.PhysicalVit = S{ 'Body Slam','Cannonball','Delta Thrust','Glutinous Dart','Grand Slam', 'Power Attack','Quad. Continuum','Sprout Smack','Sub-zero Smash' } -- Physical spells with Agi stat mod blue_magic_maps.PhysicalAgi = S{ 'Benthic Typhoon','Feather Storm','Helldive','Hydro Shot','Jet Stream', 'Pinecone Bomb','Spiral Spin','Wild Oats' } -- Physical spells with Int stat mod blue_magic_maps.PhysicalInt = S{ 'Mandibular Bite','Queasyshroom' } -- Physical spells with Mnd stat mod blue_magic_maps.PhysicalMnd = S{ 'Ram Charge','Screwdriver','Tourbillion' } -- Physical spells with Chr stat mod blue_magic_maps.PhysicalChr = S{ 'Bludgeon' } -- Physical spells with HP stat mod blue_magic_maps.PhysicalHP = S{ 'Final Sting' } -- Magical Spells -- -- Magical spells with the typical Int mod blue_magic_maps.Magical = S{ 'Blastbomb','Blazing Bound','Bomb Toss','Cursed Sphere','Dark Orb','Death Ray', 'Diffusion Ray','Droning Whirlwind','Embalming Earth','Firespit','Foul Waters', 'Ice Break','Leafstorm','Maelstrom','Rail Cannon','Regurgitation','Rending Deluge', 'Retinal Glare','Subduction','Tem. Upheaval','Water Bomb' } -- Magical spells with a primary Mnd mod blue_magic_maps.MagicalMnd = S{ 'Acrid Stream','Evryone. Grudge','Magic Hammer','Mind Blast' } -- Magical spells with a primary Chr mod blue_magic_maps.MagicalChr = S{ 'Eyes On Me','Mysterious Light' } -- Magical spells with a Vit stat mod (on top of Int) blue_magic_maps.MagicalVit = S{ 'Thermal Pulse' } -- Magical spells with a Dex stat mod (on top of Int) blue_magic_maps.MagicalDex = S{ 'Charged Whisker','Gates of Hades' } -- Magical spells (generally debuffs) that we want to focus on magic accuracy over damage. -- Add Int for damage where available, though. blue_magic_maps.MagicAccuracy = S{ '1000 Needles','Absolute Terror','Actinic Burst','Auroral Drape','Awful Eye', 'Blank Gaze','Blistering Roar','Blood Drain','Blood Saber','Chaotic Eye', 'Cimicine Discharge','Cold Wave','Corrosive Ooze','Demoralizing Roar','Digest', 'Dream Flower','Enervation','Feather Tickle','Filamented Hold','Frightful Roar', 'Geist Wall','Hecatomb Wave','Infrasonics','Jettatura','Light of Penance', 'Lowing','Mind Blast','Mortal Ray','MP Drainkiss','Osmosis','Reaving Wind', 'Sandspin','Sandspray','Sheep Song','Soporific','Sound Blast','Stinking Gas', 'Sub-zero Smash','Venom Shell','Voracious Trunk','Yawn' } -- Breath-based spells blue_magic_maps.Breath = S{ 'Bad Breath','Flying Hip Press','Frost Breath','Heat Breath', 'Hecatomb Wave','Magnetite Cloud','Poison Breath','Radiant Breath','Self-Destruct', 'Thunder Breath','Vapor Spray','Wind Breath' } -- Stun spells blue_magic_maps.Stun = S{ 'Blitzstrahl','Frypan','Head Butt','Sudden Lunge','Tail slap','Temporal Shift', 'Thunderbolt','Whirl of Rage' } -- Healing spells blue_magic_maps.Healing = S{ 'Healing Breeze','Magic Fruit','Plenilune Embrace','Pollen','Restoral','White Wind', 'Wild Carrot' } -- Buffs that depend on blue magic skill blue_magic_maps.SkillBasedBuff = S{ 'Barrier Tusk','Diamondhide','Magic Barrier','Metallic Body','Plasma Charge', 'Pyric Bulwark','Reactor Cool', } -- Other general buffs blue_magic_maps.Buff = S{ 'Amplification','Animating Wail','Battery Charge','Carcharian Verve','Cocoon', 'Erratic Flutter','Exuviation','Fantod','Feather Barrier','Harden Shell', 'Memento Mori','Nat. Meditation','Occultation','Orcish Counterstance','Refueling', 'Regeneration','Saline Coat','Triumphant Roar','Warm-Up','Winds of Promyvion', 'Zephyr Mantle' } -- Spells that require Unbridled Learning to cast. unbridled_spells = S{ 'Absolute Terror','Bilgestorm','Blistering Roar','Bloodrake','Carcharian Verve', 'Crashing Thunder','Droning Whirlwind','Gates of Hades','Harden Shell','Polar Roar', 'Pyric Bulwark','Thunderbolt','Tourbillion','Uproot' } 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('Normal', 'Acc', 'Refresh', 'Learning') state.WeaponskillMode:options('Normal', 'Acc') state.CastingMode:options('Normal', 'Resistant') state.IdleMode:options('Normal', 'PDT', 'Learning') gear.macc_hagondes = {name="Hagondes Cuffs", augments={'Phys. dmg. taken -4%','Mag. Atk. Bns +26'}} -- Additional local binds send_command('bind ^` input /ja "Chain Affinity" <me>') send_command('bind !` input /ja "Efflux" <me>') send_command('bind @` input /ja "Burst Affinity" <me>') update_combat_form() select_default_macro_book() end -- Called when this job file is unloaded (eg: job change) function user_unload() send_command('unbind ^`') send_command('unbind !`') send_command('unbind @`') end -- Set up gear sets. function init_gear_sets() -------------------------------------- -- Start defining the sets -------------------------------------- sets.buff['Burst Affinity'] = {feet="Mavi Basmak +1"} sets.buff['Chain Affinity'] = {head="Mavi Kavuk +1"} sets.buff.Convergence = {head="Luhlaza Keffiyeh"} sets.buff.Diffusion = {feet="Luhlaza Charuqs"} sets.buff.Enchainment = {body="Luhlaza Jubbah"} sets.buff.Efflux = {legs="Mavi Tayt +1"} -- Precast Sets -- Precast sets to enhance JAs sets.precast.JA['Azure Lore'] = {hands="Mirage Bazubands +2"} -- Waltz set (chr and vit) sets.precast.Waltz = {ammo="Sonia's Plectrum", head="Uk'uxkaj Cap", body="Vanir Cotehardie",hands="Buremte Gloves",ring1="Spiral Ring", back="Iximulew Cape",waist="Caudata Belt",legs="Hagondes Pants",feet="Iuitl Gaiters +1"} -- Don't need any special gear for Healing Waltz. sets.precast.Waltz['Healing Waltz'] = {} -- Fast cast sets for spells sets.precast.FC = {ammo="Impatiens", head="Haruspex Hat",ear1="Loquacious Earring",ear2="Enchanter Earring +1", body="Helios Jacket",hands="Helios Gloves",ring1="Prolix Ring", back="Swith Cape +1",waist="Witful Belt",legs="Enif Cosciales",feet="Chelona Boots +1"} sets.precast.FC['Blue Magic'] = set_combine(sets.precast.FC, {body="Mavi Mintan +2"}) -- Weaponskill sets -- Default set for any weaponskill that isn't any more specifically defined sets.precast.WS = { head="Taeon Chapeau",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Taeon Tabard",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", back="Atheling Mantle",waist="Twilight Belt",legs="Taeon Tights",feet="Iaeon Boots"} sets.precast.WS.acc = set_combine(sets.precast.WS, {hands="Taeon Gloves"}) -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found. sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ring1="Aquasoul Ring",feet="Helios Boots"}) sets.precast.WS['Sanguine Blade'] = { head="Helios Band",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring", body="Hagondes Coat +1",hands="Helios Gloves",ring1="Fenrir Ring +1",ring2="Adoulin Ring", back="Cornflower Cape",legs="Hagondes Pants +1",feet="Helios Boots"} -- Midcast Sets sets.midcast.FastRecast = { head="Haruspex Hat",ear1="Loquacious Earring",ear2="Enchanter Earring +1", body="Helios Jacket",hands="Helios Gloves",ring1="Prolix Ring", back="Swith Cape +1",waist="Witful Belt",legs="Hagondes Pants +1",feet="Helios Boots"} sets.midcast['Blue Magic'] = {} -- Physical Spells -- sets.midcast['Blue Magic'].Physical = {ammo="Mavi Tathlum", head="Taeon Chapeau",neck="Asperity Necklace",ear1="Heartseeker Earring",ear2="Steelflash Earring", body="Taeon Tabard",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", back="Atheling Mantle",waist="Twilight Belt",legs="Taeon Tights",feet="Taeon Boots"} sets.midcast['Blue Magic'].PhysicalAcc = {ammo="Jukukik Feather", head="Taeon Chapeau",neck="Asperity Necklace",ear1="Heartseeker Earring",ear2="Steelflash Earring", body="Mavi Mintan +2",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Adoulin Ring", back="Cornflower Cape",waist="Twilight Belt",legs="Taeon Tights",feet="Taeon Boots"} sets.midcast['Blue Magic'].PhysicalStr = set_combine(sets.midcast['Blue Magic'].Physical, {body="Taeon Tabard",hands="Taeon Gloves"}) sets.midcast['Blue Magic'].PhysicalDex = set_combine(sets.midcast['Blue Magic'].Physical, {ammo="Jukukik Feather",body="Taeon Tabard",hands="Taeon Gloves", waist="Chiner's Belt +1",legs="Taeon Boots"}) sets.midcast['Blue Magic'].PhysicalVit = set_combine(sets.midcast['Blue Magic'].Physical, {body="Taeon Tabard",hands="Taeon Gloves",back="Oneiros Cappa"}) sets.midcast['Blue Magic'].PhysicalAgi = set_combine(sets.midcast['Blue Magic'].Physical, {body="Taeon Tabard",hands="Hagondes Cuffs",ring2="Stormsoul Ring", waist="Scouter's Rope",feet="Taeon Boots"}) sets.midcast['Blue Magic'].PhysicalInt = set_combine(sets.midcast['Blue Magic'].Physical, {ear1="Friomisi Earring",body="Hagondes Coat +1",hands="Helios Gloves", ring2="Icesoul Ring",back="Cornflower Cape",feet="Telchine Pigaches"}) sets.midcast['Blue Magic'].PhysicalMnd = set_combine(sets.midcast['Blue Magic'].Physical, {ear1="Lifestorm Earring",body="Telchine Chasuble",hands="Telchine Gloves", ring2="Aquasoul Ring",back="Swith Cape +1"}) sets.midcast['Blue Magic'].PhysicalChr = set_combine(sets.midcast['Blue Magic'].Physical, {body="Telchine Chasuble",hands="Telchine Gloves",back="Swith Cape +1", waist="Chaac Belt"}) sets.midcast['Blue Magic'].PhysicalHP = set_combine(sets.midcast['Blue Magic'].Physical) -- Magical Spells -- sets.midcast['Blue Magic'].Magical = {ammo="Dosis Tathlum", head="Helios Band",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring", body="Hagondes Coat +1",hands="Helios Gloves",ring1="Fenrir Ring +1",ring2="Adoulin Ring", back="Cornflower Cape",waist="Aswang Sash",legs="Hagondes Pants +1",feet="Helios Boots"} sets.midcast['Blue Magic'].Magical.Resistant = set_combine(sets.midcast['Blue Magic'].Magical, {body="Hagondes Coat +1",ring1="Sangoma Ring",legs="Hagondes Pants +1",feet="Helios Boots"}) sets.midcast['Blue Magic'].MagicalMnd = set_combine(sets.midcast['Blue Magic'].Magical, {ring1="Aquasoul Ring"}) sets.midcast['Blue Magic'].MagicalChr = set_combine(sets.midcast['Blue Magic'].Magical) sets.midcast['Blue Magic'].MagicalVit = set_combine(sets.midcast['Blue Magic'].Magical, {ring1="Spiral Ring"}) sets.midcast['Blue Magic'].MagicalDex = set_combine(sets.midcast['Blue Magic'].Magical) sets.midcast['Blue Magic'].MagicAccuracy = {ammo="Mavi Tathlum", head="Telchine Cap",neck="Stoicheion Medal",ear1="Enchanter Earring +1",ear2="Psystorm Earring", body="Mavi Mintan +2",hands="Hagondes Cuffs",ring1="Adoulin Ring",ring2="Fenrir Ring +1", back="Cornflower Cape",legs="Iuitl Tights",feet="Helios Boots"} -- Breath Spells -- sets.midcast['Blue Magic'].Breath = {ammo="Mavi Tathlum", head="Telchine Cap",neck="Ej Necklace",ear1="Lifestorm Earring",ear2="Psystorm Earring", body="Vanir Cotehardie",hands="Assimilator's Bazubands +1",ring1="K'ayres Ring",ring2="Beeline Ring", back="Refraction Cape",legs="Enif Cosciales",feet="Iuitl Gaiters +1"} -- Other Types -- sets.midcast['Blue Magic'].Stun = set_combine(sets.midcast['Blue Magic'].MagicAccuracy, {waist="Chaac Belt"}) sets.midcast['Blue Magic']['White Wind'] = { head="Whirlpool Mask",neck="Lavalier +1",ear1="Bloodgem Earring",ear2="Loquacious Earring", body="Vanir Cotehardie",hands="Buremte Gloves",ring1="K'ayres Ring",ring2="Meridian Ring", back="Fravashi Mantle",waist="Hurch'lan Sash",legs="Enif Cosciales",feet="Hagondes Sabots"} sets.midcast['Blue Magic'].Healing = { head="Telchine Cap",ear1="Lifestorm Earring",ear2="Loquacious Earring", body="Telchine Chasuble",hands="Telchine Gloves",ring1="Aquasoul Ring",ring2="Asklepian Ring", back="Swith Cape +1",waist="Chuq'aba Belt",legs="Telchine Braconi",feet="Telchine Pigaches"} sets.midcast['Blue Magic'].SkillBasedBuff = {ammo="Mavi Tathlum", head="Luhlaza Keffiyeh", body="Assimilator's Jubbah", back="Cornflower Cape",legs="Mavi Tayt +1",feet="Luhlaza Charuqs"} sets.midcast['Blue Magic'].Buff = {} sets.midcast.Protect = {ring1="Sheltered Ring"} sets.midcast.Protectra = {ring1="Sheltered Ring"} sets.midcast.Shell = {ring1="Sheltered Ring"} sets.midcast.Shellra = {ring1="Sheltered Ring"} -- Sets to return to when not performing an action. -- Gear for learning spells: +skill and AF hands. sets.Learning = {ammo="Mavi Tathlum",hands="Assimilator's Bazubands +1"} --head="Luhlaza Keffiyeh", --body="Assimilator's Jubbah",hands="Assimilator's Bazubands +1", --back="Cornflower Cape",legs="Mavi Tayt +1",feet="Luhlaza Charuqs"} sets.latent_refresh = {waist="Fucho-no-obi"} -- Resting sets sets.resting = { head="Ocelomeh Headpiece",neck="Wiglen Gorget", body="Hagondes Coat +1",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring", waist="Austerity Belt",feet="Chelona Boots +1"} -- Idle sets sets.idle = {ammo="Impatiens", head="Helios Band",neck="Wiglen Gorget",ear1="Enchanter Earring +1",ear2="Loquacious Earring", body="Hagondes Coat +1",hands="Hagondes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring", back="Cornflower Cape",waist="Aswang Sash",legs="Crimson Cuisses",feet="Helios Boots"} sets.idle.PDT = {ammo="Impatiens", head="Helios Band",neck="Wiglen Gorget",ear1="Enchanter Earring +1",ear2="Loquacious Earring", body="Hagondes Coat +1",hands="Hagondes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring", back="Cornflower Cape",waist="Aswang Sash",legs="Crimson Cuisses",feet="Helios Boots"} sets.idle.Town = {main="Buramenk'ah",ammo="Impatiens", head="Mavi Kavuk +2",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring", body="Luhlaza Jubbah",hands="Assimilator's Bazubands +1",ring1="Sheltered Ring",ring2="Paguroidea Ring", back="Atheling Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Luhlaza Charuqs"} sets.idle.Learning = set_combine(sets.idle, sets.Learning) -- Defense sets sets.defense.PDT = {ammo="Iron Gobbet", head="Whirlpool Mask",neck="Wiglen Gorget",ear1="Bloodgem Earring", body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Defending Ring",ring2=gear.DarkRing.physical, back="Shadow Mantle",waist="Flume Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters +1"} sets.defense.MDT = {ammo="Demonry Stone", head="Whirlpool Mask",neck="Twilight Torque",ear1="Bloodgem Earring", body="Hagondes Coat",hands="Iuitl Wristbands",ring1="Defending Ring",ring2="Shadow Ring", back="Engulfer Cape",waist="Flume Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters +1"} sets.Kiting = {legs="Crimson Cuisses"} -- 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 = {ammo="Focal Orb", head="Taeon Chapeau",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Taeon Tabard",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", back="Atheling Mantle",waist="Chiner's Belt +1",legs="Taeon Tights",feet="Taeon Boots"} sets.engaged.Acc = {ammo="Mavi Tathlum", head="Taeon Chapeau",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Taeon Tabard",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", back="Cornflower Cape",waist="Chiner's Belt +1",legs="Taeon Tights",feet="Taeon Boots"} sets.engaged.Refresh = {ammo="Dosis Tathlum", head="Helios Band",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Hagondes Coat +1",hands="Helios Gloves",ring1="Rajas Ring",ring2="Epona's Ring", back="Atheling Mantle",waist="Aswang Sash",legs="Hagondes Pants +1",feet="Helios Boots"} sets.engaged.DW = {ammo="Jukukik Feather", head="Whirlpool Mask",neck="Asperity Necklace",ear1="Heartseeker Earring",ear2="Dudgeon Earring", body="Luhlaza Jubbah",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", back="Atheling Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Iuitl Gaiters +1"} sets.engaged.DW.Acc = {ammo="Jukukik Feather", head="Whirlpool Mask",neck="Ej Necklace",ear1="Heartseeker Earring",ear2="Dudgeon Earring", body="Luhlaza Jubbah",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring", back="Letalis Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Qaaxo Leggings"} sets.engaged.DW.Refresh = {ammo="Jukukik Feather", head="Whirlpool Mask",neck="Asperity Necklace",ear1="Heartseeker Earring",ear2="Dudgeon Earring", body="Hagondes Coat +1",hands="Assimilator's Bazubands +1",ring1="Rajas Ring",ring2="Epona's Ring", back="Letalis Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Qaaxo Leggings"} sets.engaged.Learning = set_combine(sets.engaged, sets.Learning) sets.engaged.DW.Learning = set_combine(sets.engaged.DW, sets.Learning) sets.self_healing = {ring1="Aquasoul Ring",ring2="Asklepian Ring"} 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) if unbridled_spells:contains(spell.english) and not state.Buff['Unbridled Learning'] then eventArgs.cancel = true windower.send_command('@input /ja "Unbridled Learning" <me>; wait 1.5; input /ma "'..spell.name..'" '..spell.target.name) end end -- Run after the default midcast() is done. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted. function job_post_midcast(spell, action, spellMap, eventArgs) -- Add enhancement gear for Chain Affinity, etc. if spell.skill == 'Blue Magic' then for buff,active in pairs(state.Buff) do if active and sets.buff[buff] then equip(sets.buff[buff]) end end if spellMap == 'Healing' and spell.target.type == 'SELF' and sets.self_healing then equip(sets.self_healing) end end -- If in learning mode, keep on gear intended to help with that, regardless of action. if state.OffenseMode.value == 'Learning' then equip(sets.Learning) 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 state.Buff[buff] ~= nil then state.Buff[buff] = gain end end ------------------------------------------------------------------------------------------------------------------- -- User code that supplements standard library decisions. ------------------------------------------------------------------------------------------------------------------- -- Custom spell mapping. -- Return custom spellMap value that can override the default spell mapping. -- Don't return anything to allow default spell mapping to be used. function job_get_spell_map(spell, default_spell_map) if spell.skill == 'Blue Magic' then for category,spell_list in pairs(blue_magic_maps) do if spell_list:contains(spell.english) then return category end end end end -- Modify the default idle set after it was constructed. function customize_idle_set(idleSet) if player.mpp < 51 then set_combine(idleSet, sets.latent_refresh) end return idleSet 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) update_combat_form() end ------------------------------------------------------------------------------------------------------------------- -- Utility functions specific to this job. ------------------------------------------------------------------------------------------------------------------- function update_combat_form() -- Check for H2H or single-wielding if player.equipment.sub == "Genbu's Shield" or player.equipment.sub == 'empty' then state.CombatForm:reset() else state.CombatForm:set('DW') end end -- Select default macro book on initial load or subjob change. function select_default_macro_book() -- Default macro set/book if player.sub_job == 'DNC' then set_macro_page(2, 7) else set_macro_page(1, 7) end end This is my lua after the fixes I have made. Are you saying this file needs to be in the lib folder and not the data folder? Your JOB.lua file is fine in the data folder.
I actually tested your BLU.lua and it's working just fine for me, except that I don't own any augmented Helios or Telchine gear. Do you own any augmented Helios or Telchine gear? There's been reports that augmented Skirmish gear hasn't been equipping correctly but I'm not sure if that's been fixed or not. Offline
Posts: 42
If this has been asked before Sorry.... However, I am swapping gear to fast when skill chaining with others and myself. I don’t see the Animation and others say the same thing, but I know I am doing it at the proper time.
An example would be great thanks! inkydo said: » If this has been asked before Sorry.... However, I am swapping gear to fast when skill chaining with others and myself. I don’t see the Animation and others say the same thing, but I know I am doing it at the proper time. An example would be great thanks! The animation won't show up if you have effects off during battle. Skillchain damage doesn't show up in chat log if you blink. Check your settings and try when having lockstyle on. Edit: actually, when rereading your post I'm a little confused what you mean. It doesn't matter if you swap gear too fast, you will still skillchain. Offline
Posts: 42
Odin.Tamoa said: » inkydo said: » If this has been asked before Sorry.... However, I am swapping gear to fast when skill chaining with others and myself. I don’t see the Animation and others say the same thing, but I know I am doing it at the proper time. An example would be great thanks! The animation won't show up if you have effects off during battle. Skillchain damage doesn't show up in chat log if you blink. Check your settings and try when having lockstyle on. Edit: actually, when rereading your post I'm a little confused what you mean. It doesn't matter if you swap gear too fast, you will still skillchain. I cannot see the animation of the skillchain... I am also not seeing the dmg. Lockstyle only works if I don’t use Shurikens, as I still blink even if lockstyle is on. So before I used GS I use to give my In-game macros a wait command to allow the animation catch-up to the gear swaps even the in game will cause this to happen. It is a simple fix to allow a wait before you switch back to TP gear. Does that clear it up, Sorry I confuse many people all the time, especially when typing. |
||
All FFXI content and images © 2002-2024 SQUARE ENIX CO., LTD. FINAL
FANTASY is a registered trademark of Square Enix Co., Ltd.
|