DRK LUA Assistance

Eorzea Time
 
 
 
Language: JP EN FR DE
Version 3.1
New Items
users online
Forum » Windower » General » DRK LUA Assistance
DRK LUA Assistance
 Quetzalcoatl.Balthor
Offline
Server: Quetzalcoatl
Game: FFXI
Posts: 18
By Quetzalcoatl.Balthor 2023-04-18 15:34:56
Link | Quote | Reply
 
I need some help getting this DRK Lua to run. I copied Arislan's, and added my current (still up-and-coming) gear into each section and added my Ragnarok into the "Weapon List" and Weapon Set" sections. I "--" the lines I didn't understand/feel like I needed. I didn't change much of anything else, as far as I know. When I go to load it, it gives me a "Windower/addon/gearswap/data/Dark.lua:88: '<eof>' expected near 'end' " error.

I have no idea of the "language" of Gearswap except to add equipment. Could someone assist me in figuring out what I'm missing? It would be greatly appreciated.

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()
    state.Buff.Hasso = buffactive.Hasso or false
    state.Buff.Souleater = buffactive.souleater or false
    state.Buff['Last Resort'] = buffactive['Last Resort'] or false

    weapon_list = S{"Apocalypse", "Ragnarok", "Naegling",}
    no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
              "Facility Ring", "Capacity Ring"}
    elemental_ws = S{'Dark Harvest','Shadow of Death','Infernal Scythe','Frostbite','Freezebite',"Herculean Slash",
              'Burning Blade','Red Lotus Blade','Shining Blade','Seraph Blade','Sanguine Blade'}

    lockstyleset = 3
end

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

-- Setup vars that are user-dependent.
function user_setup()
    state.OffenseMode:options('STP', 'Normal', 'LowAcc', 'MidAcc', 'HighAcc')
    state.HybridMode:options('Normal', 'DT')
    state.WeaponskillMode:options('Normal', 'Acc')
    state.PhysicalDefenseMode:options('PDT', 'MDT')
    state.IdleMode:options('Normal', 'DT')

    state.WeaponSet = M{['description']='Weapon Set', 'Ragnarok', 'Apocalypse'}

    state.MagicBurst = M(false, 'Magic Burst')
    state.Critical = M(false, 'Critical Aftermath TP')
    state.CP = M(false, "Capacity Points Mode")

    -- Additional local binds
    include('Global-Binds.lua') -- OK to remove this line
    include('Global-BRD-Binds.lua') -- OK to remove this line

    --send_command('bind !` gs c toggle MagicBurst')
    --send_command('bind @a gs c toggle Critical')
    --send_command('bind @c gs c toggle CP')
    --send_command('bind @e gs c cycleback WeaponSet')
    --send_command('bind @r gs c cycle WeaponSet')

    --send_command('bind !q input /ma "Drain III" <t>')
    --send_command('bind !w input /ja "Last Resort" <me>')
    --send_command('bind !e input /ja "Hasso" <me>')
    --send_command('bind !p input /ma "Dread Spikes" <me>')

   -- if player.sub_job == 'WAR' then
     --   send_command('bind ^numpad/ input /ja "Berserk" <me>')
       -- send_command('bind ^numpad* input /ja "Warcry" <me>')
        --send_command('bind ^numpad- input /ja "Aggressor" <me>')
--    elseif player.sub_job == 'SAM' then
  --      send_command('bind ^numpad/ input /ja "Meditate" <me>')
    --    send_command('bind ^numpad* input /ja "Sekkanoki" <me>')
      --  send_command('bind ^numpad- input /ja "Third Eye" <me>')
    end


--    send_command('bind ^numpad7 input /ws "Resolution" <t>')
  --  send_command('bind ^numpad5 input /ws "Torcleaver" <t>')
    --send_command('bind ^numpad1 input /ws "Freezebite" <t>')

    select_default_macro_book()
    set_lockstyle()

    state.Auto_Kite = M(false, 'Auto_Kite')
    Haste = 0
    DW_needed = 0
    DW = false
    moving = false
    update_combat_form()
    determine_haste_group()
    get_combat_weapon()
end


