Thread Tools Display Modes
01/29/24, 01:22 PM   #1
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,578
Update 41 (Version 9.3)

The next DLC "Scions of Ithelia" will be available on the PTS later today.

New API Version: 101041

Notable Changes
  • New dungeons, set items, combat changes, etc.
  • New container icons
  • QoL improvements
    • increased undaunted key rewards
    • unified repair kits
    • stackable siege weapons
    • taunt status tracking
    • etc
  • New guild history API
  • New font rendering system
  • Min Spec Update (no more Windows 7 support)

PTS Dev Guild
We have created guilds on the EU and NA server for all addon developers, which get copied over during the PTS cycle for a new update, so we can test guild related things, ask for help with testing or just chat. If you need an invite, ask here or over on our Matrix channel. You are also free to join them on the live servers so you don't always have to be reinvited when the PTS is wiped.

LinksI'll edit the OP with more useful information as you post it and add the links as they become available.

Last edited by Baertram : 03/11/24 at 10:17 AM.
  Reply With Quote
01/30/24, 02:53 AM   #2
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,970
New repair kits will be implemented with update 41

-New "Equipment repair kit" itemId is : 44879 which was "Grand Repair Kit"
-New "Cyrodiil Repair Kit" itemId is : 204483


Assumption: All repair kits are likely to be replaced by the universal one in your inventory.

Thanks Masteroshi for checking this

Last edited by Baertram : 01/30/24 at 02:55 AM.
  Reply With Quote
01/30/24, 08:36 AM   #3
Masteroshi430
 
Masteroshi430's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2020
Posts: 185
New group finder playstyles:

- Story:
GROUP_FINDER_PLAYSTYLE_STORY (enum 32)
lang = SI_GROUPFINDERPLAYSTYLE32

- Roleplay:
GROUP_FINDER_PLAYSTYLE_ROLE_PLAY (enum 16)
lang = SI_GROUPFINDERPLAYSTYLE16
  Reply With Quote
01/30/24, 11:28 AM   #4
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 181
Documentation
Attached Files
File Type: txt APIPatchNotesP41.txt (13.9 KB, 167 views)
File Type: txt ESOUIDocumentationP41.txt (951.6 KB, 155 views)
  Reply With Quote
01/30/24, 11:46 AM   #5
Masteroshi430
 
Masteroshi430's Avatar
AddOn Author - Click to view addons
Join Date: Dec 2020
Posts: 185
Lua Code:
  1. * IsGuildMate(*string* _charOrDisplayName_)
  2. ** _Returns:_ *bool* _isGuildMate_

I suppose the code iterates through your player guilds,
is it possible in the future to also return the guildId if the boolean returns true?
EDIT: Oh, in case of multiple shared guilds, I don't know how it would work... Return a table with shared guilds maybe?

Lua Code:
  1. * GetAncestor(*luaindex* _ancestorIndex_)
  2. ** _Returns:_ *object* _ancestorControl_
You'll have to explain that one...
EDIT: Oh could that be parent of parent?

Lua Code:
  1. * GetNamedSibling(*string* _siblingName_)
  2. ** _Returns:_ *object* _returnedControl_
Pretty neat

Lua Code:
  1. * GetNormal()
  2. ** _Returns:_ *number* _normalX_, *number* _normalY_, *number* _normalZ_
Normalized world position of control?

Last edited by Masteroshi430 : 01/30/24 at 01:17 PM.
  Reply With Quote
01/30/24, 02:40 PM   #6
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,578
Originally Posted by Baertram View Post
New repair kits will be implemented with update 41

-New "Equipment repair kit" itemId is : 44879 which was "Grand Repair Kit"
-New "Cyrodiil Repair Kit" itemId is : 204483


Assumption: All repair kits are likely to be replaced by the universal one in your inventory.

Thanks Masteroshi for checking this
They won't replace them. You simply won't get any more of the old ones. Just got confirmed.
  Reply With Quote
01/30/24, 04:11 PM   #7
Anthonysc
AddOn Author - Click to view addons
Join Date: Jan 2022
Posts: 10
Originally Posted by sirinsidiator View Post
They won't replace them. You simply won't get any more of the old ones. Just got confirmed.
Hopefully they change their minds on this, not converting them is a bad move
  Reply With Quote
