Gearswap Support Thread

Language: JP EN DE FR
New Items
2023-11-19
users online
Forum » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 114 115 116 ... 181 182 183
Offline
Posts: 428
By Selindrile 2016-12-15 14:44:09
Link | Quote | Reply
 
@Psycooo
@Kvazz

You both may or may not be interested in my updated versions of Mote's files, I remember modifying the way Utsusemi cancels work.

https://www.dropbox.com/sh/8l6m0lfpgw59ycc/AABZn4T7gVphpX77wetsAx45a?dl=0

Psycooo if you specifically just want to get yours working though without changing over, it should be in: Mote-Utility.lua at line 43 if you haven't modified it and you want to see what's up.
 Bahamut.Guapa
Offline
Server: Bahamut
Game: FFXI
user: mrlooolz
Posts: 15
By Bahamut.Guapa 2016-12-16 04:16:38
Link | Quote | Reply
 
Hey guy. In most of my Lua between SCH BLM GEO, I have a bunch of binds. I cant figure out but in all of them I also have :

function user_unload()
send_command('unbind ^f1')
send_command('unbind ^f9')
send_command('unbind ^f10')
send_command('unbind ^f11')
end

how ever i am now on thief and all my SCH binds are active. As far as I can tell the unload function isnt working.
Offline
Posts: 428
By Selindrile 2016-12-16 09:25:26
Link | Quote | Reply
 
I actually noticed that I had broken that and fixed it last night, but I haven't uploaded it to dropbox yet, if you wait about 30 minutes from this post and redownload, it should work.

I do make changes every so often, so if anything stops working after an update, feel free to PM me on here with the problem or with a messenger and if I missed something I'm happy to fix it, and if you need help figuring out something that changed happy to help.

Update: Everything should be updated on my dropbox.

Now seperated into:

user_unload() - Put in your character-globals to unbind whatever you want whenever you unload any job/gearswap on that character.

job_unload() - Put in your specific job_gear files to unbind buttons you specifically bound to this job/character.
 Bahamut.Guapa
Offline
Server: Bahamut
Game: FFXI
user: mrlooolz
Posts: 15
By Bahamut.Guapa 2016-12-16 17:53:44
Link | Quote | Reply
 
Now seperated into:

user_unload() - Put in your character-globals to unbind whatever you want whenever you unload any job/gearswap on that character.

job_unload() - Put in your specific job_gear files to unbind buttons you specifically bound to this job/character.[/quote]

I only have on character. So i should just make all the swaps with Job_unload? I am not sure i understood you ><
Offline
Posts: 428
By Selindrile 2016-12-16 18:09:43
Link | Quote | Reply
 
You know how there are global binds in your character-globals.lua file? Those are automatically unloaded now, somewhere else, but if you add anything for all your jobs, like for example you add:

bind ^w input /ma "Warp" <me>

That would work on all your jobs on that character.

Put user_unload() into your character-globals.lua

And you would put

unbind ^w

there, and if you unloaded gearswap, that would unbind ^w.

But for example your character_warrior_gear.lua you add

bind @p input /ja "Provoke" <t>

You only want that on warrior in the warrior lua, if you add

job_unload()

unbind @p

That only needs to be unbound whenever you are unloading the warrior job file.
 Bahamut.Guapa
Offline
Server: Bahamut
Game: FFXI
user: mrlooolz
Posts: 15
By Bahamut.Guapa 2016-12-17 00:32:46
Link | Quote | Reply
 
Selindrile said: »
You know how there are global binds in your character-globals.lua file? Those are automatically unloaded now, somewhere else, but if you add anything for all your jobs, like for example you add:

bind ^w input /ma "Warp" <me>

That would work on all your jobs on that character.

Put user_unload() into your character-globals.lua

And you would put

unbind ^w

there, and if you unloaded gearswap, that would unbind ^w.

But for example your character_warrior_gear.lua you add

bind @p input /ja "Provoke" <t>

You only want that on warrior in the warrior lua, if you add

job_unload()

unbind @p

That only needs to be unbound whenever you are unloading the warrior job file.

Perfect. I will mess around with this ^^ thanks alot
[+]
 Odin.Psycooo
Offline
Server: Odin
Game: FFXI
user: Psycooo
Posts: 42
By Odin.Psycooo 2016-12-17 01:27:33
Link | Quote | Reply
 
Selindrile said: »
@Psycooo
@Kvazz

You both may or may not be interested in my updated versions of Mote's files, I remember modifying the way Utsusemi cancels work.

https://www.dropbox.com/sh/8l6m0lfpgw59ycc/AABZn4T7gVphpX77wetsAx45a?dl=0

Psycooo if you specifically just want to get yours working though without changing over, it should be in: Mote-Utility.lua at line 43 if you haven't modified it and you want to see what's up.

maybe I did something screwed up, but when I tried messing with some of this it didn't work even with only 1 shadow
 Odin.Lygre
Offline
Server: Odin
Game: FFXI
user: Dylaudid
Posts: 89
By Odin.Lygre 2016-12-17 05:42:25
Link | Quote | Reply
 
Code
res = require('resources')

function job_precast(spell, action, spellMap, eventArgs)
	cancel_utsusemi(spell, eventArgs)
end

function cancel_utsusemi(spell, action, spellMap, eventArgs)
    if spell.english:contains('Utsusemi') then
        local spell_recasts = windower.ffxi.get_spell_recasts()
        if spell_recasts[spell.recast_id] > 0 then
            add_to_chat(123,'Abort: Spell waiting on recast.')
            eventArgs.cancel = true
            return
        end
    end

    local buffs = windower.ffxi.get_player().buffs
    for _,bid in pairs(buffs) do
        local buffname = res.buffs[bid].en
        if buffname:contains('Copy Image') then
            windower.ffxi.cancel_buff(bid)
            break
        end
    end
