Archived

This topic is now archived and is closed to further replies.

Furion

Visualising the optimal cat rotation ingame

376 posts in this topic

Ran a 5p and you script was suggesting Rake when it was already up. Unable to reproduce on a dummy...

Not sure why that's the case. Changed the logic in my script a bit. I'll test it in my raid today.

Share this post


Link to post
Share on other sites

@bkim - thanks for putting up your version. I personally much prefer having TF included in the suggestions, and the options you've included are great. Kinda wish there was an easy way to have both your and Furion's versions up easily accessible.

I had originally created a new thread because mine and Furion's are quite different approaches to the Ovale script, but the moderator moved it into this thread. I'm thinking of other way to have it accessible.

EDIT: I have created a google group to host the script. You can always find it here: WoW Feral DPS Ovale Script | Google Groups . Please no discussions in the google group. Leave the discussions in EJ.

Share this post


Link to post
Share on other sites
If Rip has already expired, and Savage Roar is about to expire, and you're low on energy, you're in a tight spot. The best you can do is make sure that the Rip you throw up is boosted by Savage Roar, then pull a quick single combo point Savage Roar.

Agreed. These scripts will never be able to completely account for difficult situations like these, e.g.:

* 3+ targets in 5yd range & in 90 degree frontal arc

* SR & Rip synchronized with < ~10 seconds left

* 5CP and Rip and Mangle about to drop off within 1 second of each other right before SR and you get a dodge/parry/miss

Best practice for these scripts going forward would really be to keep making minor adjustments for a good, solid single-target dps algorithm with options to include short CDs like TF, leave Berserk out of it since its use is the most fight-specific decision we have to make, but possibly include an option to recommend Mangle (wtb more Trauma warriors pst) a second before it drops off - which would lose personal dps efficiency but make sure you have at least one other chance to not get a dodge/parry/miss on putting up a debuff that a significant amount of raid dps'ers depend on. I don't see anyone being able to get even remotely effective with these scripts without using a timer addon as well.

Share this post


Link to post
Share on other sites

Apart from your swipe scenario I don't see why a simple script couldn't give the optimal recommendation in those situations (I actually claim that the script should already give pretty good suggestions in those cases) but I seriously think this is derailing the discussion.

If you think the script gives you a wrong suggestion in a single target situation then describe the problem here and make sure to include what the script wrongly suggested and what it should have rightly suggested (and even better if you can explain why it was wrong or how to fix it).

Share this post


Link to post
Share on other sites

I edited in bkim's link to Google Groups at the end of the original post. Furion, if you want to edit the OP to more clearly reflect both scripts then that may be helpful as you can keep this the thread about all things Ovale. That way people have access to both via the first post. Thanks to you both for providing an intelligent discussion on this stuff and making your work accessible.

Personally, I find these things interesting but in raid situations there are many variables that aren't taken into account (mostly encounter-specific) and if you know what you're doing you'll always outdo a script like this (and others like fbn, facemauler etc.). That said, the models are pretty good (especially the SimCraft-based stuff) and gets you a lot of the way there. At the very least if you're new, it helps you understand how things work till you can drive yourself.

Share this post


Link to post
Share on other sites

The latest script hardly ever suggests Ferocious Bite. I think the Savage Roar suggestion isn't working correctly now, suggesting to refresh way too early.

Edit: I'm not really sure what the reason is to be honest I just hardly ever get Bite suggested and I have a feeling the roar is refreshed too early many times.

Share this post


Link to post
Share on other sites
The latest script hardly ever suggests Ferocious Bite. I think the Savage Roar suggestion isn't working correctly now, suggesting to refresh way too early.

Edit: I'm not really sure what the reason is to be honest I just hardly ever get Bite suggested and I have a feeling the roar is refreshed too early many times.

It increases Rip uptime which is a tradeoff but overall should lead to higher dps. Working as intended.

I edited in bkim's link to Google Groups at the end of the original post

