Gearswap Support Thread

Eorzea Time
 
 
 
Language: JP EN FR DE
users online
Forum » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 180 181 182 ... 183 184 185
 Shiva.Cerderic
Offline
Server: Shiva
Game: FFXI
user: Cerderic
Posts: 463
By Shiva.Cerderic 2023-10-19 19:46:25
Link | Quote | Reply
 
drakefs said: »
You cannot have 2 midcast sets (SIRD and Enmity). What should be happening is Enmity+SIRD (Enmity base with SIRD replacing pieces of the Enmity set).
Maybe I'm misunderstanding but this definitely isn't true for my gs and I'm no expert. On long casting spells such as Tenebral Crush, it is definitely switching from FC -> eva/SIRD -> MAB. In odyssey, when a spell lags out midcast, I'm left standing in my SIRD set.
Offline
By Dodik 2023-10-20 06:52:37
Link | Quote | Reply
 
IIRC GS cannot guarantee two midcasts will have the sets applied correctly. Not to mention the starting midcast set won't be on for the whole spell, meaning that SIRD won't be effective throughout the spell and can still get interrupted.

Cast a long casting spell like stoneskin in such sets with maxed SIRD and see if you get interrupted. If you do, the SIRD set is not applied for the whole spell - 99.9999% this is happening.
Offline
Posts: 464
By drakefs 2023-10-20 09:29:17
Link | Quote | Reply
 
Shiva.Cerderic said: »
Maybe I'm misunderstanding but this definitely isn't true for my gs and I'm no expert.

GS has three triggers on actions:
Code
function precast()
function midcast()
function aftercast()
and these all trigger on specific packets.

Now, I am sure your gs lua has added functionality to equip a second set during midcast but it is likely not that accurate on swap times. I would strongly recommend building your SIRD set as I outlined in my previous post.
Code
equip(set_combine(sets.midcast.second-equip, sets.midcast.SIRD))


This would make sure that at least some of the correct gear is equipped should the second swap never happen.

With how quickcast interacts with GS, as I understand it, your setup would never equip the second set.
 Bahamut.Balduran
Offline
Server: Bahamut
Game: FFXI
user: balduran
Posts: 273
By Bahamut.Balduran 2023-10-21 01:47:29
Link | Quote | Reply
 
Shiva.Cerderic said: »
drakefs said: »
You cannot have 2 midcast sets (SIRD and Enmity). What should be happening is Enmity+SIRD (Enmity base with SIRD replacing pieces of the Enmity set).
Maybe I'm misunderstanding but this definitely isn't true for my gs and I'm no expert. On long casting spells such as Tenebral Crush, it is definitely switching from FC -> eva/SIRD -> MAB. In odyssey, when a spell lags out midcast, I'm left standing in my SIRD set.

I would suggest that you stick with the standard pre-cast > mid-cast and decide whether you want a guaranteed spell to land, regardless of potency, or if you will maximize FC then use skill to time your spell and land it with full potency gear. The 'sird in the middle' is not really a viable option, and as a matter of fact I tested in the past using the vanilla equipset macros and it wasn't reliable.
 Ragnarok.Iamarealgirl
Offline
Server: Ragnarok
Game: FFXI
user: Latravant
Posts: 43
By Ragnarok.Iamarealgirl 2023-10-30 17:22:27
Link | Quote | Reply
 
anyone know how to completely disable the brd and geo auto's in selindriles luas? i use autogeo and singer, but now that i've switched to sel's gs theyre overlapping with his autos, i didnt even know he had autos until they started overlapping lol. i've asked in the discord but havent got a response so hoped i could get help here.

basically i want to turn off selindriles autos. use ivaar's autogeo and singer. but when i try to disable either of sel's gs's they stop working and i get nonstop errors on screen.
Offline
By Dodik 2023-10-30 17:52:55
Link | Quote | Reply
 
What do you mean autos. Selindrile's luas don't auto cast anything unless you turn the auto stuff on afaik. For geo comment out 'autogeo' and 'autoindi' in your job file - again it needs to be enabled to cast even if these are set.
 Fenrir.Jinxs
Offline
Server: Fenrir
Game: FFXI
user: Jinxs
Posts: 541
By Fenrir.Jinxs 2023-10-30 19:20:34
Link | Quote | Reply
 
Id love to know how to use sels auto geo
I fail to see how those would conflict at all though.

What are you doing over there
Offline
Posts: 464
By drakefs 2023-10-30 20:50:15
Link | Quote | Reply
 
Dodik said: »
Selindrile's luas don't auto cast anything unless you turn the auto stuff on afaik.

Looking at the lua, it seems to default to Auto casting Indi\Geo.

Edit line 78:
Code
state.AutoGeoAbilities = M(true, 'Use Geo Abilities Automatically')
to
Code
state.AutoGeoAbilities = M(false, 'Use Geo Abilities Automatically')


Alternatively you can use
Code
//gs c toggle AutoGeoAbilities
in game to turn it off\on.


nvm that is specifically for JAs. You would have to turn off buff mode, probably?

I would probably just reccomend staying away from sels if you want to use the AutoGEO lua.
 Ragnarok.Iamarealgirl
Offline
Server: Ragnarok
Game: FFXI
user: Latravant
Posts: 43
By Ragnarok.Iamarealgirl 2023-10-30 21:21:44
Link | Quote | Reply
 
i type in "//autogeo on" or "//sing on" to start ivaars addons and it cause both ivaars and sel's to start

but it seems like no one can help me so i guess i will just have to go back to my old GS files.
Offline
By Dodik 2023-10-30 21:39:08
Link | Quote | Reply
 
Add:
Code
send_command('gs c set AutoBuffMode off')


To your user_job_setup function in job file.
 Fenrir.Jinxs
Offline
Server: Fenrir
Game: FFXI
user: Jinxs
Posts: 541
By Fenrir.Jinxs 2023-10-31 11:10:47
Link | Quote | Reply
 
Ragnarok.Iamarealgirl said: »
i type in "//autogeo on" or "//sing on" to start ivaars addons and it cause both ivaars and sel's to start

but it seems like no one can help me so i guess i will just have to go back to my old GS files.
I've used singer a few times and I have never had sing or sing on interact with selins luas

Either way it's probably an alias or something you can change
Use the find in files function of notepad++ and check the gear swap folder tree for "sing" and "autogeo"
You will also want to check your init file if you imported stuff from someone elses
 Quetzalcoatl.Balthor
Offline
Server: Quetzalcoatl
Game: FFXI
Posts: 20
By Quetzalcoatl.Balthor 2023-11-03 14:16:53
Link | Quote | Reply
 
I am having an issue with a BLM gearswap. Any time I move, say kiting an enemy, and then come to a stop, I can't immediately cast because GS switches to my idle gear after I start casting. I copied someone's GS and filled in my own current gear (work in progress), but I'm not sure how to get it to stop changing to idle gear after I stop moving. I'm always in my idle refresh gear during midcast and it's driving me nuts. Can anyone look this over and tell me why it keeps doing this?

Thank you.
Code



---------------------------------------------------------------------------------
-- This lua is based off of the Kinematics template and uses Motenten globals. --
--                                                                             --
-----------------------------Authors of this file--------------------------------
------           ******************************************                ------
---                                                                           ---
--	  Byrne (Asura) --------------- [Author			 Primary]    --
--	  Gamergiving (Asura) --------- [movement speed conversion mechanics]    --
-- 	  Verbannt (Asura) ------------ [organization of job functions And Github updates]    --
--   
--                                                                             --
---------------------------------------------------------------------------------

	
-- This file should be treated as a work in progress, check back to The Black Sacrament Guide or Github for updates


	
	
-------------------------------------------------------------------------------------------------------------------
-- 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.
 
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
 
-- Setup vars that are user-dependent.  Setup which sets you want to contain which sets of gear. 
-- By default my sets are: Normal is bursting gear, Occult_Acumen is Conserve MP/MP return body, FreeNuke_Effect self explanatory.
-- If you're new to gearswap, the F9~12 keys and CTRL keys in combination is how you activate this stuff.

