02/17/21, 12:37 PM | #1 |
Jack of all Trades
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
Riding
Looting
Fishing
Thieving
Miscellaneous
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
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
Last edited by CyberOnEso : 02/27/21 at 07:07 PM. Reason: Update v0.7 |
|
02/18/21, 04:20 AM | #2 |
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 |
|
02/18/21, 04:55 AM | #3 |
|
|
02/27/21, 06:57 PM | #4 |
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! |
|
03/01/21, 05:33 AM | #5 |
Loving the addon. Brilliant work.
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. Last edited by Gabriel_H : 03/01/21 at 05:45 AM. |
|
03/01/21, 06:52 AM | #6 | |
Either something for a CP profile changing the slots before you try to steal/sneak etc. or a keybind change maybe? |
||
03/01/21, 07:58 AM | #7 | |
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! Last edited by CyberOnEso : 03/01/21 at 08:04 AM. |
||
03/01/21, 11:01 AM | #8 | |
|
||
03/01/21, 11:13 AM | #9 | |
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? Last edited by Gabriel_H : 03/01/21 at 11:17 AM. |
||
03/01/21, 11:18 AM | #10 | |
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? Last edited by Baertram : 03/01/21 at 11:23 AM. |
||
03/01/21, 11:27 AM | #11 | ||
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.
I am looking into how to find which dialog option the user selects. Last edited by CyberOnEso : 03/01/21 at 12:55 PM. |
|||
03/01/21, 03:13 PM | #12 | |
However, you can change which place each category of stars replaces. Just not change the category of each star. |
||
03/01/21, 06:01 PM | #13 | |
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. |
||
03/01/21, 07:27 PM | #14 | |
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. Last edited by CyberOnEso : 03/01/21 at 07:32 PM. |
||
03/02/21, 03:58 AM | #15 | |
Last edited by CyberOnEso : 03/02/21 at 04:16 AM. |
||
03/02/21, 05:05 PM | #16 | |
That said. Absolutely love it beyond words. Sadly I cannot give it the full test that it deserves without respeccing. My meager pool of 900 CP is not enough. |
||
03/02/21, 05:29 PM | #17 |
Just spotted an error on Line 514 in Events.lua
Code:
local sustainingShadowsResult = sustainingShadows:AttemptToSlot() Code:
local sustainingShadowsResult = JackOfAllTrades.sustainingShadows:AttemptToSlot() Last edited by Gabriel_H : 03/02/21 at 05:40 PM. |
|
03/02/21, 05:33 PM | #18 |
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! Last edited by CyberOnEso : 03/02/21 at 06:01 PM. |
|
03/03/21, 02:59 AM | #19 |
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 |
|
03/03/21, 03:34 AM | #20 | |
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.
Last edited by Baertram : 03/03/21 at 03:39 AM. |
||
ESOUI » AddOns » Alpha/Beta AddOns » Jack of all Trades |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Linear Mode |
Switch to Hybrid Mode |
Switch to Threaded Mode |
|
|