Update 39 (Version 9.1)
The next major update will be available on the PTS later today.
New API Version: 101039 Notable Changes
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. Links
|
2 Attachment(s)
Documentation
|
Quote:
|
The add-on disabling tech is just there in case something catastrophic happens on the order of what happened a few releases ago with NodeDetection crashing clients. Basically a way that we can help players mitigate the bad experience until a solution is put in. Players still have the ability to turn the add-on back on if they so choose, at which point that's expected to be a caveat emptor situation.
It is not a system to prevent exploits or add-ons doing shenanigans, nor is it meant as official approval/disapproval of an add-on. If things work out the way I predict they will, we will literally never even use the feature. But it gives the studio peace of mind of having a tool in our toolkit to help when a crash is introduced and a large number of players are struggling to get past it. Again, using the NodeDetection thing as an example: ZOS introduced a crash that NodeDetection happened to be tripping over with logic that had historically always been fine. It wasn't a problem with NodeDetection itself. But it would have been nice to be able to disable NodeDetection for people temporarily to help them stop crashing while it got sorted out. And a lot of players use HarvestMap. It's not a lock down, merely a soft disable on the players' behalf that they can undo locally at will. |
FYI: With Necrom, some *.png.dds files (duplicates of their *.dds counterparts) started to popup inside /esoui/art folder.
|
Thank you for the files Dan!
1) The new EVENT_PVP_KILL_FEED_DEATH, it will be returning a string of the location name? Would it be possible to have a keepId returned as well for applicable areas? 2) If such a thing is possible, would it further be possible to add an event filter on location? ( Edit: Nevermind, realised there is no Unit Tags ) No harm in asking! |
am I crazy or does the EVENT_PVP_KILL_FEED_DEATH event trigger twice? I was testing it with an alt and it looked to me like it would trigger twice per kill for me
|
Quote:
|
Quote:
|
Quote:
|
Quote:
/esoui/art/icons/gear_celestial_1haxe_a.png.dds /esoui/art/icons/gear_celestial_1hhammer_a.png.dds /esoui/art/icons/gear_celestial_1hsword_a.png.dds /esoui/art/icons/gear_celestial_2haxe_a.png.dds /esoui/art/icons/gear_celestial_2hhammer_a.png.dds /esoui/art/icons/gear_celestial_2hsword_a.png.dds /esoui/art/icons/gear_celestial_bow_a.png.dds /esoui/art/icons/gear_celestial_dagger_a.png.dds /esoui/art/icons/gear_celestial_shield_a.png.dds /esoui/art/icons/gear_celestial_staff_a.png.dds /esoui/art/icons/gear_falkreath_bow_a.png.dds /esoui/art/icons/gear_scalecallerbg_mace_a.png.dds /esoui/art/icons/gear_undgrothdarr_1hmace_a.png.dds |
Looks like these files have been there for the last 5 years or so. I can see if art wants to clean them up though.
|
So the new
"GetNumKillLocationAllianceKills" function would seem to be related to the Quote:
Code:
* GetNumKillLocationAllianceKills(*luaindex* _index_, *[Alliance|#Alliance]* _alliance_) I would suspect that it would be, but seemed reasonable to check. |
Quote:
it looks like EVENT_PVP_KILL_FEED_DEATH is feeding GetNumKillLocationAllianceKills does anybody knows how many kills per alliance per location is needed to be considered a kill location? |
Quote:
"\esoui\art\icons\gear_celestial_shield_a.png.dds" "\esoui\art\icons\gear_celestial_1hhammer_a.png.dds" "\esoui\art\icons\gear_celestial_1hsword_a.png.dds" "\esoui\art\icons\gear_celestial_2haxe_a.png.dds" "\esoui\art\icons\gear_celestial_2hhammer_a.png.dds" "\esoui\art\icons\gear_celestial_2hsword_a.png.dds" "\esoui\art\icons\gear_celestial_1haxe_a.png.dds" "\esoui\art\icons\gear_falkreath_bow_a.png.dds" "\esoui\art\icons\gear_scalecallerbg_mace_a.png.dds" "\esoui\art\icons\gear_undgrothdarr_1hmace_a.png.dds" "\esoui\art\icons\gear_celestial_staff_a.png.dds" "\esoui\art\icons\gear_celestial_bow_a.png.dds" |
Quote:
|
Quote:
Regardless, we cleaned those names up yesterday. Some were unused dupes of better named variants, and 3 needed to be renamed and re-referenced. |
Quote:
|
Quote:
Quote:
It's my sincere hope that if no one from an alliance was killed, and you query that alliance in "GetNumKillLocationAllianceKills" it actually returns 0 and not nil. |
Quote:
I'll see if I fine tune/modify this when U39 goes live because it is impossible to test this on PTS due to the low number of players there. Note: EVENT_PVP_KILL_FEED_DEATH bugs: - Triggers once when you commit suicide with slaughterfish (you are then both the killer and the victim) - triggers twice when another player kills you I hope these will be fixed before U39 goes live :) |
Quote:
|
Would it be possible for the future to have access to all the different assistances on the PTS?
Just having them available in the crown store would already be enough. |
If you use a template char on PTS you should be able to buy all assistances from crown store for 1 crown, unless I'm missing something.
|
Quote:
|
Yeah, the Crownstore on PTS only includes the basic banker, trader and i think the armory guy.
The deconstructor woman as well as all other variations of the banker, trader and amory are missing. |
Quote:
"The client will raise two consecutive kill events to Lua when the victim dies within two detection cells. The reason is that both our local trigger - detected via the Unit's SetDead method - and the server-based "crossed swords" trigger (sent via Region->Client message) fire that kill event. Rather than having the client try to determine whether the kill occurred within the larger, 10-ish detection radius of any in-range crossed swords or having the server try to determine whether the kill was within the client's two detection cell range... the server just sends the event regardless, as does the Unit::SetDead "local" logic. To safeguard against this, ChatHandlers.lua creates a singleton: Code:
g_pvpKillFeedDeathRecurrenceTracker = ZO_RecurrenceTracker:New(EXPIRATION_MS, EXTENSION_MS) Code:
local numOccurrences = g_pvpKillFeedDeathRecurrenceTracker:AddValue(messageKey) |
Quote:
|
Quote:
|
Quote:
Maybe they change during the PTS updates each week, like events change and server data changes from NA to EU too? Or it was available for me because I owned some of the assistants on EU server and got them that way. |
Quote:
|
Info:
zo_strformat(formatString, ...) and ZO_CachedStrFormat can use 7 params on PTS now (increased from 6) -> Code:
Added _arg7_ |
Quote:
|
Note:
"allowFallthrough" in the XML currently causes the game to crash internally, it will be fixed in a future update and the use "allowFallthrough" will then raise an UI error. If you have this in your xml files it has to be removed. I already removed it in the Personal Assistant and Roomba addons as requested by (ZOS) Dan Batson. |
Quote:
|
Quote:
I understand that setting allowFallthrough differently for the vanilla action layer is a no-go and will cause UI errors in the future. Am I correct in assuming that it is OK to set allowFallthrough to my own actions that inherit bindings from others, or to set allowFallthrough to my own action layer? I missed this note and wanted to make a personal note about the exact usage. There are also configuration items such as preventAutomaticInputModeChange and allowOnInputModeChange in the XML. The action layer is a monster, so I don't think about doing anything carelessly...;) |
Quote:
|
Quote:
I understood very well. We are required to check the description for our add-on's binding.xml. :) |
I've updated the WIKI with that info, at:
https://wiki.esoui.com/Key_bindings References: https://wiki.esoui.com/Keybindings Feel free to update/Add/change the info about action layers and keybinds there |
Quote:
To allow using custom keybinds in menus with gamepad mode we have to use this though: Code:
<Layer name="GamepadUIMode" allowFallthrough="false"> |
Quote:
|
Guys, please keep this thread clean from conversations and only add valuable insights about "this patch / update"!
It's meant to be an aid for addon updates/fixes for this upcoming patch, now on PTS. If you want to clarify things that belong to this update do so in gitter/element chat or PMs or another forum thread and then add the info/outcome here. If you need to clarify general things, not related to this update, do so and add it to the Wiki please so we all benefit from it. Many thanks. Edit: @Masteroshi: Afai understood: If your gamepad keybind post was about allowFallthrough="false": As Dan explained you cannot use "true" as it would overwrite some default action layer and make the client crash atm. As you use "false" it should work. If you defne your own action layer not using vanilla game layers you can also use allowFallthrough="true". If your post was about something else in the keybind definition: I do not see what it related to. |
Quote:
|
So to be 100% clear:
These are the allowFallthrough in the ESOUI code, they are all set to false except SI_KEYBINDINGS_LAYER_HOUSING_EDITOR_PLACEMENT_MODE, it is not allowed to set these layers to true except for SI_KEYBINDINGS_LAYER_HOUSING_EDITOR_PLACEMENT_MODE. Now what if for some reason I set SI_KEYBINDINGS_LAYER_HOUSING_EDITOR_PLACEMENT_MODE to false, is it ok? Is the guideline "don't set to true when we set it to false" or "don't switch it"? Code:
\esoui\app\globals\bindings.xml (1 hit) |
Quote:
if true, do no set it to false (or other values that might even fail to work at all then ;)) if false, do not set it to true (or other values that might even fail to work at all then ;)) |
Quote:
vanilla code is : <Layer name="GamepadUIMode" allowFallthrough="false"> but I have to set this to allow using custom keybinds in menus with gamepad mode : <Layer name="GamepadUIMode" allowFallthrough="false"> if I use this : <Layer name="GamepadUIMode" > then it doesn't work. Is our XML totally overwriting the vanilla XML to the point we have to set all the variables that are in the tags again? I think my problem is a misunderstanding of the XML and it's purpose... Why this second language, in what cases I should use it over LUA... |
Quote:
As far as I know: Yes. It's the same for lua and all other codes. If someone defined some code (ZOs vanillla, or any other addon) but you need to change it again "later" you need to hook it, or overwrite it to add new code, or to change it somehow. For lua you can prehook or posthook it to add your additional code. For XML there is no such feature so if you define the same "name" you will overwrite existing XML code. Normally this fails and says "Control already exists with same name" (if you were using a <Control> xml tag e.g.). But for some xml tags like the <Bindings> <Layer> you will just redefine (if it exists in vanilla code, or another addon which was loaded before your's was loaded) the layer data then. > This will overwrite the parts you did specify in your xml data then. e.g. if you redefine Code:
<Layer name="SI_KEYBINDINGS_LAYER_GENERAL"> Or it will overwrite the MOVE_FORWARD with your definition then. And if you add a new one which didn't exist yet Code:
<Layer name="SI_KEYBINDINGS_LAYER_GENERAL"> Nothing overwritten. Quote:
And in any other case where you feel it's more easy to create UI elements via XML instead of using lua do dynamically create the controls. And in any case where you define virtual templates for lua controls in XML and just load them via lua functions then that accept virtual template names as parameters (as virtual templates cannot be created without XML, in lua, afaik). In your example with "<Layer name="GamepadUIMode" allowFallthrough="false">" It was defined with that attribute allowFallthrough="false" and if you redefine (overwrite) that row again by removing allowFallthrough="false" it will fail to work properly as this was not intended to work/is not supported. (no client crash and no error message, just silently fails). Same if you change that to "true" -> client crash (maybe error message in the future). I'm not sure if there is any list which atributes in the XML behave like that. e.g. would it behave the same if it would haven been hideAction="true" in original definition and you overwrite it with hideAction="false" or just remove the hideAction attribute in total? I don't know but I think it would behave the same (hopefully except the "client crash" :-)). Else you might be able to change the general idea/usage of those keybinds by just removing info like "do not allow to be pressed while dead" etc. |
Thanks for the infos Baertram! :)
|
Quote:
|
Quote:
That is totally counter intuitive because in my mind a non-set bool is false, but here there is a default true value... Okay I'll keep that in mind. :) |
2 Attachment(s)
Documentation 2
|
Note: EVENT_PVP_KILL_FEED_DEATH should read:
Lua Code:
|
Suppressing redundant PvP Kill Feed events
Quote:
So if a killer kills the same victim twice within 10 seconds that only one death notice is posted? I'm asking because I have definitely killed someone in Cyrodiil that just put down a camp and they take the camp immediately and I kill them a second time in less than ten seconds. In this case is only one death notice posted? If so, you might want to consider cutting that fall off time in half to 5 seconds. |
Quote:
|
All times are GMT -6. The time now is 10:43 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI