Gearswap Support Thread

Langues: JP EN DE FR
users online
Forum » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 64 65 66 ... 182 183 184
 Quetzalcoatl.Falkirk
Guide Maker
Offline
Serveur: Quetzalcoatl
Game: FFXI
user: Falkirk
Posts: 683
By Quetzalcoatl.Falkirk 2015-05-20 06:37:08
Link | Citer | R
 
Perhaps semi-related, a bunch of the recent-ish jug pet abilities don't register with Gearswap. Would the solution be similar for those? :)

I think this is the full list of moves that don't work:
Somersault
Tickling Tendrils
Stink Bomb
Nectarous Deluge
Nepenthic Plunge
Sickle Slash
Acid Spray
Spider Web
Pecking Flurry
Foul Waters
Pestilent Plume

Any help would be greatly appreciated. <3
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2015-05-20 07:49:36
Link | Citer | R
 
Can you find them in the resources?
 Quetzalcoatl.Falkirk
Guide Maker
Offline
Serveur: Quetzalcoatl
Game: FFXI
user: Falkirk
Posts: 683
By Quetzalcoatl.Falkirk 2015-05-20 07:56:26
Link | Citer | R
 
Edit: Oops, was looking in the wrong file - they're in job_abilities.lua:

[768] = {id=768,en="Tickling Tendrils",ja="ティックルテンドリル",element=4,icon_id=44,mp_cost=1,prefix="/pet",range=4,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[769] = {id=769,en="Stink Bomb",ja="スティンクボム",element=3,icon_id=43,mp_cost=2,prefix="/pet",range=8,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[770] = {id=770,en="Nectarous Deluge",ja="ネクターデルージュ",element=5,icon_id=45,mp_cost=2,prefix="/pet",range=8,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[771] = {id=771,en="Nepenthic Plunge",ja="ネペンシックプランジ",element=5,icon_id=45,mp_cost=3,prefix="/pet",range=8,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[772] = {id=772,en="Somersault ",ja="サマーソルト",element=6,icon_id=46,mp_cost=1,prefix="/pet",range=2,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[774] = {id=774,en="Foul Waters",ja="ファウルウォーター",element=5,icon_id=45,mp_cost=2,prefix="/pet",range=10,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[775] = {id=775,en="Pestilent Plume",ja="ペステレントプルーム",element=7,icon_id=47,mp_cost=2,prefix="/pet",range=10,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[776] = {id=776,en="Pecking Flurry",ja="ペッキングフラリー",element=6,icon_id=46,mp_cost=1,prefix="/pet",range=4,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[777] = {id=777,en="Sickle Slash",ja="シックルスラッシュ",element=6,icon_id=46,mp_cost=1,prefix="/pet",range=2,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[778] = {id=778,en="Acid Spray",ja="アシッドスプレー",element=5,icon_id=45,mp_cost=1,prefix="/pet",range=9,recast_id=102,targets=1,tp_cost=0,type="Monster"},
[779] = {id=779,en="Spider Web",ja="スパイダーウェブ",element=3,icon_id=43,mp_cost=2,prefix="/pet",range=9,recast_id=102,targets=1,tp_cost=0,type="Monster"},

--
Oh yeah, they fixed the errant space after "Somersault " in the emergency maintenance yesterday. :)
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2015-05-20 09:22:31
Link | Citer | R
 
It is interesting that the MP cost is the number of charges the moves consume. Also, the fact that it starts at 768 (256*3) indicates it's likely something internal in gearswap. I'll take a look at it later.
[+]
 Quetzalcoatl.Falkirk
Guide Maker
Offline
Serveur: Quetzalcoatl
Game: FFXI
user: Falkirk
Posts: 683
By Quetzalcoatl.Falkirk 2015-05-20 09:27:11
Link | Citer | R
 
Thank you, sir! <3
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2015-05-20 09:40:17
Link | Citer | R
 
Just to clarify, they fail to trigger pretarget/precast?
 Quetzalcoatl.Falkirk
Guide Maker
Offline
Serveur: Quetzalcoatl
Game: FFXI
user: Falkirk
Posts: 683
By Quetzalcoatl.Falkirk 2015-05-20 09:57:56
Link | Citer | R
 
Right!

Tried to debug them a while back - attempting to print "spell" gave no result for those moves (but worked fine for all of the older ready moves).
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2015-05-21 00:48:37
Link | Citer | R
 
Okay, it turns out this issue was actually in LuaCore. I submitted the changes to the repository and it'll probably go out in the next LuaCore version.
[+]
 Asura.Sechs
Offline
Serveur: Asura
Game: FFXI
user: Akumasama
Posts: 10088
By Asura.Sechs 2015-05-21 01:40:18
Link | Citer | R
 
Byrth could this lua core issue you've found relate in some way to the issue some SMNs were experiencing? (BPs being executed in gear other than the pet midcast defined sets)
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2015-05-21 01:45:45
Link | Citer | R
 
No
[+]
Offline
By Draylo 2015-05-21 11:45:41
Link | Citer | R
 
I would say its an issue w/motes GS but it seems Sechs doesn't use that. I wonder what is causing it that isn't showing up in the default SMN gs made.
 Shiva.Malthar
Offline
Serveur: Shiva
Game: FFXI
user: Malthar
Posts: 518
By Shiva.Malthar 2015-05-21 12:20:00
Link | Citer | R
 
Why don't you make your own GS, Draylo, you lazy bum. :-P
 Quetzalcoatl.Kyrial
Offline
Serveur: Quetzalcoatl
Game: FFXI
user: Kyrial
Posts: 332
By Quetzalcoatl.Kyrial 2015-05-21 18:54:05
Link | Citer | R
 
Since I have no idea how syntax works at all and everything I have is copied from others... What would be the easiest way to define a set for summoning trusts (to make sure I summon them at as high an ilvl as possible)?
 Quetzalcoatl.Kyrial
Offline
Serveur: Quetzalcoatl
Game: FFXI
user: Kyrial
Posts: 332
By Quetzalcoatl.Kyrial 2015-05-21 19:43:07
Link | Citer | R
 
SE specifically said that they are affected by our ilvl. But while I was looking for where they said that, I found something saying that, while Trusts don't level with us (if you're 56 and hit 57, your trusts stay 56 until you resummon them), they do change along with our ilvl without needing to be resummoned. So I guess it is unnecessary all the same. :P
 Asura.Pintseyes
Offline
Serveur: Asura
Game: FFXI
user: yurmy123
Posts: 115
By Asura.Pintseyes 2015-05-22 17:23:22
Link | Citer | R
 
Hey guys.

I'm not sure if this was my doing or the most recent update. My cancel features quit working within GS. If I cast SS,refresh,sneak etc etc the "cancel conflicting buffs" doesnt work.

What I've tried:

Completely deleted GS folder keeping only my folder DATA. Reinstalled GS, went and got new Motes from Kinematics. So my unknowledged guess is that my issue isnt in utilities.lua..Considering I've reinstalled all new versions of my motes and lua's, yet that seems like where my problem should be - where i see the functions for my cancels.. Anyone have a better idea of whats wrong?

I've looked through my lua's for jobs to see if there's any cancels in there that maybe broke, there isn't.. beyond that, every single job lua is having the same problem =(, i didnt change ALL my luas recently enough to think its within them..

Last ditch effort im gonna reinstall cancel see if that works.. Anyone got a better idea?


Thanks for your time!
 Lakshmi.Zyphos
Offline
Serveur: Lakshmi
Game: FFXI
user: Zyphos
Posts: 70
By Lakshmi.Zyphos 2015-05-23 11:43:18
Link | Citer | R
 
So I've been trying to get GearSwap to work at all, and I've swapped my gear into Mote's THF Lua. Lo and behold, it's broken as hell. It won't swap into the various sets at all, it seems intent on throwing on my idle and TH set at the same time and just staying there, doesn't swap to TP or WS sets. Any idea what could possibly be causing it?

Google doesn't find anything, and I've wasted a few hours trying to figure out what in the hell could be causing it.
 Asura.Psylo
Online
Serveur: Asura
Game: FFXI
user: psylo
Posts: 446
By Asura.Psylo 2015-05-30 05:13:05
Link | Citer | R
 
Hello, i need some help fro one thing.

I have a special phalanx set, in my lua :
Code
sets.midcast.Phalanx =  set_combine(sets.midcast['Enhancing Magic'],{
		main="Egeking", 
		head={ name="Taeon Chapeau", augments={'Accuracy+19','"Triple Atk."+2','Phalanx +1',}},
		body={ name="Taeon Tabard", augments={'Accuracy+10','"Triple Atk."+2','Phalanx +2',}},
		hands={ name="Taeon Gloves", augments={'"Dual Wield"+5','Phalanx +2',}},
		legs={ name="Taeon Tights", augments={'Accuracy+12','"Dual Wield"+5','Phalanx +1',}},
		feet={ name="Taeon Boots", augments={'Accuracy+12','"Triple Atk."+2','Phalanx +2',}},
		})


And have another special set for duration :
Code
sets.midcast.EnhancingDuration = {hands="Atrophy Gloves +1",
		back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +6','Enha.mag. skill +7','Mag. Acc.+9','Enh. Mag. eff. dur. +19',}}
		,feet="Leth. Houseaux +1"}


But atm, when i cast phalanx, GS swap to duration, i try to adjust mid cast function but ...
Code
if spell.skill == 'Enfeebling Magic' and state.Buff.Saboteur then
        equip(sets.buff.Saboteur)
	
    elseif spell.skill == 'Enhancing Magic' then
        if spell.english == "phalanx" then equip(sets.midcast.Phalanx)
		else equip(sets.midcast.EnhancingDuration)
		end
        if buffactive.composure and spell.target.type == 'PLAYER' then
            equip(sets.buff.ComposureOther)
        end
		


Anyone see where i made mistake ?

Thks in advance
 Asura.Psylo
Online
Serveur: Asura
Game: FFXI
user: psylo
Posts: 446
By Asura.Psylo 2015-05-30 05:57:36
Link | Citer | R
 
Ok got it ^^
Code
elseif spell.skill == 'Enhancing Magic' and spell.english ~= "Phalanx" then 
 Cerberus.Tidis
MSPaint Winner
Offline
Serveur: Cerberus
Game: FFXI
user: tidis
Posts: 3927
By Cerberus.Tidis 2015-05-30 12:46:56
Link | Citer | R
 
I have just made the switch to Mote's THF Gearswap, I want to change it so I start in "None" mode for TH rather than "Tag" but I can't seem to get it working, I figured it was a case of editing the Mote-TreasureHunter.lua itself
Code
-------------------------------------------------------------------------------------------------------------------
-- Utility include for applying and tracking Treasure Hunter effects.
--
-- Include this if  you want a means of applying TH on the first contact
-- with a mob, then resume using normal gear.
-- Thf also has modes to use TH gear for SATA and for keeping it on fulltime.
--
-- Command: include('Mote-TreasureHunter')
-- Place this in your job_setup() function, or user_setup() function if using
-- a sidecar file, or get_sets() function if your job file isn't based
-- on my includes.
-- Be sure to define your own sets.TreasureHunter gear set after the include.
-- If using a job file based on my includes, simply place it in the
-- standard init_gear_sets() function.
--
-- If you define TH gear sets for common actions (eg: Provoke, Box Step, etc),
-- then make sure they are accounted for in a th_action_check function
-- (signature: th_action_check(category, param)) in the job file.  It's passed 
-- category and param value for actions the user takes, and if it returns true,
-- that means that it's considered a valid tagging action.
--
-- If using this in a job file that isn't based on my includes, you must
-- handle cycling the options values on your own, unless you also include
-- Mote-SelfCommands.
--
-- The job file must handle the 'update' self-command (gs c update auto).
-- This is automatically handled if using my includes, but must be ensured
-- if being used with a user-built job file.
-- When called, it merely needs to equip standard melee gear for the current
-- configuration.
--
-- Create a macro or keybind to cycle the Treasure Mode value:
-- gs c cycle TreasureMode
-------------------------------------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------------------------------------
-- Setup vars and events when first running the include.
-------------------------------------------------------------------------------------------------------------------

-- Ensure base tables are defined
options = options or {}
state = state or {}
info = info or {}
state.TreasureMode = M{['description']='Treasure Mode'}

-- TH mode handling
if player.main_job == 'THF' then
    state.TreasureMode:options('None','Tag','SATA','Fulltime')
    state.TreasureMode:set('None')
else
    state.TreasureMode:options('None','Tag')
end

-- Tracking vars for TH.
info.tagged_mobs = T{}
info.last_player_target_index = 0
state.th_gear_is_locked = false

-- Required gear set.  Expand this in the job file when defining sets.
sets.TreasureHunter = {}

-- Event registration is done at the bottom of this file.


-------------------------------------------------------------------------------------------------------------------
-- User-callable functions for TH handling utility.
-------------------------------------------------------------------------------------------------------------------

-- Can call to force a status refresh.
-- Also displays the current tagged mob table if in debug mode.
function th_update(cmdParams, eventArgs)
    if (cmdParams and cmdParams[1] == 'user') or not cmdParams then
        TH_for_first_hit()
    
        if _settings.debug_mode then
            print_set(info.tagged_mobs, 'Tagged mobs')
        end
    end
end


-------------------------------------------------------------------------------------------------------------------
-- Local functions to support TH handling.
-------------------------------------------------------------------------------------------------------------------

-- Set locked TH flag to true, and disable relevant gear slots.
function lock_TH()
    state.th_gear_is_locked = true
    local slots = T{}
    for slot,item in pairs(sets.TreasureHunter) do
        slots:append(slot)
    end
    disable(slots)
end


-- Set locked TH flag to false, and enable relevant gear slots.
function unlock_TH()
    state.th_gear_is_locked = false
    local slots = T{}
    for slot,item in pairs(sets.TreasureHunter) do
        slots:append(slot)
    end
    enable(slots)
    send_command('gs c update auto')
end


-- For any active TH mode, if we haven't already tagged this target, equip TH gear and lock slots until we manage to hit it.
function TH_for_first_hit()
    if player.status == 'Engaged' and state.TreasureMode.value ~= 'None' then
        if not info.tagged_mobs[player.target.id] then
            if _settings.debug_mode then add_to_chat(123,'Prepping for first hit on '..tostring(player.target.id)..'.') end
            equip(sets.TreasureHunter)
            lock_TH()
        elseif state.th_gear_is_locked then
            if _settings.debug_mode then add_to_chat(123,'Target '..player.target.id..' has been tagged.  Unlocking.') end
            unlock_TH()
        else
            if _settings.debug_mode then add_to_chat(123,'Prepping for first hit on '..player.target.id..'.  Target has already been tagged.') end
        end
    else
        unlock_TH()
    end
end


-------------------------------------------------------------------------------------------------------------------
-- Event handlers to allow tracking TH application.
-------------------------------------------------------------------------------------------------------------------

-- On engaging a mob, attempt to add TH gear.  For any other status change, unlock TH gear slots.
function on_status_change_for_th(new_status_id, old_status_id)
    if gearswap.gearswap_disabled or T{2,3,4}:contains(old_status_id) or T{2,3,4}:contains(new_status_id) then return end
    
    local new_status = gearswap.res.statuses[new_status_id].english
    local old_status = gearswap.res.statuses[old_status_id].english

    if new_status == 'Engaged' then
        if _settings.debug_mode then add_to_chat(123,'Engaging '..player.target.id..'.') end
        info.last_player_target_index = player.target.index
        TH_for_first_hit()
    elseif old_status == 'Engaged' then
        if _settings.debug_mode and state.th_gear_is_locked then add_to_chat(123,'Disengaging. Unlocking TH.') end
        info.last_player_target_index = 0
        unlock_TH()
    end
end


-- On changing targets, attempt to add TH gear.
function on_target_change_for_th(new_index, old_index)
    -- Only care about changing targets while we're engaged, either manually or via current target death.
    if player.status == 'Engaged' then
        -- If  the current player.target is the same as the new mob then we're actually
        -- engaged with it.
        -- If it's different than the last known mob, then we've actually changed targets.
        if player.target.index == new_index and new_index ~= info.last_player_target_index then
            if _settings.debug_mode then add_to_chat(123,'Changing target to '..player.target.id..'.') end
            info.last_player_target_index = player.target.index
            TH_for_first_hit()
        end
    end
end


-- On any action event, mark mobs that we tag with TH.  Also, update the last time tagged mobs were acted on.
function on_action_for_th(action)
    --add_to_chat(123,'cat='..action.category..',param='..action.param)
    -- If player takes action, adjust TH tagging information
    if state.TreasureMode.value ~= 'None' then
        if action.actor_id == player.id then
            -- category == 1=melee, 2=ranged, 3=weaponskill, 4=spell, 6=job ability, 14=unblinkable JA
            if state.TreasureMode.value == 'Fulltime' or
               (state.TreasureMode.value == 'SATA' and (action.category == 1 or ((state.Buff['Sneak Attack'] or state.Buff['Trick Attack']) and action.category == 3))) or
               (state.TreasureMode.value == 'Tag' and action.category == 1 and state.th_gear_is_locked) or -- Tagging with a melee hit
               (th_action_check and th_action_check(action.category, action.param)) -- Any user-specified tagging actions
               then
                for index,target in pairs(action.targets) do
                    if not info.tagged_mobs[target.id] and _settings.debug_mode then
                        add_to_chat(123,'Mob '..target.id..' hit. Adding to tagged mobs table.')
                    end
                    info.tagged_mobs[target.id] = os.time()
                end
    
                if state.th_gear_is_locked then
                    unlock_TH()
                end
            end
        elseif info.tagged_mobs[action.actor_id] then
            -- If mob acts, keep an update of last action time for TH bookkeeping
            info.tagged_mobs[action.actor_id] = os.time()
        else
            -- If anyone else acts, check if any of the targets are our tagged mobs
            for index,target in pairs(action.targets) do
                if info.tagged_mobs[target.id] then
                    info.tagged_mobs[target.id] = os.time()
                end
            end
        end
    end
    
    cleanup_tagged_mobs()
end


-- Need to use this event handler to listen for deaths in case Battlemod is loaded,
-- because Battlemod blocks the 'action message' event.
--
-- This function removes mobs from our tracking table when they die.
function on_incoming_chunk_for_th(id, data, modified, injected, blocked)
    if id == 0x29 then
        local target_id = data:unpack('I',0x09)
        local message_id = data:unpack('H',0x19)%32768

        -- Remove mobs that die from our tagged mobs list.
        if info.tagged_mobs[target_id] then
            -- 6 == actor defeats target
            -- 20 == target falls to the ground
            if message_id == 6 or message_id == 20 then
                if _settings.debug_mode then add_to_chat(123,'Mob '..target_id..' died. Removing from tagged mobs table.') end
                info.tagged_mobs[target_id] = nil
            end
        end
    end
end


-- Clear out the entire tagged mobs table when zoning.
function on_zone_change_for_th(new_zone, old_zone)
    if _settings.debug_mode then add_to_chat(123,'Zoning. Clearing tagged mobs table.') end
    info.tagged_mobs:clear()
end


-- Save the existing function, if it exists, and call it after our own handling.
if job_state_change then
    job_state_change_via_th = job_state_change
end


-- Called if we change any user state fields.
function job_state_change(stateField, newValue, oldValue)
    if stateField == 'Treasure Mode' then
        if newValue == 'None' and state.th_gear_is_locked then
            if _settings.debug_mode then add_to_chat(123,'TH Mode set to None. Unlocking gear.') end
            unlock_TH()
        elseif oldValue == 'None' then
            TH_for_first_hit()
        end
    end
    
    if job_state_change_via_th then
        job_state_change_via_th(stateField, newValue, oldValue)
    end
end

-------------------------------------------------------------------------------------------------------------------
-- Extra utility functions.
-------------------------------------------------------------------------------------------------------------------

-- Remove mobs that we've marked as tagged with TH if we haven't seen any activity from or on them
-- for over 3 minutes.  This is to handle deagros, player deaths, or other random stuff where the
-- mob is lost, but doesn't die.
function cleanup_tagged_mobs()
    -- If it's been more than 3 minutes since an action on or by a tagged mob,
    -- remove them from the tagged mobs list.
    local current_time = os.time()
    local remove_mobs = S{}
    -- Search list and flag old entries.
    for target_id,action_time in pairs(info.tagged_mobs) do
        local time_since_last_action = current_time - action_time
        if time_since_last_action > 180 then
            remove_mobs:add(target_id)
            if _settings.debug_mode then add_to_chat(123,'Over 3 minutes since last action on mob '..target_id..'. Removing from tagged mobs list.') end
        end
    end
    -- Clean out mobs flagged for removal.
    for mob_id,_ in pairs(remove_mobs) do
        info.tagged_mobs[mob_id] = nil
    end
end


-------------------------------------------------------------------------------------------------------------------
-- Event function registration calls.
-- Can call these now that the above functions have been defined.
-------------------------------------------------------------------------------------------------------------------

-- Register events to allow us to manage TH application.
windower.register_event('status change', on_status_change_for_th)
windower.register_event('target change', on_target_change_for_th)
windower.raw_register_event('action', on_action_for_th)
windower.raw_register_event('incoming chunk', on_incoming_chunk_for_th)
windower.raw_register_event('zone change', on_zone_change_for_th)

The part near the top is what I changed, it used to say:
Code
state.TreasureMode:set('Tag')

which I changed to:
Code
state.TreasureMode:set('None')


But that didn't work, is there likely to be something in this file I missed, or is it going to be somewhere in my THF lua file?
 Seraph.Jacaut
Offline
Serveur: Seraph
Game: FFXI
user: Jacaut
Posts: 383
By Seraph.Jacaut 2015-06-01 12:07:42
Link | Citer | R
 
I killed my dnc.lua but i dont have a clue what i did to it.. All i did was change some gearsets and add some now i get this message

"GearSwap has detected an error in the user function get_sets:
files(x86)windower4/addons/GearSwap/Data/DNC.lua:306: Attempt to index field 'Evasion' (a nil value)"

Im trying to post my lua on here but i cant figure it out, never been my strong suit =/ any ideas what the error means?

Edit*
 Lakshmi.Rooks
Administrator
Offline
Serveur: Lakshmi
Game: FFXI
user: Rooks
Posts: 1566
By Lakshmi.Rooks 2015-06-01 12:10:05
Link | Citer | R
 
You don't define sets.engaged.Fodder.Evasion before attempting to define sets.engaged.Fodder.Evasion.HighHaste.
 Seraph.Jacaut
Offline
Serveur: Seraph
Game: FFXI
user: Jacaut
Posts: 383
By Seraph.Jacaut 2015-06-01 12:19:01
Link | Citer | R
 
thanks fixed! i turned that into my solo set, shoulda just made a new one instead of typing over it ill remember that next time, dont mess with the original! lol
 Asura.Suteru
Offline
Serveur: Asura
Game: FFXI
user: Suteru
Posts: 508
By Asura.Suteru 2015-06-01 17:30:46
Link | Citer | R
 
Mote's libs don't seem to be detecting properly, my Obi code isn't working. Is there anyone that can help track down the issue in libs before I resort to trying to redo it entirely.

PB of my code:
http://pastebin.com/p4EBXVS1

e: Fixed it, mote-mappings.lua assumed I had the hachirin no obi, which was throwing everything else off.
 Fenrir.Reece
Offline
Serveur: Fenrir
Game: FFXI
Posts: 339
By Fenrir.Reece 2015-06-02 17:07:30
Link | Citer | R
 
Hey guys, having an issue with a LUA for GEO. It will stop working entirely and not do anything once it does.

It seems to happen when I cast anything outside of Geomancy (Elemental, healing etc)

Only way to fix is by relogging and it's the only job that it does it on. The reloading doesn't fix either.
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()
    indi_timer = ''
    indi_duration = 180
end

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

-- Setup vars that are user-dependent.  Can override this function in a sidecar file.
function user_setup()
    state.OffenseMode:options('None', 'Normal')
    state.CastingMode:options('Normal', 'Resistant')
    state.IdleMode:options('Normal', 'PDT')

    --gear.default.weaponskill_waist = "Windbuffet Belt"

    select_default_macro_book()
end


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

    --------------------------------------
    -- Precast sets
    --------------------------------------

    -- Precast sets to enhance JAs
    sets.precast.JA.Bolster = {body="Bagua Tunic"}
    sets.precast.JA['Life cycle'] = {body="Geomancy Tunic"}
	sets.precast.JA.Bolster = {body="Bagua Tunic"}
    sets.precast.JA['Life cycle'] = {body="Geomancy Tunic",
    head="Azimuth hood"
    }
    sets.precast.JA['Curative Recantation'] = {hands="Bagua Mitaines"}
    sets.precast.JA['Mending Halation'] = {legs="Bagua Pants"}
    sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals"}
    sets.precast.JA['Primal Zeal'] = {head="Bagua galero"}   
    sets.precast.JA['Cardinal Chant'] = {head="geomancy galero"}
    -- Fast cast sets for spells

    sets.precast.FC = {range="Dunna",
        head="Haruspex Hat",ear2="Loquacious Earring",
        body="Helios Jacket",ring1="Shiva Ring",
        back="Lifestream Cape",waist="Aswang sash",legs="Geomancy Pants",feet="Helios Boots",main="Marin staff",sub="Elder's grip"}

    sets.precast.FC.Cure = set_combine(sets.precast.FC, {main="Tamaxchi",sub="Genbu's Shield",back="Lifestream Cape"})

    sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal"})
	sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
    head="Haruspex Hat",
    hands="Carapacho Cuffs",
    waist="Siegel Sash",
})  

    
    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
   

    -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
    


    --------------------------------------
    -- Midcast sets
    --------------------------------------

    -- Base fast recast for spells
    sets.midcast.FastRecast = {
        head="Haruspex Hat",
		ear2="Loquacious Earring",
        body="Helios Jacket",
		hands="Helios Gloves",
		ring1="Shiva Ring",
        back="Lifestream Cape",
		waist="Aswang sash",
		legs="Assiduity Pants +1",
		feet="Helios Boots",
		range="Dunna"
	}

    sets.midcast.Geomancy = {range="Dunna",
		head="Azimuth Hood",
		body="Bagua Tunic",
		legs="Bagua Pants",
		feet="Azimuth Gaiters",
		back="Lifestream Cape",
		hands="Geomancy Mitaines +1",
		right_ear="Magnetic Earring",
		left_ear="Gifted Earring"
	}
    sets.midcast.Geomancy.Indi = {range="Dunna",legs="Bagua Pants",head="Azimuth Hood",body="Bagua Tunic",feet="Azimuth Gaiters",back="Lifestream Cape",hands="Geomancy Mitaines +1"}

    sets.midcast.Cure = {
		main="Tamaxchi",
		sub="Genbu's Shield",
        body="Helios Jacket",
		hands="Telchine Gloves",
		ring1="Shiva Ring",
		ring2="Shiva Ring",
		back="Tempered Cape",
		legs="Assiduity Pants +1",
		feet="Helios Boots",
		neck="Fylgja Torque",
		right_ear="Lifestorm earring",
		left_ear="Magnetic Earring",
		head="Helios band"
	}
    
    sets.midcast.Curaga = sets.midcast.Cure

    sets.midcast.Protectra = {ring1="Sheltered Ring"}

    sets.midcast.Shellra = {ring1="Sheltered Ring"}
	
	sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {
		waist="Emphatikos rope"
	})
	
	sets.midcast['Enfeebling Magic'] = {
		main="Marin staff",
		sub="Elder's Grip",
		ammo="Ombre Tathlum",
		head="Telchine Cap",
		body="Helios Jacket",
		hands="Azimuth gloves",
		legs="Hagondes slacks +1",
		feet="Uk'uxkaj boots",
		neck="Stoicheion medal",
		waist="Aswang Sash",
		left_ear="Psystorm earring",
		right_ear="Lifestorm earring",
		left_ring="Shiva Ring",
		right_ring="Shiva Ring",
		back="lifestream Cape"
	}

sets.midcast.Regen = set_combine(sets.midcast.fastcast, {
		main="Bolelabunga",
		body="Telchine Chas."
	})
    
	sets.midcast['Enhancing Magic']= {
		main="Bolelabunga",
		sub="Genbu's Shield",
		head="Telchine cap",
		hands="bagua mitaines",
		body="Telchine Chas.",
		legs="bagua Pants",
		feet="Helios Boots",
		neck="Stoicheion medal",
		waist="Aswang Sash",
		left_ear="Psystorm earring",
		right_ear="Lifestorm earring",
		back="Lifestream cape"
	}
    
	sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {
		back="Lifestream cape"
	})
  
  
  -- Elemental Magic sets
      
    sets.midcast['Elemental Magic']= {
		main="Marin staff",
		sub="Elder's Grip",
		ammo="Ombre tathlum",
		head="Hagondes Hat",
		body="Azimuth Coat +1",
		hands="Yaoyotl gloves",
		legs="Hagondes Pants +1",
		feet="Helios Boots",
		neck="Stoicheion medal",
		waist="Aswang Sash",
		left_ear="Hecate's earring",
		right_ear="Friomisi earring",
		left_ring="Shiva ring",
		right_ring="Shiva ring",
		back="Toro Cape"
	}

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

    -- Resting sets
    sets.resting = {
		head="Azimuth Hood",
		neck="Wiglen Gorget",
        body="Azimuth Coat +1",
		hands="Bagua Mitaines",
		ring1="Shiva Ring",
		ring2="Paguroidea Ring",
        waist="Aswang Sash",
		legs="Assiduity Pants +1",
		feet="Geomancy Sandals"
	}

    -- Idle sets

    sets.idle = {
		main="Bolelabunga",
		sub="Genbu's Shield",
		range="Dunna",
        head="Azimuth Hood",
		neck="Wiglen Gorget",
		ear1="Psystorm Earring",
		ear2="Loquacious Earring",
        body="Azimuth Coat +1",
		hands="Bagua Mitaines",
		ring1="Shiva Ring",
		ring2="Paguroidea Ring",
        back="Lifestorm Cape",
		waist="Aswang sash",
		legs="Assiduity Pants +1",
		feet="Geomancy Sandals"
	}

    sets.idle.PDT = {
		main="Bolelabunga",
		sub="Genbu's Shield",
		range="Dunna",
        head="Nahtirah Hat",
		neck="Twilight Torque",
		ear1="Bloodgem Earring",
		ear2="Loquacious Earring",
        body="Hagondes Coat",
		hands="Yaoyotl Gloves",
		ring1="Defending Ring",
		ring2="Paguroidea Ring",
        back="Lifestorm Cape",
		waist="Goading Belt",
		legs="Assiduity Pants +1",
		feet="Herald's Gaiters"
	}

    -- .Pet sets are for when Luopan is present.
    sets.idle.Pet = {
		main="Bolelabunga",
		sub="Genbu's Shield",
		range="Dunna",
        head="Azimuth Hood",
		neck="Twilight Torque",
		ear1="Psystorm Earring",
		ear2="Loquacious Earring",
        body="Azimuth Coat +1",
		hands="Bagua Mitaines",
		ring1="Shiva Ring",
		ring2="Paguroidea Ring",
        back="Lifestream Cape",
		waist="Aswang sash",
		legs="Assiduity Pants +1",
		feet="Geomancy Sandals"
	}

    sets.idle.PDT.Pet = {
		main="Bolelabunga",
		sub="Genbu's Shield",
		range="Dunna",
        head="Azimuth Hood",
		neck="Twilight Torque",
		ear1="Psystorm Earring",
		ear2="Loquacious Earring",
        body="Azimuth Coat +1",
		hands="Bagua Mitaines",
		ring1="Shiva Ring",
		ring2="Paguroidea Ring",
        back="Lifestream Cape",
		waist="Aswang sash",
		legs="Assiduity Pants +1",
		feet="Geomancy Sandals"
	}

    -- .Indi sets are for when an Indi-spell is active.
	sets.idle.Indi = set_combine(sets.idle, {legs="Assiduity Pants +1"})
    sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {legs="Assiduity Pants +1"})
    sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {legs="Assiduity Pants +1"})
    sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {legs="Assiduity Pants +1"})

    sets.idle.Town = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
        head="Azimuth Hood",
		neck="Wiglen Gorget",
		ear1="Psystorm Earring",
		ear2="Loquacious Earring",
        body="Azimuth Coat +1",
		hands="Bagua Mitaines",
		ring1="Shiva Ring",
		ring2="Paguroidea Ring",
        back="Lifestream Cape",
		waist="Aswang sash",
		legs="Assiduity Pants +1",
		feet="Geomancy Sandals"
	}

    sets.idle.Weak = {
		main="Bolelabunga",
		sub="Genbu's Shield",
		range="Dunna",
        head="Azimuth Hood",
		neck="Wiglen Gorget",
		ear1="Psystorm Earring",
		ear2="Loquacious Earring",
        body="Azimuth Coat +1",
		hands="Bagua Mitaines",
		ring1="Shiva Ring",
		ring2="Paguroidea Ring",
        back="Lifestream Cape",
		waist="Aswang sash",
		legs="Assiduity Pants +1",
		feet="Geomancy Sandals"
	}

    -- Defense sets

    sets.defense.PDT = {
		range="Dunna",
        head="Hagondes Hat",
		neck="Wiglen Gorget",
		ear1="Bloodgem Earring",
		ear2="Loquacious Earring",
        body="Hagondes Coat",
		hands="Yaoyotl Gloves",
		ring1="Defending Ring",
		--ring2=gear.DarkRing.physical,
        back="Umbra Cape",
		waist="Goading Belt",
		legs="Hagondes Pants",
		feet="Hagondes Sabots"
	}

    sets.defense.MDT = {
		range="Dunna",
        head="Nahtirah Hat",
		neck="Wiglen Gorget",
		ear1="Bloodgem Earring",
		ear2="Loquacious Earring",
        body="Vanir Cotehardie",
		hands="Yaoyotl Gloves",
		ring1="Defending Ring",
		ring2="Shadow Ring",
        back="Umbra Cape",
		waist="Goading Belt",
		legs="Bokwus Slops",
		feet="Hagondes Sabots"
	}

    sets.Kiting = {back="Aptitude Mantle",feet="Geomancy Sandals",legs="Assiduity Pants +1"}

    sets.latent_refresh = {waist="Fucho-no-obi"}


    --------------------------------------
    -- 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 = {
		range="Dunna",
        head="Zelus Tiara",
		neck="Peacock Charm",
		ear1="Bladeborn Earring",
		ear2="Steelflash Earring",
        body="Vanir Cotehardie",
		hands="Bokwus Gloves",
		ring1="Rajas Ring",
		ring2="Paguroidea Ring",
        back="Umbra Cape",
		waist="Goading Belt",
		legs="Hagondes Pants",
		feet="Hagondes Sabots"
	}

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

