|
Sroda necklace in gearswap lua
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-21 22:25:45
How do i add sroda necklace to my rdm and whm luas?
i want gearswap to switch in my sroda necklace when i use a barstatus (barpoison, barparalyze, etc) spell.
i can't find a barstatus in the variables file so i tried adding my own barstatus to the mote_mappings lua but that isnt working.
i added this to the mappings lua: ['Barpoison']='BarStatus',['Barparalyze']='BarStatus',['Barvirus']='BarStatus',['Barsilence']='BarStatus',['Barpetrify']='BarStatus',['Barblind']='BarStatus',['Baramnesia']='BarStatus',['Barsleep']='BarStatus',
['Barpoisonra']='BarStatus',['Barparalyzra']='BarStatus',['Barvira']='BarStatus',['Barsilencera']='BarStatus',['Barpetra']='BarStatus',['Barblindra']='BarStatus',['Baramnesra']='BarStatus',['Barsleepra']='BarStatus',
and i added this to my rdm lua: sets.midcast['Enhancing Magic'] = {
main={ name="Serenity", augments={'MP+50','Enha.mag. skill +10','"Cure" potency +5%','"Cure" spellcasting time -10%',}},
sub="Clerisy Strap",
head="Befouled Crown",
body={ name="Viti. Tabard +2", augments={'Enhances "Chainspell" effect',}},
hands={ name="Viti. Gloves +2", augments={'Enhancing Magic duration',}},
legs="Atrophy Tights +1",
feet="Leth. Houseaux +1",
waist="Olympus Sash",
left_ear="Augment. Earring",
right_ear="Mimir Earring",
left_ring="Stikini Ring",
back="Merciful Cape",
right_ring="Stikini Ring",}
sets.midcast.BarStatus = set_combine(sets.midcast['Enhancing Magic'], {neck="Sroda necklace"})
then i reloaded gearswap and tried gs r mote_mappings. and thats as far as i've gotten on my own.
Bahamut.Kaius
Server: Bahamut
Game: FFXI
Posts: 26
By Bahamut.Kaius 2023-06-22 01:12:00
What exactly is not working? Like it just doesn't swap in the necklace when you cast a bar status spell? Do you have any errors on the console when trying to cast, or when loading the job's lua?
Seems like everything you did makes sense and should work. Not sure about 'gs r mote_mappings'. I would just do a //lua reload gearswap to make sure all the mote stuff and your lua is reloaded.
Ragnarok.Shaedhen
Server: Ragnarok
Game: FFXI
Posts: 22
By Ragnarok.Shaedhen 2023-06-22 01:56:33
What you did seems correct as far as I can tell.
Could you post your complete mote_mappings file ? All I could think of is that the BarStatus stuff hasn't been added at the right place maybe.
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-22 07:03:06
What exactly is not working? Like it just doesn't swap in the necklace when you cast a bar status spell? Do you have any errors on the console when trying to cast, or when loading the job's lua?
Seems like everything you did makes sense and should work. Not sure about 'gs r mote_mappings'. I would just do a //lua reload gearswap to make sure all the mote stuff and your lua is reloaded.
no it won't swap the necklace in. i know the neck is not disabled because it switches in my fastcast gear.
no errors when i cast any bar spells
and yup i tried lua r gearswap
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-22 07:03:35
Ragnarok.Shaedhen said: »What you did seems correct as far as I can tell.
Could you post your complete mote_mappings file ? All I could think of is that the BarStatus stuff hasn't been added at the right place maybe. -------------------------------------------------------------------------------------------------------------------
-- Mappings, lists and sets to describe game relationships that aren't easily determinable otherwise.
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
-- Elemental mappings for element relationships and certain types of spells and gear.
-------------------------------------------------------------------------------------------------------------------
-- Basic elements
elements = {}
elements.list = S{'Light','Dark','Fire','Ice','Wind','Earth','Lightning','Water'}
elements.weak_to = {['Light']='Dark', ['Dark']='Light', ['Fire']='Ice', ['Ice']='Wind', ['Wind']='Earth', ['Earth']='Lightning',
['Lightning']='Water', ['Water']='Fire'}
elements.strong_to = {['Light']='Dark', ['Dark']='Light', ['Fire']='Water', ['Ice']='Fire', ['Wind']='Ice', ['Earth']='Wind',
['Lightning']='Earth', ['Water']='Lightning'}
storms = S{"Aurorastorm", "Voidstorm", "Firestorm", "Sandstorm", "Rainstorm", "Windstorm", "Hailstorm", "Thunderstorm",
"Aurorastorm II", "Voidstorm II", "Firestorm II", "Sandstorm II", "Rainstorm II", "Windstorm II", "Hailstorm II", "Thunderstorm II"}
elements.storm_of = {['Light']="Aurorastorm", ['Dark']="Voidstorm", ['Fire']="Firestorm", ['Earth']="Sandstorm",
['Water']="Rainstorm", ['Wind']="Windstorm", ['Ice']="Hailstorm", ['Lightning']="Thunderstorm",['Light']="Aurorastorm II",
['Dark']="Voidstorm II", ['Fire']="Firestorm II", ['Earth']="Sandstorm II", ['Water']="Rainstorm II", ['Wind']="Windstorm II",
['Ice']="Hailstorm II", ['Lightning']="Thunderstorm II"}
spirits = S{"LightSpirit", "DarkSpirit", "FireSpirit", "EarthSpirit", "WaterSpirit", "AirSpirit", "IceSpirit", "ThunderSpirit"}
elements.spirit_of = {['Light']="Light Spirit", ['Dark']="Dark Spirit", ['Fire']="Fire Spirit", ['Earth']="Earth Spirit",
['Water']="Water Spirit", ['Wind']="Air Spirit", ['Ice']="Ice Spirit", ['Lightning']="Thunder Spirit"}
runes = S{'Lux', 'Tenebrae', 'Ignis', 'Gelus', 'Flabra', 'Tellus', 'Sulpor', 'Unda'}
elements.rune_of = {['Light']='Lux', ['Dark']='Tenebrae', ['Fire']='Ignis', ['Ice']='Gelus', ['Wind']='Flabra',
['Earth']='Tellus', ['Lightning']='Sulpor', ['Water']='Unda'}
elements.obi_of = {['Light']='Hachirin-no-Obi', ['Dark']='Hachirin-no-Obi', ['Fire']='Hachirin-no-Obi', ['Ice']='Hachirin-no-Obi', ['Wind']='Hachirin-no-Obi',
['Earth']='Hachirin-no-Obi', ['Lightning']='Hachirin-no-Obi', ['Water']='Hachirin-no-Obi'}
elements.gorget_of = {['Light']='Fotia Gorget', ['Dark']='Fotia Gorget', ['Fire']='Fotia Gorget', ['Ice']='Fotia Gorget',
['Wind']='Fotia Gorget', ['Earth']='Fotia Gorget', ['Lightning']='Fotia Gorget', ['Water']='Fotia Gorget'}
elements.belt_of = {['Light']='Fotia Belt', ['Dark']='Fotia Belt', ['Fire']='Fotia Belt', ['Ice']='Fotia Belt',
['Wind']='Fotia Belt', ['Earth']='Fotia Belt', ['Lightning']='Fotia Belt', ['Water']='Fotia Belt'}
elements.fastcast_staff_of = {['Light']='Arka I', ['Dark']='Xsaeta I', ['Fire']='Atar I', ['Ice']='Vourukasha I',
['Wind']='Vayuvata I', ['Earth']='Vishrava I', ['Lightning']='Apamajas I', ['Water']='Haoma I', ['Thunder']='Apamajas I'}
elements.recast_staff_of = {['Light']='Arka II', ['Dark']='Xsaeta II', ['Fire']='Atar II', ['Ice']='Vourukasha II',
['Wind']='Vayuvata II', ['Earth']='Vishrava II', ['Lightning']='Apamajas II', ['Water']='Haoma II', ['Thunder']='Apamajas II'}
elements.perpetuance_staff_of = {['Light']='Arka III', ['Dark']='Xsaeta III', ['Fire']='Atar III', ['Ice']='Vourukasha III',
['Wind']='Vayuvata III', ['Earth']='Vishrava III', ['Lightning']='Apamajas III', ['Water']='Haoma III', ['Thunder']='Apamajas III'}
-- 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'}
-------------------------------------------------------------------------------------------------------------------
-- Mappings for weaponskills
-------------------------------------------------------------------------------------------------------------------
-- REM weapons and their corresponding weaponskills
data = {}
data.weaponskills = {}
data.weaponskills.relic = {
["Spharai"] = "Final Heaven",
["Mandau"] = "Mercy Stroke",
["Excalibur"] = "Knights of Round",
["Ragnarok"] = "Scourge",
["Guttler"] = "Onslaught",
["Bravura"] = "Metatron Torment",
["Apocalypse"] = "Catastrophe",
["Gungnir"] = "Gierskogul",
["Kikoku"] = "Blade: Metsu",
["Amanomurakumo"] = "Tachi: Kaiten",
["Mjollnir"] = "Randgrith",
["Claustrum"] = "Gates of Tartarus",
["Annihilator"] = "Coronach",
["Yoichinoyumi"] = "Namas Arrow"}
data.weaponskills.mythic = {
["Conqueror"] = "King's Justice",
["Glanzfaust"] = "Ascetic's Fury",
["Yagrush"] = "Mystic Boon",
["Laevateinn"] = "Vidohunir",
["Murgleis"] = "Death Blossom",
["Vajra"] = "Mandalic Stab",
["Burtgang"] = "Atonement",
["Liberator"] = "Insurgency",
["Aymur"] = "Primal Rend",
["Carnwenhan"] = "Mordant Rime",
["Gastraphetes"] = "Trueflight",
["Kogarasumaru"] = "Tachi: Rana",
["Nagi"] = "Blade: Kamu",
["Ryunohige"] = "Drakesbane",
["Nirvana"] = "Garland of Bliss",
["Tizona"] = "Expiacion",
["Death Penalty"] = "Leaden Salute",
["Kenkonken"] = "Stringing Pummel",
["Terpsichore"] = "Pyrrhic Kleos",
["Tupsimati"] = "Omniscience",
["Idris"] = "Exudation",
["Epeolatry"] = "Dimidiation"}
data.weaponskills.empyrean = {
["Verethragna"] = "Victory Smite",
["Twashtar"] = "Rudra's Storm",
["Almace"] = "Chant du Cygne",
["Caladbolg"] = "Torcleaver",
["Farsha"] = "Cloudsplitter",
["Ukonvasara"] = "Ukko's Fury",
["Redemption"] = "Quietus",
["Rhongomiant"] = "Camlann's Torment",
["Kannagi"] = "Blade: Hi",
["Masamune"] = "Tachi: Fudo",
["Gambanteinn"] = "Dagann",
["Hvergelmir"] = "Myrkr",
["Gandiva"] = "Jishnu's Radiance",
["Armageddon"] = "Wildfire"}
-- Weaponskills that can be used at range.
data.weaponskills.ranged = S{"Flaming Arrow", "Piercing Arrow", "Dulling Arrow", "Sidewinder", "Arching Arrow",
"Empyreal Arrow", "Refulgent Arrow", "Apex Arrow", "Namas Arrow", "Jishnu's Radiance",
"Hot Shot", "Split Shot", "Sniper Shot", "Slug Shot", "Heavy Shot", "Detonator", "Last Stand",
"Coronach", "Trueflight", "Leaden Salute", "Wildfire",
"Myrkr"}
ranged_weaponskills = data.weaponskills.ranged
-------------------------------------------------------------------------------------------------------------------
-- Spell mappings allow defining a general category or description that each of sets of related
-- spells all fall under.
-------------------------------------------------------------------------------------------------------------------
spell_maps = {
['Cure']='Cure',['Cure II']='Cure',['Cure III']='Cure',['Cure IV']='Cure',['Cure V']='Cure',['Cure VI']='Cure',
['Full Cure']='Cure',
['Cura']='Curaga',['Cura II']='Curaga',['Cura III']='Curaga',
['Curaga']='Curaga',['Curaga II']='Curaga',['Curaga III']='Curaga',['Curaga IV']='Curaga',['Curaga V']='Curaga',
-- Status Removal doesn't include Esuna or Sacrifice, since they work differently than the rest
['Poisona']='StatusRemoval',['Paralyna']='StatusRemoval',['Silena']='StatusRemoval',['Blindna']='StatusRemoval',['Cursna']='StatusRemoval',
['Stona']='StatusRemoval',['Viruna']='StatusRemoval',['Erase']='StatusRemoval',
['Barfire']='BarElement',['Barstone']='BarElement',['Barwater']='BarElement',['Baraero']='BarElement',['Barblizzard']='BarElement',['Barthunder']='BarElement',
['Barfira']='BarElement',['Barstonra']='BarElement',['Barwatera']='BarElement',['Baraera']='BarElement',['Barblizzara']='BarElement',['Barthundra']='BarElement',
['Barpoison']='BarStatus',['Barparalyze']='BarStatus',['Barvirus']='BarStatus',['Barsilence']='BarStatus',['Barpetrify']='BarStatus',['Barblind']='BarStatus',['Baramnesia']='BarStatus',['Barsleep']='BarStatus',
['Barpoisonra']='BarStatus',['Barparalyzra']='BarStatus',['Barvira']='BarStatus',['Barsilencera']='BarStatus',['Barpetra']='BarStatus',['Barblindra']='BarStatus',['Baramnesra']='BarStatus',['Barsleepra']='BarStatus',
['Raise']='Raise',['Raise II']='Raise',['Raise III']='Raise',['Arise']='Raise',
['Reraise']='Reraise',['Reraise II']='Reraise',['Reraise III']='Reraise',['Reraise IV']='Reraise',
['Protect']='Protect',['Protect II']='Protect',['Protect III']='Protect',['Protect IV']='Protect',['Protect V']='Protect',
['Shell']='Shell',['Shell II']='Shell',['Shell III']='Shell',['Shell IV']='Shell',['Shell V']='Shell',
['Protectra']='Protectra',['Protectra II']='Protectra',['Protectra III']='Protectra',['Protectra IV']='Protectra',['Protectra V']='Protectra',
['Shellra']='Shellra',['Shellra II']='Shellra',['Shellra III']='Shellra',['Shellra IV']='Shellra',['Shellra V']='Shellra',
['Regen']='Regen',['Regen II']='Regen',['Regen III']='Regen',['Regen IV']='Regen',['Regen V']='Regen',
['Refresh']='Refresh',['Refresh II']='Refresh',['Refresh III']='Refresh',
['Teleport-Holla']='Teleport',['Teleport-Dem']='Teleport',['Teleport-Mea']='Teleport',['Teleport-Altep']='Teleport',['Teleport-Yhoat']='Teleport',
['Teleport-Vahzl']='Teleport',['Recall-Pashh']='Teleport',['Recall-Meriph']='Teleport',['Recall-Jugner']='Teleport',
['Valor Minuet']='Minuet',['Valor Minuet II']='Minuet',['Valor Minuet III']='Minuet',['Valor Minuet IV']='Minuet',['Valor Minuet V']='Minuet',
["Knight's Minne"]='Minne',["Knight's Minne II"]='Minne',["Knight's Minne III"]='Minne',["Knight's Minne IV"]='Minne',["Knight's Minne V"]='Minne',
['Advancing March']='March',['Victory March']='March',
['Sword Madrigal']='Madrigal',['Blade Madrigal']='Madrigal',
["Hunter's Prelude"]='Prelude',["Archer's Prelude"]='Prelude',
['Sheepfoe Mambo']='Mambo',['Dragonfoe Mambo']='Mambo',
['Raptor Mazurka']='Mazurka',['Chocobo Mazurka']='Mazurka',
['Sinewy Etude']='Etude',['Dextrous Etude']='Etude',['Vivacious Etude']='Etude',['Quick Etude']='Etude',['Learned Etude']='Etude',['Spirited Etude']='Etude',['Enchanting Etude']='Etude',
['Herculean Etude']='Etude',['Uncanny Etude']='Etude',['Vital Etude']='Etude',['Swift Etude']='Etude',['Sage Etude']='Etude',['Logical Etude']='Etude',['Bewitching Etude']='Etude',
["Mage's Ballad"]='Ballad',["Mage's Ballad II"]='Ballad',["Mage's Ballad III"]='Ballad',
["Army's Paeon"]='Paeon',["Army's Paeon II"]='Paeon',["Army's Paeon III"]='Paeon',["Army's Paeon IV"]='Paeon',["Army's Paeon V"]='Paeon',["Army's Paeon VI"]='Paeon',
['Fire Carol']='Carol',['Ice Carol']='Carol',['Wind Carol']='Carol',['Earth Carol']='Carol',['Lightning Carol']='Carol',['Water Carol']='Carol',['Light Carol']='Carol',['Dark Carol']='Carol',
['Fire Carol II']='Carol',['Ice Carol II']='Carol',['Wind Carol II']='Carol',['Earth Carol II']='Carol',['Lightning Carol II']='Carol',['Water Carol II']='Carol',['Light Carol II']='Carol',['Dark Carol II']='Carol',
['Foe Lullaby']='Lullaby',['Foe Lullaby II']='Lullaby',['Horde Lullaby']='Lullaby',['Horde Lullaby II']='Lullaby',
['Fire Threnody']='Threnody',['Ice Threnody']='Threnody',['Wind Threnody']='Threnody',['Earth Threnody']='Threnody',['Ltng. Threnody']='Threnody',['Water Threnody']='Threnody',['Light Threnody']='Threnody',['Dark Threnody']='Threnody',
['Fire Threnody II']='Threnody',['Ice Threnody II']='Threnody',['Wind Threnody II']='Threnody',['Earth Threnody II']='Threnody',['Ltng. Threnody II']='Threnody',['Water Threnody II']='Threnody',['Light Threnody II']='Threnody',['Dark Threnody II']='Threnody',
['Battlefield Elegy']='Elegy',['Carnage Elegy']='Elegy',
['Foe Requiem']='Requiem',['Foe Requiem II']='Requiem',['Foe Requiem III']='Requiem',['Foe Requiem IV']='Requiem',['Foe Requiem V']='Requiem',['Foe Requiem VI']='Requiem',['Foe Requiem VII']='Requiem',
['Utsusemi: Ichi']='Utsusemi',['Utsusemi: Ni']='Utsusemi',['Utsusemi: San']='Utsusemi',
['Katon: Ichi'] = 'ElementalNinjutsu',['Suiton: Ichi'] = 'ElementalNinjutsu',['Raiton: Ichi'] = 'ElementalNinjutsu',
['Doton: Ichi'] = 'ElementalNinjutsu',['Huton: Ichi'] = 'ElementalNinjutsu',['Hyoton: Ichi'] = 'ElementalNinjutsu',
['Katon: Ni'] = 'ElementalNinjutsu',['Suiton: Ni'] = 'ElementalNinjutsu',['Raiton: Ni'] = 'ElementalNinjutsu',
['Doton: Ni'] = 'ElementalNinjutsu',['Huton: Ni'] = 'ElementalNinjutsu',['Hyoton: Ni'] = 'ElementalNinjutsu',
['Katon: San'] = 'ElementalNinjutsu',['Suiton: San'] = 'ElementalNinjutsu',['Raiton: San'] = 'ElementalNinjutsu',
['Doton: San'] = 'ElementalNinjutsu',['Huton: San'] = 'ElementalNinjutsu',['Hyoton: San'] = 'ElementalNinjutsu',
['Banish']='Banish',['Banish II']='Banish',['Banish III']='Banish',['Banishga']='Banish',['Banishga II']='Banish',
['Holy']='Holy',['Holy II']='Holy',['Drain']='Drain',['Drain II']='Drain',['Drain III']='Drain',['Aspir']='Aspir',['Aspir II']='Aspir',
['Pyrohelix']='Helix',['Cryohelix']='Helix',['Anemohelix']='Helix',['Geohelix']='Helix',['Ionohelix']='Helix',['Hydrohelix']='Helix',['Luminohelix']='Helix',['Noctohelix']='Helix',
['Firestorm']='Storm',['Hailstorm']='Storm',['Windstorm']='Storm',['Sandstorm']='Storm',['Thunderstorm']='Storm',['Rainstorm']='Storm',['Aurorastorm']='Storm',['Voidstorm']='Storm',
['Pyrohelix II']='Helix',['Cryohelix II']='Helix',['Anemohelix II']='Helix',['Geohelix II']='Helix',['Ionohelix II']='Helix',['Hydrohelix II']='Helix',['Luminohelix II']='Helix',['Noctohelix II']='Helix',
['Firestorm II']='Storm',['Hailstorm II']='Storm',['Windstorm II']='Storm',['Sandstorm II']='Storm',['Thunderstorm II']='Storm',['Rainstorm II']='Storm',['Aurorastorm II']='Storm',['Voidstorm II']='Storm',
['Absorb-Str']='Absorb',['Absorb-Dex']='Absorb',['Absorb-Vit']='Absorb',['Absorb-Agi']='Absorb',['Absorb-Int']='Absorb',['Absorb-Mnd']='Absorb',['Absorb-Chr']='Absorb',
['Absorb-Acc']='Absorb',['Absorb-TP']='Absorb',['Absorb-Attri']='Absorb',
['Enlight']='Enlight',['Enlight II']='Enlight',['Endark']='Endark',['Endark II']='Endark',
['Burn']='ElementalEnfeeble',['Frost']='ElementalEnfeeble',['Choke']='ElementalEnfeeble',['Rasp']='ElementalEnfeeble',['Shock']='ElementalEnfeeble',['Drown']='ElementalEnfeeble',
['Pyrohelix']='Helix',['Cryohelix']='Helix',['Anemohelix']='Helix',['Geohelix']='Helix',['Ionohelix']='Helix',['Hydrohelix']='Helix',['Luminohelix']='Helix',['Noctohelix']='Helix',
['Pyrohelix II']='Helix',['Cryohelix II']='Helix',['Anemohelix II']='Helix',['Geohelix II']='Helix',['Ionohelix II']='Helix',['Hydrohelix II']='Helix',['Luminohelix II']='Helix',['Noctohelix II']='Helix',
['Firestorm']='Storm',['Hailstorm']='Storm',['Windstorm']='Storm',['Sandstorm']='Storm',['Thunderstorm']='Storm',['Rainstorm']='Storm',['Aurorastorm']='Storm',['Voidstorm']='Storm',
['Firestorm II']='Storm',['Hailstorm II']='Storm',['Windstorm II']='Storm',['Sandstorm II']='Storm',['Thunderstorm II']='Storm',['Rainstorm II']='Storm',['Aurorastorm II']='Storm',['Voidstorm II']='Storm',
['Fire Maneuver']='Maneuver',['Ice Maneuver']='Maneuver',['Wind Maneuver']='Maneuver',['Earth Maneuver']='Maneuver',['Thunder Maneuver']='Maneuver',
['Water Maneuver']='Maneuver',['Light Maneuver']='Maneuver',['Dark Maneuver']='Maneuver',
}
no_skill_spells_list = S{'Haste', 'Refresh', 'Regen', 'Protect', 'Protectra', 'Shell', 'Shellra',
'Raise', 'Reraise', 'Sneak', 'Invisible', 'Deodorize'}
-------------------------------------------------------------------------------------------------------------------
-- Tables to specify general area groupings. Creates the 'areas' table to be referenced in job files.
-- Zone names provided by world.area/world.zone are currently in all-caps, so defining the same way here.
-------------------------------------------------------------------------------------------------------------------
areas = {}
-- City areas for town gear and behavior.
areas.Cities = S{
"Ru'Lude Gardens",
"Upper Jeuno",
"Lower Jeuno",
"Port Jeuno",
"Port Windurst",
"Windurst Waters",
"Windurst Woods",
"Windurst Walls",
"Heavens Tower",
"Port San d'Oria",
"Northern San d'Oria",
"Southern San d'Oria",
"Port Bastok",
"Bastok Markets",
"Bastok Mines",
"Metalworks",
"Aht Urhgan Whitegate",
"Tavnazian Safehold",
"Nashmau",
"Selbina",
"Mhaura",
"Norg",
"Eastern Adoulin",
"Western Adoulin",
"Kazham",
"Rabao",
"Chocobo Circuit",
}
-- Adoulin areas, where Ionis will grant special stat bonuses.
areas.Adoulin = S{
"Yahse Hunting Grounds",
"Ceizak Battlegrounds",
"Foret de Hennetiel",
"Morimar Basalt Fields",
"Yorcia Weald",
"Yorcia Weald ",
"Cirdas Caverns",
"Cirdas Caverns ",
"Marjami Ravine",
"Kamihr Drifts",
"Sih Gates",
"Moh Gates",
"Dho Gates",
"Woh Gates",
"Rala Waterways",
"Rala Waterways ",
"Outer Ra'Kaznar",
"Outer Ra'Kaznar "
}
-------------------------------------------------------------------------------------------------------------------
-- Lists of certain NPCs. (Not up to date)
-------------------------------------------------------------------------------------------------------------------
npcs = {}
npcs.Trust = S{'Ajido-Marujido','Aldo','Ayame','Cherukiki','Curilla','D.Shantotto','Elivira','Excenmille',
'Fablinix','FerreousCoffin','Gadalar','Gessho','Ingrid','IronEater','Joachim','Klara','Kupipi',
'LehkoHabhoka','LhuMhakaracca','Lion','Luzaf','Maat','MihliAliapoh','Mnejing','Moogle','Mumor',
'NajaSalaheem','Najelith','Naji','NanaaMihgo','Nashmeira','Noillurie','Ovjang','Prishe','Rainemard',
'RomaaMihgo','Sakura','Shantotto','StarSibyl','Tenzen','Trion','UkaTotlihn','Ulmia','Valaineral',
'Volker','Zazarg','Zeid'}
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-22 07:05:44
thanks beau i'll use this until we can get the mote mapping problem figured out
i'm a multiboxer so a update to the mappings lua will help out alot so i dont have to copy and paste over and over
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-22 07:49:14
weird. i tried your code beau but its still not changing it.
it works if i put the sroda necklace in my enhancingduration set or any other set but not in the bar spells sets.... wtf??
By Meeble 2023-06-22 09:16:52
What you did initially should work fine with stock GS.
That said, if your lua has an EnhancingDuration set, it probably has a midcast customization function that's overriding the default behavior. Find that function and you should be able to add the logic you need.
As a side note, any changes you make to Mote-Mappings.lua will be reverted anytime GS updates. You can save your revised mappings file as Custom-Mappings.lua or w/e, then load it in the relevant job luas with:
Code include('Custom-Mappings')
[+]
Server: Asura
Game: FFXI
Posts: 135
By Asura.Chendar 2023-06-22 10:20:48
have you tried Code //gs equip sets.midcast.BarStatus
to check if you can force equip the set in the first place?
If that works then it's likely being overwritten by another set (enh. duration?) somewhere in your job lua like Meeble suggested. Perhaps in the 'job_post_midcast' function for example?
quick edit:
The basic mote whm lua also has a 'job_get_spell_map' function that deals with mappings. It doesn't touch enhancing magic by default, but if someone played around with it you might wanna have a look.
Odin.Lawii
Server: Odin
Game: FFXI
Posts: 62
By Odin.Lawii 2023-06-22 10:43:48
FYI the Mote-Mappings.lua does sometime get updated(not very often), and when it does it will take the lines out that make those spells BarStatus.
I have brought this up in the widower discord, but they did not want to add it to the lib. you can write your own library and add those lines to it, or you can fix it when it updates.
[+]
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-22 12:56:37
have you tried Code //gs equip sets.midcast.BarStatus
to check if you can force equip the set in the first place?
If that works then it's likely being overwritten by another set (enh. duration?) somewhere in your job lua like Meeble suggested. Perhaps in the 'job_post_midcast' function for example?
quick edit:
The basic mote whm lua also has a 'job_get_spell_map' function that deals with mappings. It doesn't touch enhancing magic by default, but if someone played around with it you might wanna have a look.
yes //gs equip sets.midcast.Barstatus worked
and yes theres a duration enhancing set.
not sure what i'm supposed to do though. put the barstatus above the duration set?
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-22 13:06:33
Here's my lua
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')
include('organizer-lib')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
state.Buff.Saboteur = buffactive.saboteur or false
state.Moving = M{false, "moving"}
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')
state.HybridMode:options('Normal', 'PhysicalDef', 'MagicalDef')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT', 'MDT')
gear.default.obi_waist = "Sekhmet Corset"
select_default_macro_book()
send_command('wait 2; input /lockstyleset 1')
end
function file_unload ()
windower.send_command('sta !packets')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA['Chainspell'] = {body="Vitivation Tabard +2"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Atrophy Chapeau +1",
body="Atrophy Tabard +1",hands="Yaoyotl Gloves",
back="Refraction Cape",legs="Hagondes Pants",feet="Hagondes Sabots"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Fast cast sets for spells
-- 80% Fast Cast (including trait) for all spells, plus 5% quick cast
-- No other FC sets necessary.
sets.precast.FC = {
main={ name="Emissary", augments={'Mag. Acc.+15','"Mag.Atk.Bns."+20','"Refresh"+1',}},
sub="Chanter's shield",
ammo="Impatiens",
head={ name="Merlinic Hood", augments={'"Mag.Atk.Bns."+1','"Fast Cast"+5','MND+10','Mag. Acc.+11',}},
body={ name="Viti. Tabard +2", augments={'Enhances "Chainspell" effect',}},
hands={ name="Gende. Gages +1", augments={'Phys. dmg. taken -3%','"Cure" spellcasting time -5%',}},
legs="Aya. Cosciales +2",
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+8','"Fast Cast"+6','STR+2','Mag. Acc.+6',}},
neck="Baetyl Pendant",
waist="Embla Sash",
left_ear="Loquac. Earring",
right_ear="Enchntr. Earring +1",
left_ring="Kishar Ring",
right_ring="Weather. Ring",
back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+5','"Fast Cast"+10','Spell interruption rate down-10%',}},}
sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
ammo="Focal Orb",
head={ name="Viti. Chapeau +2", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body="Ayanmo Corazza +2",
hands="Jhakri Cuffs +2",
legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +9',}},
feet="Aya. Gambieras +2",
neck="Asperity Necklace",
waist="Windbuffet Belt +1",
left_ear="Telos Earring",
right_ear="Sherida Earring",
left_ring="Pernicious Ring",
right_ring="Weather. Ring",
back="Atheling Mantle",}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS,
{neck="Soil Gorget",ear1="Brutal Earring",ear2="Moonshade Earring",
ring1="Aquasoul Ring",ring2="Aquasoul Ring",waist="Soil Belt"})
sets.precast.WS['Sanguine Blade'] = {ammo="Witchstone",
head="Hagondes Hat",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Hecate's Earring",
body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Acumen Ring",
back="Toro Cape",legs="Hagondes Pants",feet="Hagondes Sabots"}
-- Midcast Sets
sets.midcast.Cure = {
main="Daybreak",
sub="Sors Shield",
ammo="Regal Gem",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','"Cure" potency +7%',}},
body={ name="Chironic Doublet", augments={'Mag. Acc.+7','CHR+6','"Fast Cast"+1','Accuracy+15 Attack+15','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
hands={ name="Telchine Gloves", augments={'Enh. Mag. eff. dur. +10',}},
legs="Atrophy Tights +1",
feet={ name="Vanya Clogs", augments={'"Cure" potency +5%','"Cure" spellcasting time -15%','"Conserve MP"+6',}},
neck="Healing Torque",
waist="Bishop's Sash",
left_ear="Flashward Earring",
right_ear="Roundel Earring",
left_ring="Naji's Loop",
right_ring="Menelaus's Ring",
back="Solemnity Cape",}
sets.midcast.Curaga = sets.midcast.Cure
sets.midcast.CureSelf = {hands="Buremte Gloves", waist="Gishdubar Sash",}
sets.midcast['Enhancing Magic'] = {
main={ name="Serenity", augments={'MP+50','Enha.mag. skill +10','"Cure" potency +5%','"Cure" spellcasting time -10%',}},
sub="Clerisy Strap",
head="Befouled Crown",
body={ name="Viti. Tabard +2", augments={'Enhances "Chainspell" effect',}},
hands={ name="Viti. Gloves +2", augments={'Enhancing Magic duration',}},
legs="Atrophy Tights +1",
feet="Leth. Houseaux +1",
waist="Olympus Sash",
left_ear="Augment. Earring",
right_ear="Mimir Earring",
left_ring="Stikini Ring",
back="Merciful Cape",
right_ring="Stikini Ring",}
sets.midcast.BarStatus = {neck="Sroda necklace"}
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {ear1="Earthcry earring", waist="Siegel Sash", legs="Haven hose"})
sets.midcast['Enfeebling Magic'] = {
main={ name="Grioavolr", augments={'"Fast Cast"+6','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
sub="Enki Strap",
ammo="Regal Gem",
head={ name="Viti. Chapeau +2", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body="Lethargy Sayon +2",
hands="Regal Cuffs",
legs={ name="Chironic Hose", augments={'Crit.hit rate+2','Pet: STR+4','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
feet={ name="Vitiation Boots +2", augments={'Immunobreak Chance',}},
neck="Imbodla Necklace",
waist="Rumination Sash",
left_ear="Vor Earring",
right_ear="Snotra Earring",
left_ring="Kishar Ring",
right_ring="Stikini Ring",
back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+5','"Fast Cast"+10','Spell interruption rate down-10%',}},}
sets.midcast['Dia III'] = set_combine(sets.midcast['Enfeebling Magic'], {head="Vitivation Chapeau +2"})
sets.midcast['Slow II'] = set_combine(sets.midcast['Enfeebling Magic'], {head="Vitivation Chapeau +2"})
sets.midcast['Elemental Magic'] = {
main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +10','INT+4','Mag. Acc.+10','"Mag.Atk.Bns."+15','Magic Damage +3',}},
sub="Enki Strap",
ammo="Erlene's Notebook",
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
body={ name="Amalric Doublet +1", augments={'MP+80','"Mag.Atk.Bns."+25','"Fast Cast"+4',}},
hands={ name="Amalric Gages +1", augments={'INT+12','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
legs={ name="Amalric Slops", augments={'MP+60','"Mag.Atk.Bns."+20','Enmity-5',}},
feet={ name="Amalric Nails +1", augments={'Mag. Acc.+20','"Mag.Atk.Bns."+20','"Conserve MP"+7',}},
neck="Sanctity Necklace",
waist="Othila Sash",
left_ear="Friomisi Earring",
right_ear="Regal Earring",
left_ring="Shiva Ring +1",
right_ring="Shiva Ring +1",
back="Izdubar Mantle",}
sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {head=empty,body="Twilight Cloak"})
sets.midcast['Dark Magic'] = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Kalboron Stone",
head="Atrophy Chapeau +1",neck="Weike Torque",ear1="Lifestorm Earring",ear2="Psystorm Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Goading Belt",legs="Bokwus Slops",feet="Bokwus Boots"}
--sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {})
sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {ring1="Excelsis Ring", waist="Fucho-no-Obi"})
sets.midcast.Aspir = sets.midcast.Drain
-- Sets for special buff conditions on spells.
sets.midcast.EnhancingDuration = {
main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +10','INT+4','Mag. Acc.+10','"Mag.Atk.Bns."+15','Magic Damage +3',}},
sub="Fulcio grip",
head={ name="Telchine Cap", augments={'Enh. Mag. eff. dur. +10',}},
neck="Enhancing torque",
body={ name="Viti. Tabard +2", augments={'Enhances "Chainspell" effect',}},
hands="Atrophy Gloves +1",
legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +9',}},
feet="Leth. Houseaux +1",
waist="Embla Sash",
left_ear="Augment. Earring",
right_ear="Mimir Earring",
right_ring="Stikini Ring",
back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+5','"Fast Cast"+10','Spell interruption rate down-10%',}},
left_ring="Stikini Ring"}
sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
head="Amalric Coif",
body="Atrophy Tabard +1",
legs="Leth. Fuseau +1",})
sets.midcast.RefreshSelf = set_combine(sets.midcast.Refresh, {waist="Gishdubar sash", legs="Estoqueur's Fuseau +2", back="grapevine cape"})
sets.buff.ComposureOther = {
head="Lethargy Chappel",
body="Lethargy Sayon +2",
hands="Leth. Gantherots",
legs="Leth. Fuseau +1",
feet="Leth. Houseaux +1",}
sets.buff.Saboteur = {hands="Leth. Gantherots",}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main="Idris Staff",
head="Vitivation Chapeau",neck="Wiglen Gorget",
body="Atrophy Tabard +1",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
waist="Austerity Belt",legs="Nares Trews",feet="Chelona Boots +1"}
-- Idle sets
sets.idle = {
main="Mafic Cudgel",
sub="Genmei Shield",
ammo="Staunch Tathlum",
head="Aya. Zucchetto +2",
body="Lethargy sayon +2",
hands="Aya. Manopolas +2",
legs="Aya. Cosciales +2",
feet="Aya. Gambieras +2",
--neck="Twilight torque",
waist="Flume Belt",
left_ear="Ethereal Earring",
right_ear="Hearty Earring",
left_ring="Defending Ring",
right_ring="Weather. Ring",
back="Solemnity Cape",}
sets.idle.mp = {
main={ name="Emissary", augments={'Mag. Acc.+15','"Mag.Atk.Bns."+20','"Refresh"+1',}},
sub="Genmei Shield",
ammo="Homiliary",
head="Befouled Crown",
body="Shamash Robe",
hands="Serpentes Cuffs",
legs="Carmine Cuisses",
feet="Serpentes Sabots",
neck="Twilight Torque",
waist="Fucho-no-Obi",
left_ear="Ethereal Earring",
right_ear={ name="Moonshade Earring", augments={'HP+25','Latent effect: "Refresh"+1',}},
left_ring="Defending Ring",
right_ring="Weather. Ring",
back="Solemnity Cape",}
-- Defense sets
sets.defense.PDT = {
head="Atrophy Chapeau +1",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Hagondes Coat",hands="Gendewitha Gages",ring1="Defending Ring",ring2=gear.DarkRing.physical,
back="Shadow Mantle",waist="Flume Belt",legs="Hagondes Pants",feet="Gendewitha Galoshes"}
sets.defense.MDT = {ammo="Demonry Stone",
head="Atrophy Chapeau +1",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Atrophy Tabard +1",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Engulfer Cape",waist="Flume Belt",legs="Bokwus Slops",feet="Gendewitha Galoshes"}
sets.Kiting = {legs="Carmine Cuisses"}
sets.MoveSpeed = {legs="Carmine Cuisses"}
sets.latent_refresh = {waist="Fucho-no-obi"}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = {
main="Naegling",
sub="Genmei Shield",
ammo="Paeapua",
head="Aya. Zucchetto +2",
body="Ayanmo Corazza +2",
hands="Malignance Gloves",
legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +9',}},
feet="Atrophy Boots +1",
neck="Asperity Necklace",
waist="Windbuffet Belt +1",
left_ear="Telos Earring",
right_ear="Sherida Earring",
left_ring="Defending Ring",
right_ring="Weather. Ring",
back="Atheling Mantle",}
sets.engaged.Defense = {ammo="Demonry Stone",
head="Atrophy Chapeau +1",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Atrophy Tabard +1",hands="Atrophy Gloves +1",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Kayapa Cape",waist="Goading Belt",legs="Osmium Cuisses",feet="Atrophy Boots"}
sets.DW = {}
sets.engaged.DW = {
main="Naegling",
sub={ name="Vampirism", augments={'STR+8','INT+9','"Occult Acumen"+8','DMG:+14',}},
ammo="Paeapua",
head="Aya. Zucchetto +2",
body="Ayanmo Corazza +2",
hands="Malignance Gloves",
legs="Jhakri Slops +2",
feet="Aya. Gambieras +2",
neck="Asperity Necklace",
waist="Windbuffet Belt +1",
left_ear="Sherida Earring",
right_ear="Eabani Earring",
left_ring="K'ayres Ring",
right_ring="Chirich Ring",
back="Atheling Mantle",}
sets.naked = {
main="Mafic Cudgel",
sub="Genmei Shield",
ammo="Staunch Tathlum",
head="Aya. Zucchetto +2",
body="Shamash Robe",
hands="Aya. Manopolas +2",
legs="Aya. Cosciales +2",
feet="Aya. Gambieras +2",
neck="Twilight Torque",
waist="Flume Belt",
left_ear="Ethereal Earring",
right_ear="Colossus's Earring",
left_ring="Defending Ring",
right_ring="Weather. Ring",
back="Solemnity Cape",}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
windower.register_event('Zone change',
function(new, old)
status_change(player.status)
send_command('wait 5;input /lockstyleset 1')
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 == 'Enfeebling Magic' and state.Buff.Saboteur then
equip(sets.buff.Saboteur)
elseif spell.skill == 'Enhancing Magic' then
if buffactive.composure and spell.target.type == 'PLAYER' then
equip(sets.buff.ComposureOther)
end
equip(sets.midcast.EnhancingDuration)
elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
equip(sets.midcast.CureSelf)
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
function job_update(cmdParams, eventArgs)
update_combat_form()
end
-- Handle notifications of general user state change.
function job_state_change(new, old)
if player.status == engaged then
disable('main','sub','range')
else
enable('main','sub','range')
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
if player.mpp < 90 then
idleSet = sets.idle.mp
idleSet = sets.idle.mp
else
idleset = sets.idle
end
return idleSet
end
function update_combat_form()
-- Check for H2H or single-wielding
if player.equipment.sub == "Genbu's Shield" or player.equipment.sub == 'empty' then
state.CombatForm:reset()
else
state.CombatForm:set('DW')
end
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
display_current_caster_state()
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
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 c update')
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)
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'WHM' then
set_macro_page(1, 3)
elseif player.sub_job == 'NIN' then
set_macro_page(3, 3)
elseif player.sub_job == 'DRK' then
set_macro_page(4, 3)
elseif player.sub_job == 'WAR' then
set_macro_page(4, 3)
elseif player.sub_job == 'BLM' then
set_macro_page(2, 3)
else
set_macro_page(1, 3)
end
end
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-22 13:16:55
found the problem!
Code elseif spell.skill == 'Enhancing Magic' then
if buffactive.composure and spell.target.type == 'PLAYER' then
equip(sets.buff.ComposureOther)
end
equip(sets.midcast.EnhancingDuration) -- was this line here
i deleted that line and it fixed the problem! thanks for the help guys i never wouldve figured it out if you hadnt helped
much appreciated
Server: Asura
Game: FFXI
Posts: 135
By Asura.Chendar 2023-06-22 13:18:24
Code
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.skill == 'Enfeebling Magic' and state.Buff.Saboteur then
equip(sets.buff.Saboteur)
elseif spell.skill == 'Enhancing Magic' then
if buffactive.composure and spell.target.type == 'PLAYER' then
equip(sets.buff.ComposureOther)
end
equip(sets.midcast.EnhancingDuration)
elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
equip(sets.midcast.CureSelf)
end
end
line 393 there:
equip(sets.midcast.EnhancingDuration)
basically makes it equip 'sets.midcast.EnhancingDuration' over any other sets for all enhancing spells no matter what.
Could just remove that line, might casue issues with duration for other spells though if there's no other solution to handle that. Personally I just have my sets.midcast["Enhancing Magic"] be full duration since RDM hits 500 skill easy enough anyway and let most stuff default to that and just have a separate set for temper and enspells with max skill.
EDIT: too late with the reply it seems :P
[+]
By drakefs 2023-06-22 13:23:08
I agree with the others, you should not make changes to the mappings file. I added the mappings to my jobs lua (you can also add it to your globals.lua to work across moultiple jobs) and then added a check to my post_midcast
Code function job_setup()
barStatus = S{'Barpoison','Barparalyze','Barvirus','Barsilence','Barpetrify','Barblind','Baramnesia','Barsleep','Barpoisonra','Barparalyzra','Barvira','Barsilencera','Barpetra','Barblindra','Baramnesra','Barsleepra'}
end
function init_gear_sets()
sets.midcast.Barstatus = set_combine(sets.midcast['Enhancing Magic'], {neck="Sroda necklace"})
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if barStatus:contains(spell.name) then
equip(sets.midcast.Barstatus)
end
end
If you want to use the globals.lua, use user_post_midcast instead of job_post_midcast
[+]
By Meeble 2023-06-22 14:02:28
You don't have to remove the Enhancing Duration logic, you can have both. Drakefs' suggestion is a much cleaner way to do things than tweaking the mappings.
Here's a version of your lua with that done:
It checks whether it should use ComposureOther, then BarStatus, and if neither of those conditions are valid it'll default to EnhancingDuration.
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')
include('organizer-lib')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
state.Buff.Saboteur = buffactive.saboteur or false
state.Moving = M{false, "moving"}
barStatus = S{'Barpoison','Barparalyze','Barvirus','Barsilence','Barpetrify','Barblind','Baramnesia','Barsleep','Barpoisonra','Barparalyzra','Barvira','Barsilencera','Barpetra','Barblindra','Baramnesra','Barsleepra'}
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')
state.HybridMode:options('Normal', 'PhysicalDef', 'MagicalDef')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT', 'MDT')
gear.default.obi_waist = "Sekhmet Corset"
select_default_macro_book()
send_command('wait 2; input /lockstyleset 1')
end
function file_unload ()
windower.send_command('sta !packets')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA['Chainspell'] = {body="Vitivation Tabard +2"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Atrophy Chapeau +1",
body="Atrophy Tabard +1",hands="Yaoyotl Gloves",
back="Refraction Cape",legs="Hagondes Pants",feet="Hagondes Sabots"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Fast cast sets for spells
-- 80% Fast Cast (including trait) for all spells, plus 5% quick cast
-- No other FC sets necessary.
sets.precast.FC = {
main={ name="Emissary", augments={'Mag. Acc.+15','"Mag.Atk.Bns."+20','"Refresh"+1',}},
sub="Chanter's shield",
ammo="Impatiens",
head={ name="Merlinic Hood", augments={'"Mag.Atk.Bns."+1','"Fast Cast"+5','MND+10','Mag. Acc.+11',}},
body={ name="Viti. Tabard +2", augments={'Enhances "Chainspell" effect',}},
hands={ name="Gende. Gages +1", augments={'Phys. dmg. taken -3%','"Cure" spellcasting time -5%',}},
legs="Aya. Cosciales +2",
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+8','"Fast Cast"+6','STR+2','Mag. Acc.+6',}},
neck="Baetyl Pendant",
waist="Embla Sash",
left_ear="Loquac. Earring",
right_ear="Enchntr. Earring +1",
left_ring="Kishar Ring",
right_ring="Weather. Ring",
back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+5','"Fast Cast"+10','Spell interruption rate down-10%',}},}
sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
ammo="Focal Orb",
head={ name="Viti. Chapeau +2", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body="Ayanmo Corazza +2",
hands="Jhakri Cuffs +2",
legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +9',}},
feet="Aya. Gambieras +2",
neck="Asperity Necklace",
waist="Windbuffet Belt +1",
left_ear="Telos Earring",
right_ear="Sherida Earring",
left_ring="Pernicious Ring",
right_ring="Weather. Ring",
back="Atheling Mantle",}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS,
{neck="Soil Gorget",ear1="Brutal Earring",ear2="Moonshade Earring",
ring1="Aquasoul Ring",ring2="Aquasoul Ring",waist="Soil Belt"})
sets.precast.WS['Sanguine Blade'] = {ammo="Witchstone",
head="Hagondes Hat",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Hecate's Earring",
body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Acumen Ring",
back="Toro Cape",legs="Hagondes Pants",feet="Hagondes Sabots"}
-- Midcast Sets
sets.midcast.Cure = {
main="Daybreak",
sub="Sors Shield",
ammo="Regal Gem",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','"Cure" potency +7%',}},
body={ name="Chironic Doublet", augments={'Mag. Acc.+7','CHR+6','"Fast Cast"+1','Accuracy+15 Attack+15','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
hands={ name="Telchine Gloves", augments={'Enh. Mag. eff. dur. +10',}},
legs="Atrophy Tights +1",
feet={ name="Vanya Clogs", augments={'"Cure" potency +5%','"Cure" spellcasting time -15%','"Conserve MP"+6',}},
neck="Healing Torque",
waist="Bishop's Sash",
left_ear="Flashward Earring",
right_ear="Roundel Earring",
left_ring="Naji's Loop",
right_ring="Menelaus's Ring",
back="Solemnity Cape",}
sets.midcast.Curaga = sets.midcast.Cure
sets.midcast.CureSelf = {hands="Buremte Gloves", waist="Gishdubar Sash",}
sets.midcast['Enhancing Magic'] = {
main={ name="Serenity", augments={'MP+50','Enha.mag. skill +10','"Cure" potency +5%','"Cure" spellcasting time -10%',}},
sub="Clerisy Strap",
head="Befouled Crown",
body={ name="Viti. Tabard +2", augments={'Enhances "Chainspell" effect',}},
hands={ name="Viti. Gloves +2", augments={'Enhancing Magic duration',}},
legs="Atrophy Tights +1",
feet="Leth. Houseaux +1",
waist="Olympus Sash",
left_ear="Augment. Earring",
right_ear="Mimir Earring",
left_ring="Stikini Ring",
back="Merciful Cape",
right_ring="Stikini Ring",}
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {ear1="Earthcry earring", waist="Siegel Sash", legs="Haven hose"})
sets.midcast['Enfeebling Magic'] = {
main={ name="Grioavolr", augments={'"Fast Cast"+6','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
sub="Enki Strap",
ammo="Regal Gem",
head={ name="Viti. Chapeau +2", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body="Lethargy Sayon +2",
hands="Regal Cuffs",
legs={ name="Chironic Hose", augments={'Crit.hit rate+2','Pet: STR+4','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
feet={ name="Vitiation Boots +2", augments={'Immunobreak Chance',}},
neck="Imbodla Necklace",
waist="Rumination Sash",
left_ear="Vor Earring",
right_ear="Snotra Earring",
left_ring="Kishar Ring",
right_ring="Stikini Ring",
back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+5','"Fast Cast"+10','Spell interruption rate down-10%',}},}
sets.midcast['Dia III'] = set_combine(sets.midcast['Enfeebling Magic'], {head="Vitivation Chapeau +2"})
sets.midcast['Slow II'] = set_combine(sets.midcast['Enfeebling Magic'], {head="Vitivation Chapeau +2"})
sets.midcast['Elemental Magic'] = {
main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +10','INT+4','Mag. Acc.+10','"Mag.Atk.Bns."+15','Magic Damage +3',}},
sub="Enki Strap",
ammo="Erlene's Notebook",
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
body={ name="Amalric Doublet +1", augments={'MP+80','"Mag.Atk.Bns."+25','"Fast Cast"+4',}},
hands={ name="Amalric Gages +1", augments={'INT+12','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
legs={ name="Amalric Slops", augments={'MP+60','"Mag.Atk.Bns."+20','Enmity-5',}},
feet={ name="Amalric Nails +1", augments={'Mag. Acc.+20','"Mag.Atk.Bns."+20','"Conserve MP"+7',}},
neck="Sanctity Necklace",
waist="Othila Sash",
left_ear="Friomisi Earring",
right_ear="Regal Earring",
left_ring="Shiva Ring +1",
right_ring="Shiva Ring +1",
back="Izdubar Mantle",}
sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {head=empty,body="Twilight Cloak"})
sets.midcast['Dark Magic'] = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Kalboron Stone",
head="Atrophy Chapeau +1",neck="Weike Torque",ear1="Lifestorm Earring",ear2="Psystorm Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Goading Belt",legs="Bokwus Slops",feet="Bokwus Boots"}
--sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {})
sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {ring1="Excelsis Ring", waist="Fucho-no-Obi"})
sets.midcast.Aspir = sets.midcast.Drain
-- Sets for special buff conditions on spells.
sets.midcast.EnhancingDuration = {
main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +10','INT+4','Mag. Acc.+10','"Mag.Atk.Bns."+15','Magic Damage +3',}},
sub="Fulcio grip",
head={ name="Telchine Cap", augments={'Enh. Mag. eff. dur. +10',}},
neck="Enhancing torque",
body={ name="Viti. Tabard +2", augments={'Enhances "Chainspell" effect',}},
hands="Atrophy Gloves +1",
legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +9',}},
feet="Leth. Houseaux +1",
waist="Embla Sash",
left_ear="Augment. Earring",
right_ear="Mimir Earring",
right_ring="Stikini Ring",
back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+5','"Fast Cast"+10','Spell interruption rate down-10%',}},
left_ring="Stikini Ring"}
sets.midcast.BarStatus = set_combine(sets.midcast.EnhancingDuration, {neck="Sroda necklace"})
sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
head="Amalric Coif",
body="Atrophy Tabard +1",
legs="Leth. Fuseau +1",})
sets.midcast.RefreshSelf = set_combine(sets.midcast.Refresh, {waist="Gishdubar sash", legs="Estoqueur's Fuseau +2", back="grapevine cape"})
sets.buff.ComposureOther = {
head="Lethargy Chappel",
body="Lethargy Sayon +2",
hands="Leth. Gantherots",
legs="Leth. Fuseau +1",
feet="Leth. Houseaux +1",}
sets.buff.Saboteur = {hands="Leth. Gantherots",}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main="Idris Staff",
head="Vitivation Chapeau",neck="Wiglen Gorget",
body="Atrophy Tabard +1",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
waist="Austerity Belt",legs="Nares Trews",feet="Chelona Boots +1"}
-- Idle sets
sets.idle = {
main="Mafic Cudgel",
sub="Genmei Shield",
ammo="Staunch Tathlum",
head="Aya. Zucchetto +2",
body="Lethargy sayon +2",
hands="Aya. Manopolas +2",
legs="Aya. Cosciales +2",
feet="Aya. Gambieras +2",
--neck="Twilight torque",
waist="Flume Belt",
left_ear="Ethereal Earring",
right_ear="Hearty Earring",
left_ring="Defending Ring",
right_ring="Weather. Ring",
back="Solemnity Cape",}
sets.idle.mp = {
main={ name="Emissary", augments={'Mag. Acc.+15','"Mag.Atk.Bns."+20','"Refresh"+1',}},
sub="Genmei Shield",
ammo="Homiliary",
head="Befouled Crown",
body="Shamash Robe",
hands="Serpentes Cuffs",
legs="Carmine Cuisses",
feet="Serpentes Sabots",
neck="Twilight Torque",
waist="Fucho-no-Obi",
left_ear="Ethereal Earring",
right_ear={ name="Moonshade Earring", augments={'HP+25','Latent effect: "Refresh"+1',}},
left_ring="Defending Ring",
right_ring="Weather. Ring",
back="Solemnity Cape",}
-- Defense sets
sets.defense.PDT = {
head="Atrophy Chapeau +1",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Hagondes Coat",hands="Gendewitha Gages",ring1="Defending Ring",ring2=gear.DarkRing.physical,
back="Shadow Mantle",waist="Flume Belt",legs="Hagondes Pants",feet="Gendewitha Galoshes"}
sets.defense.MDT = {ammo="Demonry Stone",
head="Atrophy Chapeau +1",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Atrophy Tabard +1",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Engulfer Cape",waist="Flume Belt",legs="Bokwus Slops",feet="Gendewitha Galoshes"}
sets.Kiting = {legs="Carmine Cuisses"}
sets.MoveSpeed = {legs="Carmine Cuisses"}
sets.latent_refresh = {waist="Fucho-no-obi"}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = {
main="Naegling",
sub="Genmei Shield",
ammo="Paeapua",
head="Aya. Zucchetto +2",
body="Ayanmo Corazza +2",
hands="Malignance Gloves",
legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +9',}},
feet="Atrophy Boots +1",
neck="Asperity Necklace",
waist="Windbuffet Belt +1",
left_ear="Telos Earring",
right_ear="Sherida Earring",
left_ring="Defending Ring",
right_ring="Weather. Ring",
back="Atheling Mantle",}
sets.engaged.Defense = {ammo="Demonry Stone",
head="Atrophy Chapeau +1",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Atrophy Tabard +1",hands="Atrophy Gloves +1",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Kayapa Cape",waist="Goading Belt",legs="Osmium Cuisses",feet="Atrophy Boots"}
sets.DW = {}
sets.engaged.DW = {
main="Naegling",
sub={ name="Vampirism", augments={'STR+8','INT+9','"Occult Acumen"+8','DMG:+14',}},
ammo="Paeapua",
head="Aya. Zucchetto +2",
body="Ayanmo Corazza +2",
hands="Malignance Gloves",
legs="Jhakri Slops +2",
feet="Aya. Gambieras +2",
neck="Asperity Necklace",
waist="Windbuffet Belt +1",
left_ear="Sherida Earring",
right_ear="Eabani Earring",
left_ring="K'ayres Ring",
right_ring="Chirich Ring",
back="Atheling Mantle",}
sets.naked = {
main="Mafic Cudgel",
sub="Genmei Shield",
ammo="Staunch Tathlum",
head="Aya. Zucchetto +2",
body="Shamash Robe",
hands="Aya. Manopolas +2",
legs="Aya. Cosciales +2",
feet="Aya. Gambieras +2",
neck="Twilight Torque",
waist="Flume Belt",
left_ear="Ethereal Earring",
right_ear="Colossus's Earring",
left_ring="Defending Ring",
right_ring="Weather. Ring",
back="Solemnity Cape",}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
windower.register_event('Zone change',
function(new, old)
status_change(player.status)
send_command('wait 5;input /lockstyleset 1')
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 == 'Enfeebling Magic' and state.Buff.Saboteur then
equip(sets.buff.Saboteur)
elseif spell.skill == 'Enhancing Magic' then
if buffactive.composure and spell.target.type == 'PLAYER' then
equip(sets.buff.ComposureOther)
elseif barStatus:contains(spell.name) then
equip(sets.midcast.BarStatus)
else
equip(sets.midcast.EnhancingDuration)
end
elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
equip(sets.midcast.CureSelf)
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
function job_update(cmdParams, eventArgs)
update_combat_form()
end
-- Handle notifications of general user state change.
function job_state_change(new, old)
if player.status == engaged then
disable('main','sub','range')
else
enable('main','sub','range')
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
if player.mpp < 90 then
idleSet = sets.idle.mp
idleSet = sets.idle.mp
else
idleset = sets.idle
end
return idleSet
end
function update_combat_form()
-- Check for H2H or single-wielding
if player.equipment.sub == "Genbu's Shield" or player.equipment.sub == 'empty' then
state.CombatForm:reset()
else
state.CombatForm:set('DW')
end
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
display_current_caster_state()
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
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 c update')
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)
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'WHM' then
set_macro_page(1, 3)
elseif player.sub_job == 'NIN' then
set_macro_page(3, 3)
elseif player.sub_job == 'DRK' then
set_macro_page(4, 3)
elseif player.sub_job == 'WAR' then
set_macro_page(4, 3)
elseif player.sub_job == 'BLM' then
set_macro_page(2, 3)
else
set_macro_page(1, 3)
end
end
Server: Ragnarok
Game: FFXI
Posts: 43
By Ragnarok.Iamarealgirl 2023-06-22 15:18:48
EDIT: too late with the reply it seems :P
still appreciated!
Server: Phoenix
Game: FFXI
Posts: 117
By Phoenix.Rizzspeed 2023-06-22 19:46:42
here's what i did.
in Mote-Mappings.lua, under spell_maps, i added ALL the barspells.
['Barsleepra']='BarElement', etc.
After doing this, sets.midcast.Barstatus works as a set. So then just make a set including the necklace and place in your lua.
How do i add sroda necklace to my rdm and whm luas?
i want gearswap to switch in my sroda necklace when i use a barstatus (barpoison, barparalyze, etc) spell.
i can't find a barstatus in the variables file so i tried adding my own barstatus to the mote_mappings lua but that isnt working.
i added this to the mappings lua: ['Barpoison']='BarStatus',['Barparalyze']='BarStatus',['Barvirus']='BarStatus',['Barsilence']='BarStatus',['Barpetrify']='BarStatus',['Barblind']='BarStatus',['Baramnesia']='BarStatus',['Barsleep']='BarStatus',
['Barpoisonra']='BarStatus',['Barparalyzra']='BarStatus',['Barvira']='BarStatus',['Barsilencera']='BarStatus',['Barpetra']='BarStatus',['Barblindra']='BarStatus',['Baramnesra']='BarStatus',['Barsleepra']='BarStatus',
and i added this to my rdm lua: sets.midcast['Enhancing Magic'] = {
main={ name="Serenity", augments={'MP+50','Enha.mag. skill +10','"Cure" potency +5%','"Cure" spellcasting time -10%',}},
sub="Clerisy Strap",
head="Befouled Crown",
body={ name="Viti. Tabard +2", augments={'Enhances "Chainspell" effect',}},
hands={ name="Viti. Gloves +2", augments={'Enhancing Magic duration',}},
legs="Atrophy Tights +1",
feet="Leth. Houseaux +1",
waist="Olympus Sash",
left_ear="Augment. Earring",
right_ear="Mimir Earring",
left_ring="Stikini Ring",
back="Merciful Cape",
right_ring="Stikini Ring",}
sets.midcast.BarStatus = set_combine(sets.midcast['Enhancing Magic'], {neck="Sroda necklace"})
then i reloaded gearswap and tried gs r mote_mappings. and thats as far as i've gotten on my own.
|
|