The Last Dance II: The Show Must Go On

Eorzea Time
 
 
 
Language: JP EN FR DE
users online
Forum » FFXI » Jobs » Dancer » The Last Dance II: The Show Must Go On
The Last Dance II: The Show Must Go On
First Page 2 3 ... 69 70 71 ... 80 81 82
 Asura.Sechs
Offline
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10136
By Asura.Sechs 2019-01-22 01:17:42
Link | Quote | Reply
 
I don't see why the set bonus should be updated Kaat.
Not that I would complain eh, but to date not a single set bonus or augment bonus (relics) has ever been updated, I don't see any reason why they should do it this time.

Also your STP values are a bit too optimistic, doubt they're gonna give such big (+5 each upgrade) increases to STP.
Again: not that I would complain but I don't see it happening.
Same for DualWield, I think it's gonna be +12 for the +2 and +13 for the +3.


The rest of your guesstimates are very optimistic but I guess "possible".
You forgot a new stat on most slots other than the body though.
If they're gonna follow the Artifact and Relic model, each piece will see not just increases to the existing stats, but also one new stat for each piece.
Could be WSD for the Body like you said, but there's gonna be 4 new stats for the other slots.
 Leviathan.Katriina
Offline
Server: Leviathan
Game: FFXI
user: kate99
Posts: 860
By Leviathan.Katriina 2019-01-22 03:11:26
Link | Quote | Reply
 
Asura.Sechs said: »
Also your STP values are a bit too optimistic, doubt they're gonna give such big (+5 each upgrade) increases to STP.
Again: not that I would complain but I don't see it happening.
Same for DualWield, I think it's gonna be +12 for the +2 and +13 for the +3.
Yeah possibly it will be +1 STP each update, and not +5.
I will modify it now.
I also added the extra stat for each piece.
Offline
Posts: 9079
By SimonSes 2019-01-22 03:14:00
Link | Quote | Reply
 
Carbuncle.Kukiki said: »

Well it was said from the start that Centovente won't work everywhere, but in 95% of endgame content you don't need to focus on accuracy for Centovente. The main accuracy "swap" would be to use sushi instead of attack food.

When I was talking about Centeovente having the highest impact, I was talking about 1hr zerg situation, where you would do 6+ Climatic Rudras in a row, without doing any TP hits at all, so all your TP would come from RF, so you would be limited in having high TP and Centovente lower accuracy wont matter at all too.

What I find odd tho is that I couldn't get even close to 99999 Rudra on bats, even with 3000TP. I'm not sure if your 99999 Rudras are just because it's something like 80k main hit and 20k from sub hand and multihit proc or my climatic set is broken... hmmm...

EDIT: I tried with disable gearswap. Highest I can pull off is ~91000. My neck is rank 14, Twashtar is rank 10, so im still missing 21DEX and 5% Rudra damage and 5%PDL. All that should boost me to 99999 probably.

I really think that 99999 you do is because of AM3 proc and offhand hits. How often you do 99999 Rudra? Can you try 3000TP Climactic rudra without AM3? Do you have r25 neck?
 Carbuncle.Kukiki
Offline
Server: Carbuncle
Game: FFXI
Posts: 12
By Carbuncle.Kukiki 2019-01-22 07:21:48
Link | Quote | Reply
 
That 99999 is with fully augmented Terpsichore (base dmg of 144) and fully augmented neck. It also gets the 20% weapon skill damage boost from Building Flourish from Job Points. I'll do more testing but it's pretty consistent with capped attack.

Also I doubt offhand will add more than 2k damage, because when main hand hit misses I hardly see more damage than that. Same with AM3, pretty sure fTP and Climactic bonus only apply to first hit. Same with WSD
Offline
Posts: 83
By Andromida 2019-01-22 07:38:04
Link | Quote | Reply
 
Quetzalcoatl.Xilkk said: »
I really like seeing Ruau's job guide video's tips and tricks section for the jobs I"m not so familiar with.

I'd love to see a career Dnc show what the job can really do.

I have actually talked to Ruau about this a little while ago, and I would like to do something like that. I am the dancer who was in his video for the January update. I just don't feel like I am experienced enough to do this yet. Maybe I should start putting something together.
Offline
Posts: 9079
By SimonSes 2019-01-22 07:44:10
Link | Quote | Reply
 
Carbuncle.Kukiki said: »
That 99999 is with fully augmented Terpsichore (base dmg of 144) and fully augmented neck. It also gets the 20% weapon skill damage boost from Building Flourish from Job Points. I'll do more testing but it's pretty consistent with capped attack.

Also I doubt offhand will add more than 2k damage, because when main hand hit misses I hardly see more damage than that. Same with AM3, pretty sure fTP and Climactic bonus only apply to first hit. Same with WSD

Ok mystery solved, my numbers are without building flourish :)
Offline
Posts: 9079
By SimonSes 2019-01-22 07:48:01
Link | Quote | Reply
 
Afania said: »

I would love to see career dnc upload their gameplay video about the "break the limit" aspect of the job. I believe every job can do crazy things when played to max potential, but we just dont see them often enough!

I'm planning to start adding video on YT and DNC will be there too, but I don't think it will be in form of guide, more like Rua's videos with exhibition in title.
 Asura.Arico
Offline
Server: Asura
Game: FFXI
user: Tename
Posts: 535
By Asura.Arico 2019-01-24 18:30:15
Link | Quote | Reply
 
How do I want to be using my finishing moves with terp for WS spam fights? My guess is:

Reverse when AM is down, Building+Striking PK whenever I can? Climactic seems unnecessary.
Offline
Posts: 454
By Zeota 2019-01-24 18:40:57
Link | Quote | Reply
 
That's more or less what I do. I tend to keep CF handy for if I overflow past like 1500, then I'll crack off a rudra's.
 Sylph.Ticktick
Offline
Server: Sylph
Game: FFXI
user: mofat
Posts: 116
By Sylph.Ticktick 2019-01-26 04:48:06
Link | Quote | Reply
 
does the crit chance on striking from empy body work on WS that can't crit?
Offline
Posts: 9079
By SimonSes 2019-01-26 05:53:32
Link | Quote | Reply
 
Asura.Arico said: »
How do I want to be using my finishing moves with terp for WS spam fights? My guess is:

Reverse when AM is down, Building+Striking PK whenever I can? Climactic seems unnecessary.

Striking is barely any improvement for PK with mythic imo. I doubt it's worth 1sec ability delay. You have very high chance to double-triple attack on main hand with AM3 up, so forcing double attack seems almost useless.
 Asura.Sechs
Offline
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10136
By Asura.Sechs 2019-01-26 06:54:55
Link | Quote | Reply
 
Sylph.Ticktick said: »
does the crit chance on striking from empy body work on WS that can't crit?
It doesn't.
 
Offline
Posts:
By 2019-01-26 07:12:04
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 Asura.Lunafreya
Offline
Server: Asura
Game: FFXI
user: Lunafreya
Posts: 740
By Asura.Lunafreya 2019-01-26 10:21:08
Link | Quote | Reply
 
So is the striking/ternary PK set on the BG Wiki guide invalid? Would you just use Horos +3 body instead of Maculele?
Offline
Posts: 1534
By ScaevolaBahamut 2019-01-26 11:49:19
Link | Quote | Reply
 
Asura.Arico said: »
How do I want to be using my finishing moves with terp for WS spam fights? My guess is:

Reverse when AM is down, Building+Striking PK whenever I can? Climactic seems unnecessary.

Striking is basically never worth burning your Group 3 cooldown in a world where Climactic exists.
 Asura.Sechs
Offline
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10136
By Asura.Sechs 2019-01-26 14:21:24
Link | Quote | Reply
 
