Modcraft - The community dedicated to quality WoW modding!

Wrath of the Lich King Modding => Serverside Modding => Topic started by: spiderwaseem on April 12, 2015, 12:04:27 am

Title: [TrinityCore] Remove/Raise WoW Gold Cap? (WoW 3.3.5)
Post by: spiderwaseem on April 12, 2015, 12:04:27 am
Hello everyone.

I see that since cataclysm, the WoW gold cap is 1,000,000.
In WoTLK, the WoW gold cap is somewhere around 200,000.

(http://www.wow.freemmorpgguides.com/wp-content/uploads/2013/01/wow-gold-guide.png)

I was thinking...
Is it possible to raise the gold cap in a TrinityCore WoW 3.3.5 Server?

What files or scripts do I need to edit to change the gold cap or to make it limitless?
Also, if client changes are needed... What files?

Please do help me out on this.

Thank You.
P.S

I don't want to use Gold Cap to Gold Bars.
Title: Re: [TrinityCore] Remove/Raise WoW Gold Cap? (WoW 3.3.5)
Post by: Amaroth on April 12, 2015, 11:20:19 am
214748g 36s 47cp - thats cap I suppose. I don't know how much you know about programming, but thats no simply random number, its int(10) SIGNED maximal value (don't ask me why there is UNSIGNED in database, maybe for removing gold under 0 before it is reset to 0 by core?).

You would need to change structure of some DB tables (if you are lucky, it will be only characters.characters and world.item_template, but I doubt it) and also change data type for all values reffering to money player is carrying in source of emulator. And its very likely that you would also have to change wow.exe itself.

So no simple, I would dare to say impossible task.
Title: Re: [TrinityCore] Remove/Raise WoW Gold Cap? (WoW 3.3.5)
Post by: spiderwaseem on April 12, 2015, 03:56:41 pm
Quote from: "Amaroth"
214748g 36s 47cp - thats cap I suppose. I don't know how much you know about programming, but thats no simply random number, its int(10) SIGNED maximal value (don't ask me why there is UNSIGNED in database, maybe for removing gold under 0 before it is reset to 0 by core?).

You would need to change structure of some DB tables (if you are lucky, it will be only characters.characters and world.item_template, but I doubt it) and also change data type for all values reffering to money player is carrying in source of emulator. And its very likely that you would also have to change wow.exe itself.

So no simple, I would dare to say impossible task.

I feel like this task isn't impossible, but won't be done for WoTLK for a long time, and I won't most likely be able to do it. :/

Unless ofc if we all combine forces and do this together, then we could achieve anything. :)
Title: Re: [TrinityCore] Remove/Raise WoW Gold Cap? (WoW 3.3.5)
Post by: schlumpf on April 12, 2015, 04:22:34 pm
This is technically possible, but just not feasible at all. You would have to rewrite parts of the client by hand, in assembly. Not only does one need to change the type of that variable at all places (which is a shitload of places), including network packets, you would also have to change the data layout of all objects containing the variable, which is things like the player. This would move all variables behind accordingly, which in turn would require you to adjust all those variables as well.

Even with joint forces, this is a task that would take months for experts on the topic and in assembly. In an non-automated way, it would also likely result in a shitton of hard to spot bugs and constant crashes.

No, this task is not feasible and is definitely on the list of the things that are not achievable.

And I really only talk about extending that variable.

Yes, I know that for changing it to unsigned "only" is "easier". Still, nope.
Title: Re: [TrinityCore] Remove/Raise WoW Gold Cap? (WoW 3.3.5)
Post by: whiteshirtguy on May 26, 2016, 09:22:23 pm
Simply by editing all references to MAX_MONEY_AMOUNT in the core, as well as how money is handled in trades, the auction house, as well as the structure for items... I was able to raise it from the maximum of an integer (2147483647) to 421,000-something. It's definitely difficult but exceeding that value would have required moving to the database, as well as the client. I simply rolled my source back to an earlier point and decided to go with the workaround route.