function job_setup()
    state.OffenseMode:options('None', 'Locked')
    state.CastingMode:options('Normal', 'OccultAcumen', 'FreeNuke')
    state.IdleMode:options('Normal', 'PDT')
	state.VorsealMode = M('Normal', 'Vorseal')
	state.ManawallMode = M('Swaps', 'No_Swaps')
	state.Enfeebling = M('None', 'Effect')
	--Vorseal mode is handled simply when zoning into an escha zone--
    state.Moving  = M(false, "moving")
   

    element_table = L{'Earth','Wind','Ice','Fire','Water','Lightning'}

 
    lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
        'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
        'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
        'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
        'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
 
    degrade_array = {
        ['Fire'] = {'Fire','Fire II','Fire III','Fire IV','Fire V','Fire VI'},
        ['Firega'] = {'Firaga','Firaga II','Firaga III','Firaja'},
        ['Ice'] = {'Blizzard','Blizzard II','Blizzard III','Blizzard IV','Blizzard V','Blizzard VI'},
        ['Icega'] = {'Blizzaga','Blizzaga II','Blizzaga III','Blizzaja'},
        ['Wind'] = {'Aero','Aero II','Aero III','Aero IV','Aero V','Aero VI'},
        ['Windga'] = {'Aeroga','Aeroga II','Aeroga III','Aeroja'},
        ['Earth'] = {'Stone','Stone II','Stone III','Stone IV','Stone V','Stone VI'},
        ['Earthga'] = {'Stonega','Stonega II','Stonega III','Stoneja'},
        ['Lightning'] = {'Thunder','Thunder II','Thunder III','Thunder IV','Thunder V','Thunder VI'},
        ['Lightningga'] = {'Thundaga','Thundaga II','Thundaga III','Thundaja'},
        ['Water'] = {'Water', 'Water II','Water III', 'Water IV','Water V','Water VI'},
        ['Waterga'] = {'Waterga','Waterga II','Waterga III','Waterja'},
        ['Aspirs'] = {'Aspir','Aspir II','Aspir III'},
        ['Sleepgas'] = {'Sleepga','Sleepga II'}
    }
	send_command('bind f10 gs c cycle IdleMode')
	send_command('bind f11 gs c cycle CastingMode')
	send_command('bind ^f11 gs c cycle Enfeebling')
	send_command('bind f12 gs c cycle ManawallMode')
	send_command('bind !` input /ma Stun <t>') 		-- Alt-` Quick Stun Shortcut.
    organizer_items = {aeonic="Khatvanga"}
    select_default_macro_book()
end
 
-- Called when this job file is unloaded (eg: job change)
function user_unload()
    send_command('unbind ^`')
    send_command('unbind @`')
	send_command('unbind f10')
	send_command('unbind ^`f11')
	send_command('unbind @`f11')
	send_command('unbind ^f11')
    send_command('unbind !`')
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['Mana Wall'] = {back="Taranus's cape",feet="Wicce Sabots +1"}
 
    sets.precast.JA.Manafont = {body="Sorcerer's Coat +2"}
     
    -- Can put HP/MP set here for convert
	
    sets.precast.JA.Convert = {}
 
 
    -- Base precast Fast Cast set, this set will have to show up many times in the function section of the lua
	-- So dont forget to do that.
 
    sets.precast.FC = {
    ammo="Staunch Tathlum",
    head={ name="Agwu's Cap", augments={'Path: A',}},
    body={ name="Agwu's Robe", augments={'Path: A',}},
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Orunmila's Torque",
    waist="Witful Belt",
    left_ear="Malignance Earring",
    right_ear="Loquac. Earring",
    left_ring="Kishar Ring",
    right_ring="Prolix Ring",
    back="Swith Cape",
	}
		

	sets.precast['Impact'] = {
	body="Twilight Cloak",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Orunmila's Torque",
    waist="Witful Belt",
    left_ear="Malignance Earring",
    right_ear="Loquac. Earring",
    left_ring="Kishar Ring",
    right_ring="Prolix Ring",
    back="Swith Cape",
	}

		
	
	sets.precast.FC.HighMP = {
    ammo="Staunch Tathlum",
    head={ name="Agwu's Cap", augments={'Path: A',}},
    body={ name="Agwu's Robe", augments={'Path: A',}},
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Orunmila's Torque",
    waist="Witful Belt",
    left_ear="Malignance Earring",
    right_ear="Loquac. Earring",
    left_ring="Kishar Ring",
    right_ring="Prolix Ring",
    back="Swith Cape",
	}
		
		
    sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
    sets.precast.FC['Enfeebling Magic'] = sets.precast.FC
	
    sets.precast.FC['Elemental Magic'] = {
    ammo="Staunch Tathlum",
	head="Wicce Petasos +2",
    body={ name="Agwu's Robe", augments={'Path: A',}},
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Orunmila's Torque",
    waist="Witful Belt",
    left_ear="Malignance Earring",
    right_ear="Loquac. Earring",
    left_ring="Kishar Ring",
    right_ring="Prolix Ring",
    back="Swith Cape",
	}
	
    sets.precast.FC['Healing Magic'] = set_combine(sets.precast.FC, {body="Heka's Kalasiris",feet="Vanya Clogs",})
 
    -- Midcast set for Death, Might as well only have one set, unless you plan on free-nuking death for some unexplainable reason.

    sets.midcast['Death'] = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Pixie Hairpin +1",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Erra Pendant",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Archon Ring",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	}
 
    -- Sets for WS, Feel free to add one for Vidohunir if you have Laevateinn

    sets.precast.WS	= {
    ammo="Oshasha's Treatise",
    head="Nyame Helm",
    body="Nyame Mail",
    hands="Nyame Gauntlets",
    legs="Nyame Flanchard",
    feet="Nyame Sollerets",
    neck="Rep. Plat. Medal",
    waist="Fotia Belt",
    left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
    right_ear="Assuage Earring",
    left_ring="Cornelia's Ring",
    right_ring="Shukuyu Ring",
    back="Penetrating Cape",
	}
 
    ---- Midcast Sets ----
    sets.midcast.FastRecast = {}
 
    sets.midcast['Healing Magic'] = {
    ammo="Clarus Stone",
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Bokwus Gloves", augments={'"Mag.Atk.Bns."+13','INT+10','MND+10',}},
    legs="Nares Trews",
    feet={ name="Vanya Clogs", augments={'"Cure" potency +5%','"Cure" spellcasting time -15%','"Conserve MP"+6',}},
    neck="Phalaina Locket",
    waist="Austerity Belt",
    left_ear="Halasz Earring",
    right_ear="Roundel Earring",
    left_ring="Menelaus's Ring",
    right_ring="Lebeche Ring",
    back="Oretania's Cape",
	}

    sets.midcast['Enhancing Magic'] = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Befouled Crown",
    body="Anhur Robe",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet="Regal Pumps +1",
    neck="Incanter's Torque",
    waist="Embla Sash",
    left_ear="Andoaa Earring",
    right_ear="Halasz Earring",
    left_ring="Defending Ring",
    right_ring="Stikini Ring",
    back="Fi Follet Cape +1",
	}
	
	sets.midcast.Mana_Wall_No_Swap = {
		main="Terra's Staff",
		sub="Niobid Strap",
		ammo="Pemphredo Tathlum",
		head="Kaabnax Hat",
		body="Merlinic Jubbah",
		hands="Hagondes Cuffs +1",
		legs={ name="Hagondes Pants +1", augments={'Phys. dmg. taken -4%',}},
		feet="Wicce Sabots +1",
		neck="Loricate Torque +1",
		waist="Slipor Sash",
		left_ear="Merman's Earring",
		right_ear="Merman's Earring",
		left_ring="Dark Ring",
		right_ring="Defending Ring",
    back="Cheviot Cape",
	}
	
	-- I personally do not have gear to alter these abilities as of the time of disseminating this file, but 
	-- definitely add them here if you have them.
 
    sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {})
	
    sets.midcast.Haste = set_combine(sets.midcast['Enhancing Magic'], {})
	
    sets.midcast.Phalanx = set_combine(sets.midcast['Enhancing Magic'], {})
	
    sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {})
	
    sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
		waist="Siegel Sash",})
 
    sets.midcast['Enfeebling Magic'] = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands="Lurid Mitts",
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Incanter's Torque",
    waist="Eschan Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Kishar Ring",
    right_ring="Stikini Ring",
    back="Refraction Cape",
	}   

    sets.midcast['Enfeebling Magic'].Effect = set_combine(sets.midcast['Enfeebling Magic'],{})

	sets.midcast['Enfeebling Magic'] = set_combine(sets.midcast['Enfeebling Magic'],{})
	
	sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
 
    sets.midcast['Dark Magic'] = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Pixie Hairpin +1",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Merlinic Crackows", augments={'Mag. Acc.+15 "Mag.Atk.Bns."+15','Enmity-3','MND+9','Mag. Acc.+3','"Mag.Atk.Bns."+2',}},
    neck="Erra Pendant",
    waist="Fucho-no-Obi",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Archon Ring",
    right_ring="Stikini Ring",
    back="Argochampsa Mantle",
	}
 
    -- Elemental Magic sets
     
    sets.midcast['Elemental Magic'] = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	}

    sets.midcast['Elemental Magic'].FreeNuke = set_combine(sets.midcast['Elemental Magic'], {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	})
		
    sets.midcast['Elemental Magic'].OccultAcumen = set_combine(sets.midcast['Elemental Magic'].HighTierNuke, {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Spaekona's Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	})
		
    sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {})
	
    sets.midcast['Elemental Magic'].HighTierNuke.FreeNuke = set_combine(sets.midcast['Elemental Magic'].HighTierNuke, {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	})
		
    sets.midcast['Elemental Magic'].HighTierNuke.OccultAcumen = set_combine(sets.midcast['Elemental Magic'].HighTierNuke, {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	})
 
    sets.midcast['Impact'] = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    body="Twilight Cloak",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	}
	
	sets.midcast['Comet'] = set_combine(sets.midcast['Elemental Magic'], {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	})
 
	sets.midcast['Comet'].FreeNuke = set_combine(sets.midcast['Elemental Magic'], {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	})
	
	sets.midcast.Klimaform = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Agwu's Pigaches", augments={'Path: A',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Fenrir Ring +1",
    right_ring="Freke Ring",
    back="Argochampsa Mantle",
	}
	
	sets.midcast.Flash = {}
	
