Thread Tools Display Modes
07/10/17, 08:14 AM   #1
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,019
3.1 Update

Hello there,

As we know, the next update of game will be launched this week on PTS (consider the opening today or tomorrow).

So the old new update thread. Please leave any comment, or issues you may encounter while doing your updates.

Now, back to business, so some placeholders :


Last edited by Ayantir : 07/14/17 at 01:11 PM.
  Reply With Quote
07/11/17, 11:51 AM   #2
Weolo
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 79
This compatibility function is broken

GetSmithingStyleItemInfo() in addoncompatibilityaliases.lua

Lua Code:
  1. function GetSmithingStyleItemInfo(itemStyleId)
  2.     local styleItemLink = GetItemStyleMaterialLink(validItemStyleId)
  3.     local alwaysHideIfLocked = GetItemStyleInfo(validItemStyleId)
  4.     local name = GetItemLinkName(styleItemLink)
  5.     local icon, sellPrice, meetsUsageRequirement = GetItemLinkInfo(styleItemLink)
  6.     local quality = GetItemLinkQuality(styleItemLink)
  7.     return name, icon, sellPrice, meetsUsageRequirement, itemStyleId, quality, alwaysHideIfLocked
  8. end

Vvariable validItemStyleId does not exist on the 2nd and 3rd lines so styleItemLink and alwaysHideIfLocked are always blank
  Reply With Quote
07/11/17, 11:59 AM   #3
Weolo
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 79
Just a little note for others, item style constants such as ITEMSTYLE_GLASS etc are on the way out. They will work for now as they are in the addoncompatibilityaliases.lua file but I am checking to see how to code without them with the PTS patch.
Will let you know what I figure out
  Reply With Quote
07/11/17, 01:16 PM   #4
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,019
use styleItemIndex? but I do agree all addons are coded with the ITEMSTYLE constant.
  Reply With Quote
07/11/17, 02:12 PM   #5
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
StyleItemIndex is great for dynamic lists, but the constants always made it easier for holding my own information on it. I'm surprised they are doing away with them so soon after cleaning them up in the last update.
  Reply With Quote
07/11/17, 04:40 PM   #6
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Originally Posted by Weolo View Post
This compatibility function is broken

GetSmithingStyleItemInfo() in addoncompatibilityaliases.lua

Lua Code:
  1. function GetSmithingStyleItemInfo(itemStyleId)
  2.     local styleItemLink = GetItemStyleMaterialLink(validItemStyleId)
  3.     local alwaysHideIfLocked = GetItemStyleInfo(validItemStyleId)
  4.     local name = GetItemLinkName(styleItemLink)
  5.     local icon, sellPrice, meetsUsageRequirement = GetItemLinkInfo(styleItemLink)
  6.     local quality = GetItemLinkQuality(styleItemLink)
  7.     return name, icon, sellPrice, meetsUsageRequirement, itemStyleId, quality, alwaysHideIfLocked
  8. end

Vvariable validItemStyleId does not exist on the 2nd and 3rd lines so styleItemLink and alwaysHideIfLocked are always blank
This has been fixed.
  Reply With Quote
07/11/17, 04:50 PM   #7
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Originally Posted by Rhyono View Post
StyleItemIndex is great for dynamic lists, but the constants always made it easier for holding my own information on it. I'm surprised they are doing away with them so soon after cleaning them up in the last update.
We often have to choose between using enumerations and using ids when making a system. Enums are great for writing code against because it makes checks against specific values easy. However, adding to an enumeration requires a programmer to make a code change, and then the new client needs to propagate through several branches before finally reaching the designer who can make use of it. If we use ids, changes do not require any programmer support, but it becomes hard to program against unless you want code like itemStyleId == 5. We've been thinking over some ways to have the best of both worlds, and our favorite option right now is adding a string identifier that can be used to fetch an id. These strings would not be localized and would probably look a lot like the enum values. The designers could fill them out and we would keep them as stable as possible so code could fetch ids using them, or use them for equality checks, etc. But we're open to other ideas.
  Reply With Quote
07/12/17, 01:27 AM   #8
votan
 
votan's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2014
Posts: 577
Originally Posted by ZOS_ChipHilseberg View Post
These strings would not be localized and would probably look a lot like the enum values. The designers could fill them out and we would keep them as stable as possible so code could fetch ids using them, or use them for equality checks, etc. But we're open to other ideas.
Maybe let you inspire from the Enum of C# (not necessarily copy 1:1): Create a ZO_Enum sub-class with some meta methods like :GetNames, :Parse :GetName :GetDisplayName.
Instead of creating millions of global constants, an Enum class like ITEM_STYLE, ITEM_TRAIT, ABILITY.
In Lua there is close to no difference reading a continous index based list and an ID based hash-table:
Lua Code:
  1. for value,name in pairs(ITEM_STYLE) do
  2.   what ever
  3. end

The Enum classes may get auto-generated from work-sheets of your designers.

You may allow us to override and/or extend these Enum instances for things like :GetNameWithQualityColor.
  Reply With Quote
07/12/17, 03:32 AM   #9
Shinni
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 167
@Ayantir, you might want to put the .txt in your post:
https://forums.elderscrollsonline.co...change-log-pts


@Chip
3D Controls
3D controls with no parent that are positioned using world coordinates now update their position automatically when you cross a boundary. We also added two APIs to help convert between Gui Render 3D positions and World positions:

GuiRender3DPositionToWorldPosition(renderX, renderY, renderZ) – worldX, worldY, worldZ.
WorldPositionToGuiRender3DPosition(worldX, worldY, worldZ) – renderX, renderY, renderZ.
Thanks a lot! This is great.
  Reply With Quote
07/12/17, 10:06 AM   #10
Weolo
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 79
Cool changes but it does mean I have some learning and re-writting to do, all good

I will be trying to make use of these

Code:
GetItemStyleName(styleId) – styleName
GetItemStyleMaterialLink(styleId, LinkStyle) – link
GetNumValidItemStyles() – numStyles
GetValidItemStyleId(index) – styleId
Will try these out, hopefully I can take out some of my code in place of them

Code:
GetSkillLineIndicesFromSkillId(skillId) – SkillType, skillIndex.
GetSkillLineIndicesFromSkillLineId(skillLineId) – SkillType, skillIndex.
Also the GetNonCombatBonus() function looks very handy

Code:
NON_COMBAT_BONUS_BLACKSMITHING_BOOSTER_BONUS
NON_COMBAT_BONUS_BLACKSMITHING_CRAFT_PERCENT_DISCOUNT
NON_COMBAT_BONUS_BLACKSMITHING_EXTRACT_LEVEL
NON_COMBAT_BONUS_BLACKSMITHING_HIRELING_LEVEL
NON_COMBAT_BONUS_BLACKSMITHING_LEVEL
NON_COMBAT_BONUS_BLACKSMITHING_RESEARCH_LEVEL
NON_COMBAT_BONUS_BLACKSMITHING_SHOW_NODES
Maybe I can finally detect when the research skill is changed
  Reply With Quote
07/12/17, 07:31 PM   #11
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
Was GetSmithingStyleItemLink supposed to be removed? If so, could someone point me in the direction of its replacement?
  Reply With Quote
07/13/17, 11:05 AM   #12
Weolo
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 79
Originally Posted by Rhyono View Post
Was GetSmithingStyleItemLink supposed to be removed? If so, could someone point me in the direction of its replacement?
Did that used to give you a link to the style material?
If so this is the kind of thing
Lua Code:
  1. for itemStyleIndex = 1, GetNumValidItemStyles() do
  2.     local validItemStyleId = GetValidItemStyleId(itemStyleIndex)
  3.     if validItemStyleId > 0 then
  4.         local styleItemLink = GetItemStyleMaterialLink(validItemStyleId, LINK_STYLE_DEFAULT)
  5.     end
  6. end
  Reply With Quote
07/13/17, 08:22 PM   #13
Rhyono
AddOn Author - Click to view addons
Join Date: Sep 2016
Posts: 659
Thanks, that is what I needed. Still trying to fix the rest of the code now, though...

Also: Clockwork is a lie. It's in the books area, the items exist in the data, but the style and achievement do not.

Whoever transcribed the style names to GetItemStyleName() used the constants verbatim. E.g. Celestial is now called Craglorn which is...not good.

Is Mimic being in the valid style list as "Universal" intentional? If so, I'm going to have to write a work around to make that non-style not appear in CraftStore.

Last edited by Rhyono : 07/13/17 at 09:10 PM.
  Reply With Quote
07/14/17, 11:24 AM   #14
Weolo
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 79
Yes I saw one of the style names from GetItemStyleName(validItemStyleId) was Craglorn which did not fit.
  Reply With Quote
