Modcraft - The community dedicated to quality WoW modding!

Wrath of the Lich King Modding => Miscellaneous => Topic started by: spiderwaseem on March 16, 2015, 06:20:59 pm

Title: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 16, 2015, 06:20:59 pm
Hello Everyone!

I've seen servers out there before that are over the level of 255.
However, they could have been running on ArcEmu, because I remember back in the day when I had a ArcEmu server, and I made the max level 1000, and it worked.

However, I was wondering how can I do this on a TrinityCore server?
I know it's possible, because if it was set to level 255 somehow, then it has to be possible to set it to something else.

What I know so far is that you have to edit the DBCEnum.h.
So I know what to edit in there, it's really simple.

But what else would I have to edit on the TrinityCore Core side?


Please help with any kind of help you can give.

Thank You!


P.S
----
I already know that it is really difficult/a lot of work to do.
Title: Re: [TrinityCore] MAX LEVEL OVER 255???
Post by: spiderwaseem on March 17, 2015, 12:34:13 pm
Bump!

I would appreciate any help at all. :)
Title: Re: [TrinityCore] MAX LEVEL OVER 255???
Post by: spiderwaseem on March 19, 2015, 01:18:48 pm
Bump...
Title: Re: [TrinityCore] MAX LEVEL OVER 255???
Post by: Ascathos on March 19, 2015, 01:42:31 pm
Would be helpful if you said what you changed already. What did you change to what value ?

For example, values like mana reg, etc.
They all have a value in their respective dbc for each level.
Title: Re: [TrinityCore] MAX LEVEL OVER 255???
Post by: spiderwaseem on March 19, 2015, 09:38:08 pm
Quote from: "Ascathos"
Would be helpful if you said what you changed already. What did you change to what value ?

For example, values like mana reg, etc.
They all have a value in their respective dbc for each level.

So far I only edited the following:

DBCEnum.h:
Quote
enum LevelLimit
{
    // Client expected level limitation, like as used in DBC item max levels for "until max player level"
    // use as default max player level, must be fit max level for used client
    // also see MAX_LEVEL and STRONG_MAX_LEVEL define
    DEFAULT_MAX_LEVEL = 555,

    // client supported max level for player/pets/etc. Avoid overflow or client stability affected.
    // also see GT_MAX_LEVEL define
    MAX_LEVEL = 555,

    // Server side limitation. Base at used code requirements.
    // also see MAX_LEVEL and GT_MAX_LEVEL define
    STRONG_MAX_LEVEL = 555,
};

worldserver.conf:
Quote
MaxPlayerLevel = 555

Database Tables Edited:
Quote
characters (changed column "level" to SMALLINT so it can go over 255).
creature_classlevelstats
creature_template (changed column "minlevel" and "maxlevel" to SMALLINT so it can go over 255).
player_classlevelstats
player_levelstats
player_xp_for_level


These are the only changes/edits that I have done.
I know that there is still a lot more, but I'm not 100% sure what else to do.

Please help if you can, thank you.
Title: Re: [TrinityCore] MAX LEVEL OVER 255???
Post by: Ascathos on March 19, 2015, 10:17:15 pm
https://github.com/TrinityCore/TrinityC ... .cpp#L1992 (https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/game/Entities/Player/Player.cpp#L1992" onclick="window.open(this.href);return false;)

To load up.

I think there is an additional lua setting.
Title: Re: [TrinityCore] MAX LEVEL OVER 255???
Post by: spiderwaseem on March 20, 2015, 12:47:17 pm
Quote from: "Ascathos"
https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/game/Entities/Player/Player.cpp#L1992

To load up.

I think there is an additional lua setting.


So I need to change:
Quote
*data << uint8(fields[7].GetUInt8());                   // level
to
Quote
*data << uint16(fields[7].GetUInt16());                   // level
Correct?

Anything else I need to change in player.cpp?


Also, you said a lua file needs to be edited?
Do you happen to know which lua file?
And since it's lua, I believe that this is on the client side of WoW, correct?

Thank You. :)
Title: Re: [TrinityCore] Max Level over 255?
Post by: schlumpf on March 20, 2015, 04:27:29 pm
Uh.. That line you point to sends a network packet, thus raw data. Changing the variable type will break the packet structure and do nothing but overwrite half of the following field (zone). So, before you had levels from 0x0 to 0xFF. If your level is in that range, you now have level 0 and zone 0xFF??. If you then come to level 0x100, you are now level 1 and zone 0x00??. You also only level up once every 0x100 levels clientside.

