703 Ovale thread

Face-rippin fun.

Moderator: Forum Administrators

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Sun Feb 11, 2018 10:32 pm

Yeah, what you did will remove all the texts from the script.

Another option is going into the ovale settings, there's a font size option. Set it to like 20% and it'll be so tiny you'll never notice it. Downside is this includes the keybinds in the upper right hand corner as well as any range text.

Kestrel
Posts: 22
Joined: Thu Dec 16, 2010 12:32 pm

Re: 703 Ovale thread

Post by Kestrel » Sun Feb 11, 2018 11:28 pm

I was doing M Varimathras progression tonight with predator/brs behemoth/chat and was getting prompted to FB when Rip had 3 seconds left on it, which led to letting Rip drop. This is with the latest script with the self heal. I don't recall that happening on the prior script, but I guess I could be wrong.

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Sun Feb 11, 2018 11:54 pm

If you're slow on reacting to the refresh (ie activate another ability instead of FB) there's the potential for letting it drop. 3 seconds is enough time to generate the 25 energy, but if you say emptied your energy at 2 seconds with any other ability, you might not have sufficient time to get to 25 energy.

Kestrel
Posts: 22
Joined: Thu Dec 16, 2010 12:32 pm

Re: 703 Ovale thread

Post by Kestrel » Mon Feb 12, 2018 1:02 pm

I'm relatively new to feral still, so bear with me if I'm just being dumb :)

It wasn't so much that I didn't have time to generate energy but generating another 5 CP in time for refresh it before it dropped off. If I hit the FB with 3 seconds left on Rip, I was then down to 2 GCDS in which to generate 5 cp to get another Rip up.

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Mon Feb 12, 2018 3:55 pm

Refresh is done at any number of combo points, not necessarily 5. I suppose there's a small chance that you refresh savage roar right before it hits the 3 second mark, then you have to generate a CP and then FB. But that's going to be extremely rare to the point it's probably not worth trying to code around.

Kestrel
Posts: 22
Joined: Thu Dec 16, 2010 12:32 pm

Re: 703 Ovale thread

Post by Kestrel » Mon Feb 12, 2018 5:52 pm

It's not prompting me to get a new rip up though right away if I follow through with the suggestion and use FB.

I can work around this, I'm mostly asking to make sure I understand what I should be doing rotation wise :) Thanks as always for the script.

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Tue Feb 13, 2018 12:07 am

What specific situation are you talking about? i.e. mob health percent, mob time to die, duration on rip, etc. It won't use Rip if the mob is going to die soon (8 seconds per active enemy upto 24 seconds plus whatever remains on the current rip), if you're in execute range then you should be refreshing when you use that ferocious bite, if you're not then rip should be suggested in pandemic range.

Kestrel
Posts: 22
Joined: Thu Dec 16, 2010 12:32 pm

Re: 703 Ovale thread

Post by Kestrel » Tue Feb 13, 2018 1:44 pm

This was happening at the beginning of the fight. About 10% in to M Varimathras. It suggested FB at around 8 seconds left on rip and suggested FB again at around 3 seconds left on rip. Rip dropped and it did not suggest a rip right away. I can replicate it on the dummy if you want me to record it.

Kestrel
Posts: 22
Joined: Thu Dec 16, 2010 12:32 pm

Re: 703 Ovale thread

Post by Kestrel » Tue Feb 13, 2018 3:05 pm

Last edited by Kestrel on Tue Feb 13, 2018 7:54 pm, edited 1 time in total.

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Tue Feb 13, 2018 5:37 pm

Thanks, that'll help a lot.

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Tue Feb 13, 2018 7:37 pm

Done some preliminary testing, seems the bug doesn't occur every time (at least for me). Don't have time to fully debug right now. If you have the time, go into the script and change:

Code: Select all

        if ComboPoints(equal 5)
            Spell(ferocious_bite)
to

Code: Select all

        if ComboPoints(equal 5)
            Spell(ferocious_bite text=open)
It's in the opener section.

Then tell me if that shows up when the bug occurs. It shouldn't, but maybe there's a bug in Ovale causing it to do so.

EDIT: Or more specifically, it should only show up with Ashamane's Frenzy's dot is up.

grammarjew
Posts: 2
Joined: Mon Feb 12, 2018 12:55 am

Re: 703 Ovale thread

Post by grammarjew » Tue Feb 13, 2018 11:30 pm

I'm having some pretty harsh fps issues with Ovale and using this script, can anyone else attest to this? I've noticed it the worst on heavy stacking fights like M Garothi and Varimathras. @Kestrel have you noticed this on M Vari?

Darkmod
Posts: 8
Joined: Wed Jun 14, 2017 2:29 pm

Re: 703 Ovale thread

Post by Darkmod » Wed Feb 14, 2018 3:49 pm

grammarjew wrote:I'm having some pretty harsh fps issues with Ovale and using this script, can anyone else attest to this? I've noticed it the worst on heavy stacking fights like M Garothi and Varimathras. @Kestrel have you noticed this on M Vari?

I had this problem too. my fix edit Frame.lua file in Ovale\dist\Frame.lua

Find: line 52ish
local MIN_REFRESH_TIME = 0.05

I change mine to local MIN_REFRESH_TIME = 0.24

Gained about 20+ fps when in combat.

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Wed Feb 14, 2018 3:55 pm

Darkmod wrote:
grammarjew wrote:I'm having some pretty harsh fps issues with Ovale and using this script, can anyone else attest to this? I've noticed it the worst on heavy stacking fights like M Garothi and Varimathras. @Kestrel have you noticed this on M Vari?

I had this problem too. my fix edit Frame.lua file in Ovale\dist\Frame.lua

Find: line 52ish
local MIN_REFRESH_TIME = 0.05

I change mine to local MIN_REFRESH_TIME = 0.24

Gained about 20+ fps when in combat.
Basically you're just telling Ovale to update ~4 times per second rather than upto 20 times. Honestly it should probably be in the options.

Kestrel
Posts: 22
Joined: Thu Dec 16, 2010 12:32 pm

Re: 703 Ovale thread

Post by Kestrel » Wed Feb 14, 2018 5:27 pm

I was feeling a bit laggy last night in raid, but then others were having the same issue. Going to try the refresh change though, that's cool. Think I'll try .1 to start. Thanks for posting!

A random question for people - what lag tolerance setting do you use? Having trouble finding the sweet spot.

Added in the text=open, Shmoo. Here's a new vid. Still using same talents/gear as I will be using for M Vari.

https://youtu.be/kUNdDdaZeYE

Rip is not down for as long here, shows at one point where, at 5 CP it's suggesting another shred before it goes and suggests a finisher. Let it go a little longer too and at the end shows another pretty late Rip refresh.

Single target spec/gear:

https://youtu.be/RetSvnCTNsU

Ty for looking!

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Thu Feb 15, 2018 6:40 am

Honestly, the only thing I can see that could possibly be interfering with it is the TimeToDie stuff:

Code: Select all

    if { target.DebuffExpires(rip_debuff)
        or target.DebuffRemaining(rip_debuff) <= BaseDuration(rip_debuff) * 0.3
            and target.HealthPercent() > execute_percent()
        or target.DebuffRemaining(rip_debuff) <= BaseDuration(rip_debuff) * 0.85
            and { TFMultPred() * PersistentMultiplier(rip_debuff) > target.DebuffPersistentMultiplier(rip_debuff)
                or BuffPresent(tigers_fury_buff)
                    and BuffRemaining(tigers_fury_buff less 1.5)
                    and target.HealthPercent() > execute_percent()
                    and HasEquippedItem(behemoth_headdress) } }
        and { target.TimeToDie() > 4 * target.TickTime(rip_debuff) * Enemies() + target.DebuffRemaining(rip_debuff)
            or target.TimeToDie() > BaseDuration(rip_debuff) + target.DebuffRemaining(rip_debuff) }
        Spell_rip()
The 2nd and 3rd lines should be what causes the refresh during pandemic. The only time it would not happen is if the Time to Die lines (3rd or 2nd to last) detects the target is about to die (on single target 8 seconds + whatever rip has remaining). This is almost certainly what happened in your 2nd youtube video (RetSvnCTNsU). This can happen on target dummies pretty easily given our DPS and their health, but I'm puzzled as to how this happens on varimathras at 90% health...

Try commenting out/deleting the Time to Die lines (3rd and 2nd to last) and see if the problem still occurs. Alternatively you can take off a bunch of gear that won't affect your rotation to keep the target dummy from dying so fast.. Keep your weapon, legendaries and tier gear, but unequip most other off pieces to lower your damage output.

Kestrel
Posts: 22
Joined: Thu Dec 16, 2010 12:32 pm

Re: 703 Ovale thread

