|
Gearswap Support Thread
Asura.Kazaki
Server: Asura
Game: FFXI
Posts: 121
By Asura.Kazaki 2018-06-29 06:58:47
Ah yes oops, didn't have the /ma on there.
Added that in but now I seem to get another error which I'm having trouble understanding and fixing. The code now looks like this
Code if
player.status=='Engaged' and spell.target.type=="MONSTER" then
cancel_spell()
send_command('input /ma "' .. spell.name .. '" '<stnpc>';')
end
And getting the error 'attempt to compare string with nil'.
Any ideas?
Am I using <stnpc> correctly in there? I cant seem to find documentation that shows how to use it properly
Carbuncle.Kigensuro
Server: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-06-29 16:35:22
send_command('input /ma "' .. spell.name .. '" '<stnpc>';') again this is wrong
send_command('input /ma "' .. spell.name .. '" '<stnpc>';')
it should be
send_command('input /ma "' .. spell.name .. '" <stnpc>')
-<stnpc> is an ffxi string not a gearswap command
it might be that spell.target.type is borked but i dont know
Server: Siren
Game: FFXI
Posts: 1028
By Siren.Demetreos 2018-07-02 08:57:04
I'm looking to set something up where Gearswap picks a 'Normal' engaged set based on what weapon is equipped, rather than having to F9 through all the different engaged modes to get to the one for that weapon.
I'm close to getting it, but something is mucking up somewhere. The game doesn't want to auto update any state changes and I seem to have to use F12 to get it to do it.
If I put send_command('gs c update auto') in function update_combat_form it seems to work fine, however it reduces my games FPS pretty drastically every couple of seconds. 'gs c update user' just spams the chat log with the update message a dozen or so times a second and no swaps actually take place.
So I have no idea.
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
function binds_on_load()
send_command('bind ^z gs c mainweapon')
send_command('bind f12 gs c update user')
end
send_command('wait 6;input /lockstyleset 4')
function job_setup()
state.mainweapon = M{['description'] = 'Main Weapon'}
--state.mainweapon:options('Ragnarok', 'Anguta', 'Caladbolg', 'Apocalypse')
state.mainweapon:options('Ragnarok', 'Anguta', 'Caladbolg', 'Apocalypse')
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', 'PDT') -- F9 to toggle.
state.IdleMode:options('Normal', 'PDT') -- CTRL+F12 to toggle
GreatSword_weapons = S{'Ragnarok', 'Caladbolg'}
Scythe_weapons = S{'Anguta', 'Apocalypse'}
update_combat_form()
select_default_macro_book()
end
function file_unload()
if binds_on_unload then
binds_on_unload()
end
end
sets.mainweapon = {}
sets.mainweapon.Ragnarok = {
main="Ragnarok",
sub="Bloodrain Strap"
}
sets.mainweapon.Anguta = {
main="Anguta",
sub="Bloodrain Strap"
}
sets.mainweapon.Caladbolg = {
main="Caladbolg",
sub="Bloodrain Strap"
}
sets.mainweapon.Apocalypse = {
main="Apocalypse",
sub="Bloodrain Strap"
}
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA['Diabolic Eye'] = {}
sets.precast.JA['Arcane Circle'] = {feet="Ignominy Sollerets +2"}
sets.precast.JA['Nether Void'] = {legs="Heathen's Flanchard"}
sets.precast.JA['Souleater'] = {head="Ignominy Burgeonet +2"}
sets.precast.JA['Weapon Bash'] = {hands="Ignominy Gauntlets +1"}
sets.precast.JA['Last Resort'] = {back="Ankou's Mantle", feet="Fallen's Sollerets +1"}
sets.precast.JA['Dark Seal'] = {head="Fallen's Burgeonet"}
sets.precast.JA['Blood Weapon'] = {head="Fallen's Cuirass"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {}
-- Fast cast sets for spells
-- Precast Sets
sets.precast.FC = {
ammo="Impatiens",
ear2="Loquac. Earring",
legs="Eschite Cuisses",
feet="Carmine Greaves",
back={ name="Ankou's Mantle", augments={'"Fast Cast"+10',}},
}
sets.precast.FC['Impact'] = set_combine(sets.precast.FC, {head=empty, body="Twilight Cloak"})
sets.precast['Dark Magic'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet"})
-- Specific spells
sets.midcast.DarkMagic = {
ammo="Pemphredo Tathlum",
head="Igno. Burgeonet +2",
neck="Erra Pendant",
ear1="Abyssal Earring",
ear2="Dark Earring",
body="Carm. Scale Mail",
hands="Redan Gloves",
back={ name="Niht Mantle", augments={'Attack+8','Dark magic skill +9','"Drain" and "Aspir" potency +12',}},
waist="Casso Sash",
legs="Fallen Flanchard",
feet="Odyssean Greaves",
ring1="Stikini Ring",
ring2="Stikini Ring",
}
sets.midcast.Endark = {
ammo="Pemphredo Tathlum",
head="Igno. Burgeonet +2",
neck="Erra Pendant",
ear1="Abyssal Earring",
ear2="Dark Earring",
body="Carm. Scale Mail",
hands="Redan Gloves",
back={ name="Niht Mantle", augments={'Attack+8','Dark magic skill +9','"Drain" and "Aspir" potency +12',}},
waist="Casso Sash",
legs="Eschite Cuisses",
feet="Odyssean Greaves",
ring1="Stikini Ring",
ring2="Stikini Ring",
}
sets.midcast['Endark II'] = sets.midcast.Endark
sets.midcast['Dread Spikes'] = set_combine(sets.midcast.DarkMagic, {
head="Ig. Burgonet +2",
body="Heathen's Cuirass",
hands="Flam. Manopolas +2",
legs="Flamma Dirs +2",
feet="Flam. Gambieras +2"
})
sets.midcast['Elemental Magic'] = {}
sets.midcast['Enfeebling Magic'] = {
head="Flam. Zucchetto +2",
body="Ignominy Cuirass +2",
hands="Flam. Manopolas +2",
legs="Flamma Dirs +2",
feet="Flam. Gambieras +2",
wasit="Casso Sash",
back="Chuparrosa Mantle",
neck="Incanter's Torque",
}
sets.midcast.Stun = {}
sets.midcast.Absorb = {
ammo="Pemphredo Tathlum",
head="Igno. Burgeonet +2",
neck="Erra Pendant",
ear1="Abyssal Earring",
ear2="Dark Earring",
body="Carm. Scale Mail",
hands="Heath. Gauntlets",
back="Chuparrosa Mantle",
waist="Casso Sash",
legs="Eschite Cuisses",
feet="Odyssean Greaves",
ring1="Stikini Ring",
ring2="Stikini Ring",
}
sets.midcast.Drain = {
ammo="Pemphredo Tathlum",
head="Igno. Burgeonet +2",
body="Carm. Scale Mail",
neck="Erra Pendant",
ear1="Abyssal Earring",
ear2="Dark Earring",
hands="Redan Gloves",
back={ name="Niht Mantle", augments={'Attack+8','Dark magic skill +9','"Drain" and "Aspir" potency +12',}},
waist="Casso Sash",
legs="Eschite Cuisses",
feet="Odyssean Greaves",
ring1="Evanescence Ring",
ring2="Stikini Ring",
}
sets.midcast['Aspir'] = sets.midcast.Drain
sets.midcast['Aspir II'] = sets.midcast.Drain
sets.midcast['Drain II'] = sets.midcast.Drain
sets.midcast['Drain III'] = sets.midcast.Drain
sets.midcast.Impact = {
ammo="Pemphredo Tathlum",
neck="Sanctity Necklace",
ear1="Friomisi Earring",
ear2="Hecate's Earring",
body="Twilight Cloak",
ring1="Shiva's Ring",
ring2="Shiva's Ring",
waist="Austerity Belt",
hands="Carmine Fin. Ga.",
legs="Flamma Dirs +2",
feet="Flam. Gambieras +2",
back="Chuparrosa Mantle",
}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
ammo="Ginsen",
head="Sulevia's Mask +2",
ear1="Ishvara Earring",
ear2="Brutal Earring",
body="Ignominy Cuirass +2",
hands="Sulev. Gauntlets +2",
ring1="Ifrit Ring",
ring2="Karieyh Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
legs={ name="Valor. Hose", augments={'Accuracy+19 Attack+19','Weapon skill damage +2%','DEX+2','Accuracy+15',}},
feet="Sulev. Leggings +2",
}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Catastrophe'] = {
ammo="Ginsen",
head="Sulevia's Mask +2",
ear1="Ishvara Earring",
ear2="Brutal Earring",
body="Ignominy Cuirass +2",
hands="Ratri Gadlings",
ring1="Ifrit Ring",
ring2="Karieyh Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
legs={ name="Valor. Hose", augments={'Accuracy+19 Attack+19','Weapon skill damage +2%','DEX+2','Accuracy+15',}},
feet="Sulev. Leggings +2",
}
sets.precast.WS['Torcleaver'] = {
head="Sulevia's Mask +2",
ear1="Brutal Earring",
ear2="Ishvara Earring",
body="Sulevia's Plate. +2",
hands="Sulev. Gauntlets +2",
ring1="Titan Ring",
ring2="Karieyh Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
waist="Snow Belt",
legs={ name="Odyssean Cuisses", augments={'Accuracy+15','Weapon skill damage +4%','CHR+9',}},
feet="Sulev. Leggings +2",
}
sets.precast.WS['Scourge'] = {}
sets.precast.WS['Cross Reaper'] = {
ammo="Ginsen",
head="Sulevia's Mask +2",
ear1="Ishvara Earring",
ear2="Brutal Earring",
body="Ignominy Cuirass +2",
hands="Ratri Gadlings",
ring1="Ifrit Ring",
ring2="Karieyh Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
legs={ name="Valor. Hose", augments={'Accuracy+19 Attack+19','Weapon skill damage +2%','DEX+2','Accuracy+15',}},
feet="Sulev. Leggings +2",
}
sets.precast.WS['Quietus'] = {
ammo="Ginsen",
head="Sulevia's Mask +2",
ear1="Ishvara Earring",
ear2="Brutal Earring",
body="Ignominy Cuirass +2",
hands="Ratri Gadlings",
ring1="Ifrit Ring",
ring2="Karieyh Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
legs={ name="Valor. Hose", augments={'Accuracy+19 Attack+19','Weapon skill damage +2%','DEX+2','Accuracy+15',}},
feet="Sulev. Leggings +2",
}
sets.precast.WS['Entropy'] = {
ammo="Pemphredo Tathlum",
head="Ig. Burgonet +2",
neck="Lissome Necklace",
ear1="Cessance Earring",
ear2="Brutal Earring",
body={ name="Valorous Mail", augments={'Accuracy+16','"Dbl.Atk."+4','STR+6',}},
hands="Igno. Gauntlets +1",
ring1="Shiva Ring",
ring2="Shiva Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
waist="Ioskeha Belt",
legs="Ig. Flanchard +2",
feet={ name="Valorous Greaves", augments={'Accuracy+22 Attack+22','Weapon Skill Acc.+6','STR+10','Accuracy+5','Attack+8',}},
}
sets.precast.WS['Insurgency'] = {}
sets.precast.WS['Resolution'] = {
head="Flamma Zucchetto +2",
body="Argosy Hauberk",
hands={ name="Argosy Mufflers +1", augments={'STR+20','"Dbl.Atk."+3','Haste+3%',}},
legs={ name="Argosy Breeches +1", augments={'STR+12','DEX+12','Attack+20',}},
feet="Sulev. Leggings +2",
neck="Breeze Gorget",
ear1="Cessance Earring",
ear2="Telos Earring",
ring1="Karieyh Ring",
ring2="Shukuyu Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
waist="Breeze Belt",
feet="Sulev. Leggings +2",
ammo="Ginsen",
}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {}
-- Idle sets
sets.idle = {
head="Valorous Mask",
neck="Wiglen Gorget",
ring2={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -3%','Phys. dmg. taken -5%',}},
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
waist="Flume Belt",
feet="Sulev. Leggings +2",
ear2="Infused Earring",
ear1="Cessance Earring",
ring1="Sheltered Ring",
legs="Crimson Cuisses",
body="Sulevia's Plate. +2",
hands="Sulev. Gauntlets +2",
}
sets.idle.PDT = {
head="Sulevia's Mask +2",
neck="Wiglen Gorget",
ear1="Cessance Earring",
ear2="Brutal Earring",
body="Sulevia's Plate. +2",
hands="Sulev. Gauntlets +2",
ring1="Sheltered Ring",
ring2={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -3%','Phys. dmg. taken -5%',}},
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
legs="Sulev. Cuisses +2",
feet="Sulev. Leggings +2"
}
-- Defense sets
sets.defense.Reraise = {head="Twilight Helm", body="Twilight Mail",}
sets.defense.MDT = {}
-- Engaged sets
sets.engaged.GreatSword = {
sub="Bloodrain Strap",
ammo="Ginsen",
head="Flam. Zucchetto +2",
neck="Lissome Necklace",
ear2="Brutal Earring",
ear1="Cessance Earring",
body={ name="Valorous Mail", augments={'Accuracy+16','"Dbl.Atk."+4','STR+6',}},
hands="Flamma Manopolas +2",
ring1="Petrov Ring",
ring2="Flamma Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
waist="Ioskeha Belt",
legs={ name="Odyssean Cuisses", augments={'Accuracy+22 Attack+22','"Store TP"+7','VIT+8','Accuracy+9',}},
feet="Flam. Gambieras +2"
}
sets.engaged.Scythe = {
ammo="Ginsen",
head="Flam. Zucchetto +2",
body={ name="Valorous Mail", augments={'Accuracy+16','"Dbl.Atk."+4','STR+6',}},
hands="Flam. Manopolas +2",
legs="Ig. Flanchard +2",
feet="Flam. Gambieras +2",
neck="Lissome Necklace",
waist="Ioskeha Belt",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Petrov Ring",
right_ring="Flamma Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
}
sets.engaged.PDT = {
sub="Bloodrain Strap",
ammo="Ginsen",
head="Sulevia's Mask +2",
neck="Homeric Gorget",
ear1="Cessance Earring",
ear2="Brutal Earring",
body="Sulevia's Plate. +2",
hands="Sulev. Gauntlets +2",
ring1="Flamma Ring",
ring2={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -3%','Phys. dmg. taken -5%',}},
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
waist="Tempus Fugit",
legs="Sulev. Cuisses +2",
feet="Sulev. Leggings +2"
}
sets.engaged.DW = {}
end
function display_current_job_state(eventArgs)
local msg = 'Melee'
if state.HybridMode.value ~= 'Normal' then
msg = msg .. '/' .. state.HybridMode.value
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 update_combat_form()
-- Check Weapontype
if GreatSword_weapons:contains(player.equipment.main) then
state.CombatForm:set('GreatSword')
elseif
Scythe_weapons:contains(player.equipment.main) then
state.CombatForm:set('Scythe')
else
state.CombatForm:reset()
end
send_command('gs c update')
end
function job_self_command(cmdParams, eventArgs)
command = cmdParams[1]:lower()
if command=='mainweapon' then
enable('main','sub')
mainswap=1
send_command('gs c cycle mainweapon')
end
end
function job_update(cmdParams, eventArgs)
update_combat_form()
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.skill == 'Elemental Magic' then
if spell.element == world.day_element or spell.element == world.weather_element then
equip(sets.midcast['Elemental Magic'], {waist="Hachirin-No-Obi"})
end
end
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if (skillchain_elements[spell.skillchain_a]:contains(world.day_element) or skillchain_elements[spell.skillchain_b]:contains(world.day_element) or skillchain_elements[spell.skillchain_c]:contains(world.day_element))
then equip({head="Gavialis Helm"})
end
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if S{"Drain","Drain II","Drain III"}:contains(spell.english) and (spell.element==world.day_element or spell.element==world.weather_element) then
equip({waist="Hachirin-no-obi"})
end
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- 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
if buff:lower()=='sleep' then
if gain and player.hp > 120 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep
equip({neck="Berserker's Torque"})
elseif not gain then -- Take Berserker's offaw
handle_equipping_gear(player.status)
end
end
end
function customize_melee_set(meleeSet)
if state.Buff.Sleep and player.hp > 120 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep
meleeSet = set_combine(meleeSet,{neck="Berserker's Torque"})
end
return meleeSet
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 6)
if player.sub_job == 'SAM' and player.equipment.main == "Ragnarok" or player.equipment.main == "Caladbolg" then
set_macro_page(1, 6)
elseif player.sub_job == 'SAM' and player.equipment.main == "Anguta" or player.equipment.main == "Apocalypse" then
set_macro_page(2, 6)
elseif player.sub_job == 'WAR' then
set_macro_page (1, 5)
end
end
By Takisan 2018-07-07 14:51:07
I don't know if this has been talked about before but is there a way to make midcast only activate at the time a spell goes off and have gearswap recognize the time inbetween when a cast starts and goes off?
Currently:
Precast-> input fast cast gear.
Midcast-> Spell potentcy gear/fast recast gear.
Aftercast-> Return to idle or engaged gear.
Purposed:
Precast->Input fast cast gear.
Casting->Wear DT and Spell interrutpion rate before spell goes off.
Midcast-> Only happens at the time of cast for spell potentcy/fast recast.
Aftercast-> Return to idle or engaged gear.
Server: Asura
Game: FFXI
Posts: 2
By Asura.Midgley 2018-07-09 05:19:49
reactivated after a few months, and my gearswap file whenever loading into the game gives me an error in the gearswap.lua file on line 118. Code -- Resources Checks
if res.items and res.bags and res.slots and res.statuses and res.jobs and res.elements and res.skills and res.buffs and res.spells and res.job_abilities and res.weapon_skills and res.monster_abilities and res.action_messages and res.skills and res.monstrosity and res.weather and res.moon_phases and res.races then
else
error('Missing resources!')
end
not really too sure how to fix it so any suggestions would be a great help
edit: found the error, for some reason its trying to look in program files/windower 4//addons but not sure how to change the settings file to remove the second slash
Carbuncle.Kigensuro
Server: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-07-09 05:45:08
I don't know if this has been talked about before but is there a way to make midcast only activate at the time a spell goes off and have gearswap recognize the time inbetween when a cast starts and goes off?
Currently:
Precast-> input fast cast gear.
Midcast-> Spell potentcy gear/fast recast gear.
Aftercast-> Return to idle or engaged gear.
Purposed:
Precast->Input fast cast gear.
Casting->Wear DT and Spell interrutpion rate before spell goes off.
Midcast-> Only happens at the time of cast for spell potentcy/fast recast.
Aftercast-> Return to idle or engaged gear. no this is not posible
this is what is happening under the hood
pretarget-(after the command is input but before the command is sent to the server)
-this is so you can wright code to change your target
precast-(the spell ready packet is received by the client)
midcast--(the spell cast packet is received by the client)[spells only]
aftercast--(the spell finish packet is received by the client)
--geaswap does not do anything unless ffxi does something first
By Diggerguy 2018-07-13 10:37:04
Hi guys, I'm a recent return player to FFXI and was a keen user of Windower4 for years. I have just d/l it again ready to jump back in but I'm getting a "missing rescources" error from line:118 in the gearswap.lua Can someone advise me how to remedy this ? Also I seem to be missing the init.txt file as well. I would greatly appreciate some isight into this. Many thanks in advance.
Carbuncle.Kigensuro
Server: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-07-13 12:33:18
Hi guys, I'm a recent return player to FFXI and was a keen user of Windower4 for years. I have just d/l it again ready to jump back in but I'm getting a "missing rescources" error from line:118 in the gearswap.lua Can someone advise me how to remedy this ? Also I seem to be missing the init.txt file as well. I would greatly appreciate some isight into this. Many thanks in advance. in your main windower folder you should have a folder called res with 36 files in it
By Diggerguy 2018-07-13 13:39:53
Thanks for your reply, but it appears my res folder is empty, is there anywhere I can get that folder or the individual files that should be in it. Not sure how this has happened as I d/l from the Windower site. !
By Sidiov 2018-07-13 16:41:44
Thanks for your reply, but it appears my res folder is empty, is there anywhere I can get that folder or the individual files that should be in it. Not sure how this has happened as I d/l from the Windower site. ! The folder is automatically d/l and updated when you launch Windower. If it isn't working, maybe you have something blocking it? (Also make sure you are running as administrator)
It's a bad idea to get the files separately IMO, since at best you are masking a big problem, and at worst you will have bad/outdated/malicious data.
Server: Cerberus
Game: FFXI
Posts: 1786
By Cerberus.Shadowmeld 2018-07-13 17:17:10
It doesn't get said enough, but nothing that you want to write to on a regular basis should ever be installed in your Program Files/Program Files (x86) directories.
Windower should be installed in it's own directory, even if you just want to make a folder on your drive called Games or something.
By Meril1 2018-07-13 18:17:34
I struggled with this issue for more than a month, finnaly just bit the bullet and completely uninstalled windower 4 and started fresh. I tried everything. It's back to working with no " missing resources" now with no issues.
By Diggerguy 2018-07-13 23:02:55
The folder is automatically d/l and updated when you launch Windower. If it isn't working, maybe you have something blocking it? (Also make sure you are running as administrator)
I don't think anything is blocking it as I have had other addons/plugins update on launching Windower. Also Windower has access through my anti virus and firewall.
I def also run as administrator. This is a fresh install of Windower so I don't think unistalling and reinstalling will work either. Very perplexing. !
By Diggerguy 2018-07-14 08:18:13
I've just deleted the Gearswap folder and re-d/l it from windower and it gives me the res folder but it's still empty, all other gearswap folder/files seem to be there, any ideas ?
Quetzalcoatl.Xilkk
Server: Quetzalcoatl
Game: FFXI
Posts: 1418
By Quetzalcoatl.Xilkk 2018-07-14 08:29:33
I'm updating Mote's pup lua.
I'm outright stealing a bunch of functions from Falkirk's BST lua.
Full lua (in its current unclean form):
Your text to link here...
My question right now is about the following function:
Code function get_pet_mode()
if pet.isvalid then
if pet.head == 'Soulsoother' then
if pet.body == 'Valoredge' or pet.body == 'Sharpshot' or pet.body == 'Harlequin' then
return 'Tank'
else
return petModes[pet.head] or 'None'
end
elseif pet.head == 'Valoredge' then
return 'Melee'
else
return petModes[pet.head] or 'None'
end
else
return 'None'
end
end
I've updated it to be a bit more realistic with pet modes. It is rather common to use soulsouther head with tanks, and valoredge head with melee.
but It doesn't appear to be working right.
whats a good way to show the current PetMode?
It appears that I still go into idle.pet.magic when I want my pet to not be a magic type: ie soulsoother head and valoredge frame.
so maybe my changes to Mote's get_pet_mode function do not work as I intended.
Quetzalcoatl.Xilkk
Server: Quetzalcoatl
Game: FFXI
Posts: 1418
By Quetzalcoatl.Xilkk 2018-07-14 11:00:50
I've got it displaying the current petmode, which is good.
but the logic i added is not working.
I'm guessing maybe pet.body doesn't pull the information I want.
Does anyone know the correct syntax?
the correct syntax is pet.frame
and I see that I have it in the wrong function. Setting the pet state happens in the update_pet_mode() function.
I want to change the output of this function to include both pet.head and pet.frame then I can update the following table with whatever modes I want associate w/ head/frame combinations.
Code -- Map automaton heads to combat roles
petModes = {
['Harlequin Head'] = 'Melee',
['Sharpshot Head'] = 'Ranged',
['Valoredge Head'] = 'Tank',
['Stormwaker Head'] = 'Magic',
['Soulsoother Head'] = 'Heal',
['Spiritreaver Head'] = 'Nuke'
}
so.. how do I pass both pet.head and pet.frame into this function in a way that I can modify the lookup table above to include both frame and head?
Code function get_pet_mode()
if pet.isvalid then
return petModes[pet.head] or 'None'
else
return 'None'
end
end
Carbuncle.Kigensuro
Server: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-07-14 17:55:55
Quetzalcoatl.Xilkk said: »I want to change the output of this function to include both pet.head and pet.frame then I can update the following table with whatever modes I want associate w/ head/frame combinations.
Code -- Map automaton heads to combat roles
petModes = {
['Harlequin Head'] = 'Melee',
['Sharpshot Head'] = 'Ranged',
['Valoredge Head'] = 'Tank',
['Stormwaker Head'] = 'Magic',
['Soulsoother Head'] = 'Heal',
['Spiritreaver Head'] = 'Nuke'
}
so.. how do I pass both pet.head and pet.frame into this function in a way that I can modify the lookup table above to include both frame and head?
Code function get_pet_mode()
if pet.isvalid then
return petModes[pet.head] or 'None'
else
return 'None'
end
end something like this Code AutomatonModes = {
['Harlequin Head'] = 'Melee',
['Sharpshot Head'] = 'Ranged',
['Valoredge Head'] = 'Tank',
['Stormwaker Head'] = 'Magic',
['Harlequin Frame'] = 'Melee',
['Sharpshot Frame'] = 'Ranged',
['Valoredge Frame'] = 'Tank',
['Stormwaker Frame'] = 'Magic',
['Soulsoother Head'] = 'Heal',
['Spiritreaver Head'] = 'Nuke'
}
function get_pet_mode(v)
if pet.isvalid then
local a = {[1]=(AutomatonModes[pet.head] or 'None'),[2]=(AutomatonModes[pet.frame] or 'None')}
return a
else
return 'None'
end
end
Quetzalcoatl.Xilkk
Server: Quetzalcoatl
Game: FFXI
Posts: 1418
By Quetzalcoatl.Xilkk 2018-07-14 19:24:01
Thank you very much.
I did try it, but didn't quite get good results.
GearSwap: lua runtime error: Gearswap/flow.lua:349
GearSwap has detected an error in the user function get_sets:
...\Windower4\addons\GearSwap\libs\modes.lua:387:attempt to call method 'lower' (a nil value)
I added your Table, and modified the other. Code AutomatonModes = {
['Harlequin Head'] = 'Melee',
['Sharpshot Head'] = 'Ranged',
['Valoredge Head'] = 'Tank',
['Stormwaker Head'] = 'Magic',
['Harlequin Frame'] = 'Melee',
['Sharpshot Frame'] = 'Ranged',
['Valoredge Frame'] = 'Tank',
['Stormwaker Frame'] = 'Magic',
['Soulsoother Head'] = 'Heal',
['Spiritreaver Head'] = 'Nuke'
}
petModes = {
[{'Harlequin Head', 'Harlequin Frame'}] = 'Melee',
[{'Harlequin Head', 'Sharpshot Frame'}] = 'Melee',
[{'Harlequin Head', 'Valoredge Frame'}] = 'Melee',
[{'Harlequin Head', 'Stormwaker Frame'}] = 'Magic',
[{'Sharpshot Head', 'Sharpshot Frame'}] = 'Ranged',
[{'Sharpshot Head', 'Valoredge Frame'}] = 'Melee',
[{'Sharpshot Head', 'Harlequin Frame'}] = 'Ranged',
[{'Sharpshot Head', 'Stormwaker Frame'}] = 'Maagic',
[{'Valoredge Head', 'Valoredge Frame'}] = 'Melee',
[{'Valoredge Head', 'Sharpshot Frame'}] = 'Melee',
[{'Valoredge Head', 'Harlequin Frame'}] = 'Melee',
[{'Valoredge Head', 'Stormwaker Frame'}] = 'Magic',
[{'Stormwaker Head', 'Stormwaker Frame'}] = 'Magic',
[{'Stormwaker Head', 'Sharpshot Frame'}] = 'Magic',
[{'Stormwaker Head', 'Harlequin Frame'}] = 'Melee',
[{'Stormwaker Head', 'Valoredge Frame'}] = 'Melee',
[{'Soulsoother Head', 'Stormwaker Frame'}] = 'Heal',
[{'Soulsoother Head', 'Valoredge Frame'}]= 'Tank',
[{'Soulsoother Head', 'Harlequin Frame'}] = 'Tank',
[{'Soulsoother Head', 'Sharpshot Frame'}] = 'Tank',
[{'Spiritreaver Head', 'Stormwaker Frame'}] = 'Nuke',
[{'Spiritreaver Head', 'Harlequin Frame'}] = 'Nuke',
[{'Spiritreaver Head', 'Sharpshot Frame'}] = 'Melee',
[{'Spiritreaver Head', 'Valoredge Frame'}] = 'Melee'
}
I also took your function. and below is the next function it passes information too for actually setting the PetMode
Code function get_pet_mode(v)
if pet.isvalid then
local a = {[1]=(AutomatonModes[pet.head] or 'None'),[2]=(AutomatonModes[pet.frame] or 'None')}
--print a
return a
else
return 'None'
end
end
-- Update state.PetMode, as well as functions that use it for set determination.
function update_pet_mode()
state.PetMode:set(get_pet_mode())
update_custom_groups()
end
any ideas would be welcome.
By Faelar 2018-07-14 19:36:08
I keep getting this error, how would I fix it?
There isn't a tables.lua file in that folder.
Bismarck.Radec
Server: Bismarck
Game: FFXI
Posts: 142
By Bismarck.Radec 2018-07-14 22:40:03
Windower4\addons\libs\ has no tables.lua file? replace it manually from https://github.com/Windower/Lua/blob/dev/addons/libs/tables.lua
[+]
By Faelar 2018-07-14 23:09:26
Carbuncle.Kigensuro
Server: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-07-15 05:40:49
Quetzalcoatl.Xilkk said: »petModes = {
[{'Harlequin Head', 'Harlequin Frame'}] = 'Melee',
[{'Harlequin Head', 'Sharpshot Frame'}] = 'Melee',
[{'Harlequin Head', 'Valoredge Frame'}] = 'Melee',
[{'Harlequin Head', 'Stormwaker Frame'}] = 'Magic',
[{'Sharpshot Head', 'Sharpshot Frame'}] = 'Ranged',
[{'Sharpshot Head', 'Valoredge Frame'}] = 'Melee',
[{'Sharpshot Head', 'Harlequin Frame'}] = 'Ranged',
[{'Sharpshot Head', 'Stormwaker Frame'}] = 'Maagic',
[{'Valoredge Head', 'Valoredge Frame'}] = 'Melee',
[{'Valoredge Head', 'Sharpshot Frame'}] = 'Melee',
[{'Valoredge Head', 'Harlequin Frame'}] = 'Melee',
[{'Valoredge Head', 'Stormwaker Frame'}] = 'Magic',
[{'Stormwaker Head', 'Stormwaker Frame'}] = 'Magic',
[{'Stormwaker Head', 'Sharpshot Frame'}] = 'Magic',
[{'Stormwaker Head', 'Harlequin Frame'}] = 'Melee',
[{'Stormwaker Head', 'Valoredge Frame'}] = 'Melee',
[{'Soulsoother Head', 'Stormwaker Frame'}] = 'Heal',
[{'Soulsoother Head', 'Valoredge Frame'}]= 'Tank',
[{'Soulsoother Head', 'Harlequin Frame'}] = 'Tank',
[{'Soulsoother Head', 'Sharpshot Frame'}] = 'Tank',
[{'Spiritreaver Head', 'Stormwaker Frame'}] = 'Nuke',
[{'Spiritreaver Head', 'Harlequin Frame'}] = 'Nuke',
[{'Spiritreaver Head', 'Sharpshot Frame'}] = 'Melee',
[{'Spiritreaver Head', 'Valoredge Frame'}] = 'Melee'
}
try this Code AutomatonModes = {
['Harlequin Head - Harlequin Frame'] = 'Melee',
['Harlequin Head - Sharpshot Frame'] = 'Melee',
['Harlequin Head - Valoredge Frame'] = 'Melee',
['Harlequin Head - Stormwaker Frame'] = 'Magic',
['Sharpshot Head - Sharpshot Frame'] = 'Ranged',
['Sharpshot Head - Valoredge Frame'] = 'Melee',
['Sharpshot Head - Harlequin Frame'] = 'Ranged',
['Sharpshot Head - Stormwaker Frame'] = 'Maagic',
['Valoredge Head - Valoredge Frame'] = 'Melee',
['Valoredge Head - Sharpshot Frame'] = 'Melee',
['Valoredge Head - Harlequin Frame'] = 'Melee',
['Valoredge Head - Stormwaker Frame'] = 'Magic',
['Stormwaker Head - Stormwaker Frame'] = 'Magic',
['Stormwaker Head - Sharpshot Frame'] = 'Magic',
['Stormwaker Head - Harlequin Frame'] = 'Melee',
['Stormwaker Head - Valoredge Frame'] = 'Melee',
['Soulsoother Head - Stormwaker Frame'] = 'Heal',
['Soulsoother Head - Valoredge Frame']= 'Tank',
['Soulsoother Head - Harlequin Frame'] = 'Tank',
['Soulsoother Head - Sharpshot Frame'] = 'Tank',
['Spiritreaver Head - Stormwaker Frame'] = 'Nuke',
['Spiritreaver Head - Harlequin Frame'] = 'Nuke',
['Spiritreaver Head - Sharpshot Frame'] = 'Melee',
['Spiritreaver Head - Valoredge Frame'] = 'Melee'
}
function update_pet_mode()
state.PetMode:set(AutomatonModes[pet.head..' - '..pet.frame])
update_custom_groups()
end
By Faelar 2018-07-16 22:05:51
I keep getting this error, how would I fix it?
Added that file, but it's still giving the same error. O___o
Server: Cerberus
Game: FFXI
Posts: 1786
By Cerberus.Shadowmeld 2018-07-16 22:45:34
The overwrites var in the spells.lua file is a string. Even when a spell overwrites more than one debuff like dis III. You have to convert the string to a table to get it to read it. I’ve done it on my file but I don’t have access atm.
It involves using the gsub method to strip the {} from the string and then doing a split(‘,’)
Carbuncle.Kigensuro
Server: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-07-18 11:29:04
I keep getting this error, how would I fix it?
Added that file, but it's still giving the same error. O___o there is no way to know with out your code
please post your code to someplace like pastebin or github then put a link to it here so we can read it to see if we can find the issue
By Faelar 2018-07-18 11:51:05
Carbuncle.Kigensuro said: »I keep getting this error, how would I fix it?
Added that file, but it's still giving the same error. O___o there is no way to know with out your code
please post your code to someplace like pastebin or github then put a link to it here so we can read it to see if we can find the issue
If you need to see the tables.lua, it's the one Radec linked above. I did not alter it in any way.
This error occurs on WHM, so here is my WHM lua: https://pastebin.com/1VJwP7Ye
It doesn't adversely affect my lua or anything, the big red console text just pops up every time it occurs. If there were a way to stop it from popping up that'd be fine too.
By Lilmartio 2018-07-20 00:33:48
GearSwap: lua runtime error: Gearswap/flow.lua:349
GearSwap has detected an error in the user function status_change:
Windower4/addons/GearSwap/data/Lilmartio/DRK.lua:1499: attempt to index global 'equipSet' (a nil value)
Testing out new Lua and came across this error. I would get this error when Caladbolg is equip and have the following buffs: Last Resort, Hasso, Advancing March, Victory March, and Aftermath 3 up. But I don't get the error when I have Aftermath 1 or Aftermath 2 up and equips proper sets.
Lua: https://pastebin.com/QckjKZpH
Carbuncle.Kigensuro
Server: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-07-20 13:53:16
Carbuncle.Kigensuro said: »I keep getting this error, how would I fix it?
Added that file, but it's still giving the same error. O___o there is no way to know with out your code
please post your code to someplace like pastebin or github then put a link to it here so we can read it to see if we can find the issue
If you need to see the tables.lua, it's the one Radec linked above. I did not alter it in any way.
This error occurs on WHM, so here is my WHM lua: https://pastebin.com/1VJwP7Ye
It doesn't adversely affect my lua or anything, the big red console text just pops up every time it occurs. If there were a way to stop it from popping up that'd be fine too. it is probably because of this line Code if string.find(spell.english,"Cure") or string.find(spell.english,"Cura") then
try one of these instead Code if spell.english:contains("Cure") or spell.english:contains("Cura") then
if spell.english:startswith("Cure") or spell.english:startswith("Cura") then
[+]
Carbuncle.Kigensuro
Server: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-07-20 14:01:15
GearSwap: lua runtime error: Gearswap/flow.lua:349
GearSwap has detected an error in the user function status_change:
Windower4/addons/GearSwap/data/Lilmartio/DRK.lua:1499: attempt to index global 'equipSet' (a nil value)
Testing out new Lua and came across this error. I would get this error when Caladbolg is equip and have the following buffs: Last Resort, Hasso, Advancing March, Victory March, and Aftermath 3 up. But I don't get the error when I have Aftermath 1 or Aftermath 2 up and equips proper sets.
Lua: https://pastebin.com/QckjKZpHthe reason is because your trying to call a table with
however it is not there
this is why i do not like making layered sets
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.
|
|