lotrointerface.com
Search Downloads


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


Post A Reply
Author Comments Comment Options
Unread 11-24-2022, 12:31 AM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Wildcard, I am currently away from home during Thanksgiving, but I will try to isolate your issue when I get back.

Akourbat, the skills database has now been updated. Please let me know of any remaining problems that you find.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-23-2022, 09:45 PM  
WildCard
The Wary
Interface Author - Click to view interfaces

Forum posts: 3
File comments: 4
Uploads: 1
Curable Effect Issue

So I've been having a somewhat annoying issue with one of my bars not going away when it should (but not all of the time).

I have a continuous run bar that basically looks at curable effects (IF/ELSE/IF... for all fear, disease, poison, wound). If a curable effect is present, it triggers a custom event to show a CURE bar, otherwise sends another event to hide it.

It also has a separate check for health level, and sends events to show or hide the HEALTH bar.

However, sometimes (it seems like a race condition), the CURE bar will not go away and I have to unload SB, wait a few seconds for the apartment to tear down, then load SB and all is well.

Unfortunately, this is most likely to happen during busy fights with lots of things happening (hence race condition) and I rely on the visibility of the CURE bar to let me know I need to pot something. But if it stays visible, I end up wasting skills/pots and don't have them ready when I actually do need it.

I've been going through the plugin code and I've narrowed it down to fear (at least, it seems that way most of the time). I added some script logging entries ("+" on AddPlayerEffect, "-" on RemovePlayerEffect) and captured this:

Code:
44284647.653096: + True Face of Fear - Category: 64 - Curable: true
...
44284650.342745: - True Face of Fear - Category: 64 - Curable: true
So I know the event is firing fine. I made some functions to print out current and cached player effects, and those are generally in-sync, but when this situation presents itself:

Code:
Thurallor.Utils.Watcher.playerEffectsObject.activeCategories[64] == 0
while:
Thurallor.Utils.Watcher.playerEffectsObject.activeCurableCategories[64] == 1
So it thinks I still have an active, curable fear effect which was already removed.

Nothing is jumping out at me in the code, unless it's some race condition which won't stand out. I've made some methods to debug print as well as clear all activeCurableCategories as a workaround, since it's much easier to do that than a full reload - but I'd like to have this permanently fixed.

I'll keep poking around in the code as well.

Last edited by WildCard : 11-23-2022 at 09:48 PM.
WildCard is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-21-2022, 11:04 PM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Re: Re: Re: Re: Minstrel - Anthem of the Free Peoples

Quote:
Originally Posted by Thurallor
I would not anticipate seeing any such errors in your "If" scripts, unless you're doing something a lot more advanced than what we previously discussed.

No, my LUA scripts are simple one-liners setting a variable to boolean value and returning it in the "Ifs" as a check condition. So likely something else was causing it then. I will post exact error message if I encounter it again. Thx for clarification.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-21-2022, 08:16 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Re: Re: Re: Minstrel - Anthem of the Free Peoples

Quote:
Originally Posted by akourbat
(1) If I set a variable via user event (LUA column) to be evaluated by some "If" statement in a sequence, when I launch game clients and before fist use of event, I'd think variable doesn't exist yet, and I believe I saw some chat error messages from the plugin, complaining about having to deal with "nil" value. Unfortunately I don't have a screen. Once it's been set once (to true or false), the errors appear to go away. Is this something I should worry about, or LUA is fine dealing with undefined variables (like not throwing exceptions of something)?
As far as Lua's boolean logic is concerned, a value of nil is the same as false. So I would not anticipate seeing any such errors in your "If" scripts, unless you're doing something a lot more advanced than what we previously discussed. If you see error messages in the chat log, please note the circumstances and exact error message the next time it occurs, so I can debug it.

If one of your scripts does have an error, the plugin should gracefully handle it. The worst that should happen is that you'll see an error message in the chat window, and the script will return nil (false).

Quote:
Originally Posted by akourbat
(2) There are some "system" events the plugin makes use of - like change of target or end of combat etc. Is it possible to list them also in the event table and allow to assign LUA statements when they fire? Or this is allowed only for user-defined events? Mostly interested in "target changed" event, to manage dots. For now I am using the structure you proposed some weeks ago (extra bar watching for the target changed, and setting the LUA variable on reset).
I'll look into it. If it's not too much work, I'll add it.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-21-2022, 12:42 PM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Re: Re: Minstrel - Anthem of the Free Peoples

Quote:
Originally Posted by Thurallor
Yeah, what a PITA
Indeed. Hopefully they will not often make such complete reworks of skills.

Couple of other questions regarding new user event system:

(1) If I set a variable via user event (LUA column) to be evaluated by some "If" statement in a sequence, when I launch game clients and before fist use of event, I'd think variable doesn't exist yet, and I believe I saw some chat error messages from the plugin, complaining about having to deal with "nil" value. Unfortunately I don't have a screen. Once it's been set once (to true or false), the errors appear to go away. Is this something I should worry about, or LUA is fine dealing with undefined variables (like not throwing exceptions of something)?

(2) There are some "system" events the plugin makes use of - like change of target or end of combat etc. Is it possible to list them also in the event table and allow to assign LUA statements when they fire? Or this is allowed only for user-defined events? Mostly interested in "target changed" event, to manage dots. For now I am using the structure you proposed some weeks ago (extra bar watching for the target changed, and setting the LUA variable on reset).

