public static ServerMessage Compose(uint RoomId, string Name)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.ROOM_CREATE_RESULT);
     Message.AppendUInt32(RoomId);
     Message.AppendStringWithBreak(Name);
     return Message;
 }
Example #2
0
        internal static void SerializeQuest(ServerMessage Message, GameClient Session, Quest Quest, string Category)
        {
            int AmountInCat = ButterflyEnvironment.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(Category);
            int Number = Quest == null ? AmountInCat : Quest.Number - 1;
            int UserProgress = Quest == null ? 0 : Session.GetHabbo().GetQuestProgress(Quest.Id);

            if (Quest != null && Quest.IsCompleted(UserProgress))
            {
                Number++;
            }

            Message.AddString(Category);
            Message.AddInt32(Number); // Quest progress in this cat
            Message.AddInt32(AmountInCat); // Total quests in this cat
            Message.AddInt32((int)QuestRewardType.Pixels); // Reward type (1 = Snowflakes, 2 = Love hearts, 3 = Pixels, 4 = Seashells, everything else is pixels
            Message.AddUInt32(Quest == null ? 0 : Quest.Id); // Quest id
            Message.AddBoolean(Quest == null ? false : Session.GetHabbo().CurrentQuestId == Quest.Id); // Quest started
            Message.AddString(Quest == null ? string.Empty : Quest.ActionName);
            Message.AddString(Quest == null ? string.Empty : Quest.DataBit);
            Message.AddInt32(Quest == null ? 0 : Quest.Reward);
            Message.AddString(Quest == null ? string.Empty : Quest.Name);
            Message.AddInt32(UserProgress); // Current progress
            Message.AddUInt32(Quest == null ? 0 : Quest.GoalData); // Target progress
            Message.AddInt32(0); // "Next quest available countdown" in seconds
            Message.AddString(string.Empty); //set_kuurna
            Message.AddString(string.Empty); // MAIN_CHAIN
            Message.AddBoolean(true); // Euh?
        }
 public static ServerMessage Compose(bool Bool1, bool Bool2)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.CATALOG_RECYLCER_CONFIG);
     Message.AppendBoolean(Bool1);
     Message.AppendBoolean(Bool2);
     return Message;
 }
        public static ServerMessage Compose(ModerationTicket Ticket)
        {
            string DisplayRoomName = string.Empty;

            if (Ticket.RoomId > 0)
            {
                RoomInfo Info = RoomInfoLoader.GetRoomInfo(Ticket.RoomId);
                DisplayRoomName = Info == null ? "(Unknown room " + Ticket.RoomId + ")" : Info.Name;
            }

            ServerMessage Message = new ServerMessage(OpcodesOut.MODERATION_TICKET);
            Message.AppendUInt32(Ticket.Id);
            Message.AppendUInt32(Ticket.TabId);
            Message.AppendUInt32(11); // ?? unknown
            Message.AppendUInt32(Ticket.CategoryId);
            Message.AppendUInt32(11); // ?? unknown
            Message.AppendUInt32(Ticket.Score);
            Message.AppendUInt32(Ticket.ReporteeUserId);
            Message.AppendStringWithBreak(CharacterResolverCache.GetNameFromUid(Ticket.ReporteeUserId));
            Message.AppendUInt32(Ticket.ReportedUserId);
            Message.AppendStringWithBreak(CharacterResolverCache.GetNameFromUid(Ticket.ReportedUserId));
            Message.AppendUInt32(Ticket.ModeratorUserId);
            Message.AppendStringWithBreak(CharacterResolverCache.GetNameFromUid(Ticket.ModeratorUserId));
            Message.AppendStringWithBreak(Ticket.Message);
            Message.AppendUInt32(Ticket.RoomId);
            Message.AppendStringWithBreak(DisplayRoomName);
            return Message;
        }
Example #5
0
 /// <summary>
 ///     Opens the quests.
 /// </summary>
 public void OpenQuests()
 {
     ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("QuestListMessageComposer"));
     serverMessage.AppendInteger(0);
     serverMessage.AppendBool(Request != null);
     Session.SendMessage(serverMessage);
 }
Example #6
0
        internal static ServerMessage Compose(GameClient Session, List<Achievement> Achievements)
        {
            ServerMessage Message = new ServerMessage(436); //436
            Message.AppendInt32(Achievements.Count);

            foreach (Achievement Achievement in Achievements)
            {
                UserAchievement UserData = Session.GetHabbo().GetAchievementData(Achievement.GroupName);
                int TargetLevel = (UserData != null ? UserData.Level + 1 : 1);
                int TotalLevels = Achievement.Levels.Count;

                if (TargetLevel > TotalLevels)
                {
                    TargetLevel = TotalLevels;
                }

                AchievementLevel TargetLevelData = Achievement.Levels[TargetLevel];

                Message.AppendUInt(Achievement.Id);                                                           // Unknown (ID?)
                Message.AppendInt32(TargetLevel);                                                   // Target level
                Message.AppendStringWithBreak(Achievement.GroupName + TargetLevel);                 // Target name/desc/badge
                Message.AppendInt32(TargetLevelData.Requirement);                                   // Progress req/target
                Message.AppendInt32(TargetLevelData.RewardPixels);                                   // Pixel reward
                Message.AppendInt32(TargetLevelData.RewardPoints);                                  // Unknown(??)
                Message.AppendInt32(UserData != null ? UserData.Progress : 0);                      // Current progress
                Message.AppendBoolean(UserData != null ? (UserData.Level >= TotalLevels) : false);  // Set 100% completed(??)
                Message.AppendStringWithBreak(Achievement.Category);                                // Category
                Message.AppendInt32(TotalLevels);                                                   // Total amount of levels
            }

            return Message;
        }
        public static ServerMessage Compose(List<Achievement> Achievements)
        {
            ServerMessage Message = new ServerMessage(OpcodesOut.ACHIEVEMENT_DATA_LIST);
            Message.AppendInt32(Achievements.Count);

            foreach (Achievement Achievement in Achievements)
            {
                string DisplayName = Achievement.GroupName;

                if (DisplayName.StartsWith("ACH_"))
                {
                    DisplayName = DisplayName.Substring(4);
                }

                Message.AppendStringWithBreak(DisplayName);
                Message.AppendInt32(Achievement.Levels.Count);

                foreach (AchievementLevel Level in Achievement.Levels.Values)
                {
                    Message.AppendInt32(Level.Number);
                    Message.AppendInt32(Level.Requirement);
                }
            }

            return Message;
        }
        public static ServerMessage Message(List<NavigatorOfficialItem> Items)
        {
            ServerMessage Message = new ServerMessage(OpcodesOut.NAVIGATOR_OFFICIAL_ROOMS);
            Message.AppendInt32(Items.Count);

            foreach (NavigatorOfficialItem Item in Items)
            {
                if (Item.ParentId != 0)
                {
                    continue;
                }

                SerializeOfficialItem(Item, Message);

                if (Item.IsCategory)
                {
                    foreach (NavigatorOfficialItem Child in Items)
                    {
                        if (Child.ParentId != Item.Id)
                        {
                            continue;
                        }

                        SerializeOfficialItem(Child, Message);
                    }
                }
            }

            return Message;
        }
Example #9
0
 internal static ServerMessage SerializeTopic(HelpTopic Topic)
 {
     ServerMessage Top = new ServerMessage(520);
     Top.AppendUInt(Topic.TopicId);
     Top.AppendStringWithBreak(Topic.Body);
     return Top;
 }
Example #10
0
        public static ServerMessage Compose(RoomEvent Event)
        {
            ServerMessage Message = new ServerMessage(OpcodesOut.ROOM_EVENT_INFO);

            if (Event == null)
            {
                Message.AppendStringWithBreak("-1");
            }
            else
            {
                Message.AppendStringWithBreak(Event.OwnerId.ToString());
                Message.AppendStringWithBreak(CharacterResolverCache.GetNameFromUid(Event.OwnerId));
                Message.AppendStringWithBreak(Event.RoomId.ToString());
                Message.AppendInt32(Event.CategoryId);
                Message.AppendStringWithBreak(Event.Name);
                Message.AppendStringWithBreak(Event.Description);
                Message.AppendStringWithBreak(UnixTimestamp.GetDateTimeFromUnixTimestamp(Event.TimestampStarted).ToShortTimeString());

                List<string> Tags = Event.Tags;

                Message.AppendInt32(Tags.Count);

                foreach (string Tag in Tags)
                {
                    Message.AppendStringWithBreak(Tag);
                }
            }

            return Message;
        }
Example #11
0
        internal static ServerMessage SerializeSearchResults(string Query)
        {
            DataTable Results = null;

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                if (dbClient.dbType == Database_Manager.Database.DatabaseType.MySQL)
                    dbClient.setQuery("SELECT id,title FROM help_topics WHERE title LIKE @query OR body LIKE @query LIMIT 25");
                else
                    dbClient.setQuery("SELECT TOP 25 id,title FROM help_topics WHERE title LIKE @query OR body LIKE @query");
                dbClient.addParameter("query", Query + "%");
                Results = dbClient.getTable();
            }

            // HII[KBCan I pay to be unbanned?

            ServerMessage Search = new ServerMessage(521);

            if (Results == null)
            {
                Search.AppendBoolean(false);
                return Search;
            }

            Search.AppendInt32(Results.Rows.Count);

            foreach (DataRow Row in Results.Rows)
            {
                Search.AppendUInt(Convert.ToUInt32(Row["id"]));
                Search.AppendStringWithBreak((string)Row["title"]);
            }

            return Search;
        }
 public static ServerMessage Compose(uint RoomId)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.ROOM_UPDATED_NOTIFICATION_3);
     Message.AppendUInt32(RoomId);
     Message.AppendBoolean(true);
     return Message;
 }
 public static ServerMessage Compose(int ShuttingDownInMinutes)
 {
     // com.sulake.habbo.communication.messages.incoming.availability.InfoHotelClosingMessageEvent;
     ServerMessage Message = new ServerMessage(291);
     Message.AppendInt32(ShuttingDownInMinutes);
     return Message;
 }
 public static ServerMessage Compose(int ErrorCode)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.ROOM_EVENT_CAN_CREATE);
     Message.AppendBoolean(ErrorCode < 1);
     Message.AppendInt32(ErrorCode);
     return Message;
 }
Example #15
0
 public static ServerMessage Compose(uint ItemId, bool CanGift)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.CATALOG_CAN_GIFT);
     Message.AppendUInt32(ItemId);
     Message.AppendBoolean(false/*CanGift*/);
     return Message;
 }
 public static ServerMessage Compose(uint RoomId, uint UserId)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.ROOM_RIGHTS_REMOVED_CONFIRMATION);
     Message.AppendUInt32(RoomId);
     Message.AppendUInt32(UserId);
     return Message;
 }
Example #17
0
 public static ServerMessage Compose(uint Code1, uint Code2)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.MESSENGER_ERROR_EVENT);
     Message.AppendUInt32(Code1);
     Message.AppendUInt32(Code2);
     return Message;
 }
 public static ServerMessage Compose(uint SenderId, string Text)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.MESSENGER_IM_INVITE);
     Message.AppendUInt32(SenderId);
     Message.AppendStringWithBreak(Text);
     return Message;
 }
Example #19
0
 public static ServerMessage Compose(string MessageText)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.MESSAGE_OF_THE_DAY);
     Message.AppendBoolean(true);
     Message.AppendStringWithBreak(MessageText);
     return Message;
 }
Example #20
0
		public void InitializeConnect()
		{
			OutputWindow.Clear();

			// Assign events
			eventReceiving += new IRCReceived(IrcCommandReceived);
			eventServerMessage += new ServerMessage(IrcServerMessage);
			eventIrcMessageReceived += new MessageReceived(IrcMessageReceived);
			eventIrcNoticeReceived += new NoticeReceived(IrcNoticeReceived);
			eventSendReceivedCommand += new SendReceivedCommand(IrcSendReceivedCommand);
			eventSendModMessage += new SendModMessage(IrcSendModMessage);
			eventJoin += new Join(IrcJoin);
			eventPart += new Part(IrcPart);
			eventMode += new Mode(IrcMode);

			//Try to set the LogFile 
			try
			{
				logOutput = new StreamWriter(logFileName, true);
			}
			catch (Exception e)
			{
				log = false;

				if (ToggleDebugCheckBox.Checked)
					IrcCommandReceived(e.Message);
			}

			// Connect to server	
			Connect();
		}
Example #21
0
 public static ServerMessage Compose(int Volume, bool UnknownConfigValue1)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.CLIENT_CONFIG);
     Message.AppendInt32(Volume);
     Message.AppendBoolean(UnknownConfigValue1);
     return Message;
 }
Example #22
0
 public static ServerMessage Compose(string Key, string Value)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.ROOM_DECORATION);
     Message.AppendStringWithBreak(Key);
     Message.AppendStringWithBreak(Value);
     return Message;
 }
 public static ServerMessage Compose(uint ErrorId, uint ConversationId)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.MESSENGER_IM_ERROR);
     Message.AppendUInt32(ErrorId);
     Message.AppendUInt32(ConversationId);
     return Message;
 }
Example #24
0
 public static ServerMessage Compose(Item Item)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.STICKY_DATA);
     Message.AppendStringWithBreak(Item.Id.ToString());
     Message.AppendStringWithBreak(Item.Flags);
     return Message;
 }
Example #25
0
 public static ServerMessage Compose(uint ActorId, int CarryItemId)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.ROOM_USER_CARRY);
     Message.AppendUInt32(ActorId);
     Message.AppendInt32(CarryItemId); // GbIsIkyN
     return Message;
 }
 public static ServerMessage Compose(AvatarEffect Effect)
 {
     ServerMessage Message = new ServerMessage(OpcodesOut.USER_EFFECT_ADDED);
     Message.AppendInt32(Effect.SpriteId);
     Message.AppendInt32((int)Effect.Duration);
     return Message;
 }
        public static ServerMessage Compose(ModerationTicket Ticket, RoomInfo Info, ReadOnlyCollection<ModerationChatlogEntry> Entries)
        {
            ServerMessage Message = new ServerMessage(OpcodesOut.MODERATION_CHATLOGS_TICKET);
            Message.AppendUInt32(Ticket.Id);
            Message.AppendUInt32(Ticket.ReporteeUserId);
            Message.AppendUInt32(Ticket.ReportedUserId);
            Message.AppendUInt32(Ticket.Id); // Number to display in title. Chatlog ID?
            Message.AppendBoolean(Info != null ? Info.Type == RoomType.Public : false);
            Message.AppendUInt32(Info != null ? Info.Id : 0);
            Message.AppendStringWithBreak(Info != null ? Info.Name : "(Unknown room)");

            Message.AppendInt32(Entries.Count);

            foreach (ModerationChatlogEntry Entry in Entries)
            {
                DateTime Time = UnixTimestamp.GetDateTimeFromUnixTimestamp(Entry.Timestamp);

                Message.AppendInt32(Time.Hour);
                Message.AppendInt32(Time.Minute);
                Message.AppendUInt32(Entry.UserId);
                Message.AppendStringWithBreak(Entry.UserName);
                Message.AppendStringWithBreak(Entry.Message);
            }

            return Message;
        }
Example #28
0
 internal void Serialize(ref ServerMessage message)
 {
     foreach (ChatMessage chatMessage in listOfMessages)
     {
         chatMessage.Serialize(ref message);
     }
 }
Example #29
0
        public static ServerMessage Compose(Session Session, Dictionary<int, CatalogPage> Pages)
        {
            ServerMessage Message = new ServerMessage(OpcodesOut.CATALOG_INDEX);
            SerializePage(Message, Pages[-1], CalcTreeSize(Session, Pages, -1));

            foreach (CatalogPage Page in Pages.Values)
            {
                if (Page.ParentId != -1 || (Page.RequiredRight.Length > 0 && !Session.HasRight(Page.RequiredRight)))
                {
                    continue;
                }

                SerializePage(Message, Page, CalcTreeSize(Session, Pages, Page.Id));

                foreach (CatalogPage ChildPage in Pages.Values)
                {
                    if (ChildPage.ParentId != Page.Id || (ChildPage.RequiredRight.Length > 0 && !Session.HasRight(ChildPage.RequiredRight)))
                    {
                        continue;
                    }

                    SerializePage(Message, ChildPage, 0);
                }
            }

            return Message;
        }
        public static ServerMessage Compose(Session Session, ReadOnlyCollection<Achievement> Achievements)
        {
            ServerMessage Message = new ServerMessage(OpcodesOut.ACHIEVEMENTS_LIST);
            Message.AppendInt32(Achievements.Count);

            foreach (Achievement Achievement in Achievements)
            {
                UserAchievement UserData = Session.AchievementCache.GetAchievementData(Achievement.GroupName);
                int TargetLevel = (UserData != null ? UserData.Level + 1 : 1);
                int TotalLevels = Achievement.Levels.Count;

                if (TargetLevel > TotalLevels)
                {
                    TargetLevel = TotalLevels;
                }

                AchievementLevel TargetLevelData = Achievement.Levels[TargetLevel];

                Message.AppendUInt32(Achievement.Id);                                                           // Unknown (ID?)
                Message.AppendInt32(TargetLevel);                                                   // Target level
                Message.AppendStringWithBreak(Achievement.GroupName + TargetLevel);                 // Target name/desc/badge
                Message.AppendInt32(TargetLevelData.Requirement);                                   // Progress req/target
                Message.AppendInt32(TargetLevelData.PixelReward);                                   // Pixel reward
                Message.AppendInt32(TargetLevelData.PointsReward);                                  // Unknown(??)
                Message.AppendInt32(UserData != null ? UserData.Progress : 0);                      // Current progress
                Message.AppendBoolean(UserData != null ? (UserData.Level >= TotalLevels) : false);  // Set 100% completed(??)
                Message.AppendStringWithBreak(Achievement.Category);                                // Category
                Message.AppendInt32(TotalLevels);                                                   // Total amount of levels
            }

            return Message;
        }
Example #31
0
        public bool OnCycle()
        {
            long num = CyberEnvironment.Now();

            if (this.Room == null || this.Room.GetRoomItemHandler() == null || this.Room.GetRoomItemHandler().mFloorItems == null)
            {
                return(false);
            }
            if (this.mNext < num)
            {
                foreach (RoomItem current in this.mItems)
                {
                    if (current != null && this.Room.GetRoomItemHandler().mFloorItems.ContainsKey(current.Id))
                    {
                        Point left = this.HandleMovement(this.mDir, new Point(current.GetX, current.GetY));
                        int   num2 = this.HandleRotation(this.mRot, current.Rot);
                        if (this.mRoom.GetGameMap().CanRollItemHere(left.X, left.Y) && !this.mRoom.GetGameMap().SquareHasUsers(left.X, left.Y))
                        {
                            double          num3 = 0.0;
                            bool            flag = true;
                            List <RoomItem> roomItemForSquare = this.mRoom.GetGameMap().GetRoomItemForSquare(left.X, left.Y);
                            foreach (RoomItem current2 in roomItemForSquare)
                            {
                                if (current2 != null)
                                {
                                    if (current2.TotalHeight > num3)
                                    {
                                        num3 = current.TotalHeight;
                                    }
                                    if (flag && !current2.GetBaseItem().Stackable)
                                    {
                                        flag = false;
                                    }
                                }
                            }
                            if (num2 != current.Rot)
                            {
                                current.Rot = num2;
                                ServerMessage message = new ServerMessage(Outgoing.UpdateRoomItemMessageComposer);
                                current.Serialize(message);
                                this.mRoom.SendMessage(message);
                            }
                            if (flag && left != current.Coordinate)
                            {
                                ServerMessage serverMessage = new ServerMessage();
                                serverMessage.Init(Outgoing.ItemAnimationMessageComposer);
                                serverMessage.AppendInt32(current.GetX);
                                serverMessage.AppendInt32(current.GetY);
                                serverMessage.AppendInt32(left.X);
                                serverMessage.AppendInt32(left.Y);
                                serverMessage.AppendInt32(1);
                                serverMessage.AppendUInt(current.Id);
                                serverMessage.AppendString(TextHandling.GetString(current.GetZ));
                                serverMessage.AppendString(TextHandling.GetString(num3));
                                serverMessage.AppendInt32(0);
                                this.mRoom.SendMessage(serverMessage);
                                this.mRoom.GetRoomItemHandler().SetFloorItem(current, left.X, left.Y, num3);
                            }
                        }
                    }
                }
                this.mNext = 0L;
                return(true);
            }
            return(false);
        }
        public void Handle(GameClient Session, ClientMessage Event)
        {
            Room @class = HabboIM.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (@class != null && @class.CheckRights(Session, true))
            {
                Event.PopWiredInt32();
                string text  = HabboIM.FilterString(Event.PopFixedString());
                string text2 = HabboIM.FilterString(Event.PopFixedString());
                if (text2.Length > 255)
                {
                    text2 = text2.Substring(0, 255);
                }
                int           num           = Event.PopWiredInt32();
                string        text3         = HabboIM.FilterString(Event.PopFixedString());
                int           num2          = Event.PopWiredInt32();
                int           num3          = Event.PopWiredInt32();
                int           num4          = Event.PopWiredInt32();
                List <string> list          = new List <string>();
                StringBuilder stringBuilder = new StringBuilder();
                for (int i = 0; i < num4; i++)
                {
                    if (i > 0)
                    {
                        stringBuilder.Append(",");
                    }
                    string text4 = HabboIM.FilterString(Event.PopFixedString().ToLower());
                    if (text4 == ChatCommandHandler.smethod_4(text4))
                    {
                        list.Add(text4);
                        stringBuilder.Append(text4);
                    }
                }
                if (stringBuilder.Length > 100)
                {
                    stringBuilder.Clear();
                    stringBuilder.Append("");
                }
                int    num5 = 0;
                int    num6 = 0;
                int    num7 = 0;
                int    num8 = 0;
                string a    = Event.PlainReadBytes(1)[0].ToString();
                Event.AdvancePointer(1);
                string a2 = Event.PlainReadBytes(1)[0].ToString();
                Event.AdvancePointer(1);
                string a3 = Event.PlainReadBytes(1)[0].ToString();
                Event.AdvancePointer(1);
                string a4 = Event.PlainReadBytes(1)[0].ToString();
                Event.AdvancePointer(1);
                int num9  = Event.PopWiredInt32();
                int num10 = Event.PopWiredInt32();
                if (!(text != ChatCommandHandler.smethod_4(text)) && !(text2 != ChatCommandHandler.smethod_4(text2)) && text.Length >= 1 && (num9 >= -2 && num9 <= 1 && num10 >= -2 && num10 <= 1))
                {
                    @class.Wallthick  = num9;
                    @class.Floorthick = num10;
                    if (num >= 0 && num <= 2 && (num2 == 10 || num2 == 15 || num2 == 20 || num2 == 25 || num2 == 30 || num2 == 35 || num2 == 40 || num2 == 45 || num2 == 50 || num2 == 55 || num2 == 60 || num2 == 65 || num2 == 70 || num2 == 75 || num2 == 80 || num2 == 85 || num2 == 90 || num2 == 95 || num2 == 100))
                    {
                        FlatCat class2 = HabboIM.GetGame().GetNavigator().method_2(num3);
                        if (class2 != null)
                        {
                            if ((long)class2.MinRank > (long)((ulong)Session.GetHabbo().Rank))
                            {
                                Session.SendNotification("You are not allowed to use this category. Your room has been moved to no category instead.");
                                num3 = 0;
                            }
                            if (num4 <= 2)
                            {
                                if (a == "65")
                                {
                                    num5            = 1;
                                    @class.AllowPet = true;
                                }
                                else
                                {
                                    @class.AllowPet = false;
                                }
                                if (a2 == "65")
                                {
                                    num6 = 1;
                                    @class.AllowPetsEating = true;
                                }
                                else
                                {
                                    @class.AllowPetsEating = false;
                                }
                                if (a3 == "65")
                                {
                                    num7 = 1;
                                    @class.AllowWalkthrough = true;
                                }
                                else
                                {
                                    @class.AllowWalkthrough = false;
                                }
                                @class.method_22();
                                if (a4 == "65")
                                {
                                    num8            = 1;
                                    @class.Hidewall = true;
                                }
                                else
                                {
                                    @class.Hidewall = false;
                                }
                                @class.Name        = text;
                                @class.State       = num;
                                @class.Description = text2;
                                @class.Category    = num3;
                                if (text3 != "")
                                {
                                    @class.Password = text3;
                                }
                                @class.Tags     = list;
                                @class.UsersMax = num2;
                                string text5 = "open";
                                if (@class.State == 1)
                                {
                                    text5 = "locked";
                                }
                                else
                                {
                                    if (@class.State > 1)
                                    {
                                        text5 = "password";
                                    }
                                }
                                using (DatabaseClient class3 = HabboIM.GetDatabase().GetClient())
                                {
                                    class3.AddParamWithValue("caption", @class.Name);
                                    class3.AddParamWithValue("description", @class.Description);
                                    class3.AddParamWithValue("password", @class.Password);
                                    class3.AddParamWithValue("tags", stringBuilder.ToString());
                                    class3.ExecuteQuery(string.Concat(new object[]
                                    {
                                        "UPDATE rooms SET caption = @caption, description = @description, password = @password, category = '",
                                        num3,
                                        "', state = '",
                                        text5,
                                        "', tags = @tags, users_max = '",
                                        num2,
                                        "', allow_pets = '",
                                        num5,
                                        "', allow_pets_eat = '",
                                        num6,
                                        "', allow_walkthrough = '",
                                        num7,
                                        "', allow_hidewall = '",
                                        num8,
                                        "', wallthick = '",
                                        num9,
                                        "', floorthick = '",
                                        num10,
                                        "'  WHERE Id = '",
                                        @class.Id,
                                        "' LIMIT 1;"
                                    }));
                                }
                                ServerMessage Message = new ServerMessage(467u);
                                Message.AppendUInt(@class.Id);
                                Session.SendMessage(Message);
                                ServerMessage Message2 = new ServerMessage(456u);
                                Message2.AppendUInt(@class.Id);
                                Session.SendMessage(Message2);
                                ServerMessage Message3 = new ServerMessage(472u);
                                Message3.AppendBoolean(@class.Hidewall);
                                Message3.AppendInt32(@class.Wallthick);
                                Message3.AppendInt32(@class.Floorthick);
                                @class.SendMessage(Message3, null);
                                ServerMessage Message4 = new ServerMessage(473u);
                                Message4.AppendBoolean(true);
                                Message4.AppendBoolean(true);
                                @class.SendMessage(Message4, null);
                                RoomData      class27_ = @class.RoomData;
                                ServerMessage Message5 = new ServerMessage(454u);
                                Message5.AppendBoolean(false);
                                class27_.method_3(Message5, false, false);
                                Session.SendMessage(Message5);
                            }
                        }
                    }
                }
            }
        }
Example #33
0
        internal void ProcessUpdates()
        {
            this.UpdateCounter--;
            if (this.UpdateCounter <= 0)
            {
                this.UpdateNeeded  = false;
                this.UpdateCounter = 0;
                if (this.TimerRunning && this.int_0 > 0)
                {
                    this.int_0            += 500;
                    this.GetRoom().int_13 += 500;
                    this.UpdateNeeded      = true;
                    if (this.int_0 > SongManager.GetSong(Convert.ToInt32(this.ExtraData)).Length)
                    {
                        ServerMessage Message = new ServerMessage(327);
                        Message.AppendInt32(7);
                        Message.AppendInt32(6);
                        Message.AppendInt32(7);
                        Message.AppendInt32(0);
                        Message.AppendInt32(0);
                        this.GetRoom().SendMessage(Message, null);
                        this.int_0            = 1;
                        this.GetRoom().int_13 = 0;
                    }
                }
                else
                {
                    string text = this.GetBaseItem().InteractionType.ToLower();
                    switch (text)
                    {
                    case "onewaygate":
                    {
                        RoomUser roomUserByHabbo = null;
                        if (this.InteractingUser > 0)
                        {
                            roomUserByHabbo = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser);
                        }
                        if (roomUserByHabbo != null && roomUserByHabbo.X == this.mX && roomUserByHabbo.Y == this.mY && this.Extra1 != "tried")
                        {
                            this.ExtraData = "1";
                            this.Extra1    = "tried";
                            roomUserByHabbo.UnlockWalking();
                            roomUserByHabbo.MoveTo(this.SquareBehind);
                            this.ReqUpdate(0);
                            this.UpdateState(false, true);
                        }
                        else
                        {
                            if ((roomUserByHabbo != null && (roomUserByHabbo.Coordinate != this.SquareBehind)) || this.Extra1 == "tried")
                            {
                                this.Extra1          = "";
                                this.ExtraData       = "0";
                                this.InteractingUser = 0;
                                this.UpdateState(false, true);
                                this.GetRoom().GenerateMaps();
                            }
                            else
                            {
                                if (this.ExtraData == "1")
                                {
                                    this.ExtraData = "0";
                                    this.UpdateState(false, true);
                                }
                            }
                        }
                        if (roomUserByHabbo == null)
                        {
                            this.InteractingUser = 0u;
                        }
                        break;
                    }

                    case "teleport":
                    {
                        bool flag  = false;
                        bool flag2 = false;
                        if (this.InteractingUser > 0u)
                        {
                            RoomUser roomUserByHabbo = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser);
                            if (roomUserByHabbo != null)
                            {
                                if (!(roomUserByHabbo.Coordinate == this.Coordinate))
                                {
                                    roomUserByHabbo.AllowOverride = false;
                                    if (roomUserByHabbo.TeleDelay == -1)
                                    {
                                        roomUserByHabbo.TeleDelay = 1;
                                    }
                                    if (TeleHandler.IsTeleLinked(this.Id))
                                    {
                                        flag2 = true;
                                        if (roomUserByHabbo.TeleDelay == 0)
                                        {
                                            uint num2 = TeleHandler.GetLinkedTele(this.Id);
                                            uint num3 = TeleHandler.GetTeleRoomId(num2);
                                            if (num3 == this.RoomId)
                                            {
                                                RoomItem class2 = this.GetRoom().GetItem(num2);
                                                if (class2 == null)
                                                {
                                                    roomUserByHabbo.UnlockWalking();
                                                }
                                                else
                                                {
                                                    roomUserByHabbo.SetPos(class2.GetX, class2.GetY, class2.GetZ);
                                                    roomUserByHabbo.SetRot(class2.Rot);
                                                    class2.ExtraData = "2";
                                                    class2.UpdateState(false, true);
                                                    class2.InteractingUser2 = this.InteractingUser;
                                                }
                                            }
                                            else
                                            {
                                                if (!roomUserByHabbo.IsBot)
                                                {
                                                    PhoenixEnvironment.GetGame().GetRoomManager().method_5(new TeleUserData(roomUserByHabbo.GetClient().GetMessageHandler(), roomUserByHabbo.GetClient().GetHabbo(), num3, num2));
                                                }
                                            }
                                            this.InteractingUser = 0u;
                                        }
                                        else
                                        {
                                            roomUserByHabbo.TeleDelay--;
                                        }
                                    }
                                    else
                                    {
                                        roomUserByHabbo.UnlockWalking();
                                        this.InteractingUser = 0u;
                                        roomUserByHabbo.MoveTo(this.SquareInFront);
                                    }
                                }
                                else
                                {
                                    if ((roomUserByHabbo.Coordinate == this.SquareInFront) && roomUserByHabbo.Item == this)
                                    {
                                        roomUserByHabbo.AllowOverride = true;
                                        flag = true;
                                        if (roomUserByHabbo.IsWalking && (roomUserByHabbo.GoalX != this.mX || roomUserByHabbo.GoalY != this.mY))
                                        {
                                            roomUserByHabbo.ClearMovement(true);
                                        }
                                        roomUserByHabbo.CanWalk       = false;
                                        roomUserByHabbo.AllowOverride = true;
                                        roomUserByHabbo.MoveTo(this.Coordinate);
                                    }
                                    else
                                    {
                                        this.InteractingUser = 0u;
                                    }
                                }
                            }
                            else
                            {
                                this.InteractingUser = 0u;
                            }
                        }
                        if (this.InteractingUser2 > 0u)
                        {
                            RoomUser user2 = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser2);
                            if (user2 != null)
                            {
                                flag = true;
                                user2.UnlockWalking();
                                if (user2.Coordinate == this.Coordinate)
                                {
                                    user2.MoveTo(this.SquareInFront);
                                }
                            }
                            this.InteractingUser2 = 0u;
                        }
                        if (flag)
                        {
                            if (this.ExtraData != "1")
                            {
                                this.ExtraData = "1";
                                this.UpdateState(false, true);
                            }
                        }
                        else
                        {
                            if (flag2)
                            {
                                if (this.ExtraData != "2")
                                {
                                    this.ExtraData = "2";
                                    this.UpdateState(false, true);
                                }
                            }
                            else
                            {
                                if (this.ExtraData != "0")
                                {
                                    this.ExtraData = "0";
                                    this.UpdateState(false, true);
                                }
                            }
                        }
                        this.ReqUpdate(1);
                        break;
                    }

                    case "bottle":
                    {
                        int num = PhoenixEnvironment.GetRandomNumber(0, 7);
                        this.ExtraData = num.ToString();
                        this.UpdateState();
                        break;
                    }

                    case "dice":
                        try
                        {
                            RoomUser @class = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser);
                            if (@class.GetClient().GetHabbo().Rigger > 0)
                            {
                                this.ExtraData = @class.GetClient().GetHabbo().Rigger.ToString();
                                @class.GetClient().GetHabbo().Rigger = 0;
                            }
                            else
                            {
                                int num = PhoenixEnvironment.GetRandomNumber(1, 6);
                                this.ExtraData = num.ToString();
                            }
                        }
                        catch
                        {
                            int num = PhoenixEnvironment.GetRandomNumber(1, 6);
                            this.ExtraData = num.ToString();
                        }
                        this.UpdateState();
                        break;

                    case "habbowheel":
                    {
                        int num = PhoenixEnvironment.GetRandomNumber(1, 10);
                        this.ExtraData = num.ToString();
                        this.UpdateState();
                        break;
                    }

                    case "loveshuffler":
                        if (this.ExtraData == "0")
                        {
                            int num = PhoenixEnvironment.GetRandomNumber(1, 4);
                            this.ExtraData = num.ToString();
                            this.ReqUpdate(20);
                        }
                        else
                        {
                            if (this.ExtraData != "-1")
                            {
                                this.ExtraData = "-1";
                            }
                        }
                        this.UpdateState(false, true);
                        break;

                    case "alert":
                        if (this.ExtraData == "1")
                        {
                            this.ExtraData = "0";
                            this.UpdateState(false, true);
                        }
                        break;

                    case "vendingmachine":
                        if (this.ExtraData == "1")
                        {
                            RoomUser @class = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser);
                            if (@class != null)
                            {
                                @class.UnlockWalking();
                                int int_ = this.GetBaseItem().VendingIds[PhoenixEnvironment.GetRandomNumber(0, this.GetBaseItem().VendingIds.Count - 1)];
                                @class.CarryItem(int_);
                            }
                            this.InteractingUser = 0u;
                            this.ExtraData       = "0";
                            this.UpdateState(false, true);
                        }
                        break;

                    case "wf_trg_onsay":
                    case "wf_trg_enterroom":
                    case "wf_trg_furnistate":
                    case "wf_trg_onfurni":
                    case "wf_trg_offfurni":
                    case "wf_trg_gameend":
                    case "wf_trg_gamestart":
                    case "wf_trg_attime":
                    case "wf_trg_atscore":
                    case "wf_act_saymsg":
                    case "wf_act_togglefurni":
                    case "wf_act_givepoints":
                    case "wf_act_moverotate":
                    case "wf_act_matchfurni":
                    case "wf_act_give_phx":
                    case "wf_cnd_trggrer_on_frn":
                    case "wf_cnd_furnis_hv_avtrs":
                    case "wf_cnd_has_furni_on":
                    case "wf_cnd_phx":
                    case "bb_teleport":
                        if (this.ExtraData == "1")
                        {
                            this.ExtraData = "0";
                            this.UpdateState(false, true);
                        }
                        break;

                    case "wf_trg_timer":
                        if (this.ExtraData == "1")
                        {
                            this.ExtraData = "0";
                            this.UpdateState(false, true);
                        }
                        if (this.Extra1.Length > 0)
                        {
                            this.GetRoom().method_15(this);
                            this.ReqUpdate(Convert.ToInt32(Convert.ToDouble(this.Extra1) * 2.0));
                        }
                        break;

                    case "wf_act_moveuser":
                        if (this.dictionary_1.Count > 0 && this.GetRoom().UserList != null)
                        {
                            int        num4      = 0;
                            RoomUser[] RoomUser_ = this.GetRoom().UserList;
                            for (int i = 0; i < RoomUser_.Length; i++)
                            {
                                RoomUser class4 = RoomUser_[i];
                                if (class4 != null)
                                {
                                    if (class4.IsBot)
                                    {
                                        this.dictionary_1.Remove(class4);
                                    }
                                    if (this.dictionary_1.ContainsKey(class4))
                                    {
                                        if (this.dictionary_1[class4] > 0)
                                        {
                                            if (this.dictionary_1[class4] == 10 && !class4.IsBot)
                                            {
                                                class4.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ApplyEffect(4, true);
                                            }
                                            Dictionary <RoomUser, int> dictionary;
                                            RoomUser key;
                                            (dictionary = this.dictionary_1)[key = class4] = dictionary[key] - 1;
                                            num4++;
                                        }
                                        else
                                        {
                                            this.dictionary_1.Remove(class4);
                                            class4.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ApplyEffect(0, true);
                                        }
                                    }
                                }
                            }
                            if (num4 > 0)
                            {
                                this.ReqUpdate(0);
                            }
                            else
                            {
                                this.dictionary_1.Clear();
                            }
                        }
                        break;

                    case "counter":
                        if (this.TimerRunning && this.Extra1 != "1")
                        {
                            this.ExtraData = Convert.ToString(Convert.ToInt32(this.ExtraData) - 1);
                            if (Convert.ToInt32(this.ExtraData) <= 0)
                            {
                                this.ExtraData    = "0";
                                this.TimerRunning = false;
                                this.GetRoom().method_89(0, this, true);
                            }
                            this.UpdateState(true, true);
                            this.GetRoom().method_16((double)Convert.ToInt32(this.ExtraData));
                            this.Extra1 = "1";
                            this.ReqUpdate(1);
                        }
                        else
                        {
                            if (this.TimerRunning)
                            {
                                this.GetRoom().method_16((double)Convert.ToInt32(this.ExtraData) - 0.5);
                                this.Extra1 = "0";
                                this.ReqUpdate(1);
                            }
                        }
                        break;
                    }
                }
            }
        }