-- Called when this job file is unloaded (eg: job change)
function user_unload()
    send_command('unbind !`')
    send_command('unbind !q')
    send_command('unbind !w')
    send_command('bind !e input /ma "Haste" <stpc>')
    send_command('unbind !p')
    send_command('unbind @a')
    send_command('unbind @c')
    send_command('unbind @e')
    send_command('unbind @r')

    send_command('unbind ^numpad/')
    send_command('unbind ^numpad*')
    send_command('unbind ^numpad-')
    send_command('unbind ^numpad7')
    send_command('unbind ^numpad8')
    send_command('unbind ^numpad4')
    send_command('unbind ^numpad5')
    send_command('unbind ^numpad6')
    send_command('unbind ^numpad1')
end

function get_sets()
    
    -- JSE
    AF = {}         -- leave this empty
    RELIC = {}      -- leave this empty
    EMPY = {}       -- leave this empty


	-- Fill this with your own JSE. 
    --Ignominy
    AF.Head		=	""
    AF.Body		=	"Ignominy Cuirass +1"
    AF.Hands	=	""
    AF.Legs		=	"Ignominy Flanchard +1"
    AF.Feet		=	""

    --Fallen's
    RELIC.Head		=	"Fallen's Burgeonet +3"
    RELIC.Body		=	"Fallen's Cuirass +1"
    RELIC.Hands 	=	"Fallen's Finger Gauntlets +1"
    RELIC.Legs		=	"Fallen's Flanchard +3"
    RELIC.Feet		=	"Fallen's Sollerets"

    --Heathen's
    EMPY.Head		=	"Heathen's Burgeonet +2"
    EMPY.Body		=	"Heathen's Cuirass +2"
    EMPY.Hands		=	"Heathen's Gauntlets +2"
    EMPY.Legs		=	"Heathen's Flanchard +2"
    EMPY.Feet		=	"Heathen's Sollerets +2"

	--Sulevia's
	SulHead			=	"Sulevia's Mask"
	SulBod			=	"Sulevia's Platemail +1"
	SulHands		=	"Sulevia's Gauntlets +1"
	SulLegs			=	"Sulevia's Cuisses +1"
	SulFeet			=	"Sulevia's Leggings +1"
	
	--Flamma
	FlamHead		=	"Flamma Zucchetto"
	FlamBod			=	"Flamma Korazin"
	FlamHand		=	"Flamma Manopolas"
	FlamLeg			=	"Flamma Dirs"
	FlamFeet		=	"Flamma Gambieras +2"
	
    -- Capes:
    -- Sucellos's And such, add your own.
	AthMan 			=	"Atheling Mantle"
    DRKCape = {}
    --DRKCape.TP		=	{ name="", augments={}}
    DRKCape.WS		=	{ name="Niht Mantle", augments={'Attack+5','Dark magic skill +6','"Drain" and "Aspir" potency +19','Weapon skill damage +2%',}}
   
end


-- Define sets and vars used by this job file.
function init_gear_sets()

    ------------------------------------------------------------------------------------------------
    ---------------------------------------- Precast Sets ------------------------------------------
    ------------------------------------------------------------------------------------------------

    ---- Precast Sets ----

    -- Enmity set
    sets.Enmity = {}

    -- Precast sets to enhance JAs
    --sets.precast.JA['Arcane Circle'] = {feet="Ig. Sollerets +3"}
    sets.precast.JA['Blood Weapon'] = {body=RELIC.Body}
    sets.precast.JA['Dark Seal'] = {head=RELIC.Head}
    sets.precast.JA['Diabolic Eye'] = {hands=RELIC.Hands}
    sets.precast.JA['Last Resort'] = {feet=RELIC.Feet} --back=gear.DRK_DA_Cape,}
    sets.precast.JA['Nether Void'] = {legs=EMPY.Legs}
    --sets.precast.JA['Souleater'] = {head="Ig. Burgonet +3"}
    --sets.precast.JA['Weapon Bash'] = {hands="Ig. Gauntlets +2"}

    sets.precast.FC = {
        head="Cizin Helm +1",		--5
		neck="Orunmila's Torque",	--5
        ear1="Malignance Earring",	--4
        ear2="Loquacious Earring",	--2
        hands="Buremte Gloves",		--3
        ring1="Kishar Ring",		--4
        ring2="Prolix Ring", 		--2, 10 macc
        legs="Enif Cosciales",		--8
		feet="Carmine Greaves +1",	--8
        back=""
		--41 Total
    }

    sets.precast.FC['Dark Magic'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet +3"})

    sets.precast.FC['Drain'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet +3"})			--12
    sets.precast.FC['Drain II'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet +3"})			--12
    sets.precast.FC['Drain III'] = set_combine(sets.precast.FC, {head="Fallen's Burgeonet +3"})			--12
		--48 with above
    

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

    sets.precast.WS = {
		ammo		=	"Seething Bomblet",
        head		=	RELIC.Head,
        body		=	EMPY.Body,
        hands		=	EMPY.Hands,
        left_ring	=	"Mars's Ring",         
        legs		=	RELIC.Legs,
        feet		=	EMPY.Feet,
        neck		=	"Justiciar's Torque",
        waist		=	"Fotia Belt",
        left_ear	=	"Bladeborn Earring",
        right_ear	=	"Heathen's Earring",
        right_ring	=	"Niqmaddu Ring",
        back		=	DRKCape.WS,
        }

    sets.precast.WS.Acc = set_combine(sets.precast.WS, {
        head		=	EMPY.Head,
		right_ring	=	"Patricius Ring",
		waist		=	"Eschan Stone",
		left_ear	=	"Steelflash Earring",
        })

            -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
    sets.precast.WS['Catastrophe'] = set_combine(sets.precast.WS, {waist="Prosilio Belt +1"})
                     
    --sets.precast.WS['Catastrophe'].Acc = {}
                     
    sets.precast.WS['Sanguine Blade'] = {}
      
    sets.precast.WS['Torcleaver'] = set_combine(sets.precast.WS, {waist="Prosilio Belt +1"})
                     
    --sets.precast.WS['Torcleaver'].Acc = {}
 
    sets.precast.WS['Scourge'] = set_combine(sets.precast.WS, {waist="Prosilio Belt +1"})
 
    --sets.precast.WS['Scourge'].Acc = {}
 
    sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {waist="Prosilio Belt +1"})
             
    --sets.precast.WS['Requiescat'] = {}
             
    sets.precast.WS['Cross Reaper'] = set_combine(sets.precast.WS, {waist="Prosilio Belt +1"})
                     
    --sets.precast.WS['Cross Reaper'].Acc = {}
                     
    sets.precast.WS['Quietus'] = set_combine(sets.precast.WS, {waist="Prosilio Belt +1"})
                     
    --sets.precast.WS['Quietus'].Acc = {}
                     
    --sets.precast.WS['Entropy'] = {}
 
                     
    --sets.precast.WS['Entropy'].Acc = {}
 
    sets.precast.WS['Insurgency'] = set_combine(sets.precast.WS, {waist="Prosilio Belt +1"})
 
                     
    --sets.precast.WS['Insurgency'].Acc = {}
                     
    --sets.precast.WS['Resolution'] = {}
                     
    --sets.precast.WS['Resolution'].Acc = {}
                                
    ------------------------------------------------------------------------------------------------
    ---------------------------------------- Midcast Sets ------------------------------------------
    ------------------------------------------------------------------------------------------------

    sets.midcast.FastRecast = sets.precast.FC

    sets.midcast['Enfeebling Magic'] = {
		ammo		=	"Plumose Sachet",
        head		=	"Befouled Crown",
        body		=	EMPY.Body,
        hands		=	EMPY.Hands,
        left_ring	=	"Kishar Ring",         
        legs		=	EMPY.Legs,
        feet		=	EMPY.Feet,
        neck		=	"Eddy Necklace",
        waist		=	"Eschan Stone",
        left_ear	=	"Malignance Earring",
        right_ear	=	"Heathen's Earring",
        right_ring	=	"Fenrir Ring +1",
        back		=	"Mollusca Mantle",
        }

    sets.midcast['Dark Magic'] = {
		ammo		=	"Plumose Sachet",
        head		=	EMPY.Head,
        body		=	EMPY.Body,
        hands		=	RELIC.Hands,
        left_ring	=	"Kishar Ring",         
        legs		=	EMPY.Legs,
        feet		=	EMPY.Feet,
        neck		=	"Erra Pendant",
        waist		=	"Eschan Stone",
        left_ear	=	"Malignance Earring",
        right_ear	=	"Friomisi Earring",
        right_ring	=	"Fenrir Ring +1",
        back		=	DRKCape.WS,
        }

    sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
        hands		=	EMPY.Hands,
        --feet="Ig. Sollerets +3",
        --ear1="Hirudinea Earring",
        --ring1="Evanescence Ring",
        right_ring	=	"Archon Ring",
        back		=	"Niht Mantle",
        --waist="Austerity Belt +1",
        })

    sets.midcast.Aspir = sets.midcast.Drain

    sets.midcast.Absorb = set_combine(sets.midcast['Dark Magic'], {
        head="Ig. Burgonet +3",
        hands="Pavor Gauntlets",
        ring1="Kishar Ring",
        back="Chuparrosa Mantle",
        waist="Casso Sash",
        })

    sets.midcast['Absorb-TP'] = set_combine(sets.midcast.Absorb, {hands="Heath. Gauntlets +2"})

    sets.midcast.Stun = {
		ammo		=	"Plumose Sachet",
        head		=	"Befouled Crown",
        body		=	EMPY.Body,
        hands		=	EMPY.Hands,
        left_ring	=	"Kishar Ring",         
        legs		=	EMPY.Legs,
        feet		=	EMPY.Feet,
        neck		=	"Eddy Necklace",
        waist		=	"Eschan Stone",
        left_ear	=	"Malignance Earring",
        right_ear	=	"Heathen's Earring",
        right_ring	=	"Fenrir Ring +1",
        back		=	"Mollusca Mantle",
		}

    sets.midcast['Dread Spikes'] = set_combine(sets.midcast['Dark Magic'], {
		body		=	AF.Body,
		left_ear	=	"Moonshade Earring",
		right_ear	=	"Ethereal Earring",
		left_ring	=	"Kunaj Ring",
		right_ring	=	"Gelatinous Ring",
		legs		=	RELIC.Legs,
		feet		=	FlamFeet,
        })
		
    sets.midcast['Elemental Magic'] = {
		ammo		=	"Plumose Sachet",
        head		=	"Jumalik Helm",
        body		=	AF.Body,
        hands		=	AF.Hands,
        left_ring	=	"Kishar Ring",         
        legs		=	EMPY.Legs,
        feet		=	EMPY.Feet,
        neck		=	"Stoicheion Medal",
        waist		=	"Eschan Stone",
        left_ear	=	"Malignance Earring",
        right_ear	=	"Friomisi Earring",
        right_ring	=	"Fenrir Ring +1",
        back		=	"Argochampsa Mantle",
		}
             

    ------------------------------------------------------------------------------------------------
    ----------------------------------------- Idle Sets --------------------------------------------
    ------------------------------------------------------------------------------------------------

    sets.idle = {
		ammo		=	"Demonry Stone",
        head		=	"Jumalik Helm",
        body		=	EMPY.Body,
        hands		=	EMPY.Hands,
        left_ring	=	"Defending Ring",         
        legs		=	EMPY.Legs,
        feet		=	EMPY.Feet,
        neck		=	"Twilight Torque",
        waist		=	"Flume Belt",
        left_ear	=	"Ethereal Earring",
        right_ear	=	"Moonshade Earring",
        right_ring	=	"Woltaris Ring +1",
        back		=	"Mollusca Mantle",
        }

