|
Gearswap Support Thread
Ragnarok.Aramakii
Server: Ragnarok
Game: FFXI
Posts: 4
By Ragnarok.Aramakii 2016-09-10 23:18:38
Oh man, I wasn't aware of that(obviously) lol. That definitely makes it a lot easier to understand
I just got around to pasting your rules into the lua, everything is working as intended now! You have no idea how grateful I am. that was giving me such a headache. Thank you very much Flip!
Server: Asura
Game: FFXI
Posts: 1463
By Asura.Carrotchan 2016-09-11 17:33:32
Spicyryan said: Have an issue with my gearswap I am not quite sure how to address. Anytime I am below 50% MP my Fucho-no-Obi is supposed to come on while idle.
The issue is this prevents me from using warp or escha ring below 50%, and more importantly if I am nuking below 50% MP then it will equip my idle set instead of my nuking set while entering midcast. -_-
Halp prz?!
Lua:
http://pastebin.com/aw7NAt9s
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-11 18:11:45
That's something that should just be handled in your IdleState() function, which you should be calling from your aftercast too (in this case, the function ac_Global()). player.mpp will return your current MP percentage.
There's not really much reason to have it automatically equip when your MP hits less than 50%, because the only way that could happen and you aren't passing through that function is if you unweaken or have some sort of -MP tick and never take an action, the former of which you can address through buff change.
Server: Asura
Game: FFXI
Posts: 1463
By Asura.Carrotchan 2016-09-11 18:30:19
Ragnarok.Flippant said: »That's something that should just be handled in your IdleState() function, which you should be calling from your aftercast too (in this case, the function ac_Global()). player.mpp will return your current MP percentage.
There's not really much reason to have it automatically equip when your MP hits less than 50%, because the only way that could happen and you aren't passing through that function is if you unweaken or have some sort of -MP tick and never take an action, the former of which you can address through buff change.
Spicyryan said: Egh, I am not that great at doing GS, I just try my best and things like this are the result :|
Not sure how to make this happen.
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-11 18:41:45
Change the ac_Global() function to: Code function ac_Global()
if LockGearIndex == true then
ChangeGear(LockGearSet)
msg("Lock Gear is ON -- Swapping Gear")
else
if player.status == 'Engaged' then
EngagedState()
else
IdleState()
end
end
end
This will help standardize your functions, so that if you ever edit how you want to handle idle and engaged gear, you can do it from the IdleState() and EngagedState() functions respectively, and it will work regardless of whether you changed status or just casted something.
Then change your IdleState() function to: Code function IdleState()
ChangeGear(sets.Idle[sets.Idle.index[Idle_ind]])
if player.mpp <= 50 then
ChangeGear({waist = "Fucho-no-obi"})
end
end
Lastly, remove the MPP event (lines 15-21).
[+]
Server: Asura
Game: FFXI
Posts: 1463
By Asura.Carrotchan 2016-09-11 18:52:35
Ragnarok.Flippant said: »Change the ac_Global() function to: Code function ac_Global()
if LockGearIndex == true then
ChangeGear(LockGearSet)
msg("Lock Gear is ON -- Swapping Gear")
else
if player.status == 'Engaged' then
EngagedState()
else
IdleState()
end
end
end
This will help standardize your functions, so that if you ever edit how you want to handle idle and engaged gear, you can do it from the IdleState() and EngagedState() functions respectively, and it will work regardless of whether you changed status or just casted something.
Then change your IdleState() function to: Code function IdleState()
ChangeGear(sets.Idle[sets.Idle.index[Idle_ind]])
if player.mpp <= 50 then
ChangeGear({waist = "Fucho-no-obi"})
end
end
Lastly, remove the MPP event (lines 15-21).
Spicy said: Tyvm :D
One last issue that is more an annoyance than an issue.
Sometimes I get a conflict with the distance check on line 192:
attempt to compare number with nil
It is more annoying that anything since it causes no problems, it is random, sometimes rare, but it happens. :| Any suggestions for that?
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-11 18:56:45
Probably happens if you accidentally try to WS with no target. You can change the condition to Code elseif player.tp >= 1000 and player.target and player.target.distance and player.target.distance > 6 and spell.type == 'WeaponSkill' then
[+]
Server: Asura
Game: FFXI
Posts: 1463
By Asura.Carrotchan 2016-09-11 19:00:38
Ragnarok.Flippant said: »Probably happens if you accidentally try to WS with no target. You can change the condition to Code elseif player.tp >= 1000 and player.target and player.target.distance and player.target.distance > 6 and spell.type == 'WeaponSkill' then
TY :D
Server: Asura
Game: FFXI
Posts: 1326
By Asura.Azagarth 2016-09-12 18:15:49
Having an issue with my drk lua. I am trying to get my berserkers torque to auto equip when slept. I borrowed what I have from a war lua, but i dont think that should impact this at all. I have been testing and it just will not equip the dang torque when I am slept.
My code is messy but its at the end.
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
include('Include/AugmentedGear.lua')
-------------------------------------------------------------------------------------------------------------------
-- 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('Rag', 'RagACC', 'Apoc', 'ApocACC')
state.HybridMode:options ('Reraise')
state.WeaponskillMode:options('Normal', 'Acc')
state.CastingMode:options('Normal', 'Resistant')
state.PhysicalDefenseMode:options('PDT')
state.MagicalDefenseMode:options('MDT')
select_default_macro_book()
end
-- Elements for skillchain names
skillchain_elements = {}
skillchain_elements.Light = S{'Light','Fire','Wind','Lightning'}
skillchain_elements.Darkness = S{'Dark','Ice','Earth','Water'}
skillchain_elements.Fusion = S{'Light','Fire'}
skillchain_elements.Fragmentation = S{'Wind','Lightning'}
skillchain_elements.Distortion = S{'Ice','Water'}
skillchain_elements.Gravitation = S{'Dark','Earth'}
skillchain_elements.Transfixion = S{'Light'}
skillchain_elements.Compression = S{'Dark'}
skillchain_elements.Liquification = S{'Fire'}
skillchain_elements.Induration = S{'Ice'}
skillchain_elements.Detonation = S{'Wind'}
skillchain_elements.Scission = S{'Earth'}
skillchain_elements.Impaction = S{'Lightning'}
skillchain_elements.Reverberation = S{'Water'}
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
sets.WSDayBonus = {head="Gavialis Helm"}
-- Precast sets to enhance JAs
sets.precast.JA['Diabolic Eye'] = {hands="Fallen's finger gauntlets +1"}
sets.precast.JA['Arcane Circle'] = {feet="Ignominy Sollerets"}
sets.precast.JA['Nether Void'] = {legs="Heath. Flanchard +1"}
sets.precast.JA['Souleater'] = {head="Ignominy Burgeonet"}
sets.precast.JA['Weapon Bash'] = {hands="Ignominy Gauntlets"}
sets.precast.JA['Last Resort'] = {back="Ankou's Mantle",feet="Fallen's Sollerets"}
sets.precast.JA['Dark Seal'] = {head="Fallen's Burgeonet"}
sets.precast.JA['Blood Weapon'] = {body="Fallen's Cuirass"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {}
-- Fast cast sets for spells
-- Precast Sets
sets.precast.FC = {
ammo="Staunch Tathlum",
head="Carmine Mask",
neck="Willpower Torque",
ear1="Loquacious Earring",
ear2="Enchanter Earring +1",
body=OdysBody.WSD,
hands="Leyline Gloves",
ring1="Prolix Ring",
ring2="Meridian Ring",
back="Niht Mantle",
waist="Tempus Fugit",
legs="Eschite cuisses",
feet="Carmine greaves",
}
-- Specific spells
sets.midcast.Utsusemi = {
ammo="Staunch Tathlum",
head="Carmine Mask",
neck="Willpower Torque",
ear1="Loquacious Earring",
ear2="Enchanter Earring +1",
body=OdysBody.WSD,
hands="Leyline Gloves",
ring1="Prolix Ring",
ring2="Evanescence Ring",
back="Niht Mantle",
waist="Ioskeha belt",
legs="Eschite cuisses",
feet="Carmine greaves",
}
sets.midcast.DarkMagic = {
ammo="Hydrocera",
head="Carmine Mask",
body="Found. Breastplate",
hands="Fallen's finger gauntlets +1",
legs="Eschite cuisses",
feet="Carmine greaves",
neck="Deceiver's torque",
waist="Casso sash",
left_ear="Enchanter Earring +1",
right_ear="Dark Earring",
left_ring="Stikini Ring",
right_ring="Evanescence Ring",
back="Niht Mantle",
}
sets.midcast.Endark = {
head="Carmine mask",
neck="Deceiver's Torque",
ear1="Dark Earring",
body="Demon's harness",
hands="Fallen's finger gauntlets +1",
left_ring="Stikini Ring",
right_ring="Evanescence Ring",
waist="Casso sash",
legs="Eschite cuisses",
feet="Inferno Sabots +1",
back="Niht Mantle",
}
sets.midcast['Endark II'] = sets.midcast.Endark
sets.midcast['Dread Spikes'] = {
ammo="Egoist's Tathlum",
head="Blistering sallet",
body="Heathen's Cuirass +1",
hands="Emicho guantlets",
legs=ValoLegs.MAB,
feet="Amm greaves",
neck="Dualism Collar +1",
waist="Oneiros Belt",
left_ear="Cassie Earring",
right_ear="Thureous Earring",
left_ring="Etana Ring",
right_ring="Meridian Ring",
back="Aenoth. Mantle +1",
}
sets.midcast['Elemental Magic'] = {
ammo="Seething bomblet",
head="Jumalik Helm",
body="Found. Breastplate",
hands="Leyline gloves",
legs=ValoLegs.MAB,
feet="Founder's greaves",
neck="Deviant necklace",
waist="Olympus sash",
left_ear="Static Earring",
right_ear="Friomisi Earring",
left_ring="Locus Ring",
right_ring="Mujin Band",
back="Toro cape",
}
sets.midcast['Enfeebling Magic'] = {ammo="Hydrocera",
head="Founder's Corona",
body="Found. Breastplate",
hands="Leyline Gloves",
legs="Eschite cuisses",
feet="Founder's greaves",
neck="Deceiver's torque",
waist="Casso sash",
left_ear="Enchntr. Earring +1",
right_ear="Digni. Earring",
left_ring="Stikini Ring",
right_ring="Stikini Ring",
back="Chuparrosa Mantle",
}
sets.midcast.Stun = set_combine(sets.midcast.DarkMagic), {
ammo="Hydrocera",
head="Carmine Mask",
neck="Deceiver's torque",
ear1="Loquacious Earring",
ear2="Enchanter Earring +1",
body=OdysBody.WSD,
hands="Leyline Gloves",
ring1="Stikini Ring",
ring2="Evanescence Ring",
waist="Tempus fugit",
legs="Eschite cuisses",
feet="Carmine Greaves",
}
sets.midcast.Absorb = set_combine(sets.midcast.DarkMagic), {
ammo="Hydrocera",
head="Carmine Mask",
body="Found. Breastplate",
hands="Fallen's finger gauntlets +1",
legs="Eschite cuisses",
feet="Carmine greaves",
neck="Deceiver's torque",
waist="Casso sash",
left_ear="Enchntr. Earring +1",
right_ear="Dark Earring",
left_ring="Stikini Ring",
right_ring="Evanescence Ring",
back="Chuparrosa Mantle",
}
sets.midcast.Drain = {
ammo="Hydrocera",
neck="Deceiver's torque",
left_ear="Enchanter Earring +1",
right_ear="Dark Earring",
body="Lugra cloak +1",
hands="Fallen's finger gauntlets +1",
left_ring="Stikini Ring",
right_ring="Evanescence Ring",
back="Niht Mantle",
waist="Casso sash",
legs="Eschite cuisses",
feet="Carmine greaves"
}
sets.midcast.Aspir = sets.midcast.Drain
-- Weaponskill sets
-------------------------------------------------------------- SCYTHE -----------------------------------------------------------------------
sets.precast.WS['Catastrophe'] = set_combine(sets.precast.WS, {
ammo="Seething Bomblet",
head=ValoHead.WSDSTR,
body=OdysBody.WSD,
hands=OdysHands.WSDVIT,
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Petrov Ring",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Catastrophe'].Acc = set_combine(sets.precast.WS.Acc, {
ammo="Seething Bomblet",
head=ValoHead.WSD,
body=OdysBody.WSD,
hands=OdysHands.WSDACC,
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Petrov Ring",
right_ring="Cacoethic",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Catastrophe'].Mod = set_combine(sets.precast.WS['Catastrophe'], {})
sets.precast.WS['Cross Reaper'] = set_combine(sets.precast.WS, {
ammo="Seething Bomblet",
head="Argosy Celata",
body="Argosy Hauberk",
hands="Argosy Mufflers",
legs="Argosy Breeches",
feet="Argosy Sollerets",
neck="Fotia Gorget",
waist="Grunfeld rope",
left_ear="Cessance earring",
right_ear="Brutal earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Cross Reaper'].Acc = set_combine(sets.precast.WS.Acc, {
ammo="Seething Bomblet",
head="Argosy Celata",
body="Argosy Hauberk",
hands="Argosy Mufflers",
legs="Argosy Breeches",
feet="Argosy Sollerets",
neck="Fotia Gorget",
waist="Grunfeld rope",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Cross Reaper'].Mod = set_combine(sets.precast.WS['Cross Reaper'], {})
sets.precast.WS['Quietus'] = set_combine(sets.precast.WS, {
ammo="Seething Bomblet",
head="Sulevia's Mask +1",
body="Sulevia's Plate. +1",
hands="Sulev. Gauntlets +1",
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Digni. Earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
sets.precast.WS['Quietus'].Acc = set_combine(sets.precast.WS.Acc, {
ammo="Seething Bomblet",
head="Sulevia's Mask +1",
body="Sulevia's Plate. +1",
hands="Sulev. Gauntlets +1",
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Digni. Earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
sets.precast.WS['Quietus'].Mod = set_combine(sets.precast.WS['Cross Reaper'], {})
sets.precast.WS['Entropy'] = set_combine(sets.precast.WS, {
ammo="Ghastly Tathlum",
head="Carmine Mask",
body="Sulevia's Plate. +1",
hands="Emicho Gauntlets",
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Digni. Earring",
left_ring="Mujin band",
right_ring="Acumen Ring",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
sets.precast.WS['Entropy'].Acc = set_combine(sets.precast.WS.Acc, {
ammo="Ghastly Tathlum",
head="Carmine Mask",
body="Sulevia's Plate. +1",
hands="Emicho Gauntlets",
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Digni. Earring",
left_ring="Mujin band",
right_ring="Acumen Ring",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
sets.precast.WS['Entropy'].Mod = set_combine(sets.precast.WS['Entropy'], {})
sets.precast.WS['Insurgency'] = set_combine(sets.precast.WS, {
ammo="Seething Bomblet",
head="Argosy Celata",
body="Argosy Hauberk",
hands="Argosy Mufflers",
legs="Argosy Breeches",
feet="Argosy Sollerets",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Brutal earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
sets.precast.WS['Insurgency'].Acc = set_combine(sets.precast.WS.Acc, {
ammo="Seething Bomblet",
head="Argosy Celata",
body="Argosy Hauberk",
hands="Argosy Mufflers",
legs="Argosy Breeches",
feet="Argosy Sollerets",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
sets.precast.WS['Insurgency'].Mod = set_combine(sets.precast.WS['Entropy'], {})
-------------------------------------------------------------------- SWORD ---------------------------------------------------------------------------------
sets.precast.WS['Sanguine Blade'] = {
ammo="Seething bomblet",
head="Jumalik Helm",
body="Found. Breastplate",
hands="Leyline gloves",
legs=ValoLegs.MAB,
feet="Founder's greaves",
neck="Deviant necklace",
waist="Olympus sash",
left_ear="Static Earring",
right_ear="Friomisi Earring",
left_ring="Locus Ring",
right_ring="Mujin Band",
back="Toro cape",
}
sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {
ammo="Seething Bomblet",
head=ValoHead.WSDSTR,
body=OdysBody.WSD,
hands=OdysHands.WSDVIT,
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {
ammo="Seething Bomblet",
head="Argosy Celata",
body="Argosy Hauberk",
hands="Argosy Mufflers",
legs="Argosy Breeches",
feet="Argosy Sollerets",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Brutal earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
sets.precast.WS['Vorpal Blade'] = set_combine(sets.precast.WS, {
ammo="Seething Bomblet",
head="Argosy Celata",
body="Argosy Hauberk",
hands="Argosy Mufflers",
legs="Argosy Breeches",
feet="Argosy Sollerets",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Brutal earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
----------------------------------------------------------------- GREAT SWORD ---------------------------------------------------------------------------
sets.precast.WS['Torcleaver'] = set_combine(sets.precast.WS, {
ammo="Brigantia Pebble",
head=ValoHead.WSDSTR,
body=OdysBody.WSD,
hands=OdysHands.WSDVIT,
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Thunder belt",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Titan Ring",
right_ring="Titan Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Torcleaver'].Acc = set_combine(sets.precast.WS.Acc, {
ammo="Brigantia Pebble",
head=ValoHead.WSD,
body=OdysBody.WSD,
hands=OdysHands.WSDACC,
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Thunder belt",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Titan Ring",
right_ring="Titan Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Torcleaver'].Mod = set_combine(sets.precast.WS['Torcleaver'], {})
sets.precast.WS['Scourge'] = set_combine(sets.precast.WS, {
ammo="Seething bomblet",
head=ValoHead.WSDSTR,
body=OdysBody.WSD,
hands=OdysHands.WSDVIT,
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Scourge'].Acc = set_combine(sets.precast.WS.Acc, {
ammo="Seething bomblet",
head=ValoHead.WSD,
body="Sulevia's Plate. +1",
hands=OdysHands.WSDACC,
legs=OdysLegs.WSD,
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Prosilio Belt +1",
left_ear="Mache earring",
right_ear="Mache Earring",
left_ring="Cacoethic Ring",
right_ring="Enlivened Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
})
sets.precast.WS['Scourge'].Mod = set_combine(sets.precast.WS['Torcleaver'], {})
sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {
ammo="Seething Bomblet",
head="Argosy Celata",
body="Argosy Hauberk",
hands="Argosy Mufflers",
legs="Argosy Breeches",
feet="Argosy Sollerets",
neck="Fotia Gorget",
waist="Thunder belt",
left_ear="Cessance earring",
right_ear="Brutal earring",
left_ring="Ifrit Ring +1",
right_ring="Ifrit Ring +1",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
})
sets.precast.WS['Resolution'].Acc = set_combine(sets.precast.WS.Acc, {
ammo="Seething Bomblet",
head="Argosy Celata",
body="Argosy Hauberk",
hands="Argosy Mufflers",
legs="Argosy Breeches",
feet="Argosy Sollerets",
neck="Fotia Gorget",
waist="Thunder belt",
left_ear="Mache earring",
right_ear="Mache earring",
left_ring="Cacoethic Ring",
right_ring="Enlivened Ring",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
})
sets.precast.WS['Resolution'].Mod = set_combine(sets.precast.WS['Resolution'], {})
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {
neck="Coatl Gorget +1",
ear1="Infused Earring",
ear2="Etiolation Earring",
body="Lugra cloak +1",
hands="Sulevia's gauntlets +1",
ring1="Sheltered Ring",
ring2="Paguroidea Ring",
back="Impassive Mantle",
waist="Goading Belt",
legs=OdysLegs.WSD,
feet="Sulevia's leggings +1"
}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle = {
neck="Wiglen Gorget",
ammo="Staunch Tathlum",
ear1="Infused Earring",
ear2="Etiolation Earring",
body="Lugra cloak +1",
hands="Sulevia's gauntlets +1",
ring1="Defending Ring",
ring2="Shneddick Ring",
back="Agema cape",
waist="Flume belt",
legs="Sulevia's cuisses +1",
feet="Amm greaves"
}
-- Defense sets
sets.defense.PDT = {
ammo="Staunch Tathlum",
head="Sulevia's Mask +1",
body="Sulevia's Plate. +1",
hands="Sulev. Gauntlets +1",
legs="Sulevi. Cuisses +1",
feet="Amm greaves",
neck="Loricate Torque",
waist="Tempus Fugit",
right_ear="Brutal Earring",
left_ear="Cessance earring",
left_ring="Gelatinous Ring +1",
right_ring="Defending Ring",
back="Agema cape",}
sets.defense.Reraise = {
head="Twilight Helm",
neck="Twilight Torque",
ear1="Bladeborn Earring",
ear2="Steelflash Earring",
body="Twilight Mail",
hands="Buremte Gloves",
left_ring="Petrov Ring",
right_ring="Defending Ring",
back="Shadow Mantle",
waist="Flume Belt",
legs=OdysLegs.WSD,
feet="Igno. Sollerets +1"
}
sets.defense.MDT = {
ammo="Staunch Tathlum",
head="Sulevia's Mask +1",
body="Sulevia's Plate. +1",
hands="Sulev. Gauntlets +1",
legs="Sulevi. Cuisses +1",
feet="Sulev. Leggings +1",
neck="Twilight torque",
waist="Tempus Fugit",
left_ear="Cessance earring",
right_ear="Brutal Earring",
left_ring="Petrov Ring",
right_ring="Defending Ring",
back="Agema cape",
}
-- Engaged sets
sets.engaged.Rag = {
ammo="Yetshila",
head=ValoHead.STP,
hands="Emicho Gauntlets",
legs=OdysLegs.STP,
feet=ValoFeet.STP,
neck="Lissome Necklace",
body="Emicho haubert",
waist="Ioskeha belt",
right_ear="Brutal Earring",
left_ear="Cessance earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},}
sets.engaged.RagACC = {
ammo="Seething Bomblet",
head=ValoHead.CRIT,
body="Emicho haubert",
hands="Emicho Gauntlets",
legs=OdysLegs.DA,
feet="Sulev. Leggings +1",
neck="Subtlety spectacles",
waist="Ioskeha belt",
right_ear="Mache Earring",
left_ear="Cessance Earring",
left_ring="Apate Ring",
right_ring="Cacoethic Ring",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},}
-- needs 15 stp more with 25 stp on ws and 2 tics off valor, needs valo body, 11 stp, feet +6 over current
sets.engaged.Apoc = {
ammo="Ginsen",
head=ValoHead.STP,
hands="Emicho Gauntlets",
legs=OdysLegs.STP,
feet=ValoFeet.STP,
neck="Lissome Necklace",
body="Emicho haubert",
waist="Ioskeha belt",
right_ear="Brutal Earring",
left_ear="Cessance earring",
left_ring="Petrov Ring",
right_ring="Rajas Ring",
back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},}
sets.engaged.ApocACC = {
ammo="Seething Bomblet",
head=ValoHead.CRIT,
body="Emicho haubert",
hands="Emicho Gauntlets",
legs=OdysLegs.STP,
feet="Sulev. Leggings +1",
neck="Subtlety spectacles",
waist="Ioskeha belt",
right_ear="Brutal Earring",
left_ear="Cessance Earring",
left_ring="Enlivened Ring",
right_ring="Cacoethic Ring",
back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},}
end
-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
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 S{"Torcleaver","Resolution","Catastrophe","Scourge","Cross Reaper"}:contains(spell.english) and (spell.element==world.day_element or spell.element==world.weather_element) then
equip({head="Gavialis Helm"})
end
end
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' then
if world.time >= 17*60 or world.time < 7*60 then -- Dusk to Dawn time.
equip({ear1="Lugra Earring +1", ear2="Lugra Earring"})
end
end
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if S{"Drain","Drain II","Drain III", "Aspir", "Aspir II", "Bio", "Bio II"}: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
end
function buff_change(buff,gain)
buff = string.lower(buff)
if buff == "sleep" and gain and player.hp > 120 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep
equip({neck="Berserker's Torque"})
else
if not midaction() then
status_change(player.status)
end
end
end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(2, 7)
end
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-12 18:34:54
Well, I can't tell you exactly why it won't work, but since you are using Mote's, you would not want to use that function as it is (you'd be overwriting some of Mote's code).
You would want to incorporate the rules into your job_buff_change function. (I recommend declaring state.Buff.Sleep = buffactive[sleep] or nil inside your user_setup function for reasons addressed below)
Code 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 off
handle_equipping_gear(player.status)
end
end
end
But note that if you're only putting it in your buff_change function, it's possible that you'll get changed out of it before it has time to proc. So you may also want to customize your melee set in consideration. Code 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
Server: Asura
Game: FFXI
Posts: 1326
By Asura.Azagarth 2016-09-12 19:23:02
working now thanks :D doesnt seem to hit 100% but dang close enough for me .
Fenrir.Vazerus
Server: Fenrir
Game: FFXI
Posts: 263
By Fenrir.Vazerus 2016-09-14 17:32:01
Having an issue with my BLU gearswap; when not engaged my diffusion mighty guard lasts 4-5 minutes OR 3 minutes occasionally. While engaged 90% of the time it's only 3 minutes. I'm really coding illiterate, so I was wondering if someone can point out what I screwed up? I took the base .lua from Prothescar's BLU guide.
I would also appreciate if someone better at formatting could maybe make it cleaner too? Again, being coding illiterate, it's a big copy/pasta job. I don't actually use the MB or Weather stuff since I don't have the actual gear to do that, so you can just ignore that section.
Code
function get_sets()
send_command('bind f9 gs c toggle TP set')
send_command('bind f10 gs c toggle Idle set')
send_command('bind f11 gs c toggle CDC set')
send_command('bind f12 gs c toggle Req set')
send_command('bind !f12 gs c toggle Rea set')
send_command('bind ^` gs c toggle MB set')
function file_unload()
send_command('unbind ^f9')
send_command('unbind ^f10')
send_command('unbind ^f11')
send_command('unbind ^f12')
send_command('unbind ^`')
send_command('unbind !f9')
send_command('unbind !f10')
send_command('unbind !f11')
send_command('unbind !f12')
send_command('unbind f9')
send_command('unbind f10')
send_command('unbind f11')
send_command('unbind f12')
end
--Idle Sets--
sets.Idle = {}
sets.Idle.index = {'Standard','DT','Learning'}
Idle_ind = 1
sets.Idle.Standard = {ammo="Mavi Tathlum",
head="Rawhide mask",neck="Twilight torque",ear1="Merman's earring",ear2="Ethereal earring",
body="Jhakri robe +1",hands="Serpentes cuffs",ring1="Sheltered ring",ring2="Shadow ring",
back="Shadow mantle",waist="Flume belt +1",legs="Crimson Cuisses",feet="Serpentes sabots"}
sets.Idle.DT = {ammo="Mavi Tathlum",
head="Rawhide mask",neck="Twilight torque",ear1="Merman's earring",ear2="Ethereal earring",
body="Jhakri robe +1",hands="Iuitl wristbands",ring1="Archon ring",ring2="Shadow ring",
back="Shadow mantle",waist="Flume belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
sets.Idle.Learning = {ammo="Mavi Tathlum",
head="Mirage Keffiyeh +2",neck="Twilight torque",ear1="Merman's Earring",ear2="Ethereal Earring",
body="Assimilator's jubbah +1",hands="Magus Bazubands",ring1="Sheltered ring",ring2="Shadow ring",
back="Cornflower cape",waist="Flume belt +1",legs="Hashishin Tayt",feet="Luhlaza Charuqs"}
--TP Sets--
sets.TP = {}
sets.TP.index = {'Standard', 'AccuracyLite', 'AccuracyFull', 'DT', 'DTAccuracy'}
--1=Standard, 2=AccuracyLite, 3=AccuracyFull, 4=DT, 5=DTAccuracy--
TP_ind = 1
sets.TP.Standard = {ammo="Focal Orb",
head="Taeon chapeau",neck="Asperity necklace",ear1="Steelflash earring",ear2="Bladeborn earring",
body="Thaumas coat",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Windbuffet belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
sets.TP.AccuracyLite = {ammo="Honed Tathlum",
head="Taeon chapeau",neck="Lissome necklace",ear1="Steelflash earring",ear2="Bladeborn earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Windbuffet belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
sets.TP.AccuracyFull = {ammo="Honed Tathlum",
head="Taeon chapeau",neck="Lissome necklace",ear1="Steelflash earring",ear2="Bladeborn earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Windbuffet belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
sets.TP.DT = {ammo="Honed Tathlum",
head="Taeon chapeau",neck="Twilight torque",ear1="Merman's earring",ear2="Ethereal earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Shadow ring",
back="Shadow mantle",waist="Flume belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
sets.TP.DTAccuracy = {ammo="Honed Tathlum",
head="Taeon Chapeau",neck="Twilight torque",ear1="Merman's earring",ear2="Ethereal earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Shadow ring",
back="Shadow mantle",waist="Flume belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
--Weaponskill Sets--
sets.WS = {}
sets.Requiescat = {}
sets.Requiescat.index = {'Attack','Accuracy'}
Requiescat_ind = 1
sets.Requiescat.Attack = {ammo="Cheruski needle",
head="Taeon chapeau",neck="Fotia Gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Levia. ring",
back="Rosmerta's cape",waist="Fotia belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.Requiescat.Accuracy = {ammo="Cheruski needle",
head="Taeon chapeau",neck="Fotia Gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Levia. ring",
back="Rosmerta's cape",waist="Fotia belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.ChantDuCygne = {}
sets.ChantDuCygne.index = {'Attack','Accuracy'}
ChantDuCygne_ind = 1
sets.ChantDuCygne.Attack = {ammo="Jukukik Feather",
head="Taeon chapeau",neck="Fotia Gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Fotia belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.ChantDuCygne.Accuracy = {ammo="Jukukik Feather",
head="Taeon chapeau",neck="Fotia Gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Fotia belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.WS.SanguineBlade = {}
sets.WS.SanguineBlade = {ammo="Ombre Tathlum",
head="Jhakri coronal +1",neck="Stoicheion medal",ear1="Friomisi earring",ear2="Hecate's earring",
body="Jhakri robe +1",hands="Jhakri cuffs +1",ring1="Archon ring",ring2="Shiva ring",
back="Cornflower cape",waist="Penitent's Rope",legs="Jhakri slops +1",feet="Jhakri pigaches +1"}
sets.WS.CircleBlade = {}
sets.WS.CircleBlade = {ammo="Cheruski needle",
head="Taeon chapeau",neck="Fotia Gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Fotia belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.WS.Expiacion = {}
sets.WS.Expiacion = {ammo="Cheruski needle",
head="Taeon chapeau",neck="Fotia Gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Fotia belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.WS.VorpalBlade = {}
sets.WS.VorpalBlade = {ammo="Jukukik Feather",
head="Taeon chapeau",neck="Fotia Gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Fotia belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.Realmrazer = {}
sets.Realmrazer.index = {'Attack','Accuracy'}
Realmrazer_ind = 1
sets.Realmrazer.Attack = {ammo="Hydrocera",
head="Dampening Tam",neck="Fotia gorget",ear1="Bladeborn earring",ear2="Steelflash earring",
body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Rajas ring",ring2="Rufescent ring",
back="Buquwik cape",waist="Fotia belt",legs="Jhakri slops +1",feet={ name="Herculean boots", augments={'Accuracy+29','"Triple Atk."+4','STR+10',}},}
sets.Realmrazer.Accuracy = {ammo="Falcon Eye",
head="Whirlpool mask",neck="Fotia gorget",ear1="Bladeborn earring",ear2="Steelflash earring",
body="Luhlaza jubbah +1",hands="Luh. Bazubands +1",ring1="Levia. ring",ring2="Aquasoul ring",
back="Letalis mantle",waist="Fotia belt",legs="Adhemar kecks",feet="Assim. charuqs +1"}
sets.WS.FlashNova = {}
sets.WS.FlashNova = {ammo="Ombre Tathlum",
head="Jhakri coronal +1",neck="Stoicheion medal",ear1="Friomisi earring",ear2="Hecate's earring",
body="Jhakri robe +1",hands="Jhakri cuffs +1",ring1="Acumen ring",ring2="Shiva ring",
back="Cornflower cape",waist="Penitent's Rope",legs="Jhakri slops +1",feet="Jhakri pigaches +1"}
--Magic Burst Sets--
sets.Burst = {}
sets.Burst.index = {'BA', 'MB'}
Burst_ind = 1
--Blue Magic Sets--
sets.BlueMagic = {}
sets.BlueMagic.STR = {ammo="Cheruski needle",
head="Rawhide mask",neck="Ire torque",ear1="Flame pearl",ear2="Flame pearl",
body="Assimilator's jubbah +1",hands="Taeon gloves",ring1="Ifrit ring",ring2="Ifrit ring",
back="Cornflower cape",waist="Metalsinger belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.BlueMagic.STRDEX = {ammo="Cheruski needle",
head="Rawhide mask",neck="Ire torque",ear1="Flame pearl",ear2="Pixie Earring",
body="Assimilator's jubbah +1",hands="Taeon gloves",ring1="Ifrit ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Pipilaka belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.BlueMagic.STRVIT = {ammo="Cheruski needle",
head="Rawhide mask",neck="Ire torque",ear1="Flame pearl",ear2="Flame pearl",
body="Assimilator's jubbah +1",hands="Taeon gloves",ring1="Ifrit ring",ring2="Spiral ring",
back="Cornflower cape",waist="Chuq'aba belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.BlueMagic.STRMND = {ammo="Cheruski needle",
head="Rawhide mask",neck="Ire torque",ear1="Flame pearl",ear2="Aqua pearl",
body="Assimilator's jubbah +1",hands="Taeon gloves",ring1="Ifrit ring",ring2="Leviathan ring",
back="Cornflower cape",waist="Anguinus belt",legs="Jhakri slops +1",feet="Jhakri pigaches +1"}
sets.BlueMagic.AGI = {ammo="Mavi tathlum",
head="Rawhide mask",neck="Arctier's torque",ear1="Suppanomimi",ear2="Heartseeker Earring",
body="Taeon tabard",hands="Thurandaut gloves +1",ring1="Arvina ringlet +1",ring2="Garuda ring",
back="Cornflower cape",waist="Anguinus belt",legs="Nahtira Trousers",feet="Rawhide boots"}
sets.BlueMagic.INT = {ammo="Ombre Tathlum",
head="Jhakri coronal +1",neck="Stoicheion Medal",ear1="Hecate's Earring", ear2="Friomisi Earring",
body="Jhakri robe +1",hands="Jhakri cuffs +1",ring1="Acumen ring",ring2="Shiva ring",
back="Cornflower cape",waist="Penitent's Rope",legs="Jhakri slops +1",feet="Jhakri pigaches +1"}
sets.BlueMagic.Dark = {ammo="Ombre Tathlum",
head="Jhakri coronal +1",neck="Stoicheion medal",ear1="Friomisi earring",ear2="Hecate's earring",
body="Jhakri robe +1",hands="Jhakri cuffs +1",ring1="Archon ring",ring2="Shiva ring",
back="Cornflower cape",waist="Penitent's Rope",legs="Jhakri slops +1",feet="Jhakri pigaches +1"}
sets.BlueMagic.Cures = {ammo="Mavi tathlum",
head="Telchine Cap",neck="Noetic torque",ear1="Aqua pearl",
body="Telchine Chasuble",hands="Telchine gloves",ring1="Leviathan ring",ring2="Aquasoul ring",
back="Oretania's cape",waist="Chuq'aba belt",legs="Telchine braconi",feet="Telchine Pigaches"}
sets.BlueMagic.SelfCures = {ammo="Mavi tathlum",
head="Telchine Cap",neck="Noetic torque",ear1="Aqua pearl",
body="Telchine Chasuble",hands="Telchine gloves",ring1="Leviathan ring",ring2="Aquasoul ring",
back="Oretania's cape",waist="Chuq'aba belt",legs="Telchine braconi",feet="Telchine Pigaches"}
sets.BlueMagic.Stun = {ammo="Honed tathlum",
head="Taeon chapeau",neck="Chivalrous Chain",ear1="Suppanomimi",ear2="Heartseeker Earring",
body="Hashishin Mintan",hands="Thurandaut gloves +1",ring1="Ifrit ring",ring2="Rajas ring",
back="Cornflower cape",waist="Anguinus belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.BlueMagic.HeavyStrike = {ammo="Honed tathlum",
head="Taeon chapeau",neck="Chivalrous Chain",ear1="Suppanomimi",ear2="Heartseeker Earring",
body="Luhlaza jubbah",hands="Thurandaut gloves +1",ring1="Ifrit ring",ring2="Rajas ring",
back="Cornflower cape",waist="Anguinus belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.BlueMagic.ChargedWhisker = {ammo="Ombre Tathlum",
head="Jhakri coronal +1",neck="Stoicheion Medal",ear1="Hecate's Earring", ear2="Friomisi Earring",
body="Jhakri robe +1",hands="Jhakri cuffs +1",ring1="Acumen ring",ring2="Shiva ring",
back="Cornflower cape",waist="Penitent's Rope",legs="Jhakri slops +1",feet="Jhakri pigaches +1"}
sets.BlueMagic.WhiteWind = {ammo="Egoist's tathlum",
head="Telchine Cap",neck="Noetic torque",ear1="Aqua pearl",ear2="Ethereal Earring",
body="Telchine Chasuble",hands="Telchine gloves",ring1="K'ayres ring",ring2="Aquasoul ring",
back="Oretania's cape",waist="Chuq'aba belt",legs="Jhakri slops +1",feet="Telchine Pigaches"}
sets.BlueMagic.MagicAccuracy = {ammo="Mavi Tathlum",
head="Telchine Cap",neck="Noetic torque",
body="Hashishin Mintan",hands="Jhakri cuffs +1",ring1="Arvina ringlet +1",
back="Cornflower cape",legs="Luhlaza Shalwar",feet="Jhakri pigaches +1"}
sets.BlueMagic.Enmity = {head="Telchine Cap",feet="Rawhide boots",back="Swith cape"}
sets.BlueMagic.ConserveMP = {head="Telchine Cap",feet="Rawhide boots",back="Swith cape"}
sets.BlueMagic.Refresh = {head="Telchine Cap",feet="Rawhide boots",back="Swith cape"}
sets.BlueMagic.Skill = {ammo="Mavi Tathlum",head="Mirage Keffiyeh +2",body="Assimilator's jubbah +1",
hands="Magus Bazubands",back="Cornflower cape",feet="Luhlaza Charuqs"}
sets.BlueMagic.SkillRecast = {ammo="Mavi Tathlum",head="Mirage Keffiyeh +2",body="Assimilator's jubbah +1",
hands="Mv. Bazubands +1",back="Cornflower cape",feet="Luhlaza Charuqs"}
--Utility Sets--
sets.Utility = {}
sets.Utility.Weather = {waist="Hachirin-no-obi",back="Twilight cape"}
sets.Utility.MB = {head="Helios Band",body="Samnuha coat",ear1="Static earring",ring1="Locus ring",ring2="Mujin Band"}
sets.Utility.Stoneskin = {head="Haruspex hat",neck="Stone Gorget",ear1="Loquac. earring",ear2="Earthcry earring",
body="Assim. jubbah +1",hands="Stone Mufflers",ring1="Prolix ring",
back="Swith cape",waist="Siegel sash",legs="Haven hose",feet=""}
sets.Utility.Phalanx = {head="Haruspex hat",neck="Colossus's torque",ear1="Loquac. earring",ear2="Augment. earring",
body="Assim. jubbah +1",hands="Ayao's gages",ring1="Prolix ring",
back="Swith cape",waist="Pythia sash +1",legs="Portent pants",feet=""}
sets.Utility.Steps = {ammo="Honed Tathlum",
head="Taeon chapeau",neck="Lissome necklace",ear1="Steelflash earring",ear2="Heartseeker earring",
body="Luhlaza jubbah",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Cornflower cape",waist="Anguinus belt",legs="Adhemar kecks",feet="Rawhide boots"}
sets.Utility.Waltz = {feet="Rawhide boots"}
sets.Utility.PDT = {ammo="Mavi Tathlum",
head="Rawhide mask",neck="Twilight torque",ear1="Merman's earring",ear2="Ethereal earring",
body="Jhakri robe +1",hands="Iuitl wristbands",ring1="Archon ring",ring2="Shadow ring",
back="Shadow mantle",waist="Flume belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
sets.Utility.MDT = {ammo="Mavi Tathlum",
head="Rawhide mask",neck="Twilight torque",ear1="Merman's earring",ear2="Ethereal earring",
body="Jhakri robe +1",hands="Iuitl wristbands",ring1="Archon ring",ring2="Shadow ring",
back="Shadow mantle",waist="Flume belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
sets.Utility.Trust = {ammo="Honed Tathlum",
head="Taeon chapeau",neck="Lissome necklace",ear1="Steelflash earring",ear2="Bladeborn earring",
body="Taeon tabard",hands="Taeon gloves",ring1="Epona's ring",ring2="Rajas ring",
back="Rosmerta's cape",waist="Windbuffet belt +1",legs="Adhemar kecks",feet="Rawhide boots"}
--Job Ability Sets--
sets.JA = {}
sets.JA.ChainAffinity = {feet="Assim. charuqs"}
sets.JA.BurstAffinity = {feet="Hashishin Basmak"}
sets.JA.Efflux = {legs="Hashishin Tayt",back="Rosmerta's cape"}
sets.JA.AzureLore = {hands="Luhlaza Bazubands"}
sets.JA.Diffusion = {feet="Luhlaza Charuqs"}
--Precast Sets--
sets.precast = {}
sets.precast.FC = {}
sets.precast.FC.Standard = {ear1="Loquacious Earring",
body="Hashishin Mintan",hands="Thaumas gloves",
back='Swith cape'}
sets.precast.FC.Blue = {ear1="Loquacious Earring",
body="Hashishin Mintan",hands="Thaumas gloves",
back='Swith cape'}
end
function precast(spell)
if spell.action_type == 'Magic' then
equip(sets.precast.FC.Standard)
if spell.skill == 'Blue Magic' then
equip(sets.precast.FC.Blue)
end
end
if spell.english == 'Azure Lore' then
equip(sets.JA.AzureLore)
end
if spell.english == 'Requiescat' then
equip(sets.Requiescat[sets.Requiescat.index[Requiescat_ind]])
end
if spell.english == 'Chant du Cygne' then
equip(sets.ChantDuCygne[sets.ChantDuCygne.index[ChantDuCygne_ind]])
end
if spell.english == 'Circle Blade' or spell.english == 'Savage Blade' then
equip(sets.WS.CircleBlade)
end
if spell.english == 'Expiacion' then
equip(sets.WS.Expiacion)
end
if spell.english == 'Vorpal Blade' then
equip(sets.WS.VorpalBlade)
end
if spell.english == 'Sanguine Blade' then
equip(sets.WS.SanguineBlade)
if spell.element == world.day_element or spell.element == world.weather_element then
equip(sets.Utility.Weather)
end
end
if spell.english == 'Box Step' or spell.english == 'Quickstep' or spell.english == 'Stutter Step' then
equip(sets.Utility.Steps)
end
if spell.english == 'Curing Waltz' or spell.english == 'Curing Waltz II' or spell.english == 'Curing Waltz III' or spell.english == 'Divine Waltz' then
equip(sets.Utility.Waltz)
end
if spell.english == 'Realmrazer' then
equip(sets.Realmrazer[sets.Realmrazer.index[Realmrazer_ind]])
end
if spell.english == 'Flash Nova' then
equip(sets.WS.FlashNova)
if spell.element == world.day_element or spell.element == world.weather_element then
equip(sets.Utility.Weather)
end
end
end
function midcast(spell,act)
if spell.english == 'Vertical Cleave' or spell.english == 'Death Scissors' or spell.english == 'Empty Thrash' or spell.english == 'Dimensional Death' or spell.english == 'Quadrastrike' or spell.english == 'Bloodrake' then
equip(sets.BlueMagic.STR)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Disseverment' or spell.english == 'Hysteric Barrage' or spell.english == 'Frenetic Rip' or spell.english == 'Seedspray' or spell.english == 'Vanity Dive' or spell.english == 'Goblin Rush' or spell.english == 'Paralyzing Triad' or spell.english == 'Thrashing Assault' then
equip(sets.BlueMagic.STRDEX)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Quad. Continuum' or spell.english == 'Delta Thrust' or spell.english == 'Cannonball' or spell.english == 'Glutinous Dart' then
equip(sets.BlueMagic.STRVIT)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Whirl of Rage' then
equip(sets.BlueMagic.STRMND)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Benthic Typhoon' or spell.english == 'Final Sting' or spell.english == 'Spiral Spin' then
equip(sets.BlueMagic.AGI)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Gates of Hades' or spell.english == 'Lunge' or spell.english == 'Swipe' or spell.english == 'Leafstorm' or spell.english == 'Firespit' or spell.english == 'Acrid Stream' or spell.english == 'Regurgitation' or spell.english == 'Corrosive Ooze' or spell.english == 'Thermal Pulse' or spell.english == 'Magic Hammer'
or spell.english == 'Evryone. Grudge' or spell.english == 'Water Bomb' or spell.english == 'Dark Orb' or spell.english == 'Thunderbolt' or spell.english == 'Tem. Upheaval' or spell.english == 'Embalming Earth' or spell.english == 'Foul Waters' or spell.english == 'Rending Deluge'
or spell.english == 'Droning Whirlwind' or spell.english == 'Subduction' or spell.english == 'Anvil Lightning' or spell.english == 'Blinding Fulgor' or spell.english == 'Entomb' or spell.english == 'Palling Salvo' or spell.english == 'Scouring Spate'
or spell.english == 'Searing Tempest' or spell.english == 'Silent Storm' or spell.english == 'Diffusion Ray' or spell.english == 'Spectral Floe' then
equip(sets.BlueMagic.INT)
if spell.element == world.day_element or spell.element == world.weather_element then
equip(sets.Utility.Weather)
end
if buffactive['Burst Affinity'] then
if Burst_ind == 1 then
equip(sets.JA.BurstAffinity)
elseif Burst_ind == 2 then
equip(sets.Utility.MB)
end
end
end
if spell.english == 'Tenebral Crush' or spell.english == 'Palling Salvo' then
equip(sets.BlueMagic.Dark)
if spell.element == world.day_element or spell.element == world.weather_element then
equip(sets.Utility.Weather)
end
if buffactive['Burst Affinity'] then
if Burst_ind == 1 then
equip(sets.JA.BurstAffinity)
elseif Burst_ind == 2 then
equip(sets.Utility.MB)
end
end
end
if spell.english == 'Magic Fruit' or spell.english == 'Plenilune Embrace' or spell.english == 'Wild Carrot' or spell.english == 'Pollen' or spell.english == 'Cure III' or spell.english == 'Cure IV' then
equip(sets.BlueMagic.Cures)
if spell.target.name == player.name and string.find(spell.english, 'Magic Fruit') or string.find(spell.english, 'Plenilune Embrace') or string.find(spell.english, 'Wild Carrot') or string.find(spell.english, 'Cure III') or string.find(spell.english, 'Cure IV') then
equip(sets.BlueMagic.SelfCures)
end
end
if spell.english == 'White Wind' then
equip(sets.BlueMagic.WhiteWind)
end
if spell.english == 'Head Butt' or spell.english == 'Sudden Lunge' or spell.english == 'Tourbillion' or spell.english == 'Saurian Slide' or spell.english == 'Sweeping Gouge' or spell.english == 'Frypan' then
equip(sets.BlueMagic.Stun)
end
if spell.english == 'Heavy Strike' then
equip(sets.BlueMagic.HeavyStrike)
end
if spell.english == 'Charged Whisker' then
equip(sets.BlueMagic.ChargedWhisker)
if buffactive['Burst Affinity'] then
equip(sets.JA.BurstAffinity)
end
end
if spell.english == 'Frightful Roar' or spell.english == 'Infrasonics' or spell.english == 'Chaotic Eye' or spell.english == 'Auroral Drape' or spell.english == 'Sheep Song' or spell.english == 'Barbed Crescent'
or spell.english == 'Tourbillion' or spell.english == 'Cimicine Discharge' or spell.english == 'Sub-zero smash' or spell.english == 'Filamented Hold' or spell.english == 'Mind Blast' or spell.english == 'Sandspin'
or spell.english == 'Hecatomb Wave' or spell.english == 'Blank Gaze' or spell.english == 'Cold Wave' or spell.english == 'Terror Touch' or spell.english == 'Retinal Glare' or spell.english == 'Dream Flower'
or spell.english == 'Geist Wall' or spell.english == 'Absolute Terror' or spell.english == 'Blistering Roar' then
equip(sets.BlueMagic.MagicAccuracy)
end
if spell.english == 'MP Drainkiss' or spell.english == 'Mighty Guard' or spell.english == 'Digest' or spell.english == 'Blood Saber' or spell.english == 'Blood Drain' or spell.english == 'Osmosis' or spell.english == 'Occultation' or spell.english == 'Magic Barrier' or spell.english == 'Diamondhide' or spell.english == 'Metallic Body' then
equip(sets.BlueMagic.SkillRecast)
if buffactive['Diffusion'] then
equip(sets.JA.Diffusion)
end
end
if spell.english == 'Fantod' or spell.english =='Jettatura' or spell.english =='Wind Breath' or spell.english =='Exuviation' then
equip(sets.BlueMagic.Enmity)
end
if spell.english == 'Mighty Guard' or spell.english == 'Erratic Flutter' or spell.english == 'Nat. Meditation' or spell.english == 'Uproot' or spell.english == 'Saline coat' or spell.english == 'Barrier Tusk' then
equip(sets.BlueMagic.ConserveMP)
end
if spell.english == 'Battery Charge' or spell.engligh == 'Refresh' then
equip(sets.BlueMagic.Refresh)
end
if spell.english == 'Cocoon' or spell.english == 'Mighty Guard' or spell.english == 'Harden Shell' or spell.english == 'Animating Wail' or spell.english == 'Battery Charge' or spell.english == 'Nat. Meditation' or spell.english == 'Carcharian Verve' or spell.english == 'O. Counterstance' or spell.english == 'Barrier Tusk' or spell.english == 'Saline coat' or spell.english == 'Regeneration' or spell.english == 'Erratic Flutter' then
if buffactive['Diffusion'] then
equip(sets.JA.Diffusion)
end
end
end
function aftercast(spell)
if player.status == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
else
equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
if spell.action_type == 'Weaponskill' then
add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
end
end
function status_change(new,old)
if new == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
else
equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
end
function self_command(command)
if command == 'toggle TP set' then
TP_ind = TP_ind +1
if TP_ind > #sets.TP.index then TP_ind = 1 end
send_command('@input /echo <----- TP Set changed to '..sets.TP.index[TP_ind]..' ----->')
equip(sets.TP[sets.TP.index[TP_ind]])
elseif command == 'toggle Idle set' then
Idle_ind = Idle_ind +1
if Idle_ind > #sets.Idle.index then Idle_ind = 1 end
send_command('@input /echo <----- Idle Set changed to '..sets.Idle.index[Idle_ind]..' ----->')
equip(sets.Idle[sets.Idle.index[Idle_ind]])
elseif command == 'toggle Req set' then
Requiescat_ind = Requiescat_ind +1
if Requiescat_ind > #sets.Requiescat.index then Requiescat_ind = 1 end
send_command('@input /echo <----- Requiescat Set changed to '..sets.Requiescat.index[Requiescat_ind]..' ----->')
elseif command == 'toggle CDC set' then
ChantDuCygne_ind = ChantDuCygne_ind +1
if ChantDuCygne_ind > #sets.ChantDuCygne.index then ChantDuCygne_ind = 1 end
send_command('@input /echo <----- Chant du Cygne Set changed to '..sets.ChantDuCygne.index[ChantDuCygne_ind]..' ----->')
elseif command == 'toggle Rea set' then
Realmrazer_ind = Realmrazer_ind +1
if Realmrazer_ind > #sets.Realmrazer.index then Realmrazer_ind = 1 end
send_command('@input /echo <----- Realmrazer Set changed to '..sets.Realmrazer.index[Realmrazer_ind]..' ----->')
elseif command == 'toggle MB set' then
Burst_ind = Burst_ind +1
if Burst_ind > #sets.Burst.index then Burst_ind = 1 end
send_command('@input /echo [MB Set changed to '..sets.Burst.index[Burst_ind]..']')
elseif command == 'equip TP set' then
equip(sets.TP[sets.TP.index[TP_ind]])
elseif command == 'equip Idle set' then
equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
end
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-14 17:48:11
The buffactive table isn't updated until the client gets the buff gain message, which seems to occur a little late, so if you cast too soon after using Diffusion, there is a strong chance that buffactive.Diffusion will return false.
Instead, you can set a variable to true from your aftercast function. You know that if you use "Diffusion," then you have Diffusion on. You can put this in your aftercast: Code if spell.english=="Diffusion" and not spell.interrupted then
diffusion = true
end
Of course, at some point you have to set it to false, but the timing on this isn't nearly as important as when it's true, so we can use the buff_change function for that. Code function buff_change(buff,gain,buff_table)
if buff:lower()=='diffusion' and not gain then
diffusion = false
end
end
Then instead of buffactive["Diffusion"], check for the diffusion variable. Simply replace all the instances you find in your file.
[+]
Server: Asura
Game: FFXI
Posts: 19
By Asura.Nazantia 2016-09-14 19:55:11
Fisher here. I made my town set equip my fishing gear and I added all of the ferry areas to areas.Cities = S{ to equip town gear when idle, so if I fight an elemental for a cluster or pull up a monster when not paying attention, I go back to fishing gear when disengaged.
This was nice and all, but it doesn't work for non-ferry area fishing. So then I made a new set in global file and added to a macro to fish with //gs equip sets.precast.Fishing; /fish
Still not optimal. I prefer fishing from menu, macros are clunky. Is there a precast function for fishing or a way I can create one? :o Thanks and thank you, everyone who have helped others with their gearswap woes in this thread. I love seeing all the help and people using it.
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-14 20:36:03
I'm going to assume you're using Mote's based on the areas.Cities thing.
GS doesn't pick up fishing, so the simplest alternative I can think of is to have a toggle. When set to true or 'Fishing', it will use fishing gear for your idle set.
The easiest way to do that is to add it as another option in your Idle modes. For example: Code state.IdleMode:options('Normal','PDT','Fishing')
and have a set called sets.idle.Fishing.
If you don't want to use that—for example because you have different IdleModes for various jobs, so it wouldn't suit your global file well—I might be able to find another solution, but I'll have to take a closer look at his code because what I'm hoping for isn't listed in his documentation.
Server: Asura
Game: FFXI
Posts: 19
By Asura.Nazantia 2016-09-14 21:23:26
Correct, I use mote includes. The modes is a good idea and crossed my mind, I just tend to forget to toggle them. I changed the modes in my luas to default to high acc and pdt idle because I've failed things miserably having forgottento toggle. I'd probably remember to change to fishing but not necessarily to change back
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-14 23:08:00
I forget to change my toggles all the time too. You could try to add_to_chat the relevant toggles when you status change (like accuracy when you engage, idle mode when you disengage).
I use the text library and have a box on my screen that labels all my variables when they are not set to false or 'normal'. Should be able to do the same for Mote's.
You can try putting something like this in your global file. Code texts = require('texts')
function init_vars_box(settings)
text_settings = {
pos={x=settings.x,y=settings.y},
text={font='Segoe UI Symbol',fonts={'sans-serif'},size=10,stroke={width=1,alpha=255,red=0,green=0,blue=0}},
padding=6,
bg={visible=true,alpha=100,red=0,green=0,blue=0},
flags={draggable=false,right=settings.right_align or false,bottom=settings.bottom_align or false,bold=true},
}
vars = texts.new(text_settings)
vars:show()
update_vars_box()
end
function update_vars_box()
local tags = L{}
local info = {}
for label,m in pairs(state) do
if m.value and m.value ~= 'Normal' then
tags:append('${'..label..'}')
info[label] = '[\\cs(255,125,255)'..label..'\\cr] '..m.current..''
end
end
vars:clear()
vars:append(tags:concat(' '))
vars:update(info)
end
And then you can initialize it (either in your global file, after those functions are created, or in the individual job files, from user_setup). For example, my settings: Code init_vars_box({x=-285,y=-230,right_align=true,bottom_align=true})
But you'd need to find a place to update that box. Probably using this, which I'm pretty sure you could put in your global if you wanted to (but then you might overwrite it in your particular job files). Code function job_handle_equipping_gear(status, eventArgs)
update_vars_box()
end
I didn't test this, so if you try to use it and there is an error, let me know (and post the files involved).
Leviathan.Stamos
Server: Leviathan
Game: FFXI
Posts: 1239
By Leviathan.Stamos 2016-09-15 14:00:22
Think I am derping a bit.
Wrote this into my LUA but it just keeps it equipped instead of swapping
if world.time >= (7*60) or world.time <= (17*60) then -- Equip Lycopodium Sash From Dawn To Dusk --
equipSet = set_combine(equipSet,{waist="Lycopodium Sash"})
end
Odin.Lygre
Server: Odin
Game: FFXI
Posts: 89
By Odin.Lygre 2016-09-15 14:25:25
Think I am derping a bit.
Wrote this into my LUA but it just keeps it equipped instead of swapping
if world.time >= (7*60) or world.time <= (17*60) then -- Equip Lycopodium Sash From Dawn To Dusk --
equipSet = set_combine(equipSet,{waist="Lycopodium Sash"})
end The entire function would be helpful.
Leviathan.Stamos
Server: Leviathan
Game: FFXI
Posts: 1239
By Leviathan.Stamos 2016-09-15 14:56:02
Ty!
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-15 16:11:12
Not sure I understand what the problem is.
Are you saying that you're not changing belt from Lycopodium at all? (i.e. it stays on during spells, and while engaged?)
Or that regardless of what time it is, your idle set equips it?
Or that if the time changes while you are idle, you are not automatically switched out of it?
Edit: Oh, I'm silly, it's a daytime thingy. The conditions need to be 'and', not 'or'.
Leviathan.Stamos
Server: Leviathan
Game: FFXI
Posts: 1239
By Leviathan.Stamos 2016-09-15 17:04:30
lol thanks. Yeah, it was equipping idle at night time
Ramuh.Austar
Server: Ramuh
Game: FFXI
Posts: 10481
By Ramuh.Austar 2016-09-17 23:38:29
Is debugmode busted? Tried to use it and it started spouting stuff about my items not having a jobs field in resources.
Odin.Lygre
Server: Odin
Game: FFXI
Posts: 89
By Odin.Lygre 2016-09-18 04:10:04
Code --Copyright (c) 2013~2016, Byrthnoth
--All rights reserved.
--Redistribution and use in source and binary forms, with or without
--modification, are permitted provided that the following conditions are met:
-- * Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
-- * Redistributions in binary form must reproduce the above copyright
-- notice, this list of conditions and the following disclaimer in the
-- documentation and/or other materials provided with the distribution.
-- * Neither the name of <addon name> nor the
-- names of its contributors may be used to endorse or promote products
-- derived from this software without specific prior written permission.
--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
--ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
--WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
--DISCLAIMED. IN NO EVENT SHALL <your name> BE LIABLE FOR ANY
--DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
--(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
--LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
--ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
--(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-----------------------------------------------------------------------------------
--Name: check_wearable(item_id)
--Args:
---- item_id - Item ID to be examined
-----------------------------------------------------------------------------------
--Returns:
---- boolean indicating whether the given piece of gear can be worn or not
---- Checks for main job / level and race
-----------------------------------------------------------------------------------
function check_wearable(item_id)
if not item_id or item_id == 0 then -- 0 codes for an empty slot, but Arcon will probably make it nil at some point
elseif not res.items[item_id] then
msg.debugging("Item "..item_id.." has not been added to resources yet.")
-- elseif not res.items[item_id].jobs then -- Make sure item can be equipped by specific jobs (unlike pearlsacks).
-- msg.debugging('GearSwap (Debug Mode): Item '..(res.items[item_id][language] or item_id)..' does not have a jobs field in the resources.')
elseif not res.items[item_id].slots then
-- Item is not equippable
else
return (res.items[item_id].jobs[player.main_job_id]) and (res.items[item_id].level<=player.jobs[res.jobs[player.main_job_id].ens]) and (res.items[item_id].races[player.race_id]) and
(player.superior_level >= (res.items[item_id].superior_level or 0))
end
return false
end
Comment out lines 40 and 41 of equip_processing.lua
Ramuh.Austar
Server: Ramuh
Game: FFXI
Posts: 10481
By Ramuh.Austar 2016-09-19 16:16:45
Which file is that?
By Takisan 2016-09-27 10:12:49
Hi, so I searched around for this issue and found a few people that mentioned it but didn't see any solutions mentioned aside from ammo being in wardrobe vs inventory.
Just got wardrobe 3 and put gear in it but gearswap wont swap any gear in wardrobe 3. I restarted windower but did not see any updates that might take into account this change for wardrobe 3&4.
Is there a place in github I can find updated files for this or is there a simple line(s) of code I can change to include wardrobe 3? Thanks.
By Takisan 2016-09-27 10:32:34
Hi, so I searched around for this issue and found a few people that mentioned it but didn't see any solutions mentioned aside from ammo being in wardrobe vs inventory.
Just got wardrobe 3 and put gear in it but gearswap wont swap any gear in wardrobe 3. I restarted windower but did not see any updates that might take into account this change for wardrobe 3&4.
Is there a place in github I can find updated files for this or is there a simple line(s) of code I can change to include wardrobe 3? Thanks.
Duh
For those using Wardrobe 3 and 4. I haven't tested much because I don't have much time, but if you change line 123 of gearswap/equip_processing.lua from: Code
local inventories = {[0]=items.inventory,[8]=items.wardrobe,[10]=items.wardrobe2}
to: Code
local inventories = {[0]=items.inventory,[8]=items.wardrobe,[10]=items.wardrobe2,[11]=items.wardrobe3,[12]=items.wardrobe4}
I was able to get GS to equip from wardrobe this way
Edit: remember to do //lua r gearswap after making the change http://www.ffxiah.com/forum/topic/40815/plugins-broken-via-version-update/77/#reply
Valefor.Omnys
Server: Valefor
Game: FFXI
Posts: 1759
By Valefor.Omnys 2016-09-28 22:06:55
I've been thinking...
Is there any way to add a command like //gs copy [slot] and it copies that to clipboard? Like //gs copy back might give me back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}} copied to clipboard?
I know about export, and a lot of the time I use export, it's to get the proper transcription of one piece of gear.
Server: Asura
Game: FFXI
Posts: 1326
By Asura.Azagarth 2016-09-29 00:23:46
SO how would I go about writing a rule to where when I am at 3000tp it will not use moonshade on a ws? I dont want it generic I want individually for various ws, aka ishrava on one hit, novio on magic ws, telos on multihit etc.
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-09-29 05:09:04
I've been thinking...
Is there any way to add a command like //gs copy [slot] and it copies that to clipboard? Like //gs copy back might give me back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}} copied to clipboard?
I know about export, and a lot of the time I use export, it's to get the proper transcription of one piece of gear.
Don't believe copying to clipboard is something available in the API.
SO how would I go about writing a rule to where when I am at 3000tp it will not use moonshade on a ws? I dont want it generic I want individually for various ws, aka ishrava on one hit, novio on magic ws, telos on multihit etc.
Because of what you describe, it'd be easier to just do it the other way around (put those in the sets and equip Moonshade when <2950 or whatever you want the threshold to be. Assuming you intend this for a Mote-based file.
Code moonshade_WS = S{"Blade: Ten"}
function job_post_precast(spell,action,spellMap,eventArgs)
if spell.type=="WeaponSkill" then
if moonshade_WS:contains(spell.english) and player.tp<2950 then
equip({ear1="Moonshade Earring"})
end
end
end
Be mindful if you already have a job_post_precast function in your file and place the contents inside that one.
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.
|
|