//21 - "GETFLATINFO": "@U" public void Listener21() { int roomId = int.Parse(mPacketBody); RoomInstance roomInstance = InstanceManager.Game.Rooms.GetRoomInstance(roomId); RoomInfo roomInfo = roomInstance.RoomInfo; RoomCategory catInfo = InstanceManager.Game.Rooms.GetCategory(roomInfo.RoomCategory); mMessage.Init(54); //@v mMessage.appendArgumentInt(roomInfo.SuperUsers); mMessage.appendArgumentInt(InstanceManager.Game.Rooms.GetRoomStateInt(roomInfo.RoomStatus)); mMessage.appendArgumentInt(roomId); if (roomInfo.ShowOwner == 1 || InstanceManager.Game.Roles.HasRight(mUserInfo.iRole, "fuse_see_all_roomowners") || roomInfo.RoomOwner == mUserInfo.userId) { mMessage.appendString(InstanceManager.Game.Users.GetUser(roomInfo.RoomOwner).sUsername); } else { mMessage.appendString("-"); } mMessage.appendChar(2); mMessage.appendString(roomInfo.RoomModel); mMessage.appendChar(2); mMessage.appendString(roomInfo.RoomName); mMessage.appendChar(2); mMessage.appendString(roomInfo.RoomDescription); mMessage.appendChar(2); mMessage.appendArgumentInt(roomInfo.ShowOwner); mMessage.appendArgumentInt(catInfo.CanTrade); mMessage.appendArgumentInt(roomInstance.UserCount); mMessage.appendArgumentInt(roomInfo.MaxUsers); SendMessage(mMessage); }
private string BuildSubCategoryList(RoomCategory category, int userRole) { List <RoomInfo> rooms = InstanceManager.Game.Rooms.GetRoomListByCategory(category.CategoryID); StringBuilder sb = new StringBuilder(); if (category.IsVisible || (category.SystemCategory && InstanceManager.Game.Roles.HasRight(userRole, "fuse_see_system_categories"))) { sb.Append(ArgumentEncoding.encodeInt(category.CategoryID)); sb.Append(ArgumentEncoding.encodeInt(0)); sb.Append(category.CategoryName); sb.Append(Convert.ToChar(2)); int maxUsers = 0; int currentUsers = 0; if (rooms.Count > 0) { foreach (RoomInfo room in rooms) { maxUsers += room.MaxUsers; currentUsers += room.CurrentUsers; } } sb.Append(ArgumentEncoding.encodeInt(currentUsers)); sb.Append(ArgumentEncoding.encodeInt(maxUsers)); sb.Append(ArgumentEncoding.encodeInt(category.ParentCategory)); } return(sb.ToString()); }
public string GetNavigatorResponse(int navID, int hideFull, UserInfo user) { StringBuilder sb = new StringBuilder(); RoomCategory category = InstanceManager.Game.Rooms.GetCategory(navID); if (category != null) { List <RoomInfo> rooms = InstanceManager.Game.Rooms.GetRoomListByCategory(navID); sb.Append(BuildCategoryResponse(category, hideFull, rooms.Count)); if (rooms.Count > 0) { foreach (RoomInfo room in rooms) { sb.Append(BuildRoomResponse(room, user, hideFull)); } } List <RoomCategory> subcategories = InstanceManager.Game.Rooms.GetSubCategoryList(navID); if (subcategories.Count > 0) { foreach (RoomCategory subcat in subcategories) { sb.Append(BuildSubCategoryList(subcat, user.iRole)); } } } return(sb.ToString()); }
//153 - "SETFLATCAT": "BY" public void Listener153() { int roomId = ArgumentEncoding.decodeInt(mPacketBody); int catId = ArgumentEncoding.decodeInt(mPacketBody.Substring(ArgumentEncoding.getLength(roomId)) + 1); RoomInfo info = InstanceManager.Game.Rooms.GetRoom(roomId); RoomCategory cat = InstanceManager.Game.Rooms.GetCategory(catId); if (info != null && cat != null) { if (cat.PlayerCategory) { info.RoomCategory = catId; InstanceManager.Game.Rooms.UpdateRoom(info); } } }
private string BuildCategoryResponse(RoomCategory category, int hideFull, int roomCount) { StringBuilder sb = new StringBuilder(); sb.Append(ArgumentEncoding.encodeInt(hideFull)); sb.Append(ArgumentEncoding.encodeInt(category.CategoryID)); sb.Append(ArgumentEncoding.encodeInt(category.RoomCategoryType)); sb.Append(category.CategoryName); // Name sb.Append(Convert.ToChar(2)); sb.Append(ArgumentEncoding.encodeInt(0)); sb.Append(ArgumentEncoding.encodeInt(10000)); sb.Append(ArgumentEncoding.encodeInt(category.ParentCategory)); if (category.RoomCategoryType == 2) //Guest { sb.Append(ArgumentEncoding.encodeInt(roomCount)); } return(sb.ToString()); }
private RoomCategory ProduceCategoryFromRow(DataRow dRow) { try { RoomCategory roomCat = new RoomCategory(); roomCat.CategoryID = int.Parse(dRow["RoomCategoryID"].ToString()); roomCat.CategoryName = dRow["RoomCategoryName"].ToString(); roomCat.ParentCategory = int.Parse(dRow["RoomCategoryParent"].ToString()); roomCat.RoomCategoryType = int.Parse(dRow["RoomCategoryType"].ToString()); roomCat.CanTrade = int.Parse(dRow["CanTrade"].ToString()); roomCat.IsVisible = (bool)dRow["IsVisible"]; roomCat.PlayerCategory = (bool)dRow["PlayerCategory"]; roomCat.SystemCategory = (bool)dRow["SystemCategory"]; return(roomCat); } catch { return(null); } }
private string BuildSubCategoryList(RoomCategory category, int userRole) { List<RoomInfo> rooms = InstanceManager.Game.Rooms.GetRoomListByCategory(category.CategoryID); StringBuilder sb = new StringBuilder(); if (category.IsVisible || (category.SystemCategory && InstanceManager.Game.Roles.HasRight(userRole, "fuse_see_system_categories"))) { sb.Append(ArgumentEncoding.encodeInt(category.CategoryID)); sb.Append(ArgumentEncoding.encodeInt(0)); sb.Append(category.CategoryName); sb.Append(Convert.ToChar(2)); int maxUsers = 0; int currentUsers = 0; if (rooms.Count > 0) { foreach (RoomInfo room in rooms) { maxUsers += room.MaxUsers; currentUsers += room.CurrentUsers; } } sb.Append(ArgumentEncoding.encodeInt(currentUsers)); sb.Append(ArgumentEncoding.encodeInt(maxUsers)); sb.Append(ArgumentEncoding.encodeInt(category.ParentCategory)); } return sb.ToString(); }
private string BuildCategoryResponse(RoomCategory category, int hideFull, int roomCount) { StringBuilder sb = new StringBuilder(); sb.Append(ArgumentEncoding.encodeInt(hideFull)); sb.Append(ArgumentEncoding.encodeInt(category.CategoryID)); sb.Append(ArgumentEncoding.encodeInt(category.RoomCategoryType)); sb.Append(category.CategoryName); // Name sb.Append(Convert.ToChar(2)); sb.Append(ArgumentEncoding.encodeInt(0)); sb.Append(ArgumentEncoding.encodeInt(10000)); sb.Append(ArgumentEncoding.encodeInt(category.ParentCategory)); if (category.RoomCategoryType == 2) //Guest { sb.Append(ArgumentEncoding.encodeInt(roomCount)); } return sb.ToString(); }
private RoomCategory ProduceCategoryFromRow(DataRow dRow) { try { RoomCategory roomCat = new RoomCategory(); roomCat.CategoryID = int.Parse(dRow["RoomCategoryID"].ToString()); roomCat.CategoryName = dRow["RoomCategoryName"].ToString(); roomCat.ParentCategory = int.Parse(dRow["RoomCategoryParent"].ToString()); roomCat.RoomCategoryType = int.Parse(dRow["RoomCategoryType"].ToString()); roomCat.CanTrade = int.Parse(dRow["CanTrade"].ToString()); roomCat.IsVisible = (bool)dRow["IsVisible"]; roomCat.PlayerCategory = (bool)dRow["PlayerCategory"]; roomCat.SystemCategory = (bool)dRow["SystemCategory"]; return roomCat; } catch { return null; } }