--    sets.idle.DT = set_combine(sets.idle, {
  --      ammo="Staunch Tathlum +1", --3/3
    --    head="Hjarrandi Helm", --10/10
      --  body="Hjarrandi Breast.", --12/12
        --neck="Loricate Torque +1", --6/6
--        ear1="Odnowa Earring +1", --3/5
  --      ring1="Defending Ring", --10/10
    --    back="Moonlight Cape", --6/6
      --  })

--    sets.idle.Town = set_combine(sets.idle, {
  --      head="Volte Salade",
    --    body="Ignominy Cuirass +3",
      --  hands="Rat. Gadlings +1",
        --legs="Fall. Flanchard +3",
--        feet="Rat. Sollerets +1",
  --      neck="Abyssal Beads +2",
    --    ear1="Odnowa Earring +1",
      --  ear2="Thrud Earring",
        --ring1={name="Chirich Ring +1", bag="wardrobe3"},
--        ring2={name="Chirich Ring +1", bag="wardrobe4"},
  --      back=gear.DRK_DA_Cape,
    --    })

    sets.idle.Weak = set_combine(sets.idle, {})

    ------------------------------------------------------------------------------------------------
    ---------------------------------------- Defense Sets ------------------------------------------
    ------------------------------------------------------------------------------------------------

    sets.defense.PDT = sets.idle.DT
    sets.defense.MDT = sets.idle.DT

    ------------------------------------------------------------------------------------------------
    ---------------------------------------- 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

    sets.engaged = {
		ammo		=	"Ginsen",
        head		=	EMPY.Head,
        body		=	EMPY.Body,
        hands		=	"Eschite Gauntlets",
        left_ring	=	"Cacoethic Ring +1",         
        legs		=	EMPY.Legs,
        feet		=	EMPY.Feet,
        neck		=	"Asperity Necklace",
        waist		=	"Ioskeha Belt",
        left_ear	=	"Brutal Earring",
        right_ear	=	"Heathen's Earring",
        right_ring	=	"Niqmaddu Ring",
        back		=	"Atheling Mantle",
        }

    sets.engaged.LowAcc = set_combine(sets.engaged, {})
    sets.engaged.MidAcc = set_combine(sets.engaged.LowAcc, {})
    sets.engaged.HighAcc = set_combine(sets.engaged.MidAcc, {})

    sets.engaged.STP = set_combine(sets.engaged, {})

    sets.engaged.Caladbolg = set_combine(sets.engaged, {})
    sets.engaged.Caladbolg.LowAcc = set_combine(sets.engaged.Apocalypse, {})
    sets.engaged.Caladbolg.MidAcc = set_combine(sets.engaged.Apocalypse, {})

    sets.engaged.Caladbolg.HighAcc = set_combine(sets.engaged.Apocalypse, {})