Asura.Lunafreya said: »
Would you just use Horos +3 body instead of Maculele?
I'm not getting this part of the question.
Why do you have to pick one OR the other?
Maculele+1 still decent in situations where you're extremely buff starved.
Considering a +3 version is incoming, that will be even more true.

You just don't use Maculele in the situations where you want to use Horos, and vice-versa.
Probably you meant something else I dunno, but they're just options for very different and non-concurrent situations.
 Asura.Lunafreya
Offline
Server: Asura
Game: FFXI
user: Lunafreya
Posts: 740
By Asura.Lunafreya 2019-01-26 16:30:29
Link | Quote | Reply
 
Asura.Sechs said: »
Asura.Lunafreya said: »
Would you just use Horos +3 body instead of Maculele?
I'm not getting this part of the question.
Why do you have to pick one OR the other?
Maculele+1 still decent in situations where you're extremely buff starved.
Considering a +3 version is incoming, that will be even more true.

You just don't use Maculele in the situations where you want to use Horos, and vice-versa.
Probably you meant something else I dunno, but they're just options for very different and non-concurrent situations.

A little confused as well xD

I meant specifically for Striking flourish + PK. Are you saying to use maculele only for low buff situations for that specifically, otherwise Horos?
 Asura.Sechs
Offline
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10136
By Asura.Sechs 2019-01-26 16:52:05
Link | Quote | Reply
 
Oooh ok, sorry bout that.
Well as someone else said atm Striking Flourish is not worth using 99,9% of the times, period.
So it's not much a matter of Maculele or not, but a matter of Striking or not :-P

That put aside, the augment on Maculele+1 only works if you wear the piece with Striking Flourish active. It's not one of those pieces that you only need to wear when activating the JA.
As such, I'd say it's not worth it, not until Maculele+3 comes out at least.


But really, as things are now you shouldn't really be overthinking about Striking Flourish, most of the time the right answer to all your doubts concerning it will be: do not use it.
 Sylph.Ticktick
Offline
Server: Sylph
Game: FFXI
user: mofat
Posts: 116
By Sylph.Ticktick 2019-01-26 17:21:23
Link | Quote | Reply
 
has anyone fixed refine_waltz so it will upgrade or downgrade depending on the target's missing hp and what is off cooldown? also divine waltz II -> I when on CD.
 Asura.Cambion
Offline
Server: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2019-01-26 20:33:21
Link | Quote | Reply
 
Sylph.Ticktick said: »
has anyone fixed refine_waltz so it will upgrade or downgrade depending on the target's missing hp and what is off cooldown? also divine waltz II -> I when on CD.

Nope. I asked here, I asked in the GS support thread, I've tried to do it on my own every way I can think of, and can't get it to work.
Offline
Posts: 9079
By SimonSes 2019-01-26 21:05:43
Link | Quote | Reply
 
Hmmmm I edited it for myself and I think it works.
Code
if player.main_job == 'DNC' then
            if missingHP < 40 and spell.target.name == player.name then
                -- Not worth curing yourself for so little.
                -- Don't block when curing others to allow for waking them up.
                add_to_chat(122,'Full HP!')
                eventArgs.cancel = true
                return
            elseif missingHP < 200 then
                if spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				end	
            elseif missingHP < 600 then                
				if spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            elseif missingHP < 1100 then
                if spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            elseif missingHP < 1500 then
                if spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            else
                if spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            end


I commented out "Downgrade the spell to what we can afford" completely, since I moved TP to code above.

You can actually test it and let me know if that 100% works, I havent had enough time to do it myself more than at one dynamis run.
 Leviathan.Katriina
Offline
Server: Leviathan
Game: FFXI
user: kate99
Posts: 860
By Leviathan.Katriina 2019-01-26 23:46:52
Link | Quote | Reply
 
Asura.Lunafreya said: »
So is the striking/ternary PK set on the BG Wiki guide invalid? Would you just use Horos +3 body instead of Maculele?

If you're a Terp user, then don't use it, also; Climactic is better off if timer is up.
Unless you're strictly spamming PK.

Will add tis note on Guide, thanks for raising this.
[+]
 Asura.Sechs
Offline
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10136
By Asura.Sechs 2019-01-27 07:04:38
Link | Quote | Reply
 
The part on BG wiki isn't necessary wrong, but it's worded in a slightly convoluted way, I can see it raising up a bit of confusion like it did for Lunafreya.

Maybe it should be re-worded for the sake of clarity.
Oh and also adding a line that says how the power up granted by Maculele is only active if the piece is actively worn when the buff is up, and not simply when you activate the JA.
[+]
 Asura.Cambion
Offline
Server: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2019-01-27 12:10:16
Link | Quote | Reply
 
Leviathan.Katriina said: »

Will add tis note on Guide, thanks for raising this.

If you're updating the wiki, Unmoving Collar +1 (10) is a higher enmity neck piece than Warders Charm +1 (1~8) for the Emnity Set.

SimonSes said: »
You can actually test it and let me know if that 100% works, I havent had enough time to do it myself more than at one dynamis run.

I'll toss it in and report back, thanks.
Any possibility you can do the Divine Waltz as well?
If spell Divine Waltz II and recast > 1 or player.tp < 800 then
new waltz = 'divine waltz'
waltz id = ??

Something simple like that.
[+]
 Asura.Cambion
Offline
Server: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2019-01-27 13:54:58
Link | Quote | Reply
 
SimonSes said: »
Hmmmm I edited it for myself and I think it works.
Code
if player.main_job == 'DNC' then
            if missingHP < 40 and spell.target.name == player.name then
                -- Not worth curing yourself for so little.
                -- Don't block when curing others to allow for waking them up.
                add_to_chat(122,'Full HP!')
                eventArgs.cancel = true
                return
            elseif missingHP < 200 then
                if spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				end	
            elseif missingHP < 600 then                
				if spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            elseif missingHP < 1100 then
                if spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            elseif missingHP < 1500 then
                if spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            else
                if spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            end


I commented out "Downgrade the spell to what we can afford" completely, since I moved TP to code above.

You can actually test it and let me know if that 100% works, I havent had enough time to do it myself more than at one dynamis run.

Currently doesn't work.
Part of it is because it's not a complete code start to finish, it looks like it's missing an end, or the opening line originally included in motes code "if missingHP ~= nil then"

I altered a few things to get it to load properly, and then I get the following:

mote-utility line 206: attempt to index global spell_recasts (a nil value).

Line 206 reads as follows:
if spell_recasts[192] < 1 and player.tp > 500 then

It will still do the original waltz, but doesn't downgrade.
So if I'm hitting my waltz macro (waltz 3 is the only one I have) it will just continually try to waltz 3, won't downgrade, or account for the timer.
Offline
Posts: 9079
By SimonSes 2019-01-27 15:21:13
Link | Quote | Reply
 
XD

I pasted only the part of the code that I changed from original function. I tho it's obvious since the question had name of the function in it XD

The whole function after changes look like this:
Code
function refine_waltz(spell, action, spellMap, eventArgs)
    if spell.type ~= 'Waltz' then
        return
    end
    
    -- Don't modify anything for Healing Waltz or Divine Waltzes
    if spell.english == "Healing Waltz" or spell.english == "Divine Waltz" or spell.english == "Divine Waltz II" then
        return		
    end

    local newWaltz = spell.english
    local waltzID
	local spell_recasts = windower.ffxi.get_spell_recasts()
            
    --if spell.english == "Divine Waltz" or spell.english == "Divine Waltz II" then
    --    if spell_recasts[spell.recast_id] < 1 and player.tp > 400 then
	--		return
	--	else if	spell_recasts[spell.recast_id] < 1 and player.tp > 400 then
    --end
	
    local missingHP
    
    -- If curing ourself, get our exact missing HP
    if spell.target.type == "SELF" then
        missingHP = player.max_hp - player.hp
    -- If curing someone in our alliance, we can estimate their missing HP
    elseif spell.target.isallymember then
        local target = find_player_in_alliance(spell.target.name)
        local est_max_hp = target.hp / (target.hpp/100)
        missingHP = math.floor(est_max_hp - target.hp)
    end
    
    -- If we have an estimated missing HP value, we can adjust the preferred tier used.
    if missingHP ~= nil then
        if player.main_job == 'DNC' then
            if missingHP < 40 and spell.target.name == player.name then
                -- Not worth curing yourself for so little.
                -- Don't block when curing others to allow for waking them up.
                add_to_chat(122,'Full HP!')
                eventArgs.cancel = true
                return
            elseif missingHP < 200 then
                if spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				end	
            elseif missingHP < 600 then                
				if spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            elseif missingHP < 1100 then
                if spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            elseif missingHP < 1500 then
                if spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            else
                if spell_recasts[194] < 1 and player.tp > 800 then 
					newWaltz = 'Curing Waltz V'
					waltzID = 194
				elseif spell_recasts[193] < 1 and player.tp > 650 then
					newWaltz = 'Curing Waltz IV'
					waltzID = 193
				elseif spell_recasts[192] < 1 and player.tp > 500 then
					newWaltz = 'Curing Waltz III'
					waltzID = 192
				elseif spell_recasts[191] < 1 and player.tp > 350 then
					newWaltz = 'Curing Waltz II'
					waltzID = 191
				elseif spell_recasts[190] < 1 and player.tp > 200 then 
					newWaltz = 'Curing Waltz'
					waltzID = 190
				end	
            end
        elseif player.sub_job == 'DNC' then
            if missingHP < 40 and spell.target.name == player.name then
                -- Not worth curing yourself for so little.
                -- Don't block when curing others to allow for waking them up.
                add_to_chat(122,'Full HP!')
                eventArgs.cancel = true
                return
            elseif missingHP < 150 then
                newWaltz = 'Curing Waltz'
                waltzID = 190
            elseif missingHP < 300 then
                newWaltz = 'Curing Waltz II'
                waltzID = 191
            else
                newWaltz = 'Curing Waltz III'
                waltzID = 192
            end
        else
            -- Not dnc main or sub; bail out
            return
        end
    end

    local tpCost = waltz_tp_cost[newWaltz]

    local downgrade
    
    -- Downgrade the spell to what we can afford
    --if player.tp < tpCost and not buffactive.trance then
        --[[ Costs:
            Curing Waltz:     200 TP
            Curing Waltz II:  350 TP
            Curing Waltz III: 500 TP
            Curing Waltz IV:  650 TP
            Curing Waltz V:   800 TP
            Divine Waltz:     400 TP
            Divine Waltz II:  800 TP
        --]]
        
    --    if player.tp < 200 then
    --        add_to_chat(122, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
    --        eventArgs.cancel = true
    --        return
    --    elseif player.tp < 350 then
    --        newWaltz = 'Curing Waltz'
    --    elseif player.tp < 500 then
    --        newWaltz = 'Curing Waltz II'
    --    elseif player.tp < 650 then
    --        newWaltz = 'Curing Waltz III'
    --    elseif player.tp < 800 then
    --        newWaltz = 'Curing Waltz IV'
    --    end
    --    
    --    downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
    --end

    
    if newWaltz ~= spell.english then
        send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
        --if downgrade then
        --    add_to_chat(122, downgrade)
        --end
        eventArgs.cancel = true
        return
    end

    if missingHP and missingHP > 0 then
        add_to_chat(122,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
    end
end


I was trying to make Divine waltz change, but i dont know ID for Divine Waltz II and I and im too lazy to search for it XD

I also havent changed waltzes for sub job.
[+]
 Asura.Cambion
Offline
Server: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2019-01-27 16:41:06
Link | Quote | Reply
 
SimonSes said: »
I tho it's obvious since the question had name of the function in it XD

I was trying to make Divine waltz change, but i dont know ID for Divine Waltz II and I and im too lazy to search for it XD

Well I'm an idiot, and I'm SORRY! ;)
Testing it, and so far seems to work, I'll put it through the paces this week and report back.

Can anyone find the Divine Waltz IDs or know where I can begin looking?
Offline
Posts: 83
By Andromida 2019-01-29 10:38:42
Link | Quote | Reply
 
Was wondering when it comes to the refine_waltz function would you prefer under or over curing your target?

For example if Curing Waltz 1 does 200 HP and Curing Waltz 2 does 600 HP and your target is missing 400 HP which Waltz would you use?
 Asura.Cambion
Offline
Server: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2019-01-31 03:01:31
Link | Quote | Reply
 
SimonSes said: »
The whole function after changes look like this:

I was trying to make Divine waltz change, but i dont know ID for Divine Waltz II and I and im too lazy to search for it XD

Based on what I've been told:
Divine Waltz 1 = 195
Divine Waltz 2 = 262

I tried to use the following:
Code
    if spell.english == "Divine Waltz" or spell.english == "Divine Waltz II" then
        if spell_recasts[262] < 1 and player.tp > 800 then
			newWaltz = 'Divine Waltz II'
			waltzID = 262
		elseif spell_recasts[262] > 1 and player.tp > 400 then
			newWaltz = 'Divine Waltz'
			waltzID = 195
			return
		end	
    end 


But still can't get it to work. I assume it's due to a conflict on the lines above, so I tried altering Divine out of the exempt, then into the waltz.type etc, but not having any luck.
Offline
Posts: 83
By Andromida 2019-02-02 05:36:35
Link | Quote | Reply
 
I have written my own refine waltz function, I don't use motes so it may not play right as a drop in replacement
Code
function get_target_missing_hp(target)
    if target.type == "SELF" then
        return player.max_hp - player.hp
    end

    if not target.isallymember then
        return
    end

    local target = find_player_in_alliance(target.name)

    return math.floor((target.hp / (target.hpp / 100)) - target.hp)
end

function get_dnc_level()
    if player.sub_job == "DNC" then
        return player.sub_job_level
    end

    return player.main_job_level
end

function refine_waltz(spell)
    if player.tp < 200 then
        add_to_chat(122, "No TP!")
        cancel_spell()
        return
    end

    local dncLevel = get_dnc_level()
    local spellRecasts = windower.ffxi.get_spell_recasts()
    local missingHP = get_target_missing_hp(spell.target)

    if not missingHP then
        return true
    end

    if spell.target.type == "SELF" and missingHP < 40 then
        add_to_chat(122, "Full HP!")
        cancel_spell()
        return
    end

    local waltzes =
        table.filter(
        {
            {id = 190, name = "Curing Waltz", level = 15, tp = 200, hp = 300},
            {id = 191, name = "Curing Waltz II", level = 30, tp = 350, hp = 600},
            {id = 192, name = "Curing Waltz III", level = 45, tp = 500, hp = 1000},
            {id = 193, name = "Curing Waltz IV", level = 70, tp = 650, hp = 1500},
            {id = 194, name = "Curing Waltz V", level = 87, tp = 800, hp = 2000}
        },
        function(waltz)
            return waltz.level <= dncLevel and waltz.tp <= player.tp and spellRecasts[waltz.id] < 1
        end
    )

    local newWaltz = "Curing Waltz"
    for _, waltz in ipairs(waltzes) do
        if waltz.hp > missingHP then
            break
        end

        newWaltz = waltz.name
    end

    if newWaltz ~= spell.english then
        send_command('@input /ja "' .. newWaltz .. '" ' .. tostring(spell.target.raw))
        cancel_spell()
        return
    end

    return true
end


I use it in my precast like so:
Code
if spell.english:startswith("Curing Waltz") and not refine_waltz(spell) then
    return
end


https://gist.github.com/mattwells/300af25fb07a7939ffd8d0f97886706e
First Page 2 3 ... 69 70 71 ... 80 81 82