-- These next two sets are used later in the functions to determine what gear will be used in High MP and Low MP situations
-- SPECIFICALLY for Aspir spells.  In the LowMP set, put your best Aspir+ gear, in the other set put your best Max MP gear.
-- Find out how much your maximum MP is in each set, and adjust the MP values in the function area accordingly
-- (CTRL+F: Aspir Handling)

	sets.midcast.HighMP = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Pixie Hairpin +1",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Merlinic Crackows", augments={'Mag. Acc.+15 "Mag.Atk.Bns."+15','Enmity-3','MND+9','Mag. Acc.+3','"Mag.Atk.Bns."+2',}},
    neck="Erra Pendant",
    waist="Fucho-no-Obi",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Archon Ring",
    right_ring="Stikini Ring",
    back="Argochampsa Mantle",
	}
 
	sets.midcast.LowMP = {
    ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
    head="Pixie Hairpin +1",
    body="Wicce Coat +2",
    hands={ name="Agwu's Gages", augments={'Path: A',}},
    legs={ name="Agwu's Slops", augments={'Path: A',}},
    feet={ name="Merlinic Crackows", augments={'Mag. Acc.+15 "Mag.Atk.Bns."+15','Enmity-3','MND+9','Mag. Acc.+3','"Mag.Atk.Bns."+2',}},
    neck="Erra Pendant",
    waist="Fucho-no-Obi",
    left_ear="Malignance Earring",
    right_ear={ name="Wicce Earring", augments={'System: 1 ID: 1676 Val: 0','Mag. Acc.+8',}},
    left_ring="Archon Ring",
    right_ring="Stikini Ring",
    back="Argochampsa Mantle",
	}
		
	
		
    --Set to be equipped when Day/Weather match current spell element

	sets.Obi = {waist="Hachirin-no-Obi",}
	
	-- I actually have two references to equip this item, just in case your globals are out of date.
 
    -- Resting sets
	
    sets.resting = {}
 
    -- Idle sets: Make general idle set a max MP set, later hooks will handle the rest of your refresh sets, but
	-- remember to alter the refresh sets (Ctrl+F to find them)

    sets.idle = {
    ammo="Staunch Tathlum",
    head="Befouled Crown",
    body="Wicce Coat +2",
    hands="Serpentes Cuffs",
    legs="Assiduity Pants +1",
    feet="Serpentes Sabots",
    neck={ name="Loricate Torque +1", augments={'Path: A',}},
    waist="Fucho-no-Obi",
    left_ear="Ethereal Earring",
    right_ear="Domes. Earring",
    left_ring="Defending Ring",
    right_ring="Woltaris Ring +1",
    back="Cheviot Cape",
	}
 
    -- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
    sets.idle.PDT = {
    ammo="Staunch Tathlum",
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands="Nyame Gauntlets",
    legs="Nyame Flanchard",
    feet="Nyame Sollerets",
    neck={ name="Loricate Torque +1", augments={'Path: A',}},
    waist="Plat. Mog. Belt",
    left_ear="Ethereal Earring",
    right_ear="Domes. Earring",
    left_ring="Defending Ring",
    right_ring="Woltaris Ring +1",
    back="Cheviot Cape",
	}
     
    sets.Adoulin = {body="Councilor's Garb",}

    sets.MoveSpeed = {feet = "Herald's Gaiters",}
    
    sets.TreasureHunter = {
	ammo="Per. Lucky Egg",
	head="White Rarab Cap +1",
	waist="Chaac Belt",
	}
 
    -- Set for Conserve MP toggle, convert damage to MP body.
	
    sets.AFBody = {body="Spaekona's Coat +2"}
 
    --- PDT set is designed to be used for MP total set, MDT can be used for whatever you like but in MDT mode
	--- the player.mp arguments will likely stop working properly
	
    sets.defense.PDT = {
    ammo="Staunch Tathlum",
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands="Nyame Gauntlets",
    legs="Nyame Flanchard",
    feet="Nyame Sollerets",
    neck={ name="Loricate Torque +1", augments={'Path: A',}},
    waist="Plat. Mog. Belt",
    left_ear="Ethereal Earring",
    right_ear="Domes. Earring",
    left_ring="Defending Ring",
    right_ring="Woltaris Ring +1",
    back="Cheviot Cape",
	}
 
    sets.defense.MDT = {
    ammo="Staunch Tathlum",
    head="Wicce Petasos +2",
    head="Wicce Coat +2",
    hands="Nyame Gauntlets",
    legs="Nyame Flanchard",
    feet="Nyame Sollerets",
    neck={ name="Loricate Torque +1", augments={'Path: A',}},
    waist="Plat. Mog. Belt",
    left_ear="Ethereal Earring",
    right_ear="Domes. Earring",
    left_ring="Defending Ring",
    right_ring="Woltaris Ring +1",
    back="Cheviot Cape",
	}
 
    sets.Kiting = {feet="Herald's Gaiters"}
	
	sets.latent_refresh = {waist="Fucho-no-Obi"}
	
	sets.auto_refresh = {
    ammo="Staunch Tathlum",
    head="Befouled Crown",
    body="Wicce Coat +2",
    hands="Serpentes Cuffs",
    legs="Assiduity Pants +1",
    feet="Serpentes Sabots",
    neck={ name="Loricate Torque +1", augments={'Path: A',}},
    waist="Fucho-no-Obi",
    left_ear="Ethereal Earring",
    right_ear="Domes. Earring",
    left_ring="Defending Ring",
    right_ring="Woltaris Ring +1",
    back="Cheviot Cape",
	}
 
    -- Mana Wall idle set

    sets.buff['Mana Wall'] = {
    ammo="Staunch Tathlum",
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands="Nyame Gauntlets",
    legs="Nyame Flanchard",
    feet="Nyame Sollerets",
    neck={ name="Loricate Torque +1", augments={'Path: A',}},
    waist="Plat. Mog. Belt",
    left_ear="Ethereal Earring",
    right_ear="Domes. Earring",
    left_ring="Defending Ring",
    right_ring="Woltaris Ring +1",
    back="Cheviot Cape",
	}
	
	sets.midcast.Cure = {
    ammo="Clarus Stone",
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands={ name="Bokwus Gloves", augments={'"Mag.Atk.Bns."+13','INT+10','MND+10',}},
    legs="Nares Trews",
    feet={ name="Vanya Clogs", augments={'"Cure" potency +5%','"Cure" spellcasting time -15%','"Conserve MP"+6',}},
    neck="Phalaina Locket",
    waist="Austerity Belt",
    left_ear="Halasz Earring",
    right_ear="Roundel Earring",
    left_ring="Menelaus's Ring",
    right_ring="Lebeche Ring",
    back="Oretania's Cape",
	}
	
	sets.midcast.CureSelf = set_combine(sets.midcast.Cure, {waist="Gishdubar Sash"})
    
	-- Engaged sets
 
    -- Set is designed for engaging a monster before pop to ensure you are at maximum MP value when Geas Fete triggers an MP refill.
	-- This is mostly used in this lua in situations where a fight is about to be initiated and you arent above whatever the maximum
	-- value for your idle set is.  Another simple way around this is to simply make a macro to equip the gear before the fight starts.
	
	sets.engaged = {
    ammo="Hasty Pinion +1",
    head="Wicce Petasos +2",
    body="Wicce Coat +2",
    hands="Nyame Gauntlets",
    legs="Nyame Flanchard",
    feet="Nyame Sollerets",
    neck="Subtlety Spectacles",
    waist="Eschan Stone",
    left_ear="Steelflash Earring",
    right_ear="Assuage Earring",
    left_ring="Cacoethic Ring +1",
    right_ring="Chirich Ring",
    back="Penetrating Cape",
	}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
 