--    sets.engaged.Caladbolg.Aftermath = {
  --      ammo="Yetshila +1", --2/6
    --    --head="Blistering Sallet +1", --10/0
      --  body="Hjarrandi Breast.", --13/0
        --hands="Flam. Manopolas +2", --8/0,
        --legs="Zoar Subligar +1", --5/0
        --feet="Valorous Greaves", --0/4
--        neck="Abyssal Beads +2", --4/0
  --      ring1="Hetairoi Ring", --1/0
        --back=gear.DRK_Crit_Cape, --10/0
    --    }
	
	sets.engaged.Ragnarok = set_combine(sets.engaged, {
		hands		=	EMPY.Hands,
		})

    sets.engaged.Apocalypse = set_combine(sets.engaged, {})

    sets.engaged.Apocalypse.LowAcc = set_combine(sets.engaged.Apocalypse, {})
    sets.engaged.Apocalypse.MidAcc = set_combine(sets.engaged.Apocalypse, {})

    sets.engaged.Apocalypse.HighAcc = set_combine(sets.engaged.Apocalypse, {})

    ------------------------------------------------------------------------------------------------
    ---------------------------------------- Hybrid Sets -------------------------------------------
    ------------------------------------------------------------------------------------------------

--    sets.engaged.Hybrid = {
  --      ammo="Seeth. Bomblet +1",
    --    legs="Sulev. Cuisses +2",
      --  ring1="Defending Ring",
        --}

    sets.engaged.DT = set_combine(sets.engaged, sets.engaged.Hybrid)
    sets.engaged.LowAcc.DT = set_combine(sets.engaged.LowAcc, sets.engaged.Hybrid)
    sets.engaged.MidAcc.DT = set_combine(sets.engaged.MidAcc, sets.engaged.Hybrid)
    sets.engaged.HighAcc.DT = set_combine(sets.engaged.HighAcc, sets.engaged.Hybrid)
    sets.engaged.STP.DT = set_combine(sets.engaged.STP, sets.engaged.Hybrid)

    ------------------------------------------------------------------------------------------------
    ---------------------------------------- Special Sets ------------------------------------------
    ------------------------------------------------------------------------------------------------

    sets.magic_burst = {}

    sets.Kiting = {legs="Carmine Cuisses +1"}
    sets.latent_refresh = {waist="Fucho-no-obi"}
