|
Gearswap Support Thread
By RebornedHero 2017-05-28 21:29:53
It's probably not finding the sets.Obi['Lightning'] if it's failing to swap thunder but working with ice. I'd just do something like this:
Code
if (spell.element == world.day_element or spell.element == world.weather_element) then
equip({waist="Hachirin-no-Obi"})
else
equip({waist="Refoccilation stone"})
end
You should also change all the single element OR checks to an elemental magic on:
Code
if spell.skill == 'Elemental Magic' then
equip(sets.Nuke.NoResist)
end
Thank you for your response, I will try to resolve the issue when I get home this evening.
I'd be cautious about making your weather argument so straightforward, it can lead to you casting enhancing magic and other spells that don't benefit from the weather in the wrong waist.
I'd recommend something along the lines of Code
if (spell.skill == 'Elemental Magic' or spell.skill == 'Healing Magic') and (spell.element == world.day_element or spell.element == world.weather_element) then
equip({waist="Hachirin-no-Obi"})
else
equip({waist="Refoccilation stone"})
end Thanks for the response. I wouldn't mind taking a look at yours. I also might try kinematics instead. The one I was using is from the bluemage tagged post on this forum.
Asura.Byrne
By Asura.Byrne 2017-05-29 11:52:51
Ok cool, when I get home I'll put mine up on github and send you a link.
It's based off the same lua that yours is, but I've made many changes to it, such as a few additional sets, and some cleaning up of some of the arguments, extensions of some functionalities, and added rules for specific spells.
In addition to most of those things that should seem fairly self explanatory, there are a few things to go over before I post it.
Pressing F12 will disable swapping of main and sub slots, which if you would like I can actually reverse it to where the lua starts off with the slots disabled by default.
Secondly the way that nukes are handled in mine is different to yours, Instead of putting your nuking gear into the BlueMagic.INT set, it will be in the BlueMagic.SUB set, with the exception of the Tenebral Crush set, which is it's own set due to pixie hairpin +1 and Archon ring.
Additionally, any function sets that contain gear that you do not have, you should put something you do have in it's place, or replace the portion after the equal such that it looks like "sets.BlahBlah.Whatever = {}"
Asura.Byrne
By Asura.Byrne 2017-05-29 18:31:17
All right, revised lua here:
https://pastebin.com/UzQr8pC3
Free game for anyone that wants a more meticulously formatted and up-to-date version of the lua on The-Beast-Within Guide.
By Feanorsof 2017-06-04 06:31:35
If I was to do something like this for an AM3 set and a JA:
Code if buffactive["Aftermath: Lv.3"] and equipSet['AM3'] then
equipSet = equipSet['AM3']
end
if buffactive["Double Shot"] and equipSet['Doubleshot'] then
equipSet = equipSet['Doubleshot']
end
Which would take precedence? Would it just be in the order of the code or possibly JA use?
Asura.Frod
Server: Asura
Game: FFXI
Posts: 1211
By Asura.Frod 2017-06-10 21:55:17
So i'm running into a pretty *** annoying bug with smn that i think is more an issue with gearswap itself, but here's my lua below anyway.
What happens: Thunderspark is really really *** prone to missing the midcast gearswap for BP damage. I'm talking like a 30-50% chance to happen, especially in higher lag situations like cleaving.
There's two suspicious issues with it:
1: something is causing GS to swap to something else.
2: it's lagging and it's swapping to post cast before pact lands.
Code
-- 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["Avatar's Favor"] = buffactive["Avatar's Favor"] or false
state.Buff["Astral Conduit"] = buffactive["Astral Conduit"] or false
state.Moving = M(false, "moving")
spirits = S{"LightSpirit", "DarkSpirit", "FireSpirit", "EarthSpirit", "WaterSpirit", "AirSpirit", "IceSpirit", "ThunderSpirit"}
avatars = S{"Carbuncle", "Fenrir", "Diabolos", "Ifrit", "Titan", "Leviathan", "Garuda", "Shiva", "Ramuh", "Odin", "Alexander", "Cait Sith"}
-- Any spells placed in magicalRagePacts will force weapons and ammo
magicalRagePacts = S{
'Inferno','Earthen Fury','Tidal Wave','Aerial Blast','Diamond Dust','Judgment Bolt','Searing Light','Howling Moon','Ruinous Omen',
'Fire II','Stone II','Water II','Aero II','Blizzard II','Thunder II',
'Fire IV','Stone IV','Water IV','Aero IV','Blizzard IV','Thunder IV',
'Thunderspark','Burning Strike','Meteorite','Nether Blast','Flaming Crush',
'Meteor Strike','Heavenly Strike','Wind Blade','Geocrush','Grand Fall','Thunderstorm',
'Holy Mist','Lunar Bay','Night Terror','Level ? Holy'}
pacts = {}
pacts.cure = {['Carbuncle']='Healing Ruby'}
pacts.curaga = {['Carbuncle']='Healing Ruby II', ['Garuda']='Whispering Wind', ['Leviathan']='Spring Water'}
pacts.buffoffense = {['Carbuncle']='Glittering Ruby', ['Ifrit']='Crimson Howl', ['Garuda']='Hastega', ['Ramuh']='Rolling Thunder',
['Fenrir']='Ecliptic Growl'}
pacts.buffdefense = {['Carbuncle']='Shining Ruby', ['Shiva']='Frost Armor', ['Garuda']='Aerial Armor', ['Titan']='Earthen Ward',
['Ramuh']='Lightning Armor', ['Fenrir']='Ecliptic Howl', ['Diabolos']='Noctoshield', ['Cait Sith']='Reraise II'}
pacts.buffspecial = {['Ifrit']='Inferno Howl', ['Garuda']='Fleet Wind', ['Titan']='Earthen Armor', ['Diabolos']='Dream Shroud',
['Carbuncle']='Soothing Ruby', ['Fenrir']='Heavenward Howl', ['Cait Sith']='Raise II'}
pacts.debuff1 = {['Shiva']='Diamond Storm', ['Ramuh']='Shock Squall', ['Leviathan']='Tidal Roar', ['Fenrir']='Lunar Cry',
['Diabolos']='Pavor Nocturnus', ['Cait Sith']='Eerie Eye'}
pacts.debuff2 = {['Shiva']='Sleepga', ['Leviathan']='Slowga', ['Fenrir']='Lunar Roar', ['Diabolos']='Somnolence'}
pacts.sleep = {['Shiva']='Sleepga', ['Diabolos']='Nightmare', ['Cait Sith']='Mewing Lullaby'}
pacts.nuke2 = {['Ifrit']='Fire II', ['Shiva']='Blizzard II', ['Garuda']='Aero II', ['Titan']='Stone II',
['Ramuh']='Thunder II', ['Leviathan']='Water II'}
pacts.nuke4 = {['Ifrit']='Fire IV', ['Shiva']='Blizzard IV', ['Garuda']='Aero IV', ['Titan']='Stone IV',
['Ramuh']='Thunder IV', ['Leviathan']='Water IV'}
pacts.bp70 = {['Ifrit']='Flaming Crush', ['Shiva']='Rush', ['Garuda']='Predator Claws', ['Titan']='Mountain Buster',
['Ramuh']='Chaotic Strike', ['Leviathan']='Spinning Dive', ['Carbuncle']='Meteorite', ['Fenrir']='Eclipse Bite',
['Diabolos']='Nether Blast',['Cait Sith']='Regal Scratch'}
pacts.bp75 = {['Ifrit']='Meteor Strike', ['Shiva']='Heavenly Strike', ['Garuda']='Wind Blade', ['Titan']='Geocrush',
['Ramuh']='Thunderstorm', ['Leviathan']='Grand Fall', ['Carbuncle']='Holy Mist', ['Fenrir']='Lunar Bay',
['Diabolos']='Night Terror', ['Cait Sith']='Level ? Holy'}
pacts.astralflow = {['Ifrit']='Inferno', ['Shiva']='Diamond Dust', ['Garuda']='Aerial Blast', ['Titan']='Earthen Fury',
['Ramuh']='Judgment Bolt', ['Leviathan']='Tidal Wave', ['Carbuncle']='Searing Light', ['Fenrir']='Howling Moon',
['Diabolos']='Ruinous Omen', ['Cait Sith']="Altana's Favor"}
-- Wards table for creating custom timers
wards = {}
-- Base duration for ward pacts.
wards.durations = {
['Crimson Howl'] = 60, ['Earthen Armor'] = 60, ['Inferno Howl'] = 60, ['Heavenward Howl'] = 60,
['Rolling Thunder'] = 120, ['Fleet Wind'] = 120,
['Shining Ruby'] = 180, ['Frost Armor'] = 180, ['Lightning Armor'] = 180, ['Ecliptic Growl'] = 180,
['Glittering Ruby'] = 180, ['Hastega'] = 180, ['Noctoshield'] = 180, ['Ecliptic Howl'] = 180,
['Dream Shroud'] = 180,
['Reraise II'] = 3600
}
-- Icons to use when creating the custom timer.
wards.icons = {
['Earthen Armor'] = 'spells/00299.png', -- 00299 for Titan
['Shining Ruby'] = 'spells/00043.png', -- 00043 for Protect
['Dream Shroud'] = 'spells/00304.png', -- 00304 for Diabolos
['Noctoshield'] = 'spells/00106.png', -- 00106 for Phalanx
['Inferno Howl'] = 'spells/00298.png', -- 00298 for Ifrit
['Hastega'] = 'spells/00358.png', -- 00358 for Hastega
['Rolling Thunder'] = 'spells/00104.png', -- 00358 for Enthunder
['Frost Armor'] = 'spells/00250.png', -- 00250 for Ice Spikes
['Lightning Armor'] = 'spells/00251.png', -- 00251 for Shock Spikes
['Reraise II'] = 'spells/00135.png', -- 00135 for Reraise
['Fleet Wind'] = 'abilities/00074.png', --
}
-- Flags for code to get around the issue of slow skill updates.
wards.flag = false
wards.spell = ''
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('None', 'Normal', 'Acc','Locked')--press f9 to change, normal will be standard midcast acc is midcast.acc for BP
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('none', 'Normal', 'PDT', 'MDT')
gear.perp_staff = {name=""}
select_default_macro_book()
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Precast Sets
--------------------------------------
-- Precast sets to enhance JAs
sets.precast.JA['Astral Flow'] = {head="Glyphic Horn +1"}
sets.precast.JA['Elemental Siphon'] = {
main={ name="Keraunos", augments={'Pet: Mag. Acc.+15','"Elemental Siphon"+25',}},
sub="Vox Grip",
ammo="Esper Stone +1",
head={ name="Telchine Cap", augments={'"Elemental Siphon"+35',}},
body={ name="Telchine Chas.", augments={'"Elemental Siphon"+35',}},
hands={ name="Telchine Gloves", augments={'"Elemental Siphon"+35',}},
legs={ name="Telchine Braconi", augments={'"Elemental Siphon"+35',}},
feet="Beck. Pigaches +1",
neck="Incanter's Torque",
waist="Kobo Obi",
left_ear="Andoaa Earring",
right_ear="Smn. Earring",
left_ring="Zodiac Ring",
right_ring="Evoker's Ring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +5','Pet: Enmity+7','Blood Pact Dmg.+1','Blood Pact ab. del. II -1',}},
}
sets.precast.JA['Mana Cede'] = {hands="Beck. Bracers +1"}
-- Pact delay reduction gear
sets.precast.BloodPactWard = {
main="Nirvana",
ammo="Sancus Sachet +1",
body="Con. Doublet +3",}
sets.precast.BloodPactRage = sets.precast.BloodPactWard
-- Fast cast sets for spells
sets.precast.FC = {
main="Oranyan",
sub="Clerisy Strap +1",
ammo="Impatiens",
head={ name="Merlinic Hood", augments={'"Mag.Atk.Bns."+27','"Fast Cast"+7','CHR+10','Mag. Acc.+11',}},
body="Inyanga Jubbah +1",
hands={ name="Merlinic Dastanas", augments={'Mag. Acc.+27','"Fast Cast"+6','MND+6','"Mag.Atk.Bns."+4',}},
legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
feet={ name="Merlinic Crackows", augments={'Mag. Acc.+4','"Fast Cast"+7','"Mag.Atk.Bns."+7',}},
neck="Voltsurge Torque",
waist="Witful Belt",
left_ear="Etiolation Earring",
right_ear="Loquac. Earring",
left_ring="Kishar Ring",
right_ring="Veneficium Ring",
back="Perimede Cape",
}
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 = {body="twilight cloak"}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Myrkr'] = {body="witching robe"}
--------------------------------------
-- Midcast sets
--------------------------------------
sets.midcast.FastRecast = {
main="Oranyan",
sub="Clerisy Strap +1",
ammo="Impatiens",
head={ name="Merlinic Hood", augments={'"Mag.Atk.Bns."+27','"Fast Cast"+7','CHR+10','Mag. Acc.+11',}},
body="Inyanga Jubbah +1",
hands={ name="Merlinic Dastanas", augments={'Mag. Acc.+27','"Fast Cast"+6','MND+6','"Mag.Atk.Bns."+4',}},
legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
feet={ name="Merlinic Crackows", augments={'Mag. Acc.+4','"Fast Cast"+7','"Mag.Atk.Bns."+7',}},
neck="Voltsurge Torque",
waist="Witful Belt",
left_ear="Etiolation Earring",
right_ear="Loquac. Earring",
left_ring="Kishar Ring",
right_ring="Veneficium Ring",
back="Perimede Cape",
}
sets.midcast.Cure = {main="iridal staff"}
sets.midcast.Stoneskin = {neck="twilight torque"}
sets.midcast['Elemental Magic'] = {main="marin staff"}
sets.midcast['Dark Magic'] = {main="serenity"}
-- Avatar pact sets. All pacts are Ability type.
sets.midcast.Pet.BloodPactWard = {
main={ name="Espiritus", augments={'Summoning magic skill +15','Pet: Mag. Acc.+30','Pet: Damage taken -4%',}},
sub="Vox Grip",
ammo="Sancus Sachet +1",
head="Beckoner's Horn +1",
body="Beck. Doublet +1",
hands="Beck. Bracers +1",
legs="Beck. Spats +1",
feet="Beck. Pigaches +1",
neck="Incanter's Torque",
waist="Kobo Obi",
left_ear="Andoaa Earring",
right_ear="Smn. Earring",
left_ring="Evoker's Ring",
right_ring="Globidonta Ring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +5','Pet: Enmity+7','Blood Pact Dmg.+1','Blood Pact ab. del. II -1',}},
}
sets.midcast.Pet.DebuffBloodPactWard = {
main={ name="Grioavolr", augments={'Blood Pact Dmg.+5','Pet: INT+11','Pet: Mag. Acc.+29','Pet: "Mag.Atk.Bns."+28','DMG:+13',}},
sub="Vox Grip",
ammo="Sancus Sachet +1",
head="Convoker's Horn +3",
body="Con. Doublet +3",
hands="Convo. Bracers +3",
legs="Convo. Spats +3",
feet="Convo. Pigaches +3",
neck="Adad Amulet",
waist="Regal Belt",
left_ear="Lugalbanda Earring",
right_ear="Andoaa Earring",
left_ring="Globidonta Ring",
right_ring="Defending Ring",
back={ name="Campestres's Cape", augments={'Pet: M.Acc.+20 Pet: M.Dmg.+20','Pet: Magic Damage+10','Pet: "Regen"+10',}},
}
sets.midcast.Pet.DebuffBloodPactWard.Acc = {
main={ name="Grioavolr", augments={'Blood Pact Dmg.+5','Pet: INT+11','Pet: Mag. Acc.+29','Pet: "Mag.Atk.Bns."+28','DMG:+13',}},
sub="Vox Grip",
ammo="Sancus Sachet +1",
head="Convoker's Horn +3",
body="Con. Doublet +3",
hands="Convo. Bracers +3",
legs="Convo. Spats +3",
feet="Convo. Pigaches +3",
neck="Adad Amulet",
waist="Regal Belt",
left_ear="Lugalbanda Earring",
right_ear="Andoaa Earring",
left_ring="Globidonta Ring",
right_ring="Defending Ring",
back={ name="Campestres's Cape", augments={'Pet: M.Acc.+20 Pet: M.Dmg.+20','Pet: Magic Damage+10','Pet: "Regen"+10',}},
}
sets.midcast.Pet.PhysicalBloodPactRage = {
main="Nirvana",
sub="Elan Strap +1",
ammo="Sancus Sachet +1",
head={ name="Helios Band", augments={'Pet: Attack+30 Pet: Rng.Atk.+30','Pet: "Dbl. Atk."+8','Blood Pact Dmg.+7',}},
body="Con. Doublet +3",
hands={ name="Merlinic Dastanas", augments={'Pet: Mag. Acc.+21 Pet: "Mag.Atk.Bns."+21','Blood Pact Dmg.+8','Pet: DEX+8','Pet: Mag. Acc.+8','Pet: "Mag.Atk.Bns."+8',}},
legs={ name="Apogee Slacks +1", augments={'Pet: STR+20','Blood Pact Dmg.+14','Pet: "Dbl. Atk."+4',}},
feet={ name="Apogee Pumps +1", augments={'MP+80','Pet: Attack+35','Blood Pact Dmg.+8',}},
neck="Shulmanu Collar",
waist="Incarnation Sash",
left_ear="Gelos Earring",
right_ear="Lugalbanda Earring",
left_ring="Varar Ring +1",
right_ring="Varar Ring +1",
back={ name="Campestres's Cape", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20','Pet: Attack+10 Pet: Rng.Atk.+10','Pet: Haste+10',}},
}
sets.midcast.Pet.PhysicalBloodPactRage.Acc = set_combine(sets.midcast.Pet.PhysicalBloodPactRage, {waist="Incarnation Sash"})
sets.midcast.Pet.MagicalBloodPactRage = {
main={ name="Grioavolr", augments={'Blood Pact Dmg.+8','Pet: AGI+6','Pet: Mag. Acc.+5','Pet: "Mag.Atk.Bns."+28',}},
sub="Elan Strap +1",
ammo="Sancus Sachet +1",
head={ name="Apogee Crown +1", augments={'MP+80','Pet: "Mag.Atk.Bns."+35','Blood Pact Dmg.+8',}},
body={ name="Apo. Dalmatica +1", augments={'MP+80','Pet: "Mag.Atk.Bns."+35','Blood Pact Dmg.+8',}},
hands={ name="Merlinic Dastanas", augments={'Pet: Mag. Acc.+21 Pet: "Mag.Atk.Bns."+21','Blood Pact Dmg.+8','Pet: DEX+8','Pet: Mag. Acc.+8','Pet: "Mag.Atk.Bns."+8',}},
legs={ name="Apogee Slacks +1", augments={'MP+80','Pet: "Mag.Atk.Bns."+35','Blood Pact Dmg.+8',}},
feet={ name="Apogee Pumps +1", augments={'MP+80','Pet: "Mag.Atk.Bns."+35','Blood Pact Dmg.+8',}},
neck="Adad Amulet",
waist="Regal Belt",
left_ear="Lugalbanda Earring",
right_ear="Gelos Earring",
left_ring="Varar Ring +1",
right_ring="Varar Ring +1",
back={ name="Campestres's Cape", augments={'Pet: M.Acc.+20 Pet: M.Dmg.+20','Pet: Magic Damage+10','Pet: "Regen"+10',}},
}
sets.midcast.Pet.MagicalBloodPactRage.Acc = set_combine(sets.midcast.Pet.MagicalBloodPactRage, {waist="Incarnation Sash"})
-- Spirits cast magic spells, which can be identified in standard ways.
sets.midcast.Pet.WhiteMagic = {ear1="loquacious earring"}
sets.midcast.Pet['Elemental Magic'] = {neck="henic torque"}
sets.midcast.Pet['Elemental Magic'].Resistant = {"Mizu. Kubikazari"}
--------------------------------------
-- Idle/resting/defense/etc sets
--------------------------------------
-- Resting sets
sets.resting = {neck="stone gorget"}
-- Idle sets
sets.idle = {
main={ name="Keraunos", augments={'"Refresh"+1',}},
sub="Oneiros Grip",
ammo="Sancus Sachet +1",
head="Convoker's Horn +3",
body={ name="Apo. Dalmatica +1", augments={'Summoning magic skill +20','Enmity-6','Pet: Damage taken -4%',}},
hands="Asteria Mitts +1",
legs="Assid. Pants +1",
feet={ name="Merlinic Crackows", augments={'INT+7','DEX+10','"Refresh"+2','Accuracy+6 Attack+6','Mag. Acc.+19 "Mag.Atk.Bns."+19',}},
neck="Loricate Torque +1",
waist="Fucho-no-Obi",
left_ear={ name="Moonshade Earring", augments={'Mag. Acc.+4','Latent effect: "Refresh"+1',}},
right_ear="Etiolation Earring",
left_ring="Evoker's Ring",
right_ring="Defending Ring",
back={ name="Campestres's Cape", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20','Pet: Attack+10 Pet: Rng.Atk.+10','Pet: Haste+10',}},
}
sets.idle.PDT = set_combine(sets.idle, {waist="Fucho-no-Obi"})
--sets.idle.avatar is over wrote by sets.idle.avatar.favor if you have avatar favor up it will over write.
sets.idle.Avatar = {
main="Nirvana",
sub="Oneiros Grip",
ammo="Sancus Sachet +1",
head="Convoker's Horn +3",
body={ name="Apo. Dalmatica +1", augments={'Summoning magic skill +20','Enmity-6','Pet: Damage taken -4%',}},
hands="Asteria Mitts +1",
legs="Assid. Pants +1",
feet={ name="Merlinic Crackows", augments={'INT+7','DEX+10','"Refresh"+2','Accuracy+6 Attack+6','Mag. Acc.+19 "Mag.Atk.Bns."+19',}},
neck="Caller's Pendant",
waist="Fucho-no-Obi",
left_ear={ name="Moonshade Earring", augments={'Mag. Acc.+4','Latent effect: "Refresh"+1',}},
right_ear="Evans Earring",
left_ring="Evoker's Ring",
right_ring="Defending Ring",
back={ name="Campestres's Cape", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20','Pet: Attack+10 Pet: Rng.Atk.+10','Pet: Haste+10',}},
}
sets.idle.PDT.Avatar = set_combine(sets.idle.Avatar, {waist="Fucho-no-Obi"})
sets.idle.Spirit = set_combine(sets.idle.Avatar, {waist="Fucho-no-Obi"})
--gear automatically equiped when walking in adoulin areas is sets.Adoulin and sets.Movespeed is eqiped always when moving is detected.
sets.Adoulin = {
body="Councilor's Garb",
}
sets.MoveSpeed = {
feet = "Herald's Gaiters",
}
sets.idle.Town = {neck="Wiglen gorget"}
sets.idle.Avatar.Favor = set_combine(sets.idle.Avatar, {head="Beckoner's Horn +1"})
sets.idle.Avatar.Melee = {neck="smithy's torque"}
sets.perp = {legs="Hagondes Pants +1"}
sets.perp.Day = {legs="psycloth lappas"}
sets.perp.Weather = {legs="Gyve trousers"}
sets.perp.Carbuncle = {legs="nares trews"}
sets.perp.Alexander = sets.midcast.Pet.BloodPactWard
sets.perp.staff_and_grip = {main=gear.perp_staff,sub="Achaq Grip"}
-- Defense sets
sets.defense.PDT = {legs="portent pants"}
sets.defense.MDT = {legs="haven hose"}
sets.Kiting = {feet="Herald's gaiters"}
sets.latent_refresh = {waist="Fucho-no-obi"}
--------------------------------------
-- Engaged sets
--------------------------------------
-- Normal melee group
sets.engaged = {feet="regal pumps"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
mov = {counter=0}
if player and player.index and windower.ffxi.get_mob_by_index(player.index) then
mov.x = windower.ffxi.get_mob_by_index(player.index).x
mov.y = windower.ffxi.get_mob_by_index(player.index).y
mov.z = windower.ffxi.get_mob_by_index(player.index).z
end
moving = false
windower.raw_register_event('prerender',function()
mov.counter = mov.counter + 1;
if mov.counter>15 then
local pl = windower.ffxi.get_mob_by_index(player.index)
if pl and pl.x and mov.x then
dist = math.sqrt( (pl.x-mov.x)^2 + (pl.y-mov.y)^2 + (pl.z-mov.z)^2 )
if dist > 1 and not moving then
state.Moving.value = true
send_command('gs equip sets.MoveSpeed')
moving = true
elseif dist < 1 and moving then
state.Moving.value = false
send_command('gs c update')
moving = false
end
end
if pl and pl.x then
mov.x = pl.x
mov.y = pl.y
mov.z = pl.z
end
mov.counter = 0
end
end)
-- 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 state.Buff['Astral Conduit'] and pet_midaction() then
eventArgs.handled = true
end
end
function job_precast(spell, action, spellMap, eventArgs)
if spell.type == 'BloodPactRage' and
magicalRagePacts:contains(spell.english) then
enable('main', 'sub', 'range', 'ammo')
add_to_chat(122,'Weapons Unlocked due to magical BloodPactRage.')
elseif buffactive["Aftermath: Lv.1"] or buffactive["Aftermath: Lv.2"] or player.tp > 1000 then
disable('main', 'sub', 'range', 'ammo')
add_to_chat(122,'Weapon locked Aftermath engaged MagicalBloodPactRage not detected.')
elseif not buffactive["Aftermath: Lv.1"] or buffactive["Aftermath: Lv.2"] and player.tp < 1000 then
enable('main', 'sub', 'range', 'ammo')
add_to_chat(122,'Weapons free')
end
end
function job_midcast(spell, action, spellMap, eventArgs)
if state.Buff['Astral Conduit'] and pet_midaction() then
eventArgs.handled = true
end
end
-- Runs when pet completes an action.
function job_pet_aftercast(spell, action, spellMap, eventArgs)
if not spell.interrupted and spell.type == 'BloodPactWard' and spellMap ~= 'DebuffBloodPactWard' then
wards.flag = true
wards.spell = spell.english
send_command('wait 4; gs c reset_ward_flag')
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
handle_equipping_gear(player.status)
elseif storms:contains(buff) then
handle_equipping_gear(player.status)
end
end
-- Called when the player's pet's status changes.
-- This is also called after pet_change after a pet is released. Check for pet validity.
function job_pet_status_change(newStatus, oldStatus, eventArgs)
if pet.isvalid and not midaction() and not pet_midaction() and (newStatus == 'Engaged' or oldStatus == 'Engaged') then
handle_equipping_gear(player.status, newStatus)
end
end
-- Called when a player gains or loses a pet.
-- pet == pet structure
-- gain == true if the pet was gained, false if it was lost.
function job_pet_change(petparam, gain)
classes.CustomIdleGroups:clear()
if gain then
if avatars:contains(pet.name) then
classes.CustomIdleGroups:append('Avatar')
elseif spirits:contains(pet.name) then
classes.CustomIdleGroups:append('Spirit')
end
else
select_default_macro_book('reset')
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Custom spell mapping.
function job_get_spell_map(spell)
if spell.type == 'BloodPactRage' then
if magicalRagePacts:contains(spell.english) then
return 'MagicalBloodPactRage'
else
return 'PhysicalBloodPactRage'
end
elseif spell.type == 'BloodPactWard' and spell.target.type == 'MONSTER' then
return 'DebuffBloodPactWard'
end
end
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
if pet.isvalid then
if pet.element == world.day_element then
idleSet = set_combine(idleSet, sets.perp.Day)
end
if pet.element == world.weather_element then
idleSet = set_combine(idleSet, sets.perp.Weather)
end
if sets.perp[pet.name] then
idleSet = set_combine(idleSet, sets.perp[pet.name])
end
gear.perp_staff.name = elements.perpetuance_staff_of[pet.element]
if gear.perp_staff.name and (player.inventory[gear.perp_staff.name] or player.wardrobe[gear.perp_staff.name]) then
idleSet = set_combine(idleSet, sets.perp.staff_and_grip)
end
if state.Buff["Avatar's Favor"] and avatars:contains(pet.name) then
idleSet = set_combine(idleSet, sets.idle.Avatar.Favor)
end
if pet.status == 'Engaged' then
idleSet = set_combine(idleSet, sets.idle.Avatar.Melee)
end
end
if player.mpp < 51 then
idleSet = 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)
classes.CustomIdleGroups:clear()
if pet.isvalid then
if avatars:contains(pet.name) then
classes.CustomIdleGroups:append('Avatar')
elseif spirits:contains(pet.name) then
classes.CustomIdleGroups:append('Spirit')
end
end
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
end
-------------------------------------------------------------------------------------------------------------------
-- User self-commands.
-------------------------------------------------------------------------------------------------------------------
-- Called for custom player commands.
function job_self_command(cmdParams, eventArgs)
if cmdParams[1]:lower() == 'petweather' then
handle_petweather()
eventArgs.handled = true
elseif cmdParams[1]:lower() == 'siphon' then
handle_siphoning()
eventArgs.handled = true
elseif cmdParams[1]:lower() == 'pact' then
handle_pacts(cmdParams)
eventArgs.handled = true
elseif cmdParams[1] == 'reset_ward_flag' then
wards.flag = false
wards.spell = ''
eventArgs.handled = true
end
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Cast the appopriate storm for the currently summoned avatar, if possible.
function handle_petweather()
if player.sub_job ~= 'SCH' then
add_to_chat(122, "You can not cast storm spells")
return
end
if not pet.isvalid then
add_to_chat(122, "You do not have an active avatar.")
return
end
local element = pet.element
if element == 'Thunder' then
element = 'Lightning'
end
if S{'Light','Dark','Lightning'}:contains(element) then
add_to_chat(122, 'You do not have access to '..elements.storm_of[element]..'.')
return
end
local storm = elements.storm_of[element]
if storm then
send_command('@input /ma "'..elements.storm_of[element]..'" <me>')
else
add_to_chat(123, 'Error: Unknown element ('..tostring(element)..')')
end
end
-- Custom uber-handling of Elemental Siphon
function handle_siphoning()
if areas.Cities:contains(world.area) then
add_to_chat(122, 'Cannot use Elemental Siphon in a city area.')
return
end
local siphonElement
local stormElementToUse
local releasedAvatar
local dontRelease
-- If we already have a spirit out, just use that.
if pet.isvalid and spirits:contains(pet.name) then
siphonElement = pet.element
dontRelease = true
-- If current weather doesn't match the spirit, but the spirit matches the day, try to cast the storm.
if player.sub_job == 'SCH' and pet.element == world.day_element and pet.element ~= world.weather_element then
if not S{'Light','Dark','Lightning'}:contains(pet.element) then
stormElementToUse = pet.element
end
end
-- If we're subbing /sch, there are some conditions where we want to make sure specific weather is up.
-- If current (single) weather is opposed by the current day, we want to change the weather to match
-- the current day, if possible.
elseif player.sub_job == 'SCH' and world.weather_element ~= 'None' then
-- We can override single-intensity weather; leave double weather alone, since even if
-- it's partially countered by the day, it's not worth changing.
if get_weather_intensity() == 1 then
-- If current weather is weak to the current day, it cancels the benefits for
-- siphon. Change it to the day's weather if possible (+0 to +20%), or any non-weak
-- weather if not.
-- If the current weather matches the current avatar's element (being used to reduce
-- perpetuation), don't change it; just accept the penalty on Siphon.
if world.weather_element == elements.weak_to[world.day_element] and
(not pet.isvalid or world.weather_element ~= pet.element) then
-- We can't cast lightning/dark/light weather, so use a neutral element
if S{'Light','Dark','Lightning'}:contains(world.day_element) then
stormElementToUse = 'Wind'
else
stormElementToUse = world.day_element
end
end
end
end
-- If we decided to use a storm, set that as the spirit element to cast.
if stormElementToUse then
siphonElement = stormElementToUse
elseif world.weather_element ~= 'None' and (get_weather_intensity() == 2 or world.weather_element ~= elements.weak_to[world.day_element]) then
siphonElement = world.weather_element
else
siphonElement = world.day_element
end
local command = ''
local releaseWait = 0
if pet.isvalid and avatars:contains(pet.name) then
command = command..'input /pet "Release" <me>;wait 1.1;'
releasedAvatar = pet.name
releaseWait = 10
end
if stormElementToUse then
command = command..'input /ma "'..elements.storm_of[stormElementToUse]..'" <me>;wait 4;'
releaseWait = releaseWait - 4
end
if not (pet.isvalid and spirits:contains(pet.name)) then
command = command..'input /ma "'..elements.spirit_of[siphonElement]..'" <me>;wait 4;'
releaseWait = releaseWait - 4
end
command = command..'input /ja "Elemental Siphon" <me>;'
releaseWait = releaseWait - 1
releaseWait = releaseWait + 0.1
if not dontRelease then
if releaseWait > 0 then
command = command..'wait '..tostring(releaseWait)..';'
else
command = command..'wait 1.1;'
end
command = command..'input /pet "Release" <me>;'
end
if releasedAvatar then
command = command..'wait 1.1;input /ma "'..releasedAvatar..'" <me>'
end
send_command(command)
end
-- Handles executing blood pacts in a generic, avatar-agnostic way.
-- cmdParams is the split of the self-command.
-- gs c [pact] [pacttype]
function handle_pacts(cmdParams)
if areas.Cities:contains(world.area) then
add_to_chat(122, 'You cannot use pacts in town.')
return
end
if not pet.isvalid then
add_to_chat(122,'No avatar currently available. Returning to default macro set.')
select_default_macro_book('reset')
return
end
if spirits:contains(pet.name) then
add_to_chat(122,'Cannot use pacts with spirits.')
return
end
if not cmdParams[2] then
add_to_chat(123,'No pact type given.')
return
end
local pact = cmdParams[2]:lower()
if not pacts[pact] then
add_to_chat(123,'Unknown pact type: '..tostring(pact))
return
end
if pacts[pact][pet.name] then
if pact == 'astralflow' and not buffactive['astral flow'] then
add_to_chat(122,'Cannot use Astral Flow pacts at this time.')
return
end
-- Leave out target; let Shortcuts auto-determine it.
send_command('@input /pet "'..pacts[pact][pet.name]..'"')
else
add_to_chat(122,pet.name..' does not have a pact of type ['..pact..'].')
end
end
-- Event handler for updates to player skill, since we can't rely on skill being
-- correct at pet_aftercast for the creation of custom timers.
windower.raw_register_event('incoming chunk',
function (id)
if id == 0x62 then
if wards.flag then
create_pact_timer(wards.spell)
wards.flag = false
wards.spell = ''
end
end
end)
-- Function to create custom timers using the Timers addon. Calculates ward duration
-- based on player skill and base pact duration (defined in job_setup).
function create_pact_timer(spell_name)
-- Create custom timers for ward pacts.
if wards.durations[spell_name] then
local ward_duration = wards.durations[spell_name]
if ward_duration < 181 then
local skill = player.skills.summoning_magic
if skill > 300 then
skill = skill - 300
if skill > 200 then skill = 200 end
ward_duration = ward_duration + skill
end
end
local timer_cmd = 'timers c "'..spell_name..'" '..tostring(ward_duration)..' down'
if wards.icons[spell_name] then
timer_cmd = timer_cmd..' '..wards.icons[spell_name]
end
send_command(timer_cmd)
end
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book(reset)
if reset == 'reset' then
-- lost pet, or tried to use pact when pet is gone
end
-- Default macro set/book
set_macro_page(4, 16)
end
Fenrir.Caiir
VIP
Server: Fenrir
Game: FFXI
Posts: 199
By Fenrir.Caiir 2017-06-10 22:24:07
You need to not equip aftercast gear if you're using a bloodpact ability. It's entirely possible the JA completion packet comes in after the avatar JA start packet.
You use JA : Precast event equips gear
Pet starts ability : Pet midcast event equips gear
Your JA has finished: Aftercast event equips gear (your pet is now casting with your aftercast gear)
Pets JA has finished: Pet aftercast event equips gear
Server: Leviathan
Game: FFXI
Posts: 3753
By Leviathan.Celebrindal 2017-06-11 00:15:38
Issue with some updates to my RNG lua...
Cele's RNG lua
Firstly, I added in a rule for double shot(line 536), in the hopes that it will combine my Oshosi Mask(and future Oshosi pieces,likely) with my currently active midshot set. It isn't fully working as intended.
Second, it gets really messed up if both Double Shot and Camouflage are active...since I have defined sets for Camouflage I would like it to default to my Camouflage set.
Any help is appreciated!
Shiva.Hiep
Server: Shiva
Game: FFXI
Posts: 669
By Shiva.Hiep 2017-06-11 20:47:10
I can't figure out why my refoccilation stone isn't equipping for any of my elemental nukes outside of weather-based ones. Any ideas?
https://pastebin.com/CdkJdTS7
Asura.Chiaia
VIP
Server: Asura
Game: FFXI
Posts: 1656
By Asura.Chiaia 2017-06-11 22:12:55
I can't figure out why my refoccilation stone isn't equipping for any of my elemental nukes outside of weather-based ones. Any ideas?
https://pastebin.com/CdkJdTS7
You have it named gear.obi_waist = "Refoccilation Stone" but then try to call it in most sets with gear.ElementalObi
Server: Sylph
Game: FFXI
Posts: 184
By Sylph.Subadai 2017-06-11 22:47:18
I can't figure out why my refoccilation stone isn't equipping for any of my elemental nukes outside of weather-based ones. Any ideas?
https://pastebin.com/CdkJdTS7
You have it named gear.obi_waist = "Refoccilation Stone" but then try to call it in most sets with gear.ElementalObi No, gear.ElementalObi works; Mote-libs will equip the proper obi if you have one and day/weather bonus applies. I believe you need to use gear.default.obi_waist instead of gear.obi_waist to define the waist piece to equip when day/weather does not apply.
By Rainemard 2017-06-16 10:59:49
https://pastebin.com/93GbgPSg
Could someone help me out? I've been struggling with getting sets.midcast.Stoneskin and sets.midcast.Refresh to work; I can load them using //gs equip sets.midcast.Stoneskin, but if I actually cast stoneskin, it equips my sets.midcast['Enhancing Magic'] set. I tried switching the order around to no avail, I've used set_combine in stoneskin to combine the sets.midcast['Enhancing Magic'] with the Stoneskin potency items and I've tried adding Stoneskin to the list of spells in GearSwap/libs/Mote-Mappings.lua. The one thing that has made it work so far is blatantly deleting the sets.midcast['Enhancing Magic'], which I don't want to do obviously since it'd affect my other enhancing spells. I figured it must be a priority problem of some sorts, but I don't know how to fix this. Also, I've added all enspells in GearSwap/libs/Mote-Mappings.lua under the group 'Enspell', one by one. Does this mean I can use them as sets.midcast.Enspell in my RDM lua? Thanks in advance for helping out! :)
Ragnarok.Martel
Server: Ragnarok
Game: FFXI
Posts: 2975
By Ragnarok.Martel 2017-06-16 11:09:38
I can't tell from looking at your lua, because it's a motenten lua and has includes that aren't shown in that pastebin, but presumably the sets.midcast.spellname rule occurs in the midcast rules in the include, and then is overwritten by your enhancing magic rule in the job_post_midcast function.
To avoid this you'd either need to add some kind of exception to prevent the job_post_midcast enhancing magic rule from activating on select spells, or you'd need a sets.midcast.spellname rule duplicate in your job_post_midcast.
By Rainemard 2017-06-16 11:33:04
Is there a better standardized RDM lua I can adjust that has it's priorities right? If there isn't, which of these would you reckon has the priority description in it?
libs/Modes.lua
libs/Mote-Globals.lua
libs/Mote-Include.lua
libs/Mote-Mappings.lua
libs/Mote-SelfCommands.lua
libs/Mote-TreasureHunter.lua
libs/Mote-Utility.lua
libs/organizer-lib.lua
I have a feeling it's Mote-Include, which is this one:
https://pastebin.com/qUVZJZu8
I've been trying to find where the ['Enhancing Magic'] spell list is, but I can't find it in any of the files. That would be the easiest fix for me, just removing stoneskin from that list. I can't find it anywhere though. Thanks for helping out btw!
Ragnarok.Martel
Server: Ragnarok
Game: FFXI
Posts: 2975
By Ragnarok.Martel 2017-06-16 12:25:41
The skill a spell uses is part of the resources, so it's not going to be listed in a job lua, cause there's no need to do so.(DON'T edit your resources.)
It looks like the midcast call, and the functions it calls are in mote include, but I have trouble making sense of some of mote's stuff, and editing it would probably be a really bad idea.
Let's go for the simple solution.
On line 262 where you have,
elseif spell.skill == 'Enhancing Magic' then
Do this instead.
elseif spell.skill == 'Enhancing Magic' not sets.midcast[spell.english] then
The, not sets.midcast[spell.english] portion added to this rule checks to see if a gear set matching set.midcast.exactspellname exists. If you're casting stoneskin then it would look for sets.midcast.Stoneskin. If it finds such a set in your get_sets then the rule fails, and the enhancing section is skipped.
By Rainemard 2017-06-16 12:44:58
It should work, but when I reload GS it gives an error message saying "then" is expected near "not", even though it's right behind the argument. I feel stupid for asking, but what is GS on about?
Edit: Fixed it by making it say "and not [arg] then"
By Rainemard 2017-06-16 12:51:27
At least it works for individual spells now, do you also know a sets.midcast[arg] for groups of spells like Cure or Status removal (in my case enspells)? Thanks a lot for the help btw, learning a lot! :)
Edit: For clarification, I've added 6 T1 enspells in this list:
https://pastebin.com/nzmeL1gy
Made the group name "Enspell", but I'm not quite sure how to utilize it in the job lua yet. How do I refer to this list, or is this done automatically?
Edit 2: Nvm, asked a little too soon! Managed to make another "and not [arg]" behind the first one using [spellMap]! :) Thanks again for your help, it's been a valuable evening!
Ragnarok.Martel
Server: Ragnarok
Game: FFXI
Posts: 2975
By Ragnarok.Martel 2017-06-16 13:27:15
It should work, but when I reload GS it gives an error message saying "then" is expected near "not", even though it's right behind the argument. I feel stupid for asking, but what is GS on about?
Edit: Fixed it by making it say "and not [arg] then" Yeah, I forgot an and there. Helps to be able to test things. But you got the idea.
Asura.Wyrd
By Asura.Wyrd 2017-06-18 23:08:13
Asura.Ladyofhonor said: »So what's the best way to get the same ring to equip in both slots? Best I've seen just says to have ring1 at the start of a gearset and ring2 at the end, is that the best that can be done?
I'm not entirely sure what you mean by this, would you mind clarifying?
Do you mean equipping two of the same ring name, or equipping the exact same ring to two different slots? I suspect this is the same as I am trying to do. I am trying to equip a mache earring in each ear slot (ear1 and ear2) and it sends an error message "Failed to equip the mache earring."
Asura.Wyrd
By Asura.Wyrd 2017-06-18 23:29:28
Asura.Ladyofhonor said: »So what's the best way to get the same ring to equip in both slots? Best I've seen just says to have ring1 at the start of a gearset and ring2 at the end, is that the best that can be done?
I'm not entirely sure what you mean by this, would you mind clarifying?
Do you mean equipping two of the same ring name, or equipping the exact same ring to two different slots? I suspect this is the same as I am trying to do. I am trying to equip a mache earring in each ear slot (ear1 and ear2) and it sends an error message "Failed to equip the mache earring."
Discovered this is only seemingly an issue if if both earrings are in the same place (ie wardrobe2, inventory, etc). Putting each in a different container seems to circumvent the issue.
Edit: Next day with both Mache Earrings in different wardrobes the trouble began again. The behavior seems rather inconsistent.
Server: Asura
Game: FFXI
Posts: 4
By Asura.Bloodkitten 2017-06-23 02:11:55
Can anyone please explain to me how to get gearswap to use a specific augmented equipment.
Server: Leviathan
Game: FFXI
Posts: 3753
By Leviathan.Celebrindal 2017-06-23 03:03:09
Asura.Bloodkitten said: »Can anyone please explain to me how to get gearswap to use a specific augmented equipment.
1. equip the piece of gear in question.
2. use //gs export
3. in notepad++ look in the "data" folder of Gearswap, and you'll see a folder titled "export". When you did the previous command, it created a file with the naming convention of <character> <timestamp>.
4. Open file.
5. See the piece of gear in question with all the proper augments already there.
6. Copy/Paste into the lua you need it in.
[+]
Server: Asura
Game: FFXI
Posts: 4
By Asura.Bloodkitten 2017-06-23 07:19:24
thank you
Lakshmi.Reddwarf
Server: Lakshmi
Game: FFXI
Posts: 160
By Lakshmi.Reddwarf 2017-06-23 23:59:45
so.. i dont know why buy as long as i can remember, my gearswap does NOT allow me to use "gs" as a shortcut, EVERY command i use has to be "gearswap" gearswap c, gs c DOES NOT WORK. any solution?
Server: Fenrir
Game: FFXI
Posts: 9
By Fenrir.Dracosam 2017-06-24 10:32:20
Hello, don't know if anyone can help me but my doom equipement dosen't equip. it seem like that it dosen't reconise buffactive['Doom'] buffactive['doom'] or buffactive.Doom
but when i try it with buffactive['Protect'] it seem to work :(
Code
function job_setup()
state.Buff.Doom = buffactive['Doom'] or false
-- /BLU Spell Maps
blue_magic_maps = {}
blue_magic_maps.Enmity = S{'Blank Gaze', 'Geist Wall', 'Jettatura', 'Soporific',
'Poison Breath', 'Blitzstrahl', 'Sheep Song', 'Chaotic Eye'}
blue_magic_maps.Cure = S{'Wild Carrot'}
blue_magic_maps.Buffs = S{'Cocoon', 'Refueling'}
rayke_duration = 50
gambit_duration = 98
end
Code
function job_buff_change(buff,gain)
if buffactive['Doom'] and gain then
handle_equipping_gear(player.status)
end
-- If we gain or lose any haste buffs, adjust which gear set we target.
if buffactive['Reive Mark'] then
equip(sets.Reive)
disable('neck')
else
enable('neck')
end
end
Server: Sylph
Game: FFXI
Posts: 184
By Sylph.Subadai 2017-06-26 16:54:14
so.. i dont know why buy as long as i can remember, my gearswap does NOT allow me to use "gs" as a shortcut, EVERY command i use has to be "gearswap" gearswap c, gs c DOES NOT WORK. any solution? Maybe gs is aliased to something different? Worst case, you can always add alias gs gearswap to your init.txt.
Server: Sylph
Game: FFXI
Posts: 184
By Sylph.Subadai 2017-06-26 16:56:32
Hello, don't know if anyone can help me but my doom equipement dosen't equip. it seem like that it dosen't reconise buffactive['Doom'] buffactive['doom'] or buffactive.Doom
but when i try it with buffactive['Protect'] it seem to work :( See here for a solution, assuming you're using Mote-libs.
Lakshmi.Reddwarf
Server: Lakshmi
Game: FFXI
Posts: 160
By Lakshmi.Reddwarf 2017-06-26 20:49:39
so.. i dont know why buy as long as i can remember, my gearswap does NOT allow me to use "gs" as a shortcut, EVERY command i use has to be "gearswap" gearswap c, gs c DOES NOT WORK. any solution? Maybe gs is aliased to something different? Worst case, you can always add alias gs gearswap to your init.txt.
OMG i think you're right, i have it set for my DRK to switch to Greatsword. i'll try removing that to see what happens.
Server: Fenrir
Game: FFXI
Posts: 9
By Fenrir.Dracosam 2017-06-26 21:33:45
Hello, don't know if anyone can help me but my doom equipement dosen't equip. it seem like that it dosen't reconise buffactive['Doom'] buffactive['doom'] or buffactive.Doom
but when i try it with buffactive['Protect'] it seem to work :( See here for a solution, assuming you're using Mote-libs. thanks i will try and test it. but i don't understand why it work when i try 'protect' and when i go test it for doom it's not working :( i will come back to you tommorow night ;)
Server: Fenrir
Game: FFXI
Posts: 9
By Fenrir.Dracosam 2017-06-27 21:18:45
Sylph.Subadai said: »
Fenrir.Dracosam said: »
Hello, don't know if anyone can help me but my doom equipement dosen't equip. it seem like that it dosen't reconise buffactive['Doom'] buffactive['doom'] or buffactive.Doom
but when i try it with buffactive['Protect'] it seem to work :(
See here for a solution, assuming you're using Mote-libs.
thanks i will try and test it. but i don't understand why it work when i try 'protect' and when i go test it for doom it's not working :( i will come back to you tommorow night ;)
still not working ... maybe i missed something in my code here it is if you have 2 sec to take a look
https://pastebin.com/mpJG4NTF
Server: Shiva
Game: FFXI
Posts: 1052
By Shiva.Arislan 2017-06-27 21:40:46
Is there a reason you decided to change the original doom function in my lua? The way you're trying to do it seems over-complicated.
Try one of these, maybe it'll help:
Code state.Buff.Doom = buffactive['doom'] or false Code state.Buff.Doom = buffactive['doomed'] or false
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.
|
|