jesusalva wrote: ↑26 Feb 2024, 00:19
Experience notifications is because M+/MV omits when you level up,
Should this be changed so xp received is shown even at lvl-up?
I've looked at TMWA and this is how level-up is done:
First comes the "new baselevel" packet:
Code: Select all
0000 readInt16: 176 0xb0: SMSG_PLAYER_STAT_UPDATE_1
Level-up here, should be 6/9 xp + 6 xp spilling over to lvl 2 and 3/16 xp.
Levelup message?
0002 readInt16: 11 0xb: type
0004 readInt32: 2 0x2: value
Then the new xp required for lvl-up:
Code: Select all
0000 Receive packet: MessageIn
0000 readInt16: 177 0xb1: SMSG_PLAYER_STAT_UPDATE_2
0002 readInt16: 22 0x16: type
0004 readInt32: 16 0x10: value
Then comes the xp packet:
Code: Select all
0000 readInt16: 177 0xb1: SMSG_PLAYER_STAT_UPDATE_2
Sp::BASEEXP
0002 readInt16: 1 0x1: type
0004 readInt32: 3 0x3: value
3 xp received.
And the xp gained message is skipped in LocalPlayer::attributeChanged because new xp < old xp. ManaVerse would have to keep track of old lvl-up xp to accurately show xp gained here.