end

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

function job_aftercast(spell, action, spellMap, eventArgs)
    if not spell.interrupted then
        if spell.english:startswith('Indi') then
            if not classes.CustomIdleGroups:contains('Indi') then
                classes.CustomIdleGroups:append('Indi')
            end
            send_command('@timers d "'..indi_timer..'"')
            indi_timer = spell.english
            send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
        elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
            send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
        elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
            send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
        end
    elseif not player.indi then
        classes.CustomIdleGroups:clear()
    end
end


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

-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
    if player.indi and not classes.CustomIdleGroups:contains('Indi')then
        classes.CustomIdleGroups:append('Indi')
        handle_equipping_gear(player.status)
    elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
        classes.CustomIdleGroups:clear()
        handle_equipping_gear(player.status)
    end
end

function job_state_change(stateField, newValue, oldValue)
    if stateField == 'Offense Mode' then
        if newValue == 'Normal' then
            disable('main','sub','range')
        else
            enable('main','sub','range')
        end
    end
end

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

function job_get_spell_map(spell, default_spell_map)
    if spell.action_type == 'Magic' then
        if spell.skill == 'Enfeebling Magic' then
            if spell.type == 'WhiteMagic' then
                return 'MndEnfeebles'
            else
                return 'IntEnfeebles'
            end
        elseif spell.skill == 'Geomancy' then
            if spell.english:startswith('Indi') then
                return 'Indi'
            end
        end
    end
