Thread Tools Display Modes
03/03/21, 10:30 AM   #21
Gabriel_H
 
Gabriel_H's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2021
Posts: 11
Originally Posted by Baertram View Post
About LAM and the resfresh:
Set your addon panel to listen for refreshs like described in the LAM documentaion ->

local panelData = {
...
registerForRefresh = true,
}

There is a clear callback for LAM-RefreshPanel of the lam panel where you register your function and check if the panel is your LAM panel
(local myAddonPanel = LibAddonMenu2:RegisterAddonPanel(gAddonName .. "_LAM", panelData) -> in the callback function if panel (1st param of the callback func) ~= myAddonPanel then return end)
, and then you should call your refreshConflict function for the needed dropdown controls (predefined in a table "for _, dropdownControl in ipairs(updateThisControls)").

Using the setfunc will get you into trouble earlier than you might think off.
The panel is set for registerForRefresh - it does not refresh dropdown choices. However, it does build a table for functions to be refreshed, which is what my refreshConflict function parses.

All the setFunc is doing is firing as it normally would to save the variable to the saved variable tables.

Last edited by Gabriel_H : 03/03/21 at 10:32 AM.
 
03/03/21, 10:32 AM   #22
CyberOnEso
 
CyberOnEso's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2017
Posts: 18
Originally Posted by Gabriel_H View Post
I have attached the menu.lua I have been playing with.
Thank you very much for this! I will certainly look at implementing it.

When I have time I will certainly look at implementing the LAM callback as Baertram suggests. However, as far as I am aware wouldn't doing it this way cause refreshes for all 14 drop-down lists whenever you change any setting? Maybe it's not really intensive, however, any input on if any part of the addon causes more lag/ server strain than necessary would be really appreciated.

Thank you both for your suggestions, I do really appreciate it!

Last edited by CyberOnEso : 03/03/21 at 10:35 AM.
 
03/03/21, 10:59 AM   #23
Gabriel_H
 
Gabriel_H's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2021
Posts: 11
Originally Posted by CyberOnEso View Post
Thank you very much for this! I will certainly look at implementing it.

When I have time I will certainly look at implementing the LAM callback as Baertram suggests. However, as far as I am aware wouldn't doing it this way cause refreshes for all 14 drop-down lists whenever you change any setting? Maybe it's not really intensive, however, any input on if any part of the addon causes more lag/ server strain than necessary would be really appreciated.

Thank you both for your suggestions, I do really appreciate it!
Just running the latest version you sent me. Events Line 560 seems to be causing an issue after fleeing and combat dropping, it looks like the callback is not being unregistred.

Edit: Found the problem I think. Line 560 references, JackofAllTrades.fadeAway - given the rest of your code naming convention I think it should be skill.fadeAway.

It should be ok to default FadeAway to slot 2 btw. I know you put it to 4 to keep it out of the way, but the mechanics of the situation are such that arresting/fleeing puts you into combat, so you can still Blade of Woe people or pickpocket but as you are in combat you can't auto-slot stars so there is no chance of conflicting with other stars.

Also on that note, being arrested breaks stealth and it is unslotting Sustaining Shadows which does make sense and then falls foul of the same issue of being in combat.

If you don't want it to work that way you could put a check on if SS has been auto-slotted then arrest doesn't re-slot the original - only paying the bounty/clemency would. I have not strong opinion either way, just wanted to give you the feedback.

Last edited by Gabriel_H : 03/03/21 at 12:33 PM.
 
03/03/21, 11:51 AM   #24
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,912
Originally Posted by CyberOnEso View Post
Thank you very much for this! I will certainly look at implementing it.

When I have time I will certainly look at implementing the LAM callback as Baertram suggests. However, as far as I am aware wouldn't doing it this way cause refreshes for all 14 drop-down lists whenever you change any setting? Maybe it's not really intensive, however, any input on if any part of the addon causes more lag/ server strain than necessary would be really appreciated.

Thank you both for your suggestions, I do really appreciate it!
Yes, could be.
Depends on how the functions to select the current dropdown selections and build the new entries + UpdateChoices are currently set to run.
I only thought about using setFunc will be called if you change anything. Could get you into trouble as setFunc of box 1 updates entries of box 2 choices/chociesValues, which then calls getFunc and/or setFunc again and will continue the chain call.