Example #34
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            if (Session != null && Session.GetHabbo() != null && Session.GetHabbo().uint_2 > 0u)
            {
                Room @class = HabboIM.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().uint_2);

                if (@class != null) // wenn Raum nicht NULL, Packet senden (Disconnect fix)
                {
                    ServerMessage Message = new ServerMessage(309u);
                    Message.AppendInt32(10);

                    Message.AppendInt32(1);
                    Message.AppendStringWithBreak("BZLVL1");

                    Message.AppendInt32(2);
                    Message.AppendStringWithBreak("BZLVL2");



                    Message.AppendInt32(3);
                    Message.AppendStringWithBreak("BZLVL3");

                    Message.AppendInt32(4);
                    Message.AppendStringWithBreak("BZLVL4");

                    Message.AppendInt32(5);
                    Message.AppendStringWithBreak("BZLVL5");

                    Message.AppendInt32(6);
                    Message.AppendStringWithBreak("BZLVL6");

                    Message.AppendInt32(7);
                    Message.AppendStringWithBreak("BZLVL7");

                    Message.AppendInt32(8);
                    Message.AppendStringWithBreak("BZLVL8");

                    Message.AppendInt32(9);
                    Message.AppendStringWithBreak("BZLVL9");

                    Message.AppendInt32(10);
                    Message.AppendStringWithBreak("BZLVL10");



                    @class.SendMessage(Message, null);
                }



                /*
                 *
                 * Session.SendNotification("GetHabboGroupBadgesMessageEvent");
                 *              Room @class = HabboIM.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().uint_2);
                 *              if (@class != null && Session.GetHabbo().int_0 > 0)
                 *              {
                 *
                 *
                 *  GroupsManager class2 = Groups.smethod_2(Session.GetHabbo().int_0);
                 *                      if (class2 != null && [email protected]_17.Contains(class2))
                 *                      {
                 *                              @class.list_17.Add(class2);
                 *                              ServerMessage Message = new ServerMessage(309u);
                 *                              Message.AppendInt32(@class.list_17.Count);
                 *                              foreach (GroupsManager current in @class.list_17)
                 *                              {
                 *                                      Message.AppendInt32(current.int_0);
                 *                                      Message.AppendStringWithBreak(current.string_2);
                 *                              }
                 *                              @class.SendMessage(Message, null);
                 *                      }
                 *                      else
                 *                      {
                 *                              foreach (GroupsManager current2 in @class.list_17)
                 *                              {
                 *                                      if (current2 == class2 && current2.string_2 != class2.string_2)
                 *                                      {
                 *                                              ServerMessage Message = new ServerMessage(309u);
                 *                                              Message.AppendInt32(@class.list_17.Count);
                 *                                              foreach (GroupsManager current in @class.list_17)
                 *                                              {
                 *                                                      Message.AppendInt32(current.int_0);
                 *                                                      Message.AppendStringWithBreak(current.string_2);
                 *                                              }
                 *                                              @class.SendMessage(Message, null);
                 *                                      }
                 *                              }
                 *                      }
                 *
                 *
                 *              }
                 *              if (@class != null && @class.list_17.Count > 0)
                 *              {
                 *                      ServerMessage Message = new ServerMessage(309u);
                 *                      Message.AppendInt32(@class.list_17.Count);
                 *                      foreach (GroupsManager current in @class.list_17)
                 *                      {
                 *                              Message.AppendInt32(current.int_0);
                 *                              Message.AppendStringWithBreak(current.string_2);
                 *                      }
                 *                      Session.SendMessage(Message);
                 *              }
                 */
            }
        }
Example #35
0
        public void Handle(GameClient session, ClientMessage message)
        {
            if (session != null && session.GetHabbo() != null && session.GetHabbo().GetRoomSession().RequestedRoomID > 0 && session.GetHabbo().GetRoomSession().LoadingRoom)
            {
                Room room = Skylight.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().GetRoomSession().RequestedRoomID);
                session.GetHabbo().GetRoomSession().ResetRequestedRoom();
                if (room != null)
                {
                    if (room.RoomGamemapManager.Model != null)
                    {
                        session.SendData(room.RoomGamemapManager.Model.GetHeightmap(session.Revision, room.RoomGamemapManager.Tiles));
                        session.SendData(room.RoomGamemapManager.Model.GetRelativeHeightmap(session.Revision));
                        session.SendData(room.RoomGamemapManager.Model.GetPublicItems(session.Revision), true);

                        if (room.RoomData.Type == "private")
                        {
                            ServerMessage floorItems = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                            floorItems.Init(r63aOutgoing.FloorItems);
                            floorItems.AppendInt32(room.RoomItemManager.FloorItems.Count);
                            foreach (RoomItem item in room.RoomItemManager.FloorItems.Values)
                            {
                                item.Serialize(floorItems);
                            }
                            session.SendMessage(floorItems);

                            ServerMessage wallItems = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                            wallItems.Init(r63aOutgoing.WallItems);
                            wallItems.AppendInt32(room.RoomItemManager.WallItems.Count);
                            foreach (RoomItem item in room.RoomItemManager.WallItems.Values)
                            {
                                item.Serialize(wallItems);
                            }
                            session.SendMessage(wallItems);
                        }

                        room.RoomUserManager.EnterRoom(session);

                        ICollection <RoomUnit> users        = room.RoomUserManager.GetRoomUsers();
                        ServerMessage          setRoomUsers = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        setRoomUsers.Init(r63aOutgoing.SetRoomUser);
                        setRoomUsers.AppendInt32(users.Count);
                        foreach (RoomUnit user in users)
                        {
                            user.Serialize(setRoomUsers);
                        }
                        session.SendMessage(setRoomUsers);

                        ServerMessage roomVIPsetting = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        roomVIPsetting.Init(r63aOutgoing.RoomVIPSettings);
                        roomVIPsetting.AppendBoolean(room.RoomData.Hidewalls);
                        roomVIPsetting.AppendInt32(room.RoomData.Wallthick);
                        roomVIPsetting.AppendInt32(room.RoomData.Floorthick);
                        session.SendMessage(roomVIPsetting);

                        if (room.RoomData.Type == "private")
                        {
                            ServerMessage roomOwner = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                            roomOwner.Init(r63aOutgoing.RoomOwner);
                            roomOwner.AppendBoolean(true);                          //is private room
                            roomOwner.AppendUInt(room.ID);
                            roomOwner.AppendBoolean(room.HaveOwnerRights(session)); //is roomowner
                            session.SendMessage(roomOwner);

                            ServerMessage roomData = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                            roomData.Init(r63aOutgoing.RoomData);
                            roomData.AppendBoolean(false);                     //entered room
                            room.RoomData.Serialize(roomData, false);
                            roomData.AppendBoolean(false);                     //forward
                            roomData.AppendBoolean(room.RoomData.IsStaffPick); //is staff pick
                            session.SendMessage(roomData);
                        }
                        else
                        {
                            ServerMessage roomOwner = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                            roomOwner.Init(r63aOutgoing.RoomOwner);
                            roomOwner.AppendBoolean(false); //is private room
                            roomOwner.AppendString(room.RoomGamemapManager.Model.ID);
                            roomOwner.AppendInt32(0);       //unknwown
                            session.SendMessage(roomOwner);
                        }

                        MultiRevisionServerMessage usersStatuses = room.RoomUserManager.GetUserStatus(true);
                        if (usersStatuses != null)
                        {
                            session.SendData(usersStatuses.GetBytes(session.Revision));
                        }

                        foreach (RoomUnitUser user in room.RoomUserManager.GetRealUsers())
                        {
                            if (user.Dancing)
                            {
                                ServerMessage danceMessage = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                                danceMessage.Init(r63aOutgoing.Dance);
                                danceMessage.AppendInt32(user.VirtualID);
                                danceMessage.AppendInt32(user.DanceID);
                                session.SendMessage(danceMessage);
                            }

                            if (user.Sleeps)
                            {
                                ServerMessage sleeps = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                                sleeps.Init(r63aOutgoing.Sleeps);
                                sleeps.AppendInt32(user.VirtualID);
                                sleeps.AppendBoolean(true);
                                session.SendMessage(sleeps);
                            }

                            if (user.Handitem > 0 && user.HanditemTimer > 0)
                            {
                                ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                                message_.Init(r63aOutgoing.Handitem);
                                message_.AppendInt32(user.VirtualID);
                                message_.AppendInt32(user.Handitem);
                                session.SendMessage(message_);
                            }

                            if (user.ActiveEffect > 0)
                            {
                                session.SendMessage(BasicUtilies.GetRevisionPacketManager(Revision.PRODUCTION_201601012205_226667486).GetOutgoing(OutgoingPacketsEnum.Effect).Handle(new ValueHolder("VirtualID", user.VirtualID, "EffectID", user.ActiveEffect)));
                            }
                        }

                        room.RoomWiredManager.UserEnterRoom(session.GetHabbo().GetRoomSession().GetRoomUser());

                        if (session.GetHabbo().IsMuted())
                        {
                            ServerMessage flood = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                            flood.Init(r63aOutgoing.Flood);
                            flood.AppendInt32(session.GetHabbo().MuteTimeLeft());
                            session.SendMessage(flood);
                        }
                    }
                    else
                    {
                        session.SendNotif("Failed load room model!");
                    }
                }
                else
                {
                    session.SendNotif("Room not found!");
                }
            }
        }
        public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0)
        {
            if (bool_0)
            {
                RoomItem_0.CheckExtraData4();
                ServerMessage Message = new ServerMessage(Outgoing.WiredEffect); // Updated
                Message.AppendBoolean(false);
                Message.AppendInt32(5);
                if (RoomItem_0.string_4 != "")
                {
                    Message.AppendInt32(RoomItem_0.string_4.Split(',').Length);

                    foreach (string ItemId in RoomItem_0.string_4.Split(','))
                    {
                        Message.AppendInt32(int.Parse(ItemId));
                    }
                }
                else
                {
                    Message.AppendInt32(0);
                }
                Message.AppendInt32(RoomItem_0.GetBaseItem().Sprite);
                Message.AppendUInt(RoomItem_0.uint_0);
                Message.AppendStringWithBreak("");
                Message.AppendInt32(2);
                if (RoomItem_0.string_2.Length > 0)
                {
                    Message.AppendInt32(Convert.ToInt32(RoomItem_0.string_2));
                }
                else
                {
                    Message.AppendInt32(0);
                }
                if (RoomItem_0.string_3.Length > 0)
                {
                    Message.AppendInt32(Convert.ToInt32(RoomItem_0.string_3));
                }
                else
                {
                    Message.AppendInt32(0);
                }
                Message.AppendInt32(0);
                Message.AppendInt32(4);
                if (RoomItem_0.string_6.Length > 0)
                {
                    Message.AppendInt32(Convert.ToInt32(RoomItem_0.string_6));
                }
                else
                {
                    Message.AppendInt32(0);
                }
                Message.AppendInt32(0);
                Message.AppendInt32(0);
                Message.AppendStringWithBreak("");
                Message.AppendString("J");
                if (RoomItem_0.string_2.Length > 0)
                {
                    Message.AppendInt32(Convert.ToInt32(RoomItem_0.string_2));
                }
                else
                {
                    Message.AppendInt32(0);
                }
                if (RoomItem_0.string_3.Length > 0)
                {
                    Message.AppendInt32(Convert.ToInt32(RoomItem_0.string_3));
                }
                else
                {
                    Message.AppendInt32(0);
                }
                Message.AppendString("HPA");
                if (RoomItem_0.string_6.Length > 0)
                {
                    Message.AppendInt32(Convert.ToInt32(RoomItem_0.string_6));
                }
                else
                {
                    Message.AppendInt32(0);
                }
                Message.AppendStringWithBreak("H");

                Session.SendMessage(Message);
            }
        }
        public void Handle(GameClient Session, ClientMessage Event)
        {
            if (Session.GetHabbo().uint_2 > 0u && Session.GetHabbo().bool_5)
            {
                RoomData @class = HabboIM.GetGame().GetRoomManager().method_12(Session.GetHabbo().uint_2);
                if (@class != null)
                {
                    Session.GetHabbo().collector       = false;
                    Session.GetHabbo().knastarbeit     = false;
                    Session.GetHabbo().last_gearbeitet = 0.0;

                    if (Session.GetHabbo().jail == 1 && Session.GetHabbo().jailtime < 1)
                    {
                        Session.GetHabbo().jail     = 0;
                        Session.GetHabbo().jailtime = 0.0;
                        Session.GetHabbo().UpdateJail(true);
                        Session.GetHabbo().UpdateJailTime(true);
                    }

                    if (Session.GetHabbo().jail == 1)
                    {
                        if (Session.GetHabbo().jailtime > 1)
                        {
                            HabboIM.GetWebSocketManager().getWebSocketByName(Session.GetHabbo().Username).Send("myh_arrest");
                        }
                    }



                    if (HabboIM.GetGame().GetClientManager().wartung == true && @class.Id != 0u && @class.Id != 1732u && @class.Id != 1732 && @class.Id != 901 && @class.Id != 901u && Session.GetHabbo().Rank < 6)
                    {
                        if (Session.GetHabbo().jail == 1)
                        {
                            uint          num2     = Convert.ToUInt32(1732);
                            Room          class3   = HabboIM.GetGame().GetRoomManager().method_15(num2);
                            ServerMessage Message2 = new ServerMessage(286u);
                            Message2.AppendBoolean(class3.IsPublic);
                            Message2.AppendUInt(1732);
                            Session.SendMessage(Message2);
                        }
                        else
                        {
                            uint          num2     = Convert.ToUInt32(901);
                            Room          class3   = HabboIM.GetGame().GetRoomManager().method_15(num2);
                            ServerMessage Message2 = new ServerMessage(286u);
                            Message2.AppendBoolean(class3.IsPublic);
                            Message2.AppendUInt(901);
                            Session.SendMessage(Message2);
                            Session.SendNotification("Zugang verweigert!\r\rDas Hotel befindet sich momentan im Wartungszustand.");
                        }
                    }
                    else
                    {
                        if (Session.GetHabbo().jail == 1 && Session.GetHabbo().jailtime > 0 && @class.Id != 1732 && @class.Id != 0u && @class.Id != 1732u)
                        {
                            uint          num2     = Convert.ToUInt32(1732);
                            Room          class3   = HabboIM.GetGame().GetRoomManager().method_15(num2);
                            ServerMessage Message2 = new ServerMessage(286u);
                            Message2.AppendBoolean(class3.IsPublic);
                            Message2.AppendUInt(1732);
                            Session.SendMessage(Message2);



                            if (Session.GetHabbo().jailtime != 0.0 && Session.GetHabbo().jailtime > 0)
                            {
                                double  seconds   = (Session.GetHabbo().jailtime) / 60;
                                decimal newtimexx = Convert.ToDecimal(seconds);
                                decimal rundesecs = Math.Round(newtimexx);
                                Session.SendNotification("Versuche nicht, aus dem MyHuBBa Gefängnis auszubrechen...!\r\rDu hast noch eine Haftzeit in höhe von " + rundesecs + " Minuten.\r\rHalte dich das nächste mal an die Regeln des Hotels!");
                            }
                        }
                        else
                        {
                            if (@class.Id == 1732 && Session.GetHabbo().jail == 0 && @class.Id != 0u && Session.GetHabbo().Rank < 3)
                            {
                                Room @classx = HabboIM.GetGame().GetRoomManager().GetRoom(@class.Id);
                                @classx.method_47(Session, true, false);

                                Session.SendNotification("Du kannst das MyHuBBa Gefängnis nicht betreten da du keine Haftstrafe absitzen musst.");
                            }
                            else
                            {
                                if (@class.Model == null)
                                {
                                    Session.SendNotification("Error loading room, please try again soon! (Error Code: MdlData)");
                                    Session.SendMessage(new ServerMessage(18u));
                                    Session.GetClientMessageHandler().method_7();
                                }
                                else
                                {
                                    Session.SendMessage(@class.Model.method_1());
                                    Session.SendMessage(@class.Model.method_2());
                                    Room class2 = HabboIM.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().uint_2);
                                    if (class2 != null)
                                    {
                                        Session.GetClientMessageHandler().method_7();
                                        ServerMessage Message = new ServerMessage(30u);
                                        if (class2.RoomModel.string_2 != "")
                                        {
                                            Message.AppendStringWithBreak(class2.RoomModel.string_2);
                                        }
                                        else
                                        {
                                            Message.AppendInt32(0);
                                        }
                                        Session.SendMessage(Message);
                                        if (class2.Type == "private")
                                        {
                                            Hashtable     hashtable_  = class2.Hashtable_0;
                                            Hashtable     hashtable_2 = class2.Hashtable_1;
                                            ServerMessage Message2    = new ServerMessage(32u);
                                            Message2.AppendInt32(hashtable_.Count);
                                            foreach (RoomItem class3 in hashtable_.Values)
                                            {
                                                class3.method_6(Message2);
                                            }
                                            Session.SendMessage(Message2);
                                            ServerMessage Message3 = new ServerMessage(45u);
                                            Message3.AppendInt32(hashtable_2.Count);
                                            foreach (RoomItem class3 in hashtable_2.Values)
                                            {
                                                class3.method_6(Message3);
                                            }
                                            Session.SendMessage(Message3);
                                        }
                                        class2.method_46(Session, Session.GetHabbo().bool_8);
                                        List <RoomUser> list = new List <RoomUser>();
                                        for (int i = 0; i < class2.RoomUsers.Length; i++)
                                        {
                                            RoomUser class4 = class2.RoomUsers[i];
                                            if (class4 != null && (!class4.bool_11 && class4.bool_12))
                                            {
                                                list.Add(class4);
                                            }
                                        }
                                        ServerMessage Message4 = new ServerMessage(28u);
                                        Message4.AppendInt32(list.Count);
                                        foreach (RoomUser class4 in list)
                                        {
                                            class4.method_14(Message4);
                                        }
                                        Session.SendMessage(Message4);
                                        ServerMessage Message5 = new ServerMessage(472u);
                                        Message5.AppendBoolean(class2.Hidewall);
                                        Message5.AppendInt32(class2.Wallthick);
                                        Message5.AppendInt32(class2.Floorthick);
                                        Session.SendMessage(Message5);
                                        if (class2.Type == "public")
                                        {
                                            ServerMessage Message6 = new ServerMessage(471u);
                                            Message6.AppendBoolean(false);
                                            Message6.AppendStringWithBreak(class2.ModelName);
                                            Message6.AppendBoolean(false);
                                            Session.SendMessage(Message6);
                                        }
                                        else
                                        {
                                            if (class2.Type == "private")
                                            {
                                                ServerMessage Message6 = new ServerMessage(471u);
                                                Message6.AppendBoolean(true);
                                                Message6.AppendUInt(class2.Id);
                                                if (class2.CheckRights(Session, true))
                                                {
                                                    Message6.AppendBoolean(true);
                                                }
                                                else
                                                {
                                                    Message6.AppendBoolean(false);
                                                }
                                                Session.SendMessage(Message6);
                                                ServerMessage Message7 = new ServerMessage(454u);
                                                Message7.AppendBoolean(false);
                                                @class.method_3(Message7, false, false);
                                                Session.SendMessage(Message7);
                                            }
                                        }
                                        ServerMessage Message8 = class2.method_67(true);
                                        if (Message8 != null)
                                        {
                                            Session.SendMessage(Message8);
                                        }
                                        for (int i = 0; i < class2.RoomUsers.Length; i++)
                                        {
                                            RoomUser class4 = class2.RoomUsers[i];
                                            if (class4 != null && !class4.bool_11)
                                            {
                                                if (class4.IsDancing)
                                                {
                                                    ServerMessage Message9 = new ServerMessage(480u);
                                                    Message9.AppendInt32(class4.VirtualId);
                                                    Message9.AppendInt32(class4.DanceId);
                                                    Session.SendMessage(Message9);
                                                }
                                                if (class4.bool_8)
                                                {
                                                    ServerMessage Message10 = new ServerMessage(486u);
                                                    Message10.AppendInt32(class4.VirtualId);
                                                    Message10.AppendBoolean(true);
                                                    Session.SendMessage(Message10);
                                                }
                                                if (class4.CarryItemID > 0 && class4.int_6 > 0)
                                                {
                                                    ServerMessage Message11 = new ServerMessage(482u);
                                                    Message11.AppendInt32(class4.VirtualId);
                                                    Message11.AppendInt32(class4.CarryItemID);
                                                    Session.SendMessage(Message11);
                                                }
                                                if (!class4.IsBot)
                                                {
                                                    try
                                                    {
                                                        if (class4.GetClient().GetHabbo() != null && class4.GetClient().GetHabbo().GetEffectsInventoryComponent() != null && class4.GetClient().GetHabbo().GetEffectsInventoryComponent().int_0 >= 1)
                                                        {
                                                            ServerMessage Message12 = new ServerMessage(485u);
                                                            Message12.AppendInt32(class4.VirtualId);
                                                            Message12.AppendInt32(class4.GetClient().GetHabbo().GetEffectsInventoryComponent().int_0);
                                                            Session.SendMessage(Message12);
                                                        }
                                                        goto IL_5C5;
                                                    }
                                                    catch
                                                    {
                                                        goto IL_5C5;
                                                    }
                                                }
                                                if (!class4.IsPet && class4.RoomBot.EffectId != 0)
                                                {
                                                    ServerMessage Message12 = new ServerMessage(485u);
                                                    Message12.AppendInt32(class4.VirtualId);
                                                    Message12.AppendInt32(class4.RoomBot.EffectId);
                                                    Session.SendMessage(Message12);
                                                }
                                            }
                                            IL_5C5 :;
                                        }
                                        if (class2 != null && Session != null && Session.GetHabbo().CurrentRoom != null)
                                        {
                                            Session.GetHabbo().GetEffectsInventoryComponent().method_2(0, true);
                                            class2.method_8(Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id));
                                        }
                                        if (class2.Achievement > 0u)
                                        {
                                            HabboIM.GetGame().GetAchievementManager().addAchievement(Session, class2.Achievement, 1);
                                        }
                                        if (Session.GetHabbo().IsMuted&& Session.GetHabbo().int_4 > 0)
                                        {
                                            ServerMessage Message13 = new ServerMessage(27u);
                                            Message13.AppendInt32(Session.GetHabbo().int_4);
                                            Session.SendMessage(Message13);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Example #38
0
        public void parse(GameClient Session, ClientMessage Event)
        {
            int num = Event.PopWiredInt32();

            if (num > 0 && (Session != null && Session.GetHabbo() != null))
            {
                Group @class = GroupManager.GetGroup(num);
                if (@class != null && !Session.GetHabbo().GroupReqs.Contains(@class.Id) && [email protected]((int)Session.GetHabbo().Id))
                {
                    if (@class.Locked == "open")
                    {
                        @class.AddMember((int)Session.GetHabbo().Id);
                        using (DatabaseClient class2 = PhoenixEnvironment.GetDatabase().GetClient())
                        {
                            class2.ExecuteQuery(string.Concat(new object[]
                            {
                                "INSERT INTO group_memberships (groupid, userid) VALUES (",
                                @class.Id,
                                ", ",
                                Session.GetHabbo().Id,
                                ");"
                            }));
                            Session.GetHabbo().GroupMemberships = class2.ReadDataTable("SELECT * FROM group_memberships WHERE userid = " + Session.GetHabbo().Id);
                            goto IL_1C4;
                        }
                    }
                    if (@class.Locked == "locked")
                    {
                        Session.GetHabbo().GroupReqs.Add(@class.Id);
                        using (DatabaseClient class2 = PhoenixEnvironment.GetDatabase().GetClient())
                        {
                            class2.ExecuteQuery(string.Concat(new object[]
                            {
                                "INSERT INTO group_requests (groupid, userid) VALUES (",
                                @class.Id,
                                ", ",
                                Session.GetHabbo().Id,
                                ");"
                            }));
                        }
                    }
IL_1C4:
                    if (@class != null)
                    {
                        ServerMessage Message = new ServerMessage(311u);
                        Message.AppendInt32(@class.Id);
                        Message.AppendStringWithBreak(@class.Name);
                        Message.AppendStringWithBreak(@class.Desc);
                        Message.AppendStringWithBreak(@class.Badge);
                        if (@class.RoomId > 0u)
                        {
                            Message.AppendUInt(@class.RoomId);
                            if (PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(@class.RoomId) != null)
                            {
                                Message.AppendStringWithBreak(PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(@class.RoomId).Name);
                                goto IL_2FC;
                            }
                            using (DatabaseClient class2 = PhoenixEnvironment.GetDatabase().GetClient())
                            {
                                try
                                {
                                    DataRow dataRow_ = class2.ReadDataRow("SELECT * FROM rooms WHERE Id = " + @class.RoomId + " LIMIT 1;");
                                    string  string_  = PhoenixEnvironment.GetGame().GetRoomManager().FetchRoomData(@class.RoomId, dataRow_).Name;
                                    Message.AppendStringWithBreak(string_);
                                }
                                catch
                                {
                                    Message.AppendInt32(-1);
                                    Message.AppendStringWithBreak("");
                                }
                                goto IL_2FC;
                            }
                        }
                        Message.AppendInt32(-1);
                        Message.AppendStringWithBreak("");
IL_2FC:
                        bool flag = false;
                        foreach (DataRow dataRow in Session.GetHabbo().GroupMemberships.Rows)
                        {
                            if ((int)dataRow["groupid"] == @class.Id)
                            {
                                flag = true;
                            }
                        }
                        if (Session.GetHabbo().GroupReqs.Contains(@class.Id))
                        {
                            Message.AppendInt32(2);
                        }
                        else
                        {
                            if (flag)
                            {
                                Message.AppendInt32(1);
                            }
                            else
                            {
                                if (@class.Locked == "closed")
                                {
                                    Message.AppendInt32(1);
                                }
                                else
                                {
                                    if (@class.List.Contains((int)Session.GetHabbo().Id))
                                    {
                                        Message.AppendInt32(1);
                                    }
                                    else
                                    {
                                        Message.AppendInt32(0);
                                    }
                                }
                            }
                        }
                        Message.AppendInt32(@class.List.Count);
                        if (Session.GetHabbo().GroupID == @class.Id)
                        {
                            Message.AppendBoolean(true);
                        }
                        else
                        {
                            Message.AppendBoolean(false);
                        }
                        Session.SendMessage(Message);
                    }
                }
            }
        }
Example #39
0
        void IniciarCocos()
        {
            Iniciado = true;
            int          TotalRondas = 7;
            List <Point> Puntos      = new List <Point>();

            while (TotalRondas > 0)
            {
                Puntos.Clear();
                for (int i = 1; i <= TotalRondas; i++)
                {
                    Point PosGeneratedByMap = sala.GetRandomPlace();
                    while (Puntos.Contains(PosGeneratedByMap) || !sala.Caminable(new Posicion(PosGeneratedByMap.X, PosGeneratedByMap.Y)))
                    {
                        PosGeneratedByMap = sala.GetRandomPlace();
                    }
                    Puntos.Add(PosGeneratedByMap);
                }
                TotalRondas--;
                Thread.Sleep(new TimeSpan(0, 0, 5));
                foreach (Point PointToShow in Puntos)
                {
                    ServerMessage server_1 = new ServerMessage();
                    server_1.AddHead(124);
                    server_1.AddHead(120);
                    server_1.AppendParameter(PointToShow.X);
                    server_1.AppendParameter(PointToShow.Y);
                    server_1.AppendParameter(1);
                    sala.SendData(server_1);
                }
                Thread.Sleep(new TimeSpan(0, 0, 5));
                foreach (Point PointToHidden in Puntos)
                {
                    ServerMessage server_2 = new ServerMessage();
                    server_2.AddHead(124);
                    server_2.AddHead(121);
                    server_2.AppendParameter(PointToHidden.X);
                    server_2.AppendParameter(PointToHidden.Y);
                    server_2.AppendParameter(1);
                    sala.SendData(server_2);
                }
                ServerMessage server_3 = new ServerMessage();
                server_3.AddHead(160);
                server_3.AddHead(125);
                server_3.AppendParameter(30);
                sala.SendData(server_3);
                sala.PathFinder = true;
                Thread.Sleep(new TimeSpan(0, 0, 30));
                sala.PathFinder = false;
                List <SessionInstance> ParaDescalificar = new List <SessionInstance>();
                foreach (SessionInstance Session in Participantes.Values)
                {
                    if (!Puntos.Contains(new Point(Session.User.Posicion.x, Session.User.Posicion.y)))
                    {
                        ParaDescalificar.Add(Session);
                    }
                }
                foreach (SessionInstance Session in ParaDescalificar)
                {
                    Descalificar(Session);
                    LanzarCoco(Session);
                    UserManager.Sumar_Cocos(Session.User, 1);

                    RankingsManager.agregar_user_ranking(Session.User.id, 2, 2, 1);

                    //using (mysql client = new mysql())
                    //{
                    //    string Nombre = Session.User.nombre;
                    //    if (Nombre == "") { Session.User.nombre = Session.User.nombre_halloween; }
                    //    DataRow comprobar_usuario = client.ExecuteQueryRow("SELECT * FROM coco_semanal WHERE usuario = '" + Nombre + "'");
                    //    if (comprobar_usuario != null)
                    //    {
                    //        int goldens = (int)comprobar_usuario["goldens"];
                    //        int actualizar_goldens = goldens + 1;
                    //        client.ExecuteNonQuery("UPDATE coco_semanal SET goldens = '" + actualizar_goldens + "' WHERE usuario = '" + Nombre + "'");
                    //    }
                    //    else
                    //    {
                    //        client.SetParameter("usuario", Nombre);
                    //        client.SetParameter("goldens", 1);
                    //        client.ExecuteNonQuery("INSERT INTO coco_semanal (`usuario`, `goldens`) VALUES (@usuario, @goldens)");
                    //    }
                    //}
                }
                Thread.Sleep(new TimeSpan(0, 0, 10));
                if (Participantes.Count == 0 || Participantes.Count == 1)
                {
                    break;
                }
            }
            if (Participantes.Count == 0)
            {
                ServerMessage server_4 = new ServerMessage();
                server_4.AddHead(160);
                server_4.AddHead(124);
                server_4.AppendParameter("Ups!, al parecer no hay ganadores en esta ronda...");
                sala.SendData(server_4);
            }
            else
            {
                SessionInstance SessionWin = null;
                foreach (SessionInstance Session in Participantes.Values)
                {
                    SessionWin = Session;
                }
                if (SessionWin != null)
                {
                    Participantes.Remove(SessionWin.User.id);
                    switch (sala.Escenario.id)
                    {
                    case 8:

                        ServerMessage server_5 = new ServerMessage();
                        server_5.AddHead(160);
                        server_5.AddHead(129);
                        server_5.AppendParameter(1);
                        server_5.AppendParameter(SessionWin.User.id);
                        server_5.AppendParameter(SessionWin.User.nombre);
                        server_5.AppendParameter("Ha ganado: " + Recompensa_Golden + " créditos! y Suma " + 3 + " puntos y está más cerca de conseguir un nuevo coco!");
                        sala.SendData(server_5);

                        RankingsManager.agregar_user_ranking(SessionWin.User.id, 2, 2, 3);

                        UserManager.Creditos(SessionWin.User, true, true, Recompensa_Golden);
                        UserManager.Sumar_Cocos(SessionWin.User, 3);
                        SessionWin.User.torneos_coco++;
                        if (SessionWin.User.torneos_coco == 300)
                        {
                            using (mysql client = new mysql())
                            {
                                client.SetParameter("usuario_id", SessionWin.User.id);
                                client.SetParameter("objeto_id", 3069);
                                client.ExecuteNonQuery("INSERT INTO objetos_comprados (`usuario_id`, `objeto_id`) VALUES (@usuario_id, @objeto_id)");
                            }
                        }
                        UserManager.ActualizarEstadisticas(SessionWin.User);
                        break;

                    case 9:
                        ServerMessage server_6 = new ServerMessage();
                        server_6.AddHead(160);
                        server_6.AddHead(129);
                        server_6.AppendParameter(1);
                        server_6.AppendParameter(SessionWin.User.id);
                        server_6.AppendParameter(SessionWin.User.nombre);
                        server_6.AppendParameter("Ha ganado: " + Recompensa_Silver + " monedas de plata! y Suma " + 1 + " puntos y está más cerca de conseguir un nuevo coco!");
                        sala.SendData(server_6);
                        UserManager.Creditos(SessionWin.User, false, true, Recompensa_Silver);
                        UserManager.Sumar_Cocos(SessionWin.User, 1);
                        break;
                    }
                    SessionWin.User.Jugando = false;
                }
            }
            FinalizarCocos();
        }
Example #40
0
        public static void Inscribir(SessionInstance Session, int ID)
        {
            ServerMessage server = new ServerMessage();

            server.AddHead(160);
            server.AddHead(121);
            server.AppendParameter(ID);
            try
            {
                if (!FiltroDePago(Session, ID) && MiniGamesHandler.Desactivar_Golden_Minijuegos == false)
                {
                    if (ID == 8)//Golden
                    {
                        if (Session.User.oro >= CocosInstance.Precio_Golden)
                        {
                            if (!MiniGamesManager.Inscripciones_CocosLocos.ContainsKey(Session.User.id))
                            {
                                MiniGamesManager.Inscripciones_CocosLocos.Add(Session.User.id, new Inscripcion(Session, 8));
                                if (MiniGamesManager.Inscripciones_CocosLocos.ContainsKey(Session.User.id))
                                {
                                    server.AppendParameter(1);
                                }
                            }
                            else
                            {
                                server.AppendParameter(-1);
                            }
                        }
                        else
                        {
                            server.AppendParameter(2);
                        }
                    }
                    if (ID == 9)//Silver
                    {
                        server.AppendParameter(-1);
                        if (Session.User.plata >= CocosInstance.Precio_Silver)
                        {
                            if (!MiniGamesManager.Inscripciones_CocosLocos.ContainsKey(Session.User.id))
                            {
                                MiniGamesManager.Inscripciones_CocosLocos.Add(Session.User.id, new Inscripcion(Session, 9));
                                if (MiniGamesManager.Inscripciones_CocosLocos.ContainsKey(Session.User.id))
                                {
                                    server.AppendParameter(1);
                                }
                            }
                            else
                            {
                                server.AppendParameter(-1);
                            }
                        }
                        else
                        {
                            server.AppendParameter(2);
                        }
                    }
                }
                else
                {
                    server.AppendParameter(-1);
                }
            }
            catch
            {
                server.AppendParameter(-1);
            }
            Session.SendData(server);
        }
Example #41
0
        internal static ServerMessage GetMessage(uint FurniId, Pet Pet1, Pet Pet2)
        {
            ServerMessage Message = new ServerMessage(Outgoing.PetBreedingPanel);

            Message.AppendUInt(FurniId);
            Message.AppendUInt(Pet1.PetId);
            Message.AppendString(Pet1.Name);
            Message.AppendInt32(Pet1.Level);
            Message.AppendString(Pet1.Look);
            Message.AppendString(Pet1.OwnerName);
            Message.AppendUInt(Pet2.PetId);
            Message.AppendString(Pet2.Name);
            Message.AppendInt32(Pet2.Level);
            Message.AppendString(Pet2.Look);
            Message.AppendString(Pet2.OwnerName);
            Message.AppendInt32(4); // 4 razas (ÉPICO, RARO, NADA COMÚN, COMÚN)

            Message.AppendInt32(1);
            if (Pet1.Type == 0)
            {
                Message.AppendInt32(dogEpicRace.Length);
                foreach (int value in dogEpicRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 1)
            {
                Message.AppendInt32(catEpicRace.Length);
                foreach (int value in catEpicRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 2)
            {
                Message.AppendInt32(pigEpicRace.Length);
                foreach (int value in pigEpicRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 3)
            {
                Message.AppendInt32(terrierEpicRace.Length);
                foreach (int value in terrierEpicRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 4)
            {
                Message.AppendInt32(bearEpicRace.Length);
                foreach (int value in bearEpicRace)
                {
                    Message.AppendInt32(value);
                }
            }

            Message.AppendInt32(2);
            if (Pet1.Type == 0)
            {
                Message.AppendInt32(dogRareRace.Length);
                foreach (int value in dogRareRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 1)
            {
                Message.AppendInt32(catRareRace.Length);
                foreach (int value in catRareRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 2)
            {
                Message.AppendInt32(pigRareRace.Length);
                foreach (int value in pigRareRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 3)
            {
                Message.AppendInt32(terrierRareRace.Length);
                foreach (int value in terrierRareRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 4)
            {
                Message.AppendInt32(bearRareRace.Length);
                foreach (int value in bearRareRace)
                {
                    Message.AppendInt32(value);
                }
            }

            Message.AppendInt32(3);
            if (Pet1.Type == 0)
            {
                Message.AppendInt32(dogNoRareRace.Length);
                foreach (int value in dogNoRareRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 1)
            {
                Message.AppendInt32(catNoRareRace.Length);
                foreach (int value in catNoRareRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 2)
            {
                Message.AppendInt32(pigNoRareRace.Length);
                foreach (int value in pigNoRareRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 3)
            {
                Message.AppendInt32(terrierNoRareRace.Length);
                foreach (int value in terrierNoRareRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 4)
            {
                Message.AppendInt32(bearNoRareRace.Length);
                foreach (int value in bearNoRareRace)
                {
                    Message.AppendInt32(value);
                }
            }

            Message.AppendInt32(94);
            if (Pet1.Type == 0)
            {
                Message.AppendInt32(dogNormalRace.Length);
                foreach (int value in dogNormalRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 1)
            {
                Message.AppendInt32(catNormalRace.Length);
                foreach (int value in catNormalRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 2)
            {
                Message.AppendInt32(pigNormalRace.Length);
                foreach (int value in pigNormalRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 3)
            {
                Message.AppendInt32(terrierNormalRace.Length);
                foreach (int value in terrierNormalRace)
                {
                    Message.AppendInt32(value);
                }
            }
            else if (Pet1.Type == 4)
            {
                Message.AppendInt32(bearNormalRace.Length);
                foreach (int value in bearNormalRace)
                {
                    Message.AppendInt32(value);
                }
            }

            Message.AppendInt32(GetBreedingByPet((int)Pet1.Type));

            return(Message);
        }
Example #42
0
File: RoomUser.cs Project: sgf/Yupi
        /// <summary>
        ///     Serializes the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="gotPublicRoom">if set to <c>true</c> [got public room].</param>
        internal void Serialize(ServerMessage message, bool gotPublicRoom)
        {
            if (message == null)
            {
                return;
            }
            if (IsSpectator)
            {
                return;
            }
            if (!IsBot)
            {
                if (GetClient() == null || GetClient().GetHabbo() == null)
                {
                    return;
                }
                Group group = Yupi.GetGame().GetGroupManager().GetGroup(GetClient().GetHabbo().FavouriteGroup);
                if (GetClient() == null || GetClient().GetHabbo() == null)
                {
                    return;
                }
                Habbo habbo = GetClient().GetHabbo();

                if (habbo == null)
                {
                    return;
                }

                message.AppendInteger(habbo.Id);
                message.AppendString(habbo.UserName);
                message.AppendString(habbo.Motto);
                message.AppendString(habbo.Look);
                message.AppendInteger(VirtualId);
                message.AppendInteger(X);
                message.AppendInteger(Y);
                message.AppendString(ServerUserChatTextHandler.GetString(Z));
                message.AppendInteger(0);
                message.AppendInteger(1);
                message.AppendString(habbo.Gender.ToLower());
                if (@group != null)
                {
                    message.AppendInteger(@group.Id);
                    message.AppendInteger(0);
                    message.AppendString(@group.Name);
                }
                else
                {
                    message.AppendInteger(0);
                    message.AppendInteger(0);
                    message.AppendString("");
                }
                message.AppendString("");
                message.AppendInteger(habbo.AchievementPoints);
                message.AppendBool(false);
                return;
            }

            if (BotAi == null || BotData == null)
            {
                throw new NullReferenceException("BotAI or BotData is undefined");
            }

            message.AppendInteger(BotAi.BaseId);
            message.AppendString(BotData.Name);
            message.AppendString(BotData.Motto);
            if (BotData.AiType == AiType.Pet)
            {
                if (PetData.Type == 16u)
                {
                    message.AppendString(PetData.MoplaBreed.PlantData);
                }
                else if (PetData.HaveSaddle == Convert.ToBoolean(2))
                {
                    message.AppendString(string.Concat(BotData.Look.ToLower(), " 3 4 10 0 2 ", PetData.PetHair, " ",
                                                       PetData.HairDye, " 3 ", PetData.PetHair, " ", PetData.HairDye));
                }
                else if (PetData.HaveSaddle == Convert.ToBoolean(1))
                {
                    message.AppendString(string.Concat(BotData.Look.ToLower(), " 3 2 ", PetData.PetHair, " ",
                                                       PetData.HairDye, " 3 ", PetData.PetHair, " ", PetData.HairDye, " 4 9 0"));
                }
                else
                {
                    message.AppendString(string.Concat(BotData.Look.ToLower(), " 2 2 ", PetData.PetHair, " ",
                                                       PetData.HairDye, " 3 ", PetData.PetHair, " ", PetData.HairDye));
                }
            }
            else
            {
                message.AppendString(BotData.Look.ToLower());
            }
            message.AppendInteger(VirtualId);
            message.AppendInteger(X);
            message.AppendInteger(Y);
            message.AppendString(ServerUserChatTextHandler.GetString(Z));
            message.AppendInteger(0);
            message.AppendInteger(BotData.AiType == AiType.Generic ? 4 : 2);
            if (BotData.AiType == AiType.Pet)
            {
                message.AppendInteger(PetData.Type);
                message.AppendInteger(PetData.OwnerId);
                message.AppendString(PetData.OwnerName);
                message.AppendInteger(PetData.Type == 16u ? 0 : 1);
                message.AppendBool(PetData.HaveSaddle);
                message.AppendBool(RidingHorse);
                message.AppendInteger(0);
                message.AppendInteger(PetData.Type == 16u ? 1 : 0);
                message.AppendString(PetData.Type == 16u ? PetData.MoplaBreed.GrowStatus : "");
                return;
            }
            message.AppendString(BotData.Gender.ToLower());
            message.AppendInteger(BotData.OwnerId);
            message.AppendString(Yupi.GetGame().GetClientManager().GetNameById(BotData.OwnerId));
            message.AppendInteger(5);
            message.AppendShort(1);
            message.AppendShort(2);
            message.AppendShort(3);
            message.AppendShort(4);
            message.AppendShort(5);
        }
Example #43
0
 public void Handle(GameClient Session, ClientMessage Event)
 {
     try
     {
         Room @class = GoldTree.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
         if (@class != null && @class.CheckRights(Session, true))
         {
             RoomItem class2 = @class.method_28(Event.PopWiredUInt());
             UserItem class3 = Session.GetHabbo().method_23().method_10(class2.uint_0);
             if (class2 != null)
             {
                 if (class2.GetBaseItem().Name.StartsWith("CF_") || class2.GetBaseItem().Name.StartsWith("CFC_") || class2.GetBaseItem().Name.StartsWith("PixEx_") || class2.GetBaseItem().Name.StartsWith("PntEx_"))
                 {
                     if (class3 != null)
                     {
                         @class.method_29(null, class3.uint_0, true, true);
                     }
                     else
                     {
                         DataRow dataRow = null;
                         using (DatabaseClient class4 = GoldTree.GetDatabase().GetClient())
                         {
                             dataRow = class4.ReadDataRow("SELECT ID FROM items WHERE ID = '" + class2.uint_0 + "' LIMIT 1");
                         }
                         if (dataRow != null)
                         {
                             string[] array = class2.GetBaseItem().Name.Split(new char[]
                             {
                                 '_'
                             });
                             int num = int.Parse(array[1]);
                             if (num > 0)
                             {
                                 if (class2.GetBaseItem().Name.StartsWith("CF_") || class2.GetBaseItem().Name.StartsWith("CFC_"))
                                 {
                                     Session.GetHabbo().Credits += num;
                                     Session.GetHabbo().method_13(true);
                                 }
                                 else
                                 {
                                     if (class2.GetBaseItem().Name.StartsWith("PixEx_"))
                                     {
                                         Session.GetHabbo().ActivityPoints += num;
                                         Session.GetHabbo().method_15(true);
                                     }
                                     else
                                     {
                                         if (class2.GetBaseItem().Name.StartsWith("PntEx_"))
                                         {
                                             Session.GetHabbo().VipPoints += num;
                                             Session.GetHabbo().method_14(false, true);
                                         }
                                     }
                                 }
                             }
                         }
                         @class.method_29(null, class2.uint_0, true, true);
                         ServerMessage Message5_ = new ServerMessage(219u);
                         Session.SendMessage(Message5_);
                     }
                 }
             }
         }
     }
     catch
     {
     }
 }
Example #44
0
File: RoomUser.cs Project: sgf/Yupi
        /// <summary>
        ///     Chats the specified session.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="msg">The MSG.</param>
        /// <param name="shout">if set to <c>true</c> [shout].</param>
        /// <param name="count">The count.</param>
        /// <param name="textColor">Color of the text.</param>
        internal void Chat(GameClient session, string msg, bool shout, int count, int textColor = 0)
        {
            if (IsPet || IsBot)
            {
                if (!IsPet)
                {
                    textColor = 2;
                }

                ServerMessage botChatmsg = new ServerMessage();
                botChatmsg.Init(shout
                    ? LibraryParser.OutgoingRequest("ShoutMessageComposer")
                    : LibraryParser.OutgoingRequest("ChatMessageComposer"));
                botChatmsg.AppendInteger(VirtualId);
                botChatmsg.AppendString(msg);
                botChatmsg.AppendInteger(0);
                botChatmsg.AppendInteger(textColor);
                botChatmsg.AppendInteger(0);
                botChatmsg.AppendInteger(count);

                GetRoom().SendMessage(botChatmsg);
                return;
            }

            if (msg.Length > 100) // si el mensaje es mayor que la máxima longitud (scripter)
            {
                return;
            }
            if (!ServerSecurityChatFilter.CanTalk(session, msg))
            {
                return;
            }

            if (session == null || session.GetHabbo() == null)
            {
                return;
            }

            BlackWord word;

            if (!(msg.StartsWith(":deleteblackword ") && session.GetHabbo().Rank > 4) &&
                BlackWordsManager.Check(msg, BlackWordType.Hotel, out word))
            {
                BlackWordTypeSettings settings = word.TypeSettings;
                //session.HandlePublicist(word.Word, msg, "CHAT", settings);

                if (settings.ShowMessage)
                {
                    session.SendWhisper("A mensagem contém a palavra: " + word.Word +
                                        " que não é permitida, você poderá ser banido!");
                    return;
                }
            }

            if (!IsBot && IsFlooded && FloodExpiryTime <= Yupi.GetUnixTimeStamp())
            {
                IsFlooded = false;
            }
            else if (!IsBot && IsFlooded)
            {
                return; // ciao flooders!
            }
            if (session.GetHabbo().Rank < 4 && GetRoom().CheckMute(session))
            {
                return;
            }

            UnIdle();
            if (!IsPet && !IsBot)
            {
                if (msg.StartsWith(":") && CommandsManager.TryExecute(msg.Substring(1), session))
                {
                    return;
                }

                Habbo habbo = GetClient().GetHabbo();

                if (GetRoom().GetWiredHandler().ExecuteWired(Interaction.TriggerOnUserSay, this, msg))
                {
                    return;
                }

                GetRoom().AddChatlog(session.GetHabbo().Id, msg, true);

                uint rank = 1;

                if (session.GetHabbo() != null)
                {
                    rank = session.GetHabbo().Rank;
                }

                msg = GetRoom()
                      .WordFilter
                      .Aggregate(msg,
                                 (current1, current) => Regex.Replace(current1, current, "bobba", RegexOptions.IgnoreCase));

                if (rank < 4)
                {
                    TimeSpan span = DateTime.Now - habbo.SpamFloodTime;
                    if ((span.TotalSeconds > habbo.SpamProtectionTime) && habbo.SpamProtectionBol)
                    {
                        _floodCount               = 0;
                        habbo.SpamProtectionBol   = false;
                        habbo.SpamProtectionAbuse = 0;
                    }
                    else if (span.TotalSeconds > 4.0)
                    {
                        _floodCount = 0;
                    }
                    ServerMessage message;
                    if ((span.TotalSeconds < habbo.SpamProtectionTime) && habbo.SpamProtectionBol)
                    {
                        message = new ServerMessage(LibraryParser.OutgoingRequest("FloodFilterMessageComposer"));
                        int i = habbo.SpamProtectionTime - span.Seconds;
                        message.AppendInteger(i);
                        IsFlooded       = true;
                        FloodExpiryTime = Yupi.GetUnixTimeStamp() + i;
                        GetClient().SendMessage(message);
                        return;
                    }
                    if ((span.TotalSeconds < 4.0) && (_floodCount > 5) && (rank < 5))
                    {
                        message = new ServerMessage(LibraryParser.OutgoingRequest("FloodFilterMessageComposer"));
                        habbo.SpamProtectionCount++;
                        if (habbo.SpamProtectionCount % 2 == 0)
                        {
                            habbo.SpamProtectionTime = 10 * habbo.SpamProtectionCount;
                        }
                        else
                        {
                            habbo.SpamProtectionTime = 10 * (habbo.SpamProtectionCount - 1);
                        }
                        habbo.SpamProtectionBol = true;
                        int j = habbo.SpamProtectionTime - span.Seconds;
                        message.AppendInteger(j);
                        IsFlooded       = true;
                        FloodExpiryTime = Yupi.GetUnixTimeStamp() + j;
                        GetClient().SendMessage(message);
                        return;
                    }
                    habbo.SpamFloodTime = DateTime.Now;
                    _floodCount++;
                }
                if (habbo.Preferences.ChatColor != textColor)
                {
                    habbo.Preferences.ChatColor = textColor;
                    habbo.Preferences.Save();
                }
            }
            else if (!IsPet)
            {
                textColor = 2;
            }

            ServerMessage chatMsg = new ServerMessage();

            chatMsg.Init(shout
                ? LibraryParser.OutgoingRequest("ShoutMessageComposer")
                : LibraryParser.OutgoingRequest("ChatMessageComposer"));
            chatMsg.AppendInteger(VirtualId);
            chatMsg.AppendString(msg);
            chatMsg.AppendInteger(ChatEmotions.GetEmotionsForText(msg));
            chatMsg.AppendInteger(textColor);
            chatMsg.AppendInteger(0); // links count (foreach string string bool)
            chatMsg.AppendInteger(count);
            GetRoom().BroadcastChatMessage(chatMsg, this, session.GetHabbo().Id);

            GetRoom().OnUserSay(this, msg, shout);

            GetRoom().GetRoomUserManager().TurnHeads(X, Y, HabboId);
        }
Example #45
0
        public void Whisper(string MessageText, uint TargetUserId, bool CanOverrideRoomMute = false)
        {
            if (mIsLeavingRoom && mForcedLeave)
            {
                return;
            }

            Unidle();

            if (mInstance.RoomMuted && !CanOverrideRoomMute)
            {
                return;
            }

            ServerMessage Message = RoomChatComposer.Compose(Id, MessageText, 0, ChatType.Whisper);

            if (Type == RoomActorType.UserCharacter)
            {
                Session Session = SessionManager.GetSessionByCharacterId(mReferenceId);

                if (Session != null)
                {
                    Session.SendData(Message);
                }
            }

            string LogTargetName = "Unknown User";
            uint   LogTargetId   = 0;

            if (TargetUserId != mReferenceId)
            {
                RoomActor TargetActor = mInstance.GetActorByReferenceId(TargetUserId);

                if (TargetActor == null || TargetActor.Type != RoomActorType.UserCharacter)
                {
                    return;
                }

                Session TargetSession = SessionManager.GetSessionByCharacterId(TargetActor.ReferenceId);

                if (TargetSession != null)
                {
                    if (!TargetSession.IgnoreCache.UserIsIgnored(this.ReferenceId))
                    {
                        TargetSession.SendData(Message);
                    }

                    LogTargetName = TargetSession.CharacterInfo.Username;
                    LogTargetId   = TargetSession.CharacterId;
                }
            }

            if (mType == RoomActorType.UserCharacter)
            {
                using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
                {
                    ModerationLogs.LogChatMessage(MySqlClient, mReferenceId, mInstance.RoomId, "(Whisper to " + LogTargetName + " [" + LogTargetId + "]) " + MessageText);
                    IncrecementAntiSpam(MySqlClient);
                }
            }
        }
Example #46
0
        public void method_3(ServerMessage Message, bool ShowEvents, bool bool_6)
        {
            Message.AppendUInt(this.Id);
            if (this.Event == null || !ShowEvents)
            {
                Message.AppendBoolean(false);
                Message.AppendStringWithBreak(this.Name);
                if (!this.HideOwner)
                {
                    Message.AppendStringWithBreak(this.Owner);
                }
                else
                {
                    Message.AppendStringWithBreak("-");
                }
                Message.AppendInt32(this.State);
                Message.AppendInt32(this.UsersNow);
                Message.AppendInt32(this.UsersMax);
                Message.AppendStringWithBreak(this.Description);
                Message.AppendBoolean(true);
                if (this.Category > 0)
                {
                    Message.AppendBoolean(HabboIM.GetGame().GetNavigator().method_2(this.Category).CanTrade);
                }
                else
                {
                    Message.AppendBoolean(false);
                }
                Message.AppendInt32(this.Score);
                Message.AppendInt32(this.Category);
                Message.AppendStringWithBreak("");
                Message.AppendInt32(this.TagCount);
                using (List <string> .Enumerator enumerator = this.Tags.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        string current = enumerator.Current;
                        Message.AppendStringWithBreak(current);
                    }
                    goto IL_24A;
                }
            }
            Message.AppendBoolean(true);
            Message.AppendStringWithBreak(this.Event.Name);
            Message.AppendStringWithBreak(this.Owner);
            Message.AppendInt32(this.State);
            Message.AppendInt32(this.UsersNow);
            Message.AppendInt32(this.UsersMax);
            Message.AppendStringWithBreak(this.Event.Description);
            Message.AppendBoolean(true);
            Message.AppendBoolean(true);
            Message.AppendInt32(this.Score);
            Message.AppendInt32(this.Event.Category);
            Message.AppendStringWithBreak(this.Event.StartTime);
            Message.AppendInt32(this.Event.Tags.Count);
            foreach (string current in this.Event.Tags)
            {
                Message.AppendStringWithBreak(current);
            }
IL_24A:
            this.Icon.Serialize(Message);
            Message.AppendBoolean(this.AllowPet);
            Message.AppendBoolean(this.AllowPetsEating);
            if (bool_6)
            {
                Message.AppendBoolean(bool_6);
            }
        }
Example #47
0
    public static ServerMessage Compose()
    {
        ServerMessage message = new ServerMessage(ItemcodesIn.UNKNOW2);

        return(message);
    }
Example #48
0
        internal void OnCycle()
        {
            if (this.bullyState == BullyState.SEARCHING_USER)
            {
                if ((DateTime.Now - customTimer).Seconds >= 15)
                {
                    GameClient guardianClient = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(this.GuardianId);
                    if (guardianClient != null)
                    {
                        ServerMessage Message3 = new ServerMessage(Outgoing.CancelAlfaAlert);
                        guardianClient.SendMessage(Message3);

                        guardianClient.GetHabbo().AlfaServiceId = 0;
                        guardianClient.GetHabbo().ExitAlfaState();
                    }

                    if (!this.nullGuardians.Contains(this.GuardianId))
                    {
                        this.nullGuardians.Add(this.GuardianId);
                    }

                    if (!this.SearchGuardian())
                    {
                        this.SerializeNoGuardians();
                        OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId);
                        return;
                    }
                }
                else if (this.NeedUpdate)
                {
                    this.NeedUpdate = false;

                    if (!this.nullGuardians.Contains(this.GuardianId))
                    {
                        this.nullGuardians.Add(this.GuardianId);
                    }

                    if (!this.SearchGuardian())
                    {
                        this.SerializeNoGuardians();
                        OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId);
                        return;
                    }
                }
            }
            else if (this.bullyState == BullyState.WAITING_RESPONSE)
            {
                if ((DateTime.Now - customTimer).Seconds >= 59)
                {
                    GameClient guardianClient = Guardian;
                    if (guardianClient != null)
                    {
                        ServerMessage Message3 = new ServerMessage(Outgoing.CancelAlfaAlert);
                        guardianClient.SendMessage(Message3);
                    }

                    this.bullySolution = BullySolution.EXIT;
                    this.bullyState    = BullyState.FINISHED;
                }
            }
            else if (this.bullyState == BullyState.FINISHED)
            {
                switch (this.bullySolution)
                {
                case BullySolution.NONE:
                case BullySolution.EXIT:
                case BullySolution.RELOAD:
                {
                    GameClient _Reporter = Reporter;
                    if (_Reporter != null)
                    {
                        OtanixEnvironment.GetGame().GetModerationTool().SendNewTicket(_Reporter, 104, (int)ReportedId, "Acoso", new string[0]);
                    }

                    break;
                }

                case BullySolution.ACCEPTABLE:
                {
                    // none (:
                    break;
                }

                case BullySolution.BULLY:
                case BullySolution.HORROR:
                {
                    Habbo habbo = UsersCache.getHabboCache(ReportedId);
                    if (habbo == null)
                    {
                        return;
                    }

                    ModerationTool.MuteUser(null, habbo, 10, "");
                    break;
                }

                    /*case BullySolution.HORROR:
                     *  {
                     *      GameClient TargetClient = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(ReportedId);
                     *      Habbo habbo = UsersCache.getHabboCache(ReportedId);
                     *
                     *      if (habbo != null && habbo.Rank <= 1)
                     *          //OtanixEnvironment.GetGame().GetBanManager().BanUser(TargetClient, habbo.Username, "", "Baneado por los HabboAlfas.", 21600, null);
                     *      break;
                     *  }*/
                }

                GameClient guardianClient = Guardian;
                if (guardianClient != null && guardianClient.GetHabbo() != null)
                {
                    guardianClient.GetHabbo().AlfaServiceId   = 0;
                    guardianClient.GetHabbo().AlfaHelpEnabled = false;

                    if (bullySolution == BullySolution.ACCEPTABLE || bullySolution == BullySolution.BULLY || bullySolution == BullySolution.HORROR)
                    {
                        ServerMessage EndVotation = new ServerMessage(Outgoing.FinishAlfaVotation);
                        EndVotation.AppendInt32((Int32)bullySolution);
                        EndVotation.AppendInt32((Int32)bullySolution);
                        EndVotation.AppendInt32(0); // array
                        guardianClient.SendMessage(EndVotation);
                    }

                    // Con esto enviaremos al Guardián al inicio de la lista para que puedan ayudar los últimos guardianes.
                    // OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveGuardian(GuardianId);
                    // OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().AddGuardian(GuardianId);
                }

                if (this.AlfaChatLog.Length > 0)
                {
                    OtanixEnvironment.GetGame().GetAlfaManager().LoadAlfaLog(this.GuardianId, "BULLY", this.AlfaChatLog, (Int32)this.bullySolution);
                }

                OtanixEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(GuardianId, "ACH_GuideChatReviewer", 1);

                GameClient reporterClient = Reporter;
                if (reporterClient != null)
                {
                    ServerMessage reporterAlert = new ServerMessage(Outgoing.ResolvedAlfa);
                    reporterAlert.AppendInt32(3);
                    reporterClient.SendMessage(reporterAlert);
                }

                OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId);
            }
        }
Example #49
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            if (Session != null && Session.GetHabbo() != null)
            {
                Room @class = GoldTree.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
                if (@class != null && @class.method_26(Session) && (ServerConfiguration.AllowFurniDrops || !(@class.Owner != Session.GetHabbo().Username)))
                {
                    string   text  = Event.PopFixedString();
                    string[] array = text.Split(new char[]
                    {
                        ' '
                    });
                    if (array[0].Contains("-"))
                    {
                        array[0] = array[0].Replace("-", "");
                    }
                    uint uint_ = 0u;
                    try
                    {
                        uint_ = uint.Parse(array[0]);
                    }
                    catch
                    {
                        return;
                    }
                    UserItem class2 = Session.GetHabbo().GetInventoryComponent().GetItemById(uint_);
                    if (class2 != null)
                    {
                        string text2 = class2.method_1().InteractionType.ToLower();
                        if (text2 != null && text2 == "dimmer" && @class.method_72("dimmer") >= 1)
                        {
                            Session.SendNotification("You can only have one moodlight in a room.");
                        }
                        else if (text2 != null && text2 == "jukebox" && @class.method_72("jukebox") >= 1)
                        {
                            Session.SendNotification("You can only have one jukebox in a room.");
                        }
                        else
                        {
                            RoomItem RoomItem_;
                            if (array[1].StartsWith(":"))
                            {
                                string text3 = @class.method_98(":" + text.Split(new char[]
                                {
                                    ':'
                                })[1]);
                                if (text3 == null)
                                {
                                    ServerMessage Message = new ServerMessage(516u);
                                    Message.AppendInt32(11);
                                    Session.SendMessage(Message);
                                    return;
                                }
                                RoomItem_ = new RoomItem(class2.uint_0, @class.Id, class2.uint_1, class2.string_0, 0, 0, 0.0, 0, text3, @class);
                                if ([email protected]_82(Session, RoomItem_, true, null))
                                {
                                    goto IL_32C;
                                }
                                Session.GetHabbo().GetInventoryComponent().method_12(uint_, 1u, false);
                                using (DatabaseClient class3 = GoldTree.GetDatabase().GetClient())
                                {
                                    class3.ExecuteQuery(string.Concat(new object[]
                                    {
                                        "UPDATE items SET room_id = '",
                                        @class.Id,
                                        "' WHERE Id = '",
                                        class2.uint_0,
                                        "' LIMIT 1"
                                    }));
                                    goto IL_32C;
                                }
                            }
                            int int_  = int.Parse(array[1]);
                            int int_2 = int.Parse(array[2]);
                            int int_3 = int.Parse(array[3]);
                            RoomItem_ = new RoomItem(class2.uint_0, @class.Id, class2.uint_1, class2.string_0, 0, 0, 0.0, 0, "", @class);
                            if (@class.method_79(Session, RoomItem_, int_, int_2, int_3, true, false, false))
                            {
                                Session.GetHabbo().GetInventoryComponent().method_12(uint_, 1u, false);
                                using (DatabaseClient class3 = GoldTree.GetDatabase().GetClient())
                                {
                                    class3.ExecuteQuery(string.Concat(new object[]
                                    {
                                        "UPDATE items SET room_id = '",
                                        @class.Id,
                                        "' WHERE Id = '",
                                        class2.uint_0,
                                        "' LIMIT 1"
                                    }));
                                }
                            }
IL_32C:
                            if (Session.GetHabbo().CurrentQuestId > 0 && GoldTree.GetGame().GetQuestManager().GetQuestAction(Session.GetHabbo().CurrentQuestId) == "PLACEITEM")
                            {
                                GoldTree.GetGame().GetQuestManager().ProgressUserQuest(Session.GetHabbo().CurrentQuestId, Session);
                            }
                        }
                    }
                }
            }
        }
Example #50
0
        /// <summary>
        ///     Serializes the popular room tags.
        /// </summary>
        /// <returns>ServerMessage.</returns>
        internal ServerMessage SerializePopularRoomTags()
        {
            Dictionary <string, int> dictionary = new Dictionary <string, int>();

            ServerMessage result;

            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                queryReactor.SetQuery(
                    "SELECT tags, users_now FROM rooms_data WHERE roomtype = 'private' AND users_now > 0 ORDER BY users_now DESC LIMIT 50");

                DataTable table = queryReactor.GetTable();

                if (table != null)
                {
                    foreach (DataRow dataRow in table.Rows)
                    {
                        int usersNow;

                        if (!string.IsNullOrEmpty(dataRow["users_now"].ToString()))
                        {
                            usersNow = (int)dataRow["users_now"];
                        }
                        else
                        {
                            usersNow = 0;
                        }

                        string[]      array = dataRow["tags"].ToString().Split(',');
                        List <string> list  = array.ToList();

                        foreach (string current in list)
                        {
                            if (dictionary.ContainsKey(current))
                            {
                                dictionary[current] += usersNow;
                            }
                            else
                            {
                                dictionary.Add(current, usersNow);
                            }
                        }
                    }
                }

                List <KeyValuePair <string, int> > list2 = new List <KeyValuePair <string, int> >(dictionary);

                list2.Sort((firstPair, nextPair) => firstPair.Value.CompareTo(nextPair.Value));

                ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("PopularRoomTagsMessageComposer"));
                serverMessage.AppendInteger(list2.Count);

                foreach (KeyValuePair <string, int> current2 in list2)
                {
                    serverMessage.AppendString(current2.Key);
                    serverMessage.AppendInteger(current2.Value);
                }

                result = serverMessage;
            }

            return(result);
        }
Example #51
0
        private void method_12()
        {
            int num = int.Parse(GoldTree.GetConfig().data["client.ping.interval"]);

            if (num <= 100)
            {
                throw new ArgumentException("Invalid configuration value for ping interval! Must be above 100 miliseconds.");
            }

            while (true)
            {
                try
                {
                    ServerMessage     Message = new ServerMessage(50u);
                    List <GameClient> list    = new List <GameClient>();
                    List <GameClient> list2   = new List <GameClient>();
                    for (int i = 0; i < this.Clients.Length; i++)
                    {
                        GameClient @class = this.Clients[i];
                        if (@class != null)
                        {
                            if (@class.bool_0)
                            {
                                @class.bool_0 = false;
                                list2.Add(@class);
                            }
                            else
                            {
                                list.Add(@class);
                            }
                        }
                    }
                    foreach (GameClient @class in list)
                    {
                        try
                        {
                            @class.method_12();
                        }
                        catch
                        {
                        }
                    }
                    byte[] byte_ = Message.GetBytes();
                    foreach (GameClient @class in list2)
                    {
                        try
                        {
                            @class.GetConnection().SendData(byte_);
                        }
                        catch
                        {
                            @class.method_12();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logging.LogThreadException(ex.ToString(), "Connection checker task");
                }
                Thread.Sleep(num);
            }
        }
Example #52
0
        /// <summary>
        ///     Serializes the navigator.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="mode">The mode.</param>
        /// <returns>ServerMessage.</returns>
        internal ServerMessage SerializeNavigator(GameClient session, int mode)
        {
            if (mode >= 0)
            {
                return(SerializeActiveRooms());
            }

            ServerMessage reply = new ServerMessage(LibraryParser.OutgoingRequest("NavigatorListingsMessageComposer"));

            switch (mode)
            {
            case -6:
            {
                reply.AppendInteger(14);

                List <RoomData> activeGRooms = new List <RoomData>();

                KeyValuePair <RoomData, uint>[] rooms = Yupi.GetGame().GetRoomManager().GetActiveRooms();

                if (rooms != null && rooms.Any())
                {
                    activeGRooms.AddRange(from rd in rooms where rd.Key.GroupId != 0 select rd.Key);
                    activeGRooms = activeGRooms.OrderByDescending(p => p.UsersNow).ToList();
                }

                SerializeNavigatorRooms(ref reply, activeGRooms);

                return(reply);
            }

            case -5:
            case -4:
            {
                reply.AppendInteger(mode * -1);

                List <RoomData> activeFriends =
                    session.GetHabbo()
                    .GetMessenger()
                    .GetActiveFriendsRooms()
                    .OrderByDescending(p => p.UsersNow)
                    .ToList();
                SerializeNavigatorRooms(ref reply, activeFriends);

                return(reply);
            }

            case -3:
            {
                reply.AppendInteger(5);
                SerializeNavigatorRooms(ref reply, session.GetHabbo().UsersRooms);

                return(reply);
            }

            case -2:
            {
                reply.AppendInteger(2);

                try
                {
                    KeyValuePair <RoomData, int>[] rooms = Yupi.GetGame().GetRoomManager().GetVotedRooms();

                    SerializeNavigatorRooms(ref reply, rooms);

                    if (rooms != null)
                    {
                        Array.Clear(rooms, 0, rooms.Length);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    reply.AppendString(string.Empty);
                    reply.AppendInteger(0);
                }

                return(reply);
            }

            case -1:
            {
                reply.AppendInteger(1);
                reply.AppendString("-1");

                try
                {
                    KeyValuePair <RoomData, uint>[] rooms = Yupi.GetGame().GetRoomManager().GetActiveRooms();

                    SerializeNavigatorPopularRooms(ref reply, rooms);

                    if (rooms != null)
                    {
                        Array.Clear(rooms, 0, rooms.Length);
                    }
                }
                catch
                {
                    reply.AppendInteger(0);
                    reply.AppendBool(false);
                }

                return(reply);
            }
            }

            return(reply);
        }
Example #53
0
 /// <summary>
 ///     Loads the new public rooms.
 /// </summary>
 public void LoadNewPublicRooms()
 {
     NewPublicRooms = SerializeNewPublicRooms();
     NewStaffPicks  = SerializeNewStaffPicks();
 }
Example #54
0
        /// <summary>
        ///     Enables the new navigator.
        /// </summary>
        /// <param name="session">The session.</param>
        internal void EnableNewNavigator(GameClient session)
        {
            ServerMessage navigatorMetaDataParser = new ServerMessage(LibraryParser.OutgoingRequest("NavigatorMetaDataComposer"));

            navigatorMetaDataParser.AppendInteger(4);
            navigatorMetaDataParser.AppendString("official_view");
            navigatorMetaDataParser.AppendInteger(0);
            navigatorMetaDataParser.AppendString("hotel_view");
            navigatorMetaDataParser.AppendInteger(0);
            navigatorMetaDataParser.AppendString("roomads_view");
            navigatorMetaDataParser.AppendInteger(0);
            navigatorMetaDataParser.AppendString("myworld_view");
            navigatorMetaDataParser.AppendInteger(0);
            session.SendMessage(navigatorMetaDataParser);

            ServerMessage navigatorLiftedRoomsParser =
                new ServerMessage(LibraryParser.OutgoingRequest("NavigatorLiftedRoomsComposer"));

            navigatorLiftedRoomsParser.AppendInteger(NavigatorHeaders.Count);

            foreach (NavigatorHeader navHeader in NavigatorHeaders)
            {
                navigatorLiftedRoomsParser.AppendInteger(navHeader.RoomId);
                navigatorLiftedRoomsParser.AppendInteger(0);
                navigatorLiftedRoomsParser.AppendString(navHeader.Image);
                navigatorLiftedRoomsParser.AppendString(navHeader.Caption);
            }

            session.SendMessage(navigatorLiftedRoomsParser);

            ServerMessage collapsedCategoriesMessageParser = new ServerMessage(LibraryParser.OutgoingRequest("NavigatorCategorys"));

            collapsedCategoriesMessageParser.AppendInteger(FlatCatsCount + 4);

            foreach (PublicCategory flat in PrivateCategories.Values)
            {
                collapsedCategoriesMessageParser.AppendString($"category__{flat.Caption}");
            }

            collapsedCategoriesMessageParser.AppendString("recommended");
            collapsedCategoriesMessageParser.AppendString("new_ads");
            collapsedCategoriesMessageParser.AppendString("staffpicks");
            collapsedCategoriesMessageParser.AppendString("official");
            session.SendMessage(collapsedCategoriesMessageParser);

            ServerMessage searches = new ServerMessage(LibraryParser.OutgoingRequest("NavigatorSavedSearchesComposer"));

            searches.AppendInteger(session.GetHabbo().NavigatorLogs.Count);

            foreach (UserSearchLog navi in session.GetHabbo().NavigatorLogs.Values)
            {
                searches.AppendInteger(navi.Id);
                searches.AppendString(navi.Value1);
                searches.AppendString(navi.Value2);
                searches.AppendString("");
            }

            session.SendMessage(searches);

            ServerMessage   packetName = new ServerMessage(LibraryParser.OutgoingRequest("NewNavigatorSizeMessageComposer"));
            UserPreferences pref       = session.GetHabbo().Preferences;

            packetName.AppendInteger(pref.NewnaviX);
            packetName.AppendInteger(pref.NewnaviY);
            packetName.AppendInteger(pref.NewnaviWidth);
            packetName.AppendInteger(pref.NewnaviHeight);
            packetName.AppendBool(false);
            packetName.AppendInteger(1);

            session.SendMessage(packetName);
        }
Example #55
0
        internal void Chat(GameClient Session, string Message, bool Shout, int count, int TextColor = 0)
        {
            if (IsPet || IsBot)
            {
                if (!IsPet)
                {
                    TextColor = 2;
                }

                ServerMessage botChatmsg = new ServerMessage();
                botChatmsg.Init(Shout ? Outgoing.ShoutMessageComposer : Outgoing.ChatMessageComposer);
                botChatmsg.AppendInt32(VirtualId);
                botChatmsg.AppendString(Message);
                botChatmsg.AppendInt32(0);
                botChatmsg.AppendInt32(TextColor);
                botChatmsg.AppendInt32(0);
                botChatmsg.AppendInt32(count);

                this.GetRoom().SendMessage(botChatmsg);
                return;
            }

            if (Session.GetHabbo().Rank <= 9 && AntiPublicistas.CheckPublicistas(Message))
            {
                Session.PublicistaCount++;
                Session.HandlePublicista(Message);
                return;
            }

            if (!IsBot && IsFlooded && FloodExpiryTime <= CyberEnvironment.GetUnixTimestamp())
            {
                IsFlooded = false;
            }
            else if (!IsBot && IsFlooded)
            {
                return; // ciao flooders!
            }
            if (Session.GetHabbo().Rank < 4 && GetRoom().CheckMute(Session))
            {
                return;
            }

            this.UnIdle();
            if (!this.IsPet && !this.IsBot)
            {
                if (Message.StartsWith(":") && GetClient().GetHabbo().GetCommandHandler().Parse(Message))
                {
                    return;
                }

                ServerMessage message;
                Habbo         habbo = this.GetClient().GetHabbo();

                if (GetRoom().GetWiredHandler().ExecuteWired(WiredItemType.TriggerUserSaysKeyword, new object[]
                {
                    this,
                    Message
                }))
                {
                    return;
                }


                uint rank = 1;

                if ((Session != null) && (Session.GetHabbo() != null))
                {
                    rank = Session.GetHabbo().Rank;
                }

                GetRoom().AddChatlog(Session.GetHabbo().Id, Message, false);

                foreach (string current in GetRoom().WordFilter)
                {
                    Message = System.Text.RegularExpressions.Regex.Replace(Message, current, "bobba", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                }

                if (rank < 4)
                {
                    TimeSpan span = (TimeSpan)(DateTime.Now - habbo.spamFloodTime);
                    if ((span.TotalSeconds > habbo.spamProtectionTime) && habbo.spamProtectionBol)
                    {
                        this.FloodCount           = 0;
                        habbo.spamProtectionBol   = false;
                        habbo.spamProtectionAbuse = 0;
                    }
                    else if (span.TotalSeconds > 4.0)
                    {
                        this.FloodCount = 0;
                    }
                    if ((span.TotalSeconds < habbo.spamProtectionTime) && habbo.spamProtectionBol)
                    {
                        message = new ServerMessage(Outgoing.FloodFilterMessageComposer);
                        int i = habbo.spamProtectionTime - span.Seconds;
                        message.AppendInt32(i);
                        this.IsFlooded       = true;
                        this.FloodExpiryTime = CyberEnvironment.GetUnixTimestamp() + i;
                        this.GetClient().SendMessage(message);
                        return;
                    }
                    if (((span.TotalSeconds < 4.0) && (this.FloodCount > 5)) && (rank < 5))
                    {
                        message = new ServerMessage(Outgoing.FloodFilterMessageComposer);
                        habbo.spamProtectionCount++;
                        if ((habbo.spamProtectionCount % 2) == 0)
                        {
                            habbo.spamProtectionTime = 10 * habbo.spamProtectionCount;
                        }
                        else
                        {
                            habbo.spamProtectionTime = 10 * (habbo.spamProtectionCount - 1);
                        }
                        habbo.spamProtectionBol = true;
                        int j = (int)(habbo.spamProtectionTime - span.Seconds);
                        message.AppendInt32(j);
                        this.IsFlooded       = true;
                        this.FloodExpiryTime = CyberEnvironment.GetUnixTimestamp() + j;
                        this.GetClient().SendMessage(message);
                        return;
                    }
                    habbo.spamFloodTime = DateTime.Now;
                    this.FloodCount++;
                }
            }
            else
            {
                if (!IsPet)
                {
                    TextColor = 2;
                }
            }

            ServerMessage chatMsg = new ServerMessage();

            chatMsg.Init(Shout ? Outgoing.ShoutMessageComposer : Outgoing.ChatMessageComposer);
            chatMsg.AppendInt32(VirtualId);
            chatMsg.AppendString(Message);
            chatMsg.AppendInt32(RoomUser.GetSpeechEmotion(Message));
            chatMsg.AppendInt32(TextColor);
            chatMsg.AppendInt32(0);
            chatMsg.AppendInt32(count);
            GetRoom().BroadcastChatMessage(chatMsg, this, Session.GetHabbo().Id);

            this.GetRoom().OnUserSay(this, Message, Shout);

            this.GetRoom().GetRoomUserManager().TurnHeads(this.X, this.Y, this.HabboId);
        }
Example #56
0
        /// <summary>
        ///     Serializes the search results.
        /// </summary>
        /// <param name="searchQuery">The search query.</param>
        /// <returns>ServerMessage.</returns>
        public static ServerMessage SerializeSearchResults(string searchQuery)
        {
            bool   containsOwner = false;
            bool   containsGroup = false;
            string originalQuery = searchQuery;

            if (searchQuery.StartsWith("owner:"))
            {
                searchQuery   = searchQuery.Replace("owner:", string.Empty);
                containsOwner = true;
            }
            else if (searchQuery.StartsWith("group:"))
            {
                searchQuery   = searchQuery.Replace("group:", string.Empty);
                containsGroup = true;
            }

            List <RoomData> rooms = new List <RoomData>();

            if (!containsOwner)
            {
                bool initForeach = false;

                KeyValuePair <RoomData, uint>[] activeRooms = Yupi.GetGame().GetRoomManager().GetActiveRooms();
                try
                {
                    if (activeRooms != null && activeRooms.Any())
                    {
                        initForeach = true;
                    }
                }
                catch
                {
                    initForeach = false;
                }

                if (initForeach)
                {
                    foreach (KeyValuePair <RoomData, uint> rms in activeRooms)
                    {
                        if (rms.Key.Name.ToLower().Contains(searchQuery.ToLower()) && rooms.Count <= 50)
                        {
                            rooms.Add(rms.Key);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }

            if (rooms.Count < 50 || containsOwner || containsGroup)
            {
                DataTable dTable;

                using (IQueryAdapter dbClient = Yupi.GetDatabaseManager().GetQueryReactor())
                {
                    if (containsOwner)
                    {
                        dbClient.SetQuery(
                            "SELECT rooms_data.* FROM rooms_data LEFT OUTER JOIN users ON rooms_data.owner = users.id WHERE users.username = @query AND rooms_data.roomtype = 'private' LIMIT 50");
                        dbClient.AddParameter("query", searchQuery);
                        dTable = dbClient.GetTable();
                    }
                    else if (containsGroup)
                    {
                        dbClient.SetQuery(
                            "SELECT * FROM rooms_data JOIN groups_data ON rooms_data.id = groups_data.room_id WHERE groups_data.group_name LIKE @query AND roomtype = 'private' LIMIT 50");
                        dbClient.AddParameter("query", "%" + searchQuery + "%");
                        dTable = dbClient.GetTable();
                    }
                    else
                    {
                        dbClient.SetQuery(
                            "SELECT * FROM rooms_data WHERE caption = @query AND roomtype = 'private' LIMIT " +
                            (50 - rooms.Count));
                        dbClient.AddParameter("query", searchQuery);
                        dTable = dbClient.GetTable();
                    }
                }

                if (dTable != null)
                {
                    foreach (RoomData rData in dTable.Rows.Cast <DataRow>().Select(row => Yupi.GetGame()
                                                                                   .GetRoomManager()
                                                                                   .FetchRoomData(Convert.ToUInt32(row["id"]), row)).Where(rData => !rooms.Contains(rData)))
                    {
                        rooms.Add(rData);
                    }
                }
            }

            ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("NavigatorListingsMessageComposer"));

            message.AppendInteger(8);
            message.AppendString(originalQuery);
            message.AppendInteger(rooms.Count);

            foreach (RoomData room in rooms)
            {
                room.Serialize(message);
            }

            message.AppendBool(false);

            return(message);
        }
Example #57
0
 internal void Serialize(ServerMessage Message, bool gotPublicRoom)
 {
     if (Message == null)
     {
         return;
     }
     if (this.IsSpectator)
     {
         return;
     }
     if (!this.IsBot)
     {
         if (!this.IsBot && this.GetClient() != null && this.GetClient().GetHabbo() != null)
         {
             Guild group = CyberEnvironment.GetGame().GetGroupManager().GetGroup(this.GetClient().GetHabbo().FavouriteGroup);
             Habbo habbo = this.GetClient().GetHabbo();
             Message.AppendUInt(habbo.Id);
             Message.AppendString(habbo.Username);
             Message.AppendString(habbo.Motto);
             Message.AppendString(habbo.Look);
             Message.AppendInt32(this.VirtualId);
             Message.AppendInt32(this.X);
             Message.AppendInt32(this.Y);
             Message.AppendString(TextHandling.GetString(this.Z));
             Message.AppendInt32(0);
             Message.AppendInt32(1);
             Message.AppendString(habbo.Gender.ToLower());
             if (group != null)
             {
                 Message.AppendUInt(group.Id);
                 Message.AppendInt32(0);
                 Message.AppendString(group.Name);
             }
             else
             {
                 Message.AppendInt32(0);
                 Message.AppendInt32(0);
                 Message.AppendString("");
             }
             Message.AppendString("");
             Message.AppendInt32(habbo.AchievementPoints);
             Message.AppendBoolean(false);
         }
         return;
     }
     Message.AppendUInt(this.BotAI.BaseId);
     Message.AppendString(this.BotData.Name);
     Message.AppendString(this.BotData.Motto);
     if (this.BotData.AiType == AIType.Pet)
     {
         if (this.PetData.Type == 16u)
         {
             Message.AppendString(this.PetData.MoplaBreed.PlantData);
         }
         else
         {
             if (this.PetData.HaveSaddle == Convert.ToBoolean(2))
             {
                 Message.AppendString(string.Concat(new object[]
                 {
                     this.BotData.Look.ToLower(),
                     " 3 4 10 0 2 ",
                     this.PetData.PetHair,
                     " ",
                     this.PetData.HairDye,
                     " 3 ",
                     this.PetData.PetHair,
                     " ",
                     this.PetData.HairDye
                 }));
             }
             else
             {
                 if (this.PetData.HaveSaddle == Convert.ToBoolean(1))
                 {
                     Message.AppendString(string.Concat(new object[]
                     {
                         this.BotData.Look.ToLower(),
                         " 3 2 ",
                         this.PetData.PetHair,
                         " ",
                         this.PetData.HairDye,
                         " 3 ",
                         this.PetData.PetHair,
                         " ",
                         this.PetData.HairDye,
                         " 4 9 0"
                     }));
                 }
                 else
                 {
                     Message.AppendString(string.Concat(new object[]
                     {
                         this.BotData.Look.ToLower(),
                         " 2 2 ",
                         this.PetData.PetHair,
                         " ",
                         this.PetData.HairDye,
                         " 3 ",
                         this.PetData.PetHair,
                         " ",
                         this.PetData.HairDye
                     }));
                 }
             }
         }
     }
     else
     {
         Message.AppendString(this.BotData.Look.ToLower());
     }
     Message.AppendInt32(this.VirtualId);
     Message.AppendInt32(this.X);
     Message.AppendInt32(this.Y);
     Message.AppendString(TextHandling.GetString(this.Z));
     Message.AppendInt32(0);
     Message.AppendInt32((this.BotData.AiType == AIType.Generic) ? 4 : 2);
     if (this.BotData.AiType == AIType.Pet)
     {
         Message.AppendUInt(this.PetData.Type);
         Message.AppendUInt(this.PetData.OwnerId);
         Message.AppendString(this.PetData.OwnerName);
         Message.AppendInt32((this.PetData.Type == 16u) ? 0 : 1);
         Message.AppendBoolean(this.PetData.HaveSaddle);
         Message.AppendBoolean(this.RidingHorse);
         Message.AppendInt32(0);
         Message.AppendInt32((this.PetData.Type == 16u) ? 1 : 0);
         Message.AppendString((this.PetData.Type == 16u) ? this.PetData.MoplaBreed.GrowStatus : "");
         return;
     }
     Message.AppendString(this.BotData.Gender.ToLower());
     Message.AppendUInt(this.BotData.OwnerId);
     Message.AppendString(CyberEnvironment.GetGame().GetClientManager().GetNameById(this.BotData.OwnerId));
     Message.AppendInt32(4);
     Message.AppendShort(1);
     Message.AppendShort(2);
     Message.AppendShort(5);
     Message.AppendShort(4);
 }
Example #58
0
        public void SerializeUsers(bool IsPrivate, int mRoomId, ServerMessage fuseMessage)
        {
            if (IsPrivate)
            {
                int UsersInRoom = 0;

                if (GetRoomBots().RoomBotCounts(mRoomId) != 0)
                {
                    UsersInRoom = RoomCount(mRoomId);
                    int BotCount = GetRoomBots().RoomBotCounts(mRoomId);

                    //Add up bot and users count
                    UsersInRoom = BotCount += UsersInRoom;
                }
                else
                {
                    UsersInRoom = RoomCount(mRoomId);
                }
                fuseMessage.AppendInt32(UsersInRoom);
                foreach (GameClient Session in ClientMessageHandler.mRoomList)
                {
                    if (Session.GetHabbo().RoomId == mRoomId)
                    {
                        fuseMessage.AppendUInt32(Session.GetHabbo().ID);
                        fuseMessage.AppendString(Session.GetHabbo().Username);
                        fuseMessage.AppendString(Session.GetHabbo().Motto);
                        fuseMessage.AppendString(Session.GetHabbo().Figure);
                        fuseMessage.AppendInt32(Session.GetHabbo().UnitId);
                        fuseMessage.AppendInt32(Session.GetHabbo().X);
                        fuseMessage.AppendInt32(Session.GetHabbo().Y);
                        fuseMessage.AppendString("0.0");
                        fuseMessage.AppendInt32(2);
                        fuseMessage.AppendInt32(1);
                        fuseMessage.AppendString(Session.GetHabbo().Gender.ToString().ToLower());
                        fuseMessage.AppendInt32(-1);
                        fuseMessage.AppendInt32(-1);
                        fuseMessage.AppendInt32(-1);
                        fuseMessage.AppendString(string.Empty);
                        fuseMessage.AppendInt32(0);
                    }
                } //Do room bots
                if (GetRoomBots().RoomBotCounts(mRoomId) != 0)
                {
                    AleedaEnvironment.GetCache().GetRoomBots().LoadBots(mRoomId, fuseMessage);
                }
            }
            else
            {
                int i = 0;
                foreach (GameClient Session in ClientMessageHandler.mRoomList)
                {
                    if (Session.GetHabbo().pRoomId == mRoomId)
                    {
                        i++;
                    }
                }
                fuseMessage.AppendInt32(i);
                foreach (GameClient Session in ClientMessageHandler.mRoomList)
                {
                    if (Session.GetHabbo().pRoomId == mRoomId)
                    {
                        fuseMessage.AppendUInt32(Session.GetHabbo().ID);
                        fuseMessage.AppendString(Session.GetHabbo().Username);
                        fuseMessage.AppendString(Session.GetHabbo().Motto);
                        fuseMessage.AppendString(Session.GetHabbo().Figure);
                        fuseMessage.AppendInt32(Session.GetHabbo().UnitId);
                        fuseMessage.AppendInt32(Session.GetHabbo().X);
                        fuseMessage.AppendInt32(Session.GetHabbo().Y);
                        fuseMessage.AppendString("0.0");
                        fuseMessage.AppendInt32(2);
                        fuseMessage.AppendInt32(1);
                        fuseMessage.AppendString(Session.GetHabbo().Gender.ToString().ToLower());
                        fuseMessage.AppendInt32(-1);
                        fuseMessage.AppendInt32(-1);
                        fuseMessage.AppendInt32(-1);
                        fuseMessage.AppendString(string.Empty);
                        fuseMessage.AppendInt32(0);
                    }
                } //Do room bots
            }
        }
Example #59
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            int    guildId;
            int    num2;
            int    num3;
            string str;

            guildId = Event.PopWiredInt32();
            num2    = Event.PopWiredInt32();
            str     = Event.PopFixedString();
            num3    = Event.PopWiredInt32();
            GroupsManager guild = Groups.GetGroupById(guildId);

            if (guild != null)
            {
                ServerMessage message;
                int           memberCounter = 0;
                int           results;
                if (num3 == 0)
                {
                    if (!string.IsNullOrEmpty(str))
                    {
                        results = 0;
                        foreach (int num4 in guild.Members)
                        {
                            if (Essential.GetGame().GetClientManager().GetNameById((uint)num4).ToLower().Contains(str.ToLower()))
                            {
                                results++;
                            }
                        }
                    }
                    else
                    {
                        results = guild.Members.Count();
                    }
                    message = new ServerMessage(Outgoing.SendMembersAndPetitions);
                    message.AppendInt32(guild.Id);
                    message.AppendString(guild.Name);
                    message.AppendInt32(guild.RoomId);
                    message.AppendString(guild.Badge);
                    message.AppendInt32(results);

                    if (num2 == 0)
                    {
                        message.AppendInt32(results);
                    }
                    else
                    {
                        message.AppendInt32(results - (num2 * 14));
                    }

                    foreach (int num4 in guild.Members)
                    {
                        if (!string.IsNullOrEmpty(str))
                        {
                            if (Essential.GetGame().GetClientManager().GetNameById((uint)num4).ToLower().Contains(str.ToLower()))
                            {
                                if (memberCounter >= ((num2) * 14))
                                {
                                    if (guild.OwnerId == num4)
                                    {
                                        message.AppendInt32(0);
                                    }
                                    else
                                    {
                                        message.AppendInt32(guild.getRank(num4));
                                    }
                                    message.AppendInt32(num4);
                                    message.AppendString(Essential.GetGame().GetClientManager().GetNameById((uint)num4));
                                    using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                                        message.AppendString(dbClient.ReadString("SELECT look FROM users WHERE id=" + num4));
                                    message.AppendString("");
                                }
                                memberCounter++;
                            }
                        }

                        else
                        {
                            if (memberCounter >= (num2 * 14))
                            {
                                if (guild.OwnerId == (uint)num4)
                                {
                                    message.AppendInt32(0);
                                }
                                else
                                {
                                    message.AppendInt32(guild.getRank(num4));
                                }
                                message.AppendInt32(num4);
                                message.AppendString(Essential.GetGame().GetClientManager().GetNameById((uint)num4));
                                using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                                    message.AppendString(dbClient.ReadString("SELECT look FROM users WHERE id=" + num4));
                                message.AppendString("");
                            }
                            memberCounter++;
                        }
                    }

                    if (Session.GetHabbo().InGuild(guild.Id))
                    {
                        if (guild.UserWithRanks.Contains((int)Session.GetHabbo().Id))
                        {
                            message.AppendBoolean(true);
                        }
                        else
                        {
                            message.AppendBoolean(false);
                        }
                    }
                    else
                    {
                        message.AppendBoolean(false);
                    }
                    message.AppendInt32(14);
                    message.AppendInt32(num2);
                    message.AppendInt32(0);
                    message.AppendString(str);
                    Session.SendMessage(message);
                }
                else if (num3 == 1)
                {
                    int admins = 0;

                    foreach (int num4 in guild.Members)
                    {
                        if (guild.UserWithRanks.Contains(num4))
                        {
                            admins++;
                        }
                    }

                    if (!string.IsNullOrEmpty(str))
                    {
                        results = 0;
                        foreach (int num4 in guild.Members)
                        {
                            if ((Essential.GetGame().GetClientManager().GetNameById((uint)num4).ToLower().Contains(str.ToLower())) && ((guild.UserWithRanks.Contains(num4))))
                            {
                                results++;
                            }
                        }
                    }
                    else
                    {
                        results = admins;
                    }

                    message = new ServerMessage(Outgoing.SendMembersAndPetitions);
                    message.AppendInt32(guild.Id);
                    message.AppendString(guild.Name);
                    message.AppendInt32(guild.RoomId);
                    message.AppendString(guild.Badge);
                    message.AppendInt32(results);

                    if (num2 == 0)
                    {
                        message.AppendInt32(results);
                    }

                    else
                    {
                        message.AppendInt32(results - (num2 * 14));
                    }
                    memberCounter = 0;
                    foreach (int num4 in guild.Members)
                    {
                        if (!string.IsNullOrEmpty(str))
                        {
                            if (Essential.GetGame().GetClientManager().GetNameById((uint)num4).ToLower().Contains(str.ToLower()))
                            {
                                if (guild.UserWithRanks.Contains(num4))
                                {
                                    if (memberCounter >= ((num2) * 14))
                                    {
                                        if (guild.OwnerId == num4)
                                        {
                                            message.AppendInt32(0);
                                        }
                                        else
                                        {
                                            message.AppendInt32(guild.getRank(num4));
                                        }
                                        message.AppendInt32(num4);
                                        message.AppendString(Essential.GetGame().GetClientManager().GetNameById((uint)num4));
                                        using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                                            message.AppendString(dbClient.ReadString("SELECT look FROM users WHERE id=" + num4));
                                        message.AppendString("");
                                    }
                                }
                                memberCounter++;
                            }
                        }

                        else
                        {
                            if (memberCounter >= (num2 * 14))
                            {
                                if (guild.UserWithRanks.Contains(num4))
                                {
                                    if (guild.OwnerId == num4)
                                    {
                                        message.AppendInt32(0);
                                    }
                                    else
                                    {
                                        message.AppendInt32(guild.getRank(num4));
                                    }
                                    message.AppendInt32(num4);
                                    message.AppendString(Essential.GetGame().GetClientManager().GetNameById((uint)num4));
                                    using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                                        message.AppendString(dbClient.ReadString("SELECT look FROM users WHERE id=" + num4));
                                    message.AppendString("");
                                }
                            }
                            memberCounter++;
                        }
                    }
                    if (Session.GetHabbo().InGuild(guild.Id))
                    {
                        if (guild.UserWithRanks.Contains((int)Session.GetHabbo().Id))
                        {
                            message.AppendBoolean(true);
                        }
                        else
                        {
                            message.AppendBoolean(false);
                        }
                    }
                    else
                    {
                        message.AppendBoolean(false);
                    }
                    message.AppendInt32(14);
                    message.AppendInt32(num2);
                    message.AppendInt32(1);
                    message.AppendString(str);
                    Session.SendMessage(message);
                }

                else if (num3 == 2)
                {
                    if (!string.IsNullOrEmpty(str))
                    {
                        results = 0;
                        foreach (int num4 in guild.Petitions)
                        {
                            if (Essential.GetGame().GetClientManager().GetNameById((uint)num4).ToLower().Contains(str.ToLower()))
                            {
                                results++;
                            }
                        }
                    }

                    else
                    {
                        results = guild.Petitions.Count();
                    }

                    message = new ServerMessage(Outgoing.SendMembersAndPetitions);
                    message.AppendInt32(guild.Id);
                    message.AppendString(guild.Name);
                    message.AppendInt32(guild.RoomId);
                    message.AppendString(guild.Badge);
                    message.AppendInt32(results);
                    if (num2 == 0)
                    {
                        message.AppendInt32(results);
                    }

                    else
                    {
                        message.AppendInt32(results - (num2 * 14));
                    }
                    memberCounter = 0;
                    foreach (int num4 in guild.Petitions)
                    {
                        if (!string.IsNullOrEmpty(str))
                        {
                            if (Essential.GetGame().GetClientManager().GetNameById((uint)num4).ToLower().Contains(str.ToLower()))
                            {
                                if (memberCounter >= ((num2) * 14))
                                {
                                    message.AppendInt32(3);
                                    message.AppendInt32(num4);
                                    message.AppendString(Essential.GetGame().GetClientManager().GetNameById((uint)num4));
                                    using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                                        message.AppendString(dbClient.ReadString("SELECT look FROM users WHERE id=" + num4));
                                    message.AppendString("");
                                }
                                memberCounter++;
                            }
                        }

                        else
                        {
                            if (memberCounter >= (num2 * 14))
                            {
                                message.AppendInt32(3);
                                message.AppendInt32(num4);
                                message.AppendString(Essential.GetGame().GetClientManager().GetNameById((uint)num4));
                                using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                                    message.AppendString(dbClient.ReadString("SELECT look FROM users WHERE id=" + num4));
                                message.AppendString("");
                            }
                            memberCounter++;
                        }
                    }
                    if (guild.UserWithRanks.Contains((int)Session.GetHabbo().Id))
                    {
                        message.AppendBoolean(true);
                    }
                    else
                    {
                        message.AppendBoolean(false);
                    }
                    message.AppendInt32(14);
                    message.AppendInt32(num2);
                    message.AppendInt32(2);
                    message.AppendString(str);
                    Session.SendMessage(message);
                }
            }
        }
Example #60
0
        /// <summary>
        /// Gets the message.
        /// </summary>
        /// <param name="furniId">The furni identifier.</param>
        /// <param name="pet1">The pet1.</param>
        /// <param name="pet2">The pet2.</param>
        /// <returns>ServerMessage.</returns>
        internal static ServerMessage GetMessage(uint furniId, Pet pet1, Pet pet2)
        {
            var message = new ServerMessage(LibraryParser.OutgoingRequest("PetBreedMessageComposer"));

            message.AppendInteger(furniId);
            message.AppendInteger(pet1.PetId);
            message.AppendString(pet1.Name);
            message.AppendInteger(pet1.Level);
            message.AppendString(pet1.Look);
            message.AppendString(pet1.OwnerName);
            message.AppendInteger(pet2.PetId);
            message.AppendString(pet2.Name);
            message.AppendInteger(pet2.Level);
            message.AppendString(pet2.Look);
            message.AppendString(pet2.OwnerName);
            message.AppendInteger(4); // 4 razas (ÉPICO, RARO, NADA COMÚN, COMÚN)

            message.AppendInteger(1);
            switch (pet1.Type)
            {
            case 3:
                message.AppendInteger(TerrierEpicRace.Length);
                foreach (int value in TerrierEpicRace)
                {
                    message.AppendInteger(value);
                }
                break;

            case 4:
                message.AppendInteger(BearEpicRace.Length);
                foreach (int value in BearEpicRace)
                {
                    message.AppendInteger(value);
                }
                break;
            }

            message.AppendInteger(2);
            switch (pet1.Type)
            {
            case 3:
                message.AppendInteger(TerrierRareRace.Length);
                foreach (int value in TerrierRareRace)
                {
                    message.AppendInteger(value);
                }
                break;

            case 4:
                message.AppendInteger(BearRareRace.Length);
                foreach (int value in BearRareRace)
                {
                    message.AppendInteger(value);
                }
                break;
            }

            message.AppendInteger(3);
            switch (pet1.Type)
            {
            case 3:
                message.AppendInteger(TerrierNoRareRace.Length);
                foreach (int value in TerrierNoRareRace)
                {
                    message.AppendInteger(value);
                }
                break;

            case 4:
                message.AppendInteger(BearNoRareRace.Length);
                foreach (int value in BearNoRareRace)
                {
                    message.AppendInteger(value);
                }
                break;
            }

            message.AppendInteger(94);
            switch (pet1.Type)
            {
            case 3:
                message.AppendInteger(TerrierNormalRace.Length);
                foreach (int value in TerrierNormalRace)
                {
                    message.AppendInteger(value);
                }
                break;

            case 4:
                message.AppendInteger(BearNormalRace.Length);
                foreach (int value in BearNormalRace)
                {
                    message.AppendInteger(value);
                }
                break;
            }

            message.AppendInteger((pet1.Type == 3) ? 25 : 24);

            return(message);
        }