Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GameObjectDisplayCondition.db2 Support #30483

Open
Selenium opened this issue Dec 5, 2024 · 2 comments
Open

GameObjectDisplayCondition.db2 Support #30483

Selenium opened this issue Dec 5, 2024 · 2 comments

Comments

@Selenium
Copy link
Contributor

Selenium commented Dec 5, 2024

Description

Since TWW the Holidays GameObject in Dornogal have a dynamic DisplayId and a single spawn, nothing handle that.
This system also handle the end chests in Delves.

For the exemple i will use the GameObject 454734 named HDressing 2.0 - Standing, Banner01 - Trial of Style/Noblegarde/Children/Pilgrim/Midsummer/Brewfest - JZB
the name itself show one gameobject have multiple purpose

How it's working db2 wise:

https://wago.tools/db2/GameObjectDisplayCondition?build=11.0.2.56311&filter[GameObjectID]=454734&page=1&sort[Field_10_2_7_54171_002]=desc

Few field here can be named;

Field_10_2_7_54171_001: Containt the DisplayId of the gameobject (we can confirm it by sniffing each event on retail)
Field_10_2_7_54171_002: is a WorldStateExpressionId (credit to @meji46 and @Nyr97 ) (see under for values)
Field_10_2_7_54171_003: Unknow purpose, only a field have something else than 0 and it look like a dev test
Field_10_2_7_54171_004: Float value may related to a size override

Guesed values of the WorldSate:

How ?

Knowing the field Field_10_2_7_54171_001 is a DisplayId we can search it in GameObjectDisplayInfo.db2
https://wago.tools/db2/GameObjectDisplayInfo?build=11.0.2.56311&filter[ID]=91502&page=1
this DB2 link the DisplayId to a FileDataId
https://wago.tools/files?build=11.0.2.56311&search=5282591

world/expansion09/doodads/festival/10xp_childrensweek_bannerstanding01.m2

By doing that on all DisplayId matching the WorldStateExpressionId we can deduce the names based on the file naming

1368 = xmas ((GetWorldStateValue(841)) == (1))
2016 = easter ((GetWorldStateValue(1350)) == (1))
2174 = childrensweek ((GetWorldStateValue(1472)) == (1))
3555 = summerfest (GetWorldStateValue(2286))
4546 = beerfest ((GetWorldStateValue(3010)) > (0))
6572 = thanksgiving ((GetWorldStateValue(4009)) > (0)) | ((GetWorldStateValue(4014)) > (0))
7523 = valentinesday ((GetWorldStateValue(4488)) == (1))
22303 = masquerade ((GetWorldStateValue(13445)) == (1))

not holiday related
42057/42058 
43337 = nerubian
43338 = kobyss
43339 = rootlands
43340 = arathor
43341 = kobold
43366 = nerubian

From Firestorm-servers team, with love

Expected behaviour

.

Steps to reproduce the problem

.

Branch

master

TC rev. hash/commit

508396c

Operating system

None

Custom changes

None

@Nyr97
Copy link
Contributor

Nyr97 commented Dec 5, 2024

Precisely, Field_10_2_7_54171_002 is a WorldStateExpression, which translates to WorldStates that go true or false (mostly). We might wait until Christmas is up and you'll notice that the WorldState 841 is 1 then (we don't have names for many, but this might have revealed some more).

For the delve ones, it's hard to tell, given the current conditions. However, it seems that they use a common WS to check their type in WorldState 26293:

Nerubians: 43337 - WS 26293 set to 1 or 2 and WS 26423 not set to 2680 || 43366 - WS 26293 set to 1 or 2.
Kobyss: 43338 - WS 26293 set to 5 or 6.
Rootlands: 43339 - WS 26293 set to 8.
Arathor: 43340 - WS 26293 set to 7.
Kobolds: 43341 - WS 26293 set to 3 or 4.
Earthen: 42057 - WS 25193 set to 1 || 42058 - WS 25238 set to 1.

@Selenium
Copy link
Contributor Author

Selenium commented Dec 5, 2024

update with WSE result for holidays

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants