Gearswap Support Thread |
||
Gearswap Support Thread
Ragnarok.Martel
Offline
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)
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. Got a few question.
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 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"}) 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. 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. 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 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 ;( 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. @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. 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? 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. 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. 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; 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 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~ I believe functions are case sensitive(?), trying changing it to function precast(spell) instead of function Precast.
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! 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.
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
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: 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
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?
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. 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.
|
||
All FFXI content and images © 2002-2024 SQUARE ENIX CO., LTD. FINAL
FANTASY is a registered trademark of Square Enix Co., Ltd.
|