Last edited by akourbat : 11-21-2022 at 12:43 PM.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-20-2022, 04:31 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Re: Minstrel - Anthem of the Free Peoples

Quote:
Originally Posted by akourbat
Hi, one of the anthems on minstrel - "Anthem of the Free Peoples" - appears to be missing the usual "on click/when executed" options when slotted on the bar. All the slot has is "Require Target". This sometimes gets it stuck, maybe it has no info to move on, or some such. I surrounded it with "re-evaluate continuously" but it does not help either.



Also, another of the new anthems - "Greater Anthem II - War", although has full options, but appears to ignore "when executed", both without and with "secondary detection". These were reworked recently, as part of minstrel class review, so maybe they are not in the database.


I did no test other anthems yet.
Yeah, what a PITA. I will see about updating the skills database.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-19-2022, 03:33 PM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Minstrel - Anthem of the Free Peoples

Hi, one of the anthems on minstrel - "Anthem of the Free Peoples" - appears to be missing the usual "on click/when executed" options when slotted on the bar. All the slot has is "Require Target". This sometimes gets it stuck, maybe it has no info to move on, or some such. I surrounded it with "re-evaluate continuously" but it does not help either.



Also, another of the new anthems - "Greater Anthem II - War", although has full options, but appears to ignore "when executed", both without and with "secondary detection". These were reworked recently, as part of minstrel class review, so maybe they are not in the database.


I did no test other anthems yet.

Last edited by akourbat : 11-19-2022 at 03:40 PM.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-13-2022, 12:59 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Re: quick question

Quote:
Originally Posted by Squ1dly1969
can a bar be linked to an action slot so that it could be activated by pressing 1 for example instead of clicking on it? odd question, but I'm trying hard to overcome a handicap.
That's actually the most frequently-asked question over the years. But it hasn't appeared on this page yet, so I guess I'll answer it again: No, that is not possible. A plugin cannot implement that functionality.

Last edited by Thurallor : 11-13-2022 at 12:59 PM.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-13-2022, 12:26 PM  
Squ1dly1969
The Wary

Forum posts: 0
File comments: 1
Uploads: 0
quick question

can a bar be linked to an action slot so that it could be activated by pressing 1 for example instead of clicking on it? odd question, but I'm trying hard to overcome a handicap.
Squ1dly1969 is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-08-2022, 07:02 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
I just thought of a problem this would cause: a race condition. If you enable "continuous evaluation" for the "if", one of your clicks could be ignored.

Suppose you are sitting on slot 4. You have clicked the skill, but the bar has not yet advanced, because it's waiting for the chat log message. Then "Seize the moment" becomes active. The "if" is reevaluated, putting you at slot 2. When the chat log message arrives, it is ignored, because slot 2 is "advance on left click". But from your (the user's) point of view, you have already clicked the skill, but the bar never advanced.

Until I figure out how to handle this, you should probably disable "continuous evaluation" in slot 1.
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-08-2022, 04:14 PM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Quote:
Originally Posted by Thurallor
What about something like this:
1. If "Seize the moment" is active {
2. Spear and Shield (advance on left-click)
3. } else {
4. Spear and Shield (advance when skill executes)
5. }
Actually, good idea. For now, I just reverted all masteries to good old "left click", regardless of StM, but will give this a try.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-08-2022, 03:31 PM  
Thurallor
The Undying
 
Thurallor's Avatar
Interface Author - Click to view interfaces

Forum posts: 202
File comments: 456
Uploads: 20
Quote:
Originally Posted by akourbat
Did some more testing. It works... unless you are a fast clicker. I suppose chat parsing takes some time, and if you happen to click the mastery a second time while it is being processed via "secondary detection method" and "StM" is being on - you end up getting mastery to execute twice in a row.
Hmmm... not sure if I can do anything about it.

I could deactivate the slot after the first click. (I could simply cover up the slot with a transparent mask that absorbs mouse clicks.) But then how to handle the case where you click a skill and, for whatever reason, it doesn't "take"?

What about something like this:
1. If "Seize the moment" is active {
2. Spear and Shield (advance on left-click)
3. } else {
4. Spear and Shield (advance when skill executes)
5. }
Thurallor is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-08-2022, 07:58 AM  
fade2gray
The Wary
 
fade2gray's Avatar

Forum posts: 2
File comments: 15
Uploads: 0
Quote:
...you end up getting mastery to execute twice in a row.
Yep, that's been a long time thing.
fade2gray is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-08-2022, 07:38 AM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Did some more testing. It works... unless you are a fast clicker. I suppose chat parsing takes some time, and if you happen to click the mastery a second time while it is being processed via "secondary detection method" and "StM" is being on - you end up getting mastery to execute twice in a row.
akourbat is offline Report comment to moderator   Reply With Quote Reply With Quote
Unread 11-07-2022, 08:05 PM  
akourbat
The Wary

Forum posts: 0
File comments: 46
Uploads: 0
Quote:
Originally Posted by Thurallor
it should work now (v4.05), with the "secondary detection method". The plugin now considers the two names to be entirely equivalent -- it doesn't care which stance you are in -- when parsing the chat log.
Yes! Just ran a quick test on one of my wardens vs. dummy, and is working! Thanks!

Last edited by akourbat : 11-07-2022 at 08:06 PM.
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:06 AM.


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