Jump to content
TrinityCore

MysticalPanda

Members
  • Posts

    28
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by MysticalPanda

  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.
  14. I'm guessing VerifiedBuild might either represent the expansion pack where the data was first introduced. Just an initial thought though. It could be useful for conditional statements in the core, especially if an npc should or should not behave a certain way, or it's a way of saying that the data is set in stone. I'm guessing the latter if the verifiedbuild matches any of the builds for the wow clients.
  15. Thanks! That's exactly what I was looking for. I'm programming a tool to add npcs either directly, or by generating an sql file that can be imported in through a program like HeidiSQL. It'll help me add characters (creatures) and other things more easily whose field data requires something I can't easily determine without trial and error. Does .npc add ### spawn the npc and add it to the database?
  16. Is there a Lua script that will return the players current x,y,z and orientation? This would make it easier to spawn new vendors by moving to the position and direction then looking at the current values for the player. Something like coordinates addon, but with more data like orientation, etc.
  17. LNK1112 module machine type 'x64' conflicts with target machine type 'X86' I'm not sure if this will help but looking at the error message, it appears that either the target compile or "build" is either mixing up x32 and x64 libraries, the target code is x32 but attempting to be built as x64 or the system it's being built on doesn't have x64 ability. I believe when I compiled everything here I used the x32 (Win32) option and kept everything x32. http://stackoverflow.com/questions/3563756/fatal-error-lnk1112-module-machine-type-x64-conflicts-with-target-machine-typ
  18. I was looking for something very similar other than the "linked list" questid in the database. We really need a nice tutorial page or pages on quest development among many things, otherwise, we waste tons of time reinventing the wheel manually scraping the data out ourselves trying to understand code conditions relating to database data. Lots of man hours wasted there. The wiki on database fields looks to be fairly outdated, I'm sorry to say, atm.
  19. In AzureWatch there's a quest called "Learning the Language" where on the 3.3.5a server the quest chain completes as it should: you get the book and read it before that quest can complete and continue on to the quest given by the totem. On the 6.x server once you accept the quest for the book the quest auto-completes (like the trigger is ignored or bypassed) and is ready to hand in at the totem before the book/primer is read. Does this happen because of a dbc/core mismatch due to the client being updated that are not yet reflected in the core? ie.,. opcodes that changed. Or is this something in the data itself within the database?
  20. Is there somewhere where I can learn the structure of quests, creation through completion? From what structures in the DB quests are stored in, how they relate back to the game code other than the field names, and what triggers are used and processes (this I'd assume was in the code itself).
  21. I'd try setting everything to local host (127.0.0.1) first before trying to lan/wan it. From what I've gathered so far (I'm just starting out too), you first connect to the authentication server (bnetserver) then get passed on to the game server (worldserver). If your getting #114, I'd say the problem is connection to the bnetserver (it's not getting to the worldserver yet). Now we just have to work our way back from there. If the WTF has the portal set to "127.0.0.1", the realmlist in the DB set the same for both entries to (127.0.0.1), the cache folder cleared or deleted (gets rebuilt when the game runs) then the data the patched client is using/looking for is there. It would seem the last step (going from the problem back) is to use a client that is >= the current trinity build and patch it so it looks to the data mentioned above (the client has to look locally and not automatically go out on the net to a given ip). The second thing is to make sure you log in with <username>@<something> after creating that same entry/account in the bnetserver. Once you get that working, the rest should be pretty easy.
  22. Ok, I believe I've solved that problem (located in another thread about installing both world and hotfixes on a new DB - thought hotfixes were applied at server run time, but some weren't since data is more now). Also, the gm commands are working. I've been looking through the database, and was able to locate more obvious things like npc_flags. I was trying to track down whether the issues was something caused by my basic knowledge of the installation or just something that needs to be fixed (which I can also do to a limited degree at this point). One thing I noticed... Volatile Mutations had a npc_flag of 2 which was "quest giver". After setting that to 0, they are more "target" ready now. I also noticed that the vendor in Ammen Vale still sells arrows and quivers. Is this a db carry over from a previous version? If so, could you point me to the documentation on where npcs are linked to spawn points and inventory (for vendors)? I can't really submit anything as a "fix" until I first can understand exactly what i'm doing, and if it's something that's caused by an improper implementation on my part.
  23. I'm just starting out and need to gain a better understanding of what I'm doing. Sorry in advance if this is academic. I just successfully compiled the core and updated everything using the guides here. I'm able to log in, create a character and interact with the game world. However, I noticed that in the Draeni starting area (my first test), when I pick up a quest I don't get a quest "sound" (I get the quest ok, just not the sound), and I also cannot use gm commands like ".additem" or ".lookup x", where x would be something like "creature". The ".additem" kicks out like i'm saying it, and the "x" parameter in ".lookup" whether "item" or "creature" always returns "no such sub command". Is this something in the db I can check? Is this something i've done in the compilation or setup process? The account is setup as gm level 3. I've tried logging in and out without avail. It's almost like some commands are disabled at compile time, or the format has changed or is unrecognized.
×
×
  • Create New...