07/14/17, 11:53 AM   #15
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,019
Event found on Wiki but not in ZOS ref -> EVENT_BANKED_TELVAR_STONES_UPDATE (integer eventCode,number newBankedTelvarStones,number oldBankedTelvarStones)
Event found on Wiki but not in ZOS ref -> EVENT_COLLECTIBLE_ON_COOLDOWN (number eventCode)
Event found on Wiki but not in ZOS ref -> EVENT_COLLECTIBLE_USE_BLOCKED (integer eventCode,number reason)
Event found on Wiki but not in ZOS ref -> EVENT_DIFFICULTY_LEVEL_CHANGED (integer eventCode,integer difficultyLevel)
Event found on Wiki but not in ZOS ref -> EVENT_SHOW_GUI (integer eventCode,string guiName,string desiredStateName)
Event found on Wiki but not in ZOS ref -> EVENT_ESO_PLUS_SUBSCRIPTION_NOTIFICATION_CLEARED (number eventCode)
Event found on Wiki but not in ZOS ref -> EVENT_ESO_PLUS_SUBSCRIPTION_STATUS_CHANGED (integer eventCode, boolean hasSubscription)
Event found on Wiki but not in ZOS ref -> EVENT_QUICK_REPORT_ALREADY_REPORTED (number eventCode)
Event found on Wiki but not in ZOS ref -> EVENT_QUICK_REPORT_TICKET_SENT (number eventCode)
New ZOS event -> EVENT_SMITHING_TRAIT_RESEARCH_CANCELED (integer eventCode, number craftingSkillType, number researchLineIndex, number traitIndex)
New ZOS event -> EVENT_BANKED_CURRENCY_UPDATE (integer eventCode, number currency, number newValue, number oldValue)
New ZOS event -> EVENT_SHOW_PREGAME_GUI_IN_STATE (integer eventCode, string desiredStateName)
New ZOS event -> EVENT_ESO_PLUS_FREE_TRIAL_STATUS_CHANGED (integer eventCode, boolean hasFreeTrial)
New ZOS event -> EVENT_CARRIED_CURRENCY_UPDATE (integer eventCode, number currency, number newValue, number oldValue, number reason)
New ZOS event -> EVENT_BATTLEGROUND_SHUTDOWN_TIMER (integer eventCode, boolean enabled)
New ZOS event -> EVENT_ESO_PLUS_FREE_TRIAL_NOTIFICATION_CLEARED (number eventCode)
New ZOS event -> EVENT_CRAFT_FAILED (integer eventCode, number tradeskillResult)
New ZOS event -> EVENT_BATTLEGROUND_KILL (integer eventCode, string killedPlayerCharacterName, string killedPlayerDisplayName, number killedPlayerBattlegroundAlliance, string killingPlayerCharacterName, string killingPlayerDisplayName, number killingPlayerBattlegroundAlliance, number battlegroundKillType)
In case of.
  Reply With Quote
07/14/17, 12:14 PM   #16
Weolo
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 79
Oh no my brain only just kicked in, I am going to have to add code to my crafting addon to cover when someone cancels researching EVENT_SMITHING_TRAIT_RESEARCH_CANCELED durrr me
  Reply With Quote
07/14/17, 12:15 PM   #17
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,019
About Methods of Controls :


ColorSelectControl
New: * GetThumbNormalizedPosition()
** _Returns:_ *number* _normalizedX_, *number* _normalizedY_
New: * SetThumbNormalizedPosition(*number* _normalizedX_, *number* _normalizedY_)



Control
Changed: * Set3DRenderSpaceOrigin(*number* _xM_, *number* _yM_, *number* _zM_)



LabelControl
New: * Clean()



TooltipControl
Changed: * SetSmithingStyleItem(*integer* _itemStyleId_)
New: * SetVerticalPadding(*number* _paddingY_)
  Reply With Quote
07/14/17, 12:17 PM   #18
Weolo
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 79
Is there any point checking for EVENT_ESO_PLUS_SUBSCRIPTION_STATUS_CHANGED?
Would it be enough to just check IsESOPlusSubscriber() on player activation?
  Reply With Quote
07/14/17, 12:39 PM   #19
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,566
I guess it could make sense if you got eso plus activated ingame like during the free eso+ event last weekend or if it ran out while you are ingame.

Btw @Chip, would it be possible to deactivate ESO+ on PTS and permanently add the activation thingy for 1 day of ESO+ to the crownstore there? Or instead of making it last only 1 day, add a second item to turn it off again.
  Reply With Quote
07/14/17, 12:43 PM   #20
Weolo
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 79
Originally Posted by sirinsidiator View Post
I guess it could make sense if you got eso plus activated ingame like during the free eso+ event last weekend or if it ran out while you are ingame.

Btw @Chip, would it be possible to deactivate ESO+ on PTS and permanently add the activation thingy for 1 day of ESO+ to the crownstore there? Or instead of making it last only 1 day, add a second item to turn it off again.
Maybe 2 free items on the store to turn on ESO+ and another to turn it off
  Reply With Quote

ESOUI » Developer Discussions » Tutorials & Other Helpful Info » 3.1 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