Forum > Miscellaneous

Question: How to make an "Area ID" for an House (wmo)? ~

<< < (3/5) > >>

Nevoras:
Okay i tryed to get it to work but i think im not really understand howthat all works (with the IDs)

in the List of WmoAreaTable is this all

Column    Field       Notes
1    ID          
2    root_ID            called from a WMO-Root file.
3    NameSet       If your WMO is spawned with NameSet 4, search for the rows with a 3 in here.
4    group_ID       called from a WMO-Group file. | -1 for overal name ("Stormwind" etc)
5    Unknown   
6    Unknown
7    Unknown
8    Unknown
9    Unknown
10    flags                CWorldMap::QueryOutdoors: rec.flags & 4 || rec.flags & 2
11    iRefID_AreaTable      If 0, the underlying terrain is asked for its id.
12-28    Name              String + Loc    The name of the area. If 0, an AreaTable query is made.

now in Taliis i think on hand of all the other entrys that Column 1 is  #0    2 is #1  and so on...

ok  first line of the last normals standing now in my dbc here my string for my first custom house is now 17113 try to make this for the entrys where i get some problems. soo

#0..............#1.......#2.......#3.........#4.. ... ..    #11.......#14
51109......5949   .....0......28979.......0... ... ...   0............0

i maked an copy of the last line then i changed the entrys so i set first the id to 80000 to beware later problems if the dbc would be updated once

#0..............#1.......#2.......#3.........#4.. ... ..    #11.......#14
80000......5949.....0......28979.......0... ... ...   0............0


now my first problem the root ID, in the list this ID is going forward andused more than once often.
It says "called from a WMO-Root file". so i clicked on the link there and get this information:

The root file and the groups are stored with the following filenames:

    * WorldwmopathWMOName.wmo
    * WorldwmopathWMOName_NNN.wmo

ok i got my objekts in the custom patch on custom folders for example
CustomPHS001House0001.wmo  // House0001_000.wmo and House0001_001.wmo

but i havent any idea where to get now an "Root Id" from this just found on the Adt itself on the Appearing Objekt tab  an entry where i could  change an "File ID" its set to 0 at time. so the entry for Root ID is my first step problem wich i dont know what to do.  i tryed some stiuff with it but sometimes the house itself disapeared in my adt so i just leave it alone. O.o

#0..............#1.......#2.......#3.........#4.. ... ..    #11.......#14
80000.........?........0......28979.......0... ... ...   0............0


ok next one should be the Name Set, you wrote "The third row indicates the nameset id,as mentioned in the wiki." ok ...

in the wiki is standing : If your WMO is spawned with NameSet 4, search for the rows with a 3 in here
ahm yeah o.o what means that i thougt i have to write at the adt on apearing objekts the ID and not "4" O.o ? next thing is my wmo is spawned but how could i search a row wich i dont have created o.o *confused*

ok ahm i just tryed to write in here the Nameset ID i used (in the adt on apoeraing objekt i just could use the string entrys from the wmoareatable.dbc all others wich are not in there are setting the numbers back to the last one used. so i write in here my String for this House 17113.)

Then i tryed to write this string also into this entry

#0..............#1.......#2..............#3.........#4.. ... ..    #11.......#14
80000.........?........17113......28979.......0... ... ...   0............0


it wont work so and also i saw that all other entrys just have 0, 1, 2 and 3 in so i decided to get the 3 here cause in the wiki stands "If your WMO is spawned with NameSet 4, search for the rows with a 3 in here." so i thougt ok i have to write 3 in and the "NameSet 4" means that 4 is for the nameset ID  so in talis it should be #3   (really thats not my world with this stupid labyrinth tables xD)

so thats now tha standing ^^ :

#0..............#1.......#2..............#3.........#4.. ... ..    #11.......#14
80000.........?........3............17113............0... ... ...   0............0




okay ... puh, but moment that cant be cause #3 is 4 and 4 is Group ID -.- wich wiki tells me that
"called from a WMO-Group file. | -1 for overal name ("Stormwind" etc)" so i m now at a point i dont can think anymor i just want this stupid area and dont know anything about group ids too so i get there an  -1 insteed of the 17113 standing -.-

#0..............#1.......#2..............#3.........#4.. ... ..    #11.......#14
80000.........?........3................-1............0... ... ...   0............0

(at this point i would cry for help and a explain, even some points earlyer) ...

Now just lets jump over #4 and all others to  #14 wich should be the row for "german" but first lets see a look what wiki is saying : The name of the area. If 0, an AreaTable query is made.
Ok the Name of the Area ... hmm wich area i dont know exaktly but there is standing something about string too so i thought this must be my string i used for the Area Name so i put it directly in. and causei dont know any of an Area Table query (wich i think i dont made) i dont make a 0 soo thats my end state of entrys now:

#0..............#1.......#2..............#3.........#4.. ... ..    #11.......#14
80000.........?........3................-1............0... ... ...   0........17113


so ... i dont want to say more but i have a feeling after that ...  all i made just could be wrong x_X

soo...  *CRY* help // hope you understand my problem

Eluo:
xDDDD
First of all i'd suggest you use mydbceditor as you can edit strings directly in there.
(you may have to open the images in a new tab as they get resized in the forum automaticly)

Lets go through the rows together.


[1] The id: This is just the entry id. Each entry gets an individual id. You chose a good number as it is very unlikely that it's gonna be used again soon.

[2] The rootid: The rootid is mentioned in the wmo file itself in the MOHD chunk. I am not very sure about this as the information in the wiki about the wmo differs from the file. I think that the wmo root id is mentined at 0x34 but the wiki says 0x20... i checked multiple wmos and the rootid is given at 0x34 for sure in the 3.3.5 client.
This means for you that you have to extract the wmo root file and the wmo groups for every new entry here.
You then open the wmo root file with a hex editor and go to 0x34



The ids are given as a uint32 wich means that they can be 4 bytes long.
Wich means that the id ends at 0x37



As in hex the information is written backwards inbetween the bytes the id actually is
00 00 00 3B

Bits (2bits = 1byte) are not read backwards, so you don't change 3B to B3!
You just read the bit pairs if you want so backwards.
Then as 0 = nothing , our id is 3B.
As this is a hex value and the dbc not, we have to convert it to a decimal number, where i also use a online converter mostly.
http://easycalculation.com/hex-converter.php
for example use google to find one.

So 3B in hex is 59 in decimal, wich is our id that we have to enter in the dbc. in the second row.

Ill give you in this spoiler another example if you still didn't get it^^.
[spoiler:19gh2sxq]Same thing with a diffrent id.


So the id in hex reads
45 00 7C 00 wich we have to turn around to:

00 7C 00 45

As the first two zeros don't count the number we then have 7C0045.
This number gets thrown into the hex to dec converter who gives us 8126533 as a final result.[/spoiler:19gh2sxq]


[3] Name set:
The nameset id indicates to wich name set it belongs. As the counting starts with zero here, all the entrys that have a zero in the thrid row, belong to ONE name set wich is the FIRST.



All these entrys have the same number (=0) in this row wich means , that they represent one nameset alltogether.

Okay? :D

[4] wmo group id: Again wiki info is false. The wmo group id is stated at 0x4c as a uint32 again.

I'll make it very briefly here as i explained it above how you read out the id.
1. Hex says: 8E 07 00 00
2. Turn around: 00 00 07 8E
3. Cut away the first zeros: 78E
4. Convert: 78E -> 1934

Enter 1934 into the dbc.

[5] to [9] sound indicator, that you will have to try out on your own.

[10] seems to be a 0 row so jsut enter 0

[11] The wiki says everything about that.

[12] The string, so if you use mydbc editor you could just write down there the name of the wmo that you want to have displayed ingame. Else,add a new string and write down here the stingid.

I hope that everything is clear now ;D
greetings

Nevoras:
i will  try it and much thx eluo that with the hex wasnt my world but now its clearer..  i just hope that it will not need too long for my 200+ buildings x_X could be a terrible work xD

i will  give response tomorrow sometimes ^^ today i have enough of this xD

Steff:
Hmm Noggit should then update all WMOs that are located with the center on a chunk if you change the AreaID of this chunk?

Nevoras:
Eluo....  

*knees down* Did u want to marry me *holds up the Ring* ...


xD  its working =) after some testing and trying and ID changing and ect stuff now it works =)

Now i just have one last question *g*

What did i have to do now to make the Minimap House-Map appearing when im going inside ?

Thats all *g* ^^ *jumps up and down*  (stuuupid hex editors) xD

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version