Leafkiller's MoP Feral/Guardian Ovale Script
Moderator: Forum Administrators
Re: Leafkiller's MoP Feral/Guardian Ovale Script
How much does the script support FoN?
I hadn't tried the talent before so I hit up some target dummies to get a feel for it. The script suggested treants only once -- before I actually started attacking. I looked for them during berserk, during TF, while trinkets were procced (including RoR), etc, but they weren't suggested again. I had FoN and DoC as talents.
I hadn't tried the talent before so I hit up some target dummies to get a feel for it. The script suggested treants only once -- before I actually started attacking. I looked for them during berserk, during TF, while trinkets were procced (including RoR), etc, but they weren't suggested again. I had FoN and DoC as talents.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Is normal the 8 to 9 mb of memory usage of ovale with leafkiller script?
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Yes I noticed too, and during a fight I get a LUA error "script ran too long"
Re: Leafkiller's MoP Feral/Guardian Ovale Script
I get lots of errors with Ovale
LUA ones. I'm going to update it now but hold little hope..
Is there a reason its also telling me to clip strong rakes with weaker ones ?

LUA ones. I'm going to update it now but hold little hope..
Is there a reason its also telling me to clip strong rakes with weaker ones ?
Re: Leafkiller's MoP Feral/Guardian Ovale Script
no 1 else getting endless errors LUA with this ??? Its driving me potty tbh
Re: Leafkiller's MoP Feral/Guardian Ovale Script
The "script ran too long" error is pretty much unavoidable due to the nature of ovale and the complexities of the feral script. It doesn't hurt anything though. All it means is that Blizzard stopped ovale from taking too much CPU time with an update (I believe). Simply turn off lua errors or get an addon to catch them (Bugsack). If you're getting any other kind of error, copy/paste it here.
There was a bug with the rake code that will be put into nerien's soon or you can update manually here (/ovale code; copy to custom script; paste over the old script (ctrl+a then ctrl+v))
Memory usage of that amount is fairly typical for ovale as its keeping track of a lot of things. Honestly though memory usage is of little consequence unless you're just short on memory, there's many other things (such as cpu usage, which ovale is kind of heavy on so keep it in mind if you have a slow computer) to worry about before that. I've had 200MB+ of addons before (between recount, tradeskillmaster and everything else) with no problems. Jeshu is working on getting the memory usage down though (right now I think the storing of auras unnecessarily is his next target) as it used to be much worse. Honestly, as I said I'm not particularly worried about it.
FoN support isn't really working properly right now, I think aggixx is working on it but I don't have an eta.
There was a bug with the rake code that will be put into nerien's soon or you can update manually here (/ovale code; copy to custom script; paste over the old script (ctrl+a then ctrl+v))
Memory usage of that amount is fairly typical for ovale as its keeping track of a lot of things. Honestly though memory usage is of little consequence unless you're just short on memory, there's many other things (such as cpu usage, which ovale is kind of heavy on so keep it in mind if you have a slow computer) to worry about before that. I've had 200MB+ of addons before (between recount, tradeskillmaster and everything else) with no problems. Jeshu is working on getting the memory usage down though (right now I think the storing of auras unnecessarily is his next target) as it used to be much worse. Honestly, as I said I'm not particularly worried about it.
FoN support isn't really working properly right now, I think aggixx is working on it but I don't have an eta.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
When I try and put in that custom script it locks up my game
Guess I'll have to wait unless theres a way of doing it outside of game?

Re: Leafkiller's MoP Feral/Guardian Ovale Script
It does that to me as well but it recovers. Paste it in and walk away for a minute. Literally - 60 seconds.Katjia wrote:When I try and put in that custom script it locks up my gameGuess I'll have to wait unless theres a way of doing it outside of game?
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Yes, given the length of the Leafkiller/aggixx/ShmooDude script, it takes a while for the UI to accept the copy and paste. Time it takes for Ovale to compile it is much, much shorter (should fit in the ~300ms execution window allowed by WoW).Wellwow wrote:It does that to me as well but it recovers. Paste it in and walk away for a minute. Literally - 60 seconds.Katjia wrote:When I try and put in that custom script it locks up my gameGuess I'll have to wait unless theres a way of doing it outside of game?
Re: Leafkiller's MoP Feral/Guardian Ovale Script
@ShmooDude: You always seem to catch me in the middle of a raid online, so I forget to respond during downtimes 
Regarding your discovery about certain constructs being more efficient, e.g., "ComboPoints(less 4)" is more efficient than "ComboPoints() < 4", that's the nature of the way that the parse tree is evaluated. "ComboPoints(less 4)" is a single node that takes effectively one function call to evaluate. "ComboPoints() < 4" is three nodes ("<" node with a left child of "ComboPoints()" and a right child of "4") that effectively take three function calls to evaluate. This was something that I told Leafkiller a long time ago on one of these Ovale Script threads on TFD, so it's something that's known and out there, though probably not very widely-known.
Eventually, I would like to give Ovale the full compiler treatment with lexer -> parser -> optimizer, with the last step to try to compress the parse tree into something smaller. Or pie-in-the-sky, follow up with a code-gen phase that spits out actual Lua code into a string that could be executed directly by the WoW client instead of walking the parse tree. All this is future development -- for now, I'm trying to fix more basic things, e.g., the timespan stuff I mentioned that was related to your ticket 298.

Regarding your discovery about certain constructs being more efficient, e.g., "ComboPoints(less 4)" is more efficient than "ComboPoints() < 4", that's the nature of the way that the parse tree is evaluated. "ComboPoints(less 4)" is a single node that takes effectively one function call to evaluate. "ComboPoints() < 4" is three nodes ("<" node with a left child of "ComboPoints()" and a right child of "4") that effectively take three function calls to evaluate. This was something that I told Leafkiller a long time ago on one of these Ovale Script threads on TFD, so it's something that's known and out there, though probably not very widely-known.
Eventually, I would like to give Ovale the full compiler treatment with lexer -> parser -> optimizer, with the last step to try to compress the parse tree into something smaller. Or pie-in-the-sky, follow up with a code-gen phase that spits out actual Lua code into a string that could be executed directly by the WoW client instead of walking the parse tree. All this is future development -- for now, I'm trying to fix more basic things, e.g., the timespan stuff I mentioned that was related to your ticket 298.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
It works just fine if you're running rune (or renataki's) but you have to have "Left: Alternate Predictive" on to see it. Once I get the logic how it should be for all the trinkets (which I think requires some additions to Ovale to pull off) I'll make sure there's a right side option for it as well.ShmooDude wrote: FoN support isn't really working properly right now, I think aggixx is working on it but I don't have an eta.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
1st post here...
I was wondering whether having other addons like ElvUI conflicts with Ovale+scripts?
I am using ElvUI and BigWigs along with Ovale + the newest feral script; during actual raid combat I get a ton of global (lua) errors...
Sometimes the rotation just gets stuck midway and fixes itself after awhile.
Only seems to happen during combat; not on target dummies...
Any idea what's going on?
I was wondering whether having other addons like ElvUI conflicts with Ovale+scripts?
I am using ElvUI and BigWigs along with Ovale + the newest feral script; during actual raid combat I get a ton of global (lua) errors...
Sometimes the rotation just gets stuck midway and fixes itself after awhile.
Only seems to happen during combat; not on target dummies...
Any idea what's going on?
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Is there a preferred version of Ovale that we should be using? Is current always best?
Thanks in advance!
Thanks in advance!
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Match the version to whatever is in the version listed at the top of the leafkiller script:
# 10/03/13 version 5.4.2.1
is matched to the 5.4.2 Ovale
# 10/03/13 version 5.4.2.1
is matched to the 5.4.2 Ovale
That doesn't really tell me much, what's the error? Some LUA errors won't interfere with things running properly and others will. A lot of the time you can simply either turn off lua errors or use an addon to catch them (bugsack). As far as the rotation getting stuck, its happened once or twice but I've no idea why and haven't seen it in ages.kcf912 wrote:1st post here...
I was wondering whether having other addons like ElvUI conflicts with Ovale+scripts?
I am using ElvUI and BigWigs along with Ovale + the newest feral script; during actual raid combat I get a ton of global (lua) errors...
Sometimes the rotation just gets stuck midway and fixes itself after awhile.
Only seems to happen during combat; not on target dummies...
Any idea what's going on?
Last edited by ShmooDude on Fri Oct 11, 2013 9:06 pm, edited 1 time in total.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
OH fantastic. I was not aware that this was listed! Thanks again!
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Ok so I used swatter to check what was going wrong with the script... i.e. why it was getting stuck.
i got 3 globals:
1
Date: 2013-10-12 14:17:11
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Ovale\OvaleCompile.lua line 563:
script ran too long
2
Date: 2013-10-12 14:17:11
ID: 2
Error occured in: Global
Count: 2
Message: [string "safecall Dispatcher[1]"] line 13:
script ran too long
3
Date: 2013-10-12 14:17:11
ID: 3
Error occured in: Global
Count: ∞
Message: ..\AddOns\Ovale\OvaleFrame.lua line 222:
attempt to index field 'params' (a nil value)
Note: I did this with only the following addons
Swatter, v4.4.0 (<%codename%>)
BigWigs, v4.391
GTFO, v4.24.3
NerienOvaleScripts, v5.4.1
Ovale, v5.4.2
Skada, v1.4-13
SkadaDamage, v1.0
SkadaHealing, v1.0
SlideBar, v4.4.0
i got 3 globals:
1
Date: 2013-10-12 14:17:11
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Ovale\OvaleCompile.lua line 563:
script ran too long
2
Date: 2013-10-12 14:17:11
ID: 2
Error occured in: Global
Count: 2
Message: [string "safecall Dispatcher[1]"] line 13:
script ran too long
3
Date: 2013-10-12 14:17:11
ID: 3
Error occured in: Global
Count: ∞
Message: ..\AddOns\Ovale\OvaleFrame.lua line 222:
attempt to index field 'params' (a nil value)
Note: I did this with only the following addons
Swatter, v4.4.0 (<%codename%>)
BigWigs, v4.391
GTFO, v4.24.3
NerienOvaleScripts, v5.4.1
Ovale, v5.4.2
Skada, v1.4-13
SkadaDamage, v1.0
SkadaHealing, v1.0
SlideBar, v4.4.0
Re: Leafkiller's MoP Feral/Guardian Ovale Script
First two happen occasionally, its just because blizzard caps execution time at 300 ms per frame which happens occasionally with a script as complex as this. You can pretty much ignore them.
Looks like the 3rd one is your problem and I'm not sure why its doing that but I highly doubt its anything to do with conflicts of other addons as I've run all those except sidebar and swatter.
Looks like the 3rd one is your problem and I'm not sure why its doing that but I highly doubt its anything to do with conflicts of other addons as I've run all those except sidebar and swatter.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Are Tooth and Claw procs tracked anywhere? I did a search and I know support was added last December but it doesn't seem to be working now.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Currently only on Left: Small Rage Usage Box (Left: Small Predictive Box in cat form). If you're using an older version (new version should be up tonight), its called Alternate Predictive BoxOiysters wrote:Are Tooth and Claw procs tracked anywhere? I did a search and I know support was added last December but it doesn't seem to be working now.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Thank you. This is an absolutely excellent piece of work!ShmooDude wrote:Currently only on Left: Small Rage Usage Box (Left: Small Predictive Box in cat form). If you're using an older version (new version should be up tonight), its called Alternate Predictive Box
Re: Leafkiller's MoP Feral/Guardian Ovale Script
I was looking at the Leafkiller script and I noticed a small change that could increase performance. Here is a small portion of the script defining static variables" as user-defined functions:
Instead of the above, you can use Define() to do a straight textual substitution in the script. Think of "Define(key value)" as something like "#define key value" in C. You can replace the above with:
This allows for you to write clear, descriptive code using the names, but have Ovale directly substitute the actual values in the script during compilation. This saves an extra function call for every time one of these "static variables" is accessed.
Code: Select all
AddFunction HeartOfTheWildAgiModifier { 1.06 }
AddFunction LeatherSpecAgiModifier { 1.05 }
AddFunction StatsBuffBonus { 0.05 }
Code: Select all
Define(HeartOfTheWildAgiModifier 1.06)
Define(LeatherSpecAgiModifier 1.05)
Define(StatsBuffBonus 0.05)
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Except currently defines can't take decimals, though I'm pretty sure that'd be an easy fix in the compiler. That had been what I was going to go with initially but since it didn't appear to work (I think I used a decimal number initially which just plain didn't work) I went with functions.Jeshu wrote:I was looking at the Leafkiller script and I noticed a small change that could increase performance. Here is a small portion of the script defining static variables" as user-defined functions:Instead of the above, you can use Define() to do a straight textual substitution in the script. Think of "Define(key value)" as something like "#define key value" in C. You can replace the above with:Code: Select all
AddFunction HeartOfTheWildAgiModifier { 1.06 } AddFunction LeatherSpecAgiModifier { 1.05 } AddFunction StatsBuffBonus { 0.05 }
This allows for you to write clear, descriptive code using the names, but have Ovale directly substitute the actual values in the script during compilation. This saves an extra function call for every time one of these "static variables" is accessed.Code: Select all
Define(HeartOfTheWildAgiModifier 1.06) Define(LeatherSpecAgiModifier 1.05) Define(StatsBuffBonus 0.05)
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Yes, that's an easy compiler fix that I'll roll into the next release. Seeing some performance improvement in this script would be a net win.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Error #3 happens because OvaleCompile couldn't finish compiling the script in time (error #1), so it returns an incomplete node table, which causes error #3 trying to reference a property that's not in the incomplete table.ShmooDude wrote:First two happen occasionally, its just because blizzard caps execution time at 300 ms per frame which happens occasionally with a script as complex as this. You can pretty much ignore them.
Looks like the 3rd one is your problem and I'm not sure why its doing that but I highly doubt its anything to do with conflicts of other addons as I've run all those except sidebar and swatter.
You can ignore that error.
Re: Leafkiller's MoP Feral/Guardian Ovale Script
Having some issues with the guardian portion of the script with Ovale 5.4.3beta, posting here for Nerien's reference:
Had some compile errors with the current live script, changing
on line 1666 to
resolved the issue. I suspect this is an issue with the script not Ovale.
But after fixing that issue, I'm getting a script crash & LUA error:
that seems to originate from BuffPresent(INCARNATION_BEAR) in
on line 1653.
Had some compile errors with the current live script, changing
Code: Select all
if target.DebuffPresent(THRASH_BEAR 6) FaerieFire()
Code: Select all
if target.DebuffPresent(THRASH_BEAR more 6) FaerieFire()
But after fixing that issue, I'm getting a script crash & LUA error:
Code: Select all
Message: Interface\AddOns\Ovale\OvaleCondition.lua:1041: attempt to perform arithmetic on local 'timeBefore' (a string value)
Time: 10/18/13 21:09:15
Count: 2264
Stack: [string "*:OnLoad"]:6: in function <[string "*:OnLoad"]:1>
Interface\AddOns\Auctionator\AtrErrorInspector.lua:106: in function <Interface\AddOns\Auctionator\AtrErrorInspector.lua:51>
[C]: ?
Interface\AddOns\Ovale\OvaleCondition.lua:1041: in function `condition'
Interface\AddOns\Ovale\OvaleBestAction.lua:352: in function <Interface\AddOns\Ovale\OvaleBestAction.lua:345>
(tail call): ?
Interface\AddOns\Ovale\OvaleBestAction.lua:684: in function `ComputeBool'
Interface\AddOns\Ovale\OvaleBestAction.lua:465: in function <Interface\AddOns\Ovale\OvaleBestAction.lua:461>
(tail call): ?
Interface\AddOns\Ovale\OvaleBestAction.lua:381: in function <Interface\AddOns\Ovale\OvaleBestAction.lua:370>
(tail call): ?
Interface\AddOns\Ovale\OvaleBestAction.lua:337: in function <Interface\AddOns\Ovale\OvaleBestAction.lua:333>
(tail call): ?
Interface\AddOns\Ovale\OvaleBestAction.lua:381: in function <Interface\AddOns\Ovale\OvaleBestAction.lua:370>
(tail call): ?
Interface\AddOns\Ovale\OvaleFrame.lua:185: in function `OnUpdate'
Interface\AddOns\Ovale\OvaleFrame.lua:83: in function <Interface\AddOns\Ovale\OvaleFrame.lua:82>
Locals: msg = nil
self = <unnamed> {
0 = <userdata>
origErrorHandler = <function> defined Interface\FrameXML\BasicControls.xml:<Scripts>:4
errorHandler = <function> defined @Interface\AddOns\TradeSkillMaster\Util\ErrorHandler.lua:223
handler = <function> defined *:OnLoad:1
}
Code: Select all
if not target.IsAggroed() and BuffPresent(INCARNATION_BEAR) and target.DebuffRemains(THRASH_BEAR less 2) Spell(THRASH_BEAR)