Need RDM Lua

Eorzea Time
 
 
 
言語: JP EN FR DE
日本語版のFFXIVPRO利用したい場合は、上記の"JP"を設定して、又はjp.ffxivpro.comを直接に利用してもいいです
users online
フォーラム » FFXI » Jobs » Red Mage » Need RDM lua
Need RDM lua
 Asura.Anierr
Offline
サーバ: Asura
Game: FFXI
user: Anier
Posts: 11
By Asura.Anierr 2020-08-24 22:07:17  
I have been using Elizabeth's lua its really nice with its functionality but so many things dont work. Something is off with refresh midcast/aftercast doesnt equip right. potency/duration arent increased, bunch of other misc stuff are similar stoneskin nukes and others. does anyone have a 100% working or modified to have ELizabeth's working without all the gearswap bugs that dont mind sharing.
 Valefor.Zolan
Offline
サーバ: Valefor
Game: FFXI
Posts: 331
By Valefor.Zolan 2020-08-27 14:17:21  
Did you ever find a suitable rdm.lua? I need one as well
 
Offline
Posts:
By 2020-08-27 19:16:16
 Undelete | Edit  | Link | 引用 | 返事
 
Post deleted by User.
 Asura.Shystie
Offline
サーバ: Asura
Game: FFXI
user: Shystie
Posts: 41
By Asura.Shystie 2020-08-27 22:39:44  
Valefor.Zolan said: »
Did you ever find a suitable rdm.lua? I need one as well

Whoa, guy. Whoa. :D
 Asura.Zmn
Offline
サーバ: Asura
Game: FFXI
user: zmn
Posts: 1
By Asura.Zmn 2020-08-28 05:09:22  
This is what I use for my rdm. It is pretty simple. Only 2 advanced features are:
1. It automatically switches to a Aurora Storm related set if Aurora Storm is up.
2. If composure is up and you are buffing a party member, it uses a different set than buffing yourself.
Code
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job.  Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------

-- Initialization function for this job file.
function get_sets()
    mote_include_version = 2

    -- Load and initialize the include file.
    include('Mote-Include.lua')
end

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

-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------

-- Setup vars that are user-dependent.  Can override this function in a sidecar file.
function user_setup()
  state.OffenseMode:options('Normal', 'SavageBlade', 'SanguineBlade', 'DTME', 'TH')
  state.CastingMode:options('Normal', 'TH')
  state.IdleMode:options('Normal', 'IdleSupport', 'IdleDTME')
  send_command('bind f10 gs c cycle IdleMode')
  send_command('bind f11 gs c cycle CastingMode')
  select_default_macro_book()
end



function file_unload()
	if binds_on_unload then
		binds_on_unload()
	end

	-- Unbinds the Jug Pet, Reward, Correlation, Treasure, PetMode, MDEF Mode hotkeys.
	send_command('unbind !=')
	send_command('unbind ^=')
	send_command('unbind !f8')
	send_command('unbind ^f8')
	send_command('unbind @f8')
	send_command('unbind f10')
	send_command('unbind ^f11')
end


