Thanks very much for the fixes, but I have another request if it wouldn't involve too much.
Could the 'when mouse arrives/departs' conditional triggers be added to the group event behaviours? Essentially, I'd like to be able to reset all bars within a group when the mouse enters or exits the containing group.
Note: This also brings to mind a minor issue; the mixed usage of en-gb and en-us in some files, e.g. behaviour and behavior. Just means the need to consider any "Americanisms" to include in my search terms (regex = "behaviou?r"). I'm having more fun delving through the code than I am playing the game.
Last edited by fade2gray; Feb 13 2016 at 01:42 PM.
Thanks very much for the fixes, but I have another request if it wouldn't involve too much.
Could the 'when mouse arrives/departs' conditional triggers be added to the group event behaviours?
Yeah, that's doable. I left it out because it wasn't trivial and I couldn't think of a use for it, but since then I have thought of a use for it, and I guess you have, too.
Note: This also brings to mind a minor issue; the mixed usage of en-gb and en-us in some files, e.g. behaviour and behavior. Just means the need consider any "Americanisms" to include in my search terms (regex = "behaviou?r"). I'm having more fun delving through the code than I am playing the game.
My convention (which matches that of Turbine) is to use British spellings in any text that will be visible in the game, and American spellings in the source code. If I violated that rule somewhere, then it was unintentional.
I'm glad you are finding my code amusing. We aim to please.
By the way, I use Notepad++ with the TagsView plugin for navigating the source code.
Yeah, that's doable. I left it out because it wasn't trivial and I couldn't think of a use for it, but since then I have thought of a use for it, and I guess you have, too.
Good.
Originally Posted by Thurallor
My convention (which matches that of Turbine) is to use British spellings in any text that will be visible in the game, and American spellings in the source code. If I violated that rule somewhere, then it was unintentional.
My bad - When I didn't get many hits for "behaviour", I did a regex search for "behaviou?r" and thought I was seeing hits for both in the same file.
Originally Posted by Thurallor
I'm glad you are finding my code amusing. We aim to please.
I'm not a seasoned coder - I just enjoy poking around where I really shouldn't.
Originally Posted by Thurallor
By the way, I use Notepad++ with the TagsView plugin for navigating the source code.
Likewise - I'll have to have a look at the plugin.
Edited my previous post to include "Essentially, I'd like to be able to reset all bars within a group when the mouse enters or exits the containing group" just as you made your reply.
I recently discovered this plugin and have figured out how to make a bar for each spec but am having issues with the "skill is not trained" to call "red" and "blue" from a master bar. I tried hiding the "red" and "blue" but it seems to cause a buildup of client lag, I guess would be the way to describe it. I tried using a big if then else but found that since the skills are not present in the given tree, either the "else" part of the "then" part forgets the skill.
I know, this is babbling but I really don't know how to describe the problem I am having. The sequences are nearly the same except for certain skills that change between trees so most of the sequences are shared skills with just a couple differences. I think the problem is processing two hidden and one main that includes the hidden ones at the same time.
Workaround for me right now is to just edit and change the couple of skills that change but I know you have it so it can switch itself. I just can't figure it out.
I recently discovered this plugin and have figured out how to make a bar for each spec but am having issues with the "skill is not trained" to call "red" and "blue" from a master bar. I tried hiding the "red" and "blue" but it seems to cause a buildup of client lag, I guess would be the way to describe it. I tried using a big if then else but found that since the skills are not present in the given tree, either the "else" part of the "then" part forgets the skill.
I know, this is babbling but I really don't know how to describe the problem I am having. The sequences are nearly the same except for certain skills that change between trees so most of the sequences are shared skills with just a couple differences. I think the problem is processing two hidden and one main that includes the hidden ones at the same time.
Workaround for me right now is to just edit and change the couple of skills that change but I know you have it so it can switch itself. I just can't figure it out.
Thanks
Also, love this plugin!
You must share how your doing this, pretty please. ;-)
Maybe make a youtube video? I am been trying to mess around with this kind of setup for awhile.
I still use the plugin for all my gear swapping and my LI swaps during combat. I have said this before, but will say again, this is one of the best plugins I have used!
BattyKoda0, I'm not exactly following you. Can you export your bars (just right-click on the group, and choose "Export") and send it to me in a PM? Then I'll have a look. Also, screencaps might help to describe the problem.
mmogaming, I've been meaning to make some new youtube videos for a long time, but so far haven't gotten around to it. There are a lot of little nuances that I haven't documented anywhere and are much easier to explain in a video. What documentation there is is here.
Hi, me again with some more requests and issues I'm afraid.
I got extremely flummoxed when a sequence of several nested conditions worked in theory but wouldn't work in practice. After taking a break to collect my thoughts I discovered I'd been logged out, and after logging back in I discovered the sequence work exactly as expected. Somewhere along the line I saw this error in the chat window, but can't remember exactly what I was doing at the time - "SequenceBars\Manager.lua: 548: attempt to call local 'func' (a nil value)".
Also, I have several groups defined and would like all groups, below the main parent, to remain collapsed except for the one I'm working on. As it is, if I have any/all groups collapsed and add/edit a group/bar, all groups will expand. I find this very disorientating. https://youtu.be/wbvYt8Pp5MQ
And, under certain circumstances, adding a user generated event to a sequence causes an odd effect in the menu when selecting it as a trigger for a group/bar behaviour. To get around this effect you need to unload and reload SB. https://youtu.be/vOgvwDPnHh0
Hi, me again with some more requests and issues I'm afraid.
Thanks for the feedback as always, fade2gray.
I got extremely flummoxed when a sequence of several nested conditions worked in theory but wouldn't work in practice. After taking a break to collect my thoughts I discovered I'd been logged out, and after logging back in I discovered the sequence work exactly as expected. Somewhere along the line I saw this error in the chat window, but can't remember exactly what I was doing at the time - "SequenceBars\Manager.lua: 548: attempt to call local 'func' (a nil value)".
Unfortunately this kind of bug is very hard for me to track down. You probably saw the error message while you were changing the options for a conditionial slot. It may be due to the bug you described below, related to changing event names. I'll fix that bug in the next release. If you see this error message again, please let me know exactly what you were doing when it happened.
Also, I have several groups defined and would like all groups, below the main parent, to remain collapsed except for the one I'm working on. As it is, if I have any/all groups collapsed and add/edit a group/bar, all groups will expand. I find this very disorientating. https://youtu.be/wbvYt8Pp5MQ
This is annoying, and I'll see if there is an easy way to improve it, but not in the next version (which I'm almost ready to release).
And, under certain circumstances, adding a user generated event to a sequence causes an odd effect in the menu when selecting it as a trigger for a group/bar behaviour. To get around this effect you need to unload and reload SB. https://youtu.be/vOgvwDPnHh0
This I'll fix in the upcoming version.
And another thing, would it be possible to do:
At Startup
When Combat Begins
When Combat Ends
When Trait Tree Changes
If Target Is Hostile
If Target Is Not Hostile
When User Event Occurs
Those are states that persist over some period of time -- not events that occur at a specific time. So it wouldn't be appropriate to include them as "event behaviours". However, I might be able to add them into the conditional slots (if there is even a way to test target hostility in Lua; I will have to research it). Then, using a new feature I'm introducing in the next version -- sequences that run continuously -- you could conditionally generate a user event based on that condition, and then specify an event behaviour for that user event.
Those are states that persist over some period of time -- not events that occur at a specific time. So it wouldn't be appropriate to include them as "event behaviours". However, I might be able to add them into the conditional slots (if there is even a way to test target hostility in Lua; I will have to research it). Then, using a new feature I'm introducing in the next version -- sequences that run continuously -- you could conditionally generate a user event based on that condition, and then specify an event behaviour for that user event.
The idea behind it is that I'd like to keep certain sequences hidden until I've clicked on a hostile target rather than wait till combat starts. I thought I might be able to utilize Watcher.lua>local function PlayerTargetChanged() which is invoked when an object is selected, but, as you say, I can't find anything in the API that determines hostility.
function ActiveSkill:IsUsable();
Gets if the skill is currently usable. There are numerous conditions that affect the usability of a skill: combat state, effects, items, gambits, traits, pets, stealth, etc...
Shame it doesn't include usability depending on target range.
Just a thought though, are separate icons used to indicate out of range, or is an overlay used? If an overlay, is it detectable?
The idea behind it is that I'd like to keep certain sequences hidden until I've clicked on a hostile target rather than wait till combat starts. I thought I might be able to utilize Watcher.lua>local function PlayerTargetChanged() which is invoked when an object is selected, but, as you say, I can't find anything in the API that determines hostility.
I added some "when target changes" event behaviors. You can now make a bar that will "Reset when target changes", containing nothing but an if-then-else conditional that generates two different user events, based on whether the target's morale > 0. The condition will be false for inanimate objects and stationary NPCs. It will be true for hostile mobs and monster players. But unfortunately it will also be true for mobile NPCs (e.g. town guards) and friendly players. You can use the two user events to show/hide a different set of bars depending on the condition when the target changes.
Originally Posted by fade2gray
Shame it doesn't include usability depending on target range.
Just a thought though, are separate icons used to indicate out of range, or is an overlay used? If an overlay, is it detectable?
Plugins can't detect anything on the screen. As far as I know, there is no way for a plugin to detect if a target is out of range.
Version 3.00 is awaiting approval, should be available momentarily.
I added some "when target changes" event behaviors. You can now make a bar that will "Reset when target changes", containing nothing but an if-then-else conditional that generates two different user events, based on whether the target's morale > 0. The condition will be false for inanimate objects and stationary NPCs. It will be true for hostile mobs and monster players. But unfortunately it will also be true for mobile NPCs (e.g. town guards) and friendly players. You can use the two user events to show/hide a different set of bars depending on the condition when the target changes.
Just the job.
Originally Posted by Thurallor
Plugins can't detect anything on the screen. As far as I know, there is no way for a plugin to detect if a target is out of range.
Pity.
Originally Posted by Thurallor
Version 3.00 is awaiting approval, should be available momentarily.
Sequences of automatic slots can now execute continuously.
Enable the feature by choosing "Run continuously" in the bar settings menu.
Start or stop execution by clicking the gear icon that appears while the sequence is running.
New event behaviors ("Start executing" and "Stop executing") are available for bars and groups.
Event behaviors for bars and groups can now be triggered "when the target changes".
Bug fixes
In the previous version, a "Skill is/not ready" conditional slot could forget which skill you selected, if you viewed the slot in the sequence editor after changing trait trees. (reported by BattyKoda0 above)
In the previous version, after removing/disabling a user event handler or renaming a user event, there was an error message and incorrect behavior whenever the event was generated, until SequenceBars was reloaded. (reported by fade2gray above)
Other changes
In the sequence editor, when editing "Skill is/not ready" and "Skill is/not trained" conditional slots, all trained and untrained skills will now be listed in the pulldown menu, but trained skills will be listed at the top.
Performance improvement: Settings will no longer be saved during combat.
Performance improvement: Some unnecessary save operations have been eliminated.
Performance improvement: Some redundant show/hide operations were eliminated.
Known issues
Due to a limitation in the Turbine API, if a skill is only available in a trait line that you don't currently have selected, the plugin doesn't know about it, and you won't be able to select it for a "Skill is/not ready" and "Skill is/not trained" conditional slot. However, if you configure the slot while the appropriate trait line is enabled, the plugin will remember your selection.
In the game, when you select a target (mob or player), it takes some time before the target's morale, power, and effects are updated on your screen. During this time, the plugin is aware that you have selected a new target, but it doesn't know the target's current morale, power, effects, etc. Any event behaviors that are assigned to happen "when target changes" may be triggered a second time when the morale, power, etc. are updated.
Just updated (via Plugin Compendium) to v3.00 and get "SequenceBars\Bar.lua:792: attempt to index field 'optionsPanel' (a nil value)" When trying to access SB's option panel by any method.
Edit:
Uninstalled and reinstalled 3.00, leaving SequenceBars.plugindata in situ, but then get "SequenceBars\Bar.lua:105: attempt to index local 'skill' (a nil value)" when accessing the options panel.
Removed SequenceBars.plugindata and can now access the options panel - so, just can't implement old configuration.
Last edited by fade2gray; Feb 23 2016 at 08:40 AM.
Just updated (via Plugin Compendium) to v3.00 and get "SequenceBars\Bar.lua:792: attempt to index field 'optionsPanel' (a nil value)" When trying to access SB's option panel by any method.
Edit:
Uninstalled and reinstalled 3.00, leaving SequenceBars.plugindata in situ, but then get "SequenceBars\Bar.lua:105: attempt to index local 'skill' (a nil value)" when accessing the options panel.
Removed SequenceBars.plugindata and can now access the options panel - so, just can't implement old configuration.
Sorry about that, fade2gray, I must have botched the conversion of old settings file to the new format. You should be able to fix it by replacing all occurrences of "<skill>" with "<skillName>" in your .plugindata file. And then for any "Skill is/not ready" conditions, reselect the desired skill in the pulldown menu. I'll see if I can figure out what I did wrong and post a new version.
Last edited by Thurallor; Feb 23 2016 at 09:03 AM.
Sorry about that, fade2gray, I must have botched the conversion of old settings file to the new format. You should be able to fix it by replacing all occurrences of "<skill>" with "<skillName>" in your .plugindata file. And then for any "Skill is/not ready" conditions, reselect the desired skill in the pulldown menu. I'll see if I can figure out what I did wrong and post a new version.