示例#1
0
        public static void NavigatorFrontpage(Message Msg, Session Session)
        {
            fuseResponse.New(Opcodes.OpcodesOut.SendNavigatorFrontpage);
            fuseResponse.Append <int>(Engine.GetHabboHotel.getFrontpage.getCount());

            foreach (var Item in Engine.GetHabboHotel.getFrontpage.getList().Values)
            {
                fuseResponse.Append <int>(Item.ID);
                fuseResponse.Append <string>(Item.Name);
                fuseResponse.Append <string>(Item.Description);
                fuseResponse.Append <int>(Item.BannerLength);
                fuseResponse.Append <string>(Item.Name);
                fuseResponse.Append <string>(Item.Image);
                fuseResponse.Append <int>(Item.Category_ID);
                fuseResponse.Append <int>(0);
                fuseResponse.Append <int>(Item.Type);

                switch (Item.Type)
                {
                case 1:
                {
                    fuseResponse.Append <string>(Item.TypeExtraData);
                    break;
                }

                case 2:
                {
                    FluentRooms.Serialize(fuseResponse, FluentRooms.GetById(int.Parse(Item.TypeExtraData))[0]);
                    break;
                }

                case 4:
                {
                    fuseResponse.Append <bool>(false);
                    break;
                }
                }
            }

            fuseResponse.Append <int>(0);
            fuseResponse.Append <int>(0);
            fuseResponse.Send(Session);
        }
示例#2
0
        public static void BeginEnterRoom(Message Msg, Session Session)
        {
            int    ID       = Msg.NextInt32();
            var    Rooms    = FluentRooms.GetById(ID);
            var    Room     = Rooms[0];
            string Password = Msg.NextString();

            fuseResponse.New(Opcodes.OpcodesOut.SendRoomInitialize);
            fuseResponse.Send(Session);

            if (Room.State == 1)
            {
                fuseResponse.New(Opcodes.OpcodesOut.SendUserOutofRoom);
                fuseResponse.Send(Session);

                fuseResponse.New(Opcodes.OpcodesOut.SendDoorbellNoAnswer);
                fuseResponse.Send(Session);
            }

            if (Room.State == 2)
            {
                if (Password != Room.Password)
                {
                    fuseResponse.New(Opcodes.OpcodesOut.SendUserOutofRoom);
                    fuseResponse.Send(Session);

                    fuseResponse.New(Opcodes.OpcodesOut.SendWrongPassword);
                    fuseResponse.Append <int>(-100002);
                    fuseResponse.Send(Session);
                }
            }

            Session.Room = Room;

            fuseResponse.New(Opcodes.OpcodesOut.SendRoomModelInfo);
            fuseResponse.Append <string>(Session.Room.Model_Name);
            fuseResponse.Append <uint>(Session.Room.ID);
            fuseResponse.Send(Session);

            fuseResponse.New(Opcodes.OpcodesOut.SendRoomDecoration);
            fuseResponse.Append <string>("landscape");
            fuseResponse.Append <string>("0.0");
            fuseResponse.Send(Session);

            if (Session.Room.Wallpaper != "0.0")
            {
                fuseResponse.New(Opcodes.OpcodesOut.SendRoomDecoration);
                fuseResponse.Append <string>("wallpaper");
                fuseResponse.Append <string>(Session.Room.Wallpaper);
                fuseResponse.Send(Session);
            }

            if (Session.Room.Floor != "0.0")
            {
                fuseResponse.New(Opcodes.OpcodesOut.SendRoomDecoration);
                fuseResponse.Append <string>("floor");
                fuseResponse.Append <string>(Session.Room.Floor);
                fuseResponse.Send(Session);
            }

            if (Session.Room.Owner == Session.User.Username)
            {
                fuseResponse.New(Opcodes.OpcodesOut.SendRoomUserRightLevel);
                fuseResponse.Append <int>(4);
                fuseResponse.Send(Session);

                fuseResponse.New(Opcodes.OpcodesOut.SendRoomOwnerShip);
                fuseResponse.Send(Session);
            }
            else
            {
                fuseResponse.New(Opcodes.OpcodesOut.SendRoomUserRightLevel);
                fuseResponse.Append <int>(0);
                fuseResponse.Send(Session);
            }

            fuseResponse.New(Opcodes.OpcodesOut.SendRoomScore);
            fuseResponse.Append <int>(Session.Room.Score);
            fuseResponse.Append <bool>((Session.Room.Owner == Session.User.Username) ? false : Session.User.RatedRooms.Contains(ID) ? false : true);
            fuseResponse.Send(Session);

            fuseResponse.New(Opcodes.OpcodesOut.SendRoomEventData);
            fuseResponse.Append <string>("-1");
            fuseResponse.Send(Session);
        }