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 ... 34 35 36 ... 180 181 182
 Ragnarok.Martel
Offline
Server: Ragnarok
Game: FFXI
Posts: 2894
By Ragnarok.Martel 2014-09-23 17:23:30
Link | Quote | Reply
 
Sorry, I don't use Motenten's lua's. So I can't help you much there. As far as I can tell, there's nothing wrong with your cmd. But I also dunno anything about function job_self_command(command)
 Fenrir.Motenten
VIP
Offline
Server: Fenrir
Game: FFXI
user: Motenten
Posts: 764
By Fenrir.Motenten 2014-09-24 13:22:07
Link | Quote | Reply
 
kaiju9 said: »
1. Trying to learn my way around Mote's lua files, and tried adding a simple self command yesterday. I added the code below to the bottom of RDM.lua, reloaded GS, and then typed //gs c C1 in-game, but nothing happened. What am I doing wrong? Do I need to set eventArgs.handled = true?

Code
function job_self_command(command)
    if command == 'C1' then 
        add_to_chat(158,'Test Command')
    end
end

The parameter given to job_self_command is an array of strings, not a simple string. In the above case, command[1] == 'C1' would work.

This is an issue with needing to break the command up as words. For example, [gs c cycle OffenseMode] and [gs c cycle HybridMode] both need to use the 'cycle' code, but with different values for which state variable is being changed. There are other commands where there might be an optional third parameter as well.

That makes it pretty much completely impractical to just pass the unmodified raw string through, so it gets broken up and placed into a table.

Also, the function signature is:
Code
function job_self_command(cmdParams, eventArgs)
end


cmdParams should be more obviously an indication of a table, and eventArgs is used to notify the main library that you handled the command, and that the library can ignore it after that. (eventArgs.handled = true, if so)


kaiju9 said: »
2. Can anyone give a quick run-down of sidecar files? Like where I put them, what I can name them, etc? Seems clear that I'd put init_gear_sets() in <charactername>_<job>_gear.lua with all my gear sets, but do I also put stuff like job_self_command(), job_midcast(), etc for custom functionality in the same file, or do I create multiple files (if so, is there a naming convention?)?

Check the Files section of the wiki. And yes, you can override any function that would go in the normal job file (except get_sets) in the sidecar file. No additional files are needed.
[+]
 Quetzalcoatl.Dab
Offline
Server: Quetzalcoatl
Game: FFXI
user: deezydabs
Posts: 35
By Quetzalcoatl.Dab 2014-09-24 17:13:16
Link | Quote | Reply
 
Got a few question.

1) How to I change my TP sets? Like Lowacc lightacc acc.

2) When i load my .lua I get a "Job file is out of date" went to the website had no idea what I was looking at...

3) Oneiros ring I need this to equip and unequip based on MP

Here is the lua I'm using

 Cerberus.Tidis
MSPaint Winner
Offline
Server: Cerberus
Game: FFXI
user: tidis
Posts: 3927
By Cerberus.Tidis 2014-09-25 05:39:55
Link | Quote | Reply
 
I have only just realised I have nothing set up for feint in my thf gearswap so I was wondering if the following would get the job done:

if buffactive.Feint then
equip({legs="Plunderer's Culottes"})
 Leviathan.Arcon
VIP
Offline
Server: Leviathan
Game: FFXI
user: Zaphor
Posts: 660
By Leviathan.Arcon 2014-09-25 05:58:45
Link | Quote | Reply
 
Cerberus.Tidis said: »
I have only just realised I have nothing set up for feint in my thf gearswap so I was wondering if the following would get the job done:

if buffactive.Feint then
equip({legs="Plunderer's Culottes"})

That will work assuming you don't overwrite it again later. Also, remember to add an "end" there.
 Cerberus.Tidis
MSPaint Winner
Offline
Server: Cerberus
Game: FFXI
user: tidis
Posts: 3927
By Cerberus.Tidis 2014-09-25 06:00:47
Link | Quote | Reply
 
Leviathan.Arcon said: »
Cerberus.Tidis said: »
I have only just realised I have nothing set up for feint in my thf gearswap so I was wondering if the following would get the job done:

if buffactive.Feint then
equip({legs="Plunderer's Culottes"})

That will work assuming you don't overwrite it again later. Also, remember to add an "end" there.
Cool, was just thinking it out while I'm at work, I shouldn't have a problem with overwriting it as I hit feint, wait for the applying hit before doing anything.
 Cerberus.Tidis
MSPaint Winner
Offline
Server: Cerberus
Game: FFXI
user: tidis
Posts: 3927
By Cerberus.Tidis 2014-09-25 16:24:24
Link | Quote | Reply
 
Hmm having problems getting these legs equipped with Feint, where in my file would I have to place what I previously wrote to get it to equip?

EDIT: Here is my shitty THF.lua in all it's horribleness if it helps.
Code
function get_sets()
    TP_Index = 1
    Idle_Index = 1

    sets.weapons = {}
    sets.weapons[1] = {main="Izhiikoh"}
    sets.weapons[2]={main="Sandnung"}
    
    sets.JA = {}
    sets.JA.Conspirator = {body="Raider's Vest +2"}
    sets.JA.Accomplice = {head="Raid. Bonnet +2"}
    sets.JA.Collaborator = {head="Raid. Bonnet +2"}
    sets.JA['Perfect Dodge'] = {hands="Plun. Armlets +1"}
    sets.JA.Steal = {head="Plun. Bonnet",neck="Rabbit Charm",hands="Thief's Kote",
        waist="Key Ring Belt",legs="Pill. Culottes +1",feet="Pillager's Poulaines"}
    sets.JA.Flee = {feet="Pillager's Poulaines"}
    sets.JA.Despoil = {legs="Raid. Culottes +2",feet="Raid. Poulaines +2"}
    sets.JA.Mug = {head="Plun. Bonnet"}
	sets.JA["Assassin's Charge"] = {feet="Plun. Poulaines +1"}
	sets.JA.Hide = {body="Pillager's Vest"}
    
    sets.WS = {}
    sets.WS.SA = {}
    sets.WS.TA = {}
    sets.WS.SATA = {}
	sets.WS.AC = {}
    
    sets.WS.Evisceration = {head="Felistris Mask",neck="Rancor Collar",ear1="Moonshade Earring",ear2="Brutal Earring",
		body="Plunderer's Vest",hands="Pill. Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
		back="Atheling Mantle",waist="Wanion Belt",legs="Pill. Culottes +1",feet="Plun. Poulaines +1"}
	
	sets.WS["Aeolian Edge"] = set_combine(sets.WS.Evisceration,{head="Thaumas Hat",legs="Raid. Culottes +2",neck="Stoicheion Medal",
		ear1="Novio Earring",ear2="Hecate's Earring",waist="Breeze Belt"})
	
    sets.WS.SA.Evisceration = {head="Pillager's Bonnet",neck="Rancor Collar",ear1="Moonshade Earring",ear2="Brutal Earring",
		body="Plunderer's Vest",hands="Raid. Armlets +2",ring1="Rajas Ring",ring2="Epona's Ring",
		back="Atheling Mantle",waist="Wanion Belt",legs="Pill. Culottes +1",feet="Plun. Poulaines +1"}

	sets.WS.TA.Evisceration = {head="Pillager's Bonnet",neck="Rancor Collar",ear1="Moonshade Earring",ear2="Brutal Earring",
		body="Plunderer's Vest",hands="Raid. Armlets +2",ring1="Rajas Ring",ring2="Epona's Ring",
		back="Atheling Mantle",waist="Wanion Belt",legs="Pill. Culottes +1",feet="Plun. Poulaines +1"}
	
    TP_Set_Names = {"Normal","TH","Evasion"}
    sets.TP = {}
    sets.TP['Normal'] = {range="Raider's Bmrng.",head="Felistris Mask",neck="Asperity Necklace",
        ear1="Dudgeon Earring",ear2="Heartseeker Earring",body="Thaumas Coat",hands="Pill. Armlets +1",
        ring1="Rajas Ring",ring2="Epona's Ring",back="Atheling Mantle",waist="Nusku's Sash",
        legs="Pill. Culottes +1",feet="Plun. Poulaines +1"}
        
    sets.TP['TH'] = {range="Raider's Bmrng.",head="Felistris Mask",neck="Asperity Necklace",
        ear1="Dudgeon Earring",ear2="Heartseeker Earring",body="Thaumas Coat",hands="Plun. Armlets +1",
        ring1="Rajas Ring",ring2="Epona's Ring",back="Atheling Mantle",waist="Nusku's Sash",
        legs="Pill. Culottes +1",feet="Raid. Poulaines +2"}
        
    sets.TP.Evasion = {head="Espial Cap",body="Espial Gambison",hands="Espial Bracers",legs="Espial Hose",feet="Espial Socks",
		ear1="Ethereal Earring",ear2="Elusive Earring",ring1="Heed Ring",neck="Torero Torque",back="Boxer's Mantle"}

    Idle_Set_Names = {'Normal','MDT'}
    sets.Idle = {}
    sets.Idle.Normal = {head="Felistris Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
        body="Thaumas Coat",hands="Pill. Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
        back="Atheling Mantle",waist="Nusku's Sash",legs="Pill. Culottes +1",feet="Skd. Jambeaux +1"}
		
	sets.Idle.MDT = {head="Espial Cap",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
		body="Avalon Breastplate",hands="Merman's Mittens",ring1="Minerva's Ring",ring2="Shadow Ring",legs="Espial Hose",
		feet="Espial Socks"}

	sets.midcast = {}
	sets.midcast.Ranged = {head="Umbani Cap",body="Skadi's Cuirie +1",hands="Buremte Gloves",legs="Thur. Tights +1",feet="Pillager's Poulaines",
		neck="Ej Necklace",waist="Elanid Belt",ear1="Clearview Earring",ear2="Volley Earring",ring1="Hajduk Ring",ring2="Hajduk Ring",
		back="Jaeger Mantle"}
end

function precast(spell)
    if sets.JA[spell.english] then
        equip(sets.JA[spell.english])
    elseif spell.type=="WeaponSkill" then
        if sets.WS[spell.english] then equip(sets.WS[spell.english]) end
        if buffactive['sneak attack'] and buffactive['trick attack'] and sets.WS.SATA[spell.english] then equip(sets.WS.SA[spell.english])
        elseif buffactive['sneak attack'] and sets.WS.SA[spell.english] then equip(sets.WS.SA[spell.english])
        elseif buffactive['trick attack'] and sets.WS.TA[spell.english] then equip(sets.WS.TA[spell.english]) end
    end
end

function midcast(spell)
	if spell.name=="Ranged" then
		equip(sets.midcast.Ranged)
	end
end

function aftercast(spell)
    if player.status=='Engaged' then
        equip(sets.TP[TP_Set_Names[TP_Index]])
    else
        equip(sets.Idle[Idle_Set_Names[Idle_Index]])
    end
end

function status_change(new,old)
    if T{'Idle','Resting'}:contains(new) then
        equip(sets.Idle[Idle_Set_Names[Idle_Index]])
    elseif new == 'Engaged' then
        equip(sets.TP[TP_Set_Names[TP_Index]])
    end
end

function buff_change(buff,gain_or_loss)
    if buff=="Sneak Attack" then
        soloSA = gain_or_loss
    elseif buff=="Trick Attack" then
        soloTA = gain_or_loss
    end
end

function self_command(command)
    if command == 'toggle TP set' then
        TP_Index = TP_Index +1
        if TP_Index > #TP_Set_Names then TP_Index = 1 end
        send_command('@input /echo ----- TP Set changed to '..TP_Set_Names[TP_Index]..' -----')
        equip(sets.TP[TP_Set_Names[TP_Index]])
    elseif command == 'toggle Idle set' then
        Idle_Index = Idle_Index +1
        if Idle_Index > #Idle_Set_Names then Idle_Index = 1 end
        send_command('@input /echo ----- Idle Set changed to '..Idle_Set_Names[Idle_Index]..' -----')
        equip(sets.Idle[Idle_Set_Names[Idle_Index]])
    end
end
Offline
Posts: 152
By kithaofcerb 2014-09-27 00:09:55
Link | Quote | Reply
 
Hello folks

I'm still fairly new to gearswap, so I decided to just take Bokura's DRK lua and edit it to my own gear, but it doesn't seem to be understanding the command "equipSet". How can I fix this?

I'm not sure how to get code to appear yet either, because noob. As soon as I figure that out I can post it and maybe that will help.

Thanks in advance

