are azerothcore dbc's updatable? And how to please?

134 Views Asked by At

So i have made a whole bunch of heirlooms and they can be added with sqls and they work fine and all.

https://docs.google.com/spreadsheets/d/1axkabcMMLsHoPcTTMW4qucAu1jwq0h3j3VaIsmz3bT8/edit?usp=drive_link

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

1

There are 1 best solutions below

2
On

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.