Lua Small Issue

言語: JP EN DE FR
2010-06-21
New Items
users online
フォーラム » FFXI » Jobs » Warrior » lua small issue
lua small issue
 Asura.Xxpoure
Offline
サーバ: Asura
Game: FFXI
user: Xxpoure
Posts: 27
By Asura.Xxpoure 2022-01-13 11:45:55  
hey guys i have noticed in lua that when i ws the earrings are not changing .. i really for the life of me cannot figure out why .. can some one plz look and see what i messed up plz???
Code
-- Initialization function for this job file.
function get_sets()
    mote_include_version = 2
    include('Mote-Include.lua')
end
 
-- //gs debugmode
-- //gs showswaps
 
function binds_on_load()
-- F9-F12
    send_command('bind f9 gs c cycle OffenseMode')
    send_command('bind f10 gs c cycle HybridMode')
    send_command('bind f11 gs c cycle CastingMode')
    send_command('bind f12 gs c update user')
-- CTRL F9-F12
    send_command('bind ^q gs c mainweapon')
    send_command('bind ^f9 gs c cycle WeaponskillMode')
-- ALT F9-12
    send_command('bind !f9 gs c cycle IdleMode')
    send_command('bind !f10 gs c cycle RangedMode')
    send_command('bind !f12 gs c cycle Kiting')
end
 
function job_setup()
    state.mainweapon = M{['description'] = 'Main Weapon'}
    --state.mainweapon:options('Ragnarok','Reikiko')
    state.mainweapon:options('Ragnarok','Naegling','Chango','Shine','Club')
end
 
function user_setup()
    -- Options: Override default values
    state.OffenseMode:options('Normal', 'LowAcc', 'MidAcc', 'HighAcc')
    state.WeaponskillMode:options('Normal', 'Acc')
    state.HybridMode:options('Normal', 'PDT')
    state.CastingMode:options('Normal', 'Resistant')
    state.IdleMode:options('Normal','PDT')
    state.PhysicalDefenseMode:options('PDT', 'MDT')
 
    Ukon_weapons = S{'Ragnarok'}
    Shield_weapons = S{'Blurred Shield +1'}
	Chango_weapons = S{'Chango'}
	Shine_weapons = S{'Shining One'}
	Club_weapons = S{'Beryllium Mace +1'}
                 
    update_combat_form()
    select_default_macro_book()
end
 
-- Called when this job file is unloaded (eg: job change)
function file_unload()
    if binds_on_unload then
        binds_on_unload()
    end
end
 
sets.mainweapon = {}
    sets.mainweapon.Ragnarok = {
        main="Ragnarok",
        sub="Utu Grip"
    }
    sets.mainweapon.Naegling = {
        main="Naegling",
        sub="Blurred Shield +1"
    }
	sets.mainweapon.Chango = {
        main="Chango",
        sub="Utu Grip"
    }
	sets.mainweapon.Shine = {
        main="Shining One",
        sub="Utu Grip"
    }
	sets.mainweapon.Club = {
        main="Loxotic mace +1",
        sub="Blurred Shield +1"}

    -- Define sets and vars used by this job file.
