Item Search
     
BG-Wiki Search
Closed Thread
Page 7 of 302 FirstFirst ... 5 6 7 8 9 17 57 ... LastLast
Results 121 to 140 of 6036

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

  1. #121
    Requiescat in pace.
    Join Date
    Dec 2008
    Posts
    1,341
    BG Level
    6
    FFXI Server
    Lakshmi

    Quote Originally Posted by JSHidaka View Post
    thanks but isn't working... don't even use pianissimo.
    should some of those single quotes be escaped?

    Having a pair of single quotes inside another pair of single quotes without being escaped seems bad form to me.

  2. #122
    Sea Torques
    Join Date
    Jun 2012
    Posts
    570
    BG Level
    5
    FFXI Server
    Asura
    WoW Realm
    The Scryers

    Quote Originally Posted by grevenilvec75 View Post
    should some of those single quotes be escaped?
    I understand the code but dont really understand that syntax or how LUA works with that, so cant really check it, tried removing <me> since I guess it cant got just like that.. and was just casting the song on me w/o using pianissimo and even if my initial target was a player

  3. #123

    I might not have explained it right, I was using that WS code as an example, I want to do the BLU spells this way.
    for example:
    Amorphic Spikes|Bloodrake|Disseverment|Glutinous Dart|Goblin Rush
    all use a STR set, where:
    Cannonball|Delta Thrust|Quad. Continuum
    use a VIT set.
    If I wanted to use a generic call in the precast function then in the get_sets part I need to list the spells. So if several spells would all use STR set how could i list serveral spells at once in the same set? In spellcast you would just pipe|pipe them but not sure about GS.
    Motenten gave me an example he would use, and I am grateful but for my style of doing things if it is possible to do it my way without being crap was hoping to.

  4. #124
    Relic Weapons
    Join Date
    Sep 2007
    Posts
    377
    BG Level
    4
    FFXIV Character
    Caprese Dionir
    FFXIV Server
    Hyperion
    FFXI Server
    Sylph

    Quote Originally Posted by Byrthnoth View Post
    You want to precast and midcast Stone 1? You got it, budday.

    Now that I think about it, it might even be possible to midcast weaponskills. That would require some testing... but there's no real benefit to it over precasting them.
    So, you're saying I can go past like 65% fast cast on cure spells and not have gear swapping failures? In spellcast that was the point it began to fail since cure's cast time was pretty quick to start with.

  5. #125
    BG Content
    Join Date
    Jul 2007
    Posts
    21,105
    BG Level
    10
    FFXI Server
    Lakshmi
    Blog Entries
    1

    Quote Originally Posted by Vyvian View Post
    So, you're saying I can go past like 65% fast cast on cure spells and not have gear swapping failures? In spellcast that was the point it began to fail since cure's cast time was pretty quick to start with.
    AFAIK, you can use all the fast cast you want on barspells and not have gear swapping failures.

    Precast, action, and midcast all go out in the same packet, so there's no reason to expect you would ever end up with the midcast not taking effect.

  6. #126
    Sea Torques
    Join Date
    Jun 2012
    Posts
    570
    BG Level
    5
    FFXI Server
    Asura
    WoW Realm
    The Scryers

    is there any way to add a delay on the aftercast gearswap?... It is giving me the impression that is swapping to aftercast too fast... would like to even see the character in the WS gear (w/ blinkmenot disabled)

  7. #127
    Sea Torques
    Join Date
    Jun 2012
    Posts
    570
    BG Level
    5
    FFXI Server
    Asura
    WoW Realm
    The Scryers

    Quote Originally Posted by nikia View Post
    I might not have explained it right, I was using that WS code as an example, I want to do the BLU spells this way.
    for example:
    Amorphic Spikes|Bloodrake|Disseverment|Glutinous Dart|Goblin Rush
    all use a STR set, where:
    Cannonball|Delta Thrust|Quad. Continuum
    use a VIT set.
    If I wanted to use a generic call in the precast function then in the get_sets part I need to list the spells. So if several spells would all use STR set how could i list serveral spells at once in the same set? In spellcast you would just pipe|pipe them but not sure about GS.
    Motenten gave me an example he would use, and I am grateful but for my style of doing things if it is possible to do it my way without being crap was hoping to.
    let me see if can explain this

    someone gave you this

    Code:
        bluSpellStats = T{"spell1"="stat1", "spell2"="stat1", "spell3"="stat1",
                      "spell4"="stat2", "spell5"="stat2", etc... }
                     
        bluSpells = {default fallback gear set}
        bluSpells.stat1 = {default gear set for stat 1}
        bluSpells.stat2 = {default gear set for stat 2}
    
        bluSpells.spell1 = {unique gear set for spell 1}
        bluSpells.spell2 = set_combine(bluSpells.stat1, {some other item})
        
        
        if spell.skill=="BlueMagic" then
            if bluSpells[spell.english] then
                equip(bluSpells[spell.english])
            elseif bluSpellStats[spell.english] then
                equip(bluSpells[bluSpellStats[spell.english]])
            else
                equip(bluSpells)
            end
        end
    the first part

    Code:
        bluSpellStats = T{"spell1"="stat1", "spell2"="stat1", "spell3"="stat1",
                      "spell4"="stat2", "spell5"="stat2", etc... }
    is a matrix, where you list the spell and their "stat" ex.
    Code:
        bluSpellStats = T{"Cannonball"="stat1", "Delta Thrust"="stat1", "Quad. Continuum"="stat1",
                      "Amorphic Spikes"="stat2", "Blooddrake"="stat2"}
    stat1 is your vit set
    stat2 is your str set
    Code:
        bluSpells = {default fallback gear set} >> this part.. not sure -_-...
        bluSpells.stat1 = {Vit Gear here}
        bluSpells.stat2 = {STR gear here}
    hope you can get the idea

  8. #128
    Old Merits
    Join Date
    Sep 2010
    Posts
    1,094
    BG Level
    6
    FFXI Server
    Ragnarok

    Quote Originally Posted by Byrthnoth View Post
    As far as the next version of GearSwap, we've confirmed that precast/midcast are accurate regardless of casting time. Also, there's no more need for a delay between changing gear and casting Impact.

    If someone else doesn't do it first, tonight I'm going to test whether there are things (like TP Bonus) that affect WSs when worn at precast but you can take them off for midcast. If it turns out that everything for WSs is calculated at precast, then I will make it so that the "midcast" phase is an aftercast for WSs and there will be no chance of ever going an attack round in your WS gear. If there is a reason to have a midcast phase for WSs, then we will continue to have a midcast phase. I'm going to make the "midcast" phase into "aftercast" for JAs regardless, because they don't have a readies phase.

    This is weirdly stable and might be ready to be pushed as soon as tomorrow night.
    I could maybe see Conserve TP working like that too, since TP is consumed before the WS actually fires. Although, even assuming it does, whether it's worth carrying CTP gear for precast is another matter.

  9. #129
    Relic Weapons
    Join Date
    Sep 2007
    Posts
    377
    BG Level
    4
    FFXIV Character
    Caprese Dionir
    FFXIV Server
    Hyperion
    FFXI Server
    Sylph

    So I wasn't really clear from the xml file that was included. If I check world.weather_element for "light", does it account for the SCH weather spells, or do I need to check for buffactive("Aurorastorm")?

  10. #130
    BG Content
    Join Date
    Jul 2007
    Posts
    21,105
    BG Level
    10
    FFXI Server
    Lakshmi
    Blog Entries
    1

    Sorry, documentation slip-up. They respect scholar spells.

    I'm not going to make Gearswap slower.

  11. #131
    Sea Torques
    Join Date
    Jun 2012
    Posts
    570
    BG Level
    5
    FFXI Server
    Asura
    WoW Realm
    The Scryers

    Quote Originally Posted by Byrthnoth View Post
    I'm not going to make Gearswap slower.
    is that to my question or something else? lol..

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

    Quote Originally Posted by nikia View Post
    1) I am really new to this still, so if done your way the spell stats would be done in the get_sets function?
    Correct. I didn't bother breaking up where each bit of code belonged. Set definitions go in get_sets(), selection rules would go in midcast() (assuming fast cast is in precast()).

    Quote Originally Posted by nikia View Post
    3) The only issue with doing it that way is that I use a macro+variable to bind either CDC or Req to f10 as i see fit. Is there another way to maybe do this?
    I just gave a very simple example to match what you said. You can easily set up another variable to choose your weaponskill.

    Quote Originally Posted by nikia View Post
    Ok so say I want to do the route where get_sets has the spells and precast function does just a generic call.
    how would i add multiple spells under one set?
    Code:
    	sets.precast.WS['Chant du Cygne'] = {head="Uk'uxkaj Cap",neck="Light Gorget",lear="Bladeborn Earring",rear="Steelflash Earring",
    		body="Assim. Jubbah +1",hands="Assim. Bazu. +1",
    		back="Rancorous Mantle",waist="Wanion Belt",legs="Manibozho Brais",feet="Assim. Charuqs +1"}
    above is the set where CDC would be called based on spell name, if I wanted both CDC and Req to use the same set how would I add Requisicat to the list?
    Various alternatives:

    Code:
    1:
    sets.precast.WS['Chant du Cygne'] = {head="Uk'uxkaj Cap",neck="Light Gorget",lear="Bladeborn Earring",rear="Steelflash Earring",
    		body="Assim. Jubbah +1",hands="Assim. Bazu. +1",
    		back="Rancorous Mantle",waist="Wanion Belt",legs="Manibozho Brais",feet="Assim. Charuqs +1"}
    sets.precast.WS['Requiescat'] = sets.precast.WS['Chant du Cygne']
    
    2:
    sets.precast.WS['Chant du Cygne'] = {head="Uk'uxkaj Cap",neck="Light Gorget",lear="Bladeborn Earring",rear="Steelflash Earring",
    		body="Assim. Jubbah +1",hands="Assim. Bazu. +1",
    		back="Rancorous Mantle",waist="Wanion Belt",legs="Manibozho Brais",feet="Assim. Charuqs +1"}
    sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS['Chant du Cygne'], {other gear that's different})
    
    3)
    sets.precast.WS = {head="Uk'uxkaj Cap",neck="Light Gorget",lear="Bladeborn Earring",rear="Steelflash Earring",
    		body="Assim. Jubbah +1",hands="Assim. Bazu. +1",
    		back="Rancorous Mantle",waist="Wanion Belt",legs="Manibozho Brais",feet="Assim. Charuqs +1"}
    sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {other gear that's different})
    sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {other gear that's different})
    I'd go with #3, as then you can do this in the rules:

    Code:
        if sets.precast.WS[spell.english] then
            equip(sets.precast.WS[spell.english])
        else
            equip(sets.precast.WS)
        end
    That's also what I meant by 'fallback' -- if you don't have a set specifically set up for a given spell/weaponskill/etc, just use the parent table (sets.precast.WS in this case).

    Quote Originally Posted by grevenilvec75 View Post
    should some of those single quotes be escaped?

    Having a pair of single quotes inside another pair of single quotes without being escaped seems bad form to me.

    Those aren't nested single quotes. Each set of single quotes encloses a text area, and then they're concatenated with variables using the .. (two adjacent periods) operator.

    myVar = 'to illustrate'
    'Some text '..myVar..' how it works.'

    becomes:

    'Some text to illustrate how it works.'

    The enclosed quotes were double quotes, and would be treated as normal text since they're inside single quotes. For gear I prefer going the other way, using double quotes on the outside so that apostrophes in gear names won't be annoying. For example, you can either have:

    "Uk'uxkaj Cap"

    or

    'Uk\'uxkaj Cap'

    In the second case, the embedded apostrophe had to be escaped. In the first case, that's not necessary.


    Quote Originally Posted by nikia View Post
    I might not have explained it right, I was using that WS code as an example, I want to do the BLU spells this way.
    for example:
    Amorphic Spikes|Bloodrake|Disseverment|Glutinous Dart|Goblin Rush
    all use a STR set, where:
    Cannonball|Delta Thrust|Quad. Continuum
    use a VIT set.
    If I wanted to use a generic call in the precast function then in the get_sets part I need to list the spells. So if several spells would all use STR set how could i list serveral spells at once in the same set? In spellcast you would just pipe|pipe them but not sure about GS.
    Motenten gave me an example he would use, and I am grateful but for my style of doing things if it is possible to do it my way without being crap was hoping to.
    Lua does not support the alternation operator (the pipe character, used to indicate 'or' between multiple patterns). Therefore that's not directly possible, as written

    That's why I wrote the dictionary table at the start. mySpells = {"spell1"="stat1", "spell2"="stat1", etc}. As written, the value of mySpells['spell1'] == 'stat1'. So if you want to know what stat set to apply to a spell, just check mySpells[spell.name].

    Edit: And I should have written that as: mySpells = {["spell1"]="stat1", ["spell2"]="stat1", etc}

    There are other ways of putting it together, but they all seem more clumsy and verbose. You could, for example, create a set of all str spells:

    strSpells = S{"spell1", "spell2", "spell3", etc}

    Where S{} indicates you're creating a set, which is a table where the keys are given, and the value of each key is true. Thus you can say:

    Code:
        if strSpells[spell.name] then
            equip(strGear)
        end
    That's fairly clean in its own way, but it requires you create the if/elseif/etc chain to check all the possible stat categories. My earlier example maps you directly to the category with the table, so you could skip that step.

  13. #133

    I assume by the nature of BLU spells i shouldnt precast in fast cast and then midcast in STR DEX etc but to how fast they cast? Or is GS able to change them fast enough?

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

    Read Byrth's post (#125) at the top of the page.

  15. #135

    I'm sorry I really am, I just worry alot about things and this seems to be one of them, please forgive my OCD

  16. #136
    BG Content
    Join Date
    Jul 2007
    Posts
    21,105
    BG Level
    10
    FFXI Server
    Lakshmi
    Blog Entries
    1

    TP Bonus, stats, etc. are all calculated at midcast for WSs as far as I can tell (basically, no interesting findings).

    Though we do not get a "readies" message for JAs, it appears that they do have a "readies" phase on the server and respect midcast gear assignments as well.

    Test:
    I went out to East Ron on DNC and used Aeolian Edge at just-shy of 300 TP with the three files below. Controls were a 300 TP Aeolian Edge (no file) with the gear listed in the set (832 damage) and a 300 TP Aeolian Edge with just weapons (624 damage). The top two files did 832 damage and the bottom file did 621 damage with 296 TP. The top two files also successfully swapped JA pieces while the bottom one did not.

    Spoiler: show
    Code:
    function get_sets()
        sets['Aeolian Edge'] = {ammo="Charis Feather",
            head="Uk'uxkaj cap",neck="Love Torque",lear="Moonshade Earring",rear=empty,
            body="Maxixi Casaque",hands="Maxixi Bangles +1",lring="Thundersoul ring",rring="Rajas Ring",
            back=empty,waist="Wanion Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters"}
        sets['Reverse Flourish'] = {hands="Charis Bangles +2"}
        sets['No Foot Rise'] = {body="Etoile Casaque +2"}
        sets.naked = {ammo=empty,
            head=empty,neck=empty,lear=empty,rear=empty,
            body=empty,hands=empty,lring=empty,rring=empty,
            back=empty,waist=empty,legs=empty,feet=empty}
    end
    
    function precast(spell,act)
        if sets[spell.name] then
            equip(sets[spell.name])
        end
    end
    
    function aftercast(spell,act)
        equip(sets.naked)
    end
    Code:
    function get_sets()
        sets['Aeolian Edge'] = {ammo="Charis Feather",
            head="Uk'uxkaj cap",neck="Love Torque",lear="Moonshade Earring",rear=empty,
            body="Maxixi Casaque",hands="Maxixi Bangles +1",lring="Thundersoul ring",rring="Rajas Ring",
            back=empty,waist="Wanion Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters"}
        sets['Reverse Flourish'] = {hands="Charis Bangles +2"}
        sets['No Foot Rise'] = {body="Etoile Casaque +2"}
        sets.naked = {ammo=empty,
            head=empty,neck=empty,lear=empty,rear=empty,
            body=empty,hands=empty,lring=empty,rring=empty,
            back=empty,waist=empty,legs=empty,feet=empty}
    end
    
    function midcast(spell,act)
        if sets[spell.name] then
            equip(sets[spell.name])
        end
    end
    
    function aftercast(spell,act)
        equip(sets.naked)
    end
    Code:
    function get_sets()
        sets['Aeolian Edge'] = {ammo="Charis Feather",
            head="Uk'uxkaj cap",neck="Love Torque",lear="Moonshade Earring",rear=empty,
            body="Maxixi Casaque",hands="Maxixi Bangles +1",lring="Thundersoul ring",rring="Rajas Ring",
            back=empty,waist="Wanion Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters"}
        sets['Reverse Flourish'] = {hands="Charis Bangles +2"}
        sets['No Foot Rise'] = {body="Etoile Casaque +2"}
        sets.naked = {ammo=empty,
            head=empty,neck=empty,lear=empty,rear=empty,
            body=empty,hands=empty,lring=empty,rring=empty,
            back=empty,waist=empty,legs=empty,feet=empty}
    end
    
    function precast(spell,act)
        if sets[spell.name] then
            equip(sets[spell.name])
        end
    end
    
    function midcast(spell,act)
        equip(sets.naked)
    end

  17. #137

    Wanted to thank the folks that help tonight with my questons, i fear I have even more still.

    Had help converting this SC code:
    Code:
    <if notbuffactive="Berserk" subjob="WAR" advanced='"$ActivateBerserk" == "0"'>
    	<if notbuffactive="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>
    To GS:
    Code:
    	elseif spell.name == 'Chant du Cygne' or spell.name == 'Requiescat' and not buffactive.berserk and not  buffactive.oblivescence and not buffactive.paralysis and player.subjob == 'WAR' and windower.ffxi.get_ability_recasts()[1] < 10 then
    		send_command('berserk;wait 1.3;warcry;wait 1.3;input '..spell.prefix..' '..spell.name..' '..spell.target.raw')
    		cancel_spell()
    		return
    	end
    It is suppose to check when I try to WS to activate Berserk and Warcry then fire the WS if I am /WAR and no Obliviscence|Paralysis debuff active.

    I tried to get the GS code to work tonight but it seems like it doesnt want to.

    if I use Requiescat then it doesnt return any error(i was /RDM sub)
    If i try to use Chant du Cygne it will return an error:
    attempt to concatenate field 'raw' (a nil value)

    Not sure why Chant du Cygne wants to case this and not sure how to fix it. Any help would be amazing.

    EDIT:
    Was also wondering if I could use a variable:

    Code:
    sets.melee.TP.Norm = {waist="TPWaist"}
    
    TPWaist = "Twilight Belt"
    
    function buff_change(g_or_l)
    	if buff == 'Ionis' and g_or_l == 'gain' then
    		TPWaist = 'Cetl Belt'
    	else
    		TPWaist = 'Twilight Belt'
    	end
    end
    Want to be able to use different TP belt depending if I have Ionis up or not.
    Doesnt seem to do it, so not sure what I am missing.

  18. #138
    Sea Torques
    Join Date
    Jun 2012
    Posts
    570
    BG Level
    5
    FFXI Server
    Asura
    WoW Realm
    The Scryers

    Quote Originally Posted by nikia View Post
    EDIT:
    Was also wondering if I could use a variable:

    Code:
    sets.melee.TP.Norm = {waist="TPWaist"}
    
    TPWaist = "Twilight Belt"
    
    function buff_change(g_or_l)
    	if buff == 'Ionis' and g_or_l == 'gain' then
    		TPWaist = 'Cetl Belt'
    	else
    		TPWaist = 'Twilight Belt'
    	end
    end
    Want to be able to use different TP belt depending if I have Ionis up or not.
    Doesnt seem to do it, so not sure what I am missing.
    GS don't support those kind of variable iirc. Use different sets, use combine set and just add the belt. And on engage/aftercast check if got ionis.

    They are many ways to do those things even if they give the same result.

    edit:

    another way. using part of you idea
    TP sets
    Code:
    	sets.TP = {}
    	sets.TP.DD = {
    	ammo="Hagneia Stone",
        head="Whirlpool Mask",
        body="Thaumas Coat",
        hands="Otronif Gloves",
        legs="Quiahuiz Leggings",
        feet="Manibozho boots",
        neck="Asperity Necklace",
        waist="Windbuffet Belt",
        left_ear="Bladeborn Earring",
        right_ear="Steelflash Earring",
        left_ring="Epona's Ring",
        right_ring="K'ayres Ring",
        back="Atheling Mantle",
    }
    	sets.TP.ionis = set_combine(sets.TP.DD, { 
        waist="Cetl Belt",
    })
    buff change
    Code:
    function buff_change(g_or_l)
    	if buff == 'Ionis' and g_or_l == 'gain' then
    		sets.TP = sets.TP.ionis
    	else
    		sets.TP = sets.TP.DD
    	end
    end
    when you get IONIS you default TP set will be changed to the iones one, but I think this will give some issues, what about if you get signet ? you dont lose Ionis it get overwrited so you will stay in IONIS TP Gear.

    so I would use

    Code:
    function status_change(new,old)
    	if new == 'Engaged' then
                     if buffactive.ionis  then
                              sets.tp = sets.tp.ionis
    		          equip(sets.TP)
                     else
                              sets.tp = sets.tp.DD
    		          equip(sets.TP)
                     end
    	else
    		equip(sets.Idle)
    	end
    end
    not tested.. just got the logic behind it.. ~.~

  19. #139
    BG Content
    Join Date
    Jul 2007
    Posts
    21,105
    BG Level
    10
    FFXI Server
    Lakshmi
    Blog Entries
    1

    No, it supports variables. There are a few minor problems in your code, depending which version of GearSwap you're using, Nikia:
    Code:
    TPWaist = "Twilight Belt"
    sets.melee.TP.Norm = {waist=TPWaist}
    
    function buff_change(buff,g_or_l)
        if buff == 'Ionis' and g_or_l then
            TPWaist = 'Cetl Belt'
        else
            TPWaist = 'Twilight Belt'
        end
    end
    Assuming you're on the dev version, the above code would work. The problems were:
    * sets.melee.TP.Norm = {waist="TPWaist"} makes the "waist" key equal to a string "TPWaist". Removing the quotes makes it equal to the variable TPWaist.
    * You have to define the variable TPWaist before you use it
    * You were missing buff from the incoming arguments of your buff_change function (so it always would have been nil)
    * If you're using the dev version, buff_change passes true for "gain" and false for "loss", so you just need to test whether it is true (or g_or_l) to see that you're gaining the buff. If you're not on the dev version, your g_or_l == 'gain' is correct.
    * The above function won't change your gear if the variable changes. You would have to do another equip command for that. It would be something like putting this code before the final "end":
    Code:
        if not midaction() then
            equip(sets.melee.TP.Norm)
        end

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

    Should also be noted that variable assignment for strings in Lua does not hold a reference to the variable, it just copies the string, so that code is actually doing nothing unless you reassign sets.melee.TP.Norm.waist.

    Spellcast only allowed this sort of syntax because it iterated over the file every time.

Closed Thread
Page 7 of 302 FirstFirst ... 5 6 7 8 9 17 57 ... LastLast

Similar Threads

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