Item Search
     
BG-Wiki Search
+ Reply to Thread
Page 2 of 291 FirstFirst 1 2 3 4 12 52 ... LastLast
Results 21 to 40 of 5812

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

  1. #21
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    To clarify on the above: I want to know whether having non-equip values within a set table will in any way interfere with processing of those sets.

    And yes, I'll check into that.

  2. #22
    BG Content
    Join Date
    Jul 2007
    Posts
    16,267
    BG Level
    9
    FFXI Server
    Lakshmi
    Blog Entries
    1

    Yeah, I'm fairly sure it won't mess anything up with the equip function, which should ignore everything that isn't a real slot. If it does give you problems, you can insert:
    Code:
    if not slot_map[i] then
    at line 391 of equip_processing (and change the current line 391 to an elseif)

    Edit: Also, now that I think about it, I might have to adjust that unify_slots function to account for advanced set tables.

  3. #23
    First invited, last in the zone.
    Join Date
    Sep 2008
    Posts
    1,449
    BG Level
    6
    FFXI Server
    Lakshmi

    So regarding:
    "If it pleases you, you can store your augmented items in variables:
    lefty = ring1={name="Dark Ring",augments={"Physical Damage Taken -6%"}}
    righty = ring2={name="Dark Ring",augments={"Breath Damage Taken -6%","Physical Damage Taken -5%"}}
    sets.aftercast_Idle = {ring1=lefty,ring2=righty}"

    Where do those definitions go? I tried sticking them in with the sets, but I get "User file problem $path : unexpected symbol near '=' " so that's apparently not it.

  4. #24
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Ok, checking Validate()

    I set up a default set in sets.idle, with child sets sets.idle.Weak, sets.idle.Town, and sets.idle.Field. All of these sets have gear in them. If I use print_set() with sets.idle, it also prints out the contained table names (not their contents). Doesn't seem to hurt anything, but you might want to restrict the output to only the string elements of a given table (or even explicitly just the fields that are known equip slots).

    Checking validate, it seems to find all the gear references properly. I set up random items at different tiers of the sets, and it noted each of them as not being in inventory.

    Equipping seems to happen normally. Checked with .Town, then removed that and it fell back to the default sets.idle set without a hitch.


    I'm not sure on the exporting, as I'm not sure what to expect. It seemed to have 'main', 'sub', 'range', and 'item' types. I'm not sure why the distinction of main/sub/range if everything else is 'item', and not sure why 'item' instead of their own slots if the weapon slots are defined.

    Hmm. Actually it did return a couple other specific slots:

    <body>gendewitha bliat</body>

    Which is a typo in the name. And:

    <body>brd. justaucorps +2</body>

    Which looks like it's a bad partial abbreviation (short name is "Brd. Jstcorps +2"). Copied that entry from yours, Byrth, so you may want to fix that as well.

    Fixing those, they no longer export as <body>, and instead are just <item>s. The main/sub/range slots are still specified by name, though.

  5. #25
    BG Content
    Join Date
    Jul 2007
    Posts
    16,267
    BG Level
    9
    FFXI Server
    Lakshmi
    Blog Entries
    1

    Try export sets xml

  6. #26
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    That's what I was checking, mainly (though I did check a few other options; the lua export is basically the same).

    Edit: If curious, here's the full export:

    Spoiler: show

    Code:
    <spellcast>
      <sets>
        <group name="exported">
          <set name="exported">
            <range>Daurdabla</range>
            <sub>Quire Grip</sub>
            <item>Nahtirah Hat</item>
            <item>Twilight Torque</item>
            <item>Gendewitha Bliaut</item>
            <item>Gende. Galoshes</item>
            <item>Gendewitha Spats</item>
            <main>Earth Staff</main>
            <item>Flume Belt</item>
            <item>Yaoyotl Gloves</item>
            <item>Engulfer Cape</item>
            <item>Shadow Ring</item>
            <item>Dark Ring</item>
            <item>Gende. Caubeen</item>
            <item>Umbra Cape</item>
            <item>Nares Trews</item>
            <range>Oneiros Harp</range>
            <item>Gendewitha Gages</item>
            <item>Aoidos' Cothrn. +2</item>
            <item>Wiglen Gorget</item>
            <item>Bloodgem Earring</item>
            <item>Paguroidea Ring</item>
            <item>Sheltered Ring</item>
            <item>Loquac. Earring</item>
            <item>Meridian Ring</item>
            <item>Steelflash Earring</item>
            <item>Asperity Necklace</item>
            <range>Gjallarhorn</range>
            <item>Brd. Jstcorps +2</item>
            <item>K'ayres Ring</item>
            <item>Bladeborn Earring</item>
            <item>Buremte Gloves</item>
            <item>Caudata Belt</item>
            <item>Atheling Mantle</item>
            <item>Rajas Ring</item>
            <item>Brd. Cannions +2</item>
            <item>Brd. Slippers +2</item>
            <item>Refraction Cape</item>
            <item>Chelona Boots +1</item>
            <item>Orvail Pants</item>
            <item>Siegel Sash</item>
            <item>Swith Cape</item>
            <item>Prolix Ring</item>
            <item>Aoidos' Calot +2</item>
            <item>Aoidos' Matinee</item>
            <item>Sha'ir Manteel</item>
            <item>Bokwus boots</item>
            <main>Felibre's Dague</main>
            <item>Aoidos' Earring</item>
            <item>Aoidos' Belt</item>
            <item>Heka's Kalasiris</item>
            <item>Pahtli Cape</item>
            <range>Angel Lyre</range>
            <item>Goading Belt</item>
            <item>Heartseeker Earring</item>
            <item>Dudgeon Earring</item>
            <main>Chatoyant Staff</main>
            <item>Nefer Khat +1</item>
            <item>Serpentes Cuffs</item>
            <item>Brioso Slippers</item>
            <item>Mdk. Shalwar +1</item>
            <main>Legato Dagger</main>
            <item>Ad. Mnchtte. +2</item>
            <item>Aoidos' Hngrln. +2</item>
            <item>Aoidos' Rhing. +2</item>
            <item>Corvax Sash</item>
            <item>Harmony Cape</item>
            <item>Malison Medallion</item>
            <item>Hieros Mittens</item>
            <item>Ephedra Ring</item>
            <item>Demonry Sash</item>
            <main>Soothsayer Staff</main>
            <item>Psystorm Earring</item>
            <item>Mediator's Ring</item>
            <item>Lifestorm Earring</item>
            <item>Colossus's Torque</item>
            <item>Portent Pants</item>
            <item>Manasa Chasuble</item>
            <sub>Achaq Grip</sub>
            <main>Arka IV</main>
            <item>Bokwus Gloves</item>
            <item>Sirona's Ring</item>
            <item>Goliard Saio</item>
            <item>Brioso Cuffs</item>
            <item>Wind Torque</item>
          </set>
        </group>
      </sets>
    </spellcast>

  7. #27
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Ok, trying to clean up the engaged sets the same way as the idle and resting sets.

    At first I was thinking I'd need to have two levels of subtables (eg: sets.engaged.Dagger.Accuracy.Evasion), and thus need to have 'default' indirects for both offense and defense (so normal offense/evasion defense would be sets.engaged.Dagger.default.Evasion, and normal offense and defense would be sets.engaged.Dagger.default.default). However, since the offense modes and defense modes have names that shouldn't conflict either with each other or with the gear entries, I should be able to simplify that.

    Sets:
    Code:
        sets.engaged = {}
        
        -- normal offense, normal defense
        sets.engaged.Dagger = {}
        -- accuracy offense, normal defense
        sets.engaged.Dagger.Accuracy = {}
        -- normal offense, evasion defense
        sets.engaged.Dagger.Evasion = {}
        -- accuracy offense, evasion defense
        sets.engaged.Dagger.Accuracy.Evasion = {}
        -- normal offense, PDT defense
        sets.engaged.Dagger.PDT = {}
    Then I can determine which set to use via:
    Code:
        local meleeSet = {}
        
        if sets.engaged[TPWeapon] then
            meleeSet = sets.engaged[TPWeapon]
            
            if meleeSet[OffenseMode] then
                meleeSet = meleeSet[OffenseMode]
            end
            
            if meleeSet[DefenseMode] then
                meleeSet = meleeSet[DefenseMode]
            end
        else
            meleeSet = sets.engaged
        end
    
        equip(meleeSet)
    That would allow stacking of defense modes on top of offense modes, or just on top of the base engaged set without needing an offense mode. And if either one isn't defined, it just ignores it and uses the basic default set.

    That cleans up the set definitions a great deal, and allows creation of new sets on a merely 'as needed' basis, without having to do the equivalent of Spellcast's * wildcards.

  8. #28
    Relic Shield
    Join Date
    Jan 2013
    Posts
    1,736
    BG Level
    6

    Does gear collector work off of lua from gear swaps or will we need to have a spellcast xml existing with gear sets for gear collector to pull the proper stuff out?

  9. #29
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Quote Originally Posted by Foldypaws View Post
    So regarding:
    "If it pleases you, you can store your augmented items in variables:
    lefty = ring1={name="Dark Ring",augments={"Physical Damage Taken -6%"}}
    righty = ring2={name="Dark Ring",augments={"Breath Damage Taken -6%","Physical Damage Taken -5%"}}
    sets.aftercast_Idle = {ring1=lefty,ring2=righty}"

    Where do those definitions go? I tried sticking them in with the sets, but I get "User file problem $path : unexpected symbol near '=' " so that's apparently not it.
    Looks like a copied typo, where he pulled from a ring1/ring2 set assignment but forgot to remove those bits. This works for me:

    Code:
        leftDarkRing = {name="Dark Ring",augments={"Physical Damage Taken -6%", "Magical Damage Taken -3%", "Spell Interruption Rate Down 5%"}}
        rightDarkRing = {name="Dark Ring",augments={"Physical Damage Taken -5%", "Magical Damage Taken -3%"}}
    And then used them in one of my idle sets. I verified that the correct ring was placed on each finger by swapping the vars around.

  10. #30
    Faster than Walt Flanagan's Dog
    Join Date
    May 2008
    Posts
    205
    BG Level
    4
    FFXI Server
    Asura

    Quote Originally Posted by Trumpy View Post
    Does gear collector work off of lua from gear swaps or will we need to have a spellcast xml existing with gear sets for gear collector to pull the proper stuff out?
    Looks like spellcast only but what I've been doing is once i have everything working for a job and everything I need in inventory just "//gs export inventory xml" then save the file as <charname>_<job>.xml in your spellcast folder.

  11. #31
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Quote Originally Posted by Motenten
    If I use print_set() with sets.idle, it also prints out the contained table names (not their contents). Doesn't seem to hurt anything, but you might want to restrict the output to only the string elements of a given table (or even explicitly just the fields that are known equip slots).
    Also regarding this point in conjunction with the dark ring test above -- the augmented items are considered tables, so the suggestion that you not print tables in the print_set function is midguided. If you restrict it in any way, it would just be to only reference known equip slots.

  12. #32
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Ok, having trouble with Interrupted actions, such as casting something that's still on recast, or testing inside the moghouse.

    In each case, the precast gear is equipped before it's known that the action will be interrupted (can't fault that), however once the interrupt happens, and I attempt to re-equip idle gear, it generally fails. Example:

    Chocobo Mazurka inside mog house. I can't cast it, but I'm left in idle fast cast gear. However if I hit it again, regular idle gear is re-equipped properly. Each time I hit the macro, it alternates between leaving me in fast cast gear and leaving me in idle gear.

    I had added verify_equip() to the aftercast function yesterday when I was having this same problem with the spell still waiting on recast timers (and it seemed to fix it), but that's not working in the current scenario. (Also unsure if verify_equip() is supposed to go before or after the equip commands it affects; the function itself seems to only change a variable that I assume is used later on, so presumably before?)

    I'm guessing that it's a problem with multiple equip commands being sent too quickly, one after the other. As such I figure adding in a small delay might be helpful, but I'm not sure if there's a simple method to do so from the aftercast code. cast_delay() isn't relevant at that point.

    For now I used this in the aftercast() function:

    Code:
    function aftercast(spell,action)
        --if _global.debug_mode then windower.add_to_chat(123,'--Aftercast: '..spell.name..', '..tostring(action.type)) end
    
        if T{'Interrupt','Invalid Spell'}:contains(spell.name) then
            -- Wait a half-second to update so that aftercast equip will actually be worn.
            windower.send_command('wait 0.5;gs c update')
        else
            handle_equipping_gear(player.status)
            --verify_equip()
        end
    end

  13. #33
    BG Content
    Join Date
    Jul 2007
    Posts
    16,267
    BG Level
    9
    FFXI Server
    Lakshmi
    Blog Entries
    1

    Looks like I need to look at the interrupt code for JAs/WSs this weekend. I swear I had them working at one point, but it appears that they aren't calling the aftercast function right now. I'm inclined to add an "interrupted" field to the spell table and just set it to true when it's appropriate.

    Fixed export. Fixed print_set so that it will pull names out of advanced tables, but left it so it'll print tables out normally. I find it useful for debugging tables that aren't necessarily sets.

    I'm going to try to work through all the stuff in my issues list on Saturday and push one large fix at once.

  14. #34

    Quote Originally Posted by Byrthnoth View Post
    Looks like I need to look at the interrupt code for JAs/WSs this weekend. I swear I had them working at one point, but it appears that they aren't calling the aftercast function right now. I'm inclined to add an "interrupted" field to the spell table and just set it to true when it's appropriate.

    Fixed export. Fixed print_set so that it will pull names out of advanced tables, but left it so it'll print tables out normally. I find it useful for debugging tables that aren't necessarily sets.

    I'm going to try to work through all the stuff in my issues list on Saturday and push one large fix at once.
    I guess this is the same thing I had happen tonight with MNK, I can use JA and if I try to use it again before the timer is up it will change to the JA armor item(s) but never change back to aftercast set.

  15. #35

    Idle set trigger.

    I am also wondering how I would trigger a idle set change when not engaged.
    I have F10 bound for WeaponSkill, If I am not engaged then in SC it will just fire "CombatMode" which will change sets to idle.
    It is a very quick one button change incase for some reason I need to change to idle set.

    This is the code I am using now for SC just showing it as a reference point

    Spoiler: show
    Code:
    <elseif commandprefix="/weaponskill" >
    	<if  status="Engaged">
    		<if buffactive="Amnesia|Flash|Impairment">
    			<addtochat color="121">[ Weapon Skill Canceled while Amnesia/Flash/Impairment is in effect ! ]</addtochat>
    			<cancelspell />
    			<return />
    		</if>
    		<elseif spell="Victory Smite">
    			<equip when="precast" set="WS-Smite" />
    			<!-- Will Auto Activate Berserk/Warcry -->
    			<if notbuffactive="Berserk" subjob="WAR" advanced='"$ActivateBerserk" == "0"'>
    				<if notbuffactive="Boost|Obliviscence|Paralysis">                 
    					<var cmd="set ActivateBerserk 1" />
    					<cmd>wait 3;%Spell %SpellTargetRaw;</cmd>
    					<cmd>Berserk;wait 1.3;Warcry;wait 300; sc var set ActivateBerserk 0</cmd>
    					<cancelspell />
    					<return />
    				</if>
    			</if>
    		</elseif>
    		<castdelay delay="0.3" />
    	</if>
    	<else>
    		<cmd>CombatMode</cmd>
    		<cancelspell />
    		<return />
    	</else>
    </elseif>


    The <else> section is kinda what I am wondering about, since that is what fires the Idle set change, I am not sure how I would add this to GS.
    Any help would be great thank you.

  16. #36
    The Syrup To Waffles's Waffle
    Join Date
    Jun 2007
    Posts
    5,051
    BG Level
    8
    FFXIV Character
    Cair Bear
    FFXIV Server
    Excalibur
    FFXI Server
    Fenrir

    else CombatMode() end

    ...

    function CombatMode()
    --equip logic
    end

  17. #37

    Quote Originally Posted by Cairthenn View Post
    else CombatMode() end

    ...

    function CombatMode()
    --equip logic
    end
    I will be honest I am super new to GS so not sure what to make of that lol,
    In GS i assume i wont be using CombatMode and aftercast () will work as the trigger?
    Just not sure how to make it Only fire when idle mode.

    this is code that currently handles WS:
    Code:
    	-- Generic equip command for all JAs and WSs
    	if sets.precast.JA[spell.name] then
    		equip(sets.precast.JA[spell.name])
    	elseif sets.precast.WS[spell.name] then
    		equip(TPSet,sets.precast.WS[spell.name])
    	end
    sorry to be a pain.

  18. #38

    I'm working on using the brd file provided in the GS Shop Thread but having issues getting this particular part to work:
    Code:
    		if spell.target.type == 'PLAYER' and not buffactive.pianissimo then
    			cast_delay(1.5)
    			windower.send_command([email protected] /raw /ja "Pianissimo" <me>')
    		end
    I think this is supposed to determine if my target is a player other than myself and if so send a command to use Pianissimo JA then resume with the rest of the gearswap but this does not seem to occur when I have someone else targetted.

    EDIT: figured out what I was doing wrong, my macros were all setup as <me>, changed to <t> and it is working.

  19. #39
    Puppetmaster
    Join Date
    Mar 2010
    Posts
    60
    BG Level
    2
    FFXI Server
    Ifrit

    Need some input!

    Alright so been tweaking Byrth's summoner script for myself for a while now and I'm attempting to implement my nuking gear. I'm confused by the results of what I've done so far. Currently my Hagondes cuffs and Coat aren't having any issues equipping appropriately. The feet/ Head aren't picking up the MAB set apparently and are stuck in PET MAB mode! If anyone has any input from these snippets or trouble shooting suggestions let me know! Thanks :D

    Variables :
    Code:
    	LegPMacc={name="Hagondes Pants",augments={"Physical Damage Taken -3%","Pet:","Magic Accuracy +20"}}
    	LegMab = {name="Hagondes Pants",augments={"Physical damage taken -4%","Magic Attack Bonus +24"}}
    	FtPMab = {name="Hagondes sabots",augments={"Physical damage taken -3%","Pet:", "Magic Attack Bonus +23"}}
    	FtMab = {name="Hagondes Sabots",augments={"Physical damage taken -3%","Magic Attack Bonus +24"}}
    	HdPMab ={name="Hagondes Hat",augments={"Physical damage taken -3%","Pet:","Magic Attack Bonus+20"}}
    	HdMab = {name="Hagondes Hat",augments={"Physical damage taken -3%","Magic Attack Bonus +20"}}
    	BdyPerp = {name="Hagondes Coat", augments={"Physical damage taken -4%", "Avatar Perpetuation Cost -5"}}
    	BdyMab ={name="Hagondes Coat", augments={"Physical damage taken -3%","Magic Attack Bonus +20"}}
    	HnPMab ={name="Hagondes Cuffs",augments={"Pet:","Physical damage taken -3%","Magic Attack Bonus +20"}}
    	HnFc = {name="Hagondes Cuffs",augments={"Physical damage taken -3%","Fast cast +5"}}
    	Low_tier_nuke = T{'Stone','Water','Aero','Fire','Blizzard','Thunder'}
    Set in question :
    Code:
    	sets.midcast_nuke = {head=HdMab,neck="Eddy Necklace",ear1="Novio Earring",ear2="Hecate's Earring",
    		body=BdyMab,hands="Yaoyotl Gloves",ring1="Evoker's Ring",ring2="Icesoul Ring",
    		back="Refraction Cape",waist="Maniacus Sash",legs=LegMab,feet=FtMab}
    Precast rules :
    Code:
    if Low_tier_nuke:contains(spell.name) then
    		equip(sets.midcast_nuke)
    	else
    		if action.type == 'Magic' then
    			equip(sets.precast_FC)
    			if string.find(spell.english,'Cur') then
    				equip(sets.precast_Cur)
    			end
    		elseif string.find(spell.type,'BloodPact') then
    			equip(sets.precast_BP)
    		end
    	end
    midcast rules:
    Code:
    function midcast(spell,action)
    	if string.find(spell.english,'Cur') then
    		equip(sets.midcast_Cur)
    	elseif spell.english=='Stoneskin' then
    		equip(sets.midcast_Stoneskin)
    	elseif action.type == 'Magic' then
    		equip(sets.midcast_nuke)
    	else -- Bloodpacts don't have a midcast, so don't worry about them.
    		idle()
    	end
    end

  20. #40
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Should the "Pet:" part of the augment list really be separated into its own string instead of combined with the effect (eg: magic accuracy)? Sorry, not sure how it works; that just looked odd.

    Looking at the augment parsing code, I'm pretty sure that something like "Pet: Magic Accuracy +20" needs to all be one string.

Similar Threads

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