Post by Kestrel » Thu Feb 15, 2018 3:25 pm

Ok, I tried it again after removing gear as suggested. It's still happening. I think I noticed a trend though now that the dummy lasts longer. I think it's only happening when I have Tiger's Fury up. So maybe some interaction with Tiger's Fury/Behemoth when Behemoth extends the buff? I'm going to try testing without using Tiger's Fury at all after the opener, and then without Behemoth next.

Ok, it doesn't happen after the opener (during which I used tiger's fury) if I don't use Tiger's Fury though sometimes it seemed to suggest refreshing Rip way early, but i assume that's because of a proc/dmg boost that could be applied to it?

Still happening without Behemoth when Tiger's Fury is up.

Next up will test with Tiger's Fury multiplier prediction turned off. No Behemoth... It was still happening.

These aren't the most scientific of tests, and I have to head out for a bit. I can try some more tests later, but it seems like it's mainly happening when Tiger's Fury is up? Let me know if more videos of these scenarios would help.

Darkmod
Posts: 8
Joined: Wed Jun 14, 2017 2:29 pm

Re: 703 Ovale thread

Post by Darkmod » Thu Feb 15, 2018 4:47 pm

I have tracked Buffs and Debuffs within Ovales code I have seen debuffs/Buffs jump from 30s remaining to 5s and the reversal. I don't know how Ovale handles all the predictions hast and bla bla... I believe the BuffRemaining Function is buggy. I'm using a nasty hack within the BuffRemaining () function take it with a grain of salt but it seems to be working for me. Ovale\dist\conditions.lua. I override time remaining on buffs and debuffs.

Code: Select all

local function BuffRemaining(positionalParams, namedParams, state, atTime)
        local auraId, comparator, limit = positionalParams[1], positionalParams[2], positionalParams[3]
        local target, filter, mine = ParseCondition(positionalParams, namedParams, state)
        local aura = OvaleAura:GetAura(target, auraId, atTime, filter, mine)
	
        if aura then
			local gain, _, ending = aura.gain, aura.start, aura.ending
			
			-- UGLY CODE START ------------------------------- >>>>>>>>>>>>>>>>
				for i=1,40 do 
					local name2, _, _, _, _, duration2, expirationTime2, _, _, _, spellId2 = UnitBuff(target, i )
					local name, _, _, _, _, duration, expirationTime, _, _, _, spellId = UnitDebuff(target, i )
					if name == aura.name then 
						ending = expirationTime
					elseif name2 == aura.name then 
						ending = expirationTime2
					end
				end 
			-- UGLY CODE END ------------------------------- <<<<<<<<<<<<<<
			
            return TestValue(gain, INFINITY, 0, ending, -1, comparator, limit)
        end
        return Compare(0, comparator, limit)
    end
    OvaleCondition:RegisterCondition("buffremaining", false, BuffRemaining)
    OvaleCondition:RegisterCondition("debuffremaining", false, BuffRemaining)
    OvaleCondition:RegisterCondition("buffremains", false, BuffRemaining)
    OvaleCondition:RegisterCondition("debuffremains", false, BuffRemaining)
end

smotchie6
Posts: 23
Joined: Tue Nov 22, 2016 5:39 pm

Re: 703 Ovale thread

Post by smotchie6 » Thu Feb 15, 2018 6:16 pm

ShmooDude wrote:The 2nd and 3rd lines should be what causes the refresh during pandemic.

I tried this on a boss dummy with 1.6B hp and was still getting FB suggestions with the dummy at 90% hp and rip 2 seconds from falling

I also tried Darkmod's method in altering the ovale lua and this definitely worked, Rip uptime was much improved...
...but it would ALWAYS suggest refreshing Rip when it was only half done. Rip uptime was much better, but at the cost of a lot of FB's

grammarjew
Posts: 2
Joined: Mon Feb 12, 2018 12:55 am

Re: 703 Ovale thread

Post by grammarjew » Thu Feb 15, 2018 6:45 pm

ShmooDude wrote:
Darkmod wrote:
grammarjew wrote:I'm having some pretty harsh fps issues with Ovale and using this script, can anyone else attest to this? I've noticed it the worst on heavy stacking fights like M Garothi and Varimathras. @Kestrel have you noticed this on M Vari?

I had this problem too. my fix edit Frame.lua file in Ovale\dist\Frame.lua

Find: line 52ish
local MIN_REFRESH_TIME = 0.05