I'm not entirely sure how this is supposed to work, unless I am missing something obvious here entirely.
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 20, 2015, 06:21:23 pm
Quote from: "schlumpf"
Uh.. That line you point to sends a network packet, thus raw data. Changing the variable type will break the packet structure and do nothing but overwrite half of the following field (zone). So, before you had levels from 0x0 to 0xFF. If your level is in that range, you now have level 0 and zone 0xFF??. If you then come to level 0x100, you are now level 1 and zone 0x00??. You also only level up once every 0x100 levels clientside.

I'm not entirely sure how this is supposed to work, unless I am missing something obvious here entirely.

Take a look at this post:
http://forum.ragezone.com/f114/trinityc ... p-1049019/ (http://forum.ragezone.com/f114/trinitycore-level-1000-cap-1049019/" onclick="window.open(this.href);return false;)

Darkicon wrote this:
Quote
All you have to do is add the level stats to the DB and set the max level in the config. Hard coding it is an excessive amount of work for the same result. Unless you're adding custom stuff to the game, like new classes or textures, etc., you never really need to modify the client.

Also, the level cap is 255 due to it being an unsigned 8-bit integer (0-255). You'd have to modify the core and change the data type to something like a 16-bit unsigned integer (Max = 65535) in .srcgameEntitiesUnitUnits.h as well as defining the hard max level in .srcservergameDataStoresDBCEnums.h as well as changing the data type for levels in the DB tables from an unsigned tinyint3 (0-255) to something like an unsigned smallint6 (Max = 65535). There's actually a lot more core components that would need to be edited like .srcgameEntitiesPlayerPlayer.cpp. You actually need to change the data type for levels in EVERY core component it's defined in and EVERY DB table. It's way more work than it's worth.

So from my understanding, I need to change everything that has to do with level from 8bit to 16bit.

However, I need to also do DB edits.
Title: Re: [TrinityCore] Max Level over 255?
Post by: schlumpf on March 20, 2015, 06:53:39 pm
The issue is that level is transported over network, thus interpreted in the client. You can't change interpretation there, thus you are limited.
Title: Re: [TrinityCore] Max Level over 255?
Post by: Magnus on March 21, 2015, 01:14:10 am
Yes, as far as I know the problem was never the server, neither on ArcEmu nor on TC.

The client accepts only a 8bit package for the level and this results in a max. of 255 levels.

Would be very surprised if sombody really could have changed this.
Title: Re: [TrinityCore] Max Level over 255?
Post by: Amaroth on March 21, 2015, 01:35:56 pm
The only one question I have...:
What the hell for?
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 21, 2015, 03:41:07 pm
Quote from: "Magnus"
Yes, as far as I know the problem was never the server, neither on ArcEmu nor on TC.

The client accepts only a 8bit package for the level and this results in a max. of 255 levels.

Would be very surprised if sombody really could have changed this.

I remember on my ArcEmu old server (back in the day... lol), I changed the level cap to 1000 in the configs, and it was as simple as that to make it over 255.
I will download a ArcEmu repack and test what I'm saying again...
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 21, 2015, 03:42:41 pm
Quote from: "Amaroth"
The only one question I have...:
What the hell for?

Because I want to be different than 255...
All FunServers out there (or most) and 255. When a new 255 server comes out, people always will just say something like, "Ohh, well it's just another 255 server...".
But not only for that reason, but also because I have a big new leveling system plan for a FunServer that requires my max level to be 555. :P
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 22, 2015, 12:29:31 am
Ok, so apparently now it doesn't work when I change the level cap on ArcEmu to 1000 or over 255...
Maybe I'm just remembering wrong... idk.

I'm sure though that this is possible without WoW Client Changes, only core/server side.
Title: Re: [TrinityCore] Max Level over 255?
Post by: schlumpf on March 22, 2015, 12:42:49 am
If you manage to do so, please report.
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 22, 2015, 01:21:29 am
Quote from: "schlumpf"
If you manage to do so, please report.

Will do. :)

However, at the same time, if anyone else gets any new ideas on how to get this done, then please do report that here too.