end

function customize_idle_set(idleSet)
    if player.mpp < 51 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
    return idleSet
end

-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
    classes.CustomIdleGroups:clear()
    if player.indi then
        classes.CustomIdleGroups:append('Indi')
    end
end

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

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

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

 Fenrir.Reece
Offline
Serveur: Fenrir
Game: FFXI
Posts: 339
By Fenrir.Reece 2015-06-02 20:21:10
Link | Citer | R
 
Yep, it just stops swapping anything in Main, Sub, Ranged and Ammo slots.

No errors on console or anything and I can't find what's causing it.
Verda said: »
Have you tried turn on debugmode and showswaps and seeing what it outputs?
 Bahamut.Malothar
Offline
Serveur: Bahamut
Game: FFXI
user: Malithar
Posts: 396
By Bahamut.Malothar 2015-06-02 20:33:49
Link | Citer | R
 
Fenrir.Reece said: »
Yep, it just stops swapping anything in Main, Sub, Ranged and Ammo slots.

No errors on console or anything and I can't find what's causing it.

Are you hitting F9 for something? With Mote's include, this enables/disables Offense Mode which locks those 4 slots that you're having swapping issues with. I didn't look through your lua but it's possible something was changed in it on accident to cause this to be on by default.
 Bahamut.Alkk
