|
RUN lua
Quetzalcoatl.Guthrie
サーバ: Quetzalcoatl
Game: FFXI
Posts: 80
By Quetzalcoatl.Guthrie 2014-09-06 01:11:26
does anyone have a working Rune Fencer .lua that works off of Mote's includes etc.?
Thanks in advance!
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2014-09-06 01:30:08
I just started formulating an interesting tidbit of code you might be interested in. I'm consulting the community on fine-tuning it in the Gearswap Support Thread, so keep an eye out there for it. It automatically re-equips runes after expending them. :)
Quetzalcoatl.Guthrie
サーバ: Quetzalcoatl
Game: FFXI
Posts: 80
By Quetzalcoatl.Guthrie 2014-09-06 01:36:03
I will! I had one that looked promising and it just keeps coming up with errors. Every time I fix one three more pop-up :(.
I appreciate the info!
サーバ: Odin
Game: FFXI
Posts: 170
By Odin.Quixacotl 2014-09-10 09:22:25
Obviously this lua isn't based on Motes but hey it works... and for me it does everything I can ask for. I'm sure you can find something here that you can incorporate into his templates and anyone is welcome to edit however way that suits them.
Nothing at all against Motes I think he's a fricken genius. I'm just a firm believer in keeping things simple and I abhor keybinds and wince at sidecars. But that's me.
http://pastebin.com/vNpX7Wus
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2014-09-17 05:10:25
If you opt to use a Mote lua for RUN, I have a couple pieces of code that you might find useful. I imagine it should work with a user-created one as well, but I cannot say for sure since I use a modified Mote file. Also, on the subject of keybinds and sidecars, two things. A: keybinds can be cured by simply making a macro commanding GS to set your mode (e.g. Changing your Offense Mode to Acc: /console gs c set OffenseMode Acc) B: sidecars are merely an optional thing to help make updates easier. I never use sidecars and merely tweak the provided .luas to my own wants/needs. I add some functions, remove others. The idea of a sidecar is just using his file exactly as-is and having a separate file to instruct what gear to use.
On topic, however, some useful functions:
Automated rune replacement (duration, Lunge/Swipe, etc) while outside of a city: Code function job_buff_change(buff, gain)
info.max_runes = {['PLD']=2}
if runes:contains(buff) then
if not areas.Cities:contains(world.area) then
if not buffactive[buff] or buffactive[buff] < info.max_runes[player.main_job] then
local delay = gain and 5.1 or 1.1
send_command('wait ' .. tostring(delay) .. ';input /ja "' .. buff .. '" <me>')
end
end
end
end The thing you have to be wary with here is that once you start it, it will not stop until you zone into a city. Even knowing this, however, it is a nice tool to use when you are constantly losing runes and need to replace them right away. Big thanks to Mote on this one.
Next up is an automatic downgrade from Lunge -> Swipe when your Lunge is on cooldown. Code function job_precast(spell, action, spellMap, eventArgs)
if spell.english == 'Lunge' then
local abil_recasts = windower.ffxi.get_ability_recasts()
if abil_recasts[spell.recast_id] > 0 then
send_command('input /jobability "Swipe" <t>')
add_to_chat(122, '***Lunge Aborted: Timer on Cooldown -- Downgrading to Swipe.***')
eventArgs.cancel = true
return
end
end
end
This last one is something I just modified today, and while it appears fully functional, I haven't totally tested it yet to be sure. It's a multi-part function (based off Mote's COR rolls function) that displays rune info in your personal chat log (damage type, resistance). First part: Code function job_setup()
define_rune_info()
end This references this part: Code function define_rune_info()
rune_info = {
["Ignis"] = {damage="Fire", resistance="Ice"},
["Gelus"] = {damage="Ice", resistance="Wind"},
["Flabra"] = {damage="Wind", resistance="Earth"},
["Tellus"] = {damage="Earth", resistance="Lightning"},
["Sulpor"] = {damage="Lightning", resistance="Water"},
["Unda"] = {damage="Water", resistance="Fire"},
["Lux"] = {damage="Light", resistance="Darkness"},
["Tenebrae"]= {damage="Darkness", resistance="Light"},
}
end which leads into: Code function display_rune_info(spell)
runeinfo = rune_info[spell.english]
if runeinfo then
add_to_chat(122, '***'..spell.english..' provides '..runeinfo.damage..'-based damage while offering '..runeinfo.resistance..' resistance.***')
end
end which is ultimately displayed with: Code function job_aftercast(spell, action, spellMap, eventArgs)
if spell.type == 'Rune' and not spell.interrupted then
display_rune_info(spell)
end
end I almost exclusively use RUN as a sub on PLD (thus why my info.max_runes only has PLD listed), but I love making the most of it when I can. I hope these help either one or both of you, if you have wanted something like this!
Lakshmi.Saevel
サーバ: Lakshmi
Game: FFXI
Posts: 2228
By Lakshmi.Saevel 2014-09-17 05:57:49
Here is a fairly straight forward GS that will do pretty much everything you need it to do.
Code
--TP set toggle input: //gs c toggle TP set----1 Standard, 2 Solo, 3 Marches, 4 AccuracyLite, 5 AccuracyMax, 6 DT, 7 DTAccuracy--
--Idle set toggle input: //gs c toggle Idle set----1 Standard, 2 DT--
--Requiescat set toggle input: //gs c toggle Req set----1 Attack, 2 Accuracy--
--Chant du Cygne set toggle input: //gs c toggle CDC set----1 Attack, 2 Accuracy--
Enmity_Spells = S{"Foil","Flash","Blank Gaze","Geist Wall","Jettatura"}
function get_sets()
--Idle Sets--
sets.Idle = {}
sets.Idle.index = {'Standard','DT'}
Idle_ind = 1
Gear_Debug = 0
sets.Idle.Standard = {ammo="Demonry stone",
head="Iuitl headgear +1",neck="Twilight torque", ear1="Spellbreaker earring", ear2="Sanare earring",
body="Runeist coat",hands="Umuthi gloves",ring1="Patricius Ring",ring2="Defending Ring",
back="Shadow mantle",waist="Fucho-no-obi",legs="Blood cuisses",feet="Iuitl gaiters +1"}
sets.Idle.DT = {ammo="Demonry stone",
head="Iuitl headgear +1",neck="Twilight torque", ear1="Spellbreaker earring", ear2="Sanare earring",
body="Futhark coat +1",hands="Umuthi gloves",ring1="Patricius Ring",ring2="Defending Ring",
back="Mollusca mantle",waist="Flume belt",legs="Qaaxo tights",feet="Iuitl gaiters +1"}
--TP Sets--
sets.TP = {}
sets.TP.index = {'Standard', 'DW', 'Marches', 'AccuracyLite', 'AccuracyFull', 'DT', 'DTAccuracy'}
--1=Standard, 2=DW, 3=Marches, 4=AccuracyLite, 5=AccuracyFull, 6=DT, 7=DTAccuracy--
TP_ind = 1
sets.TP.Standard = {ammo="Ginsen",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.Marches = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.DW = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Brutal earring", ear2="Suppanomimi",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.AccuracyLite = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.AccuracyFull = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.DT = {ammo="Demonry stone",
head="Iuitl headgear +1",neck="Twilight torque", ear1="Spellbreaker earring", ear2="Sanare earring",
body="Futhark coat +1",hands="Umuthi gloves",ring1="Patricius Ring",ring2="Defending Ring",
back="Repulse mantle",waist="Flume belt",legs="Qaaxo tights",feet="Iuitl gaiters +1"}
sets.TP.DTAccuracy = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
--Weaponskill Sets--
sets.WS = {}
sets.Requiescat = {ammo="Honed tathlum",
head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Aquasoul ring",
back="Atheling mantle",waist="Soil belt",legs="Quiahuiz trousers",feet="Qaaxo leggings"}
sets.Resolution = {ammo="Aqreaqa bomblet",
head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Manibozho jerkin",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Soil belt",legs="Quiahuiz trousers",feet="Manibozho boots"}
sets.Ruinator = {ammo="Aqreaqa bomblet",head="Whirlpool mask",neck="Snow gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Manibozho jerkin",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Snow belt",legs="Manibozho brais",feet="Manibozho boots"}
sets.Dimidiation = {ammo="Potestas bomblet",head="Uk'uxkaj cap",neck="Thunder gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Qaaxo harness",hands="Futhark mitons +1",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Thunder belt",legs="Manibozho brais",feet="Qaaxo leggings"}
sets.Shockwave = {ammo="Aqreaqa bomblet",head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Manibozho jerkin",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Soil belt",legs="Manibozho brais",feet="Manibozho boots"}
--Job Ability Sets--
sets.JA = {}
sets.JA.Lunge = {ammo="Dosis tathlum",head="A'as circlet",neck="Eddy necklace",ear1="Friomisi earring",ear2="Crematio earring",
body="Vanir Cotehardie",hands="Spolia cuffs",ring1="Acumen Ring",ring2="Sangoma Ring",
back="Toro cape",waist="Soil belt",legs="Shneddick tights +1",feet="Weatherspoon souliers +1"}
sets.JA.VP = {ammo="Aqreaqa bomblet",
head="Whirlpool mask",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
--Precast Sets--
sets.precast = {}
sets.precast.FC = {head="Runeist bandeau +1",Ear1="Loquacious earring",body="Futhark coat +1",hands="Thaumas gloves",back="Fravashi Mantle",
waist="Siegel Sash",legs="Futhark trousers",feet="Chelona boots"}
sets.enmity = {ammo="Aqreaqa bomblet",head="Runeist bandeau +1",neck="Twilight torque",ear1="Friomisi earring",ear2="Loquacious earring",
body="Futhark coat +1",hands="Futhark mitons +1",ring1="Epona's ring",ring2="Rajas ring",
back="Fravashi mantle",waist="Goading belt",legs="Futhark trousers",feet="Futhark boots +1"}
end
function precast(spell)
if spell.action_type == 'Magic' then
equip(sets.precast.FC)
end
if spell.english == 'Requiescat' then
equip(sets.Requiescat)
send_command('@input /echo Requiescat Set')
elseif spell.english == 'Resolution' then
equip(sets.Resolution)
send_command('@input /echo Resolution Set')
elseif spell.english == 'Ruinator' then
equip(sets.Ruinator)
send_command('@input /echo Ruinator Set')
elseif spell.english == 'Shockwave' then
equip(sets.Shockwave)
send_command('@input /echo Shockwave Set')
elseif spell.english == 'Sanguine Blade' then
equip(sets.JA.Lunge)
send_command('@input /echo Sanguine Blade Set')
elseif spell.english == 'Dimidiation' then
equip(sets.Dimidiation)
send_command('@input /echo Dimidiation Set')
elseif spell.english == 'Herculean Slash' then
equip(sets.JA.Lunge)
send_command('@input /echo Herculean Slash Set')
elseif spell.english == 'Lunge' then
equip(sets.JA.Lunge)
send_command('@input /echo Lunge Set')
elseif spell.english == 'Swipe' then
equip(sets.JA.Lunge)
send_command('@input /echo Lunge Set')
elseif spell.english == 'Swordplay' then
equip({hands="Futhark mitons +1"})
elseif spell.english == 'Battuta' then
equip({head="Futhark Bandeau"})
elseif spell.english == 'Pflug' then
equip({feet="Runeist bottes"})
elseif spell.english == "Vallation" then
equip({body="Runeist Coat",legs="Futhark Trousers"})
elseif spell.english == "Valiance" then
equip({body="Runeist Coat",legs="Futhark Trousers"})
elseif spell.english == "Rayke" then
equip({feet="Futhark boots +1"})
elseif spell.english == "Liement" then
equip({body="Futhark coat +1"})
end
end
function midcast(spell,act)
if spell.action_type == 'Magic' then
if spell.english == 'Phalanx' then
equip({head="Futhark bandeau"})
elseif Enmity_Spells:contains(spell.name) then
equip(sets.enmity)
send_command('@input /echo Enmity Set')
else
equip(sets.precast.FC)
end
end
end
function aftercast(spell)
if player.status == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
send_command('@input /echo TP Set')
else
if Gear_Debug == 0 then
equip(sets.Idle.Standard)
send_command('@input /echo Idle Set')
else
end
end
end
function status_change(new,old)
if new == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
else
equip(sets.Idle.Standard)
end
end
function self_command(command)
if command == 'equip TP set' then
TP_ind = 1
equip(sets.TP[sets.TP.index[TP_ind]])
send_command('@input /echo TP Set')
elseif command == 'equip Idle set' then
equip(sets.Idle.Standard)
send_command('@input /echo Idle Set')
elseif command == 'equip DW set' then
TP_ind = 2
equip(sets.TP[sets.TP.index[TP_ind]])
send_command('@input /echo DW Set')
elseif command == 'equip DT set' then
TP_ind = 6
equip(sets.TP[sets.TP.index[TP_ind]])
send_command('@input /echo DT Set')
elseif command == 'change debug mode' then
if Gear_Debug == 1 then
Gear_Debug = 0
send_command('@input /echo Debug Mode Set to 0')
else
Gear_Debug = 1
send_command('@input /echo Debug Mode Set to 1')
end
end
end
It's self contained, easy to edit, has feedback to let you know it's working and is straight forward. I made it from Bryth's BLU gearswap after heavy editing and simplification. Anyone should be able to figure out it's logic without needing a class in coding.
サーバ: Sylph
Game: FFXI
Posts: 2623
By Sylph.Jeanpaul 2014-09-17 17:24:34
Mine looks just like Saevel's, I too used Bryth's BLU lua as a template. I prefer the self-contained stuff too. I did add extra parts for if I get petrified/terror'd/stunned then it automatically puts on my PDT gear, and another part for putting on a Frenzy Sallet if I'm slept.
I also added a set for Lockstyle, and I can just press Alt+Z to equip and lockstyle that set.
Quetzalcoatl.Guthrie
サーバ: Quetzalcoatl
Game: FFXI
Posts: 80
By Quetzalcoatl.Guthrie 2014-09-27 20:21:36
Thanks for all the inputs! I think I made a rather decent one that does all I really need it to do outside of what Jeanpaul just mentioned he did.
What would be the coding to make it equip sets depending on a debuff you have on you?
As always, thanks in advance!
サーバ: Sylph
Game: FFXI
Posts: 2623
By Sylph.Jeanpaul 2014-09-28 00:01:02
This is part of what I have: Code
function buff_change(buff,gain)
if (buff == "sleep" and gain) and player.hp > 100 and player.status == "Engaged" then
equip({head="Frenzy Sallet"})
if buffactive.stoneskin then
send_command('cancel Stoneskin')
end
end
if (buff == "terror" or buff == "petrification" or buff == "stun") and gain then
equip(sets.TP.DT)
end
end
The first part tells it to equip the Frenzy Sallet if I'm slept, engaged, and above 100 HP (so it doesn't kill me), as well as cancelling Stoneskin in case I have it on. The second part makes it so I'll automatically equip my PDT gear if I'm hit with Stun/Terror/Petrify.
You can also add this to the end of your precast set: Code if buffactive.terror or buffactive.petrification or buffactive.stun then
equip(sets.TP.DT)
end
This makes it so if you're hit with any of those same statuses, it will know to equip the PDT gear instead of say, your precast gear cuz you're spamming Utsusemi or something while waiting for Stun to wear off. When the Stun wears off, it'd go back to using your precast gear since you can actually cast Utsusemi now.
I did add other little things in there too though, but they tend to reference my sets so I didn't include them.
Bismarck.Inference
サーバ: Bismarck
Game: FFXI
Posts: 417
By Bismarck.Inference 2014-09-28 00:12:54
To explain a bit in detail-
function buff_change(buff,gain) is triggered everytime your buff bar changes, buff represents the name of the buff and gain is a boolean(true or false) which returns true if the buff was gained or false if the buff/debuff was lost/removed. With this in mind you could add something like this to Jeanpaul's code:
Code
if buff=="Sleep" and not gain then
status_change(player.status)
end
which paired with his Frenzy Sallet rule, should return him to his proper TP set automatically after the first tick wakes him up(assuming relevant TP information is handled by status_change which it almost always is).
[+]
サーバ: Sylph
Game: FFXI
Posts: 2623
By Sylph.Jeanpaul 2014-09-28 00:23:03
Bismarck.Inference said: »To explain a bit in detail-
function buff_change(buff,gain) is triggered everytime your buff bar changes, buff represents the name of the buff and gain is a boolean(true or false) which returns true if the buff was gained or false if the buff/debuff was lost/removed. With this in mind you could add something like this to Jeanpaul's code:
Code
if buff="Sleep" and not gain then
status_change(player.status)
end
which paired with his Frenzy Sallet rule, should return him to his proper TP set automatically after the first tick wakes him up(assuming relevant TP information is handled by status_change which it almost always is). Been meaning to figure that aspect of it out for a while now, thanks for giving me the proper code!
By Raesvelg 2014-10-04 15:06:15
Oddly enough Mote now has a working RUN lua that works off of his includes.
Phoenix.Skyfire
サーバ: Phoenix
Game: FFXI
Posts: 116
By Phoenix.Skyfire 2014-10-24 10:39:44
While this has probably been asked before, I was wondering if anyone has Rune toggle for GS. I have been using a spellcast to toggle runes previously while using GS for my gear, but last night the spellcast kept failing. So I was hoping someone had a working GS option.
This is the spellcast: <?xml version="1.0" ?>
<spellcast>
<config
Debug="false"
ShowGearSwaps="false"
/>
<variables clear="true">
<var name="Rune">Ignis</var>
</variables>
<rules>
<!-- Rule: Toggle Runes (Ignis/Fire > Gelus/Ice > Flabra/Wind > Tellus/Earth
> Unda/Water > Sulpor/Thunder > Lux/Light > Tenebrae/Dark)-->
<if spell="Shackled Fists" >
<if advanced='"$Rune" = "Ignis"' >
<var cmd="set Rune Gelus" />
</if>
<elseif advanced='"$Rune" = "Gelus"' >
<var cmd="set Rune Flabra" />
</elseif>
<elseif advanced='"$Rune" = "Flabra"' >
<var cmd="set Rune Tellus" />
</elseif>
<elseif advanced='"$Rune" = "Tellus"' >
<var cmd="set Rune Sulpor" />
</elseif>
<elseif advanced='"$Rune" = "Sulpor"' >
<var cmd="set Rune Unda" />
</elseif>
<elseif advanced='"$Rune" = "Unda"' >
<var cmd="set Rune Lux" />
</elseif>
<elseif advanced='"$Rune" = "Lux"' >
<var cmd="set Rune Tenebrae" />
</elseif>
<elseif advanced='"$Rune" = "Tenebrae"' >
<var cmd="set Rune Ignis" />
</elseif>
<command>input /echo ~~~Rune Enchantment is now [$Rune]~~~</command>
<cancelspell />
<return />
</if>
</rules>
</spellcast>
サーバ: Sylph
Game: FFXI
Posts: 2623
By Sylph.Jeanpaul 2014-10-24 14:25:39
I guess it depends how you want to change between runes. You could cycle through them with a toggle button, but I personally like binding aliases for each rune that set them to the same macro. If you put the following in your init.txt file (found in Windower/scripts):
alias ignis bind !9 input /ja "Ignis" <me>
alias unda bind !9 input /ja "Unda" <me>
alias sulpor bind !9 input /ja "Sulpor" <me>
alias tellus bind !9 input /ja "Tellus" <me>
alias flabra bind !9 input /ja "Flabra" <me>
alias gelus bind !9 input /ja "Gelus" <me>
alias lux bind !9 input /ja "Lux" <me>
alias tene bind !9 input /ja "Tenebrae" <me>
...you can just type //lux, for example, and it will bind Lux to the macro (I use Alt9). Know that ! implies Alt and ^ implies Ctrl. Hope this makes sense. I don't have time right now to whip up a Gearswap method but if that's what you prefer, a few things can be made:
1) A toggling system, where you cycle through them.
2) A "remembers your last rune" system, where if you manually use a rune, it'll save it to the macro each time.
3) Uh... something else? Well, I'm outta ideas.
サーバ: Bahamut
Game: FFXI
Posts: 269
By Bahamut.Alexcennah 2014-10-24 14:59:22
I use this "remember your last rune" method:
Code
--Copy-paste this piece of code to your get_sets function
rune = "Lux" --This is the "default" value
--Copy-paste this piece of code to your aftercast function
if spell.type == "Rune" then
rune = spell.english
end
--Copy-paste this piece of code to your self_command function
if command == 'lrune' then
send_command('@input /ja '..rune..' <me>')
end
Now make a macro /console gs c lrune to use it.
Phoenix.Skyfire
サーバ: Phoenix
Game: FFXI
Posts: 116
By Phoenix.Skyfire 2014-10-24 15:16:54
Thanks for that, and yea looking for a toggling cycle where it will display which rune you are now set to.
サーバ: Bahamut
Game: FFXI
Posts: 269
By Bahamut.Alexcennah 2014-10-24 15:31:26
I did a little clean-up on my code above.
What you want is easy to do:
Code --Copy-paste this piece of code to your get_sets function
Runes = {"Tellus","Unda","Flabra","Ignis","Gelus","Sulpor","Lux","Tenebrae"}
rune_ind = 1
--Copy-paste this piece of code to your self_command function
if command == 'toggle' then
rune_ind = rune_ind +1
if rune_ind > #Runes then
rune_ind = 1
end
send_command('@input /echo === Rune set to: '..Runes[rune_ind])
elseif command == 'rune' then
send_command('@input /ja '..Runes[rune_ind]..' <me>')
end
Create a /console gs c toggle macro to toggle between runes and /console gs c rune to use it.
By Raesvelg 2014-10-26 14:10:07
For some reason I can't seem to get that to work... D:
Quetzalcoatl.Orestes
サーバ: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2014-10-26 15:55:41
For some reason I can't seem to get that to work... D:
For anyone using Mote's includes, this is how you would set it up.
add this to user_setup() Code
state.Runes = M{['description']='Runes', "Tellus","Unda","Flabra","Ignis","Gelus","Sulpor","Lux","Tenebrae"}
and this near the bottom of your lua, or integrate it into your job_self_command() function, IF you already have one. (be sure to check) Code
function job_self_command(cmdParams, eventArgs)
if cmdParams[1]:lower() == 'rune' then
send_command('@input /ja '..state.Runes.value..' <me>')
end
end
To cycle them
//gs c cycle Runes
To use them
//gs c rune
Phoenix.Skyfire
サーバ: Phoenix
Game: FFXI
Posts: 116
By Phoenix.Skyfire 2014-10-26 16:01:56
Thanks Alexcennah, works like a charm. Appreciate it!
By Nazrious 2014-11-23 23:02:25
Any one have any simplified Lua that will handle
1) cycling between sets with one Keybind like F9
2) does not have too many auto functions like reapplying runes etc after lunge / swipe.
3) would also be nice if it had the Frenzy sallet function described by Jeanpaul.
Thanks in advance.
Code function get_sets()
send_command('bind f9 gs c toggle TP set')
send_command('bind f10 gs c toggle Idle set')
send_command('bind f11 gs c toggle CDC set')
send_command('bind f12 gs c toggle Req set')
send_command('bind !f12 gs c toggle Rea set')
function file_unload()
send_command('unbind ^f9')
send_command('unbind ^f10')
send_command('unbind ^f11')
send_command('unbind ^f12')
send_command('unbind !f9')
send_command('unbind !f10')
send_command('unbind !f11')
send_command('unbind !f12')
send_command('unbind f9')
send_command('unbind f10')
send_command('unbind f11')
send_command('unbind f12')
end
This is from Prothescar's blu lua. I belive this handles the keybind F9 cycle but am not sure, and would not know how to go about modifying this and placing it into a Run Lua.
By Nazrious 2014-11-24 02:04:54
This is What I managed to come up with so far, get an error on line 6 problem with end...
Code --To toggle gearsets:
--Main command: //gs c toggle x set where x = set name variable. Variables are as follows: --
--Idle sets: Idle, TP sets: TP--
--Resolution sets: Res, Requiescat sets: Req--
function get_sets()
send_command('bind f9 gs c toggle TP set')
send_command('bind f10 gs c toggle Idle set')
send_command('bind f11 gs c toggle CDC set')
send_command('bind f12 gs c toggle Req set')
send_command('bind !f12 gs c toggle Rea set')
function file_unload()
send_command('unbind ^f9')
send_command('unbind ^f10')
send_command('unbind ^f11')
send_command('unbind ^f12')
send_command('unbind !f9')
send_command('unbind !f10')
send_command('unbind !f11')
send_command('unbind !f12')
send_command('unbind f9')
send_command('unbind f10')
send_command('unbind f11')
send_command('unbind f12')
end
--Idle Sets--
sets.Idle = {}
sets.Idle.index = {'Standard'}
Idle_ind = 1
sets.Idle.Standard = {ammo="Honed Tathlum",
head="Ocelomeh headpiece +1",neck="Twilight torque", ear1="Ethereal earring",
body="Futhark coat",hands="Iuitl wristbands",ring1="Defending ring",ring2="Patricius Ring",
back="Evasionist's cape",waist="Flume belt",legs="Blood cuisses",feet="Iuitl gaiters"}
--TP Sets--
sets.TP = {}
sets.TP.index = {'Standard', 'Solo', 'AccuracyLite', 'AccuracyFull', 'DT', 'DTAccuracy'}
--1=Standard, 2=Solo, 3=AccuracyLite, 4=AccuracyFull, 5=DT, 6=DTAccuracy--
TP_ind = 1
sets.TP.Standard = {ammo="Honed Tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo Harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt +1",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.Solo = {ammo="Honed Tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Futhark Coat +1",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt +1",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.AccuracyLite = {ammo="Honed Tathlum",
head="Whirlpool mask",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring", body="Qaaxo Harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Letalis Mantle",waist="Windbuffet belt +1",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.AccuracyFull = {ammo="Honed tathlum",
head="Whirlpool mask",neck="Asperity Necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo Harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Patricius Ring",
back="Letalis Mantle",waist="Hurch'lan sash",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.DT = {ammo="Honed tathlum",
head="Futhark bandeau",neck="Twilight torque", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Futhark coat +1",hands="Iuitl wristbands",ring1="Defending ring",ring2="Patricius Ring",
back="Mollusca mantle",waist="Flume belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.DTAccuracy = {ammo="Honed tathlum",
head="Whirlpool mask",neck="Twilight torque", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Futhark coat",hands="Iuitl wristbands",ring1="Defending ring",ring2="Patricius Ring",
back="Letalis Mantle",waist="Hurch'lan sash",legs="Iuitl tights +1",feet="Qaaxo leggings"}
--Weaponskill Sets--
sets.WS = {}
sets.Resolution = {}
sets.Resolution.index = {'Attack','Accuracy'}
Resolution_ind = 1
sets.Resolution.Attack = {ammo="Aqreqaq bomblet",
head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Manibozho jerkin",hands="Manibozho gloves",ring1="Epona's ring",ring2="Vulcan's ring",
back="Buquwik cape",waist="Soil belt",legs="Quiahuiz leggings",feet="Manibozho boots"}
sets.Resolution.Accuracy = {ammo="Honed tathlum",
head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Manibozho jerkin",hands="Buremte gloves",ring1="Epona's ring",ring2="Vulcan's ring",
back="Buquwik cape",waist="Soil belt",legs="Manibozho brais",feet="Manibozho boots"}
sets.Requiescat = {}
sets.Requiescat.index = {'Attack','Accuracy'}
Requiescat_ind = 1
sets.Requiescat.Attack = {ammo="Potestas bomblet",
head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Wayfarer robe",hands="Wayfarer cuffs",ring1="Epona's ring",ring2="Aquasoul ring",
back="Atheling mantle",waist="Soil belt",legs="Quiahuiz leggings",feet="Wayfarer clogs"}
sets.Requiescat.Accuracy = {ammo="Honed tathlum",
head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Wayfarer robe",hands="Buremte gloves",ring1="Epona's ring",ring2="Aquasoul ring",
back="Letalis mantle",waist="Soil belt",legs="Quiahuiz leggings",feet="Wayfarer clogs"}
--Utility Sets--
sets.Utility = {}
sets.Utility.PDT = {head="Futhark bandeau",neck="Twilight torque",ear1="Ethereal earring",
body="Futhark coat",hands="Iuitl wristbands",ring1="Dark ring",ring2="Dark ring",
back="Mollusca mantle",waist="Flume belt",legs="Iuitl tights",feet="Iuitl gaiters"}
sets.Utility.MDT = {head="Runeist bandeau",neck="Twilight torque",
body="Futhark coat",hands="Runeist mitons",ring1="Dark ring",ring2="Dark ring",
back="Mollusca mantle",legs="Runeist trousers",feet="Runeist bottes"}
sets.Utility.Stoneskin = {head="Whirlpool mask",neck="Stone Gorget",ear1="Loquac. earring",ear2="Earthcry earring",
body="Futhark coat",hands="Stone Mufflers",ring1="Prolix ring",
back="Swith cape",waist="Siegel sash",legs="Haven hose",feet="Iuitl gaiters"}
sets.Utility.Phalanx = {head="Futhark bandeau",neck="Colossus's torque",ear1="Loquac. earring",ear2="Augment. earring",
body="Futhark coat",hands="Runeist mitons",ring1="Prolix ring",
back="Swith cape",waist="Cascade belt",legs="Portent pants",feet="Iuitl gaiters"}
sets.Utility.Regen = {head="Runeist bandeau",neck="Colossus's torque",ear1="Loquac. earring",ear2="Augment. earring",
body="Futhark coat",hands="Runeist mitons",ring1="Prolix ring",
back="Swith cape",waist="Pythia sash +1",legs="Futhark trousers",feet="Runeist bottes"}
sets.Utility.Utsusemi = {head="Runeist bandeau",neck="Jeweled collar",ear1="Loquac. earring",
body="Futhark coat",hands="Thaumas gloves",ring1="Prolix ring",
back="Swith cape",waist="Hurch'lan sash",legs="Futhark trousers",feet="Iuitl gaiters"}
--Job Ability Sets--
sets.JA = {}
sets.JA.Lunge = {ammo="Erlene's notebook",
head="A'as circlet",neck="Eddy necklace",lear="Hecate's earring",rear="Friomisi earring",
body="Mirke wardecors",hands="Spolia cuffs",
back="Evasionist's cape",legs="Shneddick tights",feet="Weatherspoon souliers"}
sets.JA.Vallation = {body="Runeist coat",
legs="Futhark trousers"}
sets.JA.Battuta = {head="Futhark bandeau"}
sets.JA.Gambit = {hands="Runeist mitons"}
sets.JA.Pflug = {head="Runeist bottes"}
--Precast Sets--
sets.precast = {}
sets.precast.FC = {}
sets.precast.FC.Standard = {head="Runeist bandeau",neck="Jeweled collar", ear1="Loquac. Earring",
body="Mirke wardecors",hands="Thaumas Gloves",
legs="Orvail pants +1",feet="Chelona Boots"}
sets.precast.FC.Enhancing = {head="Runeist bandeau",neck="Jeweled collar", ear1="Loquac. Earring",
body="Mirke wardecors",hands="Thaumas Gloves",
legs="Futhark trousers",feet="Chelona Boots"}
end
function precast(spell)
if spell.action_type == 'Magic' then
equip(sets.precast.FC.Standard)
end
if spell.action_type == 'Enhancing' then
equip(sets.precast.FC.Enhancing)
end
if spell.action_type == 'Ninjutsu' then
equip(sets.precast.FC.Standard)
end
if spell.english == 'Lunge' or spell.english == 'Swipe' then
equip(sets.JA.Lunge)
end
if spell.english == 'Vallation' or spell.english == 'Valiance' then
equip(sets.JA.Vallation)
end
if spell.english == 'Battuta' then
equip(sets.JA.Battuta)
end
if spell.english == 'Pflug' then
equip(sets.JA.Pflug)
end
if spell.english == 'Gambit' then
equip(sets.JA.Gambit)
end
if spell.english == 'Resolution' or spell.english == 'Shockwave' then
equip(sets.Resolution[sets.Resolution.index[Resolution_ind]])
end
if spell.english == 'Requiescat' then
equip(sets.Requiescat[sets.Requiescat.index[Requiescat_ind]])
end
end
function midcast(spell,act)
if spell.english == 'Stoneskin' then
equip(sets.Utility.Stoneskin)
if buffactive['Stoneskin'] then
send_command('@wait 0.7; input //cancel Stoneskin; input /echo Refreshing Stoneskin.')
end
end
if spell.english == 'Phalanx' or spell.english == 'Bar*' then
equip(sets.Utility.Phalanx)
end
if spell.english == 'Regen' then
equip(sets.Utility.Regen)
end
if spell.english == 'Utsusemi: Ichi' then
equip(sets.Utility.Utsusemi)
if buffactive['Copy Image (3)'] then
send_command('@wait 0.3; input //cancel Copy Image*')
end
if buffactive['Copy Image (2)'] then
send_command('@wait 0.3; input //cancel Copy Image*')
end
if buffactive['Copy Image (1)'] then
send_command('@wait 0.3; input //cancel Copy Image*')
end
if buffactive['Copy Image'] then
send_command('@wait 0.3; input //cancel Copy Image*')
end
end
if spell.english == 'Utsusemi: Ni' then
equip(sets.Utility.Utsusemi)
end
end
function aftercast(spell)
if player.status == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
else
equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
end
function status_change(new,old)
if new == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
else
equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
end
function self_command(command)
if command == 'toggle TP set' then
TP_ind = TP_ind +1
if TP_ind > #sets.TP.index then TP_ind = 1 end
send_command('@input /echo <----- TP Set changed to '..sets.TP.index[TP_ind]..' ----->')
equip(sets.TP[sets.TP.index[TP_ind]])
elseif command == 'toggle Idle set' then
Idle_ind = Idle_ind +1
if Idle_ind > #sets.Idle.index then Idle_ind = 1 end
send_command('@input /echo <----- Idle Set changed to '..sets.Idle.index[Idle_ind]..' ----->')
equip(sets.Idle[sets.Idle.index[Idle_ind]])
elseif command == 'toggle Res set' then
Resolution_ind = Resolution_ind +1
if Resolution_ind > #sets.Resolution.index then Resolution_ind = 1 end
send_command('@input /echo <----- Resolution set changed to '..sets.Resolution.index[Resolution_ind]..' ----->')
elseif command == 'toggle Req set' then
Requiescat_ind = Requiescat_ind +1
if Requiescat_ind > #sets.Requiescat.index then Requiescat_ind = 1 end
send_command('@input /echo <----- Requiescat Set changed to '..sets.Requiescat.index[Requiescat_ind]..' ----->')
elseif command == 'equip TP set' then
equip(sets.TP[sets.TP.index[TP_ind]])
elseif command == 'equip Idle set' then
equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
end
function buff_change(buff,gain)
if (buff == "sleep" and gain) and player.hp > 100 and player.status == "Engaged" then
equip({head="Frenzy Sallet"})
if buffactive.stoneskin then
send_command('cancel Stoneskin')
end
end
if (buff == "terror" or buff == "petrification" or buff == "stun") and gain then
equip(sets.TP.DT)
end
if buff=="Sleep" and not gain then
status_change(player.status)
end
end
Edited: function get_sets()
Removed the second one which was causing the error so now it loads will test to see how it performs.
Edit: does not seem to have Dimidation in there how would I go about adding, just copy paste Resolution's code and enter in Dimidation where ever it says resolution?
Necro Bump Detected!
[32 days between previous and next post]
By Asura.Bangerang 2014-12-25 17:29:38
Here is some code for Mote luas that maximizes the effect of Vivacious Pulse no matter which rune you are currently using. Just tweak the gear sets to match the gear you have available.
Code
function job_precast(spell, action, spellMap, eventArgs)
if spell.english == 'Vivacious Pulse' then
-- There's got to be a less verbose way of doing this
if buffactive['Ignis'] then
equip(sets.pulse.Ignis)
elseif buffactive['Gelus'] then
equip(sets.pulse.Gelus)
elseif buffactive['Flabra'] then
equip(sets.pulse.Flabra)
elseif buffactive['Tellus'] then
equip(sets.pulse.Tellus)
elseif buffactive['Sulpor'] then
equip(sets.pulse.Sulpor)
elseif buffactive['Unda'] then
equip(sets.pulse.Unda)
elseif buffactive['Lux'] then
equip(sets.pulse.Lux)
elseif buffactive['Tenebrae'] then
equip(sets.pulse.Tenebrae)
end
end
end
function init_gear_sets()
--------------------------------------
-- Vivacious Pulse sets
--------------------------------------
-- Maximize the stat listed for each set.
sets.pulse = {}
-- STR
sets.pulse.Ignis = {ammo="Aqreqaq Bomblet",
head="Highwing Helm",
body="Mekosu. Harness",hands="Iuitl Wristbands +1",ring1="Rajas Ring",ring2="Dark Ring",
back="Buquwik Cape",legs="Iuitl Tights +1",feet="Qaaxo Leggings"}
-- DEX
sets.pulse.Gelus = {
head="Felistris Mask",ear1="Dawn Earring",
body="Mekosu. Harness",hands="Iuitl Wristbands +1",ring1="Rajas Ring",ring2="Dark Ring",
legs="Manibozho Brais",feet="Iuitl Gaiters +1"}
-- VIT
sets.pulse.Flabra = {
head="Lithelimb Cap",ear1="Dawn Earring",
body="Mekosu. Harness",hands="Iuitl Wristbands +1",ring1="Dark Ring",ring2="Dark Ring",
waist="Flume Belt +1",legs="Orvail Pants +1",feet="Iuitl Gaiters +1"}
-- AGI
sets.pulse.Tellus = {
head="Lithelimb Cap",neck="Magoraga Beads",ear1="Dawn Earring",ear2="Supanomimi",
body="Mekosu. Harness",hands="Iuitl Wristbands +1",ring1="Dark Ring",ring2="Arvina Ringlet +1",
legs="Thurandaut Tights +1",feet="Iuitl Gaiters +1"}
-- MND
sets.pulse.Unda = {
head="",ear1="Lifestorm Earring",
body="Respite Cloak",hands="Iuitl Wristbands +1",ring1="Dark Ring",ring2="Dark Ring",
legs="Shneddick Tights +1",feet="Manabyss Pigaches"}
-- INT
sets.pulse.Sulpor = {
head="",neck="Jeweled Collar",ear1="Psystorm Earring",
body="Respite Cloak",hands="Buremte Gloves",ring1="Acumen Ring",ring2="Dark Ring",
legs="Iuitl Tights +1",feet="Manabyss Pigaches"}
-- CHR
sets.pulse.Lux = {
head="",neck="Jeweled Collar",
body="Respite Cloak",hands="Iuitl Wristbands +1",ring1="Rajas Ring",ring2="Dark Ring",
legs="Orvail Pants +1",feet="Manabyss Pigaches"}
-- Divine Magic skill and possibly all stats?
sets.pulse.Tenebrae = {
neck="Nesanica Torque",ear1="Beatific Earring",ear2="Divine Earring",
back="Altruistic Cape",waist="Bishop's Sash",legs="Runeist Trousers"}
end
Ragnarok.Martel
サーバ: Ragnarok
Game: FFXI
Posts: 2961
By Ragnarok.Martel 2014-12-25 18:05:28
Divine skill isn't just for Tenebrae and mp. It's a modifier for the hp recovered using any rune.
Necro Bump Detected!
[68 days between previous and next post]
サーバ: Odin
Game: FFXI
Posts: 170
By Odin.Quixacotl 2015-03-04 04:34:48
Mote wrote a nice code for customized Runes Timers. The only problem was, he left out the icons.
I was fixing a friend's RUN.lua based on Mote's Libs and figured a way to add icons to the timers. It's not really a big deal I just got tired of looking at all the question marks and the result looks way better. Btw @Ihm it might not be a bad idea to have an icons on/off switch in settings. Code
-- Setup vars that are user-independent.
function job_setup()
-- Icons for custom timers for Runes.
runes.icons = {
['Ignis'] = 'spells/00288.png',
['Gelus'] = 'spells/00289.png',
['Flabra'] = 'spells/00290.png',
['Tellus'] = 'spells/00291.png',
['Sulpor'] = 'spells/00292.png',
['Unda'] = 'spells/00293.png',
['Lux'] = 'spells/00294.png',
['Tenebrae'] = 'spells/00295.png'
}
-- Table of entries
rune_timers = T{}
-- entry = rune, index, expires
if player.main_job_level >= 65 then
max_runes = 3
elseif player.main_job_level >= 35 then
max_runes = 2
elseif player.main_job_level >= 5 then
max_runes = 1
else
max_runes = 0
end
end
-- Get the command string to create a custom timer for the provided entry.
function create_timer(entry)
local timer_name = '"Rune: ' .. entry.rune .. '-' .. tostring(entry.index) ..'"'
local duration = entry.expires - os.time()
return 'timers c ' .. timer_name .. ' ' .. tostring(duration) .. ' down ' .. runes.icons[entry.rune]
end
In the above example, the icons are loaded from Windower4\plugins\icons folder. But if you're handy with Altana Viewer and Photoshop or Gimp then you can use the dat images. Or make your own icons. The only requirement is that icons should be no larger than 32px32p and in .png or .bmp format or it'll look ghetto.
If you have custom icons then make a new folder: Windower4\plugins\icons\mycons and store in there. Then use; Code
['Ignis'] = 'mycons/Ignis.png',
Necro Bump Detected!
[380 days between previous and next post]
サーバ: Asura
Game: FFXI
Posts: 114
By Asura.Blittzjr 2016-03-17 20:41:26
Here is a fairly straight forward GS that will do pretty much everything you need it to do.
Code
--TP set toggle input: //gs c toggle TP set----1 Standard, 2 Solo, 3 Marches, 4 AccuracyLite, 5 AccuracyMax, 6 DT, 7 DTAccuracy--
--Idle set toggle input: //gs c toggle Idle set----1 Standard, 2 DT--
--Requiescat set toggle input: //gs c toggle Req set----1 Attack, 2 Accuracy--
--Chant du Cygne set toggle input: //gs c toggle CDC set----1 Attack, 2 Accuracy--
Enmity_Spells = S{"Foil","Flash","Blank Gaze","Geist Wall","Jettatura"}
function get_sets()
--Idle Sets--
sets.Idle = {}
sets.Idle.index = {'Standard','DT'}
Idle_ind = 1
Gear_Debug = 0
sets.Idle.Standard = {ammo="Demonry stone",
head="Iuitl headgear +1",neck="Twilight torque", ear1="Spellbreaker earring", ear2="Sanare earring",
body="Runeist coat",hands="Umuthi gloves",ring1="Patricius Ring",ring2="Defending Ring",
back="Shadow mantle",waist="Fucho-no-obi",legs="Blood cuisses",feet="Iuitl gaiters +1"}
sets.Idle.DT = {ammo="Demonry stone",
head="Iuitl headgear +1",neck="Twilight torque", ear1="Spellbreaker earring", ear2="Sanare earring",
body="Futhark coat +1",hands="Umuthi gloves",ring1="Patricius Ring",ring2="Defending Ring",
back="Mollusca mantle",waist="Flume belt",legs="Qaaxo tights",feet="Iuitl gaiters +1"}
--TP Sets--
sets.TP = {}
sets.TP.index = {'Standard', 'DW', 'Marches', 'AccuracyLite', 'AccuracyFull', 'DT', 'DTAccuracy'}
--1=Standard, 2=DW, 3=Marches, 4=AccuracyLite, 5=AccuracyFull, 6=DT, 7=DTAccuracy--
TP_ind = 1
sets.TP.Standard = {ammo="Ginsen",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.Marches = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.DW = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Brutal earring", ear2="Suppanomimi",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.AccuracyLite = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.AccuracyFull = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
sets.TP.DT = {ammo="Demonry stone",
head="Iuitl headgear +1",neck="Twilight torque", ear1="Spellbreaker earring", ear2="Sanare earring",
body="Futhark coat +1",hands="Umuthi gloves",ring1="Patricius Ring",ring2="Defending Ring",
back="Repulse mantle",waist="Flume belt",legs="Qaaxo tights",feet="Iuitl gaiters +1"}
sets.TP.DTAccuracy = {ammo="Honed tathlum",
head="Iuitl headgear +1",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
--Weaponskill Sets--
sets.WS = {}
sets.Requiescat = {ammo="Honed tathlum",
head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Aquasoul ring",
back="Atheling mantle",waist="Soil belt",legs="Quiahuiz trousers",feet="Qaaxo leggings"}
sets.Resolution = {ammo="Aqreaqa bomblet",
head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Manibozho jerkin",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Soil belt",legs="Quiahuiz trousers",feet="Manibozho boots"}
sets.Ruinator = {ammo="Aqreaqa bomblet",head="Whirlpool mask",neck="Snow gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Manibozho jerkin",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Snow belt",legs="Manibozho brais",feet="Manibozho boots"}
sets.Dimidiation = {ammo="Potestas bomblet",head="Uk'uxkaj cap",neck="Thunder gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Qaaxo harness",hands="Futhark mitons +1",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Thunder belt",legs="Manibozho brais",feet="Qaaxo leggings"}
sets.Shockwave = {ammo="Aqreaqa bomblet",head="Whirlpool mask",neck="Soil gorget",ear1="Brutal earring",ear2="Moonshade earring",
body="Manibozho jerkin",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Soil belt",legs="Manibozho brais",feet="Manibozho boots"}
--Job Ability Sets--
sets.JA = {}
sets.JA.Lunge = {ammo="Dosis tathlum",head="A'as circlet",neck="Eddy necklace",ear1="Friomisi earring",ear2="Crematio earring",
body="Vanir Cotehardie",hands="Spolia cuffs",ring1="Acumen Ring",ring2="Sangoma Ring",
back="Toro cape",waist="Soil belt",legs="Shneddick tights +1",feet="Weatherspoon souliers +1"}
sets.JA.VP = {ammo="Aqreaqa bomblet",
head="Whirlpool mask",neck="Asperity necklace", ear1="Steelflash earring", ear2="Bladeborn earring",
body="Qaaxo harness",hands="Qaaxo mitaines",ring1="Epona's ring",ring2="Rajas ring",
back="Atheling mantle",waist="Windbuffet belt",legs="Iuitl tights +1",feet="Qaaxo leggings"}
--Precast Sets--
sets.precast = {}
sets.precast.FC = {head="Runeist bandeau +1",Ear1="Loquacious earring",body="Futhark coat +1",hands="Thaumas gloves",back="Fravashi Mantle",
waist="Siegel Sash",legs="Futhark trousers",feet="Chelona boots"}
sets.enmity = {ammo="Aqreaqa bomblet",head="Runeist bandeau +1",neck="Twilight torque",ear1="Friomisi earring",ear2="Loquacious earring",
body="Futhark coat +1",hands="Futhark mitons +1",ring1="Epona's ring",ring2="Rajas ring",
back="Fravashi mantle",waist="Goading belt",legs="Futhark trousers",feet="Futhark boots +1"}
end
function precast(spell)
if spell.action_type == 'Magic' then
equip(sets.precast.FC)
end
if spell.english == 'Requiescat' then
equip(sets.Requiescat)
send_command('@input /echo Requiescat Set')
elseif spell.english == 'Resolution' then
equip(sets.Resolution)
send_command('@input /echo Resolution Set')
elseif spell.english == 'Ruinator' then
equip(sets.Ruinator)
send_command('@input /echo Ruinator Set')
elseif spell.english == 'Shockwave' then
equip(sets.Shockwave)
send_command('@input /echo Shockwave Set')
elseif spell.english == 'Sanguine Blade' then
equip(sets.JA.Lunge)
send_command('@input /echo Sanguine Blade Set')
elseif spell.english == 'Dimidiation' then
equip(sets.Dimidiation)
send_command('@input /echo Dimidiation Set')
elseif spell.english == 'Herculean Slash' then
equip(sets.JA.Lunge)
send_command('@input /echo Herculean Slash Set')
elseif spell.english == 'Lunge' then
equip(sets.JA.Lunge)
send_command('@input /echo Lunge Set')
elseif spell.english == 'Swipe' then
equip(sets.JA.Lunge)
send_command('@input /echo Lunge Set')
elseif spell.english == 'Swordplay' then
equip({hands="Futhark mitons +1"})
elseif spell.english == 'Battuta' then
equip({head="Futhark Bandeau"})
elseif spell.english == 'Pflug' then
equip({feet="Runeist bottes"})
elseif spell.english == "Vallation" then
equip({body="Runeist Coat",legs="Futhark Trousers"})
elseif spell.english == "Valiance" then
equip({body="Runeist Coat",legs="Futhark Trousers"})
elseif spell.english == "Rayke" then
equip({feet="Futhark boots +1"})
elseif spell.english == "Liement" then
equip({body="Futhark coat +1"})
end
end
function midcast(spell,act)
if spell.action_type == 'Magic' then
if spell.english == 'Phalanx' then
equip({head="Futhark bandeau"})
elseif Enmity_Spells:contains(spell.name) then
equip(sets.enmity)
send_command('@input /echo Enmity Set')
else
equip(sets.precast.FC)
end
end
end
function aftercast(spell)
if player.status == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
send_command('@input /echo TP Set')
else
if Gear_Debug == 0 then
equip(sets.Idle.Standard)
send_command('@input /echo Idle Set')
else
end
end
end
function status_change(new,old)
if new == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
else
equip(sets.Idle.Standard)
end
end
function self_command(command)
if command == 'equip TP set' then
TP_ind = 1
equip(sets.TP[sets.TP.index[TP_ind]])
send_command('@input /echo TP Set')
elseif command == 'equip Idle set' then
equip(sets.Idle.Standard)
send_command('@input /echo Idle Set')
elseif command == 'equip DW set' then
TP_ind = 2
equip(sets.TP[sets.TP.index[TP_ind]])
send_command('@input /echo DW Set')
elseif command == 'equip DT set' then
TP_ind = 6
equip(sets.TP[sets.TP.index[TP_ind]])
send_command('@input /echo DT Set')
elseif command == 'change debug mode' then
if Gear_Debug == 1 then
Gear_Debug = 0
send_command('@input /echo Debug Mode Set to 0')
else
Gear_Debug = 1
send_command('@input /echo Debug Mode Set to 1')
end
end
end
It's self contained, easy to edit, has feedback to let you know it's working and is straight forward. I made it from Bryth's BLU gearswap after heavy editing and simplification. Anyone should be able to figure out it's logic without needing a class in coding.
So I got everything updated and working on this except for //gs c toggle TP set
Any ideas why?
サーバ: Asura
Game: FFXI
Posts: 114
By Asura.Blittzjr 2016-03-17 21:04:34
nvm figured it out
サーバ: Shiva
Game: FFXI
Posts: 694
By Shiva.Alistrianna 2016-03-19 00:06:48
Mote wrote a nice code for customized Runes Timers. The only problem was, he left out the icons.
I was fixing a friend's RUN.lua based on Mote's Libs and figured a way to add icons to the timers. It's not really a big deal I just got tired of looking at all the question marks and the result looks way better. Btw @Ihm it might not be a bad idea to have an icons on/off switch in settings.
Ever since SE added their owns timers I disabled the RUN custom timers in the Mote.lua. The in game timers work just fine and accomplish the same thing.
does anyone have a working Rune Fencer .lua that works off of Mote's includes etc.?
Thanks in advance!
|
|