lotrointerface.com
Search Downloads


Go Back   LoTROInterface > LotRO Stand-Alone Plugins > Action Bars & Main Bar


Post A Reply
Author Comments Comment Options
Unread 12-18-2020, 04:33 PM  
Jethpriel
The Wary

Forum posts: 0
File comments: 73
Uploads: 0
Save target / target guide

Heya
I wonder if you have a guide how to use Save Target / target.
I have no idea how to set this up.

For examble as lm if I could save a sertain target on which I want to use a specific skill.

Could also be save tank as target to use antistun on same target all the time.

A way, not having to find the target everytime.

I hop you know what I mean.
A bit difficult for me to explain.

Or is it actually for something else?

Last edited by Jethpriel : 12-18-2020 at 04:37 PM.
Jethpriel is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-28-2020, 06:32 AM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Target morale checks

I could be wrong, but it appears that frequent checks for target health are causing significant performance issues. I added a check condition to my hunter's "Burn Hot" buff in a sequence that checks target hp, and only triggering when it is above certain value (so as to be used only on boss mobs), and immediately the game started stuttering. When I removed the condition and reloaded, things went back to normal. I think same happened with my minstrel, where I attempted to check tank's health and heal if it was below some % value - also had to remove it due to performance impact.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-15-2020, 04:44 PM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Re: Plugin fails to load

Probably would be good idea to make backups of this file... I did end up with plugin putting Lua scripts in some places where effect was not immediately recognized (not observed yet but present in rotation conditionals).

Here's another thing - I am 2-boxing, with plugin active on both characters. If both instances attempt to write to a single file at the same time, bad things can happen. I dont know if internally the plugin is resolving concrurrent writes (I would think not, as boxing is an edge case). But in my case everything was fine combat-wise throughout the day, then I signed off simultaneously on both accounts via /exit, and after that had an error when I logged in again to play.

Last edited by akourbat : 11-15-2020 at 05:09 PM.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-15-2020, 03:32 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Re: Plugin fails to load

Quote:
Originally Posted by akourbat
UPDATE: I deleted "Thurallor_GameInfo.plugindata" file from "AllServers" directory and it is now working again. I think it got corrupted when game exited with /exit command. My understanding this file is recreated by plugin after scanning character's abilities (could be wrong, please correct me if so).
That file gets built automatically. The main thing it does it maintain a list of effects (buffs and debuffs) in the game by observing the effects on your character. The plugin uses that list to populate pulldown menus in the Sequence Editor, e.g. for "Effect is present" conditional slots. Those lists will now have to be rebuilt. If you want to add a specific effect, you need to do whatever is necessary to make the effect appear on your character while the plugin is running.

It is concerning that the "/exit" command corrupted the .plugindata file. If that's a known bug, I wasn't aware of it.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-15-2020, 12:26 PM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Plugin fails to load

Help, I am now getting this on all my characters - what should I do? I tried to re-install plugin but it did not help (link has a jpg with chat messages shown in-game -> https://1drv.ms/u/s!AkUfQANqQ5Oyw2tc...B-Lsn?e=I3F5bo

Last time I exited the game with /exit command, but I often do that and there were no issues. There's few lines, if you are unable to open the jpg -

Online/PluginData/akourbat66/AllServers/Thurallor_GameInfo.plugindata:798: unfinished string near '",'

...gs Online\Plugins\Thurallor\Common\Utils\Watcher.lua: 509: Unable to parse file!

...s Online\Plugins\Thurallor\SequenceBars\__init__.lua :18: Failed to import package "Thurallor.Common.Utils.Watcher".

UPDATE: I deleted "Thurallor_GameInfo.plugindata" file from "AllServers" directory and it is now working again. I think it got corrupted when game exited with /exit command. My understanding this file is recreated by plugin after scanning character's abilities (could be wrong, please correct me if so).

Last edited by akourbat : 11-15-2020 at 12:54 PM.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-13-2020, 05:20 AM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Re; Stack Overflow

Yes, each nested "if else" clause is a separate simple sequence with its own "if else", I thought that was the preferred way of structuring it to avoid a mess of "{{{}}}"s in one long sequence. "Eval" events were added after I got the overflow error and is what appeared to solve it for hunter.

I'll see about "unlink" option you suggest.

Meanwhile it occurred to me that maybe I am overcomplicating things in my rotation. The primary goal for me was having something one calls a "priority casting", where an ability with higher priority is always cast next when its conditions evaluate to "true". Normally. you place such abilities in the order of priority starting from the beginning of the rotation, highest priority being first and so on. I attempted to structure this via nested "if else" thus forcing the entire rotation to get re-evaluated each time it yields a result. Now, I am thinking about having a linear structure with "if thens" and just forcing it to go back to beginning after each action (like with "Eval" event for hunter). There'd still be a need for a few "if else" (e.g. when dealing with hunter focus condition), but I think that could at least eliminate deep nested tree. I'll post back when I test this idea. At least this could also help to cut down on API calls, as there'd be no need for some complex LUA condition checks (like "if focus >9 AND skill X is off cooldown"), and rather having outer "if" checking focus > 9, and inner "if" dealing with cooldown, so that inner "if" check can be skipped if outer is false, thus presumably lessening pressure on API (that is unless complex LUA calls also skip second check if first results in "false").

Update: I reworked the sequence for my hunter, essentially getting rid of all "if-else" clauses, and only having "if-then". I trigger the reset via user events after each skill, so that the rotation always resumes from the beginning and works its way through "if" clauses linearly, finding first skill that is available, triggering it, and then resetting back to the beginning again, and so on. No memory issues observed, and I am pretty happy how the priority system works now. Thanks.

Last edited by akourbat : 11-13-2020 at 01:37 PM.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-12-2020, 10:06 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Re: Re Stack overlow

Quote:
I was fiddling with my Minstrel the other day and ran into memory issues too, when I went to around 8th degree of nested-ness with "is else". The game started seizing up and turned into a slide-show, however I have not seen "stack overflow" messages this time. I dunno, maybe it is just too many API calls on each click, especially when you are near the bottom of the logical tree, and the engine does not like it.... I guess I should flatten my rotations a bit.
I looked at your hunter setup and it seems you have a deeply-nested "include tree", on top of the nested conditionals. To help isolate the problem, please try eliminating the includes to see if it improves it. Then I'll know which direction to proceed in debugging.
1. Make a backup copy of your bars.
2. In each instance of including another bar, click the "Unlink" button to copy the contents of the included bar.
3. Try it and let me know what happens.

By the way, the .plugindata you sent me for your hunter has the "EVAL" user events being generated in many places. Is that the version that caused stack overflow? (In a message below, you indicated that you solved the stack overflow by adding this event, which triggers a reset of the bar(s).)

Last edited by Thurallor : 11-12-2020 at 10:10 PM.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-12-2020, 09:13 AM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Re Stack overlow

I was fiddling with my Minstrel the other day and ran into memory issues too, when I went to around 8th degree of nested-ness with "is else". The game started seizing up and turned into a slide-show, however I have not seen "stack overflow" messages this time. I dunno, maybe it is just too many API calls on each click, especially when you are near the bottom of the logical tree, and the engine does not like it.... I guess I should flatten my rotations a bit.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 10-31-2020, 03:07 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Re: Re Stack overlow

Quote:
Originally Posted by akourbat
I sent the file as suggested. There was quite a bit of experimentation going on on that day, so I am not sure there is a easy way to single out which rotation was blowing up, but there we are.

My thought was if you have nested if-elses and nothing else in your rotation, i.e. the rotation on execution is supposed to end up yielding a single ability on each pass-through, then it somehow causes memory leak, i.e. not resetting when you click that single ability and the system keeps the original frame in memory, and keeps pushing new frames with each click. When I added events resetting the whole sequence after each ability used in if-else tree, the issue went away. Just my two cents.
Thanks, I'll take a look.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 10-31-2020, 05:37 AM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Re Stack overlow

I sent the file as suggested. There was quite a bit of experimentation going on on that day, so I am not sure there is a easy way to single out which rotation was blowing up, but there we are.

My thought was if you have nested if-elses and nothing else in your rotation, i.e. the rotation on execution is supposed to end up yielding a single ability on each pass-through, then it somehow causes memory leak, i.e. not resetting when you click that single ability and the system keeps the original frame in memory, and keeps pushing new frames with each click. When I added events resetting the whole sequence after each ability used in if-else tree, the issue went away. Just my two cents.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 10-30-2020, 02:13 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Re: Re; Stack Overflow

Quote:
Originally Posted by akourbat
I did some re-shufflings in the rotation and settled on using user events within the sequence resetting the rotation after each skill that has influence on generating/consuming hunter's focus (which is the main predicate used throughout the if-else tree). Before that I tried to use small delays instead of user events, that's when I got hit with stack overflow, but could be other things too. Sadly I did not save the problematic sequence, so the debug opportunity is lost... Current rotation appears to be working quite well too, as I cut down its depth to 7 and moved some stuff to their own bars, so I switch over to them when I need (user triggered via events), like AoE, Cure etc.
I'm glad it's working for you. SequenceBars automatically backs up its data, though. You should have backup files for the past 7 days, such as
Documents/The Lord of the Rings Online/PluginData/<account>/<server>/<character>/SequenceBars_backupn.plugindata
where n is a number between 1 and 7. So if you did want me to debug the issue, you could send me your backup file from yesterday. It's up to you.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 10-30-2020, 06:43 AM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Re; Stack Overflow

I did some re-shufflings in the rotation and settled on using user events within the sequence resetting the rotation after each skill that has influence on generating/consuming hunter's focus (which is the main predicate used throughout the if-else tree). Before that I tried to use small delays instead of user events, that's when I got hit with stack overflow, but could be other things too. Sadly I did not save the problematic sequence, so the debug opportunity is lost... Current rotation appears to be working quite well too, as I cut down its depth to 7 and moved some stuff to their own bars, so I switch over to them when I need (user triggered via events), like AoE, Cure etc.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 10-29-2020, 02:37 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Re: Stack Overflow!

Quote:
Originally Posted by akourbat
Whoa "...s Online\Plugins\Thurallor\Common\Utils\Utils_11.lua :61: stack overflow"!

I am trying a deep nested sequence of "if-else's" and here's what I get . The game kinda reacts to it negatively too bu micro-freezing. Any idea what my cause it? So it goes like "if hunter focus = this? -> do this, else do subsequence "A" which basically is also "if-else" but testing for different condition, and so on, about 10 degree of deepness all-in all.
Ha, nice going, you broke it.

Just kidding. 10 levels of nesting shouldn't be anywhere near enough to overflow the stack. That normally indicates infinite recursion, which shouldn't be possible, so there's a bug somewhere.

Please send me your .plugindata file at [email protected], and if you can, describe the exact scenario of how I can reproduce the problem.

The .plugindata file is usually at
Documents/The Lord of the Rings Online/PluginData/<account>/<server>/<character>/SequenceBars.plugindata
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 10-29-2020, 10:24 AM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Stack Overflow!

Whoa "...s Online\Plugins\Thurallor\Common\Utils\Utils_11.lua :61: stack overflow"!

I am trying a deep nested sequence of "if-else's" and here's what I get . The game kinda reacts to it negatively too bu micro-freezing. Any idea what my cause it? So it goes like "if hunter focus = this? -> do this, else do subsequence "A" which basically is also "if-else" but testing for different condition, and so on, about 10 degree of deepness all-in all.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 10-26-2020, 10:26 AM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Re: Re: Morale checks

Quote:
Originally Posted by Thurallor
Your guess is as good as mine. My plugin merely exposes the IsUsable() function that is built into the API. Sometimes it works; sometimes it doesn't. It isn't documented anywhere, so we don't even really know what it is supposed to do. Use at your own risk.
I see. Yeah, I was lulled by IsUsable() because for the most part it does what I assumed it was supposed to do. For example any other response skill aside from "Catch a Breath" work as expected when enclosed in "if usable". I figure just need more open world testing to verify my assumptions when building rotation chains. I dunno, maybe having a health check prevents any other api calls within the same "click" and is intended feature.

I also wondered if "usable" will return false if the skill is lit, but has a red dot on it, indicating that you could be at wrong distance or face in the wrong direction, but this appears not to be the case, unfortunately. Could be useful in some scenarios.

Regardless - super useful plugin. thanks!

Last edited by akourbat : 10-26-2020 at 10:33 AM.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Post A Reply

 
Category Jump:
Search this Category:
 

All times are GMT -5. The time now is 07:29 AM.


Our Network
EQInterface | EQ2Interface | Minion | WoWInterface | ESOUI | LoTROInterface | MMOUI | Swtorui