--- Define MP and buff specific Fast Cast and Midcast sets for conservation of MP for death sets, most will be
--- handled on thier own. What you need to change is the player.mp value to match slightly under what your max
--- MP is in your standard fast cast set. The set is designed to Dynamically switch fast cast sets to sets that
--- preserve your MP total if you are above the amount at which equiping your standard set would decrease your
--- maximum MP. Due to a rework in how these arguments are organised, all gearsets are being handled above the
--- function block for this file.
 
function job_precast(spell, action, spellMap, eventArgs)
    enable('feet','back')	
	if spell.english == "Impact" then
		sets.precast.FC = sets.precast['Impact']
    end
end

function job_post_precast(spell, action, spellMap, eventArgs)
	if player.mp > 2000 and state.VorsealMode.value == 'Vorseal' then
	equip(sets.precast.FC.HighMP)
	elseif player.mp < 2000 and state.VorsealMode.value == 'Vorseal' then
	equip(sets.precast.FC)
	elseif player.mp > 1650 and state.VorsealMode.value == 'Normal' then
	equip(sets.precast.FC.HighMP)
	elseif player.mp < 1650 and state.VorsealMode.value == 'Normal' then
	equip(sets.precast.FC)
    end
end


 
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_midcast(spell, action, spellMap, eventArgs)

	
	if spell.english == 'Jettatura' or spell.english == 'Geist Wall' 
	or spell.english == 'Soporific' or spell.english == 'Blank Gaze' 
	or spell.english == 'Sheep Song' or spell.english == 'Chaotic Eye' 
	or spell.english == 'Cursed Sphere' or spell.english == 'Flash' then
	equip(sets.midcast.Flash)
	end
	
    if spell.english == 'Death' then
        equip(sets.midcast['Death'])
	end
	
	if spell.english == "Impact" then
        equip({head=empty,body="Twilight Cloak"})
    end
	
end


-- Aspir Handling
 
-- This section is for you to define at what value your Aspir sets will change. This is to let your aspirs
-- get you into your death idle and higher MP values. This number should be around 100 MP lower than the
-- Fast cast argument above this to prevent looping. The intent is to ensure that if you use aspir while you
-- are already above a value defined in this section then it will put on your highest MP set, capping you off
-- rather than simply capping you to whatever your Aspir potency set's max MP value happens to be.

function job_post_midcast(spell, action, spellMap, eventArgs)
	
	if (spell.skill == 'Elemental Magic' or spell.skill == 'Healing Magic') and (spell.element == world.weather_element or spell.element == world.day_element) then
        equip(sets.Obi)
	end
	
	
	if spell.english == 'Aspir' or spell.english == 'Aspir II' or spell.english == 'Aspir III' and state.VorsealMode.value == 'Vorseal' and player.mp > 1765 then
		equip(sets.midcast.HighMP)
	elseif spell.english == 'Aspir' or spell.english == 'Aspir II' or spell.english == 'Aspir III' and state.VorsealMode.value == 'Vorseal' and player.mp < 1765 then
		equip(sets.midcast.LowMP)
	elseif spell.english == 'Aspir' or spell.english == 'Aspir II' or spell.english == 'Aspir III' and state.VorsealMode.value == 'Normal' and player.mp > 1580 then
		equip(sets.midcast.HighMP)
	elseif spell.english == 'Aspir' or spell.english == 'Aspir II' or spell.english == 'Aspir III' and state.VorsealMode.value == 'Normal' and player.mp < 1580 then
		equip(sets.midcast.LowMP)
	end
	
    if spell.element == world.day_element or spell.element == world.weather_element then
        if string.find(spell.english,'helix') then
            equip(sets.midcast.Helix)
        else 
            equip(sets.Obi)
        end
    end
	if spell.skill == 'Elemental Magic' and spell.english ~= 'Impact' and (player.mp-spell.mp_cost) < 436 then
		equip(sets.AFBody)
	end
		
	if spell.skill == 'Enfeebling Magic' and state.Enfeebling.Value == 'Effect' then
		equip(sets.midcast['Enfeebling Magic'].Effect)
	end
	
	if spell.skill == 'Elemental Magic' and (string.find(spell.english,'ga') or string.find(spell.english,'ja') or string.find(spell.english,'ra')) then
            equip(sets.AFBody)
	end
	
	if spellMap == 'Cure' and state.ManawallMode.Value == 'No_Swaps' then
		equip(sets.midcast.Mana_Wall_No_Swap)
	elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
        equip(sets.midcast.CureSelf)
	end
	
	if spell.skill == 'Enhancing Magic' and state.ManawallMode.Value == 'No_Swaps' then
		equip(sets.midcast.Mana_Wall_No_Swap)
	end
end
 
-- Duration arguments
-- Below you can include wait inputs for all spells that you are interested in having timers for
-- For the sake of brevity, I've only included crowd control spells into this list, but following
-- the same general format you should be able to intuitively include whatever you like.
 
function job_aftercast(spell, action, spellMap, eventArgs)
    -- Lock feet after using Mana Wall.
    if buffactive['Mana Wall'] then
        enable('feet','back')
        equip(sets.buff['Mana Wall'])
        disable('feet','back')
    end
    if not spell.interrupted then
        if spell.english == "Sleep II" or spell.english == "Sleepga II" then -- Sleep II Countdown --
            send_command('wait 60;input /echo Sleep Effect: [WEARING OFF IN 30 SEC.];wait 15;input /echo Sleep Effect: [WEARING OFF IN 15 SEC.];wait 10;input /echo Sleep Effect: [WEARING OFF IN 5 SEC.]')
        elseif spell.english == "Sleep" or spell.english == "Sleepga" then -- Sleep & Sleepga Countdown --
            send_command('wait 30;input /echo Sleep Effect: [WEARING OFF IN 30 SEC.];wait 15;input /echo Sleep Effect: [WEARING OFF IN 15 SEC.];wait 10;input /echo Sleep Effect: [WEARING OFF IN 5 SEC.]')
        elseif spell.english == "Break" or spell.english == "Breakga" then -- Break Countdown --
            send_command('wait 25;input /echo Break Effect: [WEARING OFF IN 5 SEC.]')
        elseif spell.english == "Paralyze" then -- Paralyze Countdown --
             send_command('wait 115;input /echo Paralyze Effect: [WEARING OFF IN 5 SEC.]')
        elseif spell.english == "Slow" then -- Slow Countdown --
            send_command('wait 115;input /echo Slow Effect: [WEARING OFF IN 5 SEC.]')        
        end
    end
	--if buffactive['poison'] then
	--send_command('input /item "antidote" <me>')
	--end
