Hi. I am a Korean who is developing Korean MS.
(
All of the projects develop are based on Eric's OrionAlpha. Thank you Eric.)
Currently, getCharList has been implemented, and
CheckPassword and reorganize the
AccountInfo etc, so I found a few during the analysis.
Before I ask you a question, I'll show you a picture.
Quote:
public static OutPacket onWorldInformation(WorldEntry world) {
OutPacket packet = new OutPacket(SendHeader.WorldInformation);
packet.encodeByte(world.getWorldID()); //worldID
packet.encodeString(world.getName()); //worldName
packet.encodeByte(world.getFlag()); //worldFlag
packet.encodeString("Snow Project\r\n"); //World Introduce Message
packet.encodeShort(200); //Summer Vacation Event ExpRate
packet.encodeShort(200); //Summer Vacation Event DropRate
packet.encodeByte(world.getChannels().size()); //channelSize
for (ChannelEntry channel : world.getChannels()) {
packet.encodeString(world.getName() + "-" + (channel.getChannelID() + 1)); //channelName
packet.encodeInt(channel.getUserNo()); //channelPermissionUser
packet.encodeByte(channel.getWorldID()); //channelWorldID
packet.encodeByte(channel.getChannelID()); //channelID
packet.encodeByte(0); //??
}
return packet;
}
Quote:
public static OutPacket onAccountInfoResult(LClientSocket socket, int type) {
OutPacket packet = new OutPacket(SendHeader.AccountInfoResult);
packet.encodeByte(type);
switch (type) {
case 0:
case 12: {
/**
* @KMST 1029
* @SetAccountInfo
* this->m_dwAccountId = dwAccountId;
* this->m_nAccountGender = nGender;
* this->m_nGender = nGender;
* TSecType<unsigned char>::SetData(&this->m_nGradeCode, nGradeCode);
* v12->m_nAge = nAge;
* v12->m_nPurchaseExp = nPurchaseExp;
* v12->m_dtChatUnblockDate = dtChatUnblockDate;
* v12->m_nChatBlockReason = nChatBlockReason;
* v12->m_bManagerAccount = bManagerAccount;
* v12->m_bTesterAccount = bTesterAccount;
* v12->m_bSubTesterAccount = bSubTesterAccount;
* v12->m_nVIPGrade = nVIPGrade
*/
packet.encodeInt(socket.getAccountID());
packet.encodeByte(socket.getGender());
packet.encodeByte(socket.getGradeCode());
packet.encodeString(socket.getNexonClubID());
packet.encodeInt(9); //SSN ? Create Character
packet.encodeByte(7); //SSN Use ? Create Character
packet.encodeByte(0); //purchase Exp ?
packet.encodeByte(0); //pBlockReason ?
FileTime time = new FileTime(System.currentTimeMillis());
packet.encodeFileTime(time);//chatBlockTime
packet.encodeString("Eric"); //VIPGrade ?
packet.encodeString("Eric"); //Tester UserName
From the above
packet.encodeInt(9); //SSN ? Create Character
packet.encodeByte(7); //SSN Use ? Create Character
packet.encodeByte(0); //purchase Exp ?
packet.encodeString ( "Eric"); // VIPGrade?
The role of this content and
packet.encodeInt(channel.getUserNo()); //channelPermissionUser
packet.encodeByte(channel.getWorldID()); //channelWorldID
packet.encodeByte(channel.getChannelID()); //channelID
packet.encodeByte(0); //??
Also, I am curious about the role of
GameRoomClient among CheckPassword Recv Packets.
I'm curious about this... can you help?
Referred to KMST 1029 PDB.
And the two successful results of CheckPasswordResult are 0 and 12.
0 = Normal, 12 = PC Room right?
Lastly, I am sorry to ask a lot of questions because I am not enough...:(: