Jump to content
  • 0

Create custom item sets


Guest Svarr_

Question

19 answers to this question

Recommended Posts

you can create item and items sets in item_template for sets add all items what you create the same itemset id

you found in item_template

`itemset` mediumint(8) unsigned NOT NULL DEFAULT '0',

CREATE TABLE `item_template` (
 `entry` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `class` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `subclass` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `name` varchar(255) NOT NULL DEFAULT '',
 `displayid` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `Quality` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `Flags` int(10) unsigned NOT NULL DEFAULT '0',
 `BuyCount` tinyint(3) unsigned NOT NULL DEFAULT '1',
 `BuyPrice` int(10) unsigned NOT NULL DEFAULT '0',
 `SellPrice` int(10) unsigned NOT NULL DEFAULT '0',
 `InventoryType` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `AllowableClass` mediumint(9) NOT NULL DEFAULT '-1',
 `AllowableRace` mediumint(9) NOT NULL DEFAULT '-1',
 `ItemLevel` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `RequiredLevel` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `RequiredSkill` smallint(5) unsigned NOT NULL DEFAULT '0',
 `RequiredSkillRank` smallint(5) unsigned NOT NULL DEFAULT '0',
 `requiredspell` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `requiredhonorrank` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `RequiredCityRank` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `RequiredReputationFaction` smallint(5) unsigned NOT NULL DEFAULT '0',
 `RequiredReputationRank` smallint(5) unsigned NOT NULL DEFAULT '0',
 `maxcount` smallint(5) unsigned NOT NULL DEFAULT '0',
 `stackable` smallint(5) unsigned NOT NULL DEFAULT '1',
 `ContainerSlots` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_type1` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value1` smallint(6) NOT NULL DEFAULT '0',
 `stat_type2` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value2` smallint(6) NOT NULL DEFAULT '0',
 `stat_type3` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value3` smallint(6) NOT NULL DEFAULT '0',
 `stat_type4` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value4` smallint(6) NOT NULL DEFAULT '0',
 `stat_type5` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value5` smallint(6) NOT NULL DEFAULT '0',
 `stat_type6` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value6` smallint(6) NOT NULL DEFAULT '0',
 `stat_type7` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value7` smallint(6) NOT NULL DEFAULT '0',
 `stat_type8` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value8` smallint(6) NOT NULL DEFAULT '0',
 `stat_type9` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value9` smallint(6) NOT NULL DEFAULT '0',
 `stat_type10` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `stat_value10` smallint(6) NOT NULL DEFAULT '0',
 `dmg_min1` float NOT NULL DEFAULT '0',
 `dmg_max1` float NOT NULL DEFAULT '0',
 `dmg_type1` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `dmg_min2` float NOT NULL DEFAULT '0',
 `dmg_max2` float NOT NULL DEFAULT '0',
 `dmg_type2` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `dmg_min3` float NOT NULL DEFAULT '0',
 `dmg_max3` float NOT NULL DEFAULT '0',
 `dmg_type3` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `dmg_min4` float NOT NULL DEFAULT '0',
 `dmg_max4` float NOT NULL DEFAULT '0',
 `dmg_type4` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `dmg_min5` float NOT NULL DEFAULT '0',
 `dmg_max5` float NOT NULL DEFAULT '0',
 `dmg_type5` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `armor` smallint(5) unsigned NOT NULL DEFAULT '0',
 `holy_res` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `fire_res` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `nature_res` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `frost_res` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `shadow_res` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `arcane_res` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `delay` smallint(5) unsigned NOT NULL DEFAULT '1000',
 `ammo_type` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `RangedModRange` float NOT NULL DEFAULT '0',
 `spellid_1` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `spelltrigger_1` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `spellcharges_1` tinyint(4) NOT NULL DEFAULT '0',
 `spellppmRate_1` float NOT NULL DEFAULT '0',
 `spellcooldown_1` int(11) NOT NULL DEFAULT '-1',
 `spellcategory_1` smallint(5) unsigned NOT NULL DEFAULT '0',
 `spellcategorycooldown_1` int(11) NOT NULL DEFAULT '-1',
 `spellid_2` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `spelltrigger_2` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `spellcharges_2` tinyint(4) NOT NULL DEFAULT '0',
 `spellppmRate_2` float NOT NULL DEFAULT '0',
 `spellcooldown_2` int(11) NOT NULL DEFAULT '-1',
 `spellcategory_2` smallint(5) unsigned NOT NULL DEFAULT '0',
 `spellcategorycooldown_2` int(11) NOT NULL DEFAULT '-1',
 `spellid_3` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `spelltrigger_3` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `spellcharges_3` tinyint(4) NOT NULL DEFAULT '0',
 `spellppmRate_3` float NOT NULL DEFAULT '0',
 `spellcooldown_3` int(11) NOT NULL DEFAULT '-1',
 `spellcategory_3` smallint(5) unsigned NOT NULL DEFAULT '0',
 `spellcategorycooldown_3` int(11) NOT NULL DEFAULT '-1',
 `spellid_4` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `spelltrigger_4` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `spellcharges_4` tinyint(4) NOT NULL DEFAULT '0',
 `spellppmRate_4` float NOT NULL DEFAULT '0',
 `spellcooldown_4` int(11) NOT NULL DEFAULT '-1',
 `spellcategory_4` smallint(5) unsigned NOT NULL DEFAULT '0',
 `spellcategorycooldown_4` int(11) NOT NULL DEFAULT '-1',
 `spellid_5` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `spelltrigger_5` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `spellcharges_5` tinyint(4) NOT NULL DEFAULT '0',
 `spellppmRate_5` float NOT NULL DEFAULT '0',
 `spellcooldown_5` int(11) NOT NULL DEFAULT '-1',
 `spellcategory_5` smallint(5) unsigned NOT NULL DEFAULT '0',
 `spellcategorycooldown_5` int(11) NOT NULL DEFAULT '-1',
 `bonding` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `description` varchar(255) NOT NULL DEFAULT '',
 `PageText` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `LanguageID` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `PageMaterial` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `startquest` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `lockid` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `Material` tinyint(4) NOT NULL DEFAULT '0',
 `sheath` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `RandomProperty` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `block` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `itemset` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `MaxDurability` smallint(5) unsigned NOT NULL DEFAULT '0',
 `area` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `Map` smallint(6) NOT NULL DEFAULT '0',
 `BagFamily` mediumint(9) NOT NULL DEFAULT '0',
 `ScriptName` varchar(64) NOT NULL DEFAULT '',
 `DisenchantID` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `FoodType` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `minMoneyLoot` int(10) unsigned NOT NULL DEFAULT '0',
 `maxMoneyLoot` int(10) unsigned NOT NULL DEFAULT '0',
 `Duration` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Duration in seconds',
 `ExtraFlags` tinyint(1) unsigned NOT NULL DEFAULT '0',
 PRIMARY KEY (`entry`),
 KEY `items_index` (`class`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Item System';

Link to comment
Share on other sites

you can create item and items sets in item_template for sets add all items what you create the same itemset id

Thanks. This was my first idea. But then, doesn't have itemsets their own names (and the set bonuses)? Those informations must be saved somewhere too.

Anyway, I created the items yesterday and I will add them to tha db now. See what happens... :rolleyes:

Link to comment
Share on other sites

thats a good question xD i have never make self items but i think look here thats help http://project-silverpine.com/devwiki/index.php?title=Item_template

Thanks a lot! I found this line:

The ID of the item set that this item belongs to. To save you some time, you CAN NOT make up new item sets. Item sets are defined in ItemSet.dbc
Did they mean I can not make up new item sets because they are defined in the .dbc-file? I will find out soon. xD

In the meantime: I added the items but inside of the bag they don't have icons (just the template question mark) and I can't put them on with a rightclick, but only with drag and drop. When I wear them, everything (models and icon in the character window) is shown correctly. So this is just an eye candy issue.

The two handed sword doesnt count as meele weapon as I can't use most of my warrior skills.

I created the items with wow-v.

Link to comment
Share on other sites

Since WoW 3.2.2a, all items are hard-linked to the DBC files. This means you have to assign unused IDs of the same type to any items that you add. To add a sword, you need an unused ID for a sword. To add a piece of armor, say a breastplate, you must find an unused chest piece ID. Keep in mind the items you create will have the stats and bonuses you specify, but the icon displayed in your controls will be of the unused item you're hijacking. The model displayed in the game will also be that of the unused item, unless you edit the modelID and displayID values.

There are quite a lot of unused IDs for all kinds of things. Some are old versions that were replaced in a newer expansion or patch while others were only used in the PTR version, never making it into the final retail release.

AC-Web has loads of excellent tutorials and tools for creating all kinds of custom content, although MaNGOS is not as popular with the mod crowd as other cores. You can also try the Item Creator scripts over at WoW-V or browse through the thousands of entries created by others. They even have one specifically for making Item Sets, very detailed and filled with enough features to keep you busy for hours. The various item makers at WoW-V allow you to choose between different server cores, including MaNGOS, and generates an SQL statement that you can download and merge into your database. WoW-V does not keep up with MaNGOS changes as well as they do for Ascent, so expect some hand-editing of the generated SQL to make your newly created stuff work properly with current revisions. You must create an account if you want your creations to remain private. Otherwise, everything you make is publicly posted for everyone to use with their own servers.

The UDB forums also have a section devoted to mods and custom content for MaNGOS, but nearly all of their stuff is outdated an broken on more recent MaNGOS releases. Still, there may be useful information on creating your own mods in the tutorials and guides posted there.

Since the modding community seems to believe MaNGOS is not "mod-friendly", maybe we should take it upon ourselves to establish our own forum section for customizations and begin cranking out a set of tools and tutorials that are made for today's MaNGOS.

Link to comment
Share on other sites

Thank you UnkleNuke! :D

One does not simply create item sets with wow-v. xD And btw nowadays you have to create an account just to be able to use the item/npc/whatever creator.

BUT through the wow-v FAQ I got a long list of unused id's. And the items are all working now. :)

On the same page is mentioned that custom item sets could only be made with "extensive core, DBC, and database editing".

What I did until now is adding a line into the ItemSet.dbc with the id 1000 and the name. The other collums are unknown, so I can't set any bonuses and add any items.

Database editing isn't necessary I think, because there are no tables for item sets.

And least but not last: core editing. I believe this means changing the .h or .cpp-files?

Anyone got starting points on this matter or isn't it worth the trouble?

Link to comment
Share on other sites

You create each item individually in the database. What makes them into a set is using the same ID in the Item_Set table. That is where you also put the stat boosts for having X number of pieces in the set, I think, but don't take that part as fact because my own DB skills are still fairly basic.

As with items, you will need an unused Item Set ID of the same type.

For core edits, it mostly a matter of adding your set bonuses and effects to SpellEffects.cpp. Just copy an entry and plug in your own names and values, then tack it onto the proper Class section of the code. A Paladin set would go with the other pally stuff, Priest goes with Priest, and so on.

Link to comment
Share on other sites

You create each item individually in the database. What makes them into a set is using the same ID in the Item_Set table. That is where you also put the stat boosts for having X number of pieces in the set, I think, but don't take that part as fact because my own DB skills are still fairly basic.
Sadly this is not true. Just writing the same ID in the itemset collum doesn't add a new itemset. And in the item_template table are no collums relatet to set bonuses. I think this is everything managed in the ItemSet.dbc. The only problem is that I don't know wich collum is for what. The only thing I found out is which collums the id's of the set items contains. So I changed the line I added a few days ago. Now it contains the ID, the name and the items of the set. I left the set boni blank for now, because I don't know how and in which collum they have to be entered.

But ingame the items still aren't shown as set items. This could be because I havent added any set boni or because the number of lines that will be read out are hardcoded for every .dbc. I am trying out the first possibility right now. But I don't have much hope. I'll just copy the data from another set. This way I could also find out wich collum says what.

As with items, you will need an unused Item Set ID of the same type.
There are no unused item set ID's it seems. At least I can't find a list in the internet. Is there a way to find out without having an itemset_template table?

Edit: It didn't work. Still no itemset.

Link to comment
Share on other sites

Yeah, thank you very much! :D

I just tried to add the itemset via gm command and it worked! So this means the itemset is there but when I move the mouse over the items these informations aren't shown. Anyone got an idea how to fix it?

I could imagine, that the problem is that I created a new ID for the itemset instead of using an existing. But to fix this I must know how to get unused itemset IDs.

Link to comment
Share on other sites

Yeah, thank you very much! :D

I just tried to add the itemset via gm command and it worked! So this means the itemset is there but when I move the mouse over the items these informations aren't shown. Anyone got an idea how to fix it?

I could imagine, that the problem is that I created a new ID for the itemset instead of using an existing. But to fix this I must know how to get unused itemset IDs.

I'm pretty sure that's because the Client doesn't have a record for the corresponding item.... I can't be sure on it but I saw an online video detailing the creation of an item and that was one of the issues that popped up when you mouse-over the item. I didn't finish watching the video so don't know if that can even be addressed let alone fixed.

Link to comment
Share on other sites

Yeah, thank you very much! :D

I just tried to add the itemset via gm command and it worked! So this means the itemset is there but when I move the mouse over the items these informations aren't shown. Anyone got an idea how to fix it?

I could imagine, that the problem is that I created a new ID for the itemset instead of using an existing. But to fix this I must know how to get unused itemset IDs.

I'm pretty sure that's because the Client doesn't have a record for the corresponding item.... I can't be sure on it but I saw an online video detailing the creation of an item and that was one of the issues that popped up when you mouse-over the item. I didn't finish watching the video so don't know if that can even be addressed let alone fixed.

I don't have problems with normal items I created. The stats and everything are shown, except the itemset info.

Link to comment
Share on other sites

Since the last posts of this thread are swallowed by inconvenient internet occurences, I want to state that we could solve all of these problems.

I've written a tutorial for this and am waiting for a "go" from Antz to publish it on the MaNGOS wiki (there is the question of legality, which has to be answered first).

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use