end
 
function nuke(spell, action, spellMap, eventArgs)
    if player.target.type == 'MONSTER' then
        if state.AOE.value then
            send_command('input /ma "'..degrade_array[element_table:append('ga')][#degrade_array[element_table:append('ga')]]..'" '..tostring(player.target.name))
        else
            send_command('input /ma "'..degrade_array[element_table][#degrade_array[element_table]]..'" '..tostring(player.target.name))
        end
    else 
        add_to_chat(5,'A Monster is not targetted.')
    end
end
 
function job_self_command(commandArgs, eventArgs)
    if commandArgs[1] == 'element' then
        if commandArgs[2] then
            if element_table:contains(commandArgs[2]) then
                element_table = commandArgs[2]
                add_to_chat(5, 'Current Nuke element ['..element_table..']')
            else
                add_to_chat(5,'Incorrect Element value')
                return
            end
        else
            add_to_chat(5,'No element specified')
        end
    elseif commandArgs[1] == 'nuke' then
        nuke()
    end
end
 
 
function refine_various_spells(spell, action, spellMap, eventArgs)
    local aspirs = S{'Aspir','Aspir II','Aspir III'}
    local sleeps = S{'Sleep','Sleep II'}
    local sleepgas = S{'Sleepga','Sleepga II'}
 
    local newSpell = spell.english
    local spell_recasts = windower.ffxi.get_spell_recasts()
    local cancelling = 'All '..spell.english..' spells are on cooldown. Cancelling spell casting.'
 
    local spell_index
 
end

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 buffactive['Mana Wall'] then
		moving = false
    elseif 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')
				if world.area:contains("Adoulin") then
                send_command('gs equip sets.Adoulin')
				else
                send_command('gs equip sets.MoveSpeed')
                end

        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)
 
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
 
 
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
	--if buff == "poison" and gain then
	--send_command('input /item "antidote" <me>')
	--end
	if buff == "Vorseal" then
	send_command('gs c cycle VorsealMode')
	elseif buff == "Vorseal" and not gain then
	send_command('gs c cycle VorsealMode')
	end
    -- Unlock feet when Mana Wall buff is lost.
	if buff == "Mana Wall" then
	send_command('wait 0.5;gs c update')
	end
    if buff == "Mana Wall" and not gain then
        enable('feet','back')
        handle_equipping_gear(player.status)
    end


end
 
-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)

end
 
 
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
--[[function job_update(cmdParams, eventArgs)
    job_display_current_state(eventArgs)
    eventArgs.handled = true
end]]
 
function display_current_job_state(eventArgs)

end
 
-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
    if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
        if lowTierNukes:contains(spell.english) then
            return 'LowTierNuke'
        else
            return 'HighTierNuke'
        end
    end
end
 
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
	if buffactive['Mana Wall'] then
        idleSet = sets.buff['Mana Wall']
	elseif player.mpp < 51 and state.IdleMode.value == 'PDT' then
			idleSet = sets.idle.PDT
	elseif player.mpp < 51 and state.IdleMode.value == 'Normal' then
		idleSet = set_combine(sets.auto_refresh, sets.latent_refresh)		
	elseif player.mp < 1765 and state.VorsealMode.value == 'Vorseal' and state.IdleMode.value == 'PDT' then
			idleSet = sets.idle.PDT
	elseif player.mp < 1765 and state.VorsealMode.value == 'Vorseal' and state.IdleMode.value == 'Normal' then
			idleSet = sets.auto_refresh
	elseif player.mp < 1580 and state.VorsealMode.value == 'Normal' and state.IdleMode.value == 'PDT' then
			idleSet = sets.idle.PDT
	elseif player.mp < 1580 and state.VorsealMode.value == 'Normal' and state.IdleMode.value == 'Normal' then
			idleSet = sets.auto_refresh
	end
    return idleSet
end
--- This is where I handle Death Mode Melee set modifications
function customize_melee_set(meleeSet)
    if buffactive['Mana Wall'] then
        meleeSet = set_combine(meleeSet, sets.buff['Mana Wall'])
    end
    return meleeSet
end


-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
 
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
    set_macro_page(1, 5)
	-- Do not remove below argument or the file WILL NOT WORK PROPERLY when reloaded in an escha area--
	if buffactive['Vorseal'] and state.VorsealMode.value == 'Normal' then
	send_command('gs c cycle VorsealMode')
	end
end

--{{Emulator Backend: log_filter=*:Info}}
 Bismarck.Radec
Online
Server: Bismarck
Game: FFXI
user: Radec
Posts: 146
By Bismarck.Radec 2023-11-03 14:43:01
Link | Quote | Reply
 
Quetzalcoatl.Balthor said: »
I am having an issue with a BLM gearswap. Any time I move, say kiting an enemy, and then come to a stop, I can't immediately cast because GS switches to my idle gear after I start casting. I copied someone's GS and filled in my own current gear (work in progress), but I'm not sure how to get it to stop changing to idle gear after I stop moving. I'm always in my idle refresh gear during midcast and it's driving me nuts. Can anyone look this over and tell me why it keeps doing this?

Thank you.
--code--
It has to do with the lines from 887-920. That bit is checking every 15 frames to see if you're moving or not, and it's equipping your current status set (idle, engaged, resting, etc) whenever the value changes.

Easy, but you lose functionality - you could remove line 909. It'd keep movespeed gear on after stopping, but wouldn't swap gear again unless you started moving. Aftercast sets wouldn't be affected, you'd have the normal DT/refresh feet instead of gaiters.

Harder, add a function to see if you're in the middle of a cast, and add that as a check before any of the 'gs c update' lines.
 Quetzalcoatl.Balthor
Offline
Server: Quetzalcoatl
Game: FFXI
Posts: 20
By Quetzalcoatl.Balthor 2023-11-03 14:56:41
Link | Quote | Reply
 
Thank you very much. I don't even own the Gaiters, so I wouldn't be missing anything. Could I just remove the entire section that has anything to do with moving? From 880-920?
 Bismarck.Radec
Online
Server: Bismarck
Game: FFXI
user: Radec
Posts: 146
By Bismarck.Radec 2023-11-03 15:03:42
Link | Quote | Reply
 
Sure, if you don't care about equip-on-movement/stopping 880-920 can all go. It doesn't do anything else.
[+]
necroskull Necro Bump Detected! [60 days between previous and next post]
 Quetzalcoatl.Balthor
Offline
Server: Quetzalcoatl
Game: FFXI
Posts: 20
By Quetzalcoatl.Balthor 2024-01-02 20:22:35
Link | Quote | Reply
 
I'm working on my Enmity sets for whn I'm not engaged and engaged for RUN/BLU. Could someone tell me the language needed to have my SID gear equipped while engaged, and the language for full enmity set when pulling while not engaged please. I would greatly appreciate it. I'm looking to add to this GS section for ease.
Code
function midcast(spell,act)
    if spell.english == 'Frightful Roar' or spell.english == 'Infrasonics' 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 == 'Cruel Joke' or spell.english == 'Cold Wave' or spell.english == 'Terror Touch' or spell.english == 'MP Drainkiss' 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' or spell.english == 'Retinal Glare' or spell.english == 'Jettatura' or spell.english == 'Cocoon' or spell.english == 'Sheep Song' or spell.english == 'Mysterious Light' or spell.english == 'Battle Dance' or spell.english == 'Claw Cyclone' or spell.english == 'Screwdriver' or spell.english == 'Grand Slam' or spell.english == 'Bomb Toss' or spell.english == 'Healing Breeze' or spell.english == 'Cursed Sphere' or spell.english == 'Blank Gaze' or spell.english == 'Foot Kick' or spell.english == 'Sprout Smack' then
        equip(sets.enmitySID)
    end

end
Offline
Posts: 464
By drakefs 2024-01-03 12:57:59
Link | Quote | Reply
 
Code
function midcast(spell,act)
    if spell.english == 'Frightful Roar' or spell.english == 'Infrasonics' 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 == 'Cruel Joke' or spell.english == 'Cold Wave' or spell.english == 'Terror Touch' or spell.english == 'MP Drainkiss' 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' or spell.english == 'Retinal Glare' or spell.english == 'Jettatura' or spell.english == 'Cocoon' or spell.english == 'Sheep Song' or spell.english == 'Mysterious Light' or spell.english == 'Battle Dance' or spell.english == 'Claw Cyclone' or spell.english == 'Screwdriver' or spell.english == 'Grand Slam' or spell.english == 'Bomb Toss' or spell.english == 'Healing Breeze' or spell.english == 'Cursed Sphere' or spell.english == 'Blank Gaze' or spell.english == 'Foot Kick' or spell.english == 'Sprout Smack' then
        if player.status == 'Idle' then
            equip(sets.enmity)
        else
            equip(sets.enmitySID)
        end
    end
end


Be careful, there are instances where you may be tanking and not engaged. I would suggest adding a toggle to make sure SIRD is equipped while casting as well.
Code
if player.status == 'Engaged' or alwaysSIRD then
    equip(sets.enmitySID)
else
    equip(sets.enmity)
end


Where alwaysSIRD is a toggle betwen
Code
true or false


I would also suggest using an array (string?) to store your enmity spells and check logic against that.
Code
function get_sets()
   enmitySpells = {'Frightful Roar','Jettatura',...,'Blank Gaze'}
   ...
end

function midcast(spell,act)
    if enmitySpells:contains(spell.english) then
        if player.status == 'Idle' then
            equip(sets.enmity)
        else
            equip(sets.enmitySID)
        end
    end
end


this should make it easier to remove and add spells to said check.
 Quetzalcoatl.Balthor
Offline
Server: Quetzalcoatl
Game: FFXI
Posts: 20
By Quetzalcoatl.Balthor 2024-01-03 21:38:23
Link | Quote | Reply
 
Thank you very much. I used the section from a BLU lua to add to the RUN lua for BLU spells. I'll be removing most of them because of level limit anyway. But the idle/engaged thing will help immensely.
 Ragnarok.Iamarealgirl
Offline
Server: Ragnarok
Game: FFXI
user: Latravant
Posts: 43
By Ragnarok.Iamarealgirl 2024-01-13 08:21:01
Link | Quote | Reply
 
is there anyway to add a itemizer command to a jobs lua?

i want itemizer to grab my ninja tools and put them in my mog satchel when i job change to ninja. or jugs when i change to bst. or ammo when i change to rng/cor etc etc.
 Ragnarok.Iamarealgirl
Offline
Server: Ragnarok
Game: FFXI
user: Latravant
Posts: 43
By Ragnarok.Iamarealgirl 2024-01-13 08:22:55
Link | Quote | Reply
 
Fenrir.Jinxs said: »
Ragnarok.Iamarealgirl said: »
i type in "//autogeo on" or "//sing on" to start ivaars addons and it cause both ivaars and sel's to start

but it seems like no one can help me so i guess i will just have to go back to my old GS files.
I've used singer a few times and I have never had sing or sing on interact with selins luas

Either way it's probably an alias or something you can change
Use the find in files function of notepad++ and check the gear swap folder tree for "sing" and "autogeo"
You will also want to check your init file if you imported stuff from someone elses
thanks i'll try this. i gave up on trying to figure out and didnt come back to see if i got any more responses. appreciate the help
Offline
Posts: 464
By drakefs 2024-01-13 14:41:19
Link | Quote | Reply
 
Ragnarok.Iamarealgirl said: »
is there anyway to add a itemizer command to a jobs lua?

send_command() allows you to use any console command or input chat commands from a gs lua:
Code
send_command('get <item> [bag] [count]')
send_command('@input /ws "Savage Blade" <t>')
 Quetzalcoatl.Balthor
Offline
Server: Quetzalcoatl
Game: FFXI
Posts: 20
By Quetzalcoatl.Balthor 2024-01-16 12:39:24
Link | Quote | Reply
 
Trying to make a function that checks for certain buffs while job abilities are active. Something like if Auspice and Last Resort(Desperate Blows 5/5) are up, to equip Relic Feet during LR activation and keep them on for the duration, and/or add DA/TA/QA to the gearset in spots I don't need the Subtle Blow while they are both or singularly active. Still learning, and my old macros just aren't cutting it for Mboze V15 tanking...

Once again, any help would be greatly appreciated. This is what I have so far. I've been messing around with gearsets and have them exported if I can get the language figured out for this scenario. Also, pay no attention to some of the outdated gear. A work in progress. :)
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
 
-------------------------------------------------------------------------------------------------------------------
-- 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('RagAcc','DA', 'DW', 'Subtle')
--    state.HybridMode:options ('Reraise')
    state.WeaponskillMode:options('Normal', 'Acc')
    state.CastingMode:options('Normal', 'Resistant')
    state.PhysicalDefenseMode:options('PDT', 'Reraise')
    state.MagicalDefenseMode:options('MDT')
     
    select_default_macro_book()
 
     
 
end
 
    -- 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 +3"}
       --     sets.precast.JA['Arcane Circle'] = {feet="Ignominy Sollerets +1"}
            sets.precast.JA['Nether Void'] = {legs="Heathen's Flanchard +2"}
       --     sets.precast.JA['Souleater'] = {head="Ignominy Burgeonet +1"}
            sets.precast.JA['Weapon Bash'] = {hands="Ignominy Gauntlets +1"}
            sets.precast.JA['Last Resort'] = {feet="Fallen's Sollerets +3"}
            sets.precast.JA['Dark Seal'] = {head="Fallen's Burgeonet +3"}
            sets.precast.JA['Blood Weapon'] = {head="Fallen's Cuirass +1"}
 
             
           -- Waltz set (chr and vit)
    sets.precast.Waltz = {}        
            
            -- Fast cast sets for spells
                      
            -- Precast Sets
    sets.precast.FC = {
        head="Sakpata's Helm",		--8
		neck="Orunmila's Torque",	--5
        ear1="Malignance Earring",	--4
        ear2="Loquacious Earring",	--2
        hands="Buremte Gloves",		--3
        ring1="Kishar Ring",		--4
        ring2="Prolix Ring", 		--2, 10 macc
        legs="Enif Cosciales",		--8
		feet="Carmine Greaves +1",	--8
		--44 Total
}


    sets.precast.FC['Dark Magic'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet +3"})

    sets.precast.FC['Drain'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet +3"})			--12
    sets.precast.FC['Drain II'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet +3"})			--12
    sets.precast.FC['Drain III'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet +3"})			--12
		--48 with above

    sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})

		
            -- Specific spells
    sets.midcast.Utsusemi = {}
      
    sets.midcast['Dark Magic'] = {
		ammo		=	"Plumose Sachet",
        head		=	"Heathen's Burgeonet +2",
        body		=	"Heathen's Cuirass +2",
        hands		=	"Fallen's Finger Gauntlets +3",
        left_ring	=	"Kishar Ring",         
        legs		=	"Heathen's Flanchard +2",
        feet		=	"Heathen's Sollerets +2",
        neck		=	"Erra Pendant",
        waist		=	"Eschan Stone",
        left_ear	=	"Malignance Earring",
        right_ear	=	"Friomisi Earring",
        right_ring	=	"Fenrir Ring +1",
        back		=	"Niht Mantle",
        }

             
    sets.midcast.Endark = {   
		ammo		=	"Plumose Sachet",
        head		=	"Heathen's Burgeonet +2",
        body		=	"Heathen's Cuirass +2",
        hands		=	"Fallen's Finger Gauntlets +3",
        left_ring	=	"Kishar Ring",         
        legs		=	"Heathen's Flanchard +2",
        feet		=	"Heathen's Sollerets +2",
        neck		=	"Erra Pendant",
        waist		=	"Eschan Stone",
        left_ear	=	"Malignance Earring",
        right_ear	=	"Friomisi Earring",
        right_ring	=	"Fenrir Ring +1",
        back		=	"Niht Mantle",
}
             
    sets.midcast['Endark II'] = sets.midcast.Endark
            
    sets.midcast['Dread Spikes'] = set_combine(sets.precast.FC, {body="Heathen's Cuirass +2"})
             
    sets.midcast['Elemental Magic'] = {
    ammo="Plumose Sachet",
    head="Nyame Helm",
    body="Nyame Mail",
    hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
    legs="Nyame Flanchard",
    feet="Heath. Sollerets +2",
    neck="Eddy Necklace",
    waist="Eschan Stone",
    left_ear="Friomisi Earring",
    right_ear="Crematio Earring",
    left_ring="Arvina Ringlet +1",
    right_ring="Fenrir Ring +1",
    back="Argocham. Mantle",
	}
             
    sets.midcast['Enfeebling Magic'] = {
    ammo="Plumose Sachet",
    head="Befouled Crown",
    body="Heath. Cuirass +2",
    hands="Heath. Gauntlets +2",
    legs="Heath. Flanchard +2",
    feet="Heath. Sollerets +2",
    neck="Eddy Necklace",
    waist="Eschan Stone",
    left_ear="Lifestorm Earring",
    right_ear="Psystorm Earring",
    left_ring="Arvina Ringlet +1",
    right_ring="Fenrir Ring +1",
    back="Argocham. Mantle",
	}
            
    sets.midcast.Stun = {  
    ammo="Plumose Sachet",
    head="Befouled Crown",
    body="Heath. Cuirass +2",
    hands="Heath. Gauntlets +2",
    legs="Heath. Flanchard +2",
    feet="Heath. Sollerets +2",
    neck="Eddy Necklace",
    waist="Eschan Stone",
    left_ear="Lifestorm Earring",
    right_ear="Psystorm Earring",
    left_ring="Arvina Ringlet +1",
    right_ring="Fenrir Ring +1",
        back		=	"Niht Mantle",
}
             
    sets.midcast.Absorb = {    
		ammo		=	"Plumose Sachet",
        head		=	"Heathen's Burgeonet +2",
        body		=	"Heathen's Cuirass +2",
        hands		=	"Fallen's Finger Gauntlets +3",
        left_ring	=	"Kishar Ring",         
        legs		=	"Heathen's Flanchard +2",
        feet		=	"Heathen's Sollerets +2",
        neck		=	"Erra Pendant",
        waist		=	"Eschan Stone",
        left_ear	=	"Malignance Earring",
        right_ear	=	"Friomisi Earring",
        right_ring	=	"Fenrir Ring +1",
        back		=	"Niht Mantle",
}
                    
    sets.midcast.Drain = {
		ammo		=	"Plumose Sachet",
        head		=	"Heathen's Burgeonet +2",
        body		=	"Heathen's Cuirass +2",
        hands		=	"Fallen's Finger Gauntlets +3",
        left_ring	=	"Kishar Ring",         
        legs		=	"Heathen's Flanchard +2",
        feet		=	"Heathen's Sollerets +2",
        neck		=	"Erra Pendant",
        waist		=	"Eschan Stone",
        left_ear	=	"Malignance Earring",
        right_ear	=	"Friomisi Earring",
        right_ring	=	"Fenrir Ring +1",
        back		=	"Niht Mantle",
	}
                    
    sets.midcast['Aspir'] = sets.midcast.Drain
                 
    sets.midcast['Aspir II'] = sets.midcast.Drain
             
 
    sets.midcast['Drain II'] = sets.midcast.Drain
             
    sets.midcast['Drain III'] = sets.midcast.Drain
 
                                            
            -- Weaponskill sets
            -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = {
    ammo="Oshasha's Treatise",
    head="Nyame Helm",
    body="Nyame Mail",
    hands="Nyame Gauntlets",
    legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
    feet="Heath. Sollerets +2",
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear="Schere Earring",
    right_ear="Moonshade Earring",
    left_ring="Cornelia's Ring",
    right_ring="Epaminondas's Ring",
    back={ name="Niht Mantle", augments={'Attack+12','Dark magic skill +4','"Drain" and "Aspir" potency +23','Weapon skill damage +3%',}},
}

 
 
--[[            -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
    sets.precast.WS['Catastrophe'] = {}
                     
    sets.precast.WS['Catastrophe'].Acc = {}
                     
    sets.precast.WS['Sanguine Blade'] = {}
   ]]   
    sets.precast.WS['Torcleaver'] = {
    ammo="Oshasha's Treatise",
    head="Nyame Helm",
    body="Nyame Mail",
    hands="Nyame Gauntlets",
    legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
    feet="Heath. Sollerets +2",
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear="Brutal Earring",
    right_ear="Moonshade Earring",
    left_ring="Cornelia's Ring",
    right_ring="Epaminondas's Ring",
    back={ name="Niht Mantle", augments={'Attack+12','Dark magic skill +4','"Drain" and "Aspir" potency +23','Weapon skill damage +3%',}},
	}
                     
    sets.precast.WS['Torcleaver'].Acc = {}
 
    sets.precast.WS['Scourge'] = {
    ammo="Oshasha's Treatise",
    head="Nyame Helm",
    body="Nyame Mail",
    hands="Nyame Gauntlets",
    legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
    feet="Heath. Sollerets +2",
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear="Brutal Earring",
    right_ear="Moonshade Earring",
    left_ring="Cornelia's Ring",
    right_ring="Epaminondas's Ring",
    back={ name="Niht Mantle", augments={'Attack+12','Dark magic skill +4','"Drain" and "Aspir" potency +23','Weapon skill damage +3%',}},
	}
 
    sets.precast.WS['Scourge'].Acc = {}
 --[[
    sets.precast.WS['Savage Blade'] = {}
             
    sets.precast.WS['Requiescat'] = {}
             
    sets.precast.WS['Cross Reaper'] = {}
                     
    sets.precast.WS['Cross Reaper'].Acc = {}
                     
    sets.precast.WS['Quietus'] = {}
                     
    sets.precast.WS['Quietus'].Acc = {}
                     
    sets.precast.WS['Entropy'] = {}
 
                     
    sets.precast.WS['Entropy'].Acc = {}
 
    sets.precast.WS['Insurgency'] = {}
 
                     
    sets.precast.WS['Insurgency'].Acc = {}
                     
    sets.precast.WS['Resolution'] = {}
                     
    sets.precast.WS['Resolution'].Acc = {}
      ]]                          
            -- Sets to return to when not performing an action.
            
            -- Resting sets
    sets.resting = {}
            
      
            -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
    sets.idle = {    
		ammo		=	"Crepuscular Pebble",
        head		=	"Jumalik Helm",
        body		=	"Heathen's Cuirass +2",
        hands		=	"Heathen's Gauntlets +2",
        left_ring	=	"Defending Ring",         
        legs		=	"Heathen's Flanchard +2",
        feet		=	"Heathen's Sollerets +2",
        neck		=	"Loricate Torque +1",
        waist		=	"Flume Belt",
        left_ear	=	"Ethereal Earring",
        right_ear	=	"Genmei Earring",
        right_ring	=	"Chirich Ring",
        back		=	"Atheling Mantle",
        }
 
            -- Defense sets
    sets.defense.PDT = {}
      
    sets.defense.Reraise = {
		head		=	"Twilight Helm",
		body		=	"Twilight Mail",
		}
      
    sets.defense.MDT = {}
      
      
      
            -- Engaged sets
             
    sets.engaged = {
    ammo="Ginsen",
    head="Flam. Zucchetto +2",
    body="Sakpata's Plate",
    hands="Heathen's Gauntlets +2",
    legs="Sakpata's Cuisses",
    feet="Sakpata's Leggings",
    neck="Ganesha's Mala",
    waist="Sailfi Belt +1",
    left_ear="Brutal Earring",
    right_ear={ name="Heathen's Earring", augments={'System: 1 ID: 1676 Val: 0','Accuracy+7','Mag. Acc.+7',}},
    left_ring="Apate Ring",
    right_ring="Niqmaddu Ring",
    back="Atheling Mantle",
        
}
            
    sets.engaged.RagAcc = {
    ammo="Seething Bomblet +1",
    head="Heathen's Burgeonet +2",
    body="Heathen's Cuirass +2",
    hands="Heathen's Gauntlets +2",
    legs="Heathen's Flanchard +2",
    feet="Heathen's Sollerets +2",
    neck="Vim Torque +1",
    waist="Ioskeha Belt",
    left_ear="Dignitary's Earring",
    right_ear={ name="Heathen's Earring", augments={'System: 1 ID: 1676 Val: 0','Accuracy+7','Mag. Acc.+7',}},
    left_ring="Cacoethic Ring +1",
    right_ring="Niqmaddu Ring",
    back="Agema Cape",

}

    sets.engaged.DA = {
    ammo="Coiste Bodhar",
    head="Sakpata's Helm",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Sakpata's Cuisses",
    feet="Sakpata's Leggings",
    neck="Vim Torque +1",
    waist="Ioskeha Belt",
    left_ear="Brutal Earring",
    right_ear="Schere Earring",
    left_ring="Petrov Ring",
    right_ring="Niqmaddu Ring",
    back="Atheling Mantle",

}

    sets.engaged.Subtle = {',}},
    sub="Furtive Grip",
    ammo="Crepuscular Pebble",
    head={ name="Sakpata's Helm", augments={'Path: A',}},
    body="Heath. Cuirass +2",
    hands={ name="Sakpata's Gauntlets", augments={'Path: A',}},
    legs={ name="Sakpata's Cuisses", augments={'Path: A',}},
    feet={ name="Fall. Sollerets +3", augments={'Enhances "Desperate Blows" effect',}},
    neck={ name="Bathy Choker +1", augments={'Path: A',}},
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    left_ear="Digni. Earring",
    right_ear="Assuage Earring",
    left_ring="Apate Ring",
    right_ring="Niqmaddu Ring",
    back="Mollusca Mantle",
        
}
   --[[          
    sets.engaged.RagHighAcc = {}
     
    sets.engaged.NoStpTrait = {}    
     
    sets.engaged.Apoc = {}
     
    sets.engaged.ApocAcc = {}
             
    sets.engaged.ApocHighAcc = {}       
             ]]
    sets.engaged.DW = {
    ammo="Ginsen",
    head="Flam. Zucchetto +2",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
    feet="Sakpata's Leggings",
    neck="Ganesha's Mala",
    waist="Sailfi Belt +1",
    left_ear="Brutal Earring",
    right_ear="Suppanomimi",
    left_ring="Cacoethic Ring +1",
    right_ring="Niqmaddu Ring",
    back="Atheling Mantle",
	}
     
     
    end
     
function precast(spell,abil)
    --equips favorite weapon if disarmed
    if player.equipment.main == "empty" or player.equipment.sub == "empty" then
        equip({main="Apocalypse",
        sub="Dilettante's Grip +1"})
    end
end
 
-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
    if spell.skill == 'Elemental Magic' then
        if spell.element == world.day_element or spell.element == world.weather_element then
            equip(sets.midcast['Elemental Magic'], {waist="Hachirin-No-Obi"})
        end
    end
end
------------------------------------------------------------------------------
--[[function job_post_midcast(spell, action, spellMap, eventArgs)
    if (skillchain_elements[spell.skillchain_a]:contains(world.day_element) or skillchain_elements[spell.skillchain_b]:contains(world.day_element) or skillchain_elements[spell.skillchain_c]:contains(world.day_element))
        then equip({head="Gavialis Helm"})
    end
end 
 ]]
 
function job_post_midcast(spell, action, spellMap, eventArgs)
    if S{"Drain","Drain II","Drain III"}:contains(spell.english) and (spell.element==world.day_element or spell.element==world.weather_element) then
        equip({waist="Hachirin-no-obi"})
    end
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
--[[function job_buff_change(buff, gain)
    if state.Buff[buff] ~= nil then
        state.Buff[buff] = gain
    end
    if buff:lower()=='sleep' then
        if gain and player.hp > 120 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep
            equip({neck="Berserker's Torque"})
        elseif not gain then -- Take Berserker's off
            handle_equipping_gear(player.status)
        end
    end
end
 ]]
--[[function customize_melee_set(meleeSet)
    if state.Buff.Sleep and player.hp > 120 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep
        meleeSet = set_combine(meleeSet,{neck="Berserker's Torque"})
    end
    return meleeSet
end
 ]]
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
    set_macro_page(2, 10)
end
 Ragnarok.Iamarealgirl
Offline
Server: Ragnarok
Game: FFXI
user: Latravant
Posts: 43
By Ragnarok.Iamarealgirl 2024-01-16 14:50:46
Link | Quote | Reply
 
drakefs said: »
Ragnarok.Iamarealgirl said: »
is there anyway to add a itemizer command to a jobs lua?

send_command() allows you to use any console command or input chat commands from a gs lua:
Code
send_command('get <item> [bag] [count]')
send_command('@input /ws "Savage Blade" <t>')

ok, is there a way to add that to a function so it does the send command when i change to the job needing those items?

EDIT
just realized i was misunderstanding the send commands, my mind was stuck on send command was only used for keybinds lol. tyvm for the help
 Valefor.Dathus
Offline
Server: Valefor
Game: FFXI
user: Dathus
Posts: 18
By Valefor.Dathus 2024-02-07 23:08:20
Link | Quote | Reply
 
How do you get Gearswap to use autobuffs from your subjob buffs? I.E: Berserk while on Corsair main.

Edit: I guess the better question is, how do I define which JAs to use in AutoBuff mode?
 Asura.Teleste
Offline
Server: Asura
Game: FFXI
user: mrphain
Posts: 1
By Asura.Teleste 2024-02-29 07:25:22
Link | Quote | Reply
 
This is probably a very simple question but after digging around the resources I had available, I couldn't find any reference to this at all.

What is the purpose of using the @ symbol in reference to the example below?

send_command('@input /p Doomed, please Cursna.')

send_command('input /p Doom removed.')

Does the @ symbol serve any purpose here when being put before "input"?

I see many different LUA's handling this differently and I'm just curious why I see it done both ways so often.

Thank you in advance for any info on this!
Offline
Posts: 464
By drakefs 2024-03-01 08:14:22
Link | Quote | Reply
 
Valefor.Dathus said: »
How do you get Gearswap to use autobuffs from your subjob buffs? I.E: Berserk while on Corsair main.

Edit: I guess the better question is, how do I define which JAs to use in AutoBuff mode?

I would ask the person who made the Lua if possible, since "AutoBuff mode" is not a normal gearswap function.
 Asura.Kurdtray
Offline
Server: Asura
Game: FFXI
user: Kurdtray
Posts: 22
By Asura.Kurdtray 2024-03-24 22:53:12
Link | Quote | Reply
 
Ok how would I go about coding my lua so that while on drk if I use scarlet delirium it will equip a certain set until I take the first hit?
Offline
Posts: 464
By drakefs 2024-03-25 13:20:50
Link | Quote | Reply
 
I am not sure if GS tracks and exposes when you are hit. I would try asking in the windower discord in the gearswap support channel.

A not perfect way would be to note your HP when you use Scarlet Delirium and when your HP goes below said value to "do something". The issue is that this will require you to constantly check your HP in your LUA while Scarlet Delirium is active.

I do something similar in my RDM lua to check whether or not I need to equip my burst set or free nuke set.
First Page 2 3 ... 180 181 182 ... 183 184 185