Actually that was unnecessary as I already linked to it in my OP. However I will make a more clear distinction today, hopefully, but unfortunately I didnt have much time today and will be away in the coming days.

Edit: 1.7b up rake should really be fixed now. If more people prefer the old version which puts less priority on Rip I might put it up as an alternative again.

Share this post


Link to post
Share on other sites
It increases Rip uptime which is a tradeoff but overall should lead to higher dps. Working as intended.

No no no you misunderstood. It's not Rip pushing Bite away it's Roar. I did some testing and Roar is already suggested when there are still 6 seconds left. How can that ever be a dps increase?

So Bite can only happen if Roar has more than 6 (!!!) seconds left and Rip still have enough time as well.

Like someone else said, why not do the Bite and follow up with a lower combo point Roar.

Please explain to me because this can in no way be a dps increase.

Share this post


Link to post
Share on other sites

I believe this could help with desynchronizing rip and roar timers.

"n"s between "node1" and "node2"

The difference between the remaining time of "node1" and the remaining time of "node2" must be at most "n" seconds. If it is the case, the node remaining time is 0, otherwise it is infinite.

From Ovale Documentation

Share this post


Link to post
Share on other sites
No no no you misunderstood. It's not Rip pushing Bite away it's Roar. I did some testing and Roar is already suggested when there are still 6 seconds left. How can that ever be a dps increase?

It's to desynchronize roar and rip and the only way to do it is to roar early. Imagine something like a 1:1 rip/roar ratio with both being up almost 100% of the time (that's not exactly what the script does it's just to give you an idea). On static fights refreshing roar early to increase rip uptime should be a DPS increase. However in some other fights things might look a bit differently. With maxed passive arp things might also look differently. I think some more feedback on this issue couldn't hurt.

If you don't like it you can still use an older Version.


Define(FFF 16857)

Define(FF 770)

Define(RIP 1079)

Define(MANGLE 33876)

Define(SHRED 5221)

Define(TIGER 5217)

Define(RAKE 59886)

Define(ROAR 52610)

Define(BITE 22568)

Define(BERSERK 50334)

Define(OMEN 16870)

Define(TRAUMA 46857)

Define(MANGLEB 33878)


AddIcon help=main

{

if Stance(3) # cat

    {

    	if ComboPoints(more 0) and BuffExpires(ROAR 1) Spell(ROAR)

	if ComboPoints(more 4)

		{

        	unless BuffExpires(ROAR 6)

            	{

            	unless TargetDebuffExpires(RIP 9 mine=1)

                		{

                		unless BuffPresent(BERSERK) Spell(BITE)

                		if BuffPresent(BERSERK) and Mana(less 20) Spell(BITE)

                		}

			}

		if TargetDeadIn(less 7) Spell(BITE)

	  	unless BuffExpires(ROAR 3) {unless TargetDebuffPresent(RIP mine=1) Spell(RIP)}

		}

	unless {TargetDebuffPresent(MANGLE) or TargetDebuffPresent(MANGLEB) or TargetDebuffPresent(TRAUMA)} Spell(MANGLE)    	if TargetDebuffExpires(RAKE 0 mine=1) {unless TargetDeadIn(less 9) Spell(RAKE)}

	if {TargetDebuffPresent(MANGLE) or TargetDebuffPresent(MANGLEB) or TargetDebuffPresent(TRAUMA)}

		{

		if ComboPoints(less 5) Spell(SHRED priority=2)

		if BuffPresent(OMEN) Spell(SHRED priority=2)

        	if BuffPresent(BERSERK) Spell(SHRED priority=2)

	 	if Mana(more 70) Spell(SHRED priority=2)

		if TargetDeadIn(less 9) Spell(SHRED)

       	}

    unless {TargetDebuffPresent(FFF) or TargetDebuffPresent(FF)} Spell(FFF priority=1)

    }

}

AddIcon help=cd size=small nocd=1

{

if Stance(3) # cat

    {

    Spell(TIGER)

    Spell(BERSERK)

    }

}