function init_gear_sets()
-- Precast sets
    sets.precast.JA['Berserk'] = {body="Pumm. Lorica +3",feet="Agoge Calligae +3"}
    sets.precast.JA['Warcry'] = {head="Agoge Mask +3"}
    sets.precast.JA['Aggressor'] = {head="Pummeler's Mask +2",body="Agoge Lorica +3"}
    sets.precast.JA['Blood Rage'] = {body="Boii Lorica +1"}
    sets.precast.JA['Retaliation'] = {feet="Boii Calligae +1",hands="Pummeler's Mufflers +1"}
    sets.precast.JA['Restraint'] = {hands="Boii Mufflers +1"}
    sets.precast.JA['Mighty Strikes'] = {hands="Agoge Mufflers +3"}
    sets.precast.JA['Defender'] = {hands="Agoge Mufflers +3"}
    sets.precast.JA["Warrior's Charge"] = {legs="Agoge Cuisses +3"}
    sets.precast.JA['Provoke'] = {
	ammo="Sapience orb",
    head="Pummeler's Mask +2",
    body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    feet={ name="Souveran Schuhs", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    neck="Unmoving Collar +1",
    waist="Trance Belt",
    left_ear="Friomisi Earring",
    right_ear="Cryptic Earring",
    left_ring="Begrudging ring",
    right_ring="Supershear Ring",
    back={ name="Cichol's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Enmity+10','Damage taken-5%',}},
}
 
-- Fast cast sets for spells
    sets.precast.FC = {         
	    ammo="Impatiens",
        head="Sakpata's helm",
        body="",
        ear1="Loquacious Earring",
        hands="",
        ring1="Rahab ring",
        ring2="Prolix Ring",
        legs="",
        feet=""}
     
    -- Midcast Sets
    sets.midcast.FastRecast = {
    ammo="Staunch Tathlum",
    head="Hjarrandi Helm",
    body="Hjarrandi Breast.",
    hands="Volte Moufles",
    legs="Souv. Diechlings +1",
    feet="Hermes' Sandals",
    neck="War. Beads +2",
    waist="Flume Belt +1",
    left_ear="Odnowa earring +1",
    right_ear="Moonshade earring",
    left_ring="Moonbeam Ring",
    right_ring="Defending Ring",
    back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
}
         
    sets.midcast.Flash = {
    ammo="Aqreqaq Bomblet",
    head="Pummeler's Mask +3",
    body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
    feet={ name="Souveran Schuhs", augments={'HP+80','Enmity+7','Potency of "Cure" effect received +10%',}},
    neck="Unmoving Collar +1",
    waist="Trance Belt",
    left_ear="Friomisi Earring",
    right_ear="Cryptic Earring",
    left_ring="Eihwaz Ring",
    right_ring="Supershear Ring",
    back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
}
         
    -- Resting sets
    sets.resting = {
    ammo="Staunch Tathlum",
    head="Sakpata's Helm",
    body="Sakpata's Plate",
    hands="Sakpata's Gauntlets",
    legs="Sakpata's Cuisses",
    feet="Sulevia's leggings +2",
    neck="War. Beads +2",
    waist="Flume Belt +1",
    left_ear="Odnowa earring +1",
    right_ear="Moonshade earring",
    left_ring="Defending Ring",
    right_ring="Karieyh Ring +1",
    back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
}
 
-- Idle sets
    sets.idle = {
    ammo="Staunch Tathlum +1",
    head="Hjarrandi Helm",
    body="Hjarrandi breastplate",
    hands="Sakpata's Gauntlets",
    legs="Sakpata's Cuisses",
    feet="Flam. Gambieras +2",
    neck={ name="War. Beads +2", augments={'Path: A',}},
    waist="Sailfi Belt +1",
    left_ear="Odnowa earring +1",
    right_ear="Moonshade earring",
    left_ring="Defending Ring",
    right_ring="Karieyh Ring +1",
    back="Moonlight cape"
}
 
    sets.idle.PDT = {
    ammo="Staunch Tathlum +1",
    head="Hjarrandi Helm",
    body="Hjarrandi breastplate",
    hands="Sakpata's Gauntlets",
    legs="Sakpata's Cuisses",
    feet="Flam. Gambieras +2",
    neck={ name="War. Beads +2", augments={'Path: A',}},
    waist="Sailfi Belt +1",
    left_ear="Odnowa earring +1",
    right_ear="Moonshade earring",
    left_ring="Defending Ring",
    right_ring="Niqmaddu Ring",
    back="Moonlight cape"
}
 
    sets.idle.Town = {
    ammo="Staunch Tathlum +1",
    head="Hjarrandi Helm",
    body="Hjarrandi breastplate",
    hands="Sakpata's Gauntlets",
    legs="Sakpata's Cuisses",
    feet="Flam. Gambieras +2",
    neck={ name="War. Beads +2", augments={'Path: A',}},
    waist="Sailfi Belt +1",
    left_ear="Odnowa earring +1",
    right_ear="Moonshade earring",
    left_ring="Defending Ring",
    right_ring="Niqmaddu Ring",
    back="Moonlight cape"
}
    
    sets.engaged = {
         ammo="Coiste bodhar",
         head="Hjarrandi Helm",
         neck="Warrior's Bead Necklace +2",
         ear1="Cessance Earring",
         ear2="Telos Earring",
    	 body="Sakpata's Plate", 
         hands="Sakpata's Gauntlets",
         left_ring="Chirich Ring +1",
         right_ring="Niqmaddu Ring",
         back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
         waist="Ioskeha Belt +1",
         legs="Tatenashi haidate +1",
         feet="Flamma Gambieras +2"
}
         
    
    sets.engaged.Blurred = {
         ammo="Ginsen",
         head="Hjarrandi Helm",
         neck="Warrior's Bead Necklace +2",
         ear1="Cessance Earring",
         ear2="Telos Earring",
    	 body="Sakpata's Plate", 
         hands="Sakpata's Gauntlets",
         left_ring="Chirich Ring +1",
         right_ring="Niqmaddu Ring",
         back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
         waist="Ioskeha Belt +1",
         legs="Tatenashi haidate +1",
         feet="Flamma Gambieras +2"
}
         
    sets.engaged.Blurred.PDT = {
         ammo="Ginsen",
         head="Hjarrandi Helm",
         neck="Warrior's Bead Necklace +2",
         ear1="Cessance Earring",
         ear2="Telos Earring",
    	 body="Sakpata's Plate", 
         hands="Sakpata's Gauntlets",
         left_ring="Chirich Ring +1",
         right_ring="Niqmaddu Ring",
         back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
         waist="Ioskeha Belt +1",
         legs="Tatenashi haidate +1",
         feet="Flamma Gambieras +2"
}
         
    -- Weaponskill sets
    sets.precast.WS = {
    ammo="Knobkierrie",
    head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
    body="Pumm. Lorica +3",
    hands={ name="Odyssean Gauntlets", augments={'Accuracy+11 Attack+11','Weapon skill damage +3%','Accuracy+15','Attack+11',}},
    legs="Nyame flanchard",
    feet="Sulev. Leggings +2",
	left_ear="Ishvara Earring",
    neck="Warrior's bead necklace +2",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    right_ear="Moonshade earring",
    left_ring="Epaminondas's ring",
    right_ring="Niqmaddu Ring",
    back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
    sets.precast.WS.Acc = set_combine(sets.precast.WS, {
    ammo="Knobkierrie",
    head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
    body="Pumm. Lorica +3",
    hands={ name="Valorous Mitts", augments={'Accuracy+20','Weapon skill damage +4%','STR+12',}},
    legs="Sulev. Cuisses +2",
    feet="Sulev. Leggings +2",
    left_ear="Ishvara Earring",
    neck={ name="War. Beads +2", augments={'Path: A',}},
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    right_ear="Thrud earring",
    left_ring="Epaminondas's ring",
    right_ring="Karieyh Ring +1",
    back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
})
         
    sets.precast.WS["Ukko's Fury"] = {
    ammo="Yetshila +1",
    head="Hjarrandi Helm",
    body="Hjarrandi Breast.",
    hands="Flam. Manopolas +2",
    legs="Jokushu haidate",
    feet="Boii calligae +1",
    neck="Warrior's bead necklace +2",
    waist="Sailfi belt +1",
    ear1="Brutal Earring",
    ear2="Moonshade Earring",
    left_ring="Epaminondas's ring",
    right_ring="Niqmaddu Ring",
    back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
    sets.precast.WS["Upheaval"] = {
    ammo="Knobkierrie",
    head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
    body="Pumm. Lorica +3",
    hands="Nyame Gauntlets",
    legs="Nyame flanchard",
    feet="Sulev. Leggings +2",
    neck={ name="War. Beads +2", augments={'Path: A',}},
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    left_ear="Ishvara Earring",
    right_ear="Thrud earring",
    left_ring="Epaminondas's ring",
    right_ring="Karieyh Ring +1",
    back={ name="Cichol's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%',}},
}
         
    sets.precast.WS["Savage Blade"] = {
    ammo="Knobkierrie",
    head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
    body="Pumm. Lorica +3",
    hands="Sakpata's gauntlets",
    legs="Nyame flanchard",
    feet="Sulev. Leggings +2",
    left_ear="Ishvara Earring",
    neck="Warrior's bead necklace +2",
    waist={ name="Sailfi Belt +1", augments={'Path: A',}},
    right_ear="Thrud earring",
    left_ring="Epaminondas's ring",
    right_ring="Karieyh Ring +1",
    back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}

sets.precast.WS["Metatron Torment"] = {
    ammo="Knobkierrie",
    head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
    body="Pumm. Lorica +3",
    hands="Nyame Gauntlets",
    legs="Nyame flanchard",
    feet="Sulev. Leggings +2",
    neck="Warrior's bead necklace +2",
    waist="Sailfi belt +1",
    ear1="Ishvara Earring",
    ear2="Moonshade earring",
    left_ring="Epaminondas's ring",
    right_ring="Niqmaddu Ring",
    back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}


    sets.precast.WS["Full Break"] = {
    ammo="Pemphredo Tathlum",
    head="Hjarrandi Helm",
    body="Sakpata's Plate",
    hands="Flam. Manopolas +2",
    legs="Flamma Dirs +2",
    feet="Flam. Gambieras +2",
    neck="Sanctity Necklace",
    waist="Eschan Stone",
    left_ear="Digni. Earring",
    right_ear="Telos Earring",
    left_ring="Stikini Ring +1",
    right_ring="Stikini Ring +1",
    back={ name="Cichol's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%',}},
}

    sets.precast.WS["Impulse Drive"] = {
    ammo="Knobkierrie",
    head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
    body="Pumm. Lorica +3",
    hands="Nyame Gauntlets",
    legs="Nyame flanchard",
    feet="Sulev. Leggings +2",
    neck="Warrior's bead necklace +2",
    waist="Sailfi belt +1",
    left_ear="Ishvara Earring",
    right_ear="Moonshade earring",
    left_ring="Epaminondas's ring",
    right_ring="Karieyh Ring +1",
    back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}

    sets.precast.WS["Hexa Strike"] = {
    ammo="Yetshila +1",
    head="Hjarrandi Helm",
    body="Hjarrandi Breast.",
    hands="Flam. Manopolas +2",
    legs="Jokushu haidate",
    feet="Boii calligae +1",
    neck="Warrior's bead necklace +2",
    waist="Sailfi belt +1",
    left_ear="Brutal Earring",
    right_ear="Moonshade Earring",
    left_ring="Epaminondas's ring",
    right_ring="Niqmaddu Ring",
    back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','STR+10','Weapon skill damage +10%',}},
}

	sets.precast.WS["Judgement"] = {
    ammo="Knobkierrie",
    head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
    body="Pumm. Lorica +3",
    hands="Nyame Gauntlets",
    legs="Nyame flanchard",
    feet="Sulev. Leggings +2",
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear="Ishvara Earring",
    right_ear="Moonshade earring",
    left_ring="Epaminondas's ring",
    right_ring="Niqmaddu Ring",
    back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','STR+10','Weapon skill damage +10%',}},
}
     
     -- Mighty Strikes WS Set --
    sets.MS_WS = {ammo="Yetshila +1", feet="Boii Calligae +1"}
end
 
-- Job-specific hooks for standard casting events.
function job_midcast(spell, action, spellMap, eventArgs)
  
end
 
-- Called when the player's status changes.
function job_state_change(field, new_value, old_value)
 
end
 
function update_combat_form()
    -- Check Weapontype
    if  Ukon_weapons:contains(player.equipment.main) then
        state.CombatForm:set('Ragnarok')
    elseif
        Shield_weapons:contains(player.equipment.sub) then
        state.CombatForm:set('Blurred')
    elseif
        Chango_weapons:contains(player.equipment.sub) then
        state.CombatForm:set('Chango')
    elseif
        Shine_weapons:contains(player.equipment.sub) then
        state.CombatForm:set('Shine')
	elseif
        Club_weapons:contains(player.equipment.sub) then
        state.CombatForm:set('Club')	
    else
        state.CombatForm:reset()
    end
end
 
function job_self_command(cmdParams, eventArgs)
    command = cmdParams[1]:lower()
    if command=='mainweapon' then
        enable('main','sub')
        mainswap=1
        send_command('gs c cycle mainweapon')
    end
end
 
function job_update(cmdParams, eventArgs)
    update_combat_form()
end
 
-- 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_update(cmdParams, eventArgs)
    update_combat_form()
end
 
-- eventArgs is the same one used in job_precast, in case information needs to be persisted.
moonshade_WS = S{"Resolution", "Torcleaver", "Savage Blade"}
 
function job_post_precast(spell, action, spellMap, eventArgs)
    if spell.type == 'WeaponSkill' then
        if world.time >= (17*60) or world.time <= (7*60) then
            equip({ear1="",ear2=""})
        end
        if moonshade_WS:contains(spell.english) and player.tp<2950 then  
            equip({ear2=""})
        end
        if buffactive['Mighty Strikes'] then 
            if sets.precast.WS[spell] then
                equipSet = sets.precast.WS[spell]
                equipSet = set_combine(equipSet,sets.MS_WS)
                equip(equipSet)
            else
                equipSet = sets.precast.WS
                equipSet = set_combine(equipSet,sets.MS_WS)
                equip(equipSet)
            end
        end
    end
end
 
function customize_idle_set(idleSet)
    if mainswap then
        mainswap=0
        enable('main','sub')
        equip(sets.mainweapon[state.mainweapon.value])
        disable('main','sub')
    end
    if player.mpp < 51 then
        return set_combine(idleSet, sets.latent_refresh)
    end
    if state.Buff.Doom or state.Buff.Curse then
        return set_combine(idleSet, sets.Doom)
    else
        return idleSet
    end
end
 
function customize_melee_set(meleeSet)
    if mainswap then
        mainswap=0
        enable('main','sub')
        equip(sets.mainweapon[state.mainweapon.value])
        disable('main','sub')
    end
    if state.Buff.Aftermath then
        return set_combine(meleeSet, sets.Aftermath)
    end
    if state.Buff.Doom then
        return set_combine(meleeSet, sets.Doom)
    end
    if state.Buff.Curse then
        return set_combine(meleeSet, sets.Curse)
    else
        return meleeSet
    end
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 spellMap == 'Cure' and spell.target.type == 'SELF' then
        equip(sets.midcast.CureSelf)
    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,9 )
    elseif player.sub_job == 'NIN' then
        set_macro_page(1, 9)
    elseif player.sub_job == 'RDM' then
        set_macro_page(1, 9)
    elseif player.sub_job == 'THF' then
        set_macro_page(1, 9)
    else
        set_macro_page(1, 9)
    end
end
 Asura.Cambion
Offline
サーバ: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2022-01-13 12:03:03  
On ANY WS or a specific WS? Which one? Which earring isn't switching, both? Is any other gear switching?

For what it's worth, I've never seen a lua where WS gear wasn't first, but I doubt that's the issue.

More info please
 Asura.Cambion
Offline
サーバ: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2022-01-13 12:24:18  
Nevermind, the issue is that all of your weaponskills are in quotes, and they should be in single... uh... whatever they're called.

Yours:
sets.precast.WS["Savage Blade"] = {}

Mine:
sets.precast.WS['Savage Blade'] = {}

Although... something else is also screwed up. Gimme a minute.
 Leviathan.Boposhopo
Offline
サーバ: Leviathan
Game: FFXI
user: Boposhopo
Posts: 229
By Leviathan.Boposhopo 2022-01-13 12:25:59  
Asura.Xxpoure said: »
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' then
if world.time >= (17*60) or world.time <= (7*60) then
equip({ear1="",ear2=""})
end
if moonshade_WS:contains(spell.english) and player.tp<2950 then
equip({ear2=""})
end

I knew your lua was driving me insane cause it was constantly switching from ear1/ear2 to left_ear/right_ear, but you also have a fuction in there to equip certain earrings based on time of day and TP amount that are labled ear1 and ear2 that are just blank. Likely your issue. I'd get them all consistently on Ear1 and Ear2 instead of having both.
[+]
 Leviathan.Boposhopo
Offline
サーバ: Leviathan
Game: FFXI
user: Boposhopo
Posts: 229
By Leviathan.Boposhopo 2022-01-13 12:27:06  
Asura.Cambion said: »
Nevermind, the issue is that all of your weaponskills are in quotes, and they should be in single... uh... whatever they're called.

Yours:
sets.precast.WS["Savage Blade"] = {}

Mine:
sets.precast.WS['Savage Blade'] = {}

Although... something else is also screwed up. Gimme a minute.

you can do it either way, you can even use no quotes if it's just a single word and isn't a two word WS
 Asura.Cambion
Offline
サーバ: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2022-01-13 13:00:25  
Leviathan.Boposhopo said: »
Asura.Xxpoure said: »
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' then
if world.time >= (17*60) or world.time <= (7*60) then
equip({ear1="",ear2=""})
end
if moonshade_WS:contains(spell.english) and player.tp<2950 then
equip({ear2=""})
end

I knew your lua was driving me insane cause it was constantly switching from ear1/ear2 to left_ear/right_ear, but you also have a fuction in there to equip certain earrings based on time of day and TP amount that are labled ear1 and ear2 that are just blank. Likely your issue. I'd get them all consistently on Ear1 and Ear2 instead of having both.

Beat me to it, but this is the correct answer.
Delete lines 485-490, that are telling it to equip nothing in ear2 during time/tp alternatives. or fill them out correctly, either way
 Asura.Xxpoure
Offline
サーバ: Asura
Game: FFXI
user: Xxpoure
Posts: 27
By Asura.Xxpoure 2022-01-13 13:09:40  
that awesome guys i owe you ... thanks so much
[+]
Log in to post.