//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);
        }
Example #2
0
        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());
        }
Example #3
0
        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);
                }
            }
        }
Example #5
0
        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);
            }
        }
Example #7
0
        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();
        }
Example #8
0
 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();
 }
Example #9
0
        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;
            }
        }