Edit: I think I've got it (posting my lua)
Code
current_mote_include_version = 2
function init_include()
Include('Mote-Globals.lua')
Include('Mote-Include.lua')
Include('Mote-SelfCommands.lua')
Include('Mote-Mappings.lua')
end
function get_sets()
	equipSet = equipSet
	AccIndex = 1
	AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For TP/WS/Hybrid/Stun. First Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below. Most of These Sets Are Empty So You Need To Edit Them On Your Own. Remember To Check What The Combined Set Is For Each Sets. --
	WeaponIndex = 1
	WeaponArray = {"Apocalypse", "Senbaak Nagan"} -- Default Main Weapon Is Liberator. Can Delete Any Weapons/Sets That You Don't Need Or Replace/Add The New Weapons That You Want To Use. --
	Armor = 'None'
	Twilight = 'None'
	Mekira = 'ON' -- Set Default Mekira ON or OFF Here --
	target_distance = 5 -- Set Default Distance Here --
	
	

	
	sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}

	-- TP Base Set --
	sets.TP = {}

	
	-- Senbaak Nagan TP set --
	sets.TP.Ragnarok = {
			main="Senbaak Nagan",
			sub="Pole Grip",
			ammo="Hagneia Stone",
			head="Otomi Helm",
			neck="Asperity Necklace",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Xaddi Mail",
			hands="Cizin Mufflers +1",
			ring1="K'ayres Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Windbuffet Belt",
			legs="Cizin Breeches +1",
			feet="Mikinaak Greaves"}
	sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{
			head="Yaoyotl Helm",
			neck="Iqabi Necklace",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			hands="Xaddi Gauntlets",
			legs="Xaddi Cuisses"})
	sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{
			waist="Anguinus Belt",
			feet="Xaddi Boots"})

	
	-- Apocalypse(AM Down) TP Sets --
	sets.TP.Apocalypse = {
			main="Apocalypse",
			sub="Pole Grip",
			ammo="Hagneia Stone",
			head="Otomi Helm",
			neck="Asperity Necklace",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Xaddi Mail",
			hands="Cizin Mufflers +1",
			ring1="K'ayres Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Windbuffet Belt",
			legs="Cizin Breeches +1",
			feet="Mikinaak Greaves"}
	sets.TP.Apocalypse.MidACC = set_combine(sets.TP.Apocalypse,{
			head="Yaoyotl Helm",
			neck="Iqabi Necklace",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			hands="Xaddi Gauntlets",
			legs="Xaddi Cuisses"})
	sets.TP.Apocalypse.HighACC = set_combine(sets.TP.Apocalypse.MidACC,{
			waist="Anguinus Belt",
			feet="Xaddi Boots"})

	
	-- PDT/MDT Sets --
	sets.PDT = {
			
			head="Yaoyotl Helm",
			neck="Twilight Torque",
			body="Cizin Mail",
			hands="Cizin Mufflers +1",
			ring1="Dark Ring",
			ring2="Dark Ring",
			back="Repulse Mantle",
			waist="Windbuffet Belt",
			legs="Cizin Breeches +1",
			feet="Cizin Greaves"}

	sets.MDT = set_combine(sets.PDT,{
			ammo="Demonry Stone",
			head="Laeradr Helm",
			ear1="Merman's Earring",
			ear2="Sanare Earring",
			body="Nocturnus Mail",
			ring1="Shadow Ring",
			back="Engulfer Cape",
			waist="Resolute Belt"})

	-- Hybrid Set --
	sets.TP.Hybrid = set_combine(sets.PDT,{
			head="Yaoyotl Helm",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			body="Xaddi Mail",
			waist="Windbuffet Belt",
			feet="Whirlpool Greaves"})
	sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{neck="Iqabi Necklace"})
	sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})

	-- WS Base Set --
	sets.WS = {}

	-- Resolution Sets --
	sets.WS.Resolution = {
			ammo="Aqreqaq Bomblet",
			head="Otomi Helm",
			neck="Soil Gorget",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Igno. Cuirass +1",
			hands="Miki. Gauntlets",
			ring1="K'ayres Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Soil Belt",
			legs="Igno. Flan. +1",
			feet="Mikinaak Greaves"}
	sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{
			head="Yaoyotl Helm",
			feet="Whirlpool Greaves"})
	sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{
			legs="Xaddi Cuisses"})

	-- Catastrophe Sets --
	sets.WS.Catastrophe = {
			ammo="Bomb Core",
			head="Otomi Helm",
			neck="Soil Gorget",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			body="Phorcys Korazin",
			hands="Miki. Gauntlets",
			ring1="Spiral Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Soil Belt",
			legs="Igno. Flan. +1",
			feet="Mikinaak Greaves"}
	sets.WS.Catastrophe.MidACC = set_combine(sets.WS.Catastrophe,{
			head="Yaoyotl Helm",
			feet="Whirlpool Greaves"})
	sets.WS.Catastrophe.HighACC = sets.WS.Catastrophe.MidACC

	
	-- Entropy Sets --
	sets.WS.Entropy = {
			ammo="Aqreqaq bomblet",
			head="Otomi Helm",
			neck="Soil Gorget",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Igno. Cuirass +1",
			hands="Miki. Gauntlets",
			ring1="Spiral Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Soil Belt",
			legs="Igno. Flan. +1",
			feet="Mikinaak Greaves"}
	sets.WS.Entropy.MidACC = set_combine(sets.WS.Entropy,{
			head="Yaoyotl Helm",
			body="Mes. Haubergeon",
			feet="Whirlpool Greaves"})
	sets.WS.Entropy.HighACC = set_combine(sets.WS.Entropy.MidACC,{
			body="Xaddi Body",
			legs="Xaddi Cuisses"})

	
	-- JA Sets --
	sets.JA = {}
	sets.JA["Blood Weapon"] = {body="Fallen's Cuirass"}
	sets.JA["Diabolic Eye"] = {hands="Fall. Fin. Gaunt. +1"}
	sets.JA["Nether Void"] = {legs="Bale Flanchard +2"}
	sets.JA["Arcane Circle"] = {feet="Igno. Sollerets +1"}
	sets.JA["Last Resort"] = {feet="Fall. Sollerets +1"}

	
	sets.Precast = {}
	-- Fastcast Set --
	sets.Precast.FastCast = {
			ammo="Impatiens",
			ear1="Loquac. Earring",
			ring1="Prolix Ring"}
	-- Precast Dark Magic --
	sets.Precast['Dark Magic'] = set_combine(sets.Precast.FastCast,{head="Fall. Burgeonet"})

	-- Midcast Base Set --
	sets.Midcast = {}

	-- Magic Haste Set --
	sets.Midcast.Haste = set_combine(sets.PDT,{})

	-- Dark Magic Set --
	sets.Midcast['Dark Magic'] = {
			head="Igno. Burgeonet",
			neck="Dark Torque",
			ear1="Lifestorm Earring",
			ear2="Psystorm Earring",
			hands="Fall. Fin. Gauntlets",
			ring1="Prolix Ring",
			ring2="Perception Ring",
			legs="Bale Flanchard +2",
			feet="Scamp's Sollerets"}

	-- Stun Sets --
	sets.Midcast.Stun = set_combine(sets.Midcast['Dark Magic'],{})

	
	-- Enfeebling Magic Set --
	sets.Midcast['Enfeebling Magic'] = {body="Igno. Cuirass +1"}

	
	-- Dread Spikes Set --
	sets.Midcast['Dread Spikes'] = {
			ammo="Egoist's Tathlum",
			head="Ganesha's Mask",
			neck="Dualism Collar",
			ear1="Bloodgem Earring",
			ear2="Cassie Earring",
			body="Bale Cuirass +2",
			hands="Ares' Gauntlets +1",
			ring1="Bomb Queen Ring",
			ring="Meridian Ring",
			back="Strendu Mantle",
			waist="Oneiros Belt",
			legs="Osmium Cuisses",
			feet="Llwyd's Clogs"}
end

function pretarget(spell,action)
	if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
		cancel_spell()
		send_command('input /item "Echo Drops" <me>')
	elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
		cancel_spell()
		send_command('Aggressor')
	elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
		cancel_spell()
		send_command('ThirdEye')
	elseif spell.english == "Meditate" and player.tp > 290 then -- Cancel Meditate If TP Is Above 290 --
		cancel_spell()
		add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
	elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
		cancel_spell()
		add_to_chat(123, spell.name..' Canceled: [Out of Range]')
		return
	end
end

function precast(spell,action)
	if spell.type == "WeaponSkill" then
			equipSet = sets.WS
			elseif equipSet[spell.english] then
				equipSet = equipSet[spell.english]
			end
			if Attack == 'ON' then
				equipSet = equipSet["ATT"]
			end
			if equipSet[AccArray[AccIndex]] then
				equipSet = equipSet[AccArray[AccIndex]]
			end
			if spell.english == "Catastrophe" and (world.day_element == 'Dark' or world.day_element == 'Earth') and Mekira == 'ON' then 
				equipSet = set_combine(equipSet,{head="Mekira-oto"})
			end
			if spell.english == "Resolution" or spell.english == "Entropy" then
				if spell.english == "Resolution" and (world.day_element == 'Thunder' or world.day_element == 'Wind' or world.day_element == 'Earth') and Mekira == 'ON' then 
					equipSet = set_combine(equipSet,{head="Mekira-oto"})
				elseif spell.english == "Entropy" and (world.day_element == 'Dark' or world.day_element == 'Earth' or world.day_element == 'Water') and Mekira == 'ON' then 
					equipSet = set_combine(equipSet,{head="Mekira-oto"})
			end
			equip(equipSet)
		
	if spell.type == "JobAbility" then
		if sets.JA[spell.english] then
			equip(sets.JA[spell.english])
end		
	if spell.action_type == 'Magic' then
		if buffactive.silence or spell.target.distance > 16+target_distance then
			cancel_spell()
			add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
			return
		else
			if spell.english == "Stun" then
				if buffactive.Hasso or buffactive.Seigan then -- Cancel Hasso or Seigan When You Use Stun --
					cast_delay(0.2)
					send_command('cancel Hasso,Seigan')
				end
				equip(sets.Precast.FastCast)
			elseif string.find(spell.english,'Utsusemi') then
				if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
					cancel_spell()
					add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
					return
				else
					equip(sets.Precast.FastCast)
				end
			elseif sets.Precast[spell.skill] then
				equip(sets.Precast[spell.skill])
			else
				equip(sets.Precast.FastCast)
			end
		end
	elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
		cast_delay(0.2)
		send_command('cancel Sneak')
	end
	if Twilight == 'Twilight' then
		equip(sets.Twilight)
	end
end

function midcast(spell,action)
	equipSet = {}
	if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
		equipSet = sets.Midcast
		if string.find(spell.english,'Absorb') then
			if buffactive["Dark Seal"] then -- Equip Aug'd Abs. Burgeonet +2 When You Have Dark Seal Up --
				equipSet = set_combine(equipSet,{head="Abs. Burgeonet +2"})
			end
		elseif string.find(spell.english,'Drain') or string.find(spell.english,'Aspir') or string.find(spell.english,'Bio') then
			if world.day == "Darksday" or world.weather_element == "Dark" then -- Equip Anrin Obi On Darksday or Dark Weather --
				equipSet = set_combine(equipSet,{waist="Anrin Obi"})
			end
		elseif spell.english == "Stoneskin" then
			if buffactive.Stoneskin then
				send_command('@wait 1.7;cancel stoneskin')
			end
			equipSet = equipSet.Stoneskin
		elseif spell.english == "Sneak" then
			if spell.target.name == player.name and buffactive['Sneak'] then
				send_command('cancel sneak')
			end
			equipSet = equipSet.Haste
		elseif string.find(spell.english,'Utsusemi') then
			if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
				send_command('@wait 1.7;cancel Copy Image*')
			end
			equipSet = equipSet.Haste
		elseif spell.english == 'Monomi: Ichi' then
			if buffactive['Sneak'] then
				send_command('@wait 1.7;cancel sneak')
			end
			equipSet = equipSet.Haste
		else
			if equipSet[spell.english] then
				equipSet = equipSet[spell.english]
			end
			if equipSet[AccArray[AccIndex]] then
				equipSet = equipSet[AccArray[AccIndex]]
			end
			if equipSet[spell.skill] then
				equipSet = equipSet[spell.skill]
			end
			if equipSet[spell.type] then
				equipSet = equipSet[spell.type]
			end
		end
	elseif equipSet[spell.english] then
		equipSet = equipSet[spell.english]
	end
	equip(equipSet)
end

function aftercast(spell,action)
	if not spell.interrupted then
		if spell.type == "WeaponSkill" then
			send_command('wait 0.2;gs c TP')
		elseif spell.english == "Sleep 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" then -- Sleep 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.]')
		end
	end
	status_change(player.status)
end

function status_change(new,old)
	if Armor == 'PDT' then
		equip(sets.PDT)
	elseif Armor == 'MDT' then
		equip(sets.MDT)
	elseif new == 'Engaged' then
		equipSet = sets.TP
		if Armor == 'Hybrid' and equipSet["Hybrid"] then
			equipSet = equipSet["Hybrid"]
		end
		if equipSet[WeaponArray[WeaponIndex]] then
			equipSet = equipSet[WeaponArray[WeaponIndex]]
		end
		if equipSet[player.sub_job] then
			equipSet = equipSet[player.sub_job]
		end
		if equipSet[AccArray[AccIndex]] then
			equipSet = equipSet[AccArray[AccIndex]]
		end
		if equipSet[WeaponArray[WeaponIndex]] then
			equipSet = equipSet[WeaponArray[WeaponIndex]]
		end
		equip(equipSet)
	end
	if Twilight == 'Twilight' then
		equip(sets.Twilight)
	end
end


-- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
function self_command(command)
	if command == 'C1' then -- Accuracy Level Toggle --
		AccIndex = (AccIndex % #AccArray) + 1
		status_change(player.status)
		add_to_chat(158,'Accuracy Level: '..AccArray[AccIndex])
	elseif command == 'C17' then -- Main Weapon Toggle --
		WeaponIndex = (WeaponIndex % #WeaponArray) + 1
		add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
		status_change(player.status)
	elseif command == 'C5' then -- Auto Update Gear Toggle --
		status_change(player.status)
		add_to_chat(158,'Auto Update Gear')
	elseif command == 'C2' then -- Hybrid Toggle --
		if Armor == 'Hybrid' then
			Armor = 'None'
			add_to_chat(123,'Hybrid Set: [Unlocked]')
		else
			Armor = 'Hybrid'
			add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
		end
		status_change(player.status)
	elseif command == 'C7' then -- PDT Toggle --
		if Armor == 'PDT' then
			Armor = 'None'
			add_to_chat(123,'PDT Set: [Unlocked]')
		else
			Armor = 'PDT'
			add_to_chat(158,'PDT Set: [Locked]')
		end
		status_change(player.status)
	elseif command == 'C15' then -- MDT Toggle --
		if Armor == 'MDT' then
			Armor = 'None'
			add_to_chat(123,'MDT Set: [Unlocked]')
		else
			Armor = 'MDT'
			add_to_chat(158,'MDT Set: [Locked]')
		end
		status_change(player.status)
	elseif command == 'C10' then -- Mekira Toggle --
		if Mekira == 'ON' then
			Mekira = 'OFF'
			add_to_chat(123,'Mekira: [OFF]')
		else
			Mekira = 'ON'
			add_to_chat(158,'Mekira: [ON]')
		end
		status_change(player.status)
	elseif command == 'C3' then -- Twilight Toggle --
		if Twilight == 'Twilight' then
			Twilight = 'None'
			add_to_chat(123,'Twilight Set: [Unlocked]')
		else
			Twilight = 'Twilight'
			add_to_chat(158,'Twilight Set: [locked]')
		end
end
end


end

end

Edit2: Okay so I'm no longer getting the flow.lua error of not recognizing equipSet, but I'm also not getting any gear swapping happening at all. What am I doing wrong here ;(
 
Offline
Posts:
By 2014-09-28 19:38:42
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 Bismarck.Inference
Offline
Server: Bismarck
Game: FFXI
user: Inference
Posts: 417
By Bismarck.Inference 2014-09-28 23:27:15
Link | Quote | Reply
 
Looking at buffs library "Aftermath: Lv.1" should work, replacing 1 with 2 and 3 as desired.

Timers would look something like this:
Code
send_command('timers c "'..buff..'" 180 down')


Or incase my quotes are somewhat misplaced you could remove ..buff.. and just type Aftermath or something to make it more idiot proof:
Code
send_command('timers c "Aftermath" 180 down')


Assuming you're only looking for AM3 and not tossing around AM2 for mage jobs, second option would work fine.
 Ragnarok.Flippant
Offline
Server: Ragnarok
Game: FFXI
user: Enceladus
Posts: 658
By Ragnarok.Flippant 2014-09-29 00:37:07
Link | Quote | Reply
 
@Tidis

When does Feint need to be equipped, when you use it or when you hit it? I assume when you use it, in which case you'd only need to make a set called sets.JA.Feint = {legs="blahblah"}.

But to be safe, we can add it to your dd set too. You should put your engaged/idle rules into one place that is called from both aftercast and status_change, then add the if buffactive rule there. This saves on redundancy.
Code
function aftercast(spell)
    status_gear()
end
 
function status_change(new,old)
    status_gear()
end
 
function status_gear()
    if T{'Idle','Resting'}:contains(player.status) then
        equip(sets.Idle[Idle_Set_Names[Idle_Index]])
    elseif player.status == 'Engaged' then
        equip(sets.TP[TP_Set_Names[TP_Index]])
        if buffactive.Feint then
            equip(sets.JA.Feint)
        end
    end
end


Now, be aware buffactive table seems to take more time to update than GS does to call these functions. You probably won't end up in your Feint gear after this. So, doing it without making an extra variable, you could do this instead:
Code
function aftercast(spell)
    if spell.english == "Feint" and not spell.interrupted then
        return
    else
        status_gear()
    end
end
 
function status_change(new,old)
    status_gear()
end
 
function status_gear()
    if T{'Idle','Resting'}:contains(player.status) then
        equip(sets.Idle[Idle_Set_Names[Idle_Index]])
    elseif player.status == 'Engaged' then
        equip(sets.TP[TP_Set_Names[TP_Index]])
        if buffactive.Feint then
            equip(sets.JA.Feint)
        end
    end
end

function buff_change(buff,gain)
    if buff=="Sneak Attack" then
        soloSA = gain
    elseif buff=="Trick Attack" then
        soloTA = gain
    elseif buff=="Feint" and not gain then
        status_gear()
    end
end


This will make it so your gear isn't automatically changed immediately after you use Feint, giving you a chance to be still wearing your pants for the hit (or time for buffactive to kick in right if you don't connect the hit until later). It will call the function again after you lose Feint so that you don't get stuck in those legs.

@kithaofcerb

A little confused about what you're trying to do, but you can't just combine Mote's templates with Bokura's. Use one or the other. Your copy and pasting around has resulted in what looks to be broken code.
Offline
Posts: 152
By kithaofcerb 2014-09-29 16:39:57
Link | Quote | Reply
 
Bumping for my post, very frustrating not being able to figure it out :(

Where is equipSet defined and why is my lua not recognizing it?
 Ragnarok.Flippant
Offline
Server: Ragnarok
Game: FFXI
user: Enceladus
Posts: 658
By Ragnarok.Flippant 2014-09-29 17:19:19
Link | Quote | Reply
 
kithaofcerb said: »
Bumping for my post, very frustrating not being able to figure it out :(

Where is equipSet defined and why is my lua not recognizing it?

Again, your code is butchered. You're going to have to recopy either Mote's or Bokura's templates (not both into one file), and paste your sets back in.

If you want to understand your issue specifically, you've edited the original control flow of the precast function by changing a whole bunch of ifs to elseifs and vice versa. The starting point of this:
Code
function precast(spell,action)
    if spell.type == "WeaponSkill" then
            equipSet = sets.WS
            elseif equipSet[spell.english] then
                equipSet = equipSet[spell.english]
            end
    [...]
    end
end


This code is saying if the spell is a WeaponSkill, then set the variable equipSet = sets.WS. If it is not a WeaponSkill, it will try to index equipSet, which is nil at this point. And since line 4 was changed to an elseif, every statement that follows has been disrupted (nevermind the fact that they have also been edited).

Recopy his file again (http://pastebin.com/bG3yZh61), put your sets back in, and then if you still have an issue, post again.
Offline
Posts: 152
By kithaofcerb 2014-09-29 18:40:31
Link | Quote | Reply
 
Ragnarok.Flippant said: »
kithaofcerb said: »
Bumping for my post, very frustrating not being able to figure it out :(

Where is equipSet defined and why is my lua not recognizing it?

Again, your code is butchered. You're going to have to recopy either Mote's or Bokura's templates (not both into one file), and paste your sets back in.

If you want to understand your issue specifically, you've edited the original control flow of the precast function by changing a whole bunch of ifs to elseifs and vice versa. The starting point of this:
Code
function precast(spell,action)
    if spell.type == "WeaponSkill" then
            equipSet = sets.WS
            elseif equipSet[spell.english] then
                equipSet = equipSet[spell.english]
            end
    [...]
    end
end


This code is saying if the spell is a WeaponSkill, then set the variable equipSet = sets.WS. If it is not a WeaponSkill, it will try to index equipSet, which is nil at this point. And since line 4 was changed to an elseif, every statement that follows has been disrupted (nevermind the fact that they have also been edited).

Recopy his file again (http://pastebin.com/bG3yZh61), put your sets back in, and then if you still have an issue, post again.


Okay I think I understand it

I'm in class at the moment, so I just quickly put something together that if I'm understanding correctly, will fix my problem.
Code
function job_precast(spell, action, spellMap, eventArgs)
      if spell.action_type == 'Magic' then
          equip(sets.precast.DarkMagic)
      elseif spell.type == 'Weaponskill' then
            equipSet = sets.precast.WS
      elseif equipSet[spell.english] then
                  equipSet = equipSet[spell.english]
      end
end



Thank you for your quick response

Edit: I realize I did EXACTLY what you told me I did wrong, and have now changed my lua. Will post again once I get home/get a chance to test it.
 Sylph.Balthamos
Offline
Server: Sylph
Game: FFXI
user: spamjab
Posts: 17
By Sylph.Balthamos 2014-10-03 07:40:53
Link | Quote | Reply
 
Hello all!

I've run into a bit of a problem, I am using Mote's BST.lua and I'm looking for a way to throw a pet at a mob and not engage. I have added...
Code
-- Custom pet modes for engaged gear
state.PetMode = M{['description']='Pet Mode', 'Normal', 'PetTank'}
send_command('bind f8 gs c cycle PetMode')


and...
Code
Send_command('unbind f8')


and my intended gear which i've put in the engaged sets section and looks like...
Code
sets.engaged.PetTank = {main="Astolfo",ammo="Demonry Core",
        head="Anwig Salade",neck="Ferine Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
        body="Ankusa Jackcoat +1",hands="Totemic Gloves +1",ring1="Rajas Ring",ring2="Cho'j Band",
        back="Ferine Mantle",waist="Primal Belt",legs="Ferine Quijotes +2",feet="Ankusa Gaiters +1",sub="Astolfo"}


and I can't seem to get it to work (I've got it set to Pet Tank via F8) anything i'm missing? O_o;
 Cerberus.Ryger
Offline
Server: Cerberus
Game: FFXI
user: ryger
Posts: 22
By Cerberus.Ryger 2014-10-03 22:08:14
Link | Quote | Reply
 
i'm not sure if its been posted alrdy but i'm having problems with something on whm.
i "was" able to use gearswap with marcos but idk what changed on it.
i use marcos for na spells, such as para stona ect. but they dont work anymore. Along with manually typing /ma "Stona" <t> doesnt work. hes my script if anyone can figure my problem out.
-- *** Credit goes to Flippant for helping me with Gearswap *** --
-- ** I Use Some Of Motenten's Functions ** --
-- Last Updated: 05/05/14 12:00 AM ** --

function get_sets()
IdleIndex = 1
IdleArray = {"Movement","Refresh"} -- Default Idle Set Is Movement --
Armor = 'None'
canceled = false
DC = false
Main = 'OFF' -- Set Default Main Weapon ON or OFF Here --
Enmity = 'OFF' -- Set Default Enmity Set ON or OFF Here --
Kiting = 'ON' -- Set Default Sublimation Kiting ON or OFF Here --
ElementalStaff = 'ON' -- Set Default Precast Elemental Staff ON or OFF Here --
target_distance = 5 -- Set Default Distance Here --
select_default_macro_book() -- Change Default Macro Book At The End --

Cure_Spells = {"Cure","Cure II","Cure III","Cure IV","Cure V","Cure VI"} -- Cure Degradation --
Curaga_Spells = {"Curaga","Curaga II","Curaga III","Curaga IV","Curaga V"} -- Curaga Degradation --
Na_Spells = S{"Paralyna","Cursna","Silena","Poisona","Blindna","Viruna","Stona","Erase"} -- For Yagrush --
sc_map = {SC1 = "LightArts", SC2 = "Celerity", SC3 = "Accession"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --

end

function pretarget(spell,action)
if midaction() then
add_to_chat(123, '****** ['..spell.name..' CANCELED] ******')
canceled = true
return
elseif spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
cancel_spell()
send_command('input /item "Echo Drops" <me>')
elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
degrade_spell(spell,Cure_Spells)
elseif spell.english:ifind("Curaga") and player.mp<actualCost(spell.mp_cost) then
degrade_spell(spell,Curaga_Spells)
elseif Na_Spells:contains(spell.english) then -- Auto Divine Caress --
if windower.ffxi.get_ability_recasts()[32] < 1 and (spell.target.type == 'PLAYER' or spell.target.name == player.name) and not buffactive.amnesia and not buffactive.charm and spell.english ~= "Erase" then
cancel_spell()
send_command('DivineCaress;wait 1.7;input /ma "'..spell.english..'" '..spell.target.name)
end
elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
cancel_spell()
send_command('input /ja Addendum: White <me>')
elseif spell.english == "Manifestation" then
cancel_spell()
send_command('input /ja Accession <me>')
elseif spell.english == "Alacrity" then
cancel_spell()
send_command('input /ja Celerity <me>')
elseif spell.english == "Parsimony" then
cancel_spell()
send_command('input /ja Penury <me>')
end
elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
cancel_spell()
send_command('input /ja Addendum: Black <me>')
elseif spell.english == "Accession" then
cancel_spell()
send_command('input /ja Manifestation <me>')
elseif spell.english == "Celerity" then
cancel_spell()
send_command('input /ja Alacrity <me>')
elseif spell.english == "Penury" then
cancel_spell()
send_command('input /ja Parsimony <me>')
end
end
end

function precast(spell,action)
if canceled then
return
elseif spell.action_type == 'Magic' then
if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
cancel_spell()
add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
return
else
if string.find(spell.english,'Cur') and spell.english ~= "Cursna" then
equip(sets.Precast.Cure)
elseif spell.english == "Stoneskin" then
equip(sets.Precast[spell.english])
elseif spell.english == "Impact" then
equip(set_combine(sets.Precast.FastCast,{body="Twilight Cloak"}))
elseif string.find(spell.english,'Utsusemi') then
if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
cancel_spell()
add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
return
else
equip(sets.Precast.FastCast)
end
elseif sets.Precast[spell.skill] then
equip(sets.Precast[spell.skill])
else
equip(sets.Precast.FastCast)
end
end
elseif spell.type == "JobAbility" then
if sets.JA[spell.english] then
equip(sets.JA[spell.english])
end
elseif spell.type == "WeaponSkill" then
if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
cancel_spell()
add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
return
else
if sets.WS[spell.english] then
equip(sets.WS[spell.english])
end
end
elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
cast_delay(0.2)
send_command('cancel Sneak')
end
if sets.Precast[spell.element] and not Na_Spells:contains(spell.english) and ElementalStaff == 'ON' then
equip(sets.Precast[spell.element])
end
if Main == 'ON' then
equip(sets.MainWeapon)
end
end

function midcast(spell,action)
equipSet = {}
if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
equipSet = sets.Midcast
if Na_Spells:contains(spell.english) then
equipSet = equipSet.Na
add_to_chat(158, '************* ['..spell.name..'] ************')
if DC then
equipSet = set_combine(equipSet,sets['Divine Caress'])
end
elseif string.find(spell.english,'Cur') and spell.english ~= "Cursna" then
if string.find(spell.english,'Cure') then
if Enmity == 'ON' then
equipSet = equipSet.Cure.Enmity
else
equipSet = equipSet.Cure
end
elseif string.find(spell.english,'Cura') then
if Enmity == 'ON' then
equipSet = equipSet.Curaga.Enmity
else
equipSet = equipSet.Curaga
end
end
if world.day_element == spell.element or world.weather_element == spell.element then
equipSet = set_combine(equipSet,{back="Twilight Cape",waist="Korin Obi"})
end
elseif spell.english == "Protectra V" then
equipSet = set_combine(equipSet,{feet="Piety Duckbills +1"})
elseif spell.english == "Shellra V" then
equipSet = set_combine(equipSet,{legs="Clr. Pantaln. +2"})
elseif spell.english == "Stoneskin" then
if buffactive.Stoneskin then
send_command('@wait 2.8;cancel stoneskin')
end
equipSet = equipSet.Stoneskin
elseif spell.english == "Sneak" then
if spell.target.name == player.name and buffactive['Sneak'] then
send_command('cancel sneak')
end
equipSet = equipSet.Haste
elseif string.find(spell.english,'Bar') then
equipSet = equipSet.Bar
elseif string.find(spell.english,'Regen') then
equipSet = equipSet.Regen
elseif string.find(spell.english,'Banish') then
equipSet = set_combine(equipSet,{hands="Clr. Mitts +2",ring1="Fenian Ring"})
elseif string.find(spell.english,'Reraise') then
equipSet = equipSet.Haste
elseif string.find(spell.english,'Utsusemi') then
if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
send_command('@wait 1.7;cancel Copy Image*')
end
equipSet = equipSet.Haste
elseif spell.english == 'Monomi: Ichi' then
if buffactive['Sneak'] then
send_command('@wait 1.7;cancel sneak')
end
equipSet = equipSet.Haste
else
if equipSet[spell.english] then
equipSet = equipSet[spell.english]
end
if equipSet[spell.skill] then
equipSet = equipSet[spell.skill]
end
if equipSet[spell.type] then
equipSet = equipSet[spell.type]
end
end
elseif equipSet[spell.english] then
equipSet = equipSet[spell.english]
end
equip(equipSet)
if Main == 'ON' then
equip(sets.MainWeapon)
end
end

function aftercast(spell,action)
if canceled then
canceled = false
return
else
if not spell.interrupted then
if spell.type == "WeaponSkill" then
send_command('wait 0.2;gs c TP')
elseif (spell.english == "Repose" or spell.english == "Sleep II") then -- Repose & 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 == "Banish III" then -- Banish III Countdown --
send_command('wait 35;input /echo Banish Effect: [WEARING OFF IN 10 SEC.]')
end
end
status_change(player.status)
end
end

function status_change(new,old)
if Armor == 'PDT' then
equip(sets.PDT)
elseif buffactive["Sublimation: Activated"] then
equip(sets.Sublimation)
if Kiting == 'ON' then
equip({feet="Herald's Gaiters"})
end
elseif new == 'Engaged' then
equip(sets.Melee)
elseif new == 'Idle' then
equip(sets.Idle[IdleArray[IdleIndex]])
elseif new == 'Resting' then
equip(sets.Resting)
end
if Main == 'ON' then
equip(sets.MainWeapon)
end
end

function buff_change(buff,gain)
buff = string.lower(buff)
if buff == "aftermath: lv.3" then -- AM3 Timer --
if gain then
send_command('timers create "Aftermath: Lv.3" 180 down AM3.png;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
else
send_command('timers delete "Aftermath: Lv.3"')
add_to_chat(123,'AM3: [OFF]')
end
elseif buff == 'divine caress' then
DC = gain
elseif buff == 'weakness' then -- Weakness Timer --
if gain then
send_command('timers create "Weakness" 300 up')
else
send_command('timers delete "Weakness"')
end
end
if not midaction() then
status_change(player.status)
end
end

-- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
function self_command(command)
if command == 'C1' then -- Enmity Toggle --
if Enmity == 'ON' then
Enmity = 'OFF'
add_to_chat(123,'Enmity Set: [OFF]')
else
Enmity = 'ON'
add_to_chat(158,'Enmity Set: [ON]')
end
status_change(player.status)
elseif command == 'C2' then -- Follow Toggle --
send_command('input /ta Bokura;input /lockon;wait .3;setkey numpad8 down;wait .3;setkey numpad7 down;wait .3;setkey numpad7 up;wait .3;setkey numpad8 up')
elseif command == 'C3' then -- Kiting Toggle --
if Kiting == 'ON' then
Kiting = 'OFF'
add_to_chat(123,'Kiting Set: [Unlocked]')
else
Kiting = 'ON'
add_to_chat(158,'Kiting Set: [Locked]')
end
status_change(player.status)
elseif command == 'C5' then -- Auto Update Gear Toggle --
status_change(player.status)
add_to_chat(158,'Auto Update Gear')
elseif command == 'C7' then
if Armor == 'PDT' then -- PDT Toggle --
Armor = 'None'
add_to_chat(123,'PDT Set: [Unlocked]')
else
Armor = 'PDT'
add_to_chat(158,'PDT Set: [Locked]')
end
status_change(player.status)
elseif command == 'C17' then -- Main Weapon Toggle --
if Main == 'ON' then
Main = 'OFF'
add_to_chat(123,'Main Weapon: [Unlocked]')
else
Main = 'ON'
add_to_chat(158,'Main Weapon: [Locked]')
end
status_change(player.status)
elseif command == 'C8' then -- Distance Toggle --
if player.target.distance then
target_distance = math.floor(player.target.distance*10)/10
add_to_chat(158,'Distance: '..target_distance)
else
add_to_chat(123,'No Target Selected')
end
elseif command == 'C6' then -- Idle Toggle
IdleIndex = (IdleIndex % #IdleArray) + 1
add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
status_change(player.status)
elseif command == 'TP' then
add_to_chat(158,'TP Return: '..tostring(player.tp))
elseif command:match('^SC%d$') then
send_command('//' .. sc_map[command])
end
end

function actualCost(originalCost)
if buffactive["Penury"] then
return originalCost*.5
elseif buffactive["Light Arts"] or buffactive["Addendum: White"] then
return originalCost*.9
elseif buffactive["Dark Arts"] or buffactive["Addendum: Black"] then
return originalCost*1.1
else
return originalCost
end
end

function degrade_spell(spell,degrade_array)
spell_index = table.find(degrade_array,spell.name)
if spell_index > 1 then
new_spell = degrade_array[spell_index - 1]
change_spell(new_spell,spell.target.raw)
add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
end
end

function change_spell(spell_name,target)
cancel_spell()
send_command('//'..spell_name..' '..target)
end

function sub_job_change(newSubjob, oldSubjob)
select_default_macro_book()
end

function set_macro_page(set,book)
if not tonumber(set) then
add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
return
end
if set < 1 or set > 10 then
add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
return
end

if book then
if not tonumber(book) then
add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
return
end
if book < 1 or book > 20 then
add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
return
end
send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
else
send_command('@input /macro set '..tostring(set))
end
end

function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'SCH' then
set_macro_page(1, 1)
elseif player.sub_job == 'BLM' then
set_macro_page(1, 1)
elseif player.sub_job == 'RDM' then
set_macro_page(1, 1)
elseif player.sub_job == 'DNC' then
set_macro_page(10, 18)
elseif player.sub_job == 'NIN' then
set_macro_page(5, 18)
else
set_macro_page(1, 18)
end
end
 Sylph.Aeo
Offline
Server: Sylph
Game: FFXI
user: Aeolus
Posts: 22
By Sylph.Aeo 2014-10-04 22:40:48
Link | Quote | Reply
 
This one is killing me...

http://pastebin.com/G295cmEf

My whole precast function doesn't seem to be kicking in at all, I've tried it a bunch of different ways, but it's basically a copy of the one I have for RNG which works just fine. I'm assuming it's some other part of my code where I made a dumb mistake that's causing this part not to work, but I'm very lost. Here's just the precast part:

http://pastebin.com/0uuZLXan

Thanks in advance~
 Bismarck.Inference
Offline
Server: Bismarck
Game: FFXI
user: Inference
Posts: 417
By Bismarck.Inference 2014-10-04 22:47:44
Link | Quote | Reply
 
I believe functions are case sensitive(?), trying changing it to function precast(spell) instead of function Precast.
 Sylph.Aeo
Offline
Server: Sylph
Game: FFXI
user: Aeolus
Posts: 22
By Sylph.Aeo 2014-10-05 01:16:47
Link | Quote | Reply
 
Bismarck.Inference said: »
I believe functions are case sensitive(?), trying changing it to function precast(spell) instead of function Precast.

This totally fixed it. Which I don't get, because my RNG one works with the capital P... I haven't used it in a while though, maybe it changed or something.

Either way, thanks for the help!
 Leviathan.Arcon
VIP
Offline
Server: Leviathan
Game: FFXI
user: Zaphor
Posts: 660
By Leviathan.Arcon 2014-10-05 02:08:28
Link | Quote | Reply
 
It didn't change, not just function names, but variable names as well. The only things that aren't case sensitive are certain in-game names (buff names, item names, things like that), although possibly not all. Case-sensitivity is a typical Lua thing, Byrth and Motenten have to work around the language in all the places that are case-insensitive.
Offline
Posts: 152
By kithaofcerb 2014-10-06 12:16:33
Link | Quote | Reply
 
Hello folks

I'm using Bokura's DRK.lua with all my gearsets in it. It's stable, but changing accuracy tiers doesn't work, as well as the mekira swaps.

Here is the lua
Code
-- *** Credit goes to Flippant for helping me with Gearswap *** --
-- ** I Use Some of Motenten's Functions ** --
-- Last Updated: 05/05/14 12:00 AM ** --

function get_sets()
	AccIndex = 1
	AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For TP/WS/Hybrid/Stun. First Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below. Most of These Sets Are Empty So You Need To Edit Them On Your Own. Remember To Check What The Combined Set Is For Each Sets. --
	WeaponIndex = 1
	WeaponArray = {"Apocalypse", "Senbaak"} 
	IdleIndex = 1
	IdleArray = {"Movement","Regen"} 
	Armor = 'None'
	Twilight = 'None'
	Attack = 'OFF' -- Set Default Attack Set ON or OFF Here --
	Rancor = 'OFF' -- Set Default Rancor ON or OFF Here --
	Mekira = 'ON' -- Set Default Mekira ON or OFF Here --
	Samurai_Roll = 'OFF' -- Set Default SAM Roll ON or OFF Here --
	target_distance = 5 -- Set Default Distance Here --
	

	sc_map = {SC1="Resolution", SC2="LastResort", SC3="Souleater"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --

	sets.Idle = {}
	-- Idle/Town Sets --
	sets.Idle.Regen = {
			ammo="Hagneia Stone",
			head="Twilight Helm",
			neck="Wiglen Gorget",
			ear1="Black Earring",
			ear2="Dawn Earring",
			body="Kumarbi's Akar",
			hands="Cizin Mufflers +1",
			ring1="Sheltered Ring",
			ring2="Paguroidea Ring",
			back="Repulse Mantle",
			waist="Lycopodium Sash",
			legs="Blood Cuisses",
			feet="Huginn Gambieras"}
	sets.Idle.Regen.Senbaak = set_combine(sets.Idle.Regen,{
			main="Senbaak",
			sub="Pole Grip"})
	sets.Idle.Regen.Apocalypse = set_combine(sets.Idle.Regen,{
			main="Apocalypse",
			sub="Pole Grip"})

	sets.Idle.Movement = set_combine(sets.Idle.Regen,{
			head="Otomi Helm",
			neck="Asperity Necklace",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			body="Pak Corselet +1",
			ring1="Patricius Ring",
			ring2="Defending Ring",
			waist="Goading Belt"})
	
	sets.Idle.Movement.Senbaak = set_combine(sets.Idle.Movement,{
			main="Senbaak",
			sub="Pole Grip"})
	sets.Idle.Movement.Apocalypse = set_combine(sets.Idle.Movement,{
			main="Apocalypse",
			sub="Pole Grip"})

	sets.Idle.Refresh = set_combine(sets.Idle.Regen,{
			head="Wivre Hairpin",
			body="Twilight Mail",})
	
	sets.Idle.Refresh.Senbaak = set_combine(sets.Idle.Refresh,{
			main="Senbaak",
			sub="Pole Grip"})
	sets.Idle.Refresh.Apocalypse = set_combine(sets.Idle.Refresh,{
			main="Apocalypse",
			sub="Pole Grip"})

	sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}  
    
end

	-- TP Base Set --
	sets.TP = {}

	sets.TP = {
                        ammo="Hagneia stone",
                        head="Otomi helm",
                        neck="Asperity necklace",
                        ear1="Trux earring",
                        ear2="Brutal earring",
                        body="Xaddi mail",
                        hands="Cizin mufflers +1",
                        ring1="Rajas Ring",
                        ring2="K'ayres ring",
                        back="Atheling mantle",
                        waist="Windbuffet belt",
                        legs="Cizin breeches +1",
                        feet="Xaddi boots"}
						
	-- Senbaak Nagan TP Sets --
	sets.TP.Senbaak = {
			main="Senbaak Nagan",
			sub="Pole Grip",
			ammo="Hagneia Stone",
			head="Otomi Helm",
			neck="Asperity Necklace",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Pak Corselet +1",
			hands="Cizin Mufflers +1",
			ring1="K'ayres Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Goading Belt",
			legs="Ares' Flanchard +1",
			feet="Mikinaak Greaves"}
	sets.TP.Senbaak.MidACC = set_combine(sets.TP.Senbaak,{
			head="Yaoyotl Helm",
			neck="Ziel Charm",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			body="Xaddi Mail",
			hands="Xaddi Gauntlets",
			back="Letalis Mantle",
			legs="Xaddi Cuisses"})
	sets.TP.Senbaak.HighACC = set_combine(sets.TP.Senbaak.MidACC,{
			body="Mes. Haubergeon",
			ring1="Mars's Ring",
			waist="Dynamic Belt +1",
			feet="Xaddi Boots"})

	-- Senbaak(High Haste) TP Sets --
	sets.TP.Senbaak.HighHaste = set_combine(sets.TP.Senbaak,{})
	sets.TP.Senbaak.MidACC.HighHaste = set_combine(sets.TP.Senbaak.HighHaste,{})
	sets.TP.Senbaak.HighACC.HighHaste = set_combine(sets.TP.Senbaak.MidACC.HighHaste,{})

	-- Senbaak(Ionis) TP Sets --
	sets.TP.Senbaak.Ionis = set_combine(sets.TP.Senbaak,{})
	sets.TP.Senbaak.MidACC.Ionis = set_combine(sets.TP.Senbaak.Ionis,{})
	sets.TP.Senbaak.HighACC.Ionis = set_combine(sets.TP.Senbaak.MidACC.Ionis,{})

	-- Senbaak(High Haste + Ionis) TP Sets --
	sets.TP.Senbaak.HighHaste.Ionis = set_combine(sets.TP.Senbaak.HighHaste,{})
	sets.TP.Senbaak.MidACC.HighHaste.Ionis = set_combine(sets.TP.Senbaak.HighHaste.Ionis,{})
	sets.TP.Senbaak.HighACC.HighHaste.Ionis = set_combine(sets.TP.Senbaak.MidACC.HighHaste.Ionis,{})

	-- Senbaak(SAM Roll) TP Sets --
	sets.TP.Senbaak.STP = set_combine(sets.TP.Senbaak,{})
	sets.TP.Senbaak.MidACC.STP = set_combine(sets.TP.Senbaak.MidACC,{})
	sets.TP.Senbaak.HighACC.STP = set_combine(sets.TP.Senbaak.HighACC,{})

	-- Senbaak(High Haste + SAM Roll) TP Sets --
	sets.TP.Senbaak.HighHaste.STP = set_combine(sets.TP.Senbaak.HighHaste,{})
	sets.TP.Senbaak.MidACC.HighHaste.STP = set_combine(sets.TP.Senbaak.MidACC.HighHaste,{})
	sets.TP.Senbaak.HighACC.HighHaste.STP = set_combine(sets.TP.Senbaak.HighACC.HighHaste,{})

	-- Senbaak(Ionis + SAM Roll) TP Sets --
	sets.TP.Senbaak.Ionis.STP = set_combine(sets.TP.Senbaak.Ionis,{})
	sets.TP.Senbaak.MidACC.Ionis.STP = set_combine(sets.TP.Senbaak.MidACC.Ionis,{})
	sets.TP.Senbaak.HighACC.Ionis.STP = set_combine(sets.TP.Senbaak.HighACC.Ionis,{})

	-- Senbaak(High Haste + Ionis + SAM Roll) TP Sets --
	sets.TP.Senbaak.HighHaste.Ionis.STP = set_combine(sets.TP.Senbaak.HighHaste,{})
	sets.TP.Senbaak.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Senbaak.MidACC.HighHaste,{})
	sets.TP.Senbaak.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Senbaak.HighACC.HighHaste,{})

	-- Apocalypse(AM Down) TP Sets --
	sets.TP.Apocalypse = {
			main="Apocalypse",
			sub="Pole Grip",
			ammo="Hagneia Stone",
			head="Otomi Helm",
			neck="Asperity Necklace",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Pak Corselet +1",
			hands="Cizin Mufflers +1",
			ring1="K'ayres Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Goading Belt",
			legs="Ares' Flanchard +1",
			feet="Mikinaak Greaves"}
	sets.TP.Apocalypse.MidACC = set_combine(sets.TP.Apocalypse,{
			head="Yaoyotl Helm",
			neck="Ziel Charm",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			body="Xaddi Mail",
			hands="Xaddi Gauntlets",
			back="Letalis Mantle",
			legs="Xaddi Cuisses"})
	sets.TP.Apocalypse.HighACC = set_combine(sets.TP.Apocalypse.MidACC,{
			body="Mes. Haubergeon",
			ring1="Mars's Ring",
			waist="Dynamic Belt +1",
			feet="Xaddi Boots"})

	-- Apocalypse(AM Up) TP Sets --
	sets.TP.Apocalypse.AM = set_combine(sets.TP.Apocalypse,{})
	sets.TP.Apocalypse.MidACC.AM = set_combine(sets.TP.Apocalypse.AM,{})
	sets.TP.Apocalypse.HighACC.AM = set_combine(sets.TP.Apocalypse.MidACC.AM,{})

	-- Apocalypse(AM Down: High Haste) TP Sets --
	sets.TP.Apocalypse.HighHaste = set_combine(sets.TP.Apocalypse,{})
	sets.TP.Apocalypse.MidACC.HighHaste = set_combine(sets.TP.Apocalypse.HighHaste,{})
	sets.TP.Apocalypse.HighACC.HighHaste = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})

	-- Apocalypse(AM Up: High Haste) TP Sets --
	sets.TP.Apocalypse.AM.HighHaste = set_combine(sets.TP.Apocalypse.AM,{})
	sets.TP.Apocalypse.MidACC.AM.HighHaste = set_combine(sets.TP.Apocalypse.AM.HighHaste,{})
	sets.TP.Apocalypse.HighACC.AM.HighHaste = set_combine(sets.TP.Apocalypse.MidACC.AM.HighHaste,{})

	-- Apocalypse(AM Down: Ionis) TP Sets --
	sets.TP.Apocalypse.Ionis = set_combine(sets.TP.Apocalypse,{})
	sets.TP.Apocalypse.MidACC.Ionis = set_combine(sets.TP.Apocalypse.Ionis,{})
	sets.TP.Apocalypse.HighACC.Ionis = set_combine(sets.TP.Apocalypse.MidACC.Ionis,{})

	-- Apocalypse(AM Up: Ionis) TP Sets --
	sets.TP.Apocalypse.AM.Ionis = set_combine(sets.TP.Apocalypse.AM,{})
	sets.TP.Apocalypse.MidACC.AM.Ionis = set_combine(sets.TP.Apocalypse.AM.Ionis,{})
	sets.TP.Apocalypse.HighACC.AM.Ionis= set_combine(sets.TP.Apocalypse.MidACC.AM.Ionis,{})

	-- Apocalypse(AM Down: High Haste + Ionis) TP Sets --
	sets.TP.Apocalypse.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.HighHaste,{})
	sets.TP.Apocalypse.MidACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.HighHaste.Ionis,{})
	sets.TP.Apocalypse.HighACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.MidACC.HighHaste.Ionis,{})

	-- Apocalypse(AM Up: High Haste + Ionis) TP Sets --
	sets.TP.Apocalypse.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.AM.HighHaste,{})
	sets.TP.Apocalypse.MidACC.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.AM.HighHaste.Ionis,{})
	sets.TP.Apocalypse.HighACC.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.MidACC.AM.HighHaste.Ionis,{})

	-- Apocalypse(AM Down: SAM Roll) TP Sets --
	sets.TP.Apocalypse.STP = set_combine(sets.TP.Apocalypse,{})
	sets.TP.Apocalypse.MidACC.STP = set_combine(sets.TP.Apocalypse.MidACC,{})
	sets.TP.Apocalypse.HighACC.STP = set_combine(sets.TP.Apocalypse.HighACC,{})

	-- Apocalypse(AM Up: SAM Roll) TP Sets --
	sets.TP.Apocalypse.AM.STP = set_combine(sets.TP.Apocalypse.AM,{})
	sets.TP.Apocalypse.MidACC.AM.STP = set_combine(sets.TP.Apocalypse.MidACC.AM,{})
	sets.TP.Apocalypse.HighACC.AM.STP = set_combine(sets.TP.Apocalypse.HighACC.AM,{})

	-- Apocalypse(AM Down: High Haste + SAM Roll) TP Sets --
	sets.TP.Apocalypse.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighHaste,{})
	sets.TP.Apocalypse.MidACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
	sets.TP.Apocalypse.HighACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{})

	-- Apocalypse(AM Up: High Haste + SAM Roll) TP Sets --
	sets.TP.Apocalypse.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighHaste,{})
	sets.TP.Apocalypse.MidACC.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
	sets.TP.Apocalypse.HighACC.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{})

	-- Apocalypse(AM Down: Ionis + SAM Roll) TP Sets --
	sets.TP.Apocalypse.Ionis.STP = set_combine(sets.TP.Apocalypse.Ionis,{})
	sets.TP.Apocalypse.MidACC.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.Ionis,{})
	sets.TP.Apocalypse.HighACC.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.Ionis,{})

	-- Apocalypse(AM Up: Ionis + SAM Roll) TP Sets --
	sets.TP.Apocalypse.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.AM,{})
	sets.TP.Apocalypse.MidACC.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.AM,{})
	sets.TP.Apocalypse.HighACC.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.AM,{})

	-- Apocalypse(AM Down: High Haste + Ionis + SAM Roll) TP Sets --
	sets.TP.Apocalypse.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighHaste,{})
	sets.TP.Apocalypse.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
	sets.TP.Apocalypse.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{})

	-- Apocalypse(AM Up: High Haste + Ionis + SAM Roll) TP Sets --
	sets.TP.Apocalypse.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighHaste,{})
	sets.TP.Apocalypse.MidACC.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
	sets.TP.Apocalypse.HighACC.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{})

	sets.TP.Apocalypse.AM.LastResort = set_combine(sets.TP.Apocalypse,{feet="Fallen's Sollerets"})
	sets.TP.Apocalypse.AM.LastResort.MidACC = set_combine(sets.TP.Apocalypse.MidACC,{feet="Fallen's Sollerets"})
	sets.TP.Apocalypse.AM.LastResort.HighACC = set_combine(sets.TP.Apocalypse.HighACC,{feet="Fallen's Sollerets"})
	
	-- Senbaak /SAM TP Sets --
	sets.TP.Senbaak.SAM = {
			main="Senbaak",
			sub="Pole Grip",
			ammo="Hagneia Stone",
			head="Otomi Helm",
			neck="Asperity Necklace",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Xaddi Mail",
			hands="Cizin Mufflers +1",
			ring1="K'ayres Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Windbuffet Belt",
			legs="Cizin Breeches +1",
			feet="Mikinaak Greaves"}
	sets.TP.Senbaak.SAM.MidACC = set_combine(sets.TP.Senbaak.SAM,{
			head="Yaoyotl Helm",
			neck="Iqabi necklace",
			feet="Xaddi boots",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			hands="Xaddi Gauntlets",
			back="Letalis Mantle",
			legs="Xaddi Cuisses"})
	sets.TP.Senbaak.SAM.HighACC = set_combine(sets.TP.Senbaak.SAM.MidACC,{
			waist="Anguinus Belt"})

	-- Senbaak(High Haste) /SAM TP Sets --
	sets.TP.Senbaak.SAM.HighHaste = set_combine(sets.TP.Senbaak.SAM,{})
	sets.TP.Senbaak.SAM.MidACC.HighHaste = set_combine(sets.TP.Senbaak.SAM.HighHaste,{})
	sets.TP.Senbaak.SAM.HighACC.HighHaste = set_combine(sets.TP.Senbaak.SAM.MidACC.HighHaste,{})

	-- Senbaak(Ionis) /SAM TP Sets --
	sets.TP.Senbaak.SAM.Ionis = set_combine(sets.TP.Senbaak.SAM,{})
	sets.TP.Senbaak.SAM.MidACC.Ionis = set_combine(sets.TP.Senbaak.SAM.Ionis,{})
	sets.TP.Senbaak.SAM.HighACC.Ionis = set_combine(sets.TP.Senbaak.SAM.MidACC.Ionis,{})

	-- Senbaak(High Haste + Ionis) /SAM TP Sets --
	sets.TP.Senbaak.SAM.HighHaste.Ionis = set_combine(sets.TP.Senbaak.SAM.HighHaste,{})
	sets.TP.Senbaak.SAM.MidACC.HighHaste.Ionis = set_combine(sets.TP.Senbaak.SAM.HighHaste.Ionis,{})
	sets.TP.Senbaak.SAM.HighACC.HighHaste.Ionis = set_combine(sets.TP.Senbaak.SAM.MidACC.HighHaste.Ionis,{})

	-- Senbaak(SAM Roll) /SAM TP Sets --
	sets.TP.Senbaak.SAM.STP = set_combine(sets.TP.Senbaak.SAM,{})
	sets.TP.Senbaak.SAM.MidACC.STP = set_combine(sets.TP.Senbaak.SAM.MidACC,{})
	sets.TP.Senbaak.SAM.HighACC.STP = set_combine(sets.TP.Senbaak.SAM.HighACC,{})

	-- Senbaak(High Haste + SAM Roll) /SAM TP Sets --
	sets.TP.Senbaak.SAM.HighHaste.STP = set_combine(sets.TP.Senbaak.SAM.HighHaste,{})
	sets.TP.Senbaak.SAM.MidACC.HighHaste.STP = set_combine(sets.TP.Senbaak.SAM.MidACC.HighHaste,{})
	sets.TP.Senbaak.SAM.HighACC.HighHaste.STP = set_combine(sets.TP.Senbaak.SAM.HighACC.HighHaste,{})

	-- Senbaak(Ionis + SAM Roll) /SAM TP Sets --
	sets.TP.Senbaak.SAM.Ionis.STP = set_combine(sets.TP.Senbaak.SAM.Ionis,{})
	sets.TP.Senbaak.SAM.MidACC.Ionis.STP = set_combine(sets.TP.Senbaak.SAM.MidACC.Ionis,{})
	sets.TP.Senbaak.SAM.HighACC.Ionis.STP = set_combine(sets.TP.Senbaak.SAM.HighACC.Ionis,{})

	-- Senbaak(High Haste + Ionis + SAM Roll) /SAM TP Sets --
	sets.TP.Senbaak.SAM.HighHaste.Ionis.STP = set_combine(sets.TP.Senbaak.SAM.HighHaste,{})
	sets.TP.Senbaak.SAM.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Senbaak.SAM.MidACC.HighHaste,{})
	sets.TP.Senbaak.SAM.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Senbaak.SAM.HighACC.HighHaste,{})

	sets.TP.Senbaak.SAM.LastResort = set_combine(sets.TP.Senbaak.SAM,{feet="Fallen's Sollerets"})
	sets.TP.Senbaak.SAM.LastResort.MidACC = set_combine(sets.TP.Senbaak.SAM.MidACC,{feet="Fallen's Sollerets"})
	sets.TP.Senbaak.SAM.LastResort.HighACC = set_combine(sets.TP.Senbaak.SAM.HighACC,{feet="Fallen's Sollerets"})
	-- Apocalypse(AM Down) /SAM TP Sets --
	sets.TP.Apocalypse.SAM = {
			main="Apocalypse",
			sub="Pole Grip",
			ammo="Hagneia Stone",
			head="Otomi Helm",
			neck="Asperity Necklace",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Xaddi Mail",
			hands="Cizin Mufflers +1",
			ring1="K'ayres Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Windbuffet Belt",
			legs="Cizin Breeches +1",
			feet="Mikinaak Greaves"}
	sets.TP.Apocalypse.SAM.MidACC = set_combine(sets.TP.Apocalypse.SAM,{
			head="Yaoyotl Helm",
			neck="Iqabi Necklace",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			hands="Xaddi Gauntlets",
			back="Letalis Mantle",
			legs="Xaddi Cuisses",
			feet="Xaddi Boots"})
	sets.TP.Apocalypse.SAM.HighACC = set_combine(sets.TP.Apocalypse.SAM.MidACC,{
			body="Mes. Haubergeon",
			ring1="Mars's Ring",
			waist="Anguinus Belt"})

	-- Apocalypse(AM Up) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.AM = set_combine(sets.TP.Apocalypse.SAM,{})
	sets.TP.Apocalypse.SAM.MidACC.AM = set_combine(sets.TP.Apocalypse.SAM.AM,{})
	sets.TP.Apocalypse.SAM.HighACC.AM = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM,{})

	-- Apocalypse(AM Down: High Haste) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.HighHaste = set_combine(sets.TP.Apocalypse.SAM,{})
	sets.TP.Apocalypse.SAM.MidACC.HighHaste = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
	sets.TP.Apocalypse.SAM.HighACC.HighHaste = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})

	-- Apocalypse(AM Up: High Haste) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.AM.HighHaste = set_combine(sets.TP.Apocalypse.SAM.AM,{})
	sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste = set_combine(sets.TP.Apocalypse.SAM.AM.HighHaste,{})
	sets.TP.Apocalypse.SAM.HighACC.AM.HighHaste = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste,{})

	-- Apocalypse(AM Down: Ionis) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.Ionis = set_combine(sets.TP.Apocalypse.SAM,{})
	sets.TP.Apocalypse.SAM.MidACC.Ionis = set_combine(sets.TP.Apocalypse.SAM.Ionis,{})
	sets.TP.Apocalypse.SAM.HighACC.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.Ionis,{})

	-- Apocalypse(AM Up: Ionis) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.AM.Ionis = set_combine(sets.TP.Apocalypse.SAM.AM,{})
	sets.TP.Apocalypse.SAM.MidACC.AM.Ionis = set_combine(sets.TP.Apocalypse.SAM.AM.Ionis,{})
	sets.TP.Apocalypse.SAM.HighACC.AM.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM.Ionis,{})

	-- Apocalypse(AM Down: High Haste + Ionis) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
	sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.HighHaste.Ionis,{})
	sets.TP.Apocalypse.SAM.HighACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis,{})

	-- Apocalypse(AM Up: High Haste + Ionis) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.AM.HighHaste,{})
	sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.AM.HighHaste.Ionis,{})
	sets.TP.Apocalypse.SAM.HighACC.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste.Ionis,{})

	-- Apocalypse(AM Down: SAM Roll) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.STP = set_combine(sets.TP.Apocalypse.SAM,{})
	sets.TP.Apocalypse.SAM.MidACC.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC,{})
	sets.TP.Apocalypse.SAM.HighACC.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC,{})

	-- Apocalypse(AM Up: SAM Roll) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.AM.STP = set_combine(sets.TP.Apocalypse.SAM.AM,{})
	sets.TP.Apocalypse.SAM.MidACC.AM.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM,{})
	sets.TP.Apocalypse.SAM.HighACC.AM.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.AM,{})

	-- Apocalypse(AM Down: High Haste + SAM Roll) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
	sets.TP.Apocalypse.SAM.MidACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
	sets.TP.Apocalypse.SAM.HighACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{})

	-- Apocalypse(AM Up: High Haste + SAM Roll) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
	sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
	sets.TP.Apocalypse.SAM.HighACC.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{})

	-- Apocalypse(AM Down: Ionis + SAM Roll) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.Ionis,{})
	sets.TP.Apocalypse.SAM.MidACC.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.Ionis,{})
	sets.TP.Apocalypse.SAM.HighACC.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.Ionis,{})

	-- Apocalypse(AM Up: Ionis + SAM Roll) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.AM,{})
	sets.TP.Apocalypse.SAM.MidACC.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM,{})
	sets.TP.Apocalypse.SAM.HighACC.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.AM,{})

	-- Apocalypse(AM Down: High Haste + Ionis + SAM Roll) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
	sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
	sets.TP.Apocalypse.SAM.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{})

	-- Apocalypse(AM Up: High Haste + Ionis + SAM Roll) /SAM TP Sets --
	sets.TP.Apocalypse.SAM.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
	sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
	sets.TP.Apocalypse.SAM.HighACC.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{})

	sets.TP.Apocalypse.SAM.LastResort = set_combine(sets.TP.Apocalypse.SAM,{feet="Fallen's Sollerets"})
	sets.TP.Apocalypse.SAM.LastResort.MidACC = set_combine(sets.TP.Apocalypse.SAM,{feet="Fallen's Sollerets"})
	sets.TP.Apocalypse.SAM.LastResort.HighACC = set_combine(sets.TP.Apocalypse.SAM,{feet="Fallen's Sollerets"})
	
	-- AM3 Rancor ON Mantle --
	sets.TP.Rancor = {back="Rancorous Mantle"}

	-- PDT/MDT Sets --
	sets.PDT = {
                            head="Cizin helm",
                            neck="Twilight torque",
                            ear1="Bladeborn earring",
                            ear2="Steelflash earring",
                            body="Cizin mail",
                            hands="Cizin mufflers +1",
                            ring1="Dark ring",
                            ring2="Dark ring",
                            back="Repulse mantle",
                            waist="Windbuffet belt",
                            legs="Cizin breeches +1",
                            feet="Cizin greaves"}
							
	sets.MDT = set_combine(sets.PDT,{
			ammo="Demonry Stone",
			head="Laeradr Helm",
			ear1="Merman's Earring",
			ear2="Sanare Earring",
			body="Nocturnus Mail",
			ring1="Shadow Ring",
			back="Engulfer Cape",
			waist="Resolute Belt"})

	-- Hybrid Set --
	sets.TP.Hybrid = set_combine(sets.PDT,{
			head="Yaoyotl Helm",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			body="Pak Corselet +1",
			waist="Goading Belt",
			feet="Whirlpool Greaves"})
	sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
	sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})

	-- WS Base Set --
	sets.WS = {}

	sets.WS = {
                           ammo = "Aqreaq bomblet",
                           head = "Yaoyotl helm",
                           neck = "Iqabi necklace",
                           ear1 = "Trux Earring",
                           ear2 = "Brutal Earring",
                           body = "Ignominy Cuirass +1",
                           hands = "Ignominy Gauntlets",
                           ring1 = "Rajas Ring",
                           ring2 = "K'ayres Ring",
                           back = "Atheling Mantle",
                           waist = "Windbuffet belt",
                           legs = "Ignominy Flanchard +1",
                           feet = "Fallen's Sollerets"}
        
        
	-- Resolution Sets --
	sets.WS.Resolution = {
			ammo="Aqreqaq Bomblet",
			head="Otomi Helm",
			neck="Soil Gorget",
			ear1="Moonshade Earring",
			ear2="Brutal Earring",
			body="Igno. Cuirass +1",
			hands="Miki. Gauntlets",
			ring1="Pyrosoul Ring",
			ring2="Pyrosoul Ring",
			back="Atheling Mantle",
			waist="Soil Belt",
			legs="Igno. Flan. +1",
			feet="Mikinaak Greaves"}
	sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{
			head="Yaoyotl Helm",
			feet="Whirlpool Greaves"})
	sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{
			legs="Miki. Cuisses"})

	-- Resolution(Attack) Set --
	sets.WS.Resolution.ATT = set_combine(sets.WS.Resolution,{})

	-- Catastrophe Sets --
	sets.WS.Catastrophe = {
			ammo="Bomb Core",
			head="Otomi Helm",
			neck="Soil Gorget",
			ear1="Steelflash Earring",
			ear2="Bladeborn Earring",
			body="Phorcys Korazin",
			hands="Miki. Gauntlets",
			ring1="Spiral Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Soil Belt",
			legs="Igno. Flan. +1",
			feet="Fallen's Sollerets"}
	sets.WS.Catastrophe.MidACC = set_combine(sets.WS.Catastrophe,{
			head="Yaoyotl Helm",
			feet="Whirlpool Greaves"})
	sets.WS.Catastrophe.HighACC = set_combine(sets.WS.Catastrophe.MidACC,{
			body="Ignominy Cuirass +1",
			back="Letalis Mantle"})

	-- Catastrophe(Attack) Set --
	sets.WS.Catastrophe.ATT = set_combine(sets.WS.Catastrophe,{})

	-- Entropy Sets --
	sets.WS.Entropy = {
			ammo="Bomb Core",
			head="Otomi Helm",
			neck="Soil Gorget",
			ear1="Trux Earring",
			ear2="Brutal Earring",
			body="Igno. Cuirass +1",
			hands="Miki. Gauntlets",
			ring1="Spiral Ring",
			ring2="Rajas Ring",
			back="Atheling Mantle",
			waist="Soil Belt",
			legs="Igno. Flan. +1",
			feet="Mikinaak Greaves"}
	sets.WS.Entropy.MidACC = set_combine(sets.WS.Entropy,{
			head="Yaoyotl Helm",
			feet="Whirlpool Greaves"})
	sets.WS.Entropy.HighACC = set_combine(sets.WS.Entropy.MidACC,{body="Xaddi Mail",ear1="Steelflash Earring",ear2="Bladeborn Earring",back="Letalis Mantle"})

	-- Entropy(Attack) Set --
	sets.WS.Entropy.ATT = set_combine(sets.WS.Entropy,{})


	-- JA Sets --
	sets.JA = {}
	sets.JA["Blood Weapon"] = {body="Fallen's Cuirass"}
	sets.JA["Diabolic Eye"] = {hands="Fall. Fin. Gaunt."}
	sets.JA["Nether Void"] = {legs="Bale Flanchard +2"}
	sets.JA["Arcane Circle"] = {feet="Igno. Sollerets +1"}
	sets.JA["Last Resort"] = {feet="Fall. Sollerets"}


	sets.Precast = {}
	-- Fastcast Set --
	sets.Precast.FastCast = {
			ammo="Impatiens",
			neck="Orunmila's Torque",
			ear1="Loquac. Earring",
			ring1="Prolix Ring"}

	-- Precast Dark Magic --
	sets.Precast['Dark Magic'] = set_combine(sets.Precast.FastCast,{head="Fall. Burgeonet"})

	-- Midcast Base Set --
	sets.Midcast = {}

	-- Magic Haste Set --
	sets.Midcast.Haste = set_combine(sets.PDT,{})

	-- Dark Magic Set --
	sets.Midcast['Dark Magic'] = {
			head="Igno. Burgeonet",
			neck="Dark Torque",
			ear1="Pensee Earring",
			ear2="Dark Earring",
			body="Demon's Harness",
			hands="Fall. Fin. Gaunt.",
			ring1="Archon Ring",
			ring2="Sangoma Ring",
			back="Merciful Cape",
			waist="Casso Sash",
			legs="Bale Flanchard +2",
			feet="Scamp's Sollerets"}

	-- Stun Sets --
	sets.Midcast.Stun = set_combine(sets.Midcast['Dark Magic'],{})
	sets.Midcast.Stun.MidACC = set_combine(sets.Midcast.Stun,{})
	sets.Midcast.Stun.HighACC = set_combine(sets.Midcast.Stun.MidACC,{})

	-- Endark Set --
	sets.Midcast.Endark = set_combine(sets.Midcast['Dark Magic'],{})

	-- Enfeebling Magic Set --
	sets.Midcast['Enfeebling Magic'] = {body="Igno. Cuirass +1"}

	-- Elemental Magic Set --
	sets.Midcast['Elemental Magic'] = {}

	-- Dread Spikes Set --
	sets.Midcast['Dread Spikes'] = {
                                ammo="Aqreaq bomblet",
                                head="Ganesha's Mask",
                                body="Bale Cuirass +2",
                                hands="Cizin Mufflers +1",
                                ring1="Rajas Ring",
                                ring2="K'ayres Ring",
                                legs="Cizin breeches +1",
                                feet="Xaddi Boots"}