-- Define sets and vars used by this job file.
function init_gear_sets()
  idle = {
    ammo="Homiliary",
    head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
    body="Atrophy Tabard +3",
    hands="Malignance gloves",
    legs="Malignance Tights",
    feet="Malignance Boots",
    neck="Loricate Torque +1",
    waist="Flume Belt",
    left_ear="Ethereal Earring",
    right_ear="Etiolation Earring",
    left_ring="Gelatinous Ring +1",
    right_ring="Defending Ring",
    back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}},
}

  idle_support = set_combine(idle, {
    main="Daybreak",
    sub="Ammurapi Shield",
})

  dtme_idle = set_combine(idle, {
    head="Malignance Chapeau",
    body="Malignance Tabard",
    hands="Malignance gloves",
    legs="Malignance Tights",
    feet="Malignance Boots",
    neck="Loricate Torque +1",
    left_ring="Gelatinous Ring +1",
    right_ring="Defending Ring",
})

  

  fast_cast = {
    head={ name="Merlinic Hood", augments={'Mag. Acc.+26','"Fast Cast"+6','INT+10',}},
    body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
    neck="Voltsurge Torque",
    waist="Embla Sash",
    left_ear="Malignance Earring",
    right_ear="Enchntr. Earring +1",
    left_ring="Kishar Ring",
    back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Fast Cast"+10',}},
   }


  elemental =  {
    main="Daybreak",
    sub="Ammurapi Shield",
    ammo="Pemphredo Tathlum",
    head= "Ea hat",
    body= "Ea houppelande",
    hands={ name="Amalric Gages +1", augments={'INT+12','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
    legs= "Ea Slops",
    feet="Jhakri Pigaches +2",
    neck="Mizu. Kubikazari",
    waist="Sacro Cord",
    left_ear="Friomisi Earring",
    right_ear="Malignance Earring",
    left_ring="Freke Ring",
    right_ring="Mujin Band",
    back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
}

  maccu = {
    main="Daybreak",
    sub="Ammurapi Shield",
    ammo="",
    range="Kaja Bow",
    head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
    body="Atrophy Tabard +3",
    hands={ name="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
    legs={ name="Chironic Hose", augments={'Mag. Acc.+28','Spell interruption rate down -7%','MND+14',}},
    feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
    neck="Dls. Torque +2",
    waist={ name="Acuity Belt +1", augments={'Path: A',}},
    left_ear="Snotra Earring",
    right_ear="Malignance Earring",
    left_ring="Stikini Ring",
    right_ring="Kishar Ring",
    back={ name="Aurist's Cape +1", augments={'Path: A',}},
}

  maccu_white = maccu

  maccu_black = maccu

  maccu_mind_potency = set_combine(maccu,{
    waist="luminary sash"
})

  maccu_skill_potency = set_combine(maccu,{
    waist="luminary sash"
})


  dark_magic = set_combine(maccu_black, {
    main={ name="Rubicundity", augments={'Mag. Acc.+5','"Mag.Atk.Bns."+5','"Conserve MP"+4',}},
    ammo="Pemphredo Tathlum",
    head="Pixie Hairpin +1",
    legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+25','"Drain" and "Aspir" potency +10','"Mag.Atk.Bns."+2',}},
    feet={ name="Merlinic Crackows", augments={'Mag. Acc.+22','"Drain" and "Aspir" potency +10','INT+2','"Mag.Atk.Bns."+1',}},
    neck="Erra Pendant",
    left_ring="Evanescence Ring",
    right_ring="Archon Ring",
})

 
  enhancing_duration = {
    main="Pukulatmuj +1",
    sub="Ammurapi Shield",
    head={ name="Telchine Cap", augments={'Enh. Mag. eff. dur. +10',}},
    body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
    hands="Atrophy Gloves +3",
    legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +10',}},
    feet="Leth. Houseaux +1",
    neck="Dls. Torque +2",
    waist="Embla Sash",
    left_ear="Andoaa Earring",
    right_ear="Mimir Earring",
    left_ring="Stikini Ring",
    right_ring="Stikini Ring",
    back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +8','Enha.mag. skill +8','Mag. Acc.+4','Enh. Mag. eff. dur. +20',}},
}

  enhancing_duration_others = set_combine(enhancing_duration, {
    head="Leth. Chappel +1",
    legs="Leth. Fuseau +1",
})

  enhancing_skill_potency = set_combine(enhancing_duration, {
    main="Pukulatmuj +1",
    sub="Secespita",
    head="Befouled Crown",
    hands={ name="Viti. Gloves +3", augments={'Enhancing Magic duration',}},
    legs="Atrophy Tights +3",
    neck="Melic Torque",
    waist="Olympus Sash",
    
})


  barelemental = set_combine(enhancing_duration, {
     legs="Shedir Seraweels",
})


  stoneskin = set_combine(enhancing_duration,{
    legs="Shedir Seraweels",
})

  gain_spells = set_combine(enhancing_duration,{
    hands={ name="Viti. Gloves +3", augments={'Enhancing Magic duration',}},
})


  protect_shell = set_combine(enhancing_duration, {
    left_ring="Sheltered Ring",
})


  aquaveil = set_combine(enhancing_duration,{
    legs="Shedir Seraweels",
     waist="Emphatikos Rope",
})

  refresh = set_combine(enhancing_duration, {
    body="Atrophy Tabard +3",
    legs="Leth. Fuseau +1",
    back="Grapevine Cape",
})

  enspells = enhancing_skill_potency

  cure_po = {
    head={ name="Vanya Hood", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
    body={ name="Chironic Doublet", augments={'Mag. Acc.+22 "Mag.Atk.Bns."+22','Enmity-1','CHR+7','Mag. Acc.+13','"Mag.Atk.Bns."+13',}},
    hands={ name="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
    legs="Atrophy Tights +3",
    feet={ name="Kaykaus Boots", augments={'MP+60','"Cure" spellcasting time -5%','Enmity-5',}},
    neck="Nuna Gorget +1",
    left_ring="Haoma's Ring",
    right_ring="Sirona's Ring",
    back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Fast Cast"+10',}},
 
} 

  cure_po_aurora = set_combine(cure_po, {
    main="Chatoyant Staff",
    sub="Enki Strap",
    waist="Hachirin-no-Obi",
    back="Twilight Cape",
})


  cursna = {
    head={ name="Vanya Hood", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
    feet="Gende. Galosh. +1",
    neck="Malison Medallion",
    left_ring="Haoma's Ring",
    right_ring="Haoma's Ring",
  }

  chainspell = {
    body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
}

  TH = set_combine(idle, {
    head="Wh. Rarab Cap +1",
    waist="Chaac Belt",
    legs={ name="Merlinic Shalwar", augments={'STR+10','Magic burst dmg.+3%','"Treasure Hunter"+2','Accuracy+7 Attack+7','Mag. Acc.+13 "Mag.Atk.Bns."+13',}},
   })

  ws_magic = set_combine(elemental, {})


  tp = {
    sub="Ammurapi Shield",
    ammo="Ginsen",
    head="Malignance Chapeau",
    body="Malignance Tabard",
    hands="Malignance gloves",
    legs="Malignance Tights",
    feet="Malignance Boots",
    neck="Anu Torque",
    waist="Windbuffet Belt +1",
    left_ear="Cessance Earring",
    right_ear="Sherida Earring",
    left_ring="Chirich Ring",
    right_ring="Petrov Ring",  
    back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}},
  }

  tp_single = set_combine(tp, {
    main="crocea mors",
    sub="Ammurapi Shield",
})

  tp_savage_blade = set_combine(tp, {
    main="naegling",
    sub={ name="Ternion Dagger +1", augments={'Path: A',}},
})

  tp_sanguine_blade = set_combine(tp, {
    main="crocea mors",
    sub="daybreak" 
})

  tp_aeolian_edge = set_combine(tp, {
    sub={ name="Ternion Dagger +1", augments={'Path: A',}},
    sub="daybreak" 
})

  tp_ae = set_combine(tp, {
    main="Ceremonial Dagger",
    sub="Ceremonial Dagger",
})

  dtme_tp = set_combine(tp, {
    head="Malignance Chapeau",
    body="Malignance Tabard",
    hands="Malignance gloves",
    legs="Malignance Tights",
    feet="Malignance Boots",
    neck="Loricate Torque +1",
    left_ring="Gelatinous Ring +1",
    right_ring="Defending Ring",
})

  base_physical_ws = {
    ammo="Voluspa Tathlum",
    head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
    body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
    hands="Atrophy Gloves +3",
    legs="Jhakri Slops +2",
    feet="Jhakri Pigaches +2",
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
    right_ear="Sherida Earring",
    left_ring="Epaminondas's Ring",
    right_ring="Ilabrat Ring",
    back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
 
  savage_blade = set_combine(base_physical_ws, {
    neck="Nuna Gorget +1",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    right_ear="Ishvara Earring",
    right_ring="Rufescent Ring",
})

  black_halo = savage_blade

  base_elemental_ws = {
    ammo="Pemphredo Tathlum",
    head="Jhakri coronal +2",
    body={ name="Chironic Doublet", augments={'Mag. Acc.+22 "Mag.Atk.Bns."+22','Enmity-1','CHR+7','Mag. Acc.+13','"Mag.Atk.Bns."+13',}},
    hands="Jhakri Cuffs +2",
    legs="Jhakri Slops +2",
    feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
    neck="Fotia Gorget",
    waist="Orpheus's Sash",
    left_ear="Malignance Earring",
    right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
    left_ring="freke ring",
    right_ring="Epaminondas's Ring",
    back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%',}},

}

  sanguine_blade = set_combine(base_elemental_ws, {
    head="Pixie Hairpin +1",
    neck="Sanctity Necklace",
    right_ear="friomisi earring",
    left_ring="Archon Ring",
})
    --------------------------------------
    -- Precast sets
    --------------------------------------

    -- Precast sets to enhance JAs
    sets.precast.JA['Chainspell'] = chainspell

    -- Fast cast sets for spells
    sets.precast.FC = fast_cast

    
    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = base_physical_ws

    --for specifc ws
    sets.precast.WS['Seraph Blade'] = base_elemental_ws
    sets.precast.WS['Shining Blade'] = base_elemental_ws
    sets.precast.WS['Aeolian Edge'] = base_elemental_ws
    sets.precast.WS['Red Lotus Blade'] = base_elemental_ws
    sets.precast.WS['Sanguine Blade'] = sanguine_blade

    sets.precast.WS['Savage Blade'] = savage_blade
    sets.precast.WS['Black Halo'] = black_halo


    --------------------------------------
    -- Midcast sets
    --------------------------------------
    -- Base fast recast for spells
    sets.midcast.FastRecast = idle

    sets.midcast['Elemental Magic'] = elemental
    sets.midcast['Elemental Magic'].Helix = helix
 

    --------------------------------------
    -- enfeebling --
    --------------------------------------
    sets.midcast['Enfeebling Magic'] = maccu_white

    sets.midcast.Silence = maccu_white
    sets.midcast.Dia = maccu_white
    sets.midcast.Dia.TH = set_combine(Dia, TH)
    sets.midcast.Inundation = maccu_white

    sets.midcast.Sleep = maccu_black
    sets.midcast.Gravity = maccu_black
    sets.midcast.Dispel = maccu_black
    sets.midcast.Bind = maccu_black
    sets.midcast.Break = maccu_black

    sets.midcast.Slow = maccu_mind_potency
    sets.midcast["Slow II"]= maccu_mind_potency
    sets.midcast.Paralyze = maccu_mind_potency
    sets.midcast["Paralyze II"] = maccu_mind_potency
    sets.midcast.Blind = maccu_mind_potency
    sets.midcast["Blind II"]= maccu_mind_potency

    sets.midcast.Distract = maccu_skill_potency
    sets.midcast["Distract II"] = maccu_skill_potency
    sets.midcast["Distract III"] = maccu_skill_potency
    sets.midcast.Frazzle = maccu_skill_potency
    sets.midcast["Frazzle II"] = maccu_skill_potency
    sets.midcast["Frazzle III"] = maccu_skill_potency
    sets.midcast.Addle = maccu_skill_potency
    sets.midcast["Addle II"] = maccu_skill_potency

    --------------------------------------
    -- enhancing --
    --------------------------------------
    sets.midcast.enhancing_duration_others = enhancing_duration_others

    sets.midcast['Enhancing Magic'] = enhancing_duration

    -- handle some bugged spells here, need to specifically assign them
    sets.midcast.Haste = enhancing_duration
    sets.midcast.Regen = enhancing_duration

    sets.midcast.Temper = enhancing_skill_potency

    sets.midcast.Stoneskin = stoneskin

    sets.midcast.Protect = protect_shell

    sets.midcast.Shell = protect_shell

    sets.midcast.Aquaveil = aquaveil

    sets.midcast.Refresh = refresh

    sets.midcast.Enfire = enspells
    sets.midcast.Enblizzard = enspells
    sets.midcast.Enaero = enspells
    sets.midcast.Enstone = enspells
    sets.midcast.Enthunder = enspells
    sets.midcast.Enwater = enspells

    sets.midcast['Gain-STR'] = gain_spells
    sets.midcast['Gain-DEX'] = gain_spells
    sets.midcast['Gain-VIT'] = gain_spells
    sets.midcast['Gain-AGI'] = gain_spells
    sets.midcast['Gain-INT'] = gain_spells
    sets.midcast['Gain-MND'] = gain_spells
    sets.midcast['Gain-CHR'] = gain_spells

    sets.midcast.Barstone = barelemental
    sets.midcast.Barwater = barelemental
    sets.midcast.Baraero = barelemental
    sets.midcast.Barfire = barelemental
    sets.midcast.Barblizzard = barelemental
    sets.midcast.Barthunder = barelemental

    sets.midcast.Barstonra = barelemental
    sets.midcast.Barwatera = barelemental
    sets.midcast.Baraera = barelemental
    sets.midcast.Barfira = barelemental
    sets.midcast.Barblizzara = barelemental
    sets.midcast.Barthundra = barelemental
    

    --------------------------------------
    -- dark magic --
    --------------------------------------
    sets.midcast['Dark Magic'] = dark_magic

    sets.midcast['Dark Magic'].TH = set_combine(dark_magic, TH)


    --------------------------------------
    -- cure related --
    --------------------------------------
    sets.midcast.Cure = cure_po
    
    sets.midcast.Curaga = cure_po

    sets.midcast.cure_po_aurora = cure_po_aurora

    sets.midcast.Cursna = cursna


    --------------------------------------
    -- Idle/resting/defense/etc sets
    --------------------------------------

    -- Resting sets
    sets.resting = idle


    -- Idle sets
    sets.idle = idle

    sets.idle.IdleSupport = idle_support

    sets.idle.IdleDTME = dtme_idle

    
    --------------------------------------
    -- Engaged sets
    --------------------------------------

    -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
    -- sets if more refined versions aren't defined.
    -- If you create a set with both offense and defense modes, the offense mode should be first.
    -- EG: sets.engaged.Dagger.Accuracy.Evasion

    -- Normal melee group
    sets.engaged = tp_single

    sets.engaged.SavageBlade = tp_savage_blade

    sets.engaged.SanguineBlade = tp_sanguine_blade

    sets.engaged.AeolianEdge = tp_aeolian_edge

    sets.engaged.AEOnly = tp_ae

    sets.engaged.DTME = dtme_tp

    sets.engaged.TH = TH

    --------------------------------------
    -- Custom buff sets
    --------------------------------------

end

-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------

function job_aftercast(spell, action, spellMap, eventArgs)
end


-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
    -- if composure is up and buffing other players, use specific set
    if spell.skill == 'Enhancing Magic' and buffactive.composure and spell.target.type == 'PLAYER' then
        equip(sets.midcast.enhancing_duration_others)

    -- if curing and aurorastorm is up, use aurorastorm set
    elseif spell.skill == 'Healing Magic' and buffactive.Aurorastorm then
        if spell.english == 'Cure' or spell.english == 'Cure II' or spell.english == 'Cure III' or spell.english == 'Cure IV' or spell.english == 'Curaga' or spell.english == 'Curaga II' then
            equip(sets.midcast.cure_po_aurora)
	end
    end
end

-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------

-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)

end

function job_state_change(stateField, newValue, oldValue)

end

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

function job_get_spell_map(spell, default_spell_map)
   
end



-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
    classes.CustomIdleGroups:clear()
    
end

-- Function to display the current relevant user state when doing an update.
function display_current_job_state(eventArgs)
    display_current_caster_state()
    eventArgs.handled = true
end

-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------

-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
    set_macro_page(1, 16)
end