Share this post


Link to post
Share on other sites

I'm not sure what I like best. Well seeing higher dps numbers is what I like best :) I'm just like you trying to find best dps.

I understand the concept of the desynching now and it sounds solid but like you've already said, it should be an increase on a fight like Saurfang where you dps like he's a target dummy but on 99% of the other bosses, how many times is the desynching really nessesary and how many bites do you sacrifice for this theoratical increase in dps?

That's what I'm wondering atm. I also tried some other values for when to refresh Roar. At the moment it's set to 6 seconds. I tried 4,3 and 2 seconds as well. Sofar the 2 seconds has given the highest dps. You do lose some Rip uptime but the dps'ing just feels less bumpy. Also a better interaction with Tiger's Fury.

Another thing what bugs with the newer versions is that I'm getting a Shred suggestion and I do a Shred and when I'm pushing it it suddenly becomes a Mangle. After that I watched the timers on the debuffs and it is indeed correct but on such a short notice I nearly always do the Shred while I should wait 1 second for the Mangle. I know I can watch timers and get used to it but seeing as it does show, for instance, Rip and Rake refresh 3-4 seconds in advance I wonder if you could maybe give 0.5-1 sec advance notice of Mangle?

This actually looks like the problem Bkim was trying to solve. Is there a solution for it yet? I'm getting confused by 2 people trying to achieve the same thing with the same program and script language yet say they take an entirely different aproach.

Share this post


Link to post
Share on other sites

Desynching is a big issue on a lot of fights. If you blindly follow the FBN script, you can find yourself going for long periods of time with no Rip up. This can happen at any time of a fight and doesn't require a non-movement fight to be important. Granted, on the gunship fight it isn't an issue, but on almost every other fight you will be stationary often enough and long enough to get a big DPS gain out of desynching when necessary.

Share this post


Link to post
Share on other sites
I'm not sure what I like best. Well seeing higher dps numbers is what I like best :) I'm just like you trying to find best dps.

I understand the concept of the desynching now and it sounds solid but like you've already said, it should be an increase on a fight like Saurfang where you dps like he's a target dummy but on 99% of the other bosses, how many times is the desynching really nessesary and how many bites do you sacrifice for this theoratical increase in dps?

That's what I'm wondering atm. I also tried some other values for when to refresh Roar. At the moment it's set to 6 seconds. I tried 4,3 and 2 seconds as well. Sofar the 2 seconds has given the highest dps. You do lose some Rip uptime but the dps'ing just feels less bumpy. Also a better interaction with Tiger's Fury.

Another thing what bugs with the newer versions is that I'm getting a Shred suggestion and I do a Shred and when I'm pushing it it suddenly becomes a Mangle. After that I watched the timers on the debuffs and it is indeed correct but on such a short notice I nearly always do the Shred while I should wait 1 second for the Mangle. I know I can watch timers and get used to it but seeing as it does show, for instance, Rip and Rake refresh 3-4 seconds in advance I wonder if you could maybe give 0.5-1 sec advance notice of Mangle?

This actually looks like the problem Bkim was trying to solve. Is there a solution for it yet? I'm getting confused by 2 people trying to achieve the same thing with the same program and script language yet say they take an entirely different aproach.

My script actually does suggest Mangle refresh 1 sec early. I will make the SR and Mangle refresh times configurable.

Share this post


Link to post
Share on other sites

Wouldn't TF and Berserk suggestions be good for desynching? I imagine the script would have to do a lot of foreseeing in order for it to work, but I can see how a well-timed TF can save rip from dropping for some seconds. That or making the script is fine-tuned so that the Rip+SR time to expire calculations are used to decide when SR should be refreshed, etc.

I got a great DPS increase from Furion's changes to increase Rip up-time in my tests so far.

Share this post


Link to post
Share on other sites

The trouble with that is that you want to be using TF & Beserk as often as possible and trying to use them at certain times to desynch will put you at risk of reducing the number of times they can be used in a fight and that would thus drop DPS as well.

