Quantcast 1.6 update - ESOUI
Thread Tools Display Modes
01/26/15, 10:47 AM   #1
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,022
1.6 update

Hi devs,

1.6 is planned to be pushed on PTS tomorrow.

So since we are not very .. organized for patchs. it would be cool to regroup all data somewhere.. here? With the most useful data you'll like to see.



discuss and good debug to everyone!
Attached Files
File Type: txt ESOUIDocumentationP6.txt (376.1 KB, 738 views)
__________________
Obsessive Compulsive Coder

My little french Guild: Cercle de l'Eveil

Last edited by Ayantir : 05/12/15 at 02:20 AM.
  Reply With Quote
01/26/15, 09:54 PM   #2
Baertram
 
Baertram's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 2,267
Is there any overview what will change with each update regarding the source codes/existing functions etc. so we can prepare something in our addons for the next update?

Because a few months ago they had changed all the ItemLink and ItemId stuff and every second addon crashed

Any chance we can see now already what will be changed in detail so we can react?
  Reply With Quote
01/27/15, 01:24 AM   #3
Randactyl
 
Randactyl's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 253
Originally Posted by Baertram View Post
Is there any overview what will change with each update regarding the source codes/existing functions etc. so we can prepare something in our addons for the next update?

Because a few months ago they had changed all the ItemLink and ItemId stuff and every second addon crashed

Any chance we can see now already what will be changed in detail so we can react?
Sometimes they release a text file of the new API version. Either way, I'll be dumping the source tomorrow after the PTS goes up.
__________________
Randactyl | NA Megaserver | Blood for the Pact!

My Addons
Check out my GitHub repos to follow my latest changes and see some addons before they are released.
  Reply With Quote
01/27/15, 10:51 AM   #4
Garkin
 
Garkin's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 853
Patch notes 1.6

http://forums.elderscrollsonline.com...tch-notes-v1-6
__________________
@Garkin (retired from ESO)
My addons: SkyShards, LoreBooks, Dustman, Map Coordinates, No, thank you!, ... (full list)
  Reply With Quote
01/27/15, 02:06 PM   #5
joshmiller83
AddOn Super User
 
joshmiller83's Avatar
Premium Member
Join Date: Mar 2014
Posts: 70
Thumbs up Update 6 API Patch Notes & Change Log (PTS)

http://forums.elderscrollsonline.com...change-log-pts
  Reply With Quote
01/27/15, 03:39 PM   #6
timidobserver
Join Date: Mar 2014
Posts: 37
I am hoping that an author that isn't going anywhere soon puts together an addon that will save champion point builds.

ClearPendingChampionPoints
AddPendingChampionPoints
SpendPendingChampionPoints
These 3 functions should/might make it possible?
  Reply With Quote
01/27/15, 05:21 PM   #7
Garkin
 
Garkin's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 853
EsoUI-1.6-PTS.zip (source w/o .dds files)
__________________
@Garkin (retired from ESO)
My addons: SkyShards, LoreBooks, Dustman, Map Coordinates, No, thank you!, ... (full list)
  Reply With Quote
01/28/15, 12:24 AM   #8
Randactyl
 
Randactyl's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 253
Originally Posted by timidobserver View Post
I am hoping that an author that isn't going anywhere soon puts together an addon that will save champion point builds.

ClearPendingChampionPoints
AddPendingChampionPoints
SpendPendingChampionPoints
These 3 functions should/might make it possible?
That is an interesting thought.
__________________
Randactyl | NA Megaserver | Blood for the Pact!

My Addons
Check out my GitHub repos to follow my latest changes and see some addons before they are released.
  Reply With Quote
01/28/15, 04:11 AM   #9
merlight
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 679
I used these a lot when I started. But it's more convenient for me to have all docs and dumps stored locally. Recently I checked the API page and there was a huge list of non-API functions listed. In the past when I was looking for something, say campaign-related functions, I'd search for "campaign" on the page - now I'd have to skip over ~50 UI handlers providing zero information, not what I want, or even expect... And there's hardly any information that could be added to these handlers, save for a link to source, and for that I'd search source dump, not wiki.


Originally Posted by ESOUIDocumentationP6.txt
IsItemLinkStackable
GetItemLinkStacks
Nice, I will finally have an "auto-loot more of what I already have" option
  Reply With Quote
