|
Gearswap Support Thread
Server: Sylph
Game: FFXI
Posts: 3
By Sylph.Yuuzuki 2018-03-25 05:27:43
I've activated Gear Swap and prepared the lua file for my PUP and BRD with the gearsets. It loaded successfully ingame. However no gear is changed at all.
I tried it on both jobs, casting, resting, fighting, using WS, songs, cures... No gearchange.
I tried if maybe I need this "libs" folder with the "Mote..." luas but with or without it, it doesn't work.
Here is my PUP lua file.
https://www.dropbox.com/s/bztk02ineyh9dn6/Yuuzuki_PUP_gear.lua?dl=0
Is there any obvious setting that I might have to set somewhere which causes it to not work at all? What can I do to make it work?
By Nyarlko 2018-03-25 11:05:12
From what I can see in that file, there isn't any equipment logic included. Basically, you have defined the sets, and setup canceling buffs when you are recasting them.. and that's it.
Server: Sylph
Game: FFXI
Posts: 3
By Sylph.Yuuzuki 2018-03-26 11:46:03
Okay, that makes totally sense XD Thanks, I'll compare with other files how to set those logics up! ö.ö
Quetzalcoatl.Jaqbauer
Server: Quetzalcoatl
Game: FFXI
Posts: 8
By Quetzalcoatl.Jaqbauer 2018-03-26 19:51:57
I'm bad with computers and new to Gearswap. I managed to download the Kinematics THF file and just replaced the gear with what I had. It looks like everything is working except for the Elemental Gorgets. I only have Soil and Thunder, but I'm not sure what I should be doing. I tried to manually enter Soil and Thunder when applicable, and that didn't work. So I switched back to the elemental.gorget format but that doesn't work either. I seem to be stuck using PCA for all WS. Any tips are appreciated. I'm bad at this stuff.
Code -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
--[[
Custom commands:
gs c cycle treasuremode (set on ctrl-= by default): Cycles through the available treasure hunter modes.
Treasure hunter modes:
None - Will never equip TH gear
Tag - Will equip TH gear sufficient for initial contact with a mob (either melee, ranged hit, or Aeolian Edge AOE)
SATA - Will equip TH gear sufficient for initial contact with a mob, and when using SATA
Fulltime - Will keep TH gear equipped fulltime
--]]
-- 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['Sneak Attack'] = buffactive['sneak attack'] or false
state.Buff['Trick Attack'] = buffactive['trick attack'] or false
state.Buff['Feint'] = buffactive['feint'] or false
include('Mote-TreasureHunter')
-- For th_action_check():
-- JA IDs for actions that always have TH: Provoke, Animated Flourish
info.default_ja_ids = S{35, 204}
-- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
info.default_u_ja_ids = S{201, 202, 203, 205, 207}
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', 'Mod')
state.HybridMode:options('Normal', 'Evasion', 'PDT')
state.RangedMode:options('Normal', 'Acc')
state.WeaponskillMode:options('Normal', 'Acc', 'Mod')
state.PhysicalDefenseMode:options('Evasion', 'PDT')
gear.default.weaponskill_neck = "Peacock Amulet"
gear.default.weaponskill_waist = "Life Belt"
gear.AugQuiahuiz = {}
-- Additional local binds
send_command('bind ^` input /ja "Flee" <me>')
send_command('bind ^= gs c cycle treasuremode')
send_command('bind !- gs c cycle targetmode')
select_default_macro_book()
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !-')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Special sets (required by rules)
--------------------------------------
sets.TreasureHunter = {}
sets.ExtraRegen = {}
sets.Kiting = {}
sets.buff['Sneak Attack'] = {
head="Empress Hairpin",neck="Spike Necklace",ear1="Brutal Earring",ear2="Dodge Earring",
body="Assault Jerkin",hands="Rogue's Armlets",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Behemoth Mantle",waist="Life Belt",legs="Rogue's Culottes",feet="Rogue's Poulaines"}
sets.buff['Trick Attack'] = {
head="Empress Hairpin",neck="Spike Necklace",ear1="Brutal Earring",ear2="Dodge Earring",
body="Assault Jerkin",hands="Rogue's Armlets",ring1="Bastokan Ring",ring2="Windurstian Ring",
back="Behemoth Mantle",waist="Life Belt",legs="Rogue's Culottes",feet="Rogue's Poulaines"}
-- Actions we want to use to tag TH.
sets.precast.Step = sets.TreasureHunter
sets.precast.Flourish1 = sets.TreasureHunter
sets.precast.JA.Provoke = sets.TreasureHunter
--------------------------------------
-- Precast sets
--------------------------------------
-- Precast sets to enhance JAs
sets.precast.JA['Collaborator'] = {}
sets.precast.JA['Accomplice'] = {}
sets.precast.JA['Flee'] = {feet="Rogue's Poulaines"}
sets.precast.JA['Hide'] = {body="Rogue's Vest"}
sets.precast.JA['Conspirator'] = {}
sets.precast.JA['Steal'] = {head="Rogue's Bonnet",hands="Rogue's Armlets",legs="Rogue's Culottes",feet="Rogue's Poulaines"}
sets.precast.JA['Despoil'] = {}
sets.precast.JA['Perfect Dodge'] = {}
sets.precast.JA['Feint'] = {}
sets.precast.JA['Sneak Attack'] = sets.buff['Sneak Attack']
sets.precast.JA['Trick Attack'] = sets.buff['Trick Attack']
-- Waltz set (chr and vit)
sets.precast.Waltz = {
feet="Savage Gaiters"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Fast cast sets for spells
sets.precast.FC = {ear2="Loquacious Earring",legs="Homam Cosciales"}
sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {})
-- Ranged snapshot gear
sets.precast.RA = {}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
head="Optical Hat",neck=gear.ElementalGorget,ear1="Brutal Earring",ear2="Dodge Earring",
body="Assault Jerkin",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Behemoth Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
sets.precast.WS.Acc = set_combine(sets.precast.WS, {})
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {body="Homam Corazza"})
sets.precast.WS['Exenterator'].Acc = set_combine(sets.precast.WS['Exenterator'], {body="Homam Corazza"})
sets.precast.WS['Exenterator'].Mod = set_combine(sets.precast.WS['Exenterator'], {})
sets.precast.WS['Exenterator'].SA = set_combine(sets.precast.WS['Exenterator'].Mod, {})
sets.precast.WS['Exenterator'].TA = set_combine(sets.precast.WS['Exenterator'].Mod, {})
sets.precast.WS['Exenterator'].SATA = set_combine(sets.precast.WS['Exenterator'].Mod, {})
sets.precast.WS['Dancing Edge'] = set_combine(sets.precast.WS, {body="Homam Corazza"})
sets.precast.WS['Dancing Edge'].Acc = set_combine(sets.precast.WS['Dancing Edge'], {body="Homam Corazza"})
sets.precast.WS['Dancing Edge'].Mod = set_combine(sets.precast.WS['Dancing Edge'], {})
sets.precast.WS['Dancing Edge'].SA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {})
sets.precast.WS['Dancing Edge'].TA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {})
sets.precast.WS['Dancing Edge'].SATA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {})
sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {body="Homam Corazza"})
sets.precast.WS['Evisceration'].Acc = set_combine(sets.precast.WS['Evisceration'], {body="Homam Corazza"})
sets.precast.WS['Evisceration'].Mod = set_combine(sets.precast.WS['Evisceration'], {})
sets.precast.WS['Evisceration'].SA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
sets.precast.WS['Evisceration'].TA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
sets.precast.WS['Evisceration'].SATA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
sets.precast.WS["Rudra's Storm"] = set_combine(sets.precast.WS, {body="Homam Corazza"})
sets.precast.WS["Rudra's Storm"].Acc = set_combine(sets.precast.WS["Rudra's Storm"], {body="Homam Corazza"})
sets.precast.WS["Rudra's Storm"].Mod = set_combine(sets.precast.WS["Rudra's Storm"], {})
sets.precast.WS["Rudra's Storm"].SA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {})
sets.precast.WS["Rudra's Storm"].TA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {})
sets.precast.WS["Rudra's Storm"].SATA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {})
sets.precast.WS["Shark Bite"] = set_combine(sets.precast.WS, {})
sets.precast.WS['Shark Bite'].Acc = set_combine(sets.precast.WS['Shark Bite'], {body="Homam Corazza"})
sets.precast.WS['Shark Bite'].Mod = set_combine(sets.precast.WS['Shark Bite'], {})
sets.precast.WS['Shark Bite'].SA = set_combine(sets.precast.WS['Shark Bite'].Mod, {})
sets.precast.WS['Shark Bite'].TA = set_combine(sets.precast.WS['Shark Bite'].Mod, {})
sets.precast.WS['Shark Bite'].SATA = set_combine(sets.precast.WS['Shark Bite'].Mod, {})
sets.precast.WS['Mandalic Stab'] = set_combine(sets.precast.WS, {})
sets.precast.WS['Mandalic Stab'].Acc = set_combine(sets.precast.WS['Mandalic Stab'], {body="Homam Corazza"})
sets.precast.WS['Mandalic Stab'].Mod = set_combine(sets.precast.WS['Mandalic Stab'], {})
sets.precast.WS['Mandalic Stab'].SA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {})
sets.precast.WS['Mandalic Stab'].TA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {})
sets.precast.WS['Mandalic Stab'].SATA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {})
sets.precast.WS['Aeolian Edge'] = {}
sets.precast.WS['Aeolian Edge'].TH = set_combine(sets.precast.WS['Aeolian Edge'], sets.TreasureHunter)
--------------------------------------
-- Midcast sets
--------------------------------------
sets.midcast.FastRecast = {
head="Walahra Turban",ear2="Loquacious Earring",
body="Rapparee Harness",hands="Homam Manopolas",
legs="Homam Cosciales",feet="Homam Gambieras"}
-- Specific spells
sets.midcast.Utsusemi = {}
-- Ranged gear
sets.midcast.RA = {}
sets.midcast.RA.Acc = {}
--------------------------------------
-- Idle/resting/defense sets
--------------------------------------
-- Resting sets
sets.resting = {}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle = {
head="Walahra Turban",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Musical Earring",
body="Homam Corazza",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Boxer's Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Trotter Boots"}
sets.idle.Town = {
head="Walahra Turban",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Musical Earring",
body="Homam Corazza",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Boxer's Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Trotter Boots"}
sets.idle.Weak = {
head="Walahra Turban",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Musical Earring",
body="Homam Corazza",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Boxer's Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Trotter Boots"}
-- Defense sets
sets.defense.Evasion = {
head="Optical Hat",ear2="Musical Earring",back="Boxer's Mantle"}
sets.defense.PDT = {head="Optical Hat",ear2="Musical Earring",back="Boxer's Mantle"}
sets.defense.MDT = {head="Optical Hat",ear2="Musical Earring",back="Boxer's Mantle"}
--------------------------------------
-- Melee sets
--------------------------------------
-- Normal melee group
sets.engaged = {
head="Walahra Turban",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Dodge Earring",
body="Rapparee Harness",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Behemoth Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
sets.engaged.Acc = {
head="Optical Hat",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Dodge Earring",
body="Homam Corazza",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Behemoth Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
-- Mod set for trivial mobs (Skadi+1)
sets.engaged.Mod = {
head="Walahra Turban",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Dodge Earring",
body="Rapparee Harness",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Behemoth Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
-- Mod set for trivial mobs (Thaumas)
sets.engaged.Mod2 = {
head="Walahra Turban",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Dodge Earring",
body="Rapparee Harness",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Behemoth Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
sets.engaged.Evasion = {
head="Optical Hat",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Musical Earring",
body="Rapparee Harness",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Boxer's Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
sets.engaged.Acc.Evasion = {
head="Optical Hat",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Musical Earring",
body="Homam Corazza",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Boxer's Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
sets.engaged.PDT = {
head="Optical Hat",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Musical Earring",
body="Homam Corazza",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Boxer's Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
sets.engaged.Acc.PDT = {
head="Optical Hat",neck="Peacock Amulet",ear1="Brutal Earring",ear2="Musical Earring",
body="Homam Corazza",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Boxer's Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Run after the general precast() is done.
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.english == 'Aeolian Edge' and state.TreasureMode.value ~= 'None' then
equip(sets.TreasureHunter)
elseif spell.english=='Sneak Attack' or spell.english=='Trick Attack' or spell.type == 'WeaponSkill' then
if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
equip(sets.TreasureHunter)
end
end
end
-- Run after the general midcast() set is constructed.
function job_post_midcast(spell, action, spellMap, eventArgs)
if state.TreasureMode.value ~= 'None' and spell.action_type == 'Ranged Attack' then
equip(sets.TreasureHunter)
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
-- Weaponskills wipe SATA/Feint. Turn those state vars off before default gearing is attempted.
if spell.type == 'WeaponSkill' and not spell.interrupted then
state.Buff['Sneak Attack'] = false
state.Buff['Trick Attack'] = false
state.Buff['Feint'] = false
end
end
-- Called after the default aftercast handling is complete.
function job_post_aftercast(spell, action, spellMap, eventArgs)
-- If Feint is active, put that gear set on on top of regular gear.
-- This includes overlaying SATA gear.
check_buff('Feint', eventArgs)
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
if not midaction() then
handle_equipping_gear(player.status)
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
function get_custom_wsmode(spell, spellMap, defaut_wsmode)
local wsmode
if state.Buff['Sneak Attack'] then
wsmode = 'SA'
end
if state.Buff['Trick Attack'] then
wsmode = (wsmode or '') .. 'TA'
end
return wsmode
end
-- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
function job_handle_equipping_gear(playerStatus, eventArgs)
-- Check that ranged slot is locked, if necessary
check_range_lock()
-- Check for SATA when equipping gear. If either is active, equip
-- that gear specifically, and block equipping default gear.
check_buff('Sneak Attack', eventArgs)
check_buff('Trick Attack', eventArgs)
end
function customize_idle_set(idleSet)
if player.hpp < 80 then
idleSet = set_combine(idleSet, sets.ExtraRegen)
end
return idleSet
end
function customize_melee_set(meleeSet)
if state.TreasureMode.value == 'Fulltime' then
meleeSet = set_combine(meleeSet, sets.TreasureHunter)
end
return meleeSet
end
-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
th_update(cmdParams, eventArgs)
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)
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.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
msg = msg .. ', TH: ' .. state.TreasureMode.value
add_to_chat(122, msg)
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- State buff checks that will equip buff gear and mark the event as handled.
function check_buff(buff_name, eventArgs)
if state.Buff[buff_name] then
equip(sets.buff[buff_name] or {})
if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
equip(sets.TreasureHunter)
end
eventArgs.handled = true
end
end
-- Check for various actions that we've specified in user code as being used with TH gear.
-- This will only ever be called if TreasureMode is not 'None'.
-- Category and Param are as specified in the action event packet.
function th_action_check(category, param)
if category == 2 or -- any ranged attack
--category == 4 or -- any magic action
(category == 3 and param == 30) or -- Aeolian Edge
(category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
(category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
then return true
end
end
-- Function to lock the ranged slot if we have a ranged weapon equipped.
function check_range_lock()
if player.equipment.range ~= 'empty' then
disable('range', 'ammo')
else
enable('range', 'ammo')
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(3, 1)
elseif player.sub_job == 'WAR' then
set_macro_page(1, 1)
elseif player.sub_job == 'NIN' then
set_macro_page(5, 1)
else
set_macro_page(1, 1)
end
end
[+]
By Asura.Summerl 2018-03-27 10:21:23
Anybody ever have an issue with their tilda binds not functioning? both my control/alt keys as well as the tilda key function without issue independently of each other, and my other binds seem to work just fine. I'm also making sure all my other binds are unloading with job changes, but my tilda binds just stopped working out of nowhere.
Any ideas?
By Squabble 2018-03-27 11:21:36
Anybody ever have an issue with their tilda binds not functioning? both my control/alt keys as well as the tilda key function without issue independently of each other, and my other binds seem to work just fine. I'm also making sure all my other binds are unloading with job changes, but my tilda binds just stopped working out of nowhere.
Any ideas?
Are you sure it's not bound to something that doesn't print a message in one of your libs files maybe?
By Nyarlko 2018-03-27 14:34:29
Anybody ever have an issue with their tilda binds not functioning? both my control/alt keys as well as the tilda key function without issue independently of each other, and my other binds seem to work just fine. I'm also making sure all my other binds are unloading with job changes, but my tilda binds just stopped working out of nowhere.
Any ideas?
I don't think you can use something like ctrl+~ as your bind. That requires hitting the shift key too. XD
By Asura.Summerl 2018-03-27 16:07:36
Ah that's more a case of me mis-identifying the key, it's whatever this ` glyph goes by (commonly seen in a lot of lua keybinds as ^`)
By Nyarlko 2018-03-27 21:43:14
Ah that's more a case of me mis-identifying the key, it's whatever this ` glyph goes by (commonly seen in a lot of lua keybinds as ^`) No worries. I only brought it up because I've seen someone else make that mistake. lol
Standard troubleshooting time!
Have you installed any new addons recently?
Have you changed any job files recently?
Have you verified that it's not a hardware issue with your keyboard?
Have you tried unloading all addons, then loading gearswap?
Have you tried adding an echo keybind to an otherwise working jobfile to verify that it's not a conflict somewhere in your normal files?
Quetzalcoatl.Jaqbauer
Server: Quetzalcoatl
Game: FFXI
Posts: 8
By Quetzalcoatl.Jaqbauer 2018-03-28 07:37:02
I've continued to try and troubleshoot the neck piece not changing during my WS. I haven't touched any of the Mote files and I'm not sure what else to do. My goal is to use Peacock Amulet anytime an Elemental Gorget (I only have Soil and Thunder) isn't appropriate. I keep coming back to these two spots in the code:
Code gear.default.weaponskill_neck = "Peacock Amulet"
gear.default.weaponskill_waist = "Life Belt"
gear.AugQuiahuiz = {}
Code -- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
head="Optical Hat",neck=gear.ElementalGorget,ear1="Brutal Earring",ear2="Dodge Earring",
body="Assault Jerkin",hands="Homam Manopolas",ring1="Bastokan Ring",ring2="San d'Orian Ring",
back="Behemoth Mantle",waist="Life Belt",legs="Homam Cosciales",feet="Homam Gambieras"}
sets.precast.WS.Acc = set_combine(sets.precast.WS, {})
If anyone can shed some light on my mistake, I would appreciate it. I know it's something I've done or am not doing, but I'm out of my depth with this stuff and don't know what else to try.
Asura.Tafari
Server: Asura
Game: FFXI
Posts: 34
By Asura.Tafari 2018-03-28 12:03:35
Hello!
anyone can help me and tell me how to remove that "cancel WS if you are not engaged rule ?
many thanks!!
Code function precast(spell,action)
if spell.type == "WeaponSkill" then
if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
cancel_spell()
add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
return
else
equipSet = sets.WS
if equipSet[spell.english] then
equipSet = equipSet[spell.english]
end
if Attack == 'ON' then
equipSet = equipSet["ATT"]
end
if equipSet[AccArray[AccIndex]] then
equipSet = equipSet[AccArray[AccIndex]]
end
if elements[spell.name] and elements[spell.name]:contains(world.day_element) then
equipSet = set_combine(equipSet,elements.equip)
end
if buffactive["Mighty Strikes"] then -- Equip MS_WS Set When You Have Mighty Strikes On --
equipSet = set_combine(equipSet,sets.MS_WS)
end
if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
end
if (spell.english == "Ukko's Fury" or spell.english == "King's Justice") and (player.tp > 2990 or buffactive.Sekkanoki) then
if world.time <= (7*60) or world.time >= (17*60) then -- 3000 TP or Sekkanoki: Equip Lugra Earring +1 From Dusk To Dawn --
equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"})
else
equipSet = set_combine(equipSet,{ear1="Kokou's Earring"}) -- 3000 TP or Sekkanoki: Equip Kokou's Earring --
end
end
if spell.english == "Upheaval" then
if world.day_element == 'Dark' then -- Equip Shadow Mantle On Darksday --
equipSet = set_combine(equipSet,{back="Shadow Mantle"})
end
if player.tp > 2990 or buffactive.Sekkanoki then
if world.time <= (7*60) or world.time >= (17*60) then -- 3000 TP or Sekkanoki: Equip Lugra Earring +1 From Dusk To Dawn --
equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"})
else
equipSet = set_combine(equipSet,{ear1="Terra's Pearl"}) -- 3000 TP or Sekkanoki: Equip Terra's Earring --
end
end
end
equip(equipSet)
end
elseif spell.type == "JobAbility" then
if sets.JA[spell.english] then
equip(sets.JA[spell.english])
end
elseif spell.action_type == 'Magic' then
if spell.english == 'Utsusemi: Ni' then
if buffactive['Copy Image (3)'] then
cancel_spell()
add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
return
else
equip(sets.Precast.FastCast)
end
else
equip(sets.Precast.FastCast)
end
elseif spell.type == "Waltz" then
refine_waltz(spell,action)
equip(sets.Waltz)
elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
cast_delay(0.2)
send_command('cancel Sneak')
end
if Twilight == 'Twilight' then
equip(sets.Twilight)
end
end
By Nyarlko 2018-03-28 13:42:56
@ Jaqbaueur: Insert your default neckpiece in-between head/gorgets. Code head="Optical Hat", neck=gear.default.weaponskill_neck, neck=gear.ElementalGorget,
Since gearswap builds from left>right, if the item on the right doesn't exist, then it should stick with the item on the left. I intentionally build non-Mote files though, so possible it won't work for you maybe. :/
@Tafari: I have no idea why you'd want to remove that code, but you can do so by deleting lines 3-7.
Quetzalcoatl.Xilkk
Server: Quetzalcoatl
Game: FFXI
Posts: 1419
By Quetzalcoatl.Xilkk 2018-03-28 13:47:41
Probably trying to do Myrkr
Shiva.Znitch
Server: Shiva
Game: FFXI
Posts: 191
By Shiva.Znitch 2018-03-28 14:18:27
anyone can help me and tell me how to remove that "cancel WS if you are not engaged rule ? Quetzalcoatl.Xilkk said: »Probably trying to do Myrkr It's also helpful for the Erinys fight if going the THF route, any reduction in TP feed to the main NM is helpful (even turning away in between WS generally results in 1-2 auto-attacks). I personally like removing the rule on ranged jobs as well, instead of having to engage before Leaden Statues in Dynamis if I have TP saved up already.
Server: Asura
Game: FFXI
Posts: 4
By Asura.Vishual 2018-03-29 20:53:27
Is there a way to use a certain set for avatar BP when AM3 is up using a mote lua?
I dont know how to generally change the bp-mode either, like how to make avatar use an acc set for bp.
Asura.Diggs
Server: Asura
Game: FFXI
Posts: 98
By Asura.Diggs 2018-03-29 21:27:49
I'm sorry if this have been answered tons of times before, but could not get things to work (by copy/paste rules from other job-lua) so have to ask specifically as I'm no coder :/
I just really want to equip different sets.engaged for my GK's.
Aka, if I equip Amano, Koga or Masa, it should automatically determine and automatically use the corresponding engaged sets
sets.engaged.Kogarasemaru
sets.engaged.Masamune
sets.engaged.Amanomuakumo
Super happy if anyone could help me out or point me to a post where it's been posted before (google/search didn't do it for me)
EDIT: Maybe it's just easier to ask if anyone have a SAM-lua with rules for different GK's ?
EDIT: SOLVED
Added some rules from Fiv's war lua
update_combat_weapon()
Asura.Dagget
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-02 21:49:25
Hello, all. Beginner to gearswap. Im having an error.
I was able to setup one account just fine, but have an error in my geo.lua.
Quote: Lua Runtime Error: Gearswap/flow/lua:345:
Gearswap detected an error in the user function get_sets:
/libs/sel-utility/lua:609:
Error Loading File /halfmans_geo_gear_lua:342: '}' expected near 's'
Questions I have are; What program (free) can I use to see numbers on the line of code? Am I correct in assuming the "342" in the above errors are the lines of code the error is in?
By Sockfoot 2018-04-02 21:55:50
Sublime Text is a great editor. While not technically free, it will never stop you from using it and will nag you every ~10 saves with a screen. Atom is a great free replacement, but not as nice (still damn nice).
And yes.
[+]
Ragnarok.Lockfort
Server: Ragnarok
Game: FFXI
Posts: 252
By Ragnarok.Lockfort 2018-04-02 21:57:34
Asura.Dagget
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-02 22:12:58
Ok, so Ive think I found the problem. on line 342 in the sub category when I try this:
sets.weapons.Solstice = {main='Solstice',sub='Chanter's Shield'}
It doesnt like the ' in Chanter's and seem give me and error because in notepad ++ the text after the ' is bold and not grey'd out which I assume means its working.
Anyone know why it wouldnt like the ' in chanter's shield or how to fix this line?
Asura.Dagget
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-02 22:26:18
Ahhhaaaa! I figuered it out myself. Ive learned it doesnt like ' within items wrapped already in ', I had to use " to wrap the equip with ' in their names. So much to learn.
Server: Shiva
Game: FFXI
Posts: 1052
By Shiva.Arislan 2018-04-03 07:37:49
Another way would be to escape the apostrophe: 'Chanter\'s Shield'
Asura.Dagget
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-03 10:50:45
Another way would be to escape the apostrophe: 'Chanter\'s Shield'
Interesting. Thanks.
Quetzalcoatl.Darsha
Server: Quetzalcoatl
Game: FFXI
By Quetzalcoatl.Darsha 2018-04-03 17:59:17
Is there a way to write a function that would make you swap between two different sets of TP and WS sets depending on what food you were under the effects of?
For example, I can make a true 5-hit build using Carbonara, but it would require different store TP and haste gear to optimize the amount of offensive stats I would receive while using that food. But say I need the accuracy instead and have to opt for marinara pizza, now I would need more STP in slots to compensate for the lack of STP on my food. Anyone know if there's a way to code this in Gearswap or React?
Asura.Dagget
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-04 00:02:29
When putting gear in what is the correct way to type the names out. Example: "Futhark Bandeau +1" is written in your inventory as "Fu. Bandeau +1".
What is the correct way to type Futhark Bandeau +1? or will both work?
By Nyarlko 2018-04-04 00:07:29
When putting gear in what is the correct way to type the names out. Example: "Futhark Bandeau +1" is written in your inventory as "Fu. Bandeau +1".
What is the correct way to type Futhark Bandeau +1? or will both work?
You always have to use the short form that it displays in your inventory.
[+]
Server: Cerberus
Game: FFXI
Posts: 241
By Cerberus.Mrkillface 2018-04-04 00:09:51
GS will usually accept both, but if you want, you can equip it enter //gs export and GS will spit out your current gear set in a new file and place it in the export folder. Then you can just copy paste.
[+]
Asura.Dagget
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-04 00:16:06
You always have to use the short form that it displays in your inventory.
Ok, thanks. Thought I read that somewhere.
Cerberus.Mrkillface said: »GS will usually accept both, but if you want, you can equip it enter //gs export and GS will spit out your current gear set in a new file and place it in the export folder. Then you can just copy paste.
Thanks
Server: Asura
Game: FFXI
Posts: 716
By Asura.Chaostaru 2018-04-05 11:16:45
does GS need to be updated?
export for new cape augs does this.
back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','Crit.hit rate+10','System: 1 ID: 1158 Val: 4',}},
Ragnarok.Lockfort
Server: Ragnarok
Game: FFXI
Posts: 252
By Ragnarok.Lockfort 2018-04-05 11:40:45
Have you updated your resources by opening up windower, then logging out and back in?
Just looking for someone to explain this addon a bit for me. It looks like it is an alternative to Spellcast.
Is it going to be replacing Spellcast? In which ways is it better or worse. I don't know any programming but I've slowly learned more and more about spellcast and the 'language' used in gearswap is confusing to me.
It says it uses packets so it potentially could be more detectable? but does that also eliminate any lag that spellcast may encounter?
I plan on redoing my PUP xml to include pet casting sets thanks to the new addon petschool. I'm just not sure if it's worth it to just wait until gearswap gets more popular or to go ahead and do it in spellcast.
If anyone could give me more info I'd greatly appreciate it.
|
|