Depening on the number of boxes, and their relations/depencies, using the refresh callback, and "collecting all dropdown data" prior to only running an UpdateChocis once to update to all of them (throttled so that the next refresh won't be run within millisecons e.g. via EVENT_MANAGER:RegisterForRefresh with always the same unique event name), might be better. Depends on the usecase. But I remember using setFunc directly got me severe headache in the past.

I did not find the time to check the code of the lam settings in detail. Could be this already is the most optimized way. Sorry for the confusion then.
 
03/03/21, 12:28 PM   #25
Gabriel_H
 
Gabriel_H's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2021
Posts: 11
Originally Posted by Baertram View Post
Yes, could be.
Depends on how the functions to select the current dropdown selections and build the new entries + UpdateChoices are currently set to run.
I only thought about using setFunc will be called if you change anything. Could get you into trouble as setFunc of box 1 updates entries of box 2 choices/chociesValues, which then calls getFunc and/or setFunc again and will continue the chain call.
Ah, I see why you were concerned now. Worry not, changing the dropdown choices or even coding which entry to show doesn't trigger either get or set.
 
03/08/21, 06:16 AM   #26
CyberOnEso
 
CyberOnEso's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2017
Posts: 18
Hey'a, just wanted to thank you all for your help.

I have uploaded the addon and am just awaiting a file admin.

I implemented the code from Gabriel_H. To the latest version, and I believe it all works as intended!
 
03/08/21, 07:31 AM   #27
Gabriel_H
 
Gabriel_H's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2021
Posts: 11
Originally Posted by CyberOnEso View Post
Hey'a, just wanted to thank you all for your help.
No, good Sir, thank you for an amazing addon on!
 
03/08/21, 09:49 AM   #28
CyberOnEso
 
CyberOnEso's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2017
Posts: 18
ZOS have implemented a hidden 30 second cooldown on changing CP's.
I will need to completely rewrite the addon to try and get around this...

Last edited by CyberOnEso : 03/08/21 at 02:54 PM.
 
03/09/21, 06:09 AM   #29
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,912
Originally Posted by CyberOnEso View Post
ZOS have implemented a hidden 30 second cooldown on changing CP's.
I will need to completely rewrite the addon to try and get around this...
If you "try to get around this" you can be sure the API will be locked!
It was added on purpose.

Please do not try to get around it but live with and adopt to it.
Thank you.
 
03/09/21, 04:22 PM   #30
CyberOnEso
 
CyberOnEso's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2017
Posts: 18
Originally Posted by Baertram View Post
If you "try to get around this" you can be sure the API will be locked!
It was added on purpose.

Please do not try to get around it but live with and adopt to it.
Thank you.
Sorry I did not mean to suggest that I would try to break it... at all.
I have no intention of ever doing that. I meant to say that I am going to only attempt to slot CP stars every 30 seconds, and to queue them up to be slotted when the player is off cooldown. As I don't want to annoy players by forcing them to see the 'Cannot slot one or more champion stars message'.

Last edited by CyberOnEso : 03/09/21 at 04:25 PM.
 
03/09/21, 06:32 PM   #31
BlunderBluff
Join Date: Jan 2021
Posts: 1
Originally Posted by CyberOnEso View Post
Sorry I did not mean to suggest that I would try to break it... at all.
I have no intention of ever doing that. I meant to say that I am going to only attempt to slot CP stars every 30 seconds, and to queue them up to be slotted when the player is off cooldown. As I don't want to annoy players by forcing them to see the 'Cannot slot one or more champion stars message'.
What he's saying is the eso team is more than willing to limit mod capability and hinder the end user.
Tread with care.
 
03/09/21, 07:01 PM   #32
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 626
Yeah like what if it was less, it is 30 now, and what if it becomes a minute in the future. They decide to restrict if not prevent access. I for one think it is a neat idea to have something that can automatically swap things when you want. For example if you're fishing or farming. If ZOS figures whatever you choose to do isn't to their liking it will become a private api function possibly, who knows. None of us know but that's the gist of what is being said. Don't take it personally nobody's judging you for it we're just saying it may not be a good idea.

Philgo added a turbo mode to MM and that got squashed.

Last edited by Sharlikran : 03/09/21 at 07:54 PM.
 
03/09/21, 07:28 PM   #33
CyberOnEso
 
CyberOnEso's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2017
Posts: 18
I am just trying to understand what is going on here.

Currently, I have a version that I am working on that fully obeys the new restrictions. It will only send a request to the server when the cooldown is over. It is a very toned-down version of the original Jack of all Trades.

What is the best way forward, am I supposed to try to ask ZOS if this is okay. I don't ever want to break the game or cause any performance issues. The new version stays well within the rules and doesn't try to exploit anything. (Neither did my original version).

I have not been told that the adjustment was due to my addon, at all.

Am I supposed to try to contact ZOS and ask if this is okay with them? I genuinely don't want them to feel the need to fight back. I am more than happy to work within whatever restrictions they say. Regardless of if I agree with them.

I just wanted to create an addon that would remove some of the insane amounts of micromanagement with the new CP system.

Both versions of my addon stayed well within the rules. I do not want to go down as the guy that nerfed the API, I just read the API patch notes and used what was there.

If they don't like the automated aspect of it, I am happy to introduce a keybind to switch profiles. But I just don't know what they want.


What would be the best way forward, the version I am working on now with the cooldown is much more efficient in every way in terms of messages sent to the server. But I don't want to be seen as trying to break anything. Should I leave the old version, which is spamming users with new annoying messages because it tries to slot CP too fast. Or post a new version, which fixes those issues.

Last edited by CyberOnEso : 03/09/21 at 07:40 PM.
 
03/09/21, 07:48 PM   #34
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 626
Yep you are doing fine nothing is wrong. You don't have to contact ZOS and nobody is saying anything happened because of you.

I am just trying to understand what is going on here.
I think that is the issue. It's not you, it isn't me, it isn't anyone's comment. You aren't wrong nobody is right, nobody is more right, there is nothing to analyze or overthink.

These aren't the droids you are looking for. Carry on.
 
03/10/21, 02:08 AM   #35
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,912
Originally Posted by CyberOnEso View Post
Sorry I did not mean to suggest that I would try to break it... at all.
I have no intention of ever doing that. I meant to say that I am going to only attempt to slot CP stars every 30 seconds, and to queue them up to be slotted when the player is off cooldown. As I don't want to annoy players by forcing them to see the 'Cannot slot one or more champion stars message'.
All fine, I missunderstood your posting (I'm no native English speaker)

As long as you did not find any way to trick the cooldown to circumvent it, and just use it as ZOs provides it (30 secons), all is allowed and fine.
About performance: Maybe there is some event or stuff like a callback that fires as the CD is gone. Or any api function one coudl check every 1 seconds or whatever.

Last edited by Baertram : 03/10/21 at 02:10 AM.
 
03/10/21, 09:57 AM   #36
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 171
We are currently looking into ways to mitigate the potential server load of this aspect of the new system. The cooldown was a fast solution to a spammy system but since its only server side, I don't have access to it either. I don't know at this time if the cooldown will be the ultimate answer or if some kind of redesign to those abilities or slotting in general will be in play. If the cooldown is here to stay, I will be trying to get access to it so I can expose it to the API.
 
03/10/21, 11:40 AM   #37
CyberOnEso
 
CyberOnEso's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2017
Posts: 18
Originally Posted by ZOS_DanBatson View Post
We are currently looking into ways to mitigate the potential server load of this aspect of the new system. The cooldown was a fast solution to a spammy system but since its only server side, I don't have access to it either. I don't know at this time if the cooldown will be the ultimate answer or if some kind of redesign to those abilities or slotting in general will be in play. If the cooldown is here to stay, I will be trying to get access to it so I can expose it to the API.
Thank you very much. I really hope there is a way to mitigate the potential server load so that the cooldown can be lessened or eliminated.

If the skill cooldown is here to stay then thank you very much in advance for trying to get us access to the skill cooldown. It would be great if the skill cooldown could be picked up by GetChampionPurchaseAvailability() or GetExpectedResultForChampionPurchaseRequest()

Many thanks for all your work and your communication. It is really appreciated!
 
08/19/21, 09:26 AM   #38
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,912
This addon was officially released:
https://www.esoui.com/downloads/info...allTrades.html
 

ESOUI » AddOns » Alpha/Beta AddOns » Jack of all Trades

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off