01/28/15, 04:28 AM   #10
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,022
Originally Posted by merlight View Post
I used these a lot when I started. But it's more convenient for me to have all docs and dumps stored locally. Recently I checked the API page and there was a huge list of non-API functions listed. In the past when I was looking for something, say campaign-related functions, I'd search for "campaign" on the page - now I'd have to skip over ~50 UI handlers providing zero information, not what I want, or even expect... And there's hardly any information that could be added to these handlers, save for a link to source, and for that I'd search source dump, not wiki.
I agree, it's quicker to search with windows search any function when you're a bit confirmed into the code, look at the arguments and use it. but when you start, those pages need to be exhaustives, or we won't get new devs :/
__________________
Obsessive Compulsive Coder

My little french Guild: Cercle de l'Eveil
  Reply With Quote
01/28/15, 10:15 AM   #11
Garkin
 
Garkin's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 853
  • There are changes in itemIDs for provisioning items, for example:
    Code:
    |H1:item:34305:25:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h
    Live server:
    Guar Eggs
    PTS:
    Pumpkins

  • Item links has one more value in data (stolen)
    Old link: |H0:item:16426:1:50:0:0:0:0:0:0:0:0:0:0:0:0:3:0:0:0:0|h|h
    New link: |H0:item:16426:1:50:0:0:0:0:0:0:0:0:0:0:0:0:3:0:0:0:0:0|h|h

  • All cities which have added Outlaws Refugee are now slightly different. If you have coordinates for city maps, you will need to recheck them. (Vulkhel Guard, Mournhold, ...)

  • There is a change in WorldMap tooltip creators, tooltips doesn't work because key "tooltip" now contains mumeric mode instead of tooltip control. I.e. in your creator table change "tooltip = InformationTooltip" to "tooltip = 1"

    It used to be table with the following keys:
    Code:
    creator =  function(pin) that creates tooltip - or I should say function that will be called when mouse is over the pin, it does not need to create tooltip.
    tooltip = tooltip control you want to use.
    hasTooltip = function(pin) which returns true/false to enable/disable tooltip.
    Now it has the following keys:
    Code:
    creator = the same function as above
    tooltip = is now number 1-4, one of this table:
        local TOOLTIP_MODE = {
            INFORMATION = 1,
            KEEP = 2,
            MAP_LOCATION = 3,
            IMPERIAL_CITY = 4,
        }
    hasTooltip = the same function as above
    gamepadCategory = (nilable) string
    gamepadCategoryId = (nilable) number, right now it uses one of:
        local GAMEPAD_PIN_ORDERS = {
            DESTINATIONS = 10,
            AVA_KEEP = 20,
            AVA_OUTPOST = 21,
            AVA_RESOURCE = 22,
            AVA_GATE = 23,
            AVA_ARTIFACT = 24,
            AVA_IMPERIAL_CITY = 25,
            AVA_FORWARD_CAMP = 26,
            CRAFTING = 30,
            QUESTS = 40,
            PLAYERS = 50,
        }
    gamepadCategoryIcon = (nilable) texture path
    gamepadEntryName = (nilable) string
    gamepadSpacing = (nilable) boolean
  • There are 3 new fonts:
    "EsoUI/Common/Fonts/FTN47.otf"
    "EsoUI/Common/Fonts/FTN57.otf"
    "EsoUi/Common/Fonts/FTN87.otf"

  • ZO_FadingControlBuffer:New(control, maxDisplayedLines, fadeAnimationName, translateAnimationName, anchor) now expects ZO_Anchor object instead of anchor point.
    And if you are hooking setup function for templates in this object, it is now called "setup" instead of "setupFunction".

  • There is a new link type:
    COLLECTIBLE_LINK_TYPE = "collectible"

  • All critters have now 9 HP instead of 1 HP. If you were detecting critters using the max HP, you might want to change it.
__________________
@Garkin (retired from ESO)
My addons: SkyShards, LoreBooks, Dustman, Map Coordinates, No, thank you!, ... (full list)

Last edited by Garkin : 01/29/15 at 12:30 PM.
  Reply With Quote
01/28/15, 07:40 PM   #12
Sasky
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 241
Originally Posted by timidobserver View Post
I am hoping that an author that isn't going anywhere soon puts together an addon that will save champion point builds.

ClearPendingChampionPoints
AddPendingChampionPoints
SpendPendingChampionPoints
These 3 functions should/might make it possible?
Looked at it a bit. It's easy to get a dump of currently spent points with something like:
Lua Code:
  1. local function storePoints()
  2.     local out = {}
  3.     for i = 1, GetNumChampionDisciplines() do
  4.         out[i] = {}
  5.         for j = 1, GetNumChampionDisciplineSkills(i) do
  6.             out[i][j] = GetNumPointsSpentOnChampionSkill(i, j)
  7.         end
  8.     end
  9.     return out
  10. end