end

this works for me. can add a delay if you want
[+]
Offline
Posts: 256
By Brynach 2016-12-25 03:24:02
Link | Quote | Reply
 
I am having trouble figuring out how to have certain gear equip when doom or curse is present.

http://pastebin.com/3MJf3vif

Ive added to the functions for job_setup, job_buff_change, and even customize_idle_set, but the lua doesn't swap in gear sets 'sets.Doom' or 'sets.Curse' whether I am engaged or idle.

Thanks in advance for any assistance
Offline
Posts: 428
By Selindrile 2016-12-25 19:06:02
Link | Quote | Reply
 
For Mote's versions, if you want it to be when you're engaged or have defense modes on as well you also have to add similar changes to customize_melee_set and customize_defense_set, if you need examples you can check the way I did this in my versions (With notepad++ search the files in my libs for the function names.)
 Bahamut.Ballzack
Offline
Server: Bahamut
Game: FFXI
user: Lorax
Posts: 54
By Bahamut.Ballzack 2016-12-27 02:37:46
Link | Quote | Reply
 
Anyone have a triple shot rule for a mote version cor file?
Offline
Posts: 428
By Selindrile 2016-12-28 06:05:21
Link | Quote | Reply
 
@Ballzack I added that to mine recently.
Code
function job_post_midcast(spell, action, spellMap, eventArgs)
	if spell.action_type == 'Ranged Attack' and buffactive['Triple Shot'] then
        equip(sets.buff['Triple Shot'])
	end
end
 Bahamut.Ballzack
Offline
Server: Bahamut
Game: FFXI
user: Lorax
Posts: 54
By Bahamut.Ballzack 2016-12-28 23:22:59
Link | Quote | Reply
 
@Selindrile Your awesome thanks!
[+]
 Odin.Psycooo
Offline
Server: Odin
Game: FFXI
user: Psycooo
Posts: 42
By Odin.Psycooo 2016-12-29 14:36:17
Link | Quote | Reply
 
Odin.Lygre said: »
Code
res = require('resources')

function job_precast(spell, action, spellMap, eventArgs)
	cancel_utsusemi(spell, eventArgs)
end

function cancel_utsusemi(spell, action, spellMap, eventArgs)
    if spell.english:contains('Utsusemi') then
        local spell_recasts = windower.ffxi.get_spell_recasts()
        if spell_recasts[spell.recast_id] > 0 then
            add_to_chat(123,'Abort: Spell waiting on recast.')
            eventArgs.cancel = true
            return
        end
    end

    local buffs = windower.ffxi.get_player().buffs
    for _,bid in pairs(buffs) do
        local buffname = res.buffs[bid].en
        if buffname:contains('Copy Image') then
            windower.ffxi.cancel_buff(bid)
            break
        end
    end
end

this works for me. can add a delay if you want

This worked for me as well thank you.

Side note, how would I add a delay to this without messing it up?
 Leviathan.Bigrougabagel
Offline
Server: Leviathan
Game: FFXI
Posts: 10
By Leviathan.Bigrougabagel 2016-12-29 16:37:26
Link | Quote | Reply
 
Hey all. Very new to GS, so I may have screwed up something really basic here, but I am not getting any ring swaps at all in my geo lua.

sets.midcast.Cure = {
main="Tefnut Wand",
sub="Sors Shield",
range={ name="Dunna", augments={'MP+20','Mag. Acc.+10','"Fast Cast"+3',}},
head="Azimuth Hood",
body="Heka's Kalasiris",
hands="Telchine Gloves",
legs="Assiduity Pants",
feet="Geomancy Sandals",
neck="Colossus's Torque",
waist="Witful Belt",
left_ear="Gifted Earring",
right_ear="Loquac. Earring",
left_ring="Sirona's Ring",
right_ring="Aqua Ring",
back="Shadow Mantle",
}

For example, this is my cure set, and no matter where the rings are located (inventory, wardrobe), they do not come in. I have enfeeble and elemental sets that are similar but with different rings. I basically get no ring swaps at all in this lua. Is there some basic function that is required to be able to swap rings that I maybe broke?

Edit: I didnt explicitly state that all the other gear is changing. Only the rings do not change.
Offline
Posts: 428
By Selindrile 2016-12-29 19:26:20
Link | Quote | Reply
 
Are those rings working in other sets? Because this looks okay.
 Lakshmi.Ashtopcat
Offline
Server: Lakshmi
Game: FFXI
user: ashtopcat
Posts: 97
By Lakshmi.Ashtopcat 2016-12-29 19:52:57
Link | Quote | Reply
 
how are you checking? showswaps or visually? cos if it's visually then you might be too slow and it will already be back to idle (or they are your idle rings and not showing up if you are using showswaps)

//gs showswaps on (in case you didn't know)
[+]
 Leviathan.Bigrougabagel
Offline
Server: Leviathan
Game: FFXI
Posts: 10
By Leviathan.Bigrougabagel 2016-12-29 20:24:58
Link | Quote | Reply
 
It's not changing any rings. If I start with no rings equipped, I can hit every spell that should trigger a swap, and still have no rings on.
Offline
Posts: 428
By Selindrile 2016-12-29 20:29:52
Link | Quote | Reply
 
Sounds like rings are disabled for some reason, I dunno what gearswap you are using, but try //gs enable all, if it swaps then search your GS for what could be disabling them.
 Leviathan.Bigrougabagel
Offline
Server: Leviathan
Game: FFXI
Posts: 10
By Leviathan.Bigrougabagel 2016-12-29 21:10:39
Link | Quote | Reply
 
Selindrile said: »
Sounds like rings are disabled for some reason, I dunno what gearswap you are using, but try //gs enable all, if it swaps then search your GS for what could be disabling them.

This worked. I'll have to dig through and find where it's disabled. Thanks for the help.
[+]
Offline
Posts: 16
By Slurm818 2016-12-30 17:55:16
Link | Quote | Reply
 
Can I get some assistance? I am brand new to GS and have no clue what I am doing wrong here...

Error message is GearSwap/Data/Earwig_COR.lua:34: ']' expected near 's'

Here is my pastebin; http://pastebin.com/qz9xafnV


Thanks, I'm at a loss
 Asura.Thorva
Offline
Server: Asura
Game: FFXI
user: Thorva
By Asura.Thorva 2016-12-30 18:06:24
Link | Quote | Reply
 
Slurm818 said: »
Can I get some assistance? I am brand new to GS and have no clue what I am doing wrong here...

Error message is GearSwap/Data/Earwig_COR.lua:34: ']' expected near 's'

Here is my pastebin; http://pastebin.com/qz9xafnV


Thanks, I'm at a loss

Don't quote me, but I think your

['Tactician's Roll']
['Courser's Roll']
['Blitzer's Roll']

should actually have " instead of '
Offline
Posts: 428
By Selindrile 2016-12-30 21:33:36
Link | Quote | Reply
 
@Slurm818 @Thorva

Thorva is right, you can't use the same symbol (' or ") both inside and out without an escape character, you can do it either like:

["Tactician's Roll"]
["Courser's Roll"]
["Blitzer's Roll"]

Or like:

['Tactician\'s Roll']
['Courser\'s Roll']
['Blitzer\'s Roll']
Offline
Posts: 16
By Slurm818 2016-12-31 05:27:55
Link | Quote | Reply
 
Selindrile said: »
@Slurm818 @Thorva

Thorva is right, you can't use the same symbol (' or ") both inside and out without an escape character, you can do it either like:

["Tactician's Roll"]
["Courser's Roll"]
["Blitzer's Roll"]

Or like:

['Tactician\'s Roll']
['Courser\'s Roll']
['Blitzer\'s Roll']

Thank you both so much..I'll fix this as soon as I get home from New Years. Huge help, I really appreciate it!
[+]
 Asura.Taruranto
Offline
Server: Asura
Game: FFXI
user: Tarlant
Posts: 34
By Asura.Taruranto 2017-01-01 13:34:07
Link | Quote | Reply
 
Trying to make a separate set for helix, I got

Code
sets.precast.Helix = sets.precast.FC

Code
sets.midcast.Helix = {
    main="Akademos",
    sub="Niobid strap",
    ammo="ghastly tathlum +1",
    head="Merlinic hood",
    body="Merlinic Jubbah",
    hands="Amalric gages",
    legs="Merlinic shalwar",
    feet="Merlinic crackows",
    neck="Eddy necklace",
    waist="Refoccilation stone",
    left_ear="Friomisi earring",
    right_ear="Barkarole earring",
    left_ring="Fenrir ring +1",
    right_ring="Weatherspoon Ring",
    back="Lugh's cape",
    ammo="ghastly tathlum +1",

}


It still casts it the current selected Elemental Nuking set.

I think it's because "Helix" spells are not listed anywhere in my lua so I tried adding
Code
if spell.skill=="ElementalMagic" then
if string.find(spell.english,'helix') then
equip(sets['midcast_Helix'])
end
end


But still nothing. I guess the code is wrong or I'm placing it at the wrong place.
 Odin.Lygre
Offline
Server: Odin
Game: FFXI
user: Dylaudid
Posts: 89
By Odin.Lygre 2017-01-01 14:06:17
Link | Quote | Reply
 
Code
if spell.skill=="ElementalMagic" then
if string.find(spell.english,'helix') then
equip(sets.midcast.Helix)
end
end


but if you're using Mote's include and have Helix II spells added to the mappings file, this piece shouldn't be necessary
 Asura.Taruranto
Offline
Server: Asura
Game: FFXI
user: Tarlant
Posts: 34
By Asura.Taruranto 2017-01-01 17:33:01
Link | Quote | Reply
 
Odin.Lygre said: »
Code
if spell.skill=="ElementalMagic" then
if string.find(spell.english,'helix') then
equip(sets.midcast.Helix)
end
end


but if you're using Mote's include and have Helix II spells added to the mappings file, this piece shouldn't be necessary

Yeaaaah, all in order now. Thanks!

To be honest, I'd like to have 2 sets for helix, one of normal and one for MB, but I'm not sure how do to that exactly?

Something like it casts it with the normal set but if state.CastingMode:options('MB') then it casts it with the MB set?

I have 3 casting states for elemental magic, state.CastingMode:options('Normal', 'Resistant', 'MB').
 Odin.Lygre
Offline
Server: Odin
Game: FFXI
user: Dylaudid
Posts: 89
By Odin.Lygre 2017-01-02 03:14:32
Link | Quote | Reply
 
I use a boolean state variable to trigger a set of rules in post_midcast that process through any magic_burst sets applicable and overlay those on top of the normal set it would use
Code
state.MagicBurst = M(false, 'Magic Burst')

sets.magic_burst = {}

function job_post_midcast(spell, action, spellMap, eventArgs)
	if spell.action_type == 'Magic' then
		if spell.skill == 'Elemental Magic' then            
			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 state.MagicBurst.value and sets.magic_burst then
				local equipSet = sets.magic_burst
				if equipSet[spell.english] then
					equipSet = equipSet[spell.english]
				end
				if equipSet[spellMap] then
						equipSet = equipSet[spellMap]
				end
				if equipSet[state.CastingMode.value] then
					equipSet = equipSet[state.CastingMode.value]
				end
				equip(equipSet)
			end
		end
	end
end
 Asura.Taruranto
Offline
Server: Asura
Game: FFXI
user: Tarlant
Posts: 34
By Asura.Taruranto 2017-01-02 16:51:42
Link | Quote | Reply
 
Odin.Lygre said: »
I use a boolean state variable to trigger a set of rules in post_midcast that process through any magic_burst sets applicable and overlay those on top of the normal set it would use
Code
state.MagicBurst = M(false, 'Magic Burst')

sets.magic_burst = {}

function job_post_midcast(spell, action, spellMap, eventArgs)
	if spell.action_type == 'Magic' then
		if spell.skill == 'Elemental Magic' then            
			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 state.MagicBurst.value and sets.magic_burst then
				local equipSet = sets.magic_burst
				if equipSet[spell.english] then
					equipSet = equipSet[spell.english]
				end
				if equipSet[spellMap] then
						equipSet = equipSet[spellMap]
				end
				if equipSet[state.CastingMode.value] then
					equipSet = equipSet[state.CastingMode.value]
				end
				equip(equipSet)
			end
		end
	end
end

I remember reading about this, but I'm too used using this setup... I'll have to waste a day figuring it, one of these days.

Is there a way to have a button toggling MB mode on-off?


Trying to insert this in my BLM lua I just modified now:
Code
 if spell.element == world.day_element or spell.element == world.weather_element then
            equip(sets.midcast['Elemental Magic']['Resistant']['MB'], {waist="Hachirin-No-Obi"})
        end


if state.CastingMode.value == 'Normal' then
    if spell.element == world.day_element then
        equip(sets.midcast['Elemental Magic'], {right_ring="Zodiac ring"})
    end
    if spell.element == 'Earth' then
        equip(sets.midcast['Elemental Magic'], {neck="Quanpur Necklace"})
    end
end


I know it works because I got it here and SCH/GEO lua run this fine.

But the BLM lua just either states the value is nil or doesn't run it at all:
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


-- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
function job_setup()

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.CastingMode:options('Normal', 'Resistant', 'MB')
    state.IdleMode:options('Normal', 'PDT')
    
    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'}

    
    -- Additional local binds
    send_command('bind ^` input /ma Stun <t>')
    

    select_default_macro_book()
end

-- Called when this job file is unloaded (eg: job change)
function user_unload()
    send_command('unbind ^`')
    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'] = {feet="Goetia Sabots +2"}

    sets.precast.JA.Manafont = {body="Sorcerer's Coat +2"}
    
    -- equip to maximize HP (for Tarus) and minimize MP loss before using convert
    sets.precast.JA.Convert = {}


    -- Fast cast sets for spells

    sets.precast.FC = {
    main="Sucellus",
    sub="Chanter's Shield",
    head="Nahtirah Hat",
    ammo="Incantor stone",
    body="Merlinic Jubbah",
    legs="Lengo pants",
    feet="Amalric nails",
    waist="Witful Belt",
    left_ear="Loquacicous Earring",
    right_ear="Etiolation earring",
    left_ring="Prolix Ring",
    right_ring="weatherspoon ring",
    back="Swith cape",
}

 sets.precast.FC['Enhancing Magic'] = sets.precast.FC

    sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal"})

    sets.precast.FC.Cure = set_combine(sets.precast.FC, {
    main="Serenity",
    sub="Clerisy strap",
    back="Pahtli Cape",
})
  

    sets.precast.FC.Curaga = sets.precast.FC.Cure

sets.precast.Stoneskin = set_combine(sets.precast.FC, {
    head="Umuthi Hat",
})

    sets.precast.FC.Curaga = sets.precast.FC.Cure

    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = {
        head="Hagondes Hat",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
        body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="Icesoul Ring",
        back="Refraction Cape",waist="Cognition Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}

    -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
    sets.precast.WS['Vidohunir'] = {ammo="Dosis Tathlum",
        head="Hagondes Hat",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Hecate's Earring",
        body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Icesoul Ring",ring2="Acumen Ring",
        back="Toro Cape",waist="Thunder Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
    
    
    ---- Midcast Sets ----

    sets.midcast.FastRecast = sets.precast.FC

sets.midcast.Regen = set_combine(sets.midcast.fastcast, {
    main="bolelabunga",
    back="Tempered cape +1",
    body="Telchine Chas."})

sets.midcast.Cure = {
    main="Serenity",
    sub="Clerisy strap",
    head={ name="Vanya Hood", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
    body="Vanya Robe",
    hands="Telchine gloves",
    legs="Vanya slops",
    ammo="Kalboron stone",
    feet="Medium's sabots",
    neck="Incanter's torque",
    left_ear="Lempo earring",
    right_ear="Magnetic Earring",
    left_ring="Ephedra Ring",
    right_ring="Sirona's ring",
    back="Tempered cape +1",
}

    sets.midcast.Curaga = sets.midcast.Cure

sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {
    back="Gishdubar ash"})

    sets.midcast['Enhancing Magic'] ={
    main="Solstice",
    sub="Culminus",
    head="Befouled crown",
    hands="bagua mitaines",
    body="Telchine Chas.",
    legs="Lengo pants",
    feet="Medium's sabots",
    neck="Melic torque",
    waist="Cascade belt",
    back="Perimede Cape",
    left_ear="Andoaa Earring",
    right_ear="Magnetic Earring",
    }

    sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
    head="Befouled crown",
    neck="Nodens gorget",
    waist="siegel sash",
    right_ear="Earthcry Earring",
})  


    sets.midcast['Enfeebling Magic'] = {
    main="Marin staff +1",
    sub="Mephitis grip",
    head="Befouled crown",
    body="Shango robe",
    hands="Pedagogy bracers",
    legs="Psycloth lappas",
    feet="Medium's sabots",
    neck="imbodla necklace",
    waist="ovate rope",
    left_ear="Gwati Earring",
    right_ear="Barkaro. Earring",
    ammo="Kalboron stone",
    left_ring="levia. ring",
    right_ring="weather. ring",
    back="Lugh's cape",
}

        
    sets.midcast.ElementalEnfeeble = set_combine(sets.midcast['Enfeebling Magic'], {left_ring="Fenrir Ring +1",
      
})  

    sets.midcast['Dark Magic'] = {
    main="Rubicundity",
    sub="Culminus",
    ammo="ghastly tathlum +1",
    head="Merlinic hood",
    body="Psycloth vest",
    hands="Merlinic Dastanas",
    legs="Merlinic shalwar",
    feet="Medium's sabots",
    neck="Incanter's torque",
    waist="Ovate rope",
    left_ear="Abyssal Earring",
    right_ear="Barkarole earring",
    left_ring="Fenrir ring +1",
    right_ring="Evanescence ring",
    back="Perimede cape",
}

    sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
    main="Rubicundity",
    sub="Culminus",
    body="Psycloth vest",
    hands="Merlinic Dastanas",
    head="Merlinic Hood",
    feet="Merlinic crackows",
    waist="Fucho-no-obi",
    left_ear="Abyssal Earring",
    left_ring="Excelsis Ring",
})

    
    sets.midcast.Aspir = sets.midcast.Drain

    sets.midcast.Stun = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Sturm's Report",
        head="Nahtirah Hat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
        body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Sangoma Ring",
        back="Refraction Cape",waist="Witful Belt",legs="Orvail Pants +1",feet="Bokwus Boots"}

    sets.midcast.BardSong = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Sturm's Report",
        head="Nahtirah Hat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
        body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Sangoma Ring",
        back="Refraction Cape",legs="Bokwus Slops",feet="Bokwus Boots"}


    -- Elemental Magic sets
    
        -- Elemental Magic sets
    
    sets.midcast['Elemental Magic'] = {
    main="Lathi",
    sub="Niobid strap",
    ammo="ghastly tathlum +1",
    head="Merlinic hood",
    body="Merlinic Jubbah",
    hands="Amalric gages",
    legs="Merlinic shalwar",
    feet="Merlinic crackows",
    neck="Eddy necklace",
    waist="Refoccilation stone",
    left_ear="Friomisi earring",
    right_ear="Barkarole earring",
    left_ring="Fenrir ring +1",
    right_ring="Weatherspoon Ring",
    back="Taranus's Cape",
    ammo="ghastly tathlum +1",
}

    sets.midcast['Elemental Magic'].Resistant = set_combine(sets.midcast['Elemental Magic'], {
    left_ear="Gwati earring",
    sub="Niobid strap",
    body="Merlinic Jubbah",
    hands="Amalric gages",
    left_ring="Resonance ring",
    legs="Merlinic shalwar",
    neck="Incanter's torque",
    ammo="Kalboron stone",
 
  })

    sets.midcast['Elemental Magic'].HighTierNuke =   sets.midcast['Elemental Magic'] 
    sets.midcast['Elemental Magic'].HighTierNuke.Resistant = sets.midcast['Elemental Magic'].Resistant


    
    sets.midcast['Elemental Magic'].MB = set_combine(sets.midcast['Elemental Magic'], {
    body="Merlinic Jubbah",
    feet="Merlinic crackows",
    hands="Amalric gages",
    legs="Merlinic shalwar",
    neck="Mizukage-no-Kubikazari",
    left_ring="Locus Ring",
    right_ring="Mujin band",
})

 sets.midcast['Elemental Magic'].HighTierNuke.MB =  sets.midcast['Elemental Magic'].MB 

    
    -- Sets to return to when not performing an action.
    
    -- Resting sets
    sets.resting = {
    main="Bolelabunga",
    head="Befouled crown",
    sub="Genbu's Shield",
    ammo="Homiliary",
    body="Jhakri robe +1",
    hands="Shrieker's cuffs",
    legs="Lengo pants",
    feet="Amalric nails",
    neck="Twilight Torque",
    waist="Fucho-no-Obi",
    left_ear="Etiolation Earring",
    right_ear="Moonshade earring",
    left_ring="Sheltered Ring",
    right_ring="Defending ring",
    back="Kumbira Cape",
}
    

    -- Idle sets
    
    -- Normal refresh idle set
    sets.idle = {
    main="Bolelabunga",
    head="Befouled crown",
    sub="Genbu's Shield",
    ammo="Homiliary",
    body="Jhakri robe +1",
    hands="Shrieker's cuffs",
    legs="Lengo pants",
    feet="Amalric nails",
    neck="Twilight Torque",
    waist="Fucho-no-Obi",
    left_ear="Etiolation Earring",
    right_ear="Moonshade earring",
    left_ring="Sheltered Ring",
    right_ring="Defending ring",
    back="Kumbira Cape",
}

    -- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
    sets.idle.PDT = {
    main="Terra's staff",
    sub="Irenic strap",
        head="Hagondes Hat +1",
        neck="Twilight Torque",
        ear1="Etiolation Earring",
        ear2="Odnowa Earring +1",
        body="Hagondes Coat +1",
        hands="Amaric nails",
        ring1="Fortified Ring",
        ring2="defending ring",
        back="Kumbira cape",
        waist="slipor sash",
        legs="vanya slops",
        feet="Amalric nails"}


    -- Idle mode scopes:
    -- Idle mode when weak.
    sets.idle.Weak = {
    main="Bolelabunga",
    head="Befouled crown",
    sub="Genbu's Shield",
    ammo="Homiliary",
    body="Jhakri robe +1",
    hands="Shrieker's cuffs",
    legs="Lengo pants",
    feet="Amalric nails",
    neck="Twilight Torque",
    waist="Fucho-no-Obi",
    left_ear="Etiolation Earring",
    right_ear="Moonshade earring",
    left_ring="Sheltered Ring",
    right_ring="Defending ring",
    back="Kumbira Cape",
}
    
    -- Town gear.
    sets.idle.Town = {
    main="Bolelabunga",
    head="Befouled crown",
    sub="Genbu's Shield",
    ammo="Homiliary",
    body="Jhakri robe +1",
    hands="Shrieker's cuffs",
    legs="Lengo pants",
    feet="Amalric nails",
    neck="Twilight Torque",
    waist="Fucho-no-Obi",
    left_ear="Etiolation Earring",
    right_ear="Moonshade earring",
    left_ring="Sheltered Ring",
    right_ring="Defending ring",
    back="Kumbira Cape",
}
        
    -- Defense sets

    sets.defense.PDT = {
    main="Terra's staff",
    sub="Irenic strap",
        head="Hagondes Hat +1",
        neck="Twilight Torque",
        ear1="Etiolation Earring",
        ear2="Odnowa Earring +1",
        body="Hagondes Coat +1",
        hands="Amaric nails",
        ring1="Fortified Ring",
        ring2="defending ring",
        back="Kumbira cape",
        waist="slipor sash",
        legs="vanya slops",
        feet="Amalric nails"}


    sets.defense.MDT = set_combine(sets.defense.PDT, {
    head="Vanya hood",
    body="Vanya robe",
    })    

    sets.Kiting = {feet="Herald's Gaiters"}

    sets.latent_refresh = {waist="Fucho-no-obi"}

    -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
    
    sets.buff['Mana Wall'] = {feet="Goetia Sabots +2"}

 

    -- 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 = {
        head="Zelus Tiara",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
        body="Hagondes Coat",hands="Bokwus Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
        back="Umbra Cape",waist="Goading Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
end

-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
    if spellMap == 'Cure' or spellMap == 'Curaga' then
        gear.default.obi_waist = "Goading Belt"
    elseif spell.skill == 'Elemental Magic' then
        gear.default.obi_waist = "Hachi-no-Obi"
        if state.CastingMode.value == 'Proc' then
            classes.CustomClass = 'Proc'
        end
    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)


end

function job_aftercast(spell, action, spellMap, eventArgs)
    -- Lock feet after using Mana Wall.
    if not spell.interrupted then
        if spell.english == 'Mana Wall' then
            enable('feet')
            equip(sets.buff['Mana Wall'])
            disable('feet')
        end
    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)
    -- Unlock feet when Mana Wall buff is lost.
    if buff == "Mana Wall" and not gain then
        enable('feet')
        handle_equipping_gear(player.status)
    end
end


-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
    if stateField == 'Offense Mode' then
        if newValue == 'Normal' then
            disable('main','sub','range')
        else
            enable('main','sub','range')

        end
    end
end


-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------

-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
    if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
        --[[ No real need to differentiate with current gear.
        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 player.mpp < 51 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
    
    return idleSet
end


-- Function to display the current relevant user state when doing an update.
function display_current_job_state(eventArgs)
    display_current_caster_state()
    eventArgs.handled = true
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, 15)
end




Thanks.

I've been trying all afternoon trying to make it work but no avail. ._.
Offline
Posts: 430
By Sidra 2017-01-02 22:20:52
Link | Quote | Reply
 
So - a player named Braden made a nice simple DRG .lua that I have been using. I have never programmed anything in my life, so I liked the idea of a relatively simple lua. However, I have found some things in other luas I liked and tried to add them in but couldn't get anything to work - so I deleted what I added. However, I must have accidentally messed something up - as now After using a WS and the breath gear going in, it doesn't swap back to my TP gear. Can anyone see what I did? (and for special bonus - get the macro page based on Subjo to work)
Code
function user_setup()
    select_default_macro_book()
end

-- Get Sets: Everything in this section is run as soon as you change jobs.
function get_sets()
	sets = {}
	petcast = false
	-- Regular Sets --
	
	
	sets.Idle = {sub="Nepenthe Grip +1",
    ammo="Ginsen",
    head={ name="Valorous Mask", augments={'Accuracy+23 Attack+23','Crit.hit rate+2','VIT+7','Accuracy+15','Attack+8',}},
    body={ name="Despair Mail", augments={'Attack+25','Mag. Evasion+20','"Dbl.Atk."+3',}},
    hands="Sulev. Gauntlets +1",
    legs={ name="Valor. Hose", augments={'Accuracy+29','"Dbl.Atk."+4','VIT+3','Attack+10',}},
    feet="Flam. Gambieras +1",
    neck="Lissome necklace",
    waist="Ioskeha Belt",
    left_ear="Cessance Earring",
    right_ear="Brutal Earring",
    left_ring="Warp Ring",
    right_ring="Shneddick Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
    
  
	sets.TP = {sub="Nepenthe Grip +1",
    ammo="Ginsen",
    head="Flam. Zucchetto +1",
    body={ name="Despair Mail", augments={'Attack+25','Mag. Evasion+20','"Dbl.Atk."+3',}},
    hands="Sulev. Gauntlets +1",
    legs={ name="Valor. Hose", augments={'Accuracy+29','"Dbl.Atk."+4','VIT+3','Attack+10',}},
    feet="Flam. Gambieras +1",
    neck="Lissome Necklace",
    waist="Ioskeha Belt",
    left_ear="Cessance Earring",
    right_ear="Brutal Earring",
    left_ring="Chirich Ring",
    right_ring="Petrov Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
    
    
 	-- Can add a set for each WS by making a new set: sets.WS["Stardiver"] or sets.WS["Camlann's Torment"] for example
	sets.WS = {}
	sets.WS["Default"]	= {sub="Nepenthe Grip +1",
    ammo="Ginsen",
    head="Sulevia's Mask +1",
    body="Sulevia's Plate. +1",
    hands="Sulev. Gauntlets +1",
    legs="Sulevi. Cuisses +1",
    feet="Sulev. Leggings +1",
    neck="Lissome necklace",
    waist="Ioskeha Belt",
    left_ear="Bladeborn Earring",
    right_ear="Steelflash Earring",
    left_ring="Rajas Ring",
    right_ring="Petrov Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
  sets.WS["Camlann's Torment"] = {sub="Nepenthe Grip +1",
    ammo="Ginsen",
    head="Sulevia's Mask +1",
    body="Sulevia's Plate. +1",
    hands="Sulev. Gauntlets +1",
    legs="Sulevi. Cuisses +1",
    feet="Sulev. Leggings +1",
    neck="Fotia gorget",
    waist="Fotia Belt",
    left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
    right_ear="Kemas earring",
    left_ring="Spiral Ring",
    right_ring="Petrov Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
	sets.WS["Stardiver"] = {
    ammo="Amar cluster",
    head="Flam. Zucchetto +1",
    body="Sulevia's Plate. +1",
    hands="Sulev. Gauntlets +1",
    legs="Sulevi. Cuisses +1",
    feet="Flam. Gambieras +1",
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear="Cessance Earring",
    right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
    left_ring="Apate Ring",
    right_ring="Petrov Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
	sets.WS["Drakesbane"] = {sub="Nepenthe Grip +1",
    ammo="Ginsen",
    head={ name="Valorous Mask", augments={'Accuracy+23 Attack+23','Crit.hit rate+2','VIT+7','Accuracy+15','Attack+8',}},
    body="Sulevia's Plate. +1",
    hands="Flam. Manopolas +1",
    legs="Sulevi. Cuisses +1",
    feet="Sulev. Leggings +1",
    neck="Fotia gorget",
    waist="Fotia Belt",
    left_ear="Bladeborn Earring",
    right_ear="Steelflash Earring",
    left_ring="Rajas Ring",
    right_ring="Petrov Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
  sets.WS["Geirskogul"] = {sub="Nepenthe Grip +1",ammo="Ginsen",
    head={ name="Valorous Mask", augments={'Attack+21','"Dbl.Atk."+3','DEX+7','Accuracy+10',}},
    body="Flamma Korazin +1",
    hands="Sulev. Gauntlets +1",
    legs="Sulevi. Cuisses +1",
    feet="Flam. Gambieras +1",
    neck="Fotia gorget",
    waist="Fotia Belt",
    left_ear="Cessance Earring",
    right_ear="Brutal Earring",
    left_ring="Apate Ring",
    right_ring="Petrov Ring",
    back={ name="Brigantia's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},}		  
 sets.WS["Shattersoul"] = {ammo="Ginsen",
    head="Sulevia's Mask +1",
    body="Sulevia's Plate. +1",
    hands="Sulev. Gauntlets +1",
    legs="Sulevi. Cuisses +1",
    feet="Flam. Gambieras +1",
    neck="Fotia gorget",
    waist="Fotia Belt",
    left_ear="Cessance Earring",
    right_ear="Brutal Earring",
    left_ring="Spiral Ring",
    right_ring="Apate Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
  sets.WS["Retribution"] = {ammo="Ginsen",
    head="Sulevia's Mask +1",
    body="Sulevia's Plate. +1",
    hands="Sulev. Gauntlets +1",
    legs="Sulevi. Cuisses +1",
    feet="Flam. Gambieras +1",
    neck="Fotia gorget",
    waist="Fotia Belt",
    left_ear="Ishvara Earring",
    right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
    left_ring="Rajas Ring",
    right_ring="Apate Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
    
    

    -- Job Ability Sets --
	sets.JA = {}
	sets.JA.Jump = {sub="Nepenthe Grip +1",
    ammo="Ginsen",
    head="Flam. Zucchetto +1",
    body={ name="Despair Mail", augments={'Attack+25','Mag. Evasion+20','"Dbl.Atk."+3',}},
    hands="Sulev. Gauntlets +1",
    legs={ name="Valor. Hose", augments={'Accuracy+29','"Dbl.Atk."+4','VIT+3','Attack+10',}},
    feet="Flam. Gambieras +1",
    neck="Lissome Necklace",
    waist="Ioskeha Belt",
    left_ear="Cessance Earring",
    right_ear="Brutal Earring",
    left_ring="Chirich Ring",
    right_ring="Petrov Ring",
    back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
	
	sets.JA.Angon = {ammo="Angon",hands="Ptero. Fin. Gaunt."} 
	-- Angon, Relic Hands, and that dumb earring in Mamook if you feel like it
	
	sets.JA.AncientCircle = {legs="Vishap Brais +1"} 
	-- Ancient Circle normally: 3 minute duration, Damage+15% DT-15% DragonKiller+15% against Dragons (10% vs. NMs)
	-- Ancient Circle with AF1: 4.5 minute duration, Damage+17% DT-17% DragonKiller+17% against Dragons (11% vs. NMs)
	
	sets.JA.SpiritLink = {} 
	-- Spirit Link/Empathy gear go here; note that Relic Feet will cause a 100% Wyvern to still drain HP (unless leveling up
	
	sets.JA.SpiritSurge = {} 
	-- Augmented Relic Body affects duration; Wyvern Max HP affects Spirit Surge's Max HP effect on you
	
	sets.JA.SteadyWing = {legs="Vishap Brais +1"} 
	-- Wyvern Max HP strongly affects Steady Wing's Stoneskin effect
	
	-- Casting Sets --
	sets.FastCast = {}
	-- Can add more FC and Quick Magic here for spells; AF1 Head recommended in case of GearSwap error, at least for faster spells
	
	sets.Midcast = {}
	-- AF1 Head strongly advised for Healing Breath trigger
	-- HP or defensive stuff for Healing Breath; can use Fast Cast or Magic Acc. or whatever if you want too
	
	sets.Breath = {head={ name="Ptero. Armet +1", augments={'Enhances "Deep Breathing" effect',}},
    legs="Vishap Brais +1",
    neck="Lancer's Torque",
    waist="Glassblower's Belt",
    back={ name="Updraft Mantle", augments={'STR+1','Pet: Breath+9','Pet: Damage taken -2%',}},}
	-- Healing Breath is modified by Wyvern Max HP and Wyvern: Breath+
	-- Elemental Breaths are modified by Wyvern Current HP, Wyvern: Breath+, and Pet: Magic Accuracy
	-- Remove Status Breaths are presumably affected by nothing
end


-- Precast: JA and WS should be defined here, Fast Cast and such for magic. 
function precast(spell)
	if spell.type == "WeaponSkill" then
		if sets.WS[spell.name] then -- If you made a set for a WS and then use it,
		equip(sets.WS[spell.name])  -- it'll equip that set for that WS only
		else
		equip(sets.WS["Default"]) -- otherwise, it'll use this set instead
		end
	elseif spell.action_type == 'Magic' then 
		equip(sets.FastCast)
	elseif spell.name == 'Dismiss' and pet.hpp < 100 then		
		cancel_spell() -- Dismiss resets the Call Wyvern recast IF your Wyvern is at 100% HP; sorry to anyone who just wanted to kill their wyvern for the fun of it
		windower.add_to_chat(50,'  '..pet.name..' is below full HP (<pethpp>), cancelling Dismiss!')
	elseif spell.name == 'Call Wyvern' then
		if pet.isvalid then
		cancel_spell() -- Uses Spirit Link instead when your Wyvern is already present
		send_command('input /ja "Spirit Link" <me>')
		else
		equip(sets.JA.SpiritSurge) -- Relic Body goes here; can just use Spirit Surge set if you have it augmented
		end
	elseif spell.name == 'Spirit Surge' then
		equip(sets.JA.SpiritSurge)
	elseif spell.name == 'Steady Wing' then
		equip(sets.JA.SteadyWing)
	elseif spell.name == 'Angon' then
		equip(sets.JA.Angon)
	elseif spell.name == 'Ancient Circle' then
		equip(sets.JA.AncientCircle)
	elseif spell.name == 'Spirit Link' then
		if pet.isvalid then
			equip(sets.JA.SpiritLink)
		else
			cancel_spell() -- Uses Call Wyvern instead when your Wyvern isn't present
			send_command('input /ja "Call Wyvern" <me>')
		end
	elseif string.find(spell.name,"Jump") then -- Any spell or ability with the word Jump in it
		if not pet.isvalid then -- If you don't have a pet
			if spell.name == "Spirit Jump" then -- Forces Spirit Jump into regular Jump when Wyvern is dead
				cancel_spell()
				send_command('input /ja "Jump" <t>')
				return
			elseif spell.name == "Soul Jump" then -- Forces Soul Jump into High Jump when Wyvern is dead
				cancel_spell()
				send_command('input /ja "High Jump" <t>')
				return
			end
		end
		equip(sets.JA.Jump)
	end
end            
 
-- Midcast: For magic, this section affects your spell's potency, accuracy, etc. Unnecessary for JA/WS.
function midcast(spell)
	if spell.action_type == 'Magic' then 
        equip(sets.Midcast)
	end
end

-- Pet Change: Occurs when your Pet is summoned or killed.
function pet_change(pet,gain)
	if gain == false and pet.name then
		-- General announcement for when your Wyvern is killed, Dimissed, or eaten by Spirit Surge
		windower.add_to_chat(50,' *** '..string.upper(pet.name)..' IS DEAD YO ***')
	end
end

-- Pet Midcast: If GearSwap sees your pet readying a WS, this occurs
function pet_midcast(spell)
	if string.find(spell.name,' Breath') then
		petcast = true
		equip_current()		
		windower.send_command('wait 1.2;gs c petcast')
		-- Wyvern Breath Delay: 1.25s http://forum.square-enix.com/ffxi/threads/47481
		-- pet_aftercast won't run if your Wyvern's WS is interrupted (disengaging, stunned, Amnesia, etc.), so I recommend this
	end
end
 
-- Aftercast: Occurs following the use of any WS, JA, Spell, Item, or Ranged Attack
function aftercast(spell)
	equip_current()
end

-- Status Change: When Engaging, Disengaging, Resting, Standing Up, etc.
function status_change()
	equip_current()
end

-- Pet Status Change
function pet_status_change(new,old)
	if new ~= "Engaged" then
	petcast = false
	end
end

-- A custom function that equips a set based on whether you're engaged or not.
function equip_current()
	if player.status == 'Engaged' then
		equip(sets.TP)
	else
		equip(sets.Idle)
	end
	if petcast == true then 
		equip(sets.Breath) -- This will equip your Breath gear on top of whichever other set you're currently wearing.
	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 == 'WAR' then
        set_macro_page(1, 14)
    elseif player.sub_job == 'DRK' then
        set_macro_page(10, 14)
    elseif player.sub_job == 'SAM' then
        set_macro_page(10, 14)
    else
        set_macro_page(10, 14)
    end
 
-- Manual commands sent in-game with //gs c <command>
function self_command(command)
	if command == 'petcast' and petcast then -- This command reverts to your regular gear 1.2 seconds after a Breath by default
		petcast = false
		equip_current() 
	end
	end
end
First Page 2 3 ... 114 115 116 ... 181 182 183
Log in to post.