I change mine to local MIN_REFRESH_TIME = 0.24

Gained about 20+ fps when in combat.
Basically you're just telling Ovale to update ~4 times per second rather than upto 20 times. Honestly it should probably be in the options.
Another possibility here could be this error I get when logging in:

Code: Select all

Ovale: [2842] Division by 0 in { PowerCost(shred) + PowerCost(rake) - Energy() } / EnergyRegenRate() 
Is this because I'm not in cat form when I log in?

Darkmod
Posts: 8
Joined: Wed Jun 14, 2017 2:29 pm

Re: 703 Ovale thread

Post by Darkmod » Thu Feb 15, 2018 7:47 pm

smotchie6 wrote:
ShmooDude wrote:The 2nd and 3rd lines should be what causes the refresh during pandemic.
...but it would ALWAYS suggest refreshing Rip when it was only half done. Rip uptime was much better, but at the cost of a lot of FB's
I believe its refreshing early when below is true

Code: Select all

target.TimeToDie() > BaseDuration(rip_debuff) + target.DebuffRemaining(rip_debuff)
And I found the strange timing in BuffExpires() funcion.. you can try adding the same code too it

Code: Select all

local function BuffExpires(positionalParams, namedParams, state, atTime)
        local auraId, seconds = positionalParams[1], positionalParams[2]
        local target, filter, mine = ParseCondition(positionalParams, namedParams, state)
        local aura = OvaleAura:GetAura(target, auraId, atTime, filter, mine)
        if aura then
            local gain, _, ending = aura.gain, aura.start, aura.ending
            seconds = GetHastedTime(seconds, namedParams.haste, state)
         -- UGLY CODE START ------------------------------- >>>>>>>>>>>>>>>>
            for i=1,40 do
               local name2, _, _, _, _, duration2, expirationTime2, _, _, _, spellId2 = UnitBuff(target, i )
               local name, _, _, _, _, duration, expirationTime, _, _, _, spellId = UnitDebuff(target, i )
               if name == aura.name then
                  ending = expirationTime
               elseif name2 == aura.name then
                  ending = expirationTime2
               end
            end
         -- UGLY CODE END ------------------------------- <<<<<<<<<<<<<<

Darkmod
Posts: 8
Joined: Wed Jun 14, 2017 2:29 pm

Re: 703 Ovale thread

Post by Darkmod » Thu Feb 15, 2018 8:35 pm

I have a question about this.

Code: Select all

				AddFunction execute_percent
				{
					25 + 75 * TalentPoints(sabertooth_talent)
				}
25 + 75 = 100 * 0 = 0 -- no talent
25 + 75 = 100 * 1 = 100 -- talent

is this right? or does TalentPoints return > 1


i changed mine too

Code: Select all

				AddFunction execute_percent
				{
					25 + {75 * TalentPoints(sabertooth_talent)}
				}


ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Fri Feb 16, 2018 3:46 am

Ok, I can't replicate the bug because I fixed it like a month and a half ago and apparently neglected to include it in my pull request. :) I figured out that's what it was after you guys said there was funniness with rip's duration in Ovale. Also make sure you are using 7.3.9-alpha on top of the fix below as there's other changes that the script now relies on.

Ovale\dist\scripts\ovale_druid_spells.lua

Code: Select all

	SpellInfo(ferocious_bite combopoints=1 max_combopoints=5 energy=25 extra_energy=25 physical=1 stance=druid_cat_form)
	SpellRequire(ferocious_bite energy_percent 50=buff,berserk_cat_buff)
	SpellRequire(ferocious_bite energy_percent 50=buff,incarnation_king_of_the_jungle_buff)
	SpellAddBuff(ferocious_bite bloodtalons_buff=-1 talent=bloodtalons_talent)
	SpellAddTargetDebuff(ferocious_bite rip_debuff=refresh_keep_snapshot)
to

Code: Select all

	SpellInfo(ferocious_bite combopoints=1 max_combopoints=5 energy=25 max_energy=50 physical=1 stance=druid_cat_form)
	SpellRequire(ferocious_bite energy_percent 50=buff,berserk_cat_buff)
	SpellRequire(ferocious_bite energy_percent 50=buff,incarnation_king_of_the_jungle_buff)
	SpellAddBuff(ferocious_bite bloodtalons_buff=-1 talent=bloodtalons_talent)
	SpellAddTargetDebuff(ferocious_bite rip_debuff=refresh_keep_snapshot,target_health_pct,25)
	SpellAddTargetDebuff(ferocious_bite rip_debuff=refresh_keep_snapshot talent=sabertooth_talent)
