public static void KRoomInfo(Session right, PacketRead rs) { libcomservice.REQUEST.Room room = new libcomservice.REQUEST.Room(); ushort m_usRoomID = rs.UShort(); room.m_strRoomName = rs.UnicodeString(); room.m_bPublic = rs.Bool(); room.m_bGuild = rs.Bool(); room.m_strRoomPasswd = rs.UnicodeString(); short m_usUsers = rs.Short(); room.m_usMaxUsers = rs.Get_Short(); room.m_bPlaying = rs.Bool(); room.m_cGrade = rs.Byte(); room.m_cGameCategory = rs.Byte(); room.m_iGameMode = rs.Int(); room.m_iSubGameMode = rs.Int(); room.m_bRandomableMap = rs.Bool(); room.m_iMapID = rs.Int(); room.m_iP2PVersion = rs.Int(); byte[] m_abSlotOpen = rs.Buffer_Array_Bytes(6); room.m_vecMonsterSlot = rs.Int(); room.m_cDifficulty = rs.Int(); rs.Jump(17); ushort index_room = 0; for (ushort i = 1; i < GameServer.m_usMaxUsers; i++) { if (GameServer.List_Rooms.ContainsKey(i)) { continue; } index_room = i; break; } room.m_usRoomID = index_room; room.m_dwSlots[0].Active = true; room.m_dwSlots[0].usr = right; room.m_dwSlots[0].Leader = true; room.m_dwSlots[0].Open = false; room.m_dwSlots[0].Status = 0; room.m_dwSlots[0].AFK = false; room.m_dwSlots[0].Team = 0; for (int i = 1; i < room.m_usMaxUsers; i++) { room.m_dwSlots[i].Active = false; room.m_dwSlots[i].usr = null; room.m_dwSlots[i].Leader = false; room.m_dwSlots[i].Open = true; room.m_dwSlots[i].Status = 0; room.m_dwSlots[i].AFK = false; room.m_dwSlots[i].Team = 0; } right.PInfo.CurRoom = room; }
public static void KRoomInfo(Session right, PacketWrite ks) { libcomservice.REQUEST.Room room = right.PInfo.CurRoom; ks.UShort(room.m_usRoomID); ks.UnicodeStr(room.m_strRoomName); ks.Bool(room.m_bPublic); ks.Bool(room.m_bGuild); ks.UnicodeStr(room.m_strRoomPasswd); ks.Short(room.m_usUsers()); ks.Short(7); ks.Bool(room.m_bPlaying); ks.Byte(room.m_cGrade); ks.Byte(room.m_cGameCategory); ks.Int(room.m_iGameMode); ks.Int(room.m_iSubGameMode); ks.Bool(room.m_bRandomableMap); ks.Int(room.m_iMapID); ks.Int(room.m_iP2PVersion); for (short j = 0; j < room.m_usMaxUsers; j++) { ks.Bool(room.m_dwSlots[j].Open); } if (room.m_usMaxUsers == 4) { ks.Bool(false); ks.Bool(false); } ks.Int(room.m_vecMonsterSlot); ks.Int(room.m_cDifficulty); ks.HexArray("00 00 00 00 01"); ks.WriteIP(GameServer.m_dwIP); ks.UShort(GameServer.m_usURelayServerPort); ks.WriteIP(GameServer.m_dwIP); ks.UShort(GameServer.m_usTRelayServerPort); }