function pretarget(spell,action)
	if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
		cancel_spell()
		send_command('input /item "Echo Drops" <me>')
	elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
		cancel_spell()
		send_command('Aggressor')
	elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
		cancel_spell()
		send_command('ThirdEye')
	elseif spell.english == "Meditate" and player.tp > 290 then -- Cancel Meditate If TP Is Above 290 --
		cancel_spell()
		add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
	elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
		cancel_spell()
		add_to_chat(123, spell.name..' Canceled: [Out of Range]')
		return
	elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
		if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
			cancel_spell()
			send_command('input /ja Addendum: White <me>')
		elseif spell.english == "Manifestation" then
			cancel_spell()
			send_command('input /ja Accession <me>')
		elseif spell.english == "Alacrity" then
			cancel_spell()
			send_command('input /ja Celerity <me>')
		elseif spell.english == "Parsimony" then
			cancel_spell()
			send_command('input /ja Penury <me>')
		end
	elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
		if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
			cancel_spell()
			send_command('input /ja Addendum: Black <me>')
		elseif spell.english == "Accession" then
			cancel_spell()
			send_command('input /ja Manifestation <me>')
		elseif spell.english == "Celerity" then
			cancel_spell()
			send_command('input /ja Alacrity <me>')
		elseif spell.english == "Penury" then
			cancel_spell()
			send_command('input /ja Parsimony <me>')
		end
	end
end

function precast(spell,action)
	if spell.type == "WeaponSkill" then
		if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
			cancel_spell()
			add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
			return
		else
			equipSet = sets.WS
			if equipSet[spell.english] then
				equipSet = equipSet[spell.english]
			end
			if Attack == 'ON' then
				equipSet = equipSet["ATT"]
			end
			if equipSet[AccArray[AccIndex]] then
				equipSet = equipSet[AccArray[AccIndex]]
			end
			if spell.english == "Catastrophe" and (world.day_element == 'Dark' or world.day_element == 'Earth') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Darksday or Earthsday --
				equipSet = set_combine(equipSet,{head="Mekira-oto +1"})
			end
			if spell.english == "Resolution" or spell.english == "Entropy" then
				if spell.english == "Resolution" and (world.day_element == 'Thunder' or world.day_element == 'Wind' or world.day_element == 'Earth') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Lightningday or Windsday or Earthsday --
					equipSet = set_combine(equipSet,{head="Mekira-oto +1"})
				elseif spell.english == "Entropy" and (world.day_element == 'Dark' or world.day_element == 'Earth' or world.day_element == 'Water') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Darksday or Earthsday or Watersday --
					equipSet = set_combine(equipSet,{head="Mekira-oto +1"})
				end
				if player.tp > 299 or buffactive.Sekkanoki then -- Equip Bale Earring When You Have 300 TP or Sekkanoki --
					equipSet = set_combine(equipSet,{ear1="Bale Earring"})
				end
			end
			equip(equipSet)
		end
	elseif spell.type == "JobAbility" then
		if sets.JA[spell.english] then
			equip(sets.JA[spell.english])
		end
	elseif spell.action_type == 'Magic' then
		if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
			cancel_spell()
			add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
			return
		else
			if spell.english == "Stun" then
				if buffactive.Hasso or buffactive.Seigan then -- Cancel Hasso or Seigan When You Use Stun --
					cast_delay(0.2)
					send_command('cancel Hasso,Seigan')
				end
				equip(sets.Precast.FastCast)
			elseif string.find(spell.english,'Utsusemi') then
				if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
					cancel_spell()
					add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
					return
				else
					equip(sets.Precast.FastCast)
				end
			elseif sets.Precast[spell.skill] then
				equip(sets.Precast[spell.skill])
			else
				equip(sets.Precast.FastCast)
			end
		end
	elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
		cast_delay(0.2)
		send_command('cancel Sneak')
	end
	if Twilight == 'Twilight' then
		equip(sets.Twilight)
	end
