Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


MysticalPanda last won the day on March 4 2016

MysticalPanda had the most liked content!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

MysticalPanda's Achievements


Newbie (1/14)



  1. Thanks Magnuss! I'd checked there to get the "structure" size for the header, and could "fudge" the offset to the data block (after some HxD scraping), but really didn't like that idea. After taking a look at the existing TC code I was able to see how the size is "calculated". This way I can have a unified sub/function to open/extract the record and string portions from any DBC/DB2 (that I have a coded handler for).
  2. Quick note: It was kind of a "qad" thing where I read about the structure of the DBC/DB2 files, used HxD to look at the hex data and verify the values, then do a quick calc to get that part of the project off the to do list.
  3. Including ready made libraries and keeping new/existing development more efficient and "focused" is definitely something I value highly, but C++ isn't something I've learned just yet, though it's definitely on my list (I know I'll need this to help out with TC projects). Reading C++ source, for now, is a bit tricky for me and adds an additional project overhead start time wise. For now, I'll have to stick with the cludgier VB (which, from what I can tell, has less functionality than C++) for the bulk of the designing then convert everything over when I have a better understanding of C++. I'd really love to see a "real time" editor, in a "creation kit" fashion, with a "Generate" button to create the SQL update code for the object being created/updated. For now I'm sticking with a text based HTML style format, until I have more time and experience with the database structures and 3D rendering. It's more time consuming, but the framework is pretty much done. I'll be fairly tied up this week and somewhat into next, so I'll spend most of what time I can cleaning up the existing code and making it more efficient, then start adding more options. It usually takes me a bit to fully research database structures, which fields link to and contain what. I've been working mostly with the 6.x database, with the data for the starting zones, though I try to design things that work for both.
  4. Thanks Nay! I was referring to the `guid` field in the `creature` database, and debating on whether to start all spawns with "safe" guid forward (user specified), or letting the core assign them. If they're only used on the local server as an internal "reference", which, if I understand correctly they are, it wouldn't matter (as long as it's unique), since the same creature ie.,. Aurok would get different guids across different realms.
  5. I kinda did it in reverse for now. fileSIZE - textBLOCKSIZE - recordBLOCKSIZE -> beginning of the record data.
  6. Thanks Shauren! Everyone's help is very much appreciated. I was trying to calculate the offset from the beginning of the db2 file (like item-sparse.db2) to the beginning of the actual data records. I noticed between the header "block" and the data record "block" there was 804,186 bytes of data that I didn't really think I needed (I just need the record data and strings). I incorrectly assumed this was localization data block. I was thinking this would be different for each dbc/db2 and I would need an algorithm for each. Is this area between the header and records based off the record count themselves? Or is it something different?
  7. If the GUID is null, does the core automatically assign the next available GUID, or does it still have to be specified? Like a nextGUID field? I was thinking if it was NULL the core could automatically assign the next available GUID (updating the creature DB record to reflect it) before actually spawning it, since these are unique to the core and not the actual game, and could be different on each server without impacting the game? For example, any user generated GUID between or above a certain threshold wouldn't conflict with core VerifiedBuild assertions: core GUID 1-750,000 user GUID 750,001-100000.
  8. How would I go about calculating the size of the localization data in the dbc/db2? So far I can see something like this: header = 48 bytes. localization_data = calculated size record_data = record count * (field count*4) string_data = the rest of the file. To get the offset for record_data down, I need to size of the localization data block size. Is there a localization block in all dbc/db2?
  9. Is there field definitions for the item-sparse.db2 database?
  10. Thanks Nay! I was wondering if I would have to use it during sql queries to retrieve the correct record for the client being used.
  11. That's what I was afraid of. The biggest problem I see with spawned npcs, or getting them in the database at least,is a standardized guid assignment for some of the database/fields. I'm just starting to learn SQL and crawl the database structure, so I'm sure I'm missing something somewhere but I believe those are unique to the TC core and not used by the wow client. I'm hoping at this point, that all the data for the npcs are there, including guid assignments where needed (that'll keep conflict resolution down between duplicate #'s) if they are custom spawned, including creating their creature_template and associated other database records.
  12. I'm not positive, but I think I read somewhere that after you download and install the client, you need to run it at least once for it to "initialize" localization and things like that. You don't have to log in, just run it. The mapextractor should work at this point.
  13. They're extracted from your wow client using the "make" tools included with the core server. If you compiled it yourself, it'll compile those programs for you since they come with the server sources. There's a really good tutorial here on how to do everything needed to get it up and running, including creating those files.
  • Create New...