Note the difference in the SpellAddTargetDebuff line(s). Basically on the first code snippet, Ovale thinks Ferocious Bite always refreshes Rip, and only after the numerical difference "times out" (aka Ovale figures out that the difference is not due to lag/travel time) does it fix it. That's why it shows up primarily during incarnation because you pull off ferocious bites so fast (apex procs also would cause huge problems). Also first line extra_energy=25 should now be max_energy=50 due to internal code changes I made to Ovale (although since I gave you guys a version that manually checks that extra energy you won't notice a difference on that part).
Darkmod wrote: 25 + 75 = 100 * 0 = 0 -- no talent
25 + 75 = 100 * 1 = 100 -- talent

is this right? or does TalentPoints return > 1
No, it follows arithmetic rules. Multiplication occurs before addition.
25 + 75 * 0 = 25 + 0 = 25 -- no talent
25 + 75 * 1 = 25 + 75 = 100 -- talent
smotchie6 wrote: ...but it would ALWAYS suggest refreshing Rip when it was only half done. Rip uptime was much better, but at the cost of a lot of FB's
Try it after doing the proper fix. There is a line in there that causes it to refresh Rip early at the tail end of a Tiger's Fury (<1.5 seconds remaining) with Behemoth's Headdress, but if it's ALWAYS doing it I suspect that Darkmod's fix is causing this to trigger excessively somehow.
grammarjew wrote:Is this because I'm not in cat form when I log in?
Basically, but I fixed it in 7.3.9-alpha so that energy regen has a default value of 10 instead of 0. Wouldn't have any performance impact anyhow as Ovale just changed the 0 value to 0.0001 or something internally so it wouldn't throw a lua error.
Darkmod wrote:I believe its refreshing early when below is true

Code: Select all

target.TimeToDie() > BaseDuration(rip_debuff) + target.DebuffRemaining(rip_debuff)
No, that's actually an exclusion condition, not inclusion. There's two. 8 * Number of active Enemies + Remaining on current Rip and 24 + Remaining on current Rip. If either of them evaluates to false, it won't use Rip. It's so you don't use Rip on something that's gonna only live a few ticks.
Last edited by ShmooDude on Fri Feb 16, 2018 3:54 am, edited 1 time in total.

zaskar1
Posts: 3
Joined: Fri Feb 16, 2018 3:29 am

Re: 703 Ovale thread

Post by zaskar1 » Fri Feb 16, 2018 3:47 am

Hello ShmooDude, hello everyone

maybe you can help me out. I wanna use my Simc Script in Ovale but i get several error if i compile the simc script in ovale. Which simc Version i have to use to generate in ovale the script for it? I use simc-735-01-win64 and the latest official Ovale Version from cursed.

Here the errors if i copy the whole simc script. i expect ist the whole Header of the Simc script...

ovaleast syntax error unexpected token "item_DB_Source" when parsing declaration; declaration keyword expected

next tokensn item_db_source = local/ bcpapi/ wowhead arget error = 0 iterations = 0 Default worldlag = 0.1 max_time = 300 vary_combat_length

ShmooDude
Exalted
Posts: 1046
Joined: Tue Feb 08, 2011 5:51 pm

Re: 703 Ovale thread

Post by ShmooDude » Fri Feb 16, 2018 4:00 am

zaskar1 wrote:Hello ShmooDude, hello everyone

maybe you can help me out. I wanna use my Simc Script in Ovale but i get several error if i compile the simc script in ovale. Which simc Version i have to use to generate in ovale the script for it? I use simc-735-01-win64 and the latest official Ovale Version from cursed.

Here the errors if i copy the whole simc script. i expect ist the whole Header of the Simc script...

ovaleast syntax error unexpected token "item_DB_Source" when parsing declaration; declaration keyword expected

next tokensn item_db_source = local/ bcpapi/ wowhead arget error = 0 iterations = 0 Default worldlag = 0.1 max_time = 300 vary_combat_length
If you're using the 7.3.9-alpha, try either reverting to the previous version of Ovale or fix your simulationcraft.lua based on https://github.com/ShmooDude/Ovale/comm ... 41e28ac47d

I accidentally broke it and haven't submitted the fix yet.

If you're not using the alpha, then I'm not really sure, pastebin me the simcraft script you're trying to use.

Post Reply