Item Search
     
BG-Wiki Search
Page 211 of 302 FirstFirst ... 161 201 209 210 211 212 213 221 261 ... LastLast
Results 4201 to 4220 of 6036

Thread: Gearswap Help Thread!     submit to reddit submit to twitter

  1. #4201
    Hydra
    Join Date
    Feb 2014
    Posts
    131
    BG Level
    3
    FFXI Server
    Quetzalcoatl

    Quote Originally Posted by JustinS1985 View Post
    So I went and found another template, tried to input my gear into that one, getting an error User File problem: filepath every time I try to load it. Here's the new template as well, any help with what I'm doing wrong with either this one or the previous posted template would be appreciated.


    Code:
    -------------------------------------------------------------------------------------------------------------------
    -- Initialization function that defines sets and variables to be used.
    -------------------------------------------------------------------------------------------------------------------
     
    -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
     
    -- 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.
    function job_setup()
        get_combat_form()
        include('Mote-TreasureHunter')
        state.TreasureMode:set('Tag')
         
        state.CapacityMode = M(false, 'Capacity Point Mantle')
         
        -- list of weaponskills that make better use of otomi helm in low acc situations
        wsList = S{'Drakesbane'}
     
        state.Buff = {}
        -- JA IDs for actions that always have TH: Provoke, Animated Flourish
        info.default_ja_ids = S{35, 204}
        -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
        info.default_u_ja_ids = S{201, 202, 203, 205, 207}
    end
     
     
    -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
    function user_setup()
        -- Options: Override default values
        state.OffenseMode:options('Normal', 'Mid', 'Acc')
        state.HybridMode:options('Normal', 'PDT', 'Reraise')
        state.WeaponskillMode:options('Normal', 'Mid', 'Acc')
        state.PhysicalDefenseMode:options('PDT', 'Reraise')
        state.MagicalDefenseMode:options('MDT')
         
        war_sj = player.sub_job == 'WAR' or false
     
        select_default_macro_book(1, 16)
        send_command('bind != gs c toggle CapacityMode')
        send_command('bind ^= gs c cycle treasuremode')
        send_command('bind ^[ input /lockstyle on')
        send_command('bind ![ input /lockstyle off')
    end
     
     
    -- Called when this job file is unloaded (eg: job change)
    function file_unload()
        send_command('unbind ^[')
        send_command('unbind ![')
        send_command('unbind ^=')
        send_command('unbind !=')
    end
     
     
    -- Define sets and vars used by this job file.
    function init_gear_sets()
    --------------------------------------
        -- Start defining the sets
        --------------------------------------
         
        -- Precast Sets
        -- Precast sets to enhance JAs
        sets.precast.JA.Angon = {ammo="Angon",hands="Gorney Moufles +1"}
        sets.CapacityMantle = {back="Atheling Mantle"}
        sets.Berserker = {neck="Chivalrous Chain"}
        sets.WSDayBonus     = { head="Gorney Morion +1" }
     
        sets.precast.JA.Jump = {
            ammo="Angon",
            head="Gorney Morion +1",neck="Chivalrous Chain",ear1="Ghillie Earring +1",ear2="Brutal Earring",
            body="Vishap Mail",hands="Gorney Moufles +1",ring1="Rajas Ring",ring2="Tyrant's Ring",
            back="Atheling Mantle",waist="Zoran's Belt",legs="Gor. Brayettes +1",feet="Gor. Sollerets +1"}
     
        sets.precast.JA['Ancient Circle'] = { legs="Gor. Brayettes +1" }
        sets.TreasureHunter = {waist="Zoran's Belt"}
     
        sets.precast.JA['High Jump'] = set_combine(sets.precast.JA.Jump, {
        }) 
        sets.precast.JA['Soul Jump'] = set_combine(sets.precast.JA.Jump, {
            legs="Lancer's Cuissots +2",
            body="Lancer's Plackart +2"
        })
        sets.precast.JA['Spirit Jump'] = set_combine(sets.precast.JA.Jump, {
            legs="Lancer's Cuissots +2",
            body="Lancer's Plackart +2",
            feet="Lancer's Schynbalds +2"})
        sets.precast.JA['Super Jump'] = sets.precast.JA.Jump
     
        sets.precast.JA['Spirit Link'] = {hands="Lancer's Vambraces +2", head="Gorney Morion +1"}
        sets.precast.JA['Call Wyvern'] = {body="Wym. Mail +2"}
        sets.precast.JA['Deep Breathing'] = {head="Petroslaver Armet"}
         
        sets.precast.JA['Spirit Surge'] = { --body="Wyrm Mail +2"
        }
         
        -- Healing Breath sets
        sets.HB = {ammo="Angon",
            head="Gorney Morion +1",neck="Chivalrous Chain",ear1="Ghillie Earring +1",ear2="Brutal Earring",
            body="Vishap Mail",hands="Gorney Moufles +1",ring1="Rajas Ring",ring2="Tyrant's Ring",
            back="Atheling Mantle",waist="Zoran's Belt",legs="Gor. Brayettes +1",feet="Gor. Sollerets +1"}
     
        -- Waltz set (chr and vit)
        sets.precast.Waltz = {
            head="Gorney Morion +1",
            body="Vishap Mail +1",hands="Gorney Moufles +1",ring1="Rajas Ring",
            back="Atheling Mantle",legs="Gor. Brayettes +1",feet="Gor. Sollerets +1"}
             
        -- Don't need any special gear for Healing Waltz.
        sets.precast.Waltz['Healing Waltz'] = {}
     
        -- Fast cast sets for spells
        sets.precast.FC = {
            ammo="Angon",
            head="Gorney Morion +1", 
            ear1="Ghillie Earring +1", 
            hands="Gorney Moufles +1",
            ring1="Rajas Ring"
        }
         
        -- Midcast Sets
        sets.midcast.FastRecast = {
            head="Gorney Morion +1",
            neck="Chivalrous Chain",
            hands="Gorney Moufles +1",
            body="Gorney Haubert +1",
            ring1="Rajas Ring",
            ring2="Tyrant's Ring",
            back="Atheling Mantle",
            waist="Zoran's Belt",
            legs="Gor. Brayettes +1",
            feet="Gor. Sollerets +1",
        }   
             
        sets.midcast.Breath = set_combine(sets.midcast.FastRecast, { head="PteroslaverPteroslaver Armet" })
        -- Weaponskill sets
        -- Default set for any weaponskill that isn't any more specifically defined
        sets.precast.WS = {}
     
        sets.precast.WS = {
            ammo="Angon",
           head="Gorney Morion +1",neck="Chivalrous Chain",ear1="Moonshade Earring",ear2="Brutal Earring",
            body="Vishap Mail",hands="Gorney Moufles +1",ring1="Rajas Ring",ring2="Tyrant's Ring",
            back="Atheling Mantle",waist="Zoran's Belt",legs="Gor. Brayettes +1",feet="Gor. Sollerets +1"}
         
        sets.precast.WS.Acc = set_combine(sets.precast.WS, {
            back="Atheling Mantle",
            head="Gorney Morion +1",
            legs="Gorney Brayettes +1"
        })
         
        -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
        sets.precast.WS['Stardiver'] = set_combine(sets.precast.WS, {
            neck="Chivalrous Chain",
            back="Atheling Mantle",
            waist="Light Belt"
        })
        sets.precast.WS['Stardiver'].Mid = set_combine(sets.precast.WS['Stardiver'], {
            head="Gorney Morion +1",
            hands="Gorney Moufles +1",
            back="Atheling Mantle",
        })
        sets.precast.WS['Stardiver'].Acc = set_combine(sets.precast.WS.Acc, {neck="Chivalrous Chain",waist="Light Belt"})
     
        sets.precast.WS["Camlann's Torment"] = set_combine(sets.precast.WS, {
            neck="Chivalrous Chain",
            body="Vishap Mail +1",
            back="Atheling Mantle",
            waist="Zoran's Belt",
            feet="Gor. Sollerets +1"
        })
        sets.precast.WS["Camlann's Torment"].Mid = set_combine(sets.precast.WS["Camlann's Torment"], {
            head="Gorney Morion +1", 
            ear1="Moonshade Earring", 
            ear2="Brutal Earring", 
            back="Atheling Mantle"
        })
        sets.precast.WS["Camlann's Torment"].Acc = set_combine(sets.precast.WS["Camlann's Torment"].Mid, {})
     
        sets.precast.WS['Drakesbane'] = set_combine(sets.precast.WS, {
            neck="Chivalrous Chain", 
            hands="Gorney Moufles +1",
            back="Atheling Mantle",
            waist="Zoran's Belt"
        })
        sets.precast.WS['Drakesbane'].Mid = set_combine(sets.precast.WS['Drakesbane'], {
                back="Atheling Mantle",
                head="Gorney Morion +1"
        })
        sets.precast.WS['Drakesbane'].Acc = set_combine(sets.precast.WS['Drakesbane'].Mid, {hands="Mikinaak Gauntlets"})
     
         
        -- Sets to return to when not performing an action.
         
        -- Resting sets
        sets.resting = {
            head="Gorney Morion +1",
            neck="Chivalrous Chain",
            ear1="Ghillie Earring +1",
            ear2="Brutal Earring",
            body="Gorney Haubert +1",
            hands="Gorney Moufles +1",
            ring1="Rajas Ring",
            ring2="Tyrant's Ring",
            back="Atheling Mantle",
            legs="Crimson Cuisses",
            feet="Gor. Sollerets +1"
        }
         
     
        -- Idle sets
        sets.idle = {}
     
        -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
        sets.idle.Town = {
            ammo="Angon",
            head="Gorney Morion +1",neck="Chivalrous Chain",ear1="Ghillie Earring +1",ear2="Brutal Earring",
            body="Vishap Mail",hands="Gorney Moufles +1",ring1="Rajas Ring",ring2="Tyrant's Ring",
            back="Atheling Mantle",waist="Zoran's Belt",legs="Crimson Cuisses",feet="Gor. Sollerets +1"}
         
        sets.idle.Field = set_combine(sets.idle.Town, { 
            head="Gorney Morion +1",neck="Chivalrous Chain",ear1="Ghillie Earring +1",ear2="Brutal Earring",
            body="Vishap Mail",hands="Gorney Moufles +1",ring1="Rajas Ring",ring2="Tyrant's Ring",
            back="Atheling Mantle",waist="Zoran's Belt",legs="Crimson Cuisses",feet="Gor. Sollerets +1"}
     
        sets.idle.Regen = set_combine(sets.idle.Field, {
            head="Gorney Morion +1",
            body="Twilight Mail"})
     
        sets.idle.Weak = set_combine(sets.idle.Field, {
            head="Gorney Morion +1",
            body="Twilight Mail",
        })
         
        -- Defense sets
        sets.defense.PDT = {
           head="Gorney Morion +1",
            neck="Chivalrous Chain",
            ear1="Ghillie Earring +1",
            ear2="Brutal Earring",
            body="Gorney Haubert +1",
            hands="Gorney Moufles +1",
            ring1="Rajas Ring",
            ring2="Tyrant's Ring",
            back="Atheling Mantle",
            legs="Crimson Cuisses",
            feet="Gor. Sollerets +1"
        }
     
        sets.defense.Reraise = set_combine(sets.defense.PDT, {
            head="Gorney Morion +1",
            body="Twilight Mail"
        })
     
        sets.defense.MDT = sets.defense.PDT
     
        sets.Kiting = {legs="Crimson Cuisses"}
     
        sets.Reraise = {head="Gorney Morion +1",body="Twilight Mail"}
     
        -- 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 = {
            ammo="Angon",
            head="Gorney Morion +1",neck="Chivalrous Chain",ear1="Ghillie Earring +1",ear2="Brutal Earring",
            body="Gorney Haubert +1",hands="Gorney Moufles +1",ring1="Rajas Ring",ring2="Tyrant's Ring",
            back="Atheling Mantle",waist="Zoran's Belt",legs="Gor. Brayettes +1",feet="Gor. Sollerets +1"}
     
        sets.engaged.Mid = set_combine(sets.engaged, {
            head="Gorney Morion +1",
            ear1="Ghillie Earring +1",
            ring2="Tyrant's Ring"
        })
     
        sets.engaged.Acc = set_combine(sets.engaged.Mid, {
            neck="Chivalrous Chain",
            hands="Gorney Moufles +1",
            waist="Zoran's Belt",
            ring1="Rajas Ring",
            back="Atheling Mantle"
        })
     
        sets.engaged.PDT = set_combine(sets.engaged, {
            head="Gorney Morion +1",
            neck="Chivalrous Chain",
            body="Gorney Haubert +1",
            ring2="Tyrant's Ring",
            hands="Gorney Moufles +1",
            back="Atheling Mantle",
            legs="Gor. Brayettes +1",
            feet="Gor. Sollerets +1"
        })
        sets.engaged.Mid.PDT = set_combine(sets.engaged.Mid, {
            head="Gorney Morion +1",
            ring2="Tyrant's Ring",
            body="Gorney Haubert +1",
            hands="Gorney Moufles +1",
            back="Atheling Mantle",
            legs="Gor. Brayettes +1",
        })
        sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, {
            head="Gorney Morion +1",
            ring2="Tyrant's Ring",
            body="Gorney Haubert +1",
            hands="Gorney Moufles +1",
            back="Atheling Mantle",
            legs="Gor. Brayettes +1",
        })
     
        sets.engaged.War = set_combine(sets.engaged, {
            --head="Gorney Morion +1",
            feet="Gor. Sollerets +1",
            ring2="Tyrant's Ring"
        })
        sets.engaged.War.Mid = sets.engaged.Mid
     
        sets.engaged.Reraise = set_combine(sets.engaged, {
            head="Gorney Morion +1",
            body="Twilight Mail"
        })
     
        sets.engaged.Acc.Reraise = sets.engaged.Reraise
         
    end
     
    -------------------------------------------------------------------------------------------------------------------
    -- Job-specific hooks that are called to process player actions at specific points in time.
    -------------------------------------------------------------------------------------------------------------------
     
    -- Set eventArgs.handled to true if we don't want any automatic target handling to be done.
    function job_pretarget(spell, action, spellMap, eventArgs)
        if spell.english == "Spirit Jump" then
            if not pet.isvalid then
                cancel_spell()
                send_command('Jump')
            end
        elseif spell.english == "Soul Jump" then
            if not pet.isvalid then
                cancel_spell()
                send_command("High Jump")
            end
        end
    end
     
    -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
    -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
    function job_precast(spell, action, spellMap, eventArgs)
    end
     
    -- 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_post_precast(spell, action, spellMap, eventArgs)
        if player.hpp < 51 then
            classes.CustomClass = "Breath" 
        end
         
    end
     
     
    -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
    function job_midcast(spell, action, spellMap, eventArgs)
        if spell.action_type == 'Magic' then
            equip(sets.midcast.FastRecast)
            if player.hpp < 51 then
                classes.CustomClass = "Breath" 
            end
        end
    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_post_midcast(spell, action, spellMap, eventArgs)
    end
     
    function job_pet_precast(spell, action, spellMap, eventArgs)
    end
    -- Runs when a pet initiates an action.
    -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
    function job_pet_midcast(spell, action, spellMap, eventArgs)
        if spell.english:startswith('Healing Breath') or spell.english == 'Restoring Breath' or spell.english == 'Steady Wing' or spell.english == 'Smiting Breath' then
            equip(sets.HB)
        end
    end
     
    -- Run after the default pet midcast() is done.
    -- eventArgs is the same one used in job_pet_midcast, in case information needs to be persisted.
    function job_pet_post_midcast(spell, action, spellMap, eventArgs)
         
    end
     
    -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
    function job_aftercast(spell, action, spellMap, eventArgs)
        if state.HybridMode.value == 'Reraise' or
        (state.HybridMode.value == 'Physical' and state.PhysicalDefenseMode.value == 'Reraise') then
            equip(sets.Reraise)
        end
    end
     
    -- Run after the default aftercast() is done.
    -- eventArgs is the same one used in job_aftercast, in case information needs to be persisted.
    function job_post_aftercast(spell, action, spellMap, eventArgs)
     
    end
     
    -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
    function job_pet_aftercast(spell, action, spellMap, eventArgs)
     
    end
     
    -- Run after the default pet aftercast() is done.
    -- eventArgs is the same one used in job_pet_aftercast, in case information needs to be persisted.
    function job_pet_post_aftercast(spell, action, spellMap, eventArgs)
     
    end
     
     
    -------------------------------------------------------------------------------------------------------------------
    -- Customization hooks for idle and melee sets, after they've been automatically constructed.
    -------------------------------------------------------------------------------------------------------------------
     
    -- Called before the Include starts constructing melee/idle/resting sets.
    -- Can customize state or custom melee class values at this point.
    -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
    function job_handle_equipping_gear(status, eventArgs)
     
    end
     
    -- Return a customized weaponskill mode to use for weaponskill sets.
    -- Don't return anything if you're not overriding the default value.
    function get_custom_wsmode(spell, action, spellMap)
     
    end
     
    -- Modify the default idle set after it was constructed.
    function customize_idle_set(idleSet)
        if player.hpp < 90 then
            idleSet = set_combine(idleSet, sets.idle.Regen)
        end
        return idleSet
    end
     
    -- Modify the default melee set after it was constructed.
    function customize_melee_set(meleeSet)
        if state.TreasureMode.value == 'Fulltime' then
            meleeSet = set_combine(meleeSet, sets.TreasureHunter)
        end
        if state.CapacityMode.value then
            meleeSet = set_combine(meleeSet, sets.CapacityMantle)
        end
        return meleeSet
    end
     
    -------------------------------------------------------------------------------------------------------------------
    -- General hooks for other events.
    -------------------------------------------------------------------------------------------------------------------
     
    -- Called when the player's status changes.
    function job_status_change(newStatus, oldStatus, eventArgs)
     
    end
     
    -- Called when the player's pet's status changes.
    function job_pet_status_change(newStatus, oldStatus, eventArgs)
     
    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 string.lower(buff) == "sleep" and gain and player.hp > 200 then
            equip(sets.Berserker)
        else
            if not midaction() then
                handle_equipping_gear(player.status)
            end
        end
    end
     
    function job_update(cmdParams, eventArgs)
        war_sj = player.sub_job == 'WAR' or false
        classes.CustomMeleeGroups:clear()
        th_update(cmdParams, eventArgs)
        get_combat_form()
    end
    -------------------------------------------------------------------------------------------------------------------
    -- User code that supplements self-commands.
    -------------------------------------------------------------------------------------------------------------------
     
    -- Called for custom player commands.
    function job_self_command(cmdParams, eventArgs)
     
    end
     
    function get_combat_form()
        --if areas.Adoulin:contains(world.area) and buffactive.ionis then
        --  state.CombatForm:set('Adoulin')
        --end
     
        if war_sj then
            state.CombatForm:set("War")
        else
            state.CombatForm:reset()
        end
    end
     
     
    -- Job-specific toggles.
    function job_toggle(field)
     
    end
     
    -- Handle auto-targetting based on local setup.
    function job_auto_change_target(spell, action, spellMap, eventArgs)
     
    end
     
    -- Set eventArgs.handled to true if we don't want the automatic display to be run.
    function display_current_job_state(eventArgs)
     
    end
     
    -------------------------------------------------------------------------------------------------------------------
    -- Utility functions specific to this job.
    -------------------------------------------------------------------------------------------------------------------
    -- State buff checks that will equip buff gear and mark the event as handled.
    function check_buff(buff_name, eventArgs)
        if state.Buff[buff_name] then
                equip(sets.buff[buff_name] or {})
            if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
                equip(sets.TreasureHunter)
            end
            eventArgs.handled = true
        end
    end
    -- Check for various actions that we've specified in user code as being used with TH gear.
    -- This will only ever be called if TreasureMode is not 'None'.
    -- Category and Param are as specified in the action event packet.
    function th_action_check(category, param)
        if category == 2 or -- any ranged attack
            --category == 4 or -- any magic action
            (category == 3 and param == 30) or -- Aeolian Edge
            (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
            (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
            then return true
        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 == 'WAR' then
            set_macro_page(1, 10)
        elseif player.sub_job == 'WHM' then
            set_macro_page(1, 10)
        else
            set_macro_page(1, 10)
        end
    end
    This looks like my lua, so i'll bite. You have a syntax error in sets.idle.Field. When using set_combine() you have to close the parenthesis.

    Check the bottom of this page: http://codepad.org/6G4pqAX2

    sets.idle.Field = set_combine(sets.idle.Town, {
    head="Gorney Morion +1",neck="Chivalrous Chain",ear1="Ghillie Earring +1",ear2="Brutal Earring",
    body="Vishap Mail",hands="Gorney Moufles +1",ring1="Rajas Ring",ring2="Tyrant's Ring",
    back="Atheling Mantle",waist="Zoran's Belt",legs="Crimson Cuisses",feet="Gor. Sollerets +1"}) <----- Missing Parenthesis


    It also looks like you're re-adding all the gear from sets.idle.Town, which isn't necessary. The set_combine() function is "combining" the Town set with your Field set. The only gear you should specify is gear NOT present in sets.idle.Town.

    In other words.

    sets.idle.Field = set_combine(sets.idle.Town, {})

    will suffice.


    It would be a good habbit to run your luas through codepad to shed light on small syntax errors like this.

  2. #4202
    Relic Horn
    Join Date
    Jul 2005
    Posts
    3,478
    BG Level
    7

    I have a problem of getting:

    ammo="Seraphic Ampulla",


    to equip at all. My Ghastly Tathlum is working fine if I put it in. I also //gs export the name to make sure I had no spelling error. Might have something to do with the changed DAT format? I remember all the ammos not showing up.

  3. #4203
    Ridill
    Join Date
    Oct 2006
    Posts
    18,369
    BG Level
    9
    FFXIV Character
    Sath Fenrir
    FFXIV Server
    Cactuar
    FFXI Server
    Fenrir

    I keep forgetting to check myself, and will forget for another two weeks before I think to check again...

    Has the problem with newer pets (Snapweed, Acuex maybe?) not having their ready moves trigger pet.ready sets been fixed? I only call snapweed these days when soloing difficult thing and still disable legs and sub weapon to equip my ready recast gear. I haven't tried it raw for fear of fucking up my timers.

  4. #4204
    Pens win! Pens Win!!! PENS WIN!!!!!
    Sweaty Dick Punching Enthusiast

    Join Date
    Oct 2007
    Posts
    2,187
    BG Level
    7

    How do I go about locking Chasseur's Frac for my body while Triple Shot is active, but only for TPing?

  5. #4205
    New Spam Forum
    Join Date
    Dec 2009
    Posts
    158
    BG Level
    3
    FFXI Server
    Quetzalcoatl

    Quote Originally Posted by SathFenrir View Post
    I keep forgetting to check myself, and will forget for another two weeks before I think to check again...

    Has the problem with newer pets (Snapweed, Acuex maybe?) not having their ready moves trigger pet.ready sets been fixed? I only call snapweed these days when soloing difficult thing and still disable legs and sub weapon to equip my ready recast gear. I haven't tried it raw for fear of fucking up my timers.
    Yes, Byrth fixed it.

  6. #4206
    Ridill
    Join Date
    Oct 2006
    Posts
    18,369
    BG Level
    9
    FFXIV Character
    Sath Fenrir
    FFXIV Server
    Cactuar
    FFXI Server
    Fenrir

    Quote Originally Posted by Falkirk View Post
    All glory to Byrth.

  7. #4207
    Bagel
    Join Date
    Dec 2012
    Posts
    1,488
    BG Level
    6

    Quote Originally Posted by Aragon of Odin View Post
    How do I go about locking Chasseur's Frac for my body while Triple Shot is active, but only for TPing?
    how do you want to tell if your tping
    and what do you mean by tping??

    this is the basic way to lock gear with buff change
    Code:
    function buff_change(name,gain,buff_table)
        if name == "Triple Shot" then
            if gain then
                equip({body="Chasseur's Frac"})
                disable("body")
            else
                enable("body")
                equip(<the gearset you want to be equipd in>)
            end
        end
    end

  8. #4208
    Pens win! Pens Win!!! PENS WIN!!!!!
    Sweaty Dick Punching Enthusiast

    Join Date
    Oct 2007
    Posts
    2,187
    BG Level
    7

    Sorry my bad on the wording.

    When Triple Shot is active, I need Chasseur's Frac to be on when I'm shooting, and I'm not sure how to go about that.

    I have Pre Shot and Mid Shot sets, and it would need to be added in to those while Triple Shot is active

  9. #4209
    Bagel
    Join Date
    Dec 2012
    Posts
    1,488
    BG Level
    6

    Quote Originally Posted by Aragon of Odin View Post
    Sorry my bad on the wording.

    When Triple Shot is active, I need Chasseur's Frac to be on when I'm shooting, and I'm not sure how to go about that.

    I have Pre Shot and Mid Shot sets, and it would need to be added in to those while Triple Shot is active
    can you show your code

  10. #4210
    Pens win! Pens Win!!! PENS WIN!!!!!
    Sweaty Dick Punching Enthusiast

    Join Date
    Oct 2007
    Posts
    2,187
    BG Level
    7

    Here you go

    Code:
    -- *** Credit goes to Flippant for helping me with Gearswap *** --
    -- ** I use Motenten's define_roll_values function ** --
    -- Last Updated: 03/30/14 2:25 PM *Added More Sets* --
    
    function get_sets()
    	AccIndex = 1
    	AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For Shooting/QD/TP/WS. Default ACC Set Is LowACC. The First TP Set Of Your Main Weapon Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below --
    	IdleIndex = 1
    	IdleArray = {'Movement', 'Regen'} -- Default Idle Set Is Movement --
    	autoRAmode = 0
    	Armor = 'None'
    	define_roll_values()
    	Obi = 'ON' -- Turn Default Obi ON or OFF Here --
    	target_distance = 5 -- Set Default Distance Here --
    	send_command('input /macro book 9;input /macro set 1') -- Change Default Macro Book Here --
    
    	ranged_ws = S{
    			"Hot Shot","Split Shot","Sniper Shot","Slug Shot","Detonator","Numbing Shot",
    			"Last Stand","Requiescat","Wildfire","Leaden Salute"}
    
    	ACC_Shots = S{"Light Shot","Dark Shot"}
    	
    	sc_map = {SC1="CoursersRoll", SC2="DiaII", SC3="LightShot"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. -- 
    
    	-- Idle/Town Sets --
    	sets.Idle = {}
    	sets.Idle.Regen = {
    			head="Oce. Headpiece +1",
    			neck="Wiglen gorget",
    			ear1="Ethereal Earring",
    			ear2="Volley Earring",
    			body="Lanun Frac",
    			ammo="Bullet",
    			hands="Alruna's gloves +1",
    			ring1="sheltered Ring",
    			ring2="Paguroidea Ring",
    			back="Shadow mantle",
    			waist="flume Belt +1",
    			legs="Crimson Cuisses",
    			feet={ name="Taeon boots", augments={'Rng. Acc.+25','"Snapshot"+8'}},}
    	sets.Idle.Movement = set_combine(sets.Idle.Regen,{
    			legs="Crimson Cuisses"})
    
    	-- QD Sets --
    	sets.QD = {
    			ammo="Animikii bullet",
    			head={ name="Taeon chapeau", augments={'"Mag. Atk. Bns."+20','Weapon skill damage +3%'}},
    			neck="Stoicheion Medal",
    			ear1="Friomisi earring",
    			ear2="hecate's earring",
    			body={ name="Taeon Tabard", augments={'Mag. Acc.+13 "Mag.Atk.Bns."+13','Weapon skill damage +1%',}},
    			hands={ name="Taeon Gloves", augments={'Mag. Acc.+15 "Mag. Atk. Bns."+15','Weapon Skill Damage +1%'}},
    			ring1="Arvina ringlet +1",
    			ring2="Garuda Ring +1",
    			back="Gunslinger's Cape",
    			waist="Salire Belt",
    			legs={ name="Taeon Tights", augments={'"Mag.Atk.Bns."+20','STR+2 VIT+2',}},
    			feet={ name="Taeon Boots", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},}
    	sets.QD.MidACC = set_combine(sets.QD,{})
    	sets.QD.HighACC = set_combine(sets.QD.MidACC,{})
    
    	-- PDT/MDT Sets --
    	sets.PDT = {
    			head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
    			neck="Twilight Torque",
    			ear1="Ethereal Earring",
    			ear2="Sanare Earring",
    			body="Lanun Frac",
    			hands={ name="Taeon gloves", augments={'Mag. Acc.+15 "Mag. Atk. Bns."+15','Weapon skill damage +1%'}},
    			ring1="Defending Ring",
    			ring2="Dark Ring",
    			back="Shadow Mantle",
    			waist="flume belt +1",
    			legs={ name="Taeon Tights", augments={'"Mag.Atk.Bns."+20','STR+2 VIT+2',}},
    			feet={ name="Taeon Boots", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+3',}}}
    
    	sets.MDT = set_combine(sets.PDT,{})
    
    	-- Roll Set --
    	sets.Rolls = set_combine(sets.PDT,{
    			head="Lanun Tricorne",
    			hands="Chasseur's Gants",
    			body="Chasseur's Frac",
    			ring1="barataria ring",
    			ring2="Luzaf's ring",
    			feet="Chasseur's Bottes",
    			legs="nvrch. culottes +2",
    			back="Gunslinger's cape"})
    
    	-- Preshot --
    	sets.Preshot = {
    			head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
    			body={ name="Taeon Tabard", augments={'Rng.Acc.+17 Rng.Atk.+17','"Snapshot"+5','STR+5 AGI+5',}},
    			hands="Lanun Gants",
    			waist="Impulse Belt",
    			legs="Mirador trousers +1",
    			feet={ name="Taeon Boots", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+3',}}}
    
    	-- Shooting Base Set --
    	sets.Midshot = {
    			head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
    			neck="Ocachi Gorget",
    			ear1="Clearview Earring",
    			ear2="Volley Earring",
    			body={ name="Taeon Tabard", augments={'Rng.Acc.+17 Rng.Atk.+17','"Snapshot"+5','STR+5 AGI+5',}},
    			hands="Alruna's gloves +1",
    			ring1="Rajas Ring",
    			ring2="K'ayres Ring",
    			back="Gunslinger's Cape",
    			waist="Aquiline Belt",
    			legs="Chasseur's Culottes",
    			feet={ name="Taeon Boots", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+3',}}}
    	sets.Midshot.MidACC = set_combine(sets.Midshot,{
    			ring1="Garuda Ring +1",
    			ring2="Garuda Ring +1",
    			legs="Mirador Trousers +1"})
    	sets.Midshot.HighACC = set_combine(sets.Midshot.HighACC,{
    			ring1="Hajduk Ring"})
    
    	-- Death Penalty Sets --
    	sets.Midshot['Death Penalty'] = {}
    	sets.Midshot['Death Penalty'].MidACC = set_combine(sets.Midshot['Death Penalty'],{})
    	sets.Midshot['Death Penalty'].HighACC = set_combine(sets.Midshot['Death Penalty'].MidACC,{})
    
    	-- Vanir Gun Sets --
    	sets.Midshot['Vanir Gun'] = {}
    	sets.Midshot['Vanir Gun'].MidACC = set_combine(sets.Midshot['Vanir Gun'],{
    			})
    	sets.Midshot['Vanir Gun'].HighACC = set_combine(sets.Midshot['Vanir Gun'].MidACC,{})
    
    	-- Armageddon Sets --
    	sets.Midshot.Armageddon = {}
    	sets.Midshot.Armageddon.MidACC = set_combine(sets.Midshot.Armageddon,{})
    	sets.Midshot.Armageddon.HighACC = set_combine(sets.Midshot.Armageddon.MidACC,{})
    
    	-- Melee Sets --
    	sets.Melee = {
    			head={ name="Taeon Chapeau", augments={'Accuracy+14 Attack+14','"Triple Atk."+2','DEX+5',}},
    			neck="Asperity Necklace",
    			ear1="Suppanomimi",
    			ear2="Brutal Earring",
    			body={ name="Taeon Tabard", augments={'Accuracy+25','"Triple Atk."+2','DEX+2',}},
    			hands={ name="Taeon Gloves", augments={'Accuracy+22','"Triple Atk."+2','Crit. hit damage +3%',}},
    			ring1="Oneiros Ring",
    			ring2="Epona's Ring",
    			back="Bleating Mantle",
    			waist="Dynamic Belt +1",
    			legs={ name="Taeon Tights", augments={'Accuracy+21','"Triple Atk."+2','STR+3 AGI+3',}},
    			feet={ name="Taeon Boots", augments={'Accuracy+15 Attack+15','"Triple Atk."+2','DEX+3',}},}
    	sets.Melee.MidACC = set_combine(sets.Melee,{
    			ring1="Ramuh Ring +1",
    			ring2="Ramuh Ring +1",
    			ear1="Dudgeon Earring",
    			ear2="Heartseeker Earring",})
    	sets.Melee.HighACC = set_combine(sets.Melee.MidACC,{})
    
    	-- WS Base Set --
    	sets.WS = {
    			ammo="decimating Bullet",
    			head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
    			neck="Fotia Gorget",
    			ear1="Breeze pearl",
    			ear2="moonshade earring",
    			body={ name="Taeon Tabard", augments={'Rng.Acc.+17 Rng.Atk.+17','"Snapshot"+5','STR+5 AGI+5',}},
    			hands="Alruna's Gloves +1",
    			ring1="Garuda Ring +1",
    			ring2="Garuda Ring +1",
    			back="Gunslinger's Mantle",
    			waist="Fotia Belt",
    			legs="Mirador trousers +1",
    			feet="scupuli nails +1"}
    
    	-- Last Stand Sets --
    	sets.WS["Last Stand"] = {
    			ammo="decimating Bullet",
    			head={ name="Taeon Chapeau", augments={'Rng.Acc.+25','"Snapshot"+5','"Snapshot"+1',}},
    			neck="Fotia Gorget",
    			ear1="Breeze pearl",
    			ear2="moonshade earring",
    			body={ name="Taeon Tabard", augments={'Rng.Acc.+17 Rng.Atk.+17','"Snapshot"+5','STR+5 AGI+5',}},
    			hands="Alruna's Gloves +1",
    			ring1="Garuda Ring +1",
    			ring2="Garuda Ring +1",
    			back="Gunslinger's Mantle",
    			waist="Fotia Belt",
    			legs="Mirador trousers +1",
    			feet="scupuli nails +1"}
    	sets.WS["Last Stand"].MidACC = set_combine(sets.WS["Last Stand"],{})
    	sets.WS["Last Stand"].HighACC = set_combine(sets.WS["Last Stand"].MidACC,{})
    			
    			
    
    	-- Wildfire Sets --
    	sets.WS.Wildfire = {
    			ammo="decimating Bullet",
    			head={ name="Taeon Chapeau", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},
    			neck="stoicheion medal",
    			ear1="Friomisi earring",
    			ear2="hecate's earring",
    			body={ name="Taeon Tabard", augments={'Mag. Acc.+13 "Mag.Atk.Bns."+13','Weapon skill damage +1%',}},
    			hands={ name="Taeon gloves", augments={'Mag. Acc.+15 "Mag. Atk. Bns."+15','Weapon skill damage +1%'}},
    			ring1="Arvina ringlet +1",
    			ring2="Garuda Ring +1",
    			back="Gunslinger's Mantle",
    			waist="salire Belt",
    			legs={ name="Taeon Tights", augments={'"Mag.Atk.Bns."+20','STR+2 VIT+2',}},
    			feet={ name="Taeon Boots", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},}
    	sets.WS.Wildfire.MidACC = set_combine(sets.WS.Wildfire,{})
    	sets.WS.Wildfire.HighACC = set_combine(sets.WS.Wildfire.MidACC,{})
    
    	-- Leaden Salute --
    	sets.WS['Leaden Salute'] = {
    			ammo="decimating Bullet",
    			head={ name="Taeon Chapeau", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},
    			neck="stoicheion medal",
    			ear1="Friomisi earring",
    			ear2="hecate's earring",
    			body={ name="Taeon Tabard", augments={'Mag. Acc.+13 "Mag.Atk.Bns."+13','Weapon skill damage +1%',}},
    			hands={ name="Taeon gloves", augments={'Mag. Acc.+15 "Mag. Atk. Bns."+15','Weapon skill damage +1%'}},
    			ring1="Arvina ringlet +1",
    			ring2="Archon Ring",
    			back="Gunslinger's Mantle",
    			waist="salire Belt",
    			legs={ name="Taeon Tights", augments={'"Mag.Atk.Bns."+20','STR+2 VIT+2',}},
    			feet={ name="Taeon Boots", augments={'"Mag.Atk.Bns."+20','Weapon skill damage +3%',}},}
    	sets.WS['Leaden Salute'].MidACC = set_combine(sets.WS['Leaden Salute'],{})
    	sets.WS['Leaden Salute'].HighACC = set_combine(sets.WS['Leaden Salute'].MidACC,{})
    
    	-- Elemental Obi --
    	sets.Obi = {}
    	sets.Obi.Thunder = {waist='Hachirin-no-obi'}
    	sets.Obi.Water = {waist='Hachirin-no-obi'}
    	sets.Obi.Fire = {waist='Hachirin-no-obi'}
    	sets.Obi.Ice = {waist='Hachirin-no-obi'}
    	sets.Obi.Wind = {waist='Hachirin-no-obi'}
    	sets.Obi.Earth = {waist='Hachirin-no-obi'}
    	sets.Obi.Light = {waist='Hachirin-no-obi'}
    	sets.Obi.Dark = {waist='Hachirin-no-obi'}
    
    	-- JA Sets --
    	sets.JA = {}
    	sets.JA["Random Deal"] = {body="Lanun frac"}
    	sets.JA.Fold = {hands="Lanun Gants"}
    	sets.JA["Snake Eye"] = {legs="Lanun Culottes"}
    	sets.JA["Wild Card"] = {feet="Lanun Bottes"}
    
    	-- Waltz Set --
    	sets.Waltz = {}
    
    	sets.Precast = {}
    	--Fastcast Set --
    	sets.Precast.FastCast = {}
    
    	sets.Midcast = {}
    	-- Magic Haste Set --
    	sets.Midcast.Haste = set_combine(sets.PDT,{})
    end
    
    function pretarget(spell,action)
    	if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
    		cancel_spell()
    		send_command('input /item "Echo Drops" <me>')
    	elseif spell.type == "CorsairRoll" and buffactive[spell.english] then -- Change Any Rolls To Double-Up When You Have A Roll Up --
    		cancel_spell()
    		send_command('doubleup')
    	elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
    		cancel_spell()
    		send_command('ThirdEye')
    	elseif spell.english == "Meditate" and player.tp > 290 then -- Cancel Meditate If TP Is Above 290 --
    		cancel_spell()
    		add_to_chat(123, spell.name .. ' Canceled: ' .. player.tp)
    	elseif (spell.english == 'Ranged' and spell.target.distance > 24.9) or (player.status == 'Engaged' and ((ranged_ws:contains(spell.english) and spell.target.distance > 16+target_distance) or (spell.type == "WeaponSkill" and not ranged_ws:contains(spell.english) and spell.target.distance > target_distance))) then -- Cancel Ranged Attack or WS If You Are Out Of Range --
    		cancel_spell()
    		add_to_chat(123, spell.name..' Canceled: [Out of Range]')
    		return
    	end
    end
    
    function precast(spell,action)
    	if spell.english == 'Ranged' or spell.type == "WeaponSkill" then
    		if player.equipment.ammo == "Animikii Bullet" then -- Cancel Ranged Attack or WS If You Have Animikii Bullet Equipped --
    			cancel_spell()
    			add_to_chat(123, spell.name .. ' Canceled: [Animikii Bullet Equipped!]')
    			return
    		elseif spell.english=='Ranged' then
    			equip(sets.Preshot)
    		elseif spell.type == "WeaponSkill" then
    			if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
    				cancel_spell()
    				add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
    				return
    			else
    				equipSet = sets.WS
    				if equipSet[spell.english] then
    					equipSet = equipSet[spell.english]
    				end
    				if equipSet[AccArray[AccIndex]] then
    					equipSet = equipSet[AccArray[AccIndex]]
    				end
    				if spell.english == "Last Stand" and (player.tp > 299 or buffactive.Sekkanoki) then -- Equip Altdorf's Earring and Wilhelm's Earring When You Have 300 TP or Sekkanoki For Last Stand --
    					equipSet = set_combine(equipSet,{ear1="Altdorf's Earring",ear2="Wilhelm's Earring"})
    				end
    				equip(equipSet)
    			end
    		end
    	elseif spell.type == "JobAbility" then
    		if sets.JA[spell.english] then
    			equip(sets.JA[spell.english])
    			if spell.english == "Snake Eye" then -- Auto Double-Up After You Use Snake Eye --
    				send_command('@wait 1;input /ja Double-Up <me>')
    			end
    		end
    	elseif spell.type == "CorsairRoll" or spell.english == "Double-Up" then
    		equip(sets.Rolls)
    		if spell.english == "Tactician's Roll" then
    			equip({body="Chasseur's Frac"})
    		elseif spell.english == "Caster's Roll" then
    			equip({legs="Chasseur's Culottes"})
    		elseif spell.english == "Courser's Roll" then
    			equip({feet="Chasseur's Bottes"})
    		end
    	elseif spell.type == "CorsairShot" then
    		equipSet = sets.QD
    		if ACC_Shots:contains(spell.english) then
    			equipSet = sets.QD.HighACC
    		else
    			if equipSet[AccArray[AccIndex]] then
    				equipSet = equipSet[AccArray[AccIndex]]
    			end
    			if not ACC_Shots:contains(spell.english) and (world.day_element == spell.element or world.weather_element == spell.element) and sets.Obi[spell.element] and Obi == 'ON' then -- Use Obi Toggle To Unlock Elemental Obi --
    				equipSet = set_combine(equipSet,sets.Obi[spell.element])
    			end
    		end
    		equip(equipSet)
    	elseif spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
    		if string.find(spell.english,'Utsusemi') then
    			if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
    				cancel_spell()
    				add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
    				return
    			else
    				equip(sets.Precast.FastCast)
    			end
    		else
    			equip(sets.Precast.FastCast)
    		end
    	elseif spell.type == "Waltz" then
    		equip(sets.Waltz)
    	elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
    		cast_delay(0.2)
    		send_command('cancel Sneak')
    	end
    end
    
    function midcast(spell,action)
    	if spell.english=='Ranged' then
    		equipSet = sets.Midshot
    		if equipSet[player.equipment.range] then
    			equipSet = equipSet[player.equipment.range]
    		end
    		if equipSet[AccArray[AccIndex]] then
    			equipSet = equipSet[AccArray[AccIndex]]
    		end
    		equip(equipSet)
    	elseif spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
    		if string.find(spell.english,'Utsusemi') then
    			if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
    				send_command('@wait 1.7;cancel Copy Image*')
    			end
    			equip(sets.Midcast.Haste)
    		elseif spell.english == 'Monomi: Ichi' then
    			if buffactive['Sneak'] then
    				send_command('@wait 1.7;cancel sneak')
    			end
    			equip(sets.Midcast.Haste)
    		else
    			equip(sets.Midcast.Haste)
    		end
    	end
    end
    
    function aftercast(spell,action)
    	if spell.english == 'Ranged' and autoRAmode==1 then
    		autoRA()
    	elseif spell.type == "WeaponSkill" and not spell.interrupted then
    		send_command('wait 0.2;gs c TP')
    	elseif spell.type == 'CorsairRoll' and not spell.interrupted then
    		display_roll_info(spell)
    	elseif spell.english == 'Light Shot' and not spell.interrupted then -- Sleep Countdown --
    		send_command('wait 50;input /echo '..spell.name..' Effect: [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..' Effect: [OFF]')
    	else
    		status_change(player.status)
    	end
    end
    
    function status_change(new,old)
    	if Armor == 'PDT' then
    		equip(sets.PDT)
    	elseif Armor == 'MDT' then
    		equip(sets.MDT)
    	elseif new == 'Engaged' then
    		equipSet = sets.Melee
    		if equipSet[AccArray[AccIndex]] then
    			equipSet = equipSet[AccArray[AccIndex]]
    		end
    		equip(equipSet)
    	elseif new == 'Idle' then
    		equip(sets.Idle[IdleArray[IdleIndex]])
    	elseif new == 'Resting' then
    		equip(sets.Resting)
    	end
    end
    
    function buff_change(buff,gain)
    	buff = string.lower(buff)
    	if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
    		if gain then
    			send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
    		else
    			send_command('timers delete "Aftermath: Lv.3"')
    			add_to_chat(123,'AM3: [OFF]')
    		end
    	elseif buff == 'weakness' then -- Weakness Timer --
    		if gain then
    			send_command('timers create "Weakness" 300 up')
    		else
    			send_command('timers delete "Weakness"')
    		end
    	end
    	if not midaction() then
    		status_change(player.status)
    	end
    end
    
    -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
    function self_command(command)
    	if command == 'C1' then -- Accuracy Level Toggle --
    		AccIndex = (AccIndex % #AccArray) + 1
    		status_change(player.status)
    		add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
    	elseif command == 'C5' then -- Auto Update Gear Toggle --
    		status_change(player.status)
    		add_to_chat(158,'Auto Update Gear')
    	elseif command == 'C3' then -- Obi Toggle --
    		if Obi == 'ON' then
    			Obi = 'OFF'
    			add_to_chat(123,'Obi: [OFF]')
    		else
    			Obi = 'ON'
    			add_to_chat(158,'Obi: [ON]')
    		end
    		status_change(player.status)
    	elseif command == 'C7' then -- PDT Toggle --
    		if Armor == 'PDT' then
    			Armor = 'None'
    			add_to_chat(123,'PDT Set: [Unlocked]')
    		else
    			Armor = 'PDT'
    			add_to_chat(158,'PDT Set: [Locked]')
    		end
    		status_change(player.status)
    	elseif command == 'C15' then -- MDT Toggle --
    		if Armor == 'MDT' then
    			Armor = 'None'
    			add_to_chat(123,'MDT Set: [Unlocked]')
    		else
    			Armor = 'MDT'
    			add_to_chat(158,'MDT Set: [Locked]')
    		end
    		status_change(player.status)
    	elseif command == 'C8' then -- Distance Toggle --
    		if player.target.distance then
    			target_distance = math.floor(player.target.distance*10)/10
    			add_to_chat(158,'Distance: '..target_distance)
    		else
    			add_to_chat(123,'No Target Selected')
    		end
    	elseif command == 'C6' then -- Idle Toggle --
    		IdleIndex = (IdleIndex % #IdleArray) + 1
    		status_change(player.status)
    		add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
    	elseif command == 'C2' then -- Auto Ranged Attack Toggle. *Don't Rely On This. It Isn't As Fast As Shooting Manually. It Is Mainly For AFK or When You Dualbox* --
    		if autoRAmode == 0 then
    			autoRAmode = 1
    			add_to_chat(158,'AutoRA Mode: [ON]')
    		else
    			autoRAmode = 0
    			add_to_chat(123,'AutoRA Mode: [OFF]')
    		end
    	elseif command == 'TP' then
    		add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
    	elseif command:match('^SC%d$') then
    		send_command('//' .. sc_map[command])
    	end
    end
    
    function autoRA()
    	send_command('@wait 2.7; input /ra <t>')
    end
    
    function define_roll_values()
    	rolls = {
    		CorsairsRoll		= {lucky=5, unlucky=9, bonus="Experience Points"},
    		NinjaRoll		= {lucky=4, unlucky=8, bonus="Evasion"},
    		HuntersRoll		= {lucky=4, unlucky=8, bonus="Accuracy"},
    		ChaosRoll		= {lucky=4, unlucky=8, bonus="Attack"},
    		MagussRoll		= {lucky=2, unlucky=6, bonus="Magic Defense"},
    		HealersRoll		= {lucky=3, unlucky=7, bonus="Cure Potency Received"},
    		PuppetRoll		= {lucky=4, unlucky=8, bonus="Pet Magic Accuracy/Attack"},
    		ChoralRoll		= {lucky=2, unlucky=6, bonus="Spell Interruption Rate"},
    		MonksRoll		= {lucky=3, unlucky=7, bonus="Subtle Blow"},
    		BeastRoll		= {lucky=4, unlucky=8, bonus="Pet Attack"},
    		SamuraiRoll		= {lucky=2, unlucky=6, bonus="Store TP"},
    		EvokersRoll		= {lucky=5, unlucky=9, bonus="Refresh"},
    		RoguesRoll		= {lucky=5, unlucky=9, bonus="Critical Hit Rate"},
    		WarlocksRoll		= {lucky=4, unlucky=8, bonus="Magic Accuracy"},
    		FightersRoll		= {lucky=5, unlucky=9, bonus="Double Attack Rate"},
    		DrachenRoll		= {lucky=3, unlucky=7, bonus="Pet Accuracy"},
    		GallantsRoll		= {lucky=3, unlucky=7, bonus="Defense"},
    		WizardsRoll		= {lucky=5, unlucky=9, bonus="Magic Attack"},
    		DancersRoll		= {lucky=3, unlucky=7, bonus="Regen"},
    		ScholarsRoll		= {lucky=2, unlucky=6, bonus="Conserve MP"},
    		BoltersRoll		= {lucky=3, unlucky=9, bonus="Movement Speed"},
    		CastersRoll		= {lucky=2, unlucky=7, bonus="Fast Cast"},
    		CoursersRoll		= {lucky=3, unlucky=9, bonus="Snapshot"},
    		BlitzersRoll		= {lucky=4, unlucky=9, bonus="Attack Delay"},
    		TacticiansRoll		= {lucky=5, unlucky=8, bonus="Regain"},
    		AlliessRoll		= {lucky=3, unlucky=10, bonus="Skillchain Damage"},
    		MisersRoll		= {lucky=5, unlucky=7, bonus="Save TP"},
    		CompanionsRoll		= {lucky=2, unlucky=10, bonus="Pet Regain and Regen"},
    		AvengersRoll		= {lucky=4, unlucky=8, bonus="Counter Rate"}
    		}
    end
    
    function display_roll_info(spell)
    	rollinfo = rolls[(string.gsub((string.gsub(spell.english, "%'+", "")), "%s+", ""))]
    	if rollinfo then
    		add_to_chat(158, spell.english..' = '..rollinfo.bonus..'. Lucky Roll is '..
    			tostring(rollinfo.lucky)..', Unlucky Roll is '..tostring(rollinfo.unlucky)..'.')
    	end
    end

  11. #4211
    Relic Shield
    Join Date
    Jan 2013
    Posts
    1,868
    BG Level
    6

    Granted I make my own luas and dont use Motes type luas that are too much (so if you do use Motes, disregard all this), but what I have found to be easy to do is:
    Code:
    function get_sets()
    
    	TripShot_Index = 1
    	TripShot_Mode = {"None","Triple Shot"}
    
    ---- Job Abilities ----
    	sets.JA = {}
    	sets.JA.None = {}
    	sets.JA["Triple Shot"] =
    		{body="Chasseur's Frac"}
    ---- Pre Shot ----
    	sets.PS =
    		{your pre shot gear}
    ---- Mid Shot ----
    	sets.RA =
    		{your mid shot gear}
    
    end
    
    function precast(spell, action)
    	if sets.JA[spell.name] then
    		equip(sets.JA[spell.name])
    		if spell.name == 'Triple Shot' then
    			if windower.ffxi.get_ability_recasts()[84] < 1 then
    				TripShot_Index = 2
    			end
    		end
    	end
    	if spell.name == "Ranged" then
    		equip(sets.PS, sets.JA[TripShot_Mode[TripShot_Index]])
    	end
    end
    
    function midcast(spell, action)
    	if spell.name == "Ranged" then
    		equip(sets.RA, sets.JA[TripShot_Mode[TripShot_Index]])
    	end
    end
    
    function buff_change(buff,gain,buff_table)
    	if buff == 'Triple Shot' and not gain then
    		TripShot_Index = 1
    	end
    end
    You could also do this instead of putting the index change in the precast section.
    Code:
    function buff_change(buff,gain,buff_table)
    	if buff == 'Triple Shot' and not gain then
    		TripShot_Index = 1
    	else
    		TripShot_Index = 2
    	end
    end
    Basically there is a variable (thats what i call it anyways) called "TripShot_Index" That gets toggled when you use Triple Shot (or like in the second code block, when you gain/lose Triple Shot buff). Then when you range attack, if the variable is set to 2 (or to "Triple Shot" instead of "None") it will equip your ranged sets with sets.JA["Triple Shot"] on top of them (which contains your Frac). if the variable is set to 1 (or "None") it will equip your ranged sets with sets.JA.None on top of them. sets.JA.None is an empty set so it basically equips just the ranged set.

    I figured this way out due to sometimes the game is slow to realize a buff or condition is occurring and the gear doesnt switch properly.

  12. #4212
    Bagel
    Join Date
    Dec 2012
    Posts
    1,488
    BG Level
    6

    Quote Originally Posted by Aragon of Odin View Post
    Here you go

    ...
    ok what it looks like your trying to do is dynamicaly build a gear set
    Code:
    if spell.english=='Ranged' then
        equipSet = sets.Midshot
        if equipSet[player.equipment.range] then
            equipSet = equipSet[player.equipment.range]
        end
        if equipSet[AccArray[AccIndex]] then
            equipSet = equipSet[AccArray[AccIndex]]
        end
        equip(equipSet)
    replace it with this
    Code:
            equipSet = sets.Midshot
            if equipSet[player.equipment.range] then
                equipSet = set_combine(equipSet,equipSet[player.equipment.range])
            end
            if equipSet[AccArray[AccIndex]] then
                equipSet = set_combine(equipSet,equipSet[AccArray[AccIndex]])
            end
            if bufactive["Triple Shot"] then
                equipSet = set_combine(equipSet,{body="Chasseur's Frac"})
            end
            equip(equipSet)
    for your precast chang this
    Code:
    equip(sets.Preshot)
    to this
    Code:
    equip(sets.Preshot,(buffactive["Triple Shot"] and {body="Chasseur's Frac"} or {}))
    and this
    Code:
    sets.Midshot.HighACC = set_combine(sets.Midshot.HighACC,{
    ring1="Hajduk Ring"})
    should be
    Code:
    sets.Midshot.HighACC = set_combine(sets.Midshot.MidACC,{
    ring1="Hajduk Ring"})
    ----
    mind you i cant stand when sets are built in the higher level sets but this should work with your current setup

  13. #4213
    Bagel
    Join Date
    Dec 2012
    Posts
    1,488
    BG Level
    6

    Quote Originally Posted by Trumpy View Post
    Granted I make my own luas and dont use Motes type luas that are too much (so if you do use Motes, disregard all this), but what I have found to be easy to do is:
    same here
    but i like this better
    --precast
    Code:
    equip(sets.Preshot,(buffactive["Triple Shot"] and {body="Chasseur's Frac"} or {}))
    --midcast
    eather
    Code:
    equip(equipSet,(buffactive["Triple Shot"] and {body="Chasseur's Frac"} or {}))
    or
    Code:
             equipSet = sets.Midshot
             if equipSet[player.equipment.range] then
                 equipSet = set_combine(equipSet,equipSet[player.equipment.range])
             end
             if equipSet[AccArray[AccIndex]] then
                 equipSet = set_combine(equipSet,equipSet[AccArray[AccIndex]])
             end
             if bufactive["Triple Shot"] then
                 equipSet = set_combine(equipSet,{body="Chasseur's Frac"})
             end
             equip(equipSet)

  14. #4214
    Pens win! Pens Win!!! PENS WIN!!!!!
    Sweaty Dick Punching Enthusiast

    Join Date
    Oct 2007
    Posts
    2,187
    BG Level
    7

    Thanks!

    The Vanir Gun/Death Penalty sets etc I knew about, but they were in the lua when it was given to me so I just left them blank.

    I'll make the changes when I get home and hopefully all works! Thank you for finding that error in the HighACC as well

  15. #4215
    Bagel
    Join Date
    Dec 2012
    Posts
    1,488
    BG Level
    6

    Quote Originally Posted by Aragon of Odin View Post
    Thanks!

    The Vanir Gun/Death Penalty sets etc I knew about, but they were in the lua when it was given to me so I just left them blank.

    I'll make the changes when I get home and hopefully all works! Thank you for finding that error in the HighACC as well
    i fixed both my above posts i forgot equipSet = on the equipSet = set_combine(equipSet,{body="Chasseur's Frac"}) line

  16. #4216
    Relic Shield
    Join Date
    Jan 2013
    Posts
    1,868
    BG Level
    6

    Except I dont even know what all that stuff means. I'm lua retarded. The code i gave works with basic luas i make and not mote's level stuff.

  17. #4217
    Pens win! Pens Win!!! PENS WIN!!!!!
    Sweaty Dick Punching Enthusiast

    Join Date
    Oct 2007
    Posts
    2,187
    BG Level
    7

    Worked like a charm! Thank you ^^

  18. #4218
    Bagel
    Join Date
    Dec 2012
    Posts
    1,488
    BG Level
    6

    Quote Originally Posted by Trumpy View Post
    Except I dont even know what all that stuff means. I'm lua retarded. The code i gave works with basic luas i make and not mote's level stuff.
    this
    Code:
    equip(sets.Preshot,(buffactive["Triple Shot"] and {body="Chasseur's Frac"} or {}))
    is the same as this
    Code:
    if buffactive["Triple Shot"] then
        equip(sets.Preshot,{body="Chasseur's Frac"})
    else
        equip(sets.Preshot)
    end
    its just in one line and more advanced

    the way it works is
    (a and b or c)
    if a is true use b
    if a is false use c
    examples:
    ("true"=="true" and true or false)--makes the variable true
    ("false"=="true" and true or false)--makes the variable false
    and yes you can do it with any type of rule
    >,>=,<,<=,==,~=
    even variables
    example:
    test = true
    (test and true or false)--true

    test = 100
    (test > 1 and false or true)--false

    and i agree about making my own include (mine is in the link below and im about to update and remove it from beta in the next couple of days)

  19. #4219
    RIDE ARMOR
    Join Date
    Aug 2009
    Posts
    12
    BG Level
    1
    FFXI Server
    Shiva
    WoW Realm
    Hellscream

    Quote Originally Posted by Orestes View Post

    It would be a good habbit to run your luas through codepad to shed light on small syntax errors like this.
    I got it working, thanks and I"ll check codepad in the future before posting :D

  20. #4220
    Bagel
    Join Date
    Dec 2012
    Posts
    1,488
    BG Level
    6

    can anybody think of a way to make this work with out windower locking up till it finishes
    Code:
    extdata = require("extdata")
    function get_item_next_use(name)--returns time remaining till items next use
        local bag
        local id
        if player.wardrobe[name] then
            bag = "wardrobe"
            id = player.wardrobe[name].id
        elseif player.inventory[name] then
            bag = "inventory"
            id = player.inventory[name].id
        end
        if bag and id then
            for _,v in pairs(windower.ffxi.get_items(bag)) do
                if v.id == id then
                    return extdata.decode(v).next_use_time
                end
            end
        end
    end

Page 211 of 302 FirstFirst ... 161 201 209 210 211 212 213 221 261 ... LastLast

Similar Threads

  1. Replies: 6547
    Last Post: 2014-07-08, 22:45