However, I was unable to get the map to update with those functions. Not sure if I was using it wrong or if it's broken. I was able to directly update the controls on the ui with something like this:
Lua Code:
  1. function AddPendingPoints(i,j,num)
  2.     CHAMPION_PERKS.constellations[i]:GetStars()[j].pendingPoints = num
  3. end

Another thing of interest with the champion system is it looks like they have a console UI prepped for it. You can switch over with CHAMPION_PERKS:ApplyGamepadStyle() though it's mainly just font changes.
  Reply With Quote
01/28/15, 09:13 PM   #13
timidobserver
Join Date: Mar 2014
Posts: 37
Originally Posted by Sasky View Post
Looked at it a bit. It's easy to get a dump of currently spent points with something like:
Lua Code:
  1. local function storePoints()
  2.     local out = {}
  3.     for i = 1, GetNumChampionDisciplines() do
  4.         out[i] = {}
  5.         for j = 1, GetNumChampionDisciplineSkills(i) do
  6.             out[i][j] = GetNumPointsSpentOnChampionSkill(i, j)
  7.         end
  8.     end
  9.     return out
  10. end

However, I was unable to get the map to update with those functions. Not sure if I was using it wrong or if it's broken. I was able to directly update the controls on the ui with something like this:
Lua Code:
  1. function AddPendingPoints(i,j,num)
  2.     CHAMPION_PERKS.constellations[i]:GetStars()[j].pendingPoints = num
  3. end

Another thing of interest with the champion system is it looks like they have a console UI prepped for it. You can switch over with CHAMPION_PERKS:ApplyGamepadStyle() though it's mainly just font changes.
I don't know enough about it to discuss it intelligently, but you should go here (http://www.esoui.com/forums/showthread.php?t=4243) and ask ZOS. They are asking for feedback about the API changes in that thread. It would be nice to know if you should be able to update the map using that function.
  Reply With Quote
01/29/15, 12:31 PM   #14
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,022
New functions

Warning: Spoiler


Removed functions

Warning: Spoiler


New Events

Warning: Spoiler


Removed Events

Warning: Spoiler


New Constants

Warning: Spoiler


Removed Constants

Warning: Spoiler


New Userdata

Warning: Spoiler



Removed Userdata

Warning: Spoiler


New Tables

Warning: Spoiler


Removed Tables

Warning: Spoiler


Added Private / Protected function

Warning: Spoiler


Removed Private / Protected function

Warning: Spoiler
__________________
Obsessive Compulsive Coder

My little french Guild: Cercle de l'Eveil

Last edited by Ayantir : 01/29/15 at 12:46 PM.
  Reply With Quote
01/29/15, 12:31 PM   #15
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,022
ok, feel free to ask other dumps. I think achievements, sounds can be useful, other stuff ?..

Don't forget, ZOS started a topic on eso ui to get some feedback : http://www.esoui.com/forums/showthread.php?t=4243
__________________
Obsessive Compulsive Coder

My little french Guild: Cercle de l'Eveil

Last edited by Ayantir : 01/29/15 at 12:53 PM.
  Reply With Quote
01/29/15, 12:57 PM   #16
Garkin
 
Garkin's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 853
New constant "bonusLabel = 0" is just variable leaking to global. Tha same goes for new table "trainData":

Lua Code:
  1. function ZO_Stable_Gamepad:SetupEntry(control, data, selected, selectedDuringRebuild, enabled, activated)
  2.     data.isSkillTrainable = data.data.isSkillTrainable
  3.     ZO_SharedGamepadEntry_OnSetup(control, data, selected, selectedDuringRebuild, enabled, activated)
  4.  
  5.     trainData = data.data
  6.     ZO_StableTrainingRow_Setup(control, trainData.trainingType)
  7.     bonusLabel = trainData.bonus
  8.     if trainData.trainingType == RIDING_TRAIN_SPEED then
  9.         bonusLabel = zo_strformat(SI_MOUNT_ATTRIBUTE_SPEED_FORMAT, trainData.bonus)
  10.     end
  11.     control.value:SetText(bonusLabel)
  12.     ZO_StatusBar_SmoothTransition(control.bar, trainData.bonus, trainData.maxBonus, FORCE_VALUE)
  13. end

