ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   Alpha/Beta AddOns (https://www.esoui.com/forums/forumdisplay.php?f=171)
-   -   Jack of all Trades (https://www.esoui.com/forums/showthread.php?t=9585)

CyberOnEso 02/17/21 12:37 PM

Jack of all Trades
 
2 Attachment(s)

Jack of all Trades is an addon I am looking to release with U29.
It will only work on the PTS for now

Automatically adjusts your green champion bar loadout depending on what you are attempting to achieve and restores back your old CP setup when you are done.

Crafting
  • Automatically slots Master Gatherer and Plentiful Harvest when you start harvesting a crafting node.
  • Automatically slots Meticulous Disassembly when you start crafting, ensuring you always get optimal refining results!

Riding
  • Automatically slots Gifted Rider, and War Mount whenever your mount up!

Looting
  • Automatically slots Treasure Hunter, and Homemaker whenever you are looting the relevant container.

Fishing
  • Slots Reel Technique and Angler's Instincts whenever you start fishing.

Thieving
  • Slots Sustaing Shadows whenever you start sneaking, keeping you in the dark for longer!
  • Slots Infamous whenever you interact with a fence, helping you always get the best selling price.
  • Slots Cutpurse's Art whenever you pickpocket someone.
  • Slots Shadowstrike when you can use the Blade of Woe.

Miscellaneous
  • Slots Professional Upkeep when you talk with a merchant, ensuring you always get your gear repaired for less!

This addon will not respec your champion points, and will not charge you 3000 gold etc.
It will only equip the skills if you have enough points into them already.
It is intended to be a seamless quality of life improvement, not a CP respec addon.

Optional Features
  • Get a notification whenver any skill you wish to be notifed for is slotted
  • Receive a warning message whenever you don't have enough points into a star for it to be automatically slotted
  • Disable automatically slotting any skill you wish
  • Remap where on your champion bar skills will be automatically slotted to.

If anyone has time to test this addon or can provide me with any thoughts, additions, or improvements I would be very grateful.

Many thanks

Update v0.1
  • If you run the addon on the live server it will not cause any errors. It simply will not register any events or try to call anything from the CP 2.0 System.
Update v0.2
  • Fixed the undefined variable in the AddonLoaded function, thank you Votan!
Update v0.3
  • Rewrote CP assigning functions to use an object-oriented paradigm. Should help in the future
  • Separated Events and Skill functions into separate files to keep things clean.
Update v0.4
  • Added settings menu allowing you to customize when and how warnings will be shown if you do not have enough CP points allocated into the skill to slot it.
  • Added support for localization.
Update v0.5
  • When we are unable to slot CP points into a node, due to being in combat etc. We will attempt to slot the node again once combat ends.
  • Will remember which skill should be set back afer a reload UI!
  • If you reload UI whilst in combat with it will slot your original CP back after combat ends after the reload UI ends, this took more effort than it is probably worth.
  • Added method of finding names, discipline data automatically.
  • Improved localization support
Update v0.5.1
  • Fixes for issues created with PTS v6.3.4
  • Added a Pre Hook that stops the camera shake whenever you confirm a skill, this was throwing errors when we allocate a champion node via the addon.
  • Improvements to comments.
  • Improvements to load order.
Update v0.7
  • Added all remaining CP stars and can automatically slot all of them when they would prove useful.
  • Large improvements to the menu
  • Improvements to ensure that your old skills are always put back exactly where you left them!

votan 02/18/21 04:20 AM

I love the idea already!

As you requested to test it, I did a leaking globals check.
The only minor thing found is, that disciplineIndex in line 43 (JackOfAllTrades.AddonLoaded) is undefined. Not sure, if the line could be simplified to just assign 1.

votan

CyberOnEso 02/18/21 04:55 AM

Thank you very much, I do really appreciate it!
Quote:

Originally Posted by votan (Post 43241)
disciplineIndex in line 43 (JackOfAllTrades.AddonLoaded) is undefined.

Fixed that and uploaded a new version, thank you very much!

CyberOnEso 02/27/21 06:57 PM

Hey'a, over the past week or so I have made large improvements to the addon, getting it ready for release.
I have tested the changes myself and with a friend, but would appreciate any testing or feedback any of you could provide on the latest version.

Thank you very much!

Gabriel_H 03/01/21 05:33 AM

Loving the addon. Brilliant work. :banana:

The one ask/suggestion I have is having 'Fade Away' automatically slot when entering sneak mode or when selecting flee from a guard. The only issue might be that triggering the guard (entering combat) might come after the sneak state is broken.

The reason I suggest it is because it's only likely to be needed when performing nefarious deeds that tend to only happen when sneaking. It would also mean only 4 stars remain that are not situational being:

Friends in Low Places
Rationer
Liquid Efficiency
Steed's Blessing

Which would mean that they could become the 4 defaults slotted.

Baertram 03/01/21 06:52 AM

Quote:

Originally Posted by Gabriel_H (Post 43289)
Loving the addon. Brilliant work. :banana:

The one ask/suggestion I have is having 'Fade Away' automatically slot when entering sneak mode or when selecting flee from a guard. The only issue might be that triggering the guard (entering combat) might come after the sneak state is broken.

The reason I suggest it is because it's only likely to be needed when performing nefarious deeds that tend to only happen when sneaking. It would also mean only 4 stars remain that are not situational being:

Friends in Low Places
Rationer
Liquid Efficiency
Steed's Blessing

Which would mean that they could become the 4 defaults slotted.

Somehow sounds like a use case for "profiles" instead of "switch on demand". You already said that getting into combat will block any chance changing the CP slots. Should be the same as changing gear etc. as you will be in combat before the addon can react on it. The guard is not raising his finger :p And if so he is not telling the API he will pull you into combat soon so the addon could react before you get pulled into combat.
Either something for a CP profile changing the slots before you try to steal/sneak etc. or a keybind change maybe?

CyberOnEso 03/01/21 07:58 AM

Quote:

Originally Posted by Gabriel_H (Post 43289)
The one ask/suggestion I have is having 'Fade Away' automatically slot when entering sneak mode or when selecting flee from a guard. The only issue might be that triggering the guard (entering combat) might come after the sneak state is broken.

Hey'a, thank you very much for your suggestion.

I don't use the Justice system that often, however, one way I think it may be doable is by using the event EVENT_JUSTICE_INFAMY_UPDATED, this will tell the addon your new and old infamy values, which would be increased when you first commit a crime and decreased whenever you successfully flee from guards? Is that correct?

So I could slot the 'Fade Away' star whenever you increase in infamy state and remove it whenever you decrease in infamy state. As long as the crime you are committing doesn't put you in combat this should work?

Alternatively, I could add a toggle in the setting menu to automatically slot Fade Away whenever you start sneaking

Would love to hear your thoughts.

Many thanks!

Gabriel_H 03/01/21 11:01 AM

Quote:

Originally Posted by Baertram (Post 43290)
Somehow sounds like a use case for "profiles" instead of "switch on demand". You already said that getting into combat will block any chance changing the CP slots. Should be the same as changing gear etc. as you will be in combat before the addon can react on it. The guard is not raising his finger :p And if so he is not telling the API he will pull you into combat soon so the addon could react before you get pulled into combat.
Either something for a CP profile changing the slots before you try to steal/sneak etc. or a keybind change maybe?

But the combat only initates after selecting the "Flee" dialogue option. If you walk into a guard while already having an active bounty, and not already in sneak mode, before combat starts then that's on you to have had it slotted.

Gabriel_H 03/01/21 11:13 AM

Quote:

Originally Posted by CyberOnEso (Post 43291)
Hey'a, thank you very much for your suggestion.

I don't use the Justice system that often, however, one way I think it may be doable is by using the event EVENT_JUSTICE_INFAMY_UPDATED, this will tell the addon your new and old infamy values, which would be increased when you first commit a crime and decreased whenever you successfully flee from guards? Is that correct?

So I could slot the 'Fade Away' star whenever you increase in infamy state and remove it whenever you decrease in infamy state. As long as the crime you are committing doesn't put you in combat this should work?

Alternatively, I could add a toggle in the setting menu to automatically slot Fade Away whenever you start sneaking

Would love to hear your thoughts.

Many thanks!

As I just said to Baertram, really the only time it comes into play is when selecting "Flee" from the dialogue option - but cutting into that is a tricky beast for coding.

Which is why I was thinking about it being slotted when you sneak. The problem I'm causing you though is Sustaining Shadows would need to be slotted at the same time, and Cutpurse's Art, Shadowstrike, Treasure Hunter, and Homemaker could come into play at some point too.

So I guess my question is, if Sustaining Shadows is auto-slotted by sneak mode, does it use Slot 1 and Cutpurse's Art, Shadowstrike, Treasure Hunter, and Homemaker then use Slot 2 when they come into play?

If so, then if both Shadow & Fade Away slot when sneaking, Shadow using Slot 1, and Fade using Slot 2, the others would have to use Slot 3 when they come into play.

Edit: Not trying to create work for you, but just a passing thought, adding in an option as to which slot each star will use?

Baertram 03/01/21 11:18 AM

Quote:

Originally Posted by Gabriel_H (Post 43292)
But the combat only initates after selecting the "Flee" dialogue option. If you walk into a guard while already having an active bounty, and not already in sneak mode, before combat starts then that's on you to have had it slotted.

A right, this should be detectable then via event_chatter_begin or similar. Maybe there even is an extra chatter type or something like an own event for it.
In the esoui txt API documentation you'll find e.g. MsgInteractTypes CHATTER_...

Btw: The infamy level does not decrease if you successfully flee afaik. It will lower itsself over time, but not necessarily fter fleeing already, isn't it?

CyberOnEso 03/01/21 11:27 AM

Quote:

Originally Posted by Gabriel_H (Post 43293)
Which is why I was thinking about it being slotted when you sneak. The problem I'm causing you though is Sustaining Shadows would need to be slotted at the same time, and Cutpurse's Art, Shadowstrike, Treasure Hunter, and Homemaker could come into play at some point too.

The way I have it set up now is that whenever you sneak it will slot 'Sustaining Shadows' in slot 1.

Whenever you attempt to pickpocket someone (Press E when the pickpocket reticle message is shown) it will slot 'Cutpurse's Art' in slot 2.
Whenever you attempt to loot a container (Press E when the 'search' reticle message is shown) it will slot 'Homemaker' in slot 2.
Whenever you attempt to loot a treasurechest (Press E when the 'use'/ 'unlock' reticle message is shown) it will slot 'Treasure Hunter' in slot 2.

Neither of these 3 events can happen at the same time, so we're okay.

Whenever you see the 'Blade of Woe' synergy it will slot 'Shadowstrike' in slot 3. (This is a problematic one and the Blade of Woe synergy is ****y so it gets its own slot).

With 'Fade Away' I am thinking of slotting it in slot 4 whenever something that would trigger it would happen.
But that would overwrite someone's speed buff star, which isn't really ideal.

I have an implementation now where when you start getting arrested it will slot 'Fade Away' in slot 4 and then when your heat is decreased by 25% (When the passive is activated) it will unslot it.

Quote:

Originally Posted by Baertram (Post 43294)
Btw: The infamy level does not decrease if you successfully flee afaik. It will lower itself over time, but not necessarily after fleeing already, isn't it?

Ahh okay, thank you very much.
I am looking into how to find which dialog option the user selects.

CyberOnEso 03/01/21 03:13 PM

Quote:

Originally Posted by Gabriel_H (Post 43293)
Edit: Not trying to create work for you, but just a passing thought, adding in an option as to which slot each star will use?

That's a good idea, however, sadly it creates issues where users don't know the problems it can cause if they change it, for example, if you set Sustaining Shadows and Cutpurses Art to the same slot that potentially cause cause issues with regards to remembering the users old skills.
However, you can change which place each category of stars replaces. Just not change the category of each star.

Gabriel_H 03/01/21 06:01 PM

Quote:

Originally Posted by CyberOnEso (Post 43295)
With 'Fade Away' I am thinking of slotting it in slot 4 whenever something that would trigger it would happen.
But that would overwrite someone's speed buff star, which isn't really ideal.

I have an implementation now where when you start getting arrested it will slot 'Fade Away' in slot 4 and then when your heat is decreased by 25% (When the passive is activated) it will unslot it.


Ahh okay, thank you very much.
I am looking into how to find which dialog option the user selects.

I have had a look at your code and can see how you've set up the slots - very elegant btw.

If you are going down the dialogue option, you'll have to put checks in for "Not Fleeing", so that might cause you some hassle. Sadly I wish it could be a little simpler on the mechs, as in you can't pickpocket while in-combat (triggered by fleeing) but you can still loot chests/containers in combat if you outsmart the dumb guards.

As for the options, it was just a passing thought, and I know people would have issues, but categories sounds an interesting option if you ever feel like implementing. For me personally, I'm just going to look at where your code puts them and decide my 4 non-auto slottables.

The only one I would want to sure was always available when moving would be Steed's Blessing, so as it stands slot 3 is where that would live. Friends in Low Places in slot 4 and Rationer and Liquid Efficiency slots 1 & 2 respectively.

Thanks for your time and the addon.

CyberOnEso 03/01/21 07:27 PM

1 Attachment(s)
Quote:

Originally Posted by Gabriel_H (Post 43293)
But just a passing thought, adding in an option as to which slot each star will use?

Hey'a, I added this feature, I am only going to send the build as an attachment to this message for now. Just because I am scared at how unstable it may be.
If the user sets two skills that are slotted together to the same value then that may affect returning old skills etc.
It did require quite a bit of refactoring, but 'should' work as you intended it to. Please give it a go, I hope it's what you were looking for.

CyberOnEso 03/02/21 03:58 AM

Quote:

If you are going down the dialogue option, you'll have to put checks in for "Not Fleeing", so that might cause you some hassle.
I am not sure you would need to, as when you press the first two options your heat is also reduced, if I put the check on unslotting 'Fade Away' when your heat is reduced (when the passive is activated) then it will just remove itself when you press the first two, or remove itself after you escape from the guards.

Gabriel_H 03/02/21 05:05 PM

Quote:

Originally Posted by CyberOnEso (Post 43298)
Hey'a, I added this feature, I am only going to send the build as an attachment to this message for now. Just because I am scared at how unstable it may be.
If the user sets two skills that are slotted together to the same value then that may affect returning old skills etc.
It did require quite a bit of refactoring, but 'should' work as you intended it to. Please give it a go, I hope it's what you were looking for.

It is unslotting Fade Away after fleeing as intended, and unslotting it on paying the bounty, but it is not unslotting it on clemency even though heat is reduced.

That said. Absolutely love it beyond words. :banana:

Sadly I cannot give it the full test that it deserves without respeccing. My meager pool of 900 CP is not enough. :(

Gabriel_H 03/02/21 05:29 PM

Just spotted an error on Line 514 in Events.lua

Code:

local sustainingShadowsResult = sustainingShadows:AttemptToSlot()
Presuming it is supposed to be:

Code:

local sustainingShadowsResult = JackOfAllTrades.sustainingShadows:AttemptToSlot()
There also seems to be an issue where if you sneak up to pickpocket and you are able to pickpocket, but the victim then moves out of pickpocket range, it is re-slotting the original star for Sustaining Shadows. SS then gets re-slotted once the stealth state event fires again.

CyberOnEso 03/02/21 05:33 PM

Yeah, there are a few of those errors in the version you are using.

Don't worry about them for now, after sending it to you I went back and made all the skills local, and fixed all issues like that that I could find.

Currently am working on a fix for the issue with clemency, where it will check your clemency cooldown and reset it when it goes above 0.

Edit: I have made adjustments and published a release here. This should fix the issue with Clemency.

Once I have tested the new skill category changes I will push this to the main build.

Many thanks!

Gabriel_H 03/03/21 02:59 AM

1 Attachment(s)
I was feeling a little guilty about creating work for you, so I wanted to say thanks the best way I could.

I was thinking about the slot options, and the likelihood of it causing problems. I took some code I have been working on and played around a bit. Basically it starts with a table (choiceConflicts) that stores the skillId and puts it against the raw name and any skillId's that you want to flag as "conflicting".

That allows for a function which I have called choiceConflict to be set that takes the starting choice tables (by number and text) and returns new tables (by number and text) excluding the conflicts. I have put that function instead of the tables listed against choices and choicesValues for each of the dropdowns.

So for example, Gifted Rider is set to slot 1, which means that the dropdown list for War Mount won't include slot 1 - thereby making conflict between them impossible. If you change Gifted Rider to slot 3, then War Mount dropdown will restore slot 1 to its list but remove slot 3.

LAM is a great library, but one of the things it doesn't do is refresh the dropdown lists if you play around with them like I have above. So there is a second function called refreshConflict, that fires on the setFunc parameter after the original save variable function has done it's thing. The purpose of the second function is to rebuild the dropdown list for the ones that conflict with the value you just changed.

I have attached the menu.lua I have been playing with.

Feel free to use it, ignore it, change it, whatever you want to do with it. :)

Thanks,
Gab

Baertram 03/03/21 03:34 AM

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.


Quote:

Originally Posted by Gabriel_H (Post 43307)
I was feeling a little guilty about creating work for you, so I wanted to say thanks the best way I could.

I was thinking about the slot options, and the likelihood of it causing problems. I took some code I have been working on and played around a bit. Basically it starts with a table (choiceConflicts) that stores the skillId and puts it against the raw name and any skillId's that you want to flag as "conflicting".

That allows for a function which I have called choiceConflict to be set that takes the starting choice tables (by number and text) and returns new tables (by number and text) excluding the conflicts. I have put that function instead of the tables listed against choices and choicesValues for each of the dropdowns.

So for example, Gifted Rider is set to slot 1, which means that the dropdown list for War Mount won't include slot 1 - thereby making conflict between them impossible. If you change Gifted Rider to slot 3, then War Mount dropdown will restore slot 1 to its list but remove slot 3.

LAM is a great library, but one of the things it doesn't do is refresh the dropdown lists if you play around with them like I have above. So there is a second function called refreshConflict, that fires on the setFunc parameter after the original save variable function has done it's thing. The purpose of the second function is to rebuild the dropdown list for the ones that conflict with the value you just changed.

I have attached the menu.lua I have been playing with.

Feel free to use it, ignore it, change it, whatever you want to do with it. :)

Thanks,
Gab


Gabriel_H 03/03/21 10:30 AM

Quote:

Originally Posted by Baertram (Post 43308)
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.

CyberOnEso 03/03/21 10:32 AM

Quote:

Originally Posted by Gabriel_H (Post 43307)
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!

Gabriel_H 03/03/21 10:59 AM

Quote:

Originally Posted by CyberOnEso (Post 43310)
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.

Baertram 03/03/21 11:51 AM

Quote:

Originally Posted by CyberOnEso (Post 43310)
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.

Gabriel_H 03/03/21 12:28 PM

Quote:

Originally Posted by Baertram (Post 43312)
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. :D

CyberOnEso 03/08/21 06:16 AM

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! :banana:

Gabriel_H 03/08/21 07:31 AM

Quote:

Originally Posted by CyberOnEso (Post 43370)
Hey'a, just wanted to thank you all for your help.

No, good Sir, thank you for an amazing addon on! :D

CyberOnEso 03/08/21 09:49 AM

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...

Baertram 03/09/21 06:09 AM

Quote:

Originally Posted by CyberOnEso (Post 43373)
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.

CyberOnEso 03/09/21 04:22 PM

Quote:

Originally Posted by Baertram (Post 43388)
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'.

BlunderBluff 03/09/21 06:32 PM

Quote:

Originally Posted by CyberOnEso (Post 43395)
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.

Sharlikran 03/09/21 07:01 PM

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.

CyberOnEso 03/09/21 07:28 PM

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.

Sharlikran 03/09/21 07:48 PM

Yep you are doing fine nothing is wrong. You don't have to contact ZOS and nobody is saying anything happened because of you.

Quote:

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.

Baertram 03/10/21 02:08 AM

Quote:

Originally Posted by CyberOnEso (Post 43395)
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) :p

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.

ZOS_DanBatson 03/10/21 09:57 AM

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.

CyberOnEso 03/10/21 11:40 AM

Quote:

Originally Posted by ZOS_DanBatson (Post 43409)
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!

Baertram 08/19/21 09:26 AM

This addon was officially released:
https://www.esoui.com/downloads/info...allTrades.html


All times are GMT -6. The time now is 01:19 PM.

vBulletin © 2022, Jelsoft Enterprises Ltd
© 2014 - 2021 MMOUI