Offline
Serveur: Bahamut
Game: FFXI
user: Alkai
Posts: 34
By Bahamut.Alkk 2015-06-03 11:08:53
Link | Citer | R
 
I was on a long break and when I came back I wanted to use my Blue mage lua but keep getting errors when trying to cycle between modes

"Gearswap has detected an error in the user function self command:
xx/Gearswap/libs/Mote-Selfcommands.lua:341: attempt to concatenate field ´value´ (a table value)

and

xx/Gearswap/libs/Mote-Selfcommands.lua:162: attempt to concatenate field ´current´ (a table value)

BLU lua
http://pastebin.com/v7uLDHcR

I didn't write this file myself and my understanding of GS is very low so this is very confusing to me.
 Bahamut.Flareon
Offline
Serveur: Bahamut
Game: FFXI
user: Flareon
Posts: 96
By Bahamut.Flareon 2015-06-04 01:48:36
Link | Citer | R
 
I would like to know if there is a way to determine our gear change based on our enemy target condition of Skillchain bind. I'll explain: DNC has some pieces of gear that have SC bonus on them, but are not necessarily the best options for a solo WS. This way i would like those SC bonus gear to be equiped only if my WS have the potential to make a SC whereas i would want other pieces to be equiped in the case there were not any WS preceeding mine. Maybe some kind of "chainbound" status on the target?

I can think about toggling , but i wanted something more, uh, automatic.
First Page 2 3 ... 64 65 66 ... 182 183 184
Log in to post.