end

function midcast(spell,action)
	equipSet = {}
	if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
		equipSet = sets.Midcast
		if string.find(spell.english,'Absorb') then
			if buffactive["Dark Seal"] then -- Equip Aug'd Abs. Burgeonet +2 When You Have Dark Seal Up --
				equipSet = set_combine(equipSet,{head="Abs. Burgeonet +2"})
			end
		elseif string.find(spell.english,'Drain') or string.find(spell.english,'Aspir') or string.find(spell.english,'Bio') then
			if world.day == "Darksday" or world.weather_element == "Dark" then -- Equip Anrin Obi On Darksday or Dark Weather --
				equipSet = set_combine(equipSet,{waist="Anrin Obi"})
			end
		elseif spell.english == "Stoneskin" then
			if buffactive.Stoneskin then
				send_command('@wait 1.7;cancel stoneskin')
			end
			equipSet = equipSet.Stoneskin
		elseif spell.english == "Sneak" then
			if spell.target.name == player.name and buffactive['Sneak'] then
				send_command('cancel sneak')
			end
			equipSet = equipSet.Haste
		elseif string.find(spell.english,'Utsusemi') then
			if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
				send_command('@wait 1.7;cancel Copy Image*')
			end
			equipSet = equipSet.Haste
		elseif spell.english == 'Monomi: Ichi' then
			if buffactive['Sneak'] then
				send_command('@wait 1.7;cancel sneak')
			end
			equipSet = equipSet.Haste
		else
			if equipSet[spell.english] then
				equipSet = equipSet[spell.english]
			end
			if equipSet[AccArray[AccIndex]] then
				equipSet = equipSet[AccArray[AccIndex]]
			end
			if equipSet[spell.skill] then
				equipSet = equipSet[spell.skill]
			end
			if equipSet[spell.type] then
				equipSet = equipSet[spell.type]
			end
		end
	elseif equipSet[spell.english] then
		equipSet = equipSet[spell.english]
	end
	equip(equipSet)
