Thread Tools Display Modes
04/19/20, 02:59 AM   #1
Gargamella
Join Date: Apr 2020
Posts: 3
Character skill planner?

Is there any addon where i can put in which skills etc my end goal is?
Instead of having to alt-tab out to check the browser window of the character guide, i can input which skill i want (and the morphs) and in the character/skill window i get to see upgrade this to this etc
  Reply With Quote
04/19/20, 10:55 AM   #2
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,913
I don't know such an addon but I doubt anyone would like to create something like this as you cannot access or show info about skills or morphs ingame if you haven't unlocked them afaik. This would need you to keep an offline database of all the skills and data which needs to adopted each patch. No thanks... too much time to invest. ALT+tab is enough and quick imo

Possible helpers could be these addons:
Superstar
My build
Alpha Gear
  Reply With Quote
04/26/20, 03:54 AM   #3
Gargamella
Join Date: Apr 2020
Posts: 3
Originally Posted by Baertram View Post
I don't know such an addon but I doubt anyone would like to create something like this as you cannot access or show info about skills or morphs ingame if you haven't unlocked them afaik. This would need you to keep an offline database of all the skills and data which needs to adopted each patch. No thanks... too much time to invest. ALT+tab is enough and quick imo

Possible helpers could be these addons:
Superstar
My build
Alpha Gear
Hi.

sorry for late response, been working a bit.

I found after my post the addon called SuperStar.
It was almost what i wanted, but SuperStar's setup is that i already have the skill points, and it applies all skill points to the template i setup.
But it cant/wont do partial of the template, if i have to few skill points.
  Reply With Quote
04/26/20, 07:07 AM   #4
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,913
You shouldn't skill it ingaem then but use other skill planners outside of the game in websites.
Ingame it is not possible to show undiscovered skills properly and if you do not have any skillpoints yet it's even more unpossible as described above.

Sorry, but there is nothing for your need and I doubt there ever will be someone collecting ALL that data and creating + maintaining this addon on every patch where ZOs changes "a bit here and there". Too much trouble.
  Reply With Quote
05/01/20, 08:46 AM   #5
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 171
The SKILLS_DATA_MANAGER is an object in Lua that organizes all of the skill data, regardless of whether you know it or not (or even could know it or not.) There are objects for:
ZO_SKillTypeData
ZO_SkillLineData
ZO_PassiveSkillData
ZO_ActiveSkillData
etc

All already arranged in an object oriented parent/child relationship structure. If you wanted to write an addon like this, using this manager would be your best bet for accessing all the info you need in a very organized way. The objects will tell you information like whether or not they're discovered, exp, what rank is spent into, etc. Our skill UI, our skill builder UI, and our skill respec UI all use this manager to get the info we need to properly filter the display. It was added during the skill refactor a year or so ago to make things way easier to work with. We didn't feel the information itself needed to be a secret from a character, so we opted for ease of access.

Give that a look in ZO_SkillsDataManager.lua if you want to start developing skill guide addons.
  Reply With Quote
05/01/20, 08:52 AM   #6
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,913
Good to know, thank you DanBatson for this refresher.
  Reply With Quote
05/01/20, 11:19 AM   #7
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 626
Originally Posted by ZOS_DanBatson View Post
The SKILLS_DATA_MANAGER is an object in Lua that organizes all of the skill data, regardless of whether you know it or not (or even could know it or not.) There are objects for:
ZO_SKillTypeData
ZO_SkillLineData
ZO_PassiveSkillData
ZO_ActiveSkillData
etc

Give that a look in ZO_SkillsDataManager.lua if you want to start developing skill guide addons.
Within those areas, is there a way to check skill points? You could add to the mod you have 3 remaining skill points, and you have not discovered 123 from quests that reward a skill point, from dungeon bosses, from the Folium Discognitum. Those kinds of things.

There is a mod for skill points and maybe there could be a library for them so that a mod like a Skill Calculator could use it to things are consistant. It would be nice to parse over things and get an accurate count of sky shards, skill points earned and unearned to know what you have to work towards.

Mainly because I have alts and I don't think I want to get EVERY skill point in the game for them. I would like to be able to set up what I want to learn and then see at a glance where I can more quickly farm skill points to get to that goal.
  Reply With Quote
05/02/20, 11:13 AM   #8
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
I'd second an easy way of fetching skill points. CraftStore is currently relying on SSP to relay this information because it's a hassle to acquire right now.
  Reply With Quote
05/12/20, 09:52 AM   #9
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 171
We also have the ZO_SkillPointAllocationManager in SkillPointAllocationManager.lua. This is what's used to track how many skill points you have available to spend, and it takes into consideration when you're doing a skill respec which points are pending to be allocated to various skills before the commit. Most of the time, you can do:

SKILL_POINT_ALLOCATION_MANAGER:GetAvailableSkillPoints()

To get how many skill points there are available to spend at the moment. And you can register for when the value changes:

SKILL_POINT_ALLOCATION_MANAGER:RegisterCallback("SkillPointsChanged", function(availableSkillPoints) end)

