public static ServerMessage Compose(uint RoomId, string Name) { ServerMessage Message = new ServerMessage(OpcodesOut.ROOM_CREATE_RESULT); Message.AppendUInt32(RoomId); Message.AppendStringWithBreak(Name); return Message; }
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; }
/// <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); }
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; }
internal static ServerMessage SerializeTopic(HelpTopic Topic) { ServerMessage Top = new ServerMessage(520); Top.AppendUInt(Topic.TopicId); Top.AppendStringWithBreak(Topic.Body); return Top; }
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; }
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; }
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; }
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; }
public static ServerMessage Compose(string MessageText) { ServerMessage Message = new ServerMessage(OpcodesOut.MESSAGE_OF_THE_DAY); Message.AppendBoolean(true); Message.AppendStringWithBreak(MessageText); return Message; }
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(); }
public static ServerMessage Compose(int Volume, bool UnknownConfigValue1) { ServerMessage Message = new ServerMessage(OpcodesOut.CLIENT_CONFIG); Message.AppendInt32(Volume); Message.AppendBoolean(UnknownConfigValue1); return Message; }
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; }
public static ServerMessage Compose(Item Item) { ServerMessage Message = new ServerMessage(OpcodesOut.STICKY_DATA); Message.AppendStringWithBreak(Item.Id.ToString()); Message.AppendStringWithBreak(Item.Flags); return Message; }
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; }
internal void Serialize(ref ServerMessage message) { foreach (ChatMessage chatMessage in listOfMessages) { chatMessage.Serialize(ref message); } }
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; }
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); } } } } } }
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; } } } }
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); * } */ } }
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); } } } } } } } } }
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); } } } }
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(); }
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); }
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); }
/// <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); }
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 { } }
/// <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); }
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); } } }
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); } }
public static ServerMessage Compose() { ServerMessage message = new ServerMessage(ItemcodesIn.UNKNOW2); return(message); }
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); } }
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); } } } } } }
/// <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); }
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); } }
/// <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); }
/// <summary> /// Loads the new public rooms. /// </summary> public void LoadNewPublicRooms() { NewPublicRooms = SerializeNewPublicRooms(); NewStaffPicks = SerializeNewStaffPicks(); }
/// <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); }
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); }
/// <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); }
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); }
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 } }
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); } } }
/// <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); }