--    sets.buff.Doom = {ring1={name="Saida Ring", bag="wardrobe3"}, ring2={name="Saida Ring", bag="wardrobe4"},}
--    sets.CP = {back="Mecisto. Mantle"}

    sets.Caladbolg = {main="Caladbolg", sub="Utu Grip"}
    sets.Apocalypse = {main="Apocalypse", sub="Utu Grip"}
	sets.Ragnarok	=	{main="Ragnarok", sub="Dilettante's Grip +1"}

end


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

-- Run after the default precast() is done.
-- eventArgs is the same one used in job_precast, in case information needs to be persisted.
function job_precast(spell, action, spellMap, eventArgs)

end


-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_aftercast(spell, action, spellMap, eventArgs)

end

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


    check_weaponset()
end

-- 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)

--    if buffactive['Reive Mark'] then
--        if gain then
--            equip(sets.Reive)
--            disable('neck')
--        else
--            enable('neck')
--        end
--    end

    if buff == "doom" then
        if gain then
            equip(sets.buff.Doom)
            send_command('@input /p Doomed.')
            disable('ring1','ring2','waist')
        else
            enable('ring1','ring2','waist')
            handle_equipping_gear(player.status)
        end
    end

end

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

-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_handle_equipping_gear(playerStatus, eventArgs)
    check_gear()
    update_combat_form()
    determine_haste_group()
    check_moving()
end

function job_update(cmdParams, eventArgs)
    handle_equipping_gear(player.status)
    get_combat_weapon()
end

function update_combat_form()
    if DW == true then
        state.CombatForm:set('DW')
    elseif DW == false then
        state.CombatForm:reset()
    end
end

function get_custom_wsmode(spell, action, spellMap)
    local wsmode
    if state.OffenseMode.value == 'MidAcc' or state.OffenseMode.value == 'HighAcc' then
        wsmode = 'Acc'
    end

    return wsmode
end

-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
    if player.mpp < 51 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
    if state.CP.current == 'on' then
         equip(sets.CP)
         disable('back')
     else
         enable('back')
     end
    if state.Auto_Kite.value == true then
       idleSet = set_combine(idleSet, sets.Kiting)
    end

    return idleSet
end

-- Modify the default melee set after it was constructed.
function customize_melee_set(meleeSet)
    if buffactive['Aftermath: Lv.3'] and player.equipment.main == "Caladbolg"
        and state.Critical.value then

        meleeSet = set_combine(meleeSet, sets.engaged.Caladbolg.Aftermath)
    end

    return meleeSet
end


-- Function to display the current relevant user state when doing an update.
-- Return true if display was handled, and you don't want the default info shown.
function display_current_job_state(eventArgs)
    local cf_msg = ''
    if state.CombatForm.has_value then
        cf_msg = ' (' ..state.CombatForm.value.. ')'
    end

    local m_msg = state.OffenseMode.value
    if state.HybridMode.value ~= 'Normal' then
        m_msg = m_msg .. '/' ..state.HybridMode.value
    end

    local ws_msg = state.WeaponskillMode.value

    local c_msg = state.CastingMode.value

    local d_msg = 'None'
    if state.DefenseMode.value ~= 'None' then
        d_msg = state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value
    end

    local i_msg = state.IdleMode.value

    local msg = ''
    if state.MagicBurst.value then
        msg = ' Burst: On |'
    end
    if state.Kiting.value then
        msg = msg .. ' Kiting: On |'
    end

    add_to_chat(002, '| ' ..string.char(31,210).. 'Melee' ..cf_msg.. ': ' ..string.char(31,001)..m_msg.. string.char(31,002)..  ' |'
        ..string.char(31,207).. ' WS: ' ..string.char(31,001)..ws_msg.. string.char(31,002)..  ' |'
        ..string.char(31,060).. ' Magic: ' ..string.char(31,001)..c_msg.. string.char(31,002)..  ' |'
        ..string.char(31,004).. ' Defense: ' ..string.char(31,001)..d_msg.. string.char(31,002)..  ' |'
        ..string.char(31,008).. ' Idle: ' ..string.char(31,001)..i_msg.. string.char(31,002)..  ' |'
        ..string.char(31,002)..msg)

    eventArgs.handled = true
end

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

function get_combat_weapon()
    state.CombatWeapon:reset()
    if weapon_list:contains(player.equipment.main) then
        state.CombatWeapon:set(player.equipment.main)
    end
end

function determine_haste_group()
    classes.CustomMeleeGroups:clear()
    if DW == true then
        if DW_needed <= 11 then
            classes.CustomMeleeGroups:append('MaxHaste')
        elseif DW_needed > 11 and DW_needed <= 21 then
            classes.CustomMeleeGroups:append('HighHaste')
        elseif DW_needed > 21 and DW_needed <= 27 then
            classes.CustomMeleeGroups:append('MidHaste')
        elseif DW_needed > 27 and DW_needed <= 37 then
            classes.CustomMeleeGroups:append('LowHaste')
        elseif DW_needed > 37 then
            classes.CustomMeleeGroups:append('')
        end
    end
end

function job_self_command(cmdParams, eventArgs)
    gearinfo(cmdParams, eventArgs)
end

function gearinfo(cmdParams, eventArgs)
    if cmdParams[1] == 'gearinfo' then
        if type(tonumber(cmdParams[2])) == 'number' then
            if tonumber(cmdParams[2]) ~= DW_needed then
            DW_needed = tonumber(cmdParams[2])
            DW = true
            end
        elseif type(cmdParams[2]) == 'string' then
            if cmdParams[2] == 'false' then
                DW_needed = 0
                DW = false
            end
        end
        if type(tonumber(cmdParams[3])) == 'number' then
            if tonumber(cmdParams[3]) ~= Haste then
                Haste = tonumber(cmdParams[3])
            end
        end
        if type(cmdParams[4]) == 'string' then
            if cmdParams[4] == 'true' then
                moving = true
            elseif cmdParams[4] == 'false' then
                moving = false
            end
        end
        if not midaction() then
            job_update()
        end
    end
end

function check_moving()
    if state.DefenseMode.value == 'None'  and state.Kiting.value == false then
        if state.Auto_Kite.value == false and moving then
            state.Auto_Kite:set(true)
        elseif state.Auto_Kite.value == true and moving == false then
            state.Auto_Kite:set(false)
        end
    end
end

function check_gear()
    if no_swap_gear:contains(player.equipment.left_ring) then
        disable("ring1")
    else
        enable("ring1")
    end
    if no_swap_gear:contains(player.equipment.right_ring) then
        disable("ring2")
    else
        enable("ring2")
    end
end

function check_weaponset()
    equip(sets[state.WeaponSet.current])
end

windower.register_event('zone change',
    function()
        if no_swap_gear:contains(player.equipment.left_ring) then
            enable("ring1")
            equip(sets.idle)
        end
        if no_swap_gear:contains(player.equipment.right_ring) then
            enable("ring2")
            equip(sets.idle)
        end
    end
)

-- Select default macro book on initial load or subjob change.
--function select_default_macro_book()
    -- Default macro set/book
  --  if player.sub_job == 'SAM' then
    --    set_macro_page(1, 4)
   -- elseif player.sub_job == 'WAR' then
     --   set_macro_page(1, 4)
   -- else
     --   set_macro_page(1, 4)
    --end
end

function set_lockstyle()
    send_command('wait 2; input /lockstyle on ' .. lockstyleset)
end
Offline
Posts: 503
By Vaerix 2023-04-18 16:30:48
Link | Quote | Reply
 
Comment out(--) the end at line 70 should fix the problem or give more error codes that need to be fixed. You don't have to copy the whole Lua again, if it keeps giving error codes keep reporting them and I'll look at it.
 Quetzalcoatl.Balthor
Offline
Server: Quetzalcoatl
Game: FFXI
Posts: 18
By Quetzalcoatl.Balthor 2023-04-18 16:34:44
Link | Quote | Reply
 
Done. Now it has same error, but says "****/Dark.lua:556: '<eof>' expected near 'end' .
Offline
Posts: 503
By Vaerix 2023-04-18 16:35:40
Link | Quote | Reply
 
Because you have an undeclared function at 554, either create a function or comment out lines 555/556