end

function aftercast(spell,action)
	if not spell.interrupted then
		if spell.type == "WeaponSkill" then
			send_command('wait 0.2;gs c TP')
		elseif spell.english == "Arcane Circle" then -- Arcane Circle Countdown --
			send_command('wait 260;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
		elseif spell.english == "Sleep 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" then -- Sleep 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.]')
		end
	end
	status_change(player.status)
end

function status_change(new,old)
	if Armor == 'PDT' then
		equip(sets.PDT)
	elseif Armor == 'MDT' then
		equip(sets.MDT)
	elseif new == 'Engaged' then
		equipSet = sets.TP
		if Armor == 'Hybrid' and equipSet["Hybrid"] then
			equipSet = equipSet["Hybrid"]
		end
		if equipSet[WeaponArray[WeaponIndex]] then
			equipSet = equipSet[WeaponArray[WeaponIndex]]
		end
		if equipSet[player.sub_job] then
			equipSet = equipSet[player.sub_job]
		end
		if equipSet[AccArray[AccIndex]] then
			equipSet = equipSet[AccArray[AccIndex]]
		end
		if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
			if Rancor == 'ON' then -- Default Rancor Toggle Is Rancorous Mantle --
				equipSet = set_combine(equipSet["AM3"],sets.TP.Rancor)
			else -- Use Rancor Toggle For Atheling Mantle --
				equipSet = equipSet["AM3"]
			end
		end
		if buffactive["Last Resort"] then
		equipSet = equipSet['LastResort']
		end
		if buffactive.Aftermath and equipSet["AM"] then
			equipSet = equipSet["AM"]
		end
		if buffactive["Last Resort"] and buffactive.March == 2 and (buffactive.Haste or buffactive.Embrava) and equipSet["HighHaste"] then
			equipSet = equipSet["HighHaste"]
		end
		
		
		if buffactive.Ionis and equipSet["Ionis"] then
			equipSet = equipSet["Ionis"]
		end
		
		equip(equipSet)
	else
		equipSet = sets.Idle
		if equipSet[IdleArray[IdleIndex]] then
			equipSet = equipSet[IdleArray[IdleIndex]]
		end
		if equipSet[WeaponArray[WeaponIndex]] then
			equipSet = equipSet[WeaponArray[WeaponIndex]]
		end
		equip(equipSet)
	end
	if Twilight == 'Twilight' then
		equip(sets.Twilight)
	end
end


-- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
function self_command(command)
	if command == 'ACC' then -- Accuracy Level Toggle --
		AccIndex = (AccIndex % #AccArray) + 1
		status_change(player.status)
		add_to_chat(158,'Accuracy Level: '..AccArray[AccIndex])
	elseif command == 'WEP' then -- Main Weapon Toggle --
		WeaponIndex = (WeaponIndex % #WeaponArray) + 1
		add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
		status_change(player.status)
	elseif command == 'Update' then -- Auto Update Gear Toggle --
		status_change(player.status)
		add_to_chat(158,'Auto Update Gear')
	elseif command == 'Hybrid' then -- Hybrid Toggle --
		if Armor == 'Hybrid' then
			Armor = 'None'
			add_to_chat(123,'Hybrid Set: [Unlocked]')
		else
			Armor = 'Hybrid'
			add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
		end
		status_change(player.status)
	elseif command == 'PDT' then -- PDT Toggle --
		if Armor == 'PDT' then
			Armor = 'None'
			add_to_chat(123,'PDT Set: [Unlocked]')
		else
			Armor = 'PDT'
			add_to_chat(158,'PDT Set: [Locked]')
		end
		status_change(player.status)
	elseif command == 'MDT' then -- MDT Toggle --
		if Armor == 'MDT' then
			Armor = 'None'
			add_to_chat(123,'MDT Set: [Unlocked]')
		else
			Armor = 'MDT'
			add_to_chat(158,'MDT Set: [Locked]')
		end
		status_change(player.status)
	elseif command == 'Rancor' then -- Rancor Toggle --
		if Rancor == 'ON' then
			Rancor = 'OFF'
			add_to_chat(123,'Rancor: [OFF]')
		else
			Rancor = 'ON'
			add_to_chat(158,'Rancor: [ON]')
		end
		status_change(player.status)
	elseif command == 'ATK' then -- Attack Toggle --
		if Attack == 'ON' then
			Attack = 'OFF'
			add_to_chat(123,'Attack: [OFF]')
		else
			Attack = 'On'
			add_to_chat(158,'Attack: [ON]')
		end
		status_change(player.status)
	elseif command == 'Mekira' then -- Mekira Toggle --
		if Mekira == 'ON' then
			Mekira = 'OFF'
			add_to_chat(123,'Mekira: [OFF]')
		else
			Mekira = 'ON'
			add_to_chat(158,'Mekira: [ON]')
		end
		status_change(player.status)
	elseif command == 'Twilight' then -- Twilight Toggle --
		if Twilight == 'Twilight' then
			Twilight = 'None'
			add_to_chat(123,'Twilight Set: [Unlocked]')
		else
			Twilight = 'Twilight'
			add_to_chat(158,'Twilight Set: [locked]')
		end
		status_change(player.status)
	elseif command == 'C8' then -- Distance Toggle --
		if player.target.distance then
			target_distance = math.floor(player.target.distance*10)/10
			add_to_chat(158,'Distance: '..target_distance)
		else
			add_to_chat(123,'No Target Selected')
		end
	elseif command == 'Idle' then -- Idle Toggle --
		IdleIndex = (IdleIndex % #IdleArray) + 1
		status_change(player.status)
		add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
	elseif command == 'TP' then
		add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
	elseif command:match('^SC%d$') then
		send_command('//' .. sc_map[command])
	end
end




edit: How can I make it actually change acc/weapon tiers for me, and how can I get mekira to swap in when needed?

edit2:So I'm quite confused now. It tells me "Accuracy Level:X" but doesn't actually change any gear. Does the same thing with Mekira, in that it tells me its going to switch it in but doesn't actually change the WS set. Anybody have ideas as to why this isn't working?
 Cerberus.Abrogative
Offline
Server: Cerberus
Game: FFXI
Posts: 4
By Cerberus.Abrogative 2014-10-07 14:38:55
Link | Quote | Reply
 
Hey, I wanted to ask some questions about augments. Last couple weeks I have been acclimating myself to GearSwap and learning to get away from Spellcast. So far it works wonderfully and I love the improved midcast timing - truly a marked difference. But for augments I am still not able to get consistent results in my own testing. I use "//gs showswaps" to verify which swaps are taking place and I use "//gs export" to get the exact names/characters to paste into my file. I am not getting any errors, either. But I guess I am not sure what behavior to look for. Here is what I have, and then my questions.

On BLM on my mule I have 2 sets of Hagendes. One is all MAB and one is all MACC. I want to specify the MAB set for elemental magic in one casting mode, and the MACC set in another casting mode. I use Motenten's base files and I am pretty sure it is all set up correctly. However, showswaps does not list the augments of swapped pieces and I can't see what I was wearing in midcast after casting. I do know that if I intend to equip the MAB body, but I store it, the macro will equip the MACC body even though that body is not specified in the code.

So, is it just equipping the first Hagondes coat it finds or is it putting on the MACC one ONLY because the correct one is not there? Is there a way I can verify that I am getting the right piece equipped every single time? Thanks for any light you can shed on this.

I posted this in the wrong place initially, and reposted it here. Here is my MAB set as well:
 
Offline
Posts:
By 2014-10-07 21:24:32
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 
Offline
Posts:
By 2014-10-07 21:55:25
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
Offline
Posts: 152
By kithaofcerb 2014-10-07 22:12:42
Link | Quote | Reply
 
So I have since got my entire DRK.Lua working, except for Accuracy tier changes responding and actually changing gear and getting Mekira to swap in when necessary.
Everything involving Accindex is unchanged from Bokura's Lua, only the sets have been changed to have my items in them. Is there something I'm missing? Here is the all the lines of code that I believe apply to what I'm talking about
Code
function precast(spell,action)
        if spell.type == "WeaponSkill" then
                if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
                        cancel_spell()
                        add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
                        return
                else
                        equipSet = sets.WS
                        if equipSet[spell.english] then
                                equipSet = equipSet[spell.english]
                        end
                        if Attack == 'ON' then
                                equipSet = equipSet["ATT"]
                        end
                        if equipSet[AccArray[AccIndex]] then
                                equipSet = equipSet[AccArray[AccIndex]]
                        end
                        if spell.english == "Catastrophe" and (world.day_element == 'Dark' or world.day_element == 'Earth') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Darksday or Earthsday --
                                equipSet = set_combine(equipSet,{head="Mekira-oto +1"})
                        end
                        if spell.english == "Resolution" or spell.english == "Entropy" then
                                if spell.english == "Resolution" and (world.day_element == 'Thunder' or world.day_element == 'Wind' or world.day_element == 'Earth') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Lightningday or Windsday or Earthsday --
                                        equipSet = set_combine(equipSet,{head="Mekira-oto +1"})
                                elseif spell.english == "Entropy" and (world.day_element == 'Dark' or world.day_element == 'Earth' or world.day_element == 'Water') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Darksday or Earthsday or Watersday --
                                        equipSet = set_combine(equipSet,{head="Mekira-oto +1"})
                                end
                                if player.tp > 299 or buffactive.Sekkanoki then -- Equip Bale Earring When You Have 300 TP or Sekkanoki --
                                        equipSet = set_combine(equipSet,{ear1="Bale Earring"})
                                end
                        end
                        equip(equipSet)
                end
        elseif spell.type == "JobAbility" then
                if sets.JA[spell.english] then
                        equip(sets.JA[spell.english])
                end
        elseif spell.action_type == 'Magic' then
                if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
                        cancel_spell()
                        add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
                        return
                else
                        if spell.english == "Stun" then
                                if buffactive.Hasso or buffactive.Seigan then -- Cancel Hasso or Seigan When You Use Stun --
                                        cast_delay(0.2)
                                        send_command('cancel Hasso,Seigan')
                                end
                                equip(sets.Precast.FastCast)
                        elseif string.find(spell.english,'Utsusemi') then
                                if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
                                        cancel_spell()
                                        add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
                                        return
                                else
                                        equip(sets.Precast.FastCast)
                                end
                        elseif sets.Precast[spell.skill] then
                                equip(sets.Precast[spell.skill])
                        else
                                equip(sets.Precast.FastCast)
                        end
                end
        elseif spell.type == "Waltz" then
                refine_waltz(spell,action)
                equip(sets.Waltz)
        elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
                cast_delay(0.2)
                send_command('cancel Sneak')
        end
        if Twilight == 'Twilight' then
                equip(sets.Twilight)
        end
end

function midcast(spell,action)
        equipSet = {}
        if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
                equipSet = sets.Midcast
                if string.find(spell.english,'Absorb') then
                        if buffactive["Dark Seal"] then -- Equip Aug'd Abs. Burgeonet +2 When You Have Dark Seal Up --
                                equipSet = set_combine(equipSet,{head="Abs. Burgeonet +2"})
                        end
                elseif string.find(spell.english,'Drain') or string.find(spell.english,'Aspir') or string.find(spell.english,'Bio') then
                        if world.day == "Darksday" or world.weather_element == "Dark" then -- Equip Anrin Obi On Darksday or Dark Weather --
                                equipSet = set_combine(equipSet,{waist="Anrin Obi"})
                        end
                elseif spell.english == "Stoneskin" then
                        if buffactive.Stoneskin then
                                send_command('@wait 1.7;cancel stoneskin')
                        end
                        equipSet = equipSet.Stoneskin
                elseif spell.english == "Sneak" then
                        if spell.target.name == player.name and buffactive['Sneak'] then
                                send_command('cancel sneak')
                        end
                        equipSet = equipSet.Haste
                elseif string.find(spell.english,'Utsusemi') then
                        if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
                                send_command('@wait 1.7;cancel Copy Image*')
                        end
                        equipSet = equipSet.Haste
                elseif spell.english == 'Monomi: Ichi' then
                        if buffactive['Sneak'] then
                                send_command('@wait 1.7;cancel sneak')
                        end
                        equipSet = equipSet.Haste
                else
                        if equipSet[spell.english] then
                                equipSet = equipSet[spell.english]
                        end
                        if equipSet[AccArray[AccIndex]] then
                                equipSet = equipSet[AccArray[AccIndex]]
                        end
                        if equipSet[spell.skill] then
                                equipSet = equipSet[spell.skill]
                        end
                        if equipSet[spell.type] then
                                equipSet = equipSet[spell.type]
                        end
                end
        elseif equipSet[spell.english] then
                equipSet = equipSet[spell.english]
        end
        equip(equipSet)
end

function status_change(new,old)
        if Armor == 'PDT' then
                equip(sets.PDT)
        elseif Armor == 'MDT' then
                equip(sets.MDT)
        elseif new == 'Engaged' then
                equipSet = sets.TP
                if Armor == 'Hybrid' and equipSet["Hybrid"] then
                        equipSet = equipSet["Hybrid"]
                end
                if equipSet[WeaponArray[WeaponIndex]] then
                        equipSet = equipSet[WeaponArray[WeaponIndex]]
                end
                if equipSet[player.sub_job] then
                        equipSet = equipSet[player.sub_job]
                end
                if equipSet[AccArray[AccIndex]] then
                        equipSet = equipSet[AccArray[AccIndex]]
                end
                if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
                        if Rancor == 'ON' then -- Default Rancor Toggle Is Rancorous Mantle --
                                equipSet = set_combine(equipSet["AM3"],sets.TP.Rancor)
                        else -- Use Rancor Toggle For Atheling Mantle --
                                equipSet = equipSet["AM3"]
                        end
                end
                if buffactive.Aftermath and equipSet["AM"] then
                        equipSet = equipSet["AM"]
                end
                if buffactive["Last Resort"] and buffactive.March == 2 and (buffactive.Haste or buffactive.Embrava) and equipSet["HighHaste"] then
                        equipSet = equipSet["HighHaste"]
                end
                if buffactive.Ionis and equipSet["Ionis"] then
                        equipSet = equipSet["Ionis"]
                end
                if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then
                        equipSet = equipSet["STP"]
                end
                equip(equipSet)
        else
                equipSet = sets.Idle
                if equipSet[IdleArray[IdleIndex]] then
                        equipSet = equipSet[IdleArray[IdleIndex]]
                end
                if equipSet[WeaponArray[WeaponIndex]] then
                        equipSet = equipSet[WeaponArray[WeaponIndex]]
                end
                equip(equipSet)
        end
        if Twilight == 'Twilight' then
                equip(sets.Twilight)
        end
end
 Cerberus.Abrogative
Offline
Server: Cerberus
Game: FFXI
Posts: 4
By Cerberus.Abrogative 2014-10-07 22:54:29
Link | Quote | Reply
 
That just looks like declaring a variable at the top, storing the augmented piece in it then calling it in sets. Which is the same thing essentially. Is there a reason that it has to be stored in a variable instead of how I have it?
 Ragnarok.Flippant
Offline
Server: Ragnarok
Game: FFXI
user: Enceladus
Posts: 658
By Ragnarok.Flippant 2014-10-07 22:59:55
Link | Quote | Reply
 
kithaofcerb said: »
So I have since got my entire DRK.Lua working, except for Accuracy tier changes responding and actually changing gear and getting Mekira to swap in when necessary.
Everything involving Accindex is unchanged from Bokura's Lua, only the sets have been changed to have my items in them. Is there something I'm missing?

You cut off your get_sets() function early. Move the end from line 77 to line 648.

Cerberus.Abrogative said: »
Hey, I wanted to ask some questions about augments. Last couple weeks I have been acclimating myself to GearSwap and learning to get away from Spellcast. So far it works wonderfully and I love the improved midcast timing - truly a marked difference. But for augments I am still not able to get consistent results in my own testing. I use "//gs showswaps" to verify which swaps are taking place and I use "//gs export" to get the exact names/characters to paste into my file. I am not getting any errors, either. But I guess I am not sure what behavior to look for. Here is what I have, and then my questions.

On BLM on my mule I have 2 sets of Hagendes. One is all MAB and one is all MACC. I want to specify the MAB set for elemental magic in one casting mode, and the MACC set in another casting mode. I use Motenten's base files and I am pretty sure it is all set up correctly. However, showswaps does not list the augments of swapped pieces and I can't see what I was wearing in midcast after casting. I do know that if I intend to equip the MAB body, but I store it, the macro will equip the MACC body even though that body is not specified in the code.

So, is it just equipping the first Hagondes coat it finds or is it putting on the MACC one ONLY because the correct one is not there? Is there a way I can verify that I am getting the right piece equipped every single time? Thanks for any light you can shed on this.

I posted this in the wrong place initially, and reposted it here. Here is my MAB set as well:

If you want to test if it's working properly, use them in idle/resting sets and change out a couple times. Personally, I go with the bag="wardrobe" or bag="inventory" route just to not have to bother with it.

eslim said: »
can anyone make this AM3 timer work (mote's gearswap) plz :<
Code
-- AM3 Timer
function job_buff_change(buff, gain)
	if buff == 'aftermath' then
		if gain then
			send_command('timers create "Aftermath: Lv.3" 180 down')
			add_to_chat(122, 'AFTERMATH ACHIEVED;wait 160;AFTERMATH DOWN IN 20;wait 10;AFTERMATH DOWN IN 10')
		else
			send_command('timers delete "Aftermath: Lv.3"')
			add_to_chat(122, 'AFTERMATH DOWN')
		end
	end
end

Aftermath buff is for relic AM, Mythic's AM3 is "aftermath: lv.3"


Edit:

Cerberus.Abrogative said: »
That just looks like declaring a variable at the top, storing the augmented piece in it then calling it in sets. Which is the same thing essentially. Is there a reason that it has to be stored in a variable instead of how I have it?

No, but it's useful if you want to use them in multiple spots.
[+]
 
Offline
Posts:
By 2014-10-07 23:00:35
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 
Offline
Posts:
By 2014-10-07 23:15:31
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 Ragnarok.Flippant
Offline
Server: Ragnarok
Game: FFXI
user: Enceladus
Posts: 658
By Ragnarok.Flippant 2014-10-07 23:57:07
Link | Quote | Reply
 
I'm not sure how Mote handles the buff string--if he hasn't done anything to it, then it needs to be "Aftermath: Lv.3", but if that still doesn't work, you can put print(buff) in there and see what it says in console when you activate AM3.
First Page 2 3 ... 34 35 36 ... 180 181 182
Log in to post.