So i have made a whole bunch of heirlooms and they can be added with sqls and they work fine and all.
https://drive.google.com/drive/folders/1LrySDDZOiW_74oM1UjRGNudvd3QMn4DL?usp=sharing
But that was just using existing code that was already in the dbcs. Is there a guide for updating the dbc's? I need to add some extra columns. Do I convert to a sql or something or will I have to make a module?
I want to add armor progression for shields in the ScalingStatValues.dbc. I worked out how to but when I drop the new dbc in it breaks and wont load up haha :(
I worked out how to update the ScalingStatDistribution.dbc to add block value to the shields. There were a few unused rows so that part was easy. I also put it into a patch-4.mpq and updated the server dbc and worked really well.
I am stuck on the ScalingStatValues.dbc I would like to add an extra column for shield armor progression and I have already worked out the math any help would be appreciated :)
I added an updated dbc to the acore server dbc and it crashes the server :(
-update- 15/12/23
After looking through the scource code and searching for scalingstatvalues there are a few results.
Now it expects a dbc with only 24 column and will spit an error unless I make a change.
at the DBCfmt.h line 98 char constexpr ScalingStatValuesfmt[] = "iniiiiiiiiiiiiiiiiiiiiii"; this needs an extra i as it changes the expected scalingstatvalues.dbc to include an extra column.
Now it expects 25 columns. char constexpr ScalingStatValuesfmt[] = "iniiiiiiiiiiiiiiiiiiiiiii";
DBCStructure.h line 1490 armormod2[5] I updated the array to [6]. line 1490 uint32 armorMod2[6]; // 19-24 Armor for level
And at line 1520 I added the mask for the next array value as if (mask & 0x01000000) return armorMod2[5]; //shield int 16777216
Im hoping that if I set the shield on the item template the scaling stat value as 16777216 it will go to the next column in the scalingstatvalue.dbc which I have added in to the .dbc. However it does not :(
Although the code compiles it does not work as intended.
I feel like i am close but i dont quite know what i need to do next ... yet
The client and server both expect a set number of columns in the DBClient files. You will need to modify the client and server code in order to implement your new feature.