Tables "items" and "usedFilterTypes" are leaking from here:
Lua Code:
  1. local function GetBuyItems()
  2.  
  3.     items = {}
  4.     usedFilterTypes = {}
  5.  
  6.     items, usedFilterTypes = ZO_StoreManager_GetStoreItems()
  7.  
  8.     --- Gamepad versions have extra data / differently named values in templates
  9.     for i, itemData in ipairs(items) do
  10.         itemData.pressedIcon = itemData.icon
  11.         itemData.stackCount = itemData.stack
  12.         itemData.sellPrice = itemData.price
  13.         if itemData.sellPrice == 0 then
  14.             itemData.sellPrice = itemData.stackBuyPriceCurrency1
  15.         end
  16.         itemData.selectedNameColor = ZO_SELECTED_TEXT
  17.         itemData.unselectedNameColor = ZO_DISABLED_TEXT
  18.         itemData.name = zo_strformat(SI_TOOLTIP_ITEM_NAME, itemData.name)
  19.  
  20.         local itemLink = GetStoreItemLink(itemData.slotIndex)
  21.  
  22.         itemData.itemType = GetItemLinkItemType(itemLink)
  23.         itemData.equipType = GetItemLinkEquipType(itemLink)
  24.  
  25.         local IS_STORE_ITEM = true
  26.         itemData.storeGroup = GetItemStoreGroup(itemData, IS_STORE_ITEM, itemLink)
  27.         itemData.bestGamepadItemCategoryName = GetBestItemCategoryDescription(itemData)
  28.     end
  29.  
  30.     return items
  31. end

I'm not sure about table "color", I have it in my globals dump too, but I didn't find it in source code.
__________________
@Garkin (retired from ESO)
My addons: SkyShards, LoreBooks, Dustman, Map Coordinates, No, thank you!, ... (full list)
  Reply With Quote
01/29/15, 01:00 PM   #17
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,022
I'm not responsible if ZOS devs didn't check their code properly !
__________________
Obsessive Compulsive Coder

My little french Guild: Cercle de l'Eveil
  Reply With Quote
01/29/15, 02:13 PM   #18
Garkin
 
Garkin's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 853
Dump of abilityIds with en/de/fr names (if anyone is interested): AbilityList.zip

something like:
Lua Code:
  1. [61493] =
  2. {
  3.     ["en"] = "Inevitable Detonation",
  4.     ["fr"] = "Détonation imparable",
  5.     ["de"] = "unvermeidbare Detonation^f",
  6. },
__________________
@Garkin (retired from ESO)
My addons: SkyShards, LoreBooks, Dustman, Map Coordinates, No, thank you!, ... (full list)
  Reply With Quote
01/29/15, 02:22 PM   #19
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 548
Originally Posted by Garkin View Post
New constant "bonusLabel = 0" is just variable leaking to global. Tha same goes for new table "trainData".
They have been made local internally and the appropriate parties have been shamed.
  Reply With Quote
01/29/15, 04:00 PM   #20
Garkin
 
Garkin's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 853
There are changes in Crystal Fragments proc. Tracking should be easier now.

If you gain proc, it is reported in event EVENT_EFFECT_CHANGED. It means that there is a proc icon on the character page. Arguments:
changeType = some effect result (EFFECT_RESULT_GAINED, EFFECT_RESULT_FADED, ...)
effectSlot = variable number
effectName = "Crystal Fragments Passive" (DE = "Kristallfragmente^p", FR = "Fragments de cristal passifs^pm")
unitTag = "player"
beginTime = time (if EFFECT_RESULT_FADED then 0)
endTime = time (the same as beginTime)
stackCount = 0
iconName = "/esoui/art/icons/ability_mage_065.dds"
buffType = "" --empty string
effectType = BUFF_EFFECT_TYPE_BUFF
abilityType = ABILITY_TYPE_REGISTERTRIGGER
statusEffectType = STATUS_EFFECT_TYPE_NONE


Additionally it will trigger event EVENT_UNIT_ATTRIBUTE_VISUAL_ADDED (or REMOVED / UPDATED). It means that your health bar will be glowing when proc is active. Arguments:
unitTag = "player"
unitAttributeVisual = ATTRIBUTE_VISUAL_INCREASED_STAT
statType = STAT_POWER
attributeType = ATTRIBUTE_HEALTH
powerType = POWERTYPE_HEALTH
value = 200
maxValue = 200
__________________
@Garkin (retired from ESO)
My addons: SkyShards, LoreBooks, Dustman, Map Coordinates, No, thank you!, ... (full list)

Last edited by Garkin : 01/29/15 at 04:06 PM. Reason: fixed one of typos
  Reply With Quote

ESOUI » Developer Discussions » Tutorials & Other Helpful Info » 1.6 update

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