Quantcast
PlayerModel:SetDisplayInfo - Page 2 - WoWInterface
 
Thread Tools Display Modes
05-18-16, 10:43 AM   #21
ceylina
A Wyrmkin Dreamwalker
Join Date: Oct 2014
Posts: 50
Originally Posted by Resike View Post
No it's not. Log in on the beta and check the return values it's gonna be a number from 0-1.
well then it no longer exists so like hinted it, it's a dumb change
 
05-18-16, 10:53 AM   #22
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
Originally Posted by ceylina View Post
well then it no longer exists so like hinted it, it's a dumb change
There is not a single programming language that could show a model/texture without pointing to the the file itself. They don't gain any performace by hiding the path to the files or storing them in a different database file. They just simply don't wanna bypass that value to the lua machine, which is dumb on so many levels. (The thing they have done with the casting parameters is pretty dumb too, but at least that could save a lot of server load for them, however it's not so good for the client itself.) I've already made a suggestion report about it, but i doubt it's gonna make any difference.
 
05-20-16, 02:00 AM   #23
Simca
An Aku'mai Servant
 
Simca's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2012
Posts: 33
Originally Posted by Resike View Post
There is not a single programming language that could show a model/texture without pointing to the the file itself. They don't gain any performace by hiding the path to the files or storing them in a different database file. They just simply don't wanna bypass that value to the lua machine, which is dumb on so many levels. (The thing they have done with the casting parameters is pretty dumb too, but at least that could save a lot of server load for them, however it's not so good for the client itself.) I've already made a suggestion report about it, but i doubt it's gonna make any difference.
They don't store filenames at all now, Resike. Even if you had complete access to their C code from the Lua environment, you couldn't retrieve filenames for any file outside of Interface\* (it still knows those names through a separate database called ManifestInterfaceData).

You're right that there is no language that can show a model or texture without pointing to the file itself, but those pointers are no longer names - they're namehashes.

What used to be "Character\Scourge\Male\ScourgeMale.m2" is now known to the client as E69ABF2F3DAFC6FF, for example.
__________________
Assistant admin for MMO-Champion
WoW database file expert - ask me anything

Last edited by Simca : 05-20-16 at 02:12 AM.
 
05-20-16, 02:05 AM   #24
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
Why stop here then? Remove GetName(), GetFont() and so on.
 
05-20-16, 02:12 AM   #25
Simca
An Aku'mai Servant
 
Simca's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2012
Posts: 33
It is quite possible for a user to make a library to do this for the game, though. As of present, they are still shipping a file called FileDataComplete.db2 that has a complete listing of the game's internal FileDataIDs to real filenames. Why they are shipping it is a bit of a mystery because the client actually does -not- read the file. Maybe they are trying to help the community? IDK.

It would be a really intense library though... FileDataComplete is 27 MB of strings.
__________________
Assistant admin for MMO-Champion
WoW database file expert - ask me anything
 
05-20-16, 02:56 AM   #26
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
How can i get access to this file? I can't find it on the casc.
 
05-20-16, 06:41 AM   #27
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
I went out and saved what i could can from the live realms:
https://raw.githubusercontent.com/Re...%20(21742).lua

Contains every: modelDisplayID - modelPath, up to date.
 
05-20-16, 08:57 AM   #28
zork
A Pyroguard Emberseer
 
zork's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2008
Posts: 1,739
When I updated the model viewer valid displayids went up to 73900 I think. GetModel() not returning any values is actually kind of bad. Because up until now you could categorize models by extracting the model path.
__________________
| Simple is beautiful.
| WoWI AddOns | GitHub | Zork (WoW) | TDMOG

"I wonder what the non-pathetic people are doing tonight?" - Rajesh Koothrappali (The Big Bang Theory)
 
05-20-16, 10:32 AM   #29
MunkDev
A Scalebane Royal Guard
 
MunkDev's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2015
Posts: 428
Originally Posted by zork View Post
GetModel() not returning any values is actually kind of bad. Because up until now you could categorize models by extracting the model path.
Storyline is completely broken because of this. I wonder if we'll see any changes to alleviate this pretty significant issue.
__________________
 
05-20-16, 11:08 AM   #30
ceylina
A Wyrmkin Dreamwalker
Join Date: Oct 2014
Posts: 50
Dumb question but has anyone written about this on the official beta forums? If they become aware just how disruptive this is, I am sure they can at least offer alternatives.
 
05-20-16, 11:58 AM   #31
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
Originally Posted by zork View Post
When I updated the model viewer valid displayids went up to 73900 I think. GetModel() not returning any values is actually kind of bad. Because up until now you could categorize models by extracting the model path.
I went up to 100k, 68kish the last return values, it makes sense since they added the BabyWinston pet last.
 
05-20-16, 12:24 PM   #32
Simca
An Aku'mai Servant
 
Simca's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2012
Posts: 33
Originally Posted by Resike View Post
How can i get access to this file? I can't find it on the casc.
It's under DBFilesClient\FileDataComplete.db2, but it's in the new WDB5 format, you'll need a WDB5 reader to read it properly.

The latest version (in a Lua format) I just posted here: http://www.mediafire.com/download/kv...j/FileData.lua

Not even sure how the game would handle a 49 MB Lua file though, honestly. It could be wildly stripped down by removing development files (FileDataComplete is literally -complete- in that it includes huge swaths of files that are shipped with the client and only exist on developer's PCs and servers) and by eliminating things that aren't textures or models.

Edit: Making those changes cuts the file size in half, down to 25 MB. That's a lot, but not enough. I wonder about restricting it further so that it only contains A) Models and B) Textures in Interface\*
__________________
Assistant admin for MMO-Champion
WoW database file expert - ask me anything

Last edited by Simca : 05-20-16 at 12:34 PM.
 
05-20-16, 01:00 PM   #33
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
Originally Posted by Simca View Post
It's under DBFilesClient\FileDataComplete.db2, but it's in the new WDB5 format, you'll need a WDB5 reader to read it properly.

The latest version (in a Lua format) I just posted here: http://www.mediafire.com/download/kv...j/FileData.lua

Not even sure how the game would handle a 49 MB Lua file though, honestly. It could be wildly stripped down by removing development files (FileDataComplete is literally -complete- in that it includes huge swaths of files that are shipped with the client and only exist on developer's PCs and servers) and by eliminating things that aren't textures or models.

Edit: Making those changes cuts the file size in half, down to 25 MB. That's a lot, but not enough. I wonder about restricting it further so that it only contains A) Models and B) Textures in Interface\*
Is this real? Are they really calling that fd table a million times, instead of putting the values directly into the table?
 
05-20-16, 01:05 PM   #34
Simca
An Aku'mai Servant
 
Simca's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2012
Posts: 33
Originally Posted by Resike View Post
Is this real? Are they really calling that fd table a million times, instead of putting the values directly into the table?
No, I just made it in 3 minutes with Excel after converting their DB2 to CSV, and it was easier that way (every row in Excel became a row in Lua). Just a proof of concept.
__________________
Assistant admin for MMO-Champion
WoW database file expert - ask me anything
 
05-20-16, 01:13 PM   #35
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
Originally Posted by Simca View Post
No, I just made it in 3 minutes with Excel after converting their DB2 to CSV, and it was easier that way (every row in Excel became a row in Lua). Just a proof of concept.
Oh okay, i still can't find the original file in the dbfilesclient tho.
 
05-20-16, 05:46 PM   #36
Nevcairiel
Premium Member
Premium Member
AddOn Author - Click to view addons
Join Date: Aug 2006
Posts: 62
Originally Posted by ceylina View Post
Dumb question but has anyone written about this on the official beta forums? If they become aware just how disruptive this is, I am sure they can at least offer alternatives.
The game doesnt use file paths anymore, and the file Simca references is more likely to vanish eventually than be offered up through APIs.

So in short, the game can't give you any information it doesn't have, and its extremely unlikely they add extra information just for some addons. Addons will be able to update to the new system eventually, just don't stick to the mentality "its entirely broken", instead think about how you can fix it without relying on Blizzard to fix it for you.

We have asked Guill on IRC the other day, and the answer was quite simple: They are trying to use file IDs exclusively in the game.
 
05-20-16, 06:15 PM   #37
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
Originally Posted by Nevcairiel View Post
The game doesnt use file paths anymore, and the file Simca references is more likely to vanish eventually than be offered up through APIs.

So in short, the game can't give you any information it doesn't have, and its extremely unlikely they add extra information just for some addons. Addons will be able to update to the new system eventually, just don't stick to the mentality "its entirely broken", instead think about how you can fix it without relying on Blizzard to fix it for you.

We have asked Guill on IRC the other day, and the answer was quite simple: They are trying to use file IDs exclusively in the game.
Of course we can create a workaround, if we break the tos a hundred times. Also memory sniffing or file monitoring casc files then converting them back to their original file name is not something you want to do one by one in 70.000 models.

Also they added GetDisplayInfo() which does exactly the same thing as GetModel() did, reading table indexes from a db file. Too bad GetDisplayInfo is completely useless, since it doesn't return anything that you don't know.

Last edited by Resike : 05-20-16 at 06:19 PM.
 
05-21-16, 03:04 AM   #38
Simca
An Aku'mai Servant
 
Simca's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2012
Posts: 33
I have to agree with nevcariel - from what conversation I've had with the devs on the subject over IRC and Twitter, it seems extremely unlikely that they are going to offer us an alternative.

If they readded parsing FileDataComplete to the game, for example, it would be a performance hit. In its most compact uncompressed form (if you split up filenames into 'names' and 'paths' and deduplicate), it is still 27 MB of raw strings. The performance hit would be extremely minor (probably under a second during load time), but they just aren't going to be willing to make -any- performance hit for specific features of optional addons.

Memory sniffing is not involved here (like I said, the client doesn't even know what you're looking for - it can't help with this), and if reading CASC data is against the ToS, then so was reading MPQ data (it's the same concept) and everyone here has broken it hundred times over already.

I'm just trying to help offer productive solutions because I know Blizzard isn't going to do anything about this.
__________________
Assistant admin for MMO-Champion
WoW database file expert - ask me anything

Last edited by Simca : 05-21-16 at 03:27 AM.
 
05-21-16, 07:04 AM   #39
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,289
Originally Posted by Simca View Post
I have to agree with nevcariel - from what conversation I've had with the devs on the subject over IRC and Twitter, it seems extremely unlikely that they are going to offer us an alternative.

If they readded parsing FileDataComplete to the game, for example, it would be a performance hit. In its most compact uncompressed form (if you split up filenames into 'names' and 'paths' and deduplicate), it is still 27 MB of raw strings. The performance hit would be extremely minor (probably under a second during load time), but they just aren't going to be willing to make -any- performance hit for specific features of optional addons.

Memory sniffing is not involved here (like I said, the client doesn't even know what you're looking for - it can't help with this), and if reading CASC data is against the ToS, then so was reading MPQ data (it's the same concept) and everyone here has broken it hundred times over already.

I'm just trying to help offer productive solutions because I know Blizzard isn't going to do anything about this.
Makes no sense. A model set with displayID needs to know which .m2 file needs to be loaded, as soon as you create the model itself. It also need to know which skin file needs to be loaded. So there needs to be a table somewhere which holds this informations, i just couln't find it. (I found the skinfile-displayid references on live, if you open the CreatureDisplayInfo.db2 you can see which skin files are compatible whit which displayID in the 8-9-10 table.)

And yes you can sniff this out easily just load the model ingame, check which file gets loaded in the casc, export that file make the casc listfile conversion and shazam you get the model's path. But it's just not really the ideal thing.
 
05-21-16, 07:22 AM   #40
ceylina
A Wyrmkin Dreamwalker
Join Date: Oct 2014
Posts: 50
So just to understand, unlike keeping the way resike explains, you now would update models based on targeting and events and store the set model in a variable to be used to maintain a model's 3d portrait/display so long as said model was or is used on say a unit frame/ tooltip or other frame like how the storyline addon displays 3d models?

If that is the case and you use a combination of event triggers then I suppose this would cut down on bloat, resource usage, and potential errors?
 
 

WoWInterface » Site Forums » Archived Beta Forums » Legion Beta archived threads » PlayerModel:SetDisplayInfo

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