This is a read only copy without any forum functionality of the old Modcraft forum.
If there is anything that you would like to have removed, message me on Discord via Kaev#5208.
Big thanks to Alastor for making this copy!

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - barncastle

Pages: [1] 2
1
Tools / Re: [TOOL] Convert WoD adts to Legion (010Editor script)
« on: December 29, 2017, 03:28:52 pm »
According to the wiki, for each mldl entry, "if the corresponding MLDD has a flag of 0x8 this has a value otherwise 0". And as we don't know what kind of value we're supposed to set in case of a 0x8 flag, that's why I 0 filled it.

Most of the mldd entries I have on my converted adts (if not all) don't have this 0x20 flag, and it still works well. According to the wiki (again), this flag is related to liquid.

You're right, sorry, I meant to 0x8. The point still stands, you're not explicitly setting 0x8 on the MLDD flags - I only mention it as I had issues with this on certain MoP ADTs. (I was the one that wrote that on the wiki btw :) )

2
Tools / Re: [TOOL] Convert WoD adts to Legion (010Editor script)
« on: December 29, 2017, 02:45:50 pm »
From memory, all maps in Legion have the 0x40 MPHD flag set, so in your case it should be 0x42.

Unrelated to your issue, but FYI, I found any custom or edited maps will need the 0x100 flag removed unless you've created a valid _lod.adt. This is something to do with continents and how their lod is applied.

On topic: Nice work, good to see something Legion related! One thing I noticed; each MLDD entry should have a flag of 0x20 if you are to 0 fill MLDL.

3
DBC / DB2 / DB modding / Re: Music filepaths
« on: July 25, 2017, 12:59:14 pm »
The process you want to do is to look at m_Sounds in ZoneMusic.dbc which gives you the row ids for SoundEntries.db2. Inside SoundEntries.db2's rows you want to look at the FileDataId columns. As Schlumpf said, these have replaced file paths inside the local archives so you need to do some wizardry with the root file and a listfile to figure out what these equate to. For convenience sake I've exported the file list for 6.2.4 for you https://mega.nz/#!4BkQSKYa!OYJ_ESZuROz6_os83n1C30TAxzn42DBT2iqn8mL7AOM.

e.g.

ZoneMusic.dbc's Zone-60-TJ-PathofGlory-GeneralWalk row has a m_Sound of 48298.
The SoundEntries row with id of 48298 has the following FileDataIds:

  • 1061106 - sound/music/draenor/mus_60_grommashhellscream_v2a.mp3
  • 1064171 - sound/music/draenor/mus_60_warsong_v2.mp3
  • 1061180 - sound/music/draenor/mus_60_warsong_v3b.mp3
  • 1061181 - sound/music/draenor/mus_60_warsong_v4.mp3

4
Tools / Re: [TOOL] WDBX Editor
« on: September 10, 2016, 02:17:41 pm »
Nupper, latest version has gone up. I've added a lot of stuff to the SQL Import/Export to try and combat your issues. I've even changed it to temporarily switch the sql mode. Let me know how it goes

5
Tools / Re: [TOOL] WDBX Editor
« on: September 06, 2016, 09:01:27 pm »
Quote from: "Nupper"
is there a compiled update...my visual studieo is to old for it i think.

Yeah sorry I need to sort my git management out! I've created a release on the master branch https://github.com/barncastle/WDBXEditor/releases/tag/1.0.2

6
Tools / Re: [TOOL] WDBX Editor
« on: August 31, 2016, 10:30:16 pm »
Quote from: "Nupper"
How would i disable the strict for Non-Null Characters in mysql

If you run
Code: [Select]
select @@sql_mode; it will tell you what mode your engine is running in. Apparently STRICT_TRANS_TABLES is the default now so I'd suggest just updating any text columns to have a default of an empty string literal.

I don't know how many fields you need to alter but the below will generate the SQL needed to bulk update them all for you, obviously replace <table_name> with your table's name.
Code: [Select]
SELECT GROUP_CONCAT(CONCAT('ALTER TABLE ','<table_name>',' ALTER COLUMN `',COLUMN_NAME,'`  SET DEFAULT '''';') SEPARATOR ' ') FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '<table_name>' AND DATA_TYPE = 'text';

I've pushed a fix for this to the git repo, I'd be grateful if you had a chance to test it works.

7
Tools / Re: [TOOL] WDBX Editor
« on: August 31, 2016, 03:03:09 pm »
Quote from: "Nupper"
Known Database Issue
SQL Error (1364): Field "M_lang_enGB" Doesn't have a default value
Its like that with all with no Default value

Thanks for reporting this, it sounds like you've got your MySQL server in STRICT which enforces these kinds of policies. I'll update the program when I get a chance to default strings to a non-null character.

8
Tools / Re: [TOOL] WDBX Editor
« on: August 24, 2016, 12:09:53 pm »
Quote from: "Nupper"
Code: [Select]
F:GamesWoW DC DevelopmentDataPatch-7.MPQDBFilesClientCreatureDisplayInfo.dbc : Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
F:GamesWoW DC DevelopmentDataPatch-7.MPQDBFilesClientMap.dbc : Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

Either you have duplicate Ids in your DBC files or the definition has the Id field in the wrong position. Without more info I can't pinpoint this exactly however I'd suggest starting with the definitions; since these are DBC files the Id column should always be the first field.

9
Tools / Re: [TOOL] WDBX Editor
« on: August 16, 2016, 08:10:27 pm »
Quote from: "Marlamin"
I hope you consider open sourcing this. Too many amazing tools like this one have been abandoned and eventually lost to format changes.

Thanks for the compliment! My long term goal is to release the source although this will be after I've finished tinkering and provided it turns out to be a worthwhile tool (haven't had much too much feedback yet) as it needs a bit of refactoring.

That being said; if you do use it and notice any issues, sticking points or missing features let me know!

10
Tools / [TOOL] WDBX Editor
« on: August 14, 2016, 07:24:03 pm »
A project I started initially to learn how DBC files worked that eventually turned into this and thought it was worth a share.

This editor has full support for reading and saving all release versions of DBC, DB2, WDB and ADB. This does include support for both Legion DB2 and ADB files and works with all variants (header flags) of these.

Like the other editors I've used a definition based system whereby definitions tell the editor how to interpret each file's columns - this is a lot more reliable than guessing column types but does mean the definitions must be maintained. So far, I've mapped almost all expansions with MoP being ~50% complete, WoD being ~95% complete and everything else being 99%+ (excluding column names).

Link to the source can be found here.

Features:
  • Full support of release versions of DBC, DB2, WDB and ADB (WCH3 and WCH4 are not supported as I deem them depreciated)
  • Opening and having open multiple files regardless of type and build
  • Open DBC/DB2 files from both MPQ archives and CASC directories
  • Save single (to file) and save all (to folder)
  • Standard CRUD operations as well as go to, copy row, paste row, undo and redo
  • Hide, show and sort columns
  • A relatively powerful column filter system (similar to boolean search)
  • Displaying and editing columns in hex (numeric columns only)
  • Exporting to a SQL database, SQL file, CSV file and MPQ archives
  • Importing from a SQL database and a CSV file
  • An Excel style Find and Replace
  • Shortcuts for common tasks using common shortcut key combinations
  • A help file to try and cover off some of the pitfalls and caveats of the program (needs some work)

Tools:
  • Definition editor for maintaining the definitions
  • WotLK Item Import to remove the dreaded red question mark from custom items
  • WDB5 Parser which is an attempt to automatically parse the structure of WDB5 files

Things to Note:
  • You need .Net 4.6.1 installed (download)
  • Importing gives you the option to import; new rows, changed and new rows and to override all data
  • Exporting to MPQ allows you to append to an existing archive or to create a new one
  • Currently any SQL import must have identical columns to the file's definition
  • Legion ADB files MUST have the DB2 counterpart open before as required information is stored in the DB2 file. The program will prioritise DB2 if DB2 and ADB are opened at the same time
  • The WDB5 Parser works surprisingly well thanks to the new field structure data however it does trip up on inline strings so definitions may need to be validated manually
  • Undo, redo and copy data history are lost when changing the current file
  • Everything is stored in memory so if your PC is ancient the program will crash attempting to read hundreds of files at once!

Credits go to Ladislav Zezula for the awesome StormLib and thanks to all those that contribute to the WoWDev wiki. I've also patched the definitions together for various sources across the internet, there are too many to name, but thanks to all.

Change Log:

V 1.0.1
The following things have been changed/added:

  • Added a FileSystemWatcher so that definitions are reloaded as soon as any definition file is saved meaning the application no longer needs to be restarted
  • The program now functions correctly if set as the default program for files (thanks to Skarn for this suggestion)
  • Find and Replace now uses a lookup table so is much faster
  • Specific errors have been refined and made more human
  • The program now no longer stops importing if a string is not found in the string table and instead writes "String not found" in the cell's value. This is an attempt to combat some incorrectly modified DB2 files I've come across
  • Definitions have been updated for WoD 6.2.4 which is at ~98% now
  • A fair amount of optimisation and tinkering

After some advice from Marlamin, Schlumpf and Amaroth I'm going to put the source on git in the coming week so that others can contribute and make this program better!

V 1.0.2

The following things have been changed/added:

  • WCH7 (the new Legion ADB format) is now supported for both reading and writing
  • A range of bugs and issues have been resolved
  • Have added some options to the CSV import to fix erroneous source data:
    • Option 1 (default): Increment Ids so none are duplicated
    • Option 2: Take the newest record of the duplicated Ids
  • The DataGridView has been overhauled meaning it is slightly faster, more memory efficient and now has a cache and state system implemented
  • Undo/Redo has been rebuilt and now triggers on all events properly
    • Note: Undo/Redo history is still lost on changing file
    • Deleting 25+ rows at once is a permanent action (cannot be undone), due to BindingSource + DataGridView performance limitations, and are prompted to complete this action
  • New rows now have default values based on their value type and value types are now enforced
  • Added a new option to the column filter to hide all empty columns (the eye button)
  • Added a clear row right click option which sets the row to default values
  • Added the ability to insert a row with a specific Id provided it doesn't exist (Edit Menu/Ctrl + I)
  • Added a new line shortcut to avoid having to scroll to the bottom of the grid (Edit Menu/Ctrl + N)
  • Have updated the Legion definitions after some issues with WCH7 structures

A big thanks to UncleChristiof and Skarn for ideas, bugs and usability issues!

V 1.0.3

The following things have been changed/added:

The following things have been changed/added:
  • WCH8 (the new Legion ADB format) is now supported for both reading and writing
  • Save As (F12) has been added meaning Save doesn't prompt for file location
  • SQL exprt now works with all "sql_mode"s
  • SQL import now automatically fixes NULL values
  • Datagrid context menu has been added to all cells as well row headers
  • Supports opening multiple selected files at once
  • Supports drag and drop files to open (based on Windows permissions)
  • Added JSON as an export type
  • Added version check based on Github releases

The application now runs as a single instance when launched in GUI mode. This means any files opened thereafter are sent to the running instance instead of opening the application multiple times. In certain situations this is not ideal, so a button has been added to the Load Definition screen which will open a new instance of the application for all files waiting to be loaded.

A range of command line arguments have been added (this is still early stages). This is the beginning of providing an interface so tasks can be automated/invoked via batch scripts and external programs.
Commands currently include (see the help file for more information):
  • Console Mode which opens the software in a console session
  • Extract which will extract all DBC/DB2 files from a MPQ archive or CASC directory based on a filter string
  • Export which exports a specific file to CSV, JSON or SQL
  • SQL dump which dumps a file's data directly into a MySQL database table

Thanks to Luzifix for helping with development



X-Post to other site: http://www.model-changing.net/files/file/82-wdbx-editor/

11
Miscellaneous / [RELEASE] Alpha WoW Emulator
« on: July 10, 2016, 06:15:45 pm »
A project that I’ve worked on and off over the last 8 months, the original idea was to create a simple sandbox with basic networking for the original Alpha client (0.5.3) however, as per usual, it evolved and I’ve implemented (read: thrown together) the base of a few other systems. I’ve not worked on this for 3+ months so thought someone else might be interested in reviving this as I don't plan on continuing this project.

A quick disclaimer: this was never intended to be a commercial project and therefore it is the definition of spaghetti code! I wouldn’t recommend trying to use this for a public server or to even work on the code; just simply as a reference. If I were to redo this I’d use one of the vanilla cores as a base and work back from that.

Current status of features:
  • Chat and emotes - Chat channels not implemented
  • Items
  • Trading - No enchanting through the chat window
  • Groups - Group loot not implemented
  • Quests
    • No ScriptDev equivalent so scripted quests won't work
    • Not all of the correct quest filters are applied
    • Issue with displaying quest objective count
  • Instance portals - Instancing itself is not implemented
  • Gameobjects - Only spawning (chests are animated though!)
  • NPCs
    • Vendors, talent trainers, bankers and skill trainers are working to some degree
    • Basic faction implementation
  • Friend/Ignore List
  • Talent "tree" - Spell effects not implemented
  • Spell casting - Spell effects not implemented but cast animations and pre cast checks are
  • Creatures
    • Can melee combat
    • Looting works but couldn’t figure out how looting worked in terms that tagging mobs wasn’t a feature, should everyone have access to the dead mob’s loot?
    • Movement isn’t correct
    • AI not implemented
  • Basic faction implementation
  • Leveling - Correct talent and skill points being applied as well as the animation

Some things to note:
  • I couldn’t find any reliable source to say if guilds even existed at this stage. The packets are there and the code is in the client but whether it was released I’m not sure so haven’t implemented it
  • All settings are in the Globals.cs file including level cap
  • I’ve used a Mangos 1.12.1 database as the backend so a lot of items/creatures/stats are wrong, I've had to rework the data quite a bit for it to be usable its not simply a copy, paste, done job
  • GM Commands include
    • .additem <item number>
    • .addskill <skillid>
    • .setskill <skillid> <amount> <max amount>
    • .kill
    • .level <level>
    • .money <copper amount>
    • .setpower <amount>
  • Saving is something I started working on but never really implemented
  • The saving and database mechanic works around a custom ORM I built which is heavily reflection reliant
  • Under the common project there is a file called structs.cs in the Constants folder. This is every struct I could extract from the client
  • Username and password is in the wow.ses file inside the client directory; by default the server will create an account based on this information
  • On my keyboard the '@' key brings up the client's debug console one very helpful command is "speed <amount>". The default being 6 and the max being ~50.
 
Requirements:
  • .Net 4.6.1
  • MySQL
 
Installation:

Client Download:
https://www.uloz.to/!5tRJFJdc/wow-friends-and-family-part1-rar
http://www.uloz.to/6113368/wow-friends-and-family-part2-rar
http://www.uloz.to/6113533/wow-friends-and-family-part3-rar

Server:
  • Extract the DBC files to a folder named “dbc” under the root directory - MPQEdit works for this
  • Unzip and run the SQL file in the Database.zip archive
  • Inside the App.Config file is a MySQL connection string, change this to point to the above database - If you’re running the compiled version the config is called WorldServer.exe.config
  • Create a shortcut to WoWClient.exe and add –uptodate to the end i.e. "E:World of Warcraft Alpha 0.5.3WoWClient.exe" –uptodate

Continuation:
As I said before, I never intended to release this or use it for an actual server this was just a project to explore the Alpha further than the original sandboxes. However if a team decides to work on this I’ll be more than happy to lend a hand or offer what information I’ve sourced.

Source code can be found here: https://github.com/barncastle/Alpha-WoW
Download link can be found here (compiled with DBCs): https://mega.nz/#!9cVRza4S!758JXs-LJP3mR15zoAaEP0lM6tR1nvmMNOBJMe_NOQk
X-Post to other forum with images here: http://www.model-changing.net/files/file/80-alpha-wow-emulator/

12
Tutorials / Re: [TUTORIAL] Changing the Client build (for 3.3.5a)
« on: June 13, 2016, 04:39:06 pm »
Quote from: "Diathorus"
Just wanted to change the build number so the sandbox would not be stuck at ''authenticating''
I could only change realm name so far using visual studio -- man, I want to play the alpha death knight in grizzly hills
https://www.youtube.com/watch?v=UeoPgHF ... e=youtu.be
I made a video about what I tried

Bit off topic but... wouldn't it just be simpler to add the alpha build into the server's allow client builds since you have the source? In Trinity it is RealmList.cpp and in Mangos it is SharedDefines.h. Also, simply changing this might not be enough; opcodes, packet structures etc could be different even between Alpha versions.

13
Miscellaneous / Re: Timestamp in SQL?
« on: March 11, 2016, 09:56:12 am »
In Mysql you can use FROM_UNIXTIME i.e. SELECT FROM_UNIXTIME(1459872570)

14
Miscellaneous / Re: [CORE] WoW 0.8.0 AbyssX Sandbox
« on: March 11, 2016, 09:48:30 am »
Quote from: "hinur"
Is there anyway that I could access the database (username, password for HeidiSQL maybe?)

The database is the ex3.db file. It uses Sqlite opposed to MySql so you'll need a Sqlite editor; in particular one that supports version 2.1 like this.

15
Miscellaneous / Re: [CORE] WoW 0.8.0 AbyssX Sandbox
« on: January 29, 2016, 10:06:50 am »

Pages: [1] 2