Open Novivy opened 1 year ago
The whole enum is actually all connected. Here you can see that 1-6 convert them to the numbering scheme in the other ones (like SMSG_CHAR_CREATE)
Why it doesnt show the error after the loading screen, I do not know currently. Likely wrong order of packets in some way.
If you put your line of code for 1. at the end of WorldSession::HandleCharEnum and disable anticheat, you will actually be able to see the error messages in their full glory, but char list wont show. So it isnt a question of packet order. Something else is off and currently do not know.
- Here you can see a nice switch case of valid packetfills for SMSG_CHARACTER_LOGIN_FAILED
The whole enum is actually all connected. Here you can see that 1-6 convert them to the numbering scheme in the other ones (like SMSG_CHAR_CREATE)
Why it doesnt show the error after the loading screen, I do not know currently. Likely wrong order of packets in some way.
Indeed my bad!
If you put your line of code for 1. at the end of WorldSession::HandleCharEnum and disable anticheat, you will actually be able to see the error messages in their full glory, but char list wont show. So it isnt a question of packet order. Something else is off and currently do not know.
Yeah, damn, maybe the client should send CMSG CHAR ENUM
after getting SMSG_CHARACTER_LOGIN_FAILED
so he can retrieve the list again after it. Maybe it's a bug and we were never able to display error on the character list? I can't remember back then but I think we had already got errors like World server is down when trying to login on a character so that's not it
Currently I do not know I'm afraid. In tbc we have correct protocol, but I do not exactly have vanilla sniffs. One thing is to track down packet payloads, a whole another is showing errors.
If I make my game show world server is down it wont show me list if chars after that. and if it does error disappears I think
If I make my game show world server is down it wont show me list if chars after that. and if it does error disappears I think
Yeah so if we display an error the character list won't show and if we want to show the character list, the error won't show. I guess that's how it worked back then.. although displaying an empty character list would freak out people
Bug Details
1) When sending a
SMSG_CHARACTER_LOGIN_FAILED
during the loading after clicking enter world (WorldSession::HandlePlayerLoginOpcode
), the loading correctly stop and bring you back to the characters list but it does not display an error box with the error message given withSMSG_CHARACTER_LOGIN_FAILED
.2) It also appears that the errors messages oopcodes are wrong for 1.12 client.
Current ones (that are wrong)
The correct ones (I was able to test it and verify theses on the character creation screen since the error box appear there when you attempt to create a character)
I will make a pull request for the second point if we can sort out the first one
Steps to Reproduce
Point 1) Checking that the error box does not appear on character selection screen after trying to login
Put
at the very beginning of
void WorldSession::HandlePlayerLoginOpcode(WorldPacket& recv_data)
Then try to login on a character
Point 2) Checking correct oppcodes
Put
at the very beginning of
void WorldSession::HandleCharCreateOpcode(WorldPacket& recv_data)
Then go into the character creation screen and try to create a character, this will throw the excepted error
Expected behavior
1) The error box should appear on the client after sending SMSG_CHARACTER_LOGIN_FAILED with CHAR_LOGIN_DISABLED while entering the world 2) oppcodes for
CharLoginFailReasons
should be updatedSuggested Workaround
1) No idea.. this is why I am here :) 2) oppcodes for
CharLoginFailReasons
should be updated with the ones I providedCrash Log
No response
Core SHA1 Commit Hash
ef797221800493d26e4f5b17d34389953c591d7b
Database SHA1 Commit Hash
14648a47039f968ec0b09ab395c52fc1135cd9fb
Operating System
Windows 10
Client Version
1.12.1 (Classic)