01/31/24, 02:18 PM   #8
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,970
ZO_ComboBox changes

ZO_ComboBox changes
The ZO_ComboBox with API101041 will use a new TopLevelControl for the dropdown (the scroll list that opens below the combobox and shows the selectable entries) so that the dropdown overlays other controls properly.

Basically you should not see any difference and have nothing to do in your addons if you have not accessed your combobox/dropdown by
any internal references like combobox.m_dropdown or combobox.m_scroll

-> But if you are referecing/accessing those, please read below how to fix these missing references within API101041


What did ZOs do to fix the overlaying dropdowns?
For that purpose ZOs has added a new dropdownObject (with it's own class ZO_ComboBoxDropdown_Keyboard) which get's set at the ZO_ComboBox init function:

Lua Code:
  1. function ZO_ComboBox:Initialize(control)
  2. ...
  3. self:SetDropdownObject(ZO_COMBO_BOX_DROPDOWN_KEYBOARD)

The object ZO_COMBO_BOX_DROPDOWN_KEYBOARD will be passed in via the XML:
Code:
<TopLevelControl name="ZO_ComboBoxDropdown_Singleton_Keyboard" inherits="ZO_ComboBoxDropdown_Keyboard_Template">
            <OnInitialized name="ComboBoxSingleton">
                ZO_COMBO_BOX_DROPDOWN_KEYBOARD = self.object <!-- self.object will be set as the XML object get's created, see below -->
            </OnInitialized>
        </TopLevelControl>

Thix XML inherits from the other virtual XML ZO_ComboBoxDropdown_Keyboard_Template:
Code:
<TopLevelControl name="ZO_ComboBoxDropdown_Keyboard_Template" hidden="true" virtual="true" tier="HIGH" level="ZO_HIGH_TIER_KEYBOARD_COMBO_BOX_DROPDOWN" mouseEnabled="true" clampedToScreen="true">
            <Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" />
            <!-- Width will be set programmatically -->

            <OnInitialized>
                ZO_ComboBoxDropdown_Keyboard.InitializeFromControl(self)
            </OnInitialized>

OnInitialized calls:
Lua Code:
  1. ZO_ComboBoxDropdown_Keyboard.InitializeFromControl(control)
  2.    local dropdownObject = ZO_ComboBoxDropdown_Keyboard:New(control)
  3.     control.object = dropdownObject --here self.object will be set at the XML created object of

Attention: The object ZO_COMBO_BOX_DROPDOWN_KEYBOARD is a "singleton" so it is only craeted ONCE for ALL ZO_comboBoxes which makes it impossible to open 2 comboboxes at the same time (as the same TLC will be reused to show the list entries).

What do I have to do if my addon get nil errors (e.g. at .m_dropdown or .m_scroll)?
The difference to API 101040 is that ZO_ComboBox.m_dropdown and .m_scroll do not exist any longer! They moved to .m_dropdownObject


To implement current support for live AND PTS API101041 you can do something like
Lua Code:
  1. --ZO_ComboBox changes with API101041 -> ZO_ComboBox uses a TLC for the dropdown now -> dropdownObject
  2. local APIVersion = GetAPIVersion()
  3. local apiVersionUpdate3_8 = 101041
  4. local isUsingDropdownObject = (APIVersion >= apiVersionUpdate3_8 and true) or false

And in your code then use it like this:
Lua Code:
  1. --API101041+
  2. if isUsingDropdownObject then
  3.    comboBox:SetDropdownObject(MY_ADDONS_COMBO_BOX_DROPDOWN_KEYBOARD) --if you have defined your own dropdownObject XML template e.g. with name MY_ADDONS_COMBO_BOX_DROPDOWN_KEYBOARD -> Function will set comboBox.m_dropdownObject!
  4.   local dropdownObject = comboBox.m_dropdownObject
  5.   --Backwards compatibility with code before API101041 as m_dropdown and m_scroll do not exist in API101041 keyboard mode anylonger (were moved to m_dropdownObject!)
  6.   comboBox.m_dropdown = dropdownObject.control
  7.   comboBox.m_scroll = dropdownObject.scrollControl
  8. end
  9. ... --code of API101040


Entries at the combobox's dropdown changed from table to ZO_EntryData!!!
The function ZO_ComboBox:AddMenuItems will now simply call the combobox.m_dropdownObject:Show() function

Lua Code:
  1. function ZO_ComboBox:AddMenuItems()
  2.     self.m_dropdownObject:Show(self, self.m_sortedItems, self.m_containerWidth, self.m_height, self:GetSpacing())
  3. end
  4.  
  5. -> This Show function loops the m_sortedItems table of the ZO_ComboBox and builds ZO_EntryData entries then of it, adds them to a table "dataList" and then calculates height and width of the dropdown absed on the entries, and finally populates them at the ZO_ScrollList.
  6.  
  7. function ZO_ComboBoxDropdown_Keyboard:Show(comboBox, itemTable, minWidth, maxHeight, spacing)
  8.  ...
  9.  local numItems = #itemTable
  10.     local dataList = ZO_ScrollList_GetDataList(self.scrollControl)
  11.  
  12.     local largestEntryWidth = 0
  13.     local allItemsHeight = 0
  14.  
  15.     for i = 1, numItems do
  16.  ...
  17.       local entry = CreateScrollableComboBoxEntry(self, item, i, entryType)
  18.         table.insert(dataList, entry)
  19. ...
  20.     end
  21. end

Function CreateScrollableComboBoxEntry creates the ZO_DataEntry entries here.
If you need to manually add entries to your ZO_ComboBox you can copy that local function from ZOs code and reuse it that way at your ZO_ComboBox:AddMenuItems OR at your version of function MY_ADDONS_COMBO_BOX_DROPDOWN_KEYBOARD:Show(comboBox, itemTable, minWidth, maxHeight, spacing)

Here is the function's code:
Lua Code:
  1. local function CreateScrollableComboBoxEntry(self, item, index, entryType)
  2.     local entryData = ZO_EntryData:New(item)
  3.     entryData.m_index = index
  4.     entryData.m_owner = self.owner
  5.     entryData.m_dropdownObject = self
  6.     entryData:SetupAsScrollListDataEntry(entryType)
  7.     return entryData
  8. end


Edit:
Currently clicking the ZO_ComboBox control does not open the dropdown, only clicking the small v button does open it (and if that buttons DrawLevel is too low it hides behind the other controls so you might have to change the DrawLevel in your XML code to the same/higher than the combobox control's!).
Here is an info from code who realized that, and ZOs answer:

code65536
@(ZOS) DanBatson (ZOS) SethL There is a bug on PTS related to your refactor of ZO_ComboBox... specifically, the down arrow button will not open the dropdown... clicking on the dropdown box itself works, but if you target the arrow button, it won't actually work... I can confirm that this is a problem on the Feb. 19 PTS even with zero addons loaded

(ZOS) SethL
This has been fixed internally and is making its way up the chain. It should be fixed by the time we hit live

Last edited by Baertram : 03/10/24 at 07:12 AM.
  Reply With Quote
02/02/24, 07:02 AM   #9
Baertram
Super Moderator
 
Baertram's Avatar
WoWInterface Super Mod
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 4,970
Undaunted - DLC dungeon key reward changes

Increased Undaunted Key Rewards
The Undaunted have finally recognized the increased difficulty of daily dungeon quests offered by Urgarlag Chief-bane. Accordingly, the Undaunted key rewards have been increased to incentivize intrepid adventurers to band together and clear out those more dangerous dungeons. This does not affect quests offered by Glirion the Redbeard or Maj al-Ragath.

Normal: 1 -> 2 Keys
Veteran: 1 -> 3 Keys
Veteran Hard Mode: 2 -> 4 Keys
Means if your addon shows any tooltip about undaunted (key) make sure to update the tooltips/info accordingly.
  Reply With Quote
03/04/24, 10:57 AM   #10
ZOS_DanBatson
ZOS Staff!
 
ZOS_DanBatson's Avatar
Yes this person is from ZeniMax!
Join Date: Jul 2015
Posts: 181
Updated documentation
Attached Files
File Type: txt APIPatchNotesP41_2.txt (3.5 KB, 174 views)
File Type: txt ESOUIDocumentationP41_2.txt (952.9 KB, 310 views)
  Reply With Quote

ESOUI » Developer Discussions » Tutorials & Other Helpful Info » Update 41 (Version 9.3)

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