Forums WoW Modding Discussion Miscellaneous [Archive] Legion Modding and Filedata, possible ?

[Archive] Legion Modding and Filedata, possible ?

[Archive] Legion Modding and Filedata, possible ?

Pages (2): 1 2 Next
rektbyfaith
Administrator
0
07-22-2016, 03:17 AM
#1
Archived author: Rangorn • Posted: 2016-07-22T03:17:51+00:00
Original source

Hey, since few days, TrinityCore is able to handle Legion (7.0.3)

I will probably switch to Legion for modding (retroporting is bad, really.) but there are some problems.

Since WoD, every string path / name (world/generic/doodad/tree/whatevergob01.m2) are located in the FileDataComplete dbc, it store all the pathname of files from the game, dbc like gameobjectdisplayinfo, charsections don't have a string column anymore, but a integer column who point directly to FileData.

Since 7.0.1.21737 Legion Build, this file is gone, and i don't know how the executable made the link between the filedata_id and the pathname.

Some people seems to know, but it wasn't really clear for me, explanations will be appreciated about this (i mean, clear informations, not an agressive sentance with only 5 words and c++ struct random dropping)

So even if we find where the filedata_id <=> string system is located, can we edit it for adding new path and new ids ?

rektbyfaith
07-22-2016, 03:17 AM #1

Archived author: Rangorn • Posted: 2016-07-22T03:17:51+00:00
Original source

Hey, since few days, TrinityCore is able to handle Legion (7.0.3)

I will probably switch to Legion for modding (retroporting is bad, really.) but there are some problems.

Since WoD, every string path / name (world/generic/doodad/tree/whatevergob01.m2) are located in the FileDataComplete dbc, it store all the pathname of files from the game, dbc like gameobjectdisplayinfo, charsections don't have a string column anymore, but a integer column who point directly to FileData.

Since 7.0.1.21737 Legion Build, this file is gone, and i don't know how the executable made the link between the filedata_id and the pathname.

Some people seems to know, but it wasn't really clear for me, explanations will be appreciated about this (i mean, clear informations, not an agressive sentance with only 5 words and c++ struct random dropping)

So even if we find where the filedata_id <=> string system is located, can we edit it for adding new path and new ids ?

rektbyfaith
Administrator
0
07-22-2016, 07:48 AM
#2
Archived author: wungasaurus • Posted: 2016-07-22T07:48:26+00:00
Original source

There is no filedata_id <=> string system, thus you can't edit it. You have to edit https://wowdev.wiki/CASC#Root to add new files to casc. There are no tools for that.
rektbyfaith
07-22-2016, 07:48 AM #2

Archived author: wungasaurus • Posted: 2016-07-22T07:48:26+00:00
Original source

There is no filedata_id <=> string system, thus you can't edit it. You have to edit https://wowdev.wiki/CASC#Root to add new files to casc. There are no tools for that.

rektbyfaith
Administrator
0
07-22-2016, 11:48 AM
#3
Archived author: MrXJKz • Posted: 2016-07-22T11:48:00+00:00
Original source

ok nothing my bad olol.

Edited July 22, 2016 by MrXJKz

because i'm dumb!!!!!
rektbyfaith
07-22-2016, 11:48 AM #3

Archived author: MrXJKz • Posted: 2016-07-22T11:48:00+00:00
Original source

ok nothing my bad olol.

Edited July 22, 2016 by MrXJKz

because i'm dumb!!!!!

rektbyfaith
Administrator
0
07-22-2016, 06:14 PM
#4
Archived author: Rangorn • Posted: 2016-07-22T18:14:09+00:00
Original source

Quote: 10 hours ago, wungasaurus said:

There is no filedata_id <=> string system, thus you can't edit it. You have to edit https://wowdev.wiki/CASC#Root to add new files to casc. There are no tools for that.
Is there a way to extract the root file ?

No tools for editing the root, or for extracting it ?
rektbyfaith
07-22-2016, 06:14 PM #4

Archived author: Rangorn • Posted: 2016-07-22T18:14:09+00:00
Original source

Quote: 10 hours ago, wungasaurus said:

There is no filedata_id <=> string system, thus you can't edit it. You have to edit https://wowdev.wiki/CASC#Root to add new files to casc. There are no tools for that.
Is there a way to extract the root file ?

No tools for editing the root, or for extracting it ?

rektbyfaith
Administrator
0
07-22-2016, 08:58 PM
#5
Archived author: wungasaurus • Posted: 2016-07-22T20:58:38+00:00
Original source

There is a tool for dumping them. Ask in #modcraft.
rektbyfaith
07-22-2016, 08:58 PM #5

Archived author: wungasaurus • Posted: 2016-07-22T20:58:38+00:00
Original source

There is a tool for dumping them. Ask in #modcraft.

rektbyfaith
Administrator
0
07-28-2016, 01:58 AM
#6
Archived author: Rangorn • Posted: 2016-07-28T01:58:43+00:00
Original source

i'm back (last time i was on the irc, nobody was talking so... maybe later)
Quote: On 22/07/2016 at 9:48 AM, wungasaurus said:

There is no filedata_id <=> string system, thus you can't edit it.
Shauren, the main TC dev told me :

"No. No mapping between FileDataId and FileName exists anymore.

You can still open a file by name (if you know it). Since TC does not need to know the name there are no plans to create such table"

But, how the cascexplorer, with a listfile, can find the good name/patch for the files ? and why there are DBFilesClient/XXX.db2 string referenced in the wow.exe ?

Still confusing for me.
rektbyfaith
07-28-2016, 01:58 AM #6

Archived author: Rangorn • Posted: 2016-07-28T01:58:43+00:00
Original source

i'm back (last time i was on the irc, nobody was talking so... maybe later)

Quote: On 22/07/2016 at 9:48 AM, wungasaurus said:

There is no filedata_id <=> string system, thus you can't edit it.
Shauren, the main TC dev told me :

"No. No mapping between FileDataId and FileName exists anymore.

You can still open a file by name (if you know it). Since TC does not need to know the name there are no plans to create such table"

But, how the cascexplorer, with a listfile, can find the good name/patch for the files ? and why there are DBFilesClient/XXX.db2 string referenced in the wow.exe ?

Still confusing for me.

rektbyfaith
Administrator
0
07-28-2016, 06:08 AM
#7
Archived author: wungasaurus • Posted: 2016-07-28T06:08:20+00:00
Original source

Hashing the string, looking up the hash, like it did in MPQ as well.
rektbyfaith
07-28-2016, 06:08 AM #7

Archived author: wungasaurus • Posted: 2016-07-28T06:08:20+00:00
Original source

Hashing the string, looking up the hash, like it did in MPQ as well.

rektbyfaith
Administrator
0
07-28-2016, 01:59 PM
#8
Archived author: Rangorn • Posted: 2016-07-28T13:59:01+00:00
Original source

Ok do you have more informations for the hashing method ?

Without Listfile, the map.db2 unk file name is 76A46B277AE9D377_1349477, i'm sure the 1349477 is the file data id, and the 16 characters before are hashed.

When i convert theses string to md5, i got this :

dbfilesclient/map.db2 58dd9bcf7aace121ca11336a7cf3f7ae

DBFILESCLIENT/map.db2 a05c28748296ac0ef2362e9c658a0ebd

DBFILESCLIENT/MAP.db2 7cd8f374c7c9f762d78b4897f6d16dcf

DBFILESCLIENT/MAP.DB2 9cc2ef50d67bb7ca1cfa797e2b151844

I'm wrong i know, btw, how the hashing work ? It is the jenkins96 hash ?
rektbyfaith
07-28-2016, 01:59 PM #8

Archived author: Rangorn • Posted: 2016-07-28T13:59:01+00:00
Original source

Ok do you have more informations for the hashing method ?

Without Listfile, the map.db2 unk file name is 76A46B277AE9D377_1349477, i'm sure the 1349477 is the file data id, and the 16 characters before are hashed.

When i convert theses string to md5, i got this :

dbfilesclient/map.db2 58dd9bcf7aace121ca11336a7cf3f7ae

DBFILESCLIENT/map.db2 a05c28748296ac0ef2362e9c658a0ebd

DBFILESCLIENT/MAP.db2 7cd8f374c7c9f762d78b4897f6d16dcf

DBFILESCLIENT/MAP.DB2 9cc2ef50d67bb7ca1cfa797e2b151844

I'm wrong i know, btw, how the hashing work ? It is the jenkins96 hash ?

rektbyfaith
Administrator
0
07-28-2016, 05:19 PM
#9
Archived author: wungasaurus • Posted: 2016-07-28T17:19:10+00:00
Original source

https://wowdev.wiki/CASC#hashpath
rektbyfaith
07-28-2016, 05:19 PM #9

Archived author: wungasaurus • Posted: 2016-07-28T17:19:10+00:00
Original source

https://wowdev.wiki/CASC#hashpath

rektbyfaith
Administrator
0
07-28-2016, 07:52 PM
#10
Archived author: Rangorn • Posted: 2016-07-28T19:52:33+00:00
Original source

Thanks man, finally manage to do it !

I've made a program in java (poorly made, but i'm fucking lazy when i program)

https://ghostbin.com/paste/5b4kj

EDIT :  CascExplorer have an option "Extract CASC System Files" and i can get the root =)

So, now i have the root file ! Too bad there is not information about the struct on the wiki, i think i have to analyse source code of Trinity / CASC Explorer / LISTROOT
rektbyfaith
07-28-2016, 07:52 PM #10

Archived author: Rangorn • Posted: 2016-07-28T19:52:33+00:00
Original source

Thanks man, finally manage to do it !

I've made a program in java (poorly made, but i'm fucking lazy when i program)

https://ghostbin.com/paste/5b4kj

EDIT :  CascExplorer have an option "Extract CASC System Files" and i can get the root =)

So, now i have the root file ! Too bad there is not information about the struct on the wiki, i think i have to analyse source code of Trinity / CASC Explorer / LISTROOT

Pages (2): 1 2 Next
Recently Browsing
 1 Guest(s)
Recently Browsing
 1 Guest(s)