Share this post


Link to post
Share on other sites
I'm getting confused by 2 people trying to achieve the same thing with the same program and script language yet say they take an entirely different aproach.

Once simcraft for ferals has seen some more optimization, my script will probably not be needed anymore.

Wouldn't TF and Berserk be good for desynching?

Actually, I think that is the case. Not in a way that you wait with TF/Berserk up for 20 seconds for desynching to occur but if it's ready at the right time it might be a better replacement for early refreshing. Might be an option to explore with simcraft by setting more complex TF and SR rules.

Share this post


Link to post
Share on other sites
Has anyone figured out a way to add a timer for the internal cooldown of trinkets as a small side window?

Such as for death's choice and runestone (both have a 45? second internal cooldown on their procs.) This is about the only thing my custom script is missing.


Define(GREATSTR 60229) //Darkmoon Card - Greatness STR

Define(GREATAGI 60233) //Darkmoon Card - Greatness AGI

Define(GRIMTOLL 60437) //Grim Toll

Define(COMET 64772) //Comet's Trail

Define(MJOLNIR 65019) //Mjolnir Runestone

Define(DARKMATTER 65024) //Dark Matter

Define(BANNER 67671) //Banner of Victory

Define(DEATHNOR 67702) //Death's Choice/Verdict Normal

Define(DEATHHC 67771) //Death's Choice/Verdict Heroic

Define(NEEDLE 71403) //Needle-Encrusted Scorpion

Define(WHISPERNOR 71401) //Whispering Fanged Skull Normal

Define(WHISPERHC 71541) //Whispering Fanged Skull Heroic


AddIcon help=cd size=small nocd=45

{

if Stance(3) # cat

{

unless BuffPresent(MJOLNIR) if BuffGain(MJOLNIR 45) Item(Trinket0Slot)

}

}


AddIcon help=cd size=small nocd=45

{

if Stance(3) # cat

{

unless BuffPresent(DEATHHC) if BuffGain(DEATHHC 45) Item(Trinket1Slot)

}

}

Based on bkim's code, I've added the procs of all the popular trinkets, simply replace "MJOLNIR" or "DEATHHC" with the desired trinket, this should give you the desired 45 sec internal cooldown on the trinkets. Notice in the code above that Mjolnir Runestone is in trinketslot 0 and Death's Choice/Verdict Heroic is in trinketslot 1.

(Credits to bkim for providing his original code)

Share this post


Link to post
Share on other sites

Ok im using this script for some time and i tested it on raids.

On static single target fights it is realy nice helper.

For example this is a screen from 10 man saurfang:

http://i50.tinypic.com/2m34pyd.jpg

the dps from 25man will follow after wensd, i didnt had that sript on previous icc runs.

on raids like anub25 hm where i need to do swipe and just keep the roar up it wont help a lot since it follows the single target rotation. Im not so much the script specialist but it looks like he cant follow newest trinkets neither ( i am using the fos trinket which is better than mjnolnir and deathsbringer will - which preaty like procs randomly)

On dummy i have different results most likely it is above 5k - 6k, as some other wrote it looks like the script almoust never sugest the FB strtike on target, also if you stick to script only sometimes you can rip and rake wihout having the mangle buff up on dummie. Ofcourse on raids its almoust sure that at same time will be a warrior with trauma which should help with lost of mangle but still...

On t he other hand script easly helps me to reach unbuffed on d ummy 5500 or 6k dps with minimum 5k dps which is preaty nice also.

Share this post


Link to post
Share on other sites

I tried the trinket proc code yesterday and had some trouble getting it to work. I don't think Ovale is suited to do this. If someone has better luck, let us know.

Share this post


Link to post
Share on other sites

Bkim,

Testing your script on a target dummy, it suggested yellow attacks with 5cp up, rip about to fall off and a Roar Refresh needed. This happened twice. This can't be right.

Might be a target-dummy-1hp problem. Strange thing is, the dummy was 1% from the get-go and I spent 30 minutes testing.

Share this post


Link to post
Share on other sites
Bkim,

Testing your script on a target dummy, it suggested yellow attacks with 5cp up, rip about to fall off and a Roar Refresh needed. This happened twice. This can't be right.

Might be a target-dummy-1hp problem. Strange thing is, the dummy was 1% from the get-go and I spent 30 minutes testing.

The move behavior changes when your target looks like it's about to die. Use the heroic boss dummy with couple million HPs.

Share this post


Link to post
Share on other sites

I added a line right before Ferocious Bite is suggested as something of a test: if Mana(more 65) Spell(SHRED)

This way, after a lucky series of clearcast procs followed by a Tiger's Fury suggestion you don't immediately have suggest to you Ferocious Bite with ~80 energy. I saw this happen and figured it had to be better to Shred some of the energy away before Biting. The 65 number isn't exactly a fine tuned number based on any sort of math other than the fact that shred requires 42 energy. So (65 - 42) = 23. That 23 remaining added with the 20 per second we gain naturally, puts you at 43 energy, which I figured after lag and what not should be more than enough to ensure a quick flow from Shred to FB. I think the 65 number could realistically be 60 and work fine, but I'm just throwing it out there as a concept.

After more thought, I started to wonder if it'd only be a better option if Rip had more than 9 secs remaining to allow for the extra global to insert the shred before bite. Curious what others think. It doesn't happen a lot on a training dummy, but with full buffs and a lot of haste it seems to happen a bit more often in real play.

Also, I looked through the documentation on Ovale and could not find anything about checking if the target was an enemy target. I have grown slightly peeved with the suggestion box appearing when I have any normal NPC in Dalaran targeted. Is there a way to prevent the suggestion box from appearing if your target is friendly or if your target is already dead without using the "Show in combat only" option?

Share this post


Link to post
Share on other sites
Also, I looked through the documentation on Ovale and could not find anything about checking if the target was an enemy target. I have grown slightly peeved with the suggestion box appearing when I have any normal NPC in Dalaran targeted. Is there a way to prevent the suggestion box from appearing if your target is friendly or if your target is already dead without using the "Show in combat only" option?

There is a Hide if friendly or dead target option as well. Bottom left in the appearance options.

Edit: I'll check out your ferocious bite test as well. I've found myself in the situation you describe, hopefully the test will make things smoother.

Share this post


Link to post
Share on other sites

@Rooki

Thanks, I don't know how that escaped me.

            unless BuffExpires(ROAR 6)

                {

                unless TargetDebuffExpires(RIP 8 mine=1)

                        {

                        if Mana(more 60) Spell(SHRED)

                        unless BuffPresent(BERSERK) Spell(BITE)

                        if BuffPresent(BERSERK) and Mana(less 20) Spell(BITE)

                        }

You could probably repeat the whole Rip check back to back if it makes things more efficient. One for a 9sec check and another for an 8sec check? Where if the 9sec check passes and energy is above 60 then you Shred followed by Bite. The 9secs allows the breathing room for the extra global required to shred before the bite and still fit it in with 8secs left on Rip. Then from there another Rip check for 8secs like the OP has with no energy check? I'll admit, I'm a little puzzled how to handle the 8sec Rip check.

As I understand it, the 8secs left on rip is kind of a "down to the wire" for getting that FB off. So even if you have 60+ energy, it almost seems to me you wouldn't want to Shred followed by Bite with 8 seconds left on Rip, just because that'd take you down to 6 secs left on Rip by the time your Shred and Bite are done. 6secs and no energy.

I'm not really sure how to implement it, but it does seem there are definitely occasions where you could get more DPS squeezed out by not biting at those high energy levels.

Share this post


Link to post
Share on other sites

Not a big deal, but semi annoying when you have > 25 energy and < 40 energy and Savage roar expires and you see Tigers Fury in the box.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.