Thanks.
Title: Re: [TrinityCore] Max Level over 255?
Post by: Magnus on March 22, 2015, 08:49:32 am
No, it's not possible. It's a long discussion since years and I never saw any solution.

As long as you can't modify the client's network protocol and how it handles the level management it's not a server issue.

You also should think about why a WotLK client even should support levels above 255 if even cata and the patchs after never used the full range of 255 levels.

And btw: Whatever you plan with you server ... the attractivity of a public server project doesn't lay in the amount of levels.
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 22, 2015, 11:15:06 am
Quote from: "Magnus"
No, it's not possible. It's a long discussion since years and I never saw any solution.

As long as you can't modify the client's network protocol and how it handles the level management it's not a server issue.

You also should think about why a WotLK client even should support levels above 255 if even cata and the patchs after never used the full range of 255 levels.

And btw: Whatever you plan with you server ... the attractivity of a public server project doesn't lay in the amount of levels.

Yes, I understand that the amount of levels don't attract players.
However, I'm creating this new leveling system that requires the max level of 555.
I also make a poll vote on my website to see if players like the idea, and I got a lot more votes for yes than no, and I myself even like the idea too.

Any how, I remember that there were level 1000 servers out there before...
I could be wrong, but I remember seeing one.

I'll look for one and reply back.
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 22, 2015, 11:18:49 am
Ok, I found a level 1000 server.
However, it's now closed.

But here is an old video from the server proving that WoW can go over level 255.

[media:1vve1zz1]https://www.youtube.com/watch?v=sXqRUPaBB_k[/media:1vve1zz1]

OR

[media:1vve1zz1]https://www.youtube.com/watch?v=CQ7_NOD4Ff0[/media:1vve1zz1]

Now the question at hand is... How did they do it?

I remember that I made my level cap 1000 on ArcEmu (on a repack too) just by changing it in the configs..
I know it's possible without any Client edits.

However, I'm downloading my old WoW Repack again (from like 2 years ago), and I'll see if it works again.
Title: Re: [TrinityCore] Max Level over 255?
Post by: Magnus on March 22, 2015, 01:43:46 pm
Fake video ?
Hacking programs that modifies local client memory ?
Using a modified client ?

Arcemu never supported level above 255. Official they even didn't support level above 80. Like Trinity.

But there is a simple way for you to test it.

Have a look where the server is sending the network package. For testing purpose try to change this to let's say a fix level of '444'.

I'm quite sure you will fail :-)

If not, you can change the other stuff like db and core value lengths after that.
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on March 22, 2015, 01:51:10 pm
Quote from: "Magnus"
Fake video ?
Hacking programs that modifies local client memory ?
Using a modified client ?

Arcemu never supported level above 255. Official they even didn't support level above 80. Like Trinity.

But there is a simple way for you to test it.

Have a look where the server is sending the network package. For testing purpose try to change this to let's say a fix level of '444'.

I'm quite sure you will fail :-)

If not, you can change the other stuff like db and core value lengths after that.

No, I don't know if this server was ran off of a ArcEmu or Trinity Core.
I just know it's an old server that isn't online anymore.

Also, I'm sure that this isn't a fake video.
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on April 02, 2015, 02:26:17 pm
Bump...

Anyone else have any info on this?

Thanks.
Title: Re: [TrinityCore] Max Level over 255?
Post by: fakepanda on April 10, 2015, 10:57:02 pm
back when I started playing on private servers, I remember seeing people way over level 255.
I believe the server I saw it on was based on arcemu.
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on April 11, 2015, 02:57:42 pm
Quote from: "fakepanda"
back when I started playing on private servers, I remember seeing people way over level 255.
I believe the server I saw it on was based on arcemu.

Yeah, I remember I had a lvl 1000 server like 3 years ago. It was based off of ArcEmu too.

I'm still curios to getting my level over 255.
Title: Re: [TrinityCore] Max Level over 255?
Post by: kasma23 on July 09, 2015, 08:41:13 pm
i been trying to get this one for awhile now. i forget what i modded since i lost my HDD the source was on. but i got mobs working to level 1000 and players could be set to level 1000 in the DB log into game and it would show level 1000 but when they logged out the Core and DB would set there level to a random number.

started looking again i will post what i get when i start modding the code. :)

i know with Arcemu it was easy... so easy..my modded wow.exe even let me set my level to 2,147,483,647 Via the DB and log into game and stay that level. without crashes
Title: Re: [TrinityCore] Max Level over 255?
Post by: Rochet2 on July 09, 2015, 11:08:09 pm
There used to be servers where you could have 1000 level, but you would DC or crash a lot. ( the client )
And yes, they were arcemu from what I recall.

Anyways, it is possible to at least SHOW level 1000 or anything on the client.
However functionality with other packets might not work since the data might have the expected sizes like 8 bit etc.

The reason you can change the level is that it is one of the "uint32" values.
If you use for example .debug Mod32Value 54 6666, you can set the level to 6666
(this is for wotlk, the field might be different for other patches)

Example of output result with using huge numbers:
(https://imagizer.imageshack.us/v2/275x122q90/11/5r6p.jpg)


If you want something "original", why not scrap "levels" all together and make it be something else completely.
Like in darksouls its not level at all.
Title: Re: [TrinityCore] Max Level over 255?
Post by: Magnus on July 21, 2015, 08:38:14 am
NEVER WAS POSSIBLE TO MAKE IT WORKING OVER 255.

Level is a 8bit value. END OF STORY.
Title: Re: [TrinityCore] Max Level over 255?
Post by: Chase on July 22, 2015, 01:28:57 am
My friend did this on WoD server.
(http://i.imgur.com/9PudGtE.png)
Title: Re: [TrinityCore] Max Level over 255?
Post by: Magnus on July 22, 2015, 08:12:06 am
I was assuming that people are discussing about WotLK server, like ArcEmu. And because on WotLK the level is transferred with an 8bit integer it's not possible to make it working over 255.

For later patches I'm not informed about the data length of level field. But I don't see any reason for Blizz to increase the data field length as long as they don't need it for their own game.
Title: Re: [TrinityCore] Max Level over 255?
Post by: Rochet2 on August 18, 2015, 07:21:42 pm
having a little fun:
(http://i.imgur.com/bol9MGC.png)

.debug Mod32Value 54 -160000
Title: Re: [TrinityCore] Max Level over 255?
Post by: saifi0102 on August 18, 2015, 09:15:28 pm
Quote from: "Rochet2"
having a little fun:

.debug Mod32Value 54 -160000

Did u crash yet? :)
Title: Re: [TrinityCore] Max Level over 255?
Post by: Chase on August 18, 2015, 09:24:16 pm
You wont crash in game, but when you log in with that level you will crash the server.
Title: Re: [TrinityCore] Max Level over 255?
Post by: saifi0102 on August 18, 2015, 10:54:19 pm
WoW crashed when I pressed "C" for the character window... Although I doubt the server will crash
Title: Re: [TrinityCore] Max Level over 255?
Post by: XxXGenesisXxX on August 23, 2015, 02:20:59 pm
Quote from: "saifi0102"
WoW crashed when I pressed "C" for the character window... Although I doubt the server will crash

The character pane crash that you get for having too high of a level is due to these files not having enough entries for that class:


As for it being possible overall, of course it is. Sure as hell it would be buggy though. If I recall correctly however you also need to up a buffer size as well, I did a quick look online at the ArcEmu repository (I no longer have WoW installed, so forgive me if my memory is wrong) and it was a line similar to line 372: https://github.com/arcemu/arcemu/blob/master/src/arcemu-shared/ByteBuffer.h

That said, it is accompanied by the exact thing it lists, you should find another way to do it.
Title: Re: [TrinityCore] Max Level over 255?
Post by: spiderwaseem on August 24, 2015, 02:31:39 am
I'm sure making your level over 255 on TrinityCore is hard af.
But in ArcEmu,  I remember there was this repack where through the configs, I could easily set the max level to whatever I want it to be.
Title: Re: [TrinityCore] Max Level over 255?
Post by: XxXGenesisXxX on August 24, 2015, 06:16:37 am
If you really want to stretch the term "work around" you could always do a method such as using two integers in conjunction with each other then manually adding the math elsewhere in the code:

For the level 1 it would be 0, 1.
For level 255 it would be 0, 255.
For level 256 it would be 1, 1.
For level 510 it would be 1, 255.
For level 511 it would be 2, 1.
For level 555 like you want it would be 2, 45.

Etc.. Etc...

This would involve a lot of screwing around, but you could more or less create a pseudo-leveling system and attempt to work it into the other calculations.