However we have no way to tell you where you can get more skill points. The API doesn't have access to that information. As a general rule of thumb, finish Zone Stories, because typically if you 100% a Zone Story, you'll walk away with a bucket of skill points.

Last edited by ZOS_DanBatson : 05/12/20 at 09:56 AM.
  Reply With Quote
05/12/20, 10:01 AM   #10
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
Does it also have some way of telling you how many you've unlocked? So you have 30 of 40 available?
  Reply With Quote
05/12/20, 10:20 AM   #11
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 171
Not as readily, but you can do something like this:

Code:
local count = 0
for _, skillTypeData in SKILLS_DATA_MANAGER:SkillTypeIterator() do
    for _, skillLineData in skillTypeData:SkillLineIterator() do
        count = count + SKILL_POINT_ALLOCATION_MANAGER:GetNumPointsAllocatedInSkillLine(skillLineData)
    end
end
To find out how many points are currently "spent."
  Reply With Quote
05/12/20, 08:34 PM   #12
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
That'll work. Is there similar functionality for easily accessing acquired skyshards and total skyshards? Right now, I'm looping over achievement ids.
  Reply With Quote
05/13/20, 02:11 PM   #13
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 171
Unfortunately no. The best we could maybe do is expose how many partial skill points you've ever acquired, but there's no guarantee they'd always come from Skyshards. Also we would only know how many partial points you've accumulated, not how many are possible. So for Skyshards, skills probably aren't going to be the way to go.

Alternative to achievements, you could use Zone Stories APIs for Skyshards.

iterate zone ids using GetNextZoneStoryZoneId
GetNumZoneActivitiesForZoneCompletionType(zoneId, ZONE_COMPLETION_TYPE_SKYSHARDS)
GetNumCompletedZoneActivitiesForZoneCompletionType(zoneId, ZONE_COMPLETION_TYPE_SKYSHARDS)

Should result in way less loops with way cleaner code.
  Reply With Quote
05/13/20, 11:28 PM   #14
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
I started at the lowest zone that would return a next zone (3) and then looped over it until I hit a nil. 3 generates a map index of 2, which is Glenumbra. Glenumbra only has a single achievement of type skyshard, which is likely Glenumbra Skyshard Hunter. So all that would give me is 1/1 completed (not 16/16). Unless I'm missing something?
  Reply With Quote
05/14/20, 06:49 AM   #15
Kyoma
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 125
Ok, the worldmap uses this for actually getting the amounts for each zone completion type:
https://github.com/esoui/esoui/blob/...yboard.lua#L57

Code:
/script local id = GetNextZoneStoryZoneId()
local t, c = 0, 0
while id ~= nil do
local c2, t2 = ZONE_STORIES_MANAGER.GetActivityCompletionProgressValuesAndText(id, ZONE_COMPLETION_TYPE_SKYSHARDS)
id = GetNextZoneStoryZoneId(id)
t = t + t2
c = c + c2
end
df("%d/%d", c,t)
Gives me: 452/452

Seems for skyshards it just gets achievement ids and then check their criteria completion: https://github.com/esoui/esoui/blob/...nager.lua#L104

Still good to use that method since it'll keep working when new zones/skyshards are added.

Last edited by Kyoma : 05/14/20 at 07:14 AM.
  Reply With Quote
05/14/20, 11:13 AM   #16
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 171
Yes, under the hood it ultimately just loops the associated achievement, sorry I forgot that step. But at least this way you're only looping zones with stories, and only checking achievements that we already know has Skyshards. It's better than looping thousands of achievements or hundreds of zones looking for the ones that matter, or worse, hard coding ids.

Also you can do this:

Code:
local function GetNextZoneStoryZoneIdIter(_, lastZoneId)
    return GetNextZoneStoryZoneId(lastZoneId)
end

for zoneId in GetNextZoneStoryZoneIdIter do

end
You can also use GetActivityCompletionProgressValues instead of GetActivityCompletionProgressValuesAndText since you don't need the text.

Last edited by ZOS_DanBatson : 05/14/20 at 11:18 AM.
  Reply With Quote
05/15/20, 06:16 PM   #17
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
Thanks guys, that's great. I was previously using data from SkyShards and I was coming to 453 versus the 452 returned here. While this method is likely correct: ZOS_DanBatson can you confirm the correct total via other means?
  Reply With Quote
05/15/20, 07:17 PM   #18
Kyoma
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 125
Maybe it doesn't include that very first SkyShard (from the Coldharbour tutorial) since its not tied to a zone that is included by GetNextZoneStoryZoneId? SkyShards just checks for achievement #993 like it does with the others so it differs

Last edited by Kyoma : 05/15/20 at 07:22 PM.
  Reply With Quote
05/18/20, 09:28 AM   #19
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 171
Yea that sounds right. Zone stories isn't going to count the tutorial Skyshard since there's no Zone Story for it. So that would be a limitation of this approach you'd have to work around.
  Reply With Quote
05/18/20, 08:45 PM   #20
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
I added a special check just for that one. It's much better than what I had before.
  Reply With Quote

ESOUI » AddOns » AddOn Search/Requests » Character skill planner?

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