ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   General Authoring Discussion (https://www.esoui.com/forums/forumdisplay.php?f=174)
-   -   Changes on PTS 1.2.2 (https://www.esoui.com/forums/showthread.php?t=1811)

Garkin 06/19/14 11:38 AM

Changes on PTS 1.2.2
 
Anyone trying public test server? Please post changes you have found so far.

I will start:
  • APIVersion in manifest is 100007

  • Itemlinks are now different. This is how itemlink looks like on PTS:
    Code:

    |H0:item:54513:3:9:45870:3:9:0:0:0:0:0:0:0:0:0:5:0:0:0:0|h|h
    |H0:item:793:1:5:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h
    |H0:item:45024:19:12:26848:19:12:0:0:0:0:0:0:0:0:0:9:0:0:124:0|h|h

    New format is:
    Lua Code:
    1. "|H" .. linkStyle .. ":" .. linkType .. ":" .. data .. "|h" .. text .. "|h"
    Variable "text" is usualy empty string, at least in links generated using the GetItemLink(bagIndex, slotIndex) and links which you get from events (tested with EVENT_LOOT_RECEIVED and EVENT_INVENTORY_SINGLE_SLOT_UPDATE).

    New CreateLink and ParseLink functions:
    Lua Code:
    1. function ZO_LinkHandler_CreateLink(text, color, linkType, ...) --where ... is the data to encode
    2.     if linkType then
    3.         return ("|H%d:%s|h[%s]|h"):format(LINK_STYLE_BRACKETS, zo_strjoin(':', linkType, ...), text)
    4.     end
    5. end
    6.      
    7. function ZO_LinkHandler_ParseLink(link)
    8.     if type(link) == "string" then
    9.         local linkStyle, data, text = link:match("|H(.-):(.-)|h(.-)|h")
    10.         return text, linkStyle, zo_strsplit(':', data)
    11.     end
    12. end

  • It seems that all objects shown on "hud" scene are now scene fragments based on ZO_HUDFadeSceneFragment object. On live servers are still some windows (ZO_ActionBar1, ZO_Compass) shown/hidden just using the method :SetHidden(). On PTS you can use scene fragments COMPASS_FRAME_FRAGMENT, ACTION_BAR_FRAGMENT, UNIT_FRAMES_FRAGMENT, DEATH_FRAGMENT, FOCUSED_QUEST_TRACKER_FRAGMENT, ...

  • New events (or events which I didn't find on wiki):
    EVENT_INPUT_LANGUAGE_CHANGED ()
    EVENT_JUSTICE_BOUNTY_ADDED (bountyAmount, zoneName)
    EVENT_SAVE_GUILD_RANKS_RESPONSE (guildId, result)
    EVENT_DISCOVERY_EXPERIENCE (subzoneName, level, previousExperience, currentExperience) (probably instead of EVENT_EXPERIENCE_GAIN_DISCOVERY)

  • Event handler for EVENT_FRIEND_PLAYER_STATUS_CHANGED has a new argument "characterName":
    Live: EVENT_FRIEND_PLAYER_STATUS_CHANGED (displayName, oldStatus, newStatus)
    PTS: EVENT_FRIEND_PLAYER_STATUS_CHANGED (displayName, characterName, oldStatus, newStatus)

  • A new update reason for event EVENT_INVENTORY_SINGLE_SLOT_UPDATE:
    INVENTORY_UPDATE_REASON_DYE_CHANGE

  • Center screen announce object has now global reference CENTER_SCREEN_ANNOUNCE, the old function ZO_CenterScreenAnnounce_GetAnnounceObject() was removed.

  • A new return value "isOwned" from GetLootTargetInfo()
    Live: name, targetType, actionName = GetLootTargetInfo()
    PTS: name, targetType, actionName, isOwned = GetLootTargetInfo()

  • A new return value "isOwned" from GetGameCameraInteractableActionInfo()
    Live: action, interactableName, interactionBlocked, additionalInfo, context = GetGameCameraInteractableActionInfo()
    PTS: action, interactableName, interactionBlocked, isOwned, additionalInfo, context = GetGameCameraInteractableActionInfo()

  • A new GameCameraAdditionalInfo:
    ADDITIONAL_INTERACT_INFO_INSTANCE_TYPE

  • There are three new functions instead of GetMailItemInfo(mailId):
    senderDisplayName, senderCharacterName = GetMailSender(mailId)
    _, _, fromSystem, fromCustomerService = GetMailFlags(mailId)
    numAttachments, attachedMoney, codAmount = GetMailAttachmentInfo(mailId)
    (there is probably more return values)

  • Some changes to the chat channel categories. I didn't test it much, but if you want to get category you have to use GetChannelCategoryFromChannel(CHAT_CHANNEL_SAY) instead of just CHAT_CHANNEL_SAY. UI errors from X4D_Chat addon are caused by this change.

  • New return value from GetChatterFarewell():
    Live: backToTOC, farewell = GetChatterFarewell()
    PTS: backToTOC, farewell, isImportant = GetChatterFarewell()

  • New slotType SLOT_TYPE_DYEABLE_EQUIPMENT (return value from GetSlotType(slotIndex) or ZO_InventorySlot_GetType(inventorySlot)

  • Function ZO_ItemTooltip_AddLockIcon(tooltipControl) was removed.

  • Two new functions in global API:
    zo_percentBetween(startValue, endValue, value)
    zo_replaceInVarArgs(indexToReplace, itemToReplaceWith, ...)

  • ZO_ColorDef object has a new method :IsEqual(other).


Harven 06/19/14 12:14 PM

Some changes which i have discovered:
  • Reasons from EVENT_EXPERIENCE_UPDATE and EVENT_VETERAN_POINTS_UPDATE events has been unified, instead of XP_REASON_* and VP_REASON_* now these should be used (there are some new reasons):
    - PROGRESS_REASON_NONE = -1
    - PROGRESS_REASON_KILL = 0
    - PROGRESS_REASON_QUEST = 1
    - PROGRESS_REASON_COMPLETE_POI = 2
    - PROGRESS_REASON_DISCOVER_POI = 3
    - PROGRESS_REASON_COMMAND = 4
    - PROGRESS_REASON_KEEP_REWARD = 5
    - PROGRESS_REASON_BATTLEGROUND = 6
    - PROGRESS_REASON_SCRIPTED_EVENT = 7
    - PROGRESS_REASON_MEDAL = 8
    - PROGRESS_REASON_FINESSE = 9
    - PROGRESS_REASON_LOCK_PICK = 10
    - PROGRESS_REASON_COLLECT_BOOK = 11
    - PROGRESS_REASON_BOOK_COLLECTION_COMPLETE = 12
    - PROGRESS_REASON_ACTION = 13
    - PROGRESS_REASON_GUILD_REP = 14
    - PROGRESS_REASON_AVA = 15
    - PROGRESS_REASON_TRADESKILL = 16
    - PROGRESS_REASON_REWARD = 17
    - PROGRESS_REASON_TRADESKILL_ACHIEVEMENT = 18
    - PROGRESS_REASON_TRADESKILL_QUEST = 19
    - PROGRESS_REASON_TRADESKILL_CONSUME = 20
    - PROGRESS_REASON_TRADESKILL_HARVEST = 21
    - PROGRESS_REASON_TRADESKILL_RECIPE = 22
    - PROGRESS_REASON_TRADESKILL_TRAIT = 23
    - PROGRESS_REASON_OVERLAND_BOSS_KILL = 24
    - PROGRESS_REASON_ACHIEVEMENT = 25
    - PROGRESS_REASON_BOSS_KILL = 26
    - PROGRESS_REASON_EVENT = 27
    - PROGRESS_REASON_DARK_ANCHOR_CLOSED = 28
    - PROGRESS_REASON_DARK_FISSURE_CLOSED = 29
    - PROGRESS_REASON_SKILL_BOOK = 30
    - PROGRESS_REASON_OTHER = 31
    - PROGRESS_REASON_GRANT_REPUTATION = 32
    - PROGRESS_REASON_ALLIANCE_POINTS = 33
    - PROGRESS_REASON_PVP_EMPEROR = 34
    - PROGRESS_REASON_DUNGEON_CHALLENGE = 35

  • Changes to Texture control (CT_TEXTURE):
    removed methods:
    - GetTextureInfo()
    - SetPixelRounding()
    new methods:
    - GetTextureCoords()
    - SetPixelRoundingEnabled(),
    - GetPixelRoundingEnabled(),
    - GetTextureFileName(),
    - GetBlendMode(),
    - GetDesaturation(),

  • New control CT_TEXTURECOMPOSITE = 20
Seems like there are lots of changes. I hope ZO will release the updated API.

Xrystal 06/19/14 02:36 PM

Quote:

•A new return value "isOwned" from GetLootTargetInfo()
Live: name, targetType, actionName = GetLootTargetInfo()
PTS: name, targetType, actionName, isOwned = GetLootTargetInfo()


•A new return value "isOwned" from GetGameCameraInteractableActionInfo()
Live: action, interactableName, interactionBlocked, additionalInfo, context = GetGameCameraInteractableActionInfo()
PTS: action, interactableName, interactionBlocked, isOwned, additionalInfo, context = GetGameCameraInteractableActionInfo()

hmm one wonders what the isOwned means seeing as loot is yours the moment you do some damage to the target. So, does it work similar to the LootReceived event to imply that you will receive interact Info from other people ? Or LootTarget info from other people ?

Looks like I will definitely have to jump on that server as these 2 functions will affect my gatherer addon.



edit: .... Owned By .. *slaps head* .. of course with stealing being possible it is just saying whether the item you are interacting belongs to someone else. ...

Sasky 06/19/14 06:02 PM

Errors for various addons when I opened it up below. Seems to be something changed with inventory window, as several of the non-functional addons (normally) put a column in the inventory window. As well, they completely mess it up. Research Assistant does work for adding its marks, though.

ESOutpost:
Warning: Spoiler

BankManager:
Warning: Spoiler

ShowMotifs:
Warning: Spoiler

LibSort (in Sous Chef)
Warning: Spoiler


On opening inventory window, almost all spaces are missing, and the following error is generated:
Warning: Spoiler

Halja 06/19/14 06:35 PM

I kind glanced over the SI_ string table and a few things jumped out at me. The strings table suggests they reorder item styles. Which could be the cause of the inventory errors.
These two appear new:
["SI_ITEMSTYLE11"] = "Thieves Guild"
["SI_ITEMSTYLE12"] = "Dark Brotherhood"
Theft is about to be tracked.
["SI_STOREFAILURE19"] = "You can't sell stolen items here."
["SI_TRADEACTIONRESULT66"] = "That item is stolen."
["SI_TRADINGHOUSERESULT23"] = "You cannot sell stolen items to other players."
Dyeing items is close? There are a bunch of SI_DYE* strings.
Guild identification options with SI_GUILD_HERALDRY*

--halja

Garkin 06/19/14 07:12 PM

Quote:

Originally Posted by Halja (Post 9523)
I kind glanced over the SI_ string table and a few things jumped out at me. The strings table suggests they reorder item styles. Which could be the cause of the inventory errors.
These two appear new:
["SI_ITEMSTYLE11"] = "Thieves Guild"
["SI_ITEMSTYLE12"] = "Dark Brotherhood"
Theft is about to be tracked.
["SI_STOREFAILURE19"] = "You can't sell stolen items here."
["SI_TRADEACTIONRESULT66"] = "That item is stolen."
["SI_TRADINGHOUSERESULT23"] = "You cannot sell stolen items to other players."
Dyeing items is close? There are a bunch of SI_DYE* strings.
Guild identification options with SI_GUILD_HERALDRY*

--halja

Item styles are already on live servers, they were added with Craglorn update.
But they are really adding a lots of items promised here.

SI_SIEGETYPE9 = "Battle Standard"

SI_ITEMTYPE8 = "Motif"

SI_ITEMTYPE51 = "Potency Runestone"
SI_ITEMTYPE52 = "Aspect Runestone"
SI_ITEMTYPE53 = "Essence Runestone"
Removed: SI_ITEMTYPE32 = "Runestone"

SI_INSTANCETYPE1 = "(Solo Instance)" --something I can use on tooltips for SkyShards
SI_INSTANCETYPE2 = "(Group Instance)"
SI_INSTANCETYPE3 = "(Trial Instance)"

SI_GAMECAMERAACTIONTYPE19 = "Steal"
SI_GAMECAMERAACTIONTYPE20 = "Steal From"

SI_INTERACT_OPTION_FLEE_ARREST = "Flee"
SI_INTERACT_OPTION_CREATE_TABLET = "Create Spellcrafting Tablet"
SI_INTERACT_OPTION_GUILDKIOSK_BID = "Bid on Guild Kiosk"
SI_INTERACT_OPTION_GUILDKIOSK_PURCHASE = "Purchase Guild Kiosk"

SI_BINDING_NAME_COMMAND_PET = "Command pet" --binding to give command to pets?

And lots of strings for dyes, new guild options, guild heraldry, guild store improvements...

Garkin 06/19/14 08:26 PM

Quote:

Originally Posted by Sasky (Post 9518)
Errors for various addons when I opened it up below. Seems to be something changed with inventory window, as several of the non-functional addons (normally) put a column in the inventory window. As well, they completely mess it up. Research Assistant does work for adding its marks, though.
...

ESOutpost:
UI error because of ITEMTYPE_ENCHANTING_RUNE was replaced with:
ITEMTYPE_ENCHANTING_RUNE_ASPECT
ITEMTYPE_ENCHANTING_RUNE_ESSENCE
ITEMTYPE_ENCHANTING_RUNE_POTENCY

and ITEMTYPE_SCROLL is now ITEMTYPE_RACIAL_STYLE_MOTIF.

And if I'm not mistaken, there are missing 3 item styles:
ITEMSTYLE_ORG_DARK_BROTHERHOOD
ITEMSTYLE_ORG_THIEVES_GUILD
ITEMSTYLE_RAIDS_CRAGLORN

Bank Manager:
The same error as above.

Show Motifs
Error because of changed itemlinks - there is no color information in the itemlink now.

LibSort
It seems that function ZO_SortHeader_SetMouseCallback() has been removed.
Old code:
Lua Code:
  1. function LibSort:SetupArrows()
  2.     LibSort.ItemSortBank = wm:CreateControlFromVirtual("ItemSortBank", ZO_PlayerBankSortBy, "ZO_SortHeaderIcon")
  3.     LibSort.ItemSortBank:SetDimensions(16, 32)
  4.     LibSort.ItemSortBank:SetAnchor(RIGHT, ZO_PlayerBankSortByName, LEFT, -15)
  5.     ZO_SortHeader_SetMouseCallback(ItemSortBank,    function(header, eventType)
  6.                                                             if(eventType == "OnMouseEnter") then
  7.                                                                 InitializeTooltip(InformationTooltip, ItemSortBank, BOTTOMRIGHT, 0, 32)
  8.                                                                 SetTooltipText(InformationTooltip, "Sort")
  9.                                                             else
  10.                                                                 ClearTooltip(InformationTooltip)
  11.                                                             end
  12.                                                         end)
  13.     ZO_PlayerInventory_InitSortHeaderIcon(LibSort.ItemSortBank,
  14.                                     "EsoUI/Art/Miscellaneous/list_sortHeader_icon_neutral.dds",
  15.                                     "EsoUI/Art/Miscellaneous/list_sortHeader_icon_sortUp.dds",
  16.                                     "EsoUI/Art/Miscellaneous/list_sortHeader_icon_sortDown.dds",
  17.                                     "EsoUI/Art/Miscellaneous/list_sortHeader_icon_over.dds",
  18.                                     "age")                      
  19.    
  20.     PLAYER_INVENTORY.inventories[INVENTORY_BANK].sortHeaders:AddHeader(ItemSortBank)
  21.  
  22.     LibSort.ItemSortGuild = wm:CreateControlFromVirtual("ItemSortGuild", ZO_GuildBankSortBy, "ZO_SortHeaderIcon")
  23.     LibSort.ItemSortGuild:SetDimensions(16, 32)
  24.     LibSort.ItemSortGuild:SetAnchor(RIGHT, ZO_GuildBankSortByName, LEFT, -15)
  25.     ZO_SortHeader_SetMouseCallback(ItemSortGuild,    function(header, eventType)
  26.                                                             if(eventType == "OnMouseEnter") then
  27.                                                                 InitializeTooltip(InformationTooltip, ItemSortGuild, BOTTOMRIGHT, 0, 32)
  28.                                                                 SetTooltipText(InformationTooltip, "Sort")
  29.                                                             else
  30.                                                                 ClearTooltip(InformationTooltip)
  31.                                                             end
  32.                                                         end)
  33.     ZO_PlayerInventory_InitSortHeaderIcon(LibSort.ItemSortGuild,
  34.                                     "EsoUI/Art/Miscellaneous/list_sortHeader_icon_neutral.dds",
  35.                                     "EsoUI/Art/Miscellaneous/list_sortHeader_icon_sortUp.dds",
  36.                                     "EsoUI/Art/Miscellaneous/list_sortHeader_icon_sortDown.dds",
  37.                                     "EsoUI/Art/Miscellaneous/list_sortHeader_icon_over.dds",
  38.                                     "age")                      
  39.     PLAYER_INVENTORY.inventories[INVENTORY_GUILD_BANK].sortHeaders:AddHeader(ItemSortGuild)
  40. end
Should be replaced with:
Lua Code:
  1. function LibSort:SetupArrows()
  2.     LibSort.ItemSortBank = wm:CreateControlFromVirtual("ItemSortBank", ZO_PlayerBankSortBy, "ZO_SortHeaderIcon")
  3.     LibSort.ItemSortBank:SetDimensions(16, 32)
  4.     LibSort.ItemSortBank:SetAnchor(RIGHT, ZO_PlayerBankSortByName, LEFT, -15)
  5.     ZO_SortHeader_SetTooltip(LibSort.ItemSortBank, "Sort", BOTTOMRIGHT, 0, 32)
  6.     ZO_SortHeader_InitializeArrowHeader(LibSort.ItemSortBank, "age", ZO_SORT_ORDER_DOWN)
  7.    
  8.     PLAYER_INVENTORY.inventories[INVENTORY_BANK].sortHeaders:AddHeader(ItemSortBank)
  9.  
  10.     LibSort.ItemSortGuild = wm:CreateControlFromVirtual("ItemSortGuild", ZO_GuildBankSortBy, "ZO_SortHeaderIcon")
  11.     LibSort.ItemSortGuild:SetDimensions(16, 32)
  12.     LibSort.ItemSortGuild:SetAnchor(RIGHT, ZO_GuildBankSortByName, LEFT, -15)
  13.     ZO_SortHeader_SetTooltip(LibSort.ItemSortGuild, "Sort", BOTTOMRIGHT, 0, 32)
  14.     ZO_SortHeader_InitializeArrowHeader(LibSort.ItemSortGuild, "age", ZO_SORT_ORDER_DOWN)
  15.  
  16.     PLAYER_INVENTORY.inventories[INVENTORY_GUILD_BANK].sortHeaders:AddHeader(ItemSortGuild)
  17. end
(there could be more issues, I didn't try it)

CrazyDutchGuy 06/20/14 12:28 PM

Itemlinks are now different. This is how itemlink looks like on PTS:
Code:

|H0:item:54513:3:9:45870:3:9:0:0:0:0:0:0:0:0:0:5:0:0:0:0|h|h
|H0:item:793:1:5:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h
|H0:item:45024:19:12:26848:19:12:0:0:0:0:0:0:0:0:0:9:0:0:124:0|h|h

New format is:
Lua Code:
  1. "|H" .. linkStyle .. ":" .. linkType .. ":" .. data .. "|h" .. text .. "|h"

Okay this change kinda cracks me up as i had some custom links with different colors, and a ton of normal itemlinks ...

Anyways linkStyle
0 = no brackets
1 = brackets
linkstyle only seems to apply on official item links, for custom links it doesn't

If you want to manual color links, didn't find another way.
Lua Code:
  1. "|c"..hexcolor.."|H" .. linkStyle .. ":" .. linkType .. ":" .. data .. "|h" .. text .. "|h".."|r"

CrazyDutchGuy 06/20/14 01:13 PM

Some MapID's have changed, below the new list

2 Glenumbra
4 Stormhaven
5 Rivenspire
9 Stonefalls
11 Deshaan
12 Malabal Tor
15 Bangkorai
16 Eastmarch
17 The Rift
18 Alik'r Desert
19 Greenshade
20 Shadowfen
38 Cyrodiil
110 Bleakrock Isle
111 Bal Foyen
155 Coldharbour
179 Auridon
180 Reaper's March
181 Grahtwood
293 Stros M'Kai
294 Betnikh
295 Khenarthi's Roost
353 Craglorn

Garkin 06/21/14 05:36 AM

Quote:

Originally Posted by CrazyDutchGuy (Post 9565)
Some MapID's have changed, below the new list

2 Glenumbra
4 Stormhaven
5 Rivenspire
9 Stonefalls
11 Deshaan
12 Malabal Tor
15 Bangkorai
16 Eastmarch
17 The Rift
18 Alik'r Desert
19 Greenshade
20 Shadowfen
38 Cyrodiil
110 Bleakrock Isle
111 Bal Foyen
155 Coldharbour
179 Auridon
180 Reaper's March
181 Grahtwood
293 Stros M'Kai
294 Betnikh
295 Khenarthi's Roost
353 Craglorn

Yeah, zoneIndex is different now ( GetCurrentMapZoneIndex() ), it seems that there is a new map with zoneIndex == 10.

mapIndex is still the same:
Code:

--GetCurrentMapIndex()
local mapIDs = {
    [1] = "Tamriel",
    [2] = "Glenumbra",
    [3] = "Rivenspire",
    [4] = "Stormhaven",
    [5] = "Alik'r Desert",
    [6] = "Bangkorai",
    [7] = "Grahtwood",
    [8] = "Malabal Tor",
    [9] = "Shadowfen",
    [10] = "Deshaan",
    [11] = "Stonefalls",
    [12] = "The Rift",
    [13] = "Eastmarch",
    [14] = "Cyrodiil",
    [15] = "Auridon",
    [16] = "Greenshade",
    [17] = "Reaper's March",
    [18] = "Bal Foyen",
    [19] = "Stros M'Kai",
    [20] = "Betnikh",
    [21] = "Khenarthi's Roost",
    [22] = "Bleakrock Isle",
    [23] = "Coldharbour",
    [24] = "Oblivion",
    [25] = "Craglorn"
}


Harven 06/23/14 07:48 AM

  • New trading house functions (there may be more, but these are nice):
    - GetTradingHouseCooldownRemaining()
    - GetTradingHouseSearchResultItemLink()
    - GetTradingHouseListingItemLink()

sirinsidiator 06/24/14 12:40 PM

Custom links without text do not seem to work anymore:
Code:

|Hignore:customType:data|h|h
At least on window using \13 (carriage return) seems to work fine as an invisible character:
Code:

|Hignore:customType:data|h\13|h
Would be nice if somebody could test this on macOS.

Harven 06/24/14 05:22 PM

Hey,
I just figured out that you can no longer insert custom links into chat edit box.

None of the following will work (worked in the previous version):
Lua Code:
  1. ZO_ChatWindowTextEntryEditBox:SetText("|H1:customlink:somedata|htext|h")
  2. ZO_ChatWindowTextEntryEditBox:InsertText("|H1:customlink:somedata|htext|h")
  3. CHAT_SYSTEM:StartTextEntry("|H1:customlink:somedata|htext|h")
  4. ZO_LinkHandler_InsertLink("|H1:customlink:somedata|htext|h")

This will work:
Lua Code:
  1. ZO_LinkHandler_InsertLink("|H1:item:43561:319:3:0:0:0:0:0:0:0:0:0:0:0:0:4:0:0:0:0|h|h")

Looks like there is some work done outside the lua code to not allow custom links to be entered into the chat. I fear that it will apply to colours also (haven't tested yet).

SkOODaT 06/24/14 07:00 PM

seems something happen to GetMapPlayerPosition('reticleover') i get all zeros now :S


it seems GetMapPlayerPosition can only be used with "player" :( i really hope the API has added functions to complement some things like a target x.y if they removed it off GetMapPlayerPosition()

seems range reticule is completely busted too with this change it was using GetMapPlayerPosition('reticleover') :S

esohead is also affected by this appearently NPC logging will be bugged :(

ReticleSettings and the MUST NEEDED ZrMM used it too :(

katkat42 06/24/14 10:13 PM

I just updated the wiki with the new and removed events. These are the changes I found via Zgoo. I have no idea what the arguments passed by the new events are, but I think this is a start.

Warning: Spoiler

L8Knight 06/24/14 10:39 PM

Quote:

Originally Posted by Garkin (Post 9511)
  • It seems that all objects shown on "hud" scene are now scene fragments based on ZO_HUDFadeSceneFragment object. On live servers are still some windows (ZO_ActionBar1, ZO_Compass) shown/hidden just using the method :SetHidden(). On PTS you can use scene fragments COMPASS_FRAME_FRAGMENT, ACTION_BAR_FRAGMENT, UNIT_FRAMES_FRAGMENT, DEATH_FRAGMENT, FOCUSED_QUEST_TRACKER_FRAGMENT, ...

I'm having trouble understanding this change. I've never used a scene fragment before. Does anyone know of an add-on that uses them as an example?

I'm trying to force the experience bar to be displayed which is now called ZO_PlayerProgressBar, but when I call SetHidden(false) it does not display. The old ZO_ExperienceBar worked fine. Any clues or documentation as to how I can get this working?

Garkin 06/25/14 04:29 AM

Quote:

Originally Posted by L8Knight (Post 9675)
I'm having trouble understanding this change. I've never used a scene fragment before. Does anyone know of an add-on that uses them as an example?

I'm trying to force the experience bar to be displayed which is now called ZO_PlayerProgressBar, but when I call SetHidden(false) it does not display. The old ZO_ExperienceBar worked fine. Any clues or documentation as to how I can get this working?

I still do not have patch installed, so just something I have found on PTS:
There are 2 new scene fragments for player progress bar:
Code:

ZO_PlayerProgressBarFragment
ZO_PlayerProgressBarCurrentFragment

Try which one you need - just call method :Show(). And then add scene fragment to scenes where you want to show them. A while back there was some discussion about scene fragments:
http://www.esoui.com/forums/showthread.php?t=1552
http://www.esoui.com/portal.php?&id=27&pageid=12

Garkin 06/25/14 04:21 PM

If I use d(zo_strformat("text <<t:1>>", itemLink), it will print "textitemlink" - all spaces in front of the itemlink are removed. Is there any way how to get it working correctly?

SkOODaT 06/25/14 04:27 PM

Quote:

Originally Posted by Garkin (Post 9748)
If I use d(zo_strformat("text <<t:1>>", itemLink), it will print "textitemlink" - all spaces in front of the itemlink are removed. Is there any way how to get it working correctly?

wow if your stumped and asking us lol :) Ive been seeing on forums ppl are having problems with itemlink spacing hopefully ZO releases some info for authors soon

Deome 06/26/14 10:05 AM

Hopeless IMO
 
Quote:

Originally Posted by Garkin (Post 9748)
If I use d(zo_strformat("text <<t:1>>", itemLink), it will print "textitemlink" - all spaces in front of the itemlink are removed. Is there any way how to get it working correctly?

I spent about 6 hours with Zgoo, /script, and /reloadui last night, and I have come to the conclusion that ZO is using some function NOT in the API to read the link's itemId, quality, and/or enchtId to generate a name. I would suspect that this is whatever they were using to do so before, when the name was included in the link, and some ZO developer just thought, "Why are we wasting bytes on this name when the client can parse it directly? Screw developers, we'll just do it that way."

That said, it's something I probably would have said in their shoes anyway. I went to bed thinking, "Why waste time on the item name if the client will ALREADY make it formatted, colored, and pretty for me? Just use the itemID etc. to distinguish matches..."

Still, ZO stole a night of my life on this, and I'm not forgiving them for it anytime soon :D

CrazyDutchGuy 06/26/14 10:32 AM

Quote:

Originally Posted by Garkin (Post 9748)
If I use d(zo_strformat("text <<t:1>>", itemLink), it will print "textitemlink" - all spaces in front of the itemlink are removed. Is there any way how to get it working correctly?

Lua Code:
  1. d(text .. " " .. zo_strformat("<<t:1>>", itemLink))
would be my guess

Garkin 06/26/14 11:31 AM

Quote:

Originally Posted by CrazyDutchGuy (Post 9800)
Lua Code:
  1. d(text .. " " .. zo_strformat("<<t:1>>", itemLink))
would be my guess

What is strange, it seems that original game texts does not suffer from this bug. That was the reason why I have asked if I'm doing something wrong.
So once again I will have to use workaround... *sigh*

CrazyDutchGuy 06/26/14 01:43 PM

I noticed more issues with the zo_strformat routine. It seems buggy, but there is nothing changed in the routine itself afaik...

Anyways the itemlink changes completely annoys me and breaks too much of my addons ...

Major issue is that i can't extract quality of the item, unless i own it in my bags ...

SkOODaT 06/26/14 02:38 PM

http://forums.elderscrollsonline.com...nown-issues/p1

Finally but WOW Massive list
and at the bottom

UI

On-Screen Notifications Not Working: We’ve seen reports that you may no longer be getting on-screen notifications for things such as picking up a new Skyshard, getting a dungeon boss achievement, etc.
STATUS: Currently investigating
Names Dropping From UI: Loading into new zones and logging out sometimes causes group member names to drop out of the group UI.
STATUS: Currently investigating.


----->>>>> Addon Settings: The add-on settings currently are not working as intended.
STATUS: Currently investigating.

Xrystal 06/26/14 02:45 PM

I grabbed a new skyshard early this morning before I went to work and it displayed a message on the screen.

SkOODaT 06/26/14 02:47 PM

Quote:

Originally Posted by Xrystal (Post 9825)
I grabbed a new skyshard early this morning before I went to work and it displayed a message on the screen.

its a mess no one knows whats going on lol, i havent really played played ive been dealing with my UI and addons

Sasky 06/26/14 04:30 PM

Quote:

Originally Posted by Deome (Post 9799)
I spent about 6 hours with Zgoo, /script, and /reloadui last night, and I have come to the conclusion that ZO is using some function NOT in the API to read the link's itemId, quality, and/or enchtId to generate a name. I would suspect that this is whatever they were using to do so before, when the name was included in the link, and some ZO developer just thought, "Why are we wasting bytes on this name when the client can parse it directly? Screw developers, we'll just do it that way."

One possible reason is I did start seeing some people messing with links to force coloring -- perhaps to get around the color filtering most people use. For example, a guild invite would pick a link to a random item and change the color and text. Sure, you wouldn't get anything by clicking it, but it makes it visually stand out.

Deome 06/26/14 11:09 PM

Quote:

Originally Posted by Sasky (Post 9833)
One possible reason is I did start seeing some people messing with links to force coloring -- perhaps to get around the color filtering most people use. For example, a guild invite would pick a link to a random item and change the color and text. Sure, you wouldn't get anything by clicking it, but it makes it visually stand out.

That's another excellent reason. I've already switched to using itemId as an identifier, only had to update five or six lines of code. I've spent more time fiddling with tooltip colors.

sirinsidiator 06/27/14 04:00 AM

Quote:

Originally Posted by Deome (Post 9859)
That's another excellent reason. I've already switched to using itemId as an identifier, only had to update five or six lines of code. I've spent more time fiddling with tooltip colors.

Now they also show the link text in the receivers language which is exactly what everybody wished for all along, so please don't complain about it :D

farangkao 06/27/14 04:15 AM

If you are an Addon Developer (and hosting your addon on ESOUI) ,send me a PM for instructions how to check out ,how they use the API. I won't post anything public.

CrazyDutchGuy 06/27/14 04:50 AM

Quote:

Originally Posted by sirinsidiator (Post 9866)
Now they also show the link text in the receivers language which is exactly what everybody wished for all along, so please don't complain about it :D

Actually I am complaining, as by the itemlink changes i can't determine the quality anymore based on the itemlink. Neither can i determine the itemname anymore from the itemlink. Also it has quite an impact if you use custom links.

Deome 06/27/14 07:40 AM

Quote:

Originally Posted by sirinsidiator (Post 9866)
Now they also show the link text in the receivers language which is exactly what everybody wished for all along, so please don't complain about it :D

Actually, I'm not complaining. It may have added a week to the release of my addon, but as it already relies almost exclusively on item links to avoid building those huge nasty historic item info tables, it really was a quick switch. I'm a little grumpy that I can no longer search my SavedVars for a particular item by name, but I'm already making good use of those new trading house link functions so I'm happy.

Seerah 06/27/14 08:05 AM

Quote:

Originally Posted by CrazyDutchGuy (Post 9868)
Actually I am complaining, as by the itemlink changes i can't determine the quality anymore based on the itemlink. Neither can i determine the itemname anymore from the itemlink. Also it has quite an impact if you use custom links.

Instead, you should request that GetItemInfo takes an item link. ;)

Xrystal 06/27/14 01:19 PM

Quote:

Originally Posted by Seerah (Post 9872)
Instead, you should request that GetItemInfo takes an item link. ;)

+ 2 to that request rofl ...

Xrystal 06/27/14 01:21 PM

Quote:

Originally Posted by SkOODaT (Post 9826)
its a mess no one knows whats going on lol, i havent really played played ive been dealing with my UI and addons

Rofl, I haven't *played* in ages. Still working on my database site .. I just jump in now and then for a bit of light relief.

Harven 06/27/14 02:26 PM

  • EVENT_SKILL_XP_UPDATE parameters are changed:

    EVENT_SKILL_XP_UPDATE(integer eventCode, integer skillType, luaindex skillIndex, integer unknown, integer skillCurrentRank, integer lastUpdateXP, integer currentXP)

    where:
    currentXP - lastUpdateXP = XP gained with this update,
    unknown - not sure what is this, was 0 when I tested.

Garkin 06/27/14 02:56 PM

Quote:

Originally Posted by Harven (Post 9892)
  • EVENT_SKILL_XP_UPDATE parameters are changed:

    EVENT_SKILL_XP_UPDATE(integer eventCode, integer skillType, luaindex skillIndex, integer unknown, integer skillCurrentRank, integer lastUpdateXP, integer currentXP)

    where:
    currentXP - lastUpdateXP = XP gained with this update,
    unknown - not sure what is this, was 0 when I tested.

the unknown should be a reason (source: EsoUI\Ingame\CenterScreenAnnounce\CenterScreenAnnounceHandlers.lua)
PROGRESS_REASON_ACHIEVEMENT
PROGRESS_REASON_ACTION
PROGRESS_REASON_ALLIANCE_POINTS
PROGRESS_REASON_AVA
PROGRESS_REASON_BATTLEGROUND
PROGRESS_REASON_BOOK_COLLECTION_COMPLETE
PROGRESS_REASON_BOSS_KILL
PROGRESS_REASON_COLLECT_BOOK
PROGRESS_REASON_COMMAND
PROGRESS_REASON_COMPLETE_POI
PROGRESS_REASON_DARK_ANCHOR_CLOSED
PROGRESS_REASON_DARK_FISSURE_CLOSED
PROGRESS_REASON_DISCOVER_POI
PROGRESS_REASON_DUNGEON_CHALLENGE
PROGRESS_REASON_EVENT
PROGRESS_REASON_FINESSE
PROGRESS_REASON_GRANT_REPUTATION
PROGRESS_REASON_GUILD_REP
PROGRESS_REASON_KEEP_REWARD
PROGRESS_REASON_KILL
PROGRESS_REASON_LOCK_PICK
PROGRESS_REASON_MEDAL
PROGRESS_REASON_NONE
PROGRESS_REASON_OTHER
PROGRESS_REASON_OVERLAND_BOSS_KILL
PROGRESS_REASON_PVP_EMPEROR
PROGRESS_REASON_QUEST
PROGRESS_REASON_REWARD
PROGRESS_REASON_SCRIPTED_EVENT
PROGRESS_REASON_SKILL_BOOK
PROGRESS_REASON_TRADESKILL
PROGRESS_REASON_TRADESKILL_ACHIEVEMENT
PROGRESS_REASON_TRADESKILL_CONSUME
PROGRESS_REASON_TRADESKILL_HARVEST
PROGRESS_REASON_TRADESKILL_QUEST
PROGRESS_REASON_TRADESKILL_RECIPE
PROGRESS_REASON_TRADESKILL_TRAIT

Garkin 06/27/14 06:19 PM

Quote:

Originally Posted by Garkin (Post 9748)
If I use d(zo_strformat("text <<t:1>>", itemLink)), it will print "textitemlink" - all spaces in front of the itemlink are removed. Is there any way how to get it working correctly?

If itemLink does not contain text all spaces between text and link will be removed. However if link contain text, it works correctly.

My solution (my workaround ;)):
Lua Code:
  1. local function GetBetterItemLink(bagId, slotId, linkStyle)
  2.    local link = GetItemLink(bagId, slotId, linkStyle)
  3.    if link == "" then return end
  4.  
  5.    local name = GetItemName(bagId, slotId)
  6.    local data = link:match("|H.-:(.-)|h")
  7.  
  8.    if linkStyle == LINK_STYLE_BRACKETS then
  9.       return ("|H%s:%s|h[%s]|h"):format(LINK_STYLE_BRACKETS, data, name)
  10.    else
  11.       return ("|H%s:%s|h%s|h"):format(LINK_STYLE_DEFAULT, data, name)
  12.    end
  13. end
  14.  
  15. local itemLink = GetBetterItemLink(bagId, slotId)
  16. d(zo_strformat("text <<t:1>>", itemLink))

CrazyDutchGuy 06/28/14 03:00 AM

Quote:

Originally Posted by Seerah (Post 9872)
Instead, you should request that GetItemInfo takes an item link. ;)

I should, but it might be better to consolidate a list with bugs and changes perhaps ?

Flagrick 06/30/14 02:58 AM

Quote:

Originally Posted by Garkin (Post 9511)
Itemlinks are now different. This is how itemlink looks like on PTS:
Code:

|H0:item:54513:3:9:45870:3:9:0:0:0:0:0:0:0:0:0:5:0:0:0:0|h|h
|H0:item:793:1:5:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0|h|h
|H0:item:45024:19:12:26848:19:12:0:0:0:0:0:0:0:0:0:9:0:0:124:0|h|h

New format is:
Lua Code:
  1. "|H" .. linkStyle .. ":" .. linkType .. ":" .. data .. "|h" .. text .. "|h"
Variable "text" is usualy empty string, at least in links generated using the GetItemLink(bagIndex, slotIndex) and links which you get from events (tested with EVENT_LOOT_RECEIVED and EVENT_INVENTORY_SINGLE_SLOT_UPDATE).

New CreateLink and ParseLink functions:
Lua Code:
  1. function ZO_LinkHandler_CreateLink(text, color, linkType, ...) --where ... is the data to encode
  2.     if linkType then
  3.         return ("|H%d:%s|h[%s]|h"):format(LINK_STYLE_BRACKETS, zo_strjoin(':', linkType, ...), text)
  4.     end
  5. end
  6.      
  7. function ZO_LinkHandler_ParseLink(link)
  8.     if type(link) == "string" then
  9.         local linkStyle, data, text = link:match("|H(.-):(.-)|h(.-)|h")
  10.         return text, linkStyle, zo_strsplit(':', data)
  11.     end
  12. end

In LootDrop, i was using itemlink's texts from EVENT_LOOT_RECEIVED to obtain QuestTool's icons by associations. Now, i 've got no text in itemlinks.

Someone know how to obtain plein text from this itemlinks ? is there an API function fro that ?

CrazyDutchGuy 06/30/14 03:03 AM

Loop of your inventory and search for the itemlink, and use bag GetItemName to extract name
Lua Code:
  1. GetItemLink(integer bagId, integer slotIndex, LinkStyle linkStyle)
  2. GetItemName(integer bagId, integer slotIndex)

Flagrick 06/30/14 03:29 AM

Quote:

Originally Posted by CrazyDutchGuy (Post 10008)
Loop of your inventory and search for the itemlink, and use bag GetItemName to extract name
Lua Code:
  1. GetItemLink(integer bagId, integer slotIndex, LinkStyle linkStyle)
  2. GetItemName(integer bagId, integer slotIndex)

thx, but it doesn't work with EVENT_LOOT_RECEIVED and QuestTool's items.
The items are not realy in the bag but in the quest manager.

To precise my question : how to match itemlink from EVENT_LOOT_RECEIVED that contains no text, with QuestTool's items that i have all info and specially name.

Garkin 06/30/14 03:54 AM

Quote:

Originally Posted by Flagrick (Post 10009)
thx, but it doesn't work with EVENT_LOOT_RECEIVED and QuestTool's items.
The items are not realy in the bag but in the quest manager.

To precise my question : how to match itemlink from EVENT_LOOT_RECEIVED that contains no text, with QuestTool's items that i have all info and specially name.

I'm not sure if it helps, but when I was trying to update X4D_Loot addon (a have updated version in my folder on Firedrive), I saw different way how to deal with quest tools. Try to take a look into that addon if you can get some ideas from there.

Flagrick 06/30/14 05:39 AM

Yes i know, he has implemented his own Internal Questmanager.
I could do something like that
But i want to avoid this, because at the end, the purpose is to get icons to show what we loot in LootDrop, and doing a questmanager for that is a bit too much, i think.

farangkao 06/30/14 09:21 AM

Quote:

Originally Posted by Flagrick (Post 10014)
Yes i know, he has implemented his own Internal Questmanager.
I could do something like that
But i want to avoid this, because at the end, the purpose is to get icons to show what we loot in LootDrop, and doing a questmanager for that is a bit too much, i think.

I found this simple but effective way to get the right data from EVENT_LOOT_RECIEVED ...

On the Event, you simply check the Current Inventory for the same ID, and get the Icon and Name from there, it works very well (didn't found a flaw so far)

You can check the Source Code of Mobile Bank Extended ,function "MB.LootRecieved", the only speciality there is that i've looking in the previously saved Table, but i could also do a live lookup of the inventory to get the same result.

Xrystal 06/30/14 01:39 PM

Quote:

Originally Posted by farangkao (Post 10019)
I found this simple but effective way to get the right data from EVENT_LOOT_RECIEVED ...

On the Event, you simply check the Current Inventory for the same ID, and get the Icon and Name from there, it works very well (didn't found a flaw so far)

You can check the Source Code of Mobile Bank Extended ,function "MB.LootRecieved", the only speciality there is that i've looking in the previously saved Table, but i could also do a live lookup of the inventory to get the same result.

I use SlotUpdate to get item information from the inventory and LootReceived to confirm the details were received by the user of the addon and not a third party nearby. It only writes the item details to the data table if the player received the item.

Khaibit 06/30/14 09:46 PM

Quote:

Originally Posted by CrazyDutchGuy (Post 9868)
Actually I am complaining, as by the itemlink changes i can't determine the quality anymore based on the itemlink. Neither can i determine the itemname anymore from the itemlink. Also it has quite an impact if you use custom links.

So...having read through this and a few other threads...I get how to re-create the item name if the item is in your bags/bank somewhere, but how would you do this for (say for example) an item link retrieved from a guild store sales history? Those do not exist in your inventory, so all you get out of it is the new text-less item link (like "|H0:item:44176:51:50:0:0:0:0:0:0:0:0:0:0:0:0:5:0:0:0:0|h|h") and you can't check your bags for it to pull out a textual form. Setting that as the text of a label or button displayed the item correctly in the correct color and all that, so at least privately it's possible...lacking the plain text in the links makes it a pain to search through a table of items >.<

For example:

Code:

for i = 0, numEvents do
    local theEvent = {}
    _, theEvent.secsSince, theEvent.seller, theEvent.buyer,
    theEvent.quant, theEvent.itemName, theEvent.salePrice = GetGuildEventInfo(1, GUILD_HISTORY_SALES, i)
    -- theEvent.itemName now contains a text-less item link.  How to search against the name of the item?
  end

I've seen an addon that wrote their own function to do this, but he literally re-created the entire item data format as a giant lookup table and re-assembles the items by hand (and thus, it's horribly broken any time they update item IDs, styles, qualities, etc.). There's gotta be an easier way?

CrazyDutchGuy 07/01/14 01:14 AM

I wish there was an easier way to extract item name from item links, but the only way i know it can be done since patch is based on having the item in your inventory.

farangkao 07/01/14 04:23 AM

It doesn't have to be the Inventory alone, but all of the values that can be entered as bagId in
the GetItemName(bagId,slotIndex) function.

There are Global Variables defined.

So far known to me:

Lua Code:
  1. BAG_BACKPACK = 1  -- your Inventory
  2. BAG_BANK = 2       -- your Bank
  3. BAG_BUYBACK = 4   -- Buyback Tab*
  4. BAG_DELETE = 255  -- No Idead,probably recently destroyed items (need to investigate)
  5. BAG_GUILDBANK = 3  --  Guildbank(s) *
  6. BAG_TRANSFER = 5   -- No Idea, probably Player-to-Player Transfer Window Items
  7. BAG_WORN = 0      -- Equipped Items

* when accessing Guildbank Data you should wait for an event called EVENT_GUILD_BANK_ITEMS_READY
Probably similar event for Buyback Tab.

So for Khabit's problem ,the only solution i currently know:
- Scan Guild Bank Items, save them (important "ID", "Name")
- Scan ItemLinks from History, compare the "ID" with the "ID" of the previously saved information.
to retrieve the Name.

Khaibit 07/01/14 08:17 AM

Hmm...so, if I'm understanding you correctly, farangkao, there's absolutely no way to reconstruct an item's name from that link for Guild Store sales history events? (Since once an item shows up in that history it's not in a bank, or bag other than the purchaser's inventory or mail possibly)

That's...truly unfortunate and completely breaks a major part of functionality in an addon I'm writing. Awesome. Especially since it's clearly possible with private functions since this displays a properly colorized item name just fine:

Code:

if RequestGuildHistoryCategoryNewest(1, GUILD_HISTORY_SALES) then
  local numEvents = GetNumGuildEvents(1, GUILD_HISTORY_SALES)
  if numEvents > 0 then
    local theEvent = {}
    -- Other fields in order are event type, seconds since event, seller, buyer, quantity, and sale price
    _, _, _, _, _, theEvent.itemName, _, = GetGuildEventInfo(1, GUILD_HISTORY_SALES, 1)

    -- Assume for brevity we have a label defined elsewhere called testLabel
    -- Post-1.2.3, itemName contains just type/data, no text, but still shows colorized item name fine
    testLabel:SetText(itemName)
  end
end


farangkao 07/01/14 01:04 PM

Not 100% sure, i will look into the Guild History Tab of the API, if i can find some info.

Khaibit 07/01/14 01:27 PM

Quote:

Originally Posted by farangkao (Post 10051)
Not 100% sure, i will look into the Guild History Tab of the API, if i can find some info.

Thank you, I appreciate anything you come up with, even it it's just random things for me to try.

Ultimately, part of the addon I'm writing involves being able to search a list of guild sales compiled from all guilds a player is in, so if I cannot search the item names that part of the functionality is a little pointless, heh :)

Oh, if only GetItemInfo() worked on item links! Everything internal seems to handle the text-less links that GetGuildEventInfo() now returns (inserting into chat creates a clickable link just fine, creating a tooltip with it looks fine, even just flat-out calling d() on the link is a nice colorized name.) Just need access to whatever they're all calling :P

SkOODaT 07/03/14 05:04 PM

well i got my answer about GetMapPlayerPosition('reticleover') just wish they would of released API changes before hand as i wasted time on it

Quote:

Originally Posted by ZOS_JessicaFolsom (Post 1071253)
Quote:

Originally Posted by SkOODaT (Post 1070804)
can we get an update for :
-TargetX, TargetY, TargetH = GetMapPlayerPosition('reticleover') doesn't return target X,Y is this a bug or intentionally removed?

This was intentionally removed, and there are no current plans to return the functionality.

Quote:

Originally Posted by SkOODaT (Post 1070804)
- IsUnitDead('reticleover') , completely broken dead units return nothing, unless transformed into a werewolf??

We're looking into this. As you mentioned, that is not working as intended.

Quote:

Originally Posted by SkOODaT (Post 1070804)
- GetDisplayName(), whats happening with this, is it comming monday? like an update as MANY ppl have modified/fixed thier saves and now are loggin new data and will half to fix again...

We're working on a fix for this one, though we don't have an ETA yet.


seems we may be stuck with the GetDisplayName() for a while i dont think its high on thier list lol

Flamage 07/03/14 10:40 PM

Quote:

Originally Posted by SkOODaT (Post 10129)
seems we may be stuck with the GetDisplayName() for a while i dont think its high on thier list lol

Well that's a real shame. I was really hoping that they'd just just fix it and I wouldn't have to deploy a hacky workaround to determine the account name from guild or saved account name. No offense intended zgrssd - your solution is great and it is probably what I'll use.


All times are GMT -6. The time now is 06:50 PM.

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