public override bool Execute(GameClient session, string[] pms) { if (!session.GetHabbo().Look.Contains("hd-")) return true; string head = session.GetHabbo().Look.Split('.').FirstOrDefault(element => element.StartsWith("hd-")); string color = "1"; if (!string.IsNullOrEmpty(head)) { color = head.Split('-')[2]; session.GetHabbo().Look = session.GetHabbo().Look.Replace('.' + head, string.Empty); } session.GetHabbo().Look += ".hd-99999-" + color; using (IQueryAdapter dbClient = Yupi.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery( "UPDATE users SET look = @look WHERE id = " + session.GetHabbo().Id); dbClient.AddParameter("look", session.GetHabbo().Look); dbClient.RunQuery(); } Room room = session.GetHabbo().CurrentRoom; RoomUser user = room.GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id); if (user == null) return true; ServerMessage roomUpdate = new ServerMessage(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer")); roomUpdate.AppendInteger(user.VirtualId); roomUpdate.AppendString(session.GetHabbo().Look); roomUpdate.AppendString(session.GetHabbo().Gender.ToLower()); roomUpdate.AppendString(session.GetHabbo().Motto); roomUpdate.AppendInteger(session.GetHabbo().AchievementPoints); room.SendMessage(roomUpdate); return true; }
internal static void GenerateMessage(Pet pet, ServerMessage message, bool levelAfterName = false) { message.AppendInteger(pet.PetId); message.AppendString(pet.Name); if (levelAfterName) message.AppendInteger(pet.Level); message.AppendInteger(pet.RaceId); message.AppendInteger(pet.Race); message.AppendString(pet.Type == "pet_monster" ? "ffffff" : pet.Color); message.AppendInteger(pet.Type == "pet_monster" ? 0u : pet.RaceId); if (pet.Type == "pet_monster" && pet.MoplaBreed != null) { string[] array = pet.MoplaBreed.PlantData.Substring(12).Split(' '); string[] array2 = array; foreach (string s in array2) message.AppendInteger(int.Parse(s)); message.AppendInteger(pet.MoplaBreed.GrowingStatus); return; } message.AppendInteger(0); message.AppendInteger(0); }
internal static void MatchingPollResults(GameClient client, Poll poll) { Room room = client.GetHabbo().CurrentRoom; if (poll == null || poll.Type != PollType.Matching || room == null) return; HashSet<RoomUser> users = room.GetRoomUserManager().GetRoomUsers(); for (int i = 0; i < 10; i++) { Thread.Sleep(1000); foreach (RoomUser roomUser in users) { Habbo user = Yupi.GetHabboById(roomUser.UserId); if (user.AnsweredPool) { ServerMessage result = new ServerMessage(LibraryParser.OutgoingRequest("MatchingPollResultMessageComposer")); result.AppendInteger(poll.Id); result.AppendInteger(2); result.AppendString("0"); result.AppendInteger(poll.AnswersNegative); result.AppendString("1"); result.AppendInteger(poll.AnswersPositive); client.SendMessage(result); } } } foreach (RoomUser roomUser in users) Yupi.GetHabboById(roomUser.UserId).AnsweredPool = false; }
/// <summary> /// Composes the specified session. /// </summary> /// <param name="session">The session.</param> /// <param name="talent">The Talent.</param> /// <returns>ServerMessage.</returns> internal static ServerMessage Compose(GameClient session, Talent talent) { ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("TalentLevelUpMessageComposer")); serverMessage.AppendString(talent.Type); serverMessage.AppendInteger(talent.Level); serverMessage.AppendInteger(0); if (talent.Type == "citizenship" && talent.Level == 4) { serverMessage.AppendInteger(2); serverMessage.AppendString("HABBO_CLUB_VIP_7_DAYS"); serverMessage.AppendInteger(7); serverMessage.AppendString(talent.Prize); serverMessage.AppendInteger(0); } else { serverMessage.AppendInteger(1); serverMessage.AppendString(talent.Prize); serverMessage.AppendInteger(0); } return serverMessage; }
internal void Serialize(ref ServerMessage message) { Habbo habbo = Yupi.GetHabboById(UserId); message.AppendInteger(Yupi.DifferenceInMilliSeconds(TimeStamp, DateTime.Now)); message.AppendInteger(UserId); message.AppendString(habbo == null ? "*User not found*" : habbo.UserName); message.AppendString(Message); message.AppendBool(GlobalMessage); }
public override bool Execute(GameClient client, string[] pms) { ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("SuperNotificationMessageComposer")); message.AppendString("Yupi"); message.AppendInteger(4); message.AppendString("title"); message.AppendString("Yupi"); message.AppendString("message"); StringBuilder info = new StringBuilder(); info.Append("<h5><b>Yupi - Based on Azure Emulator</b><h5></br></br>"); info.Append("<br />"); info.AppendFormat( "<b><br />Developed by:</b> <br />Kessiler Rodrigues (Kessiler)<br />Claudio Santoro (sant0ro/bi0s) <br />Rafael Oliveira (iPlezier) <br /><br /> "); info.AppendFormat( "<b>Thanks to:</b> <br />Jamal, Mike Santifort, Martinmine, Rockster, The old Azure Team, Bruna F., and to all people that uses Yupi.<br /> <br /> "); info.AppendFormat("<b>Warning:</b><br />1. This emulator was planned to be used for ManiaHotel (maniahotel.com.br) <br />2. Please don't sell this emulator or earn money with it<br />3. All rights reserved to Sulake Corporation Oy<br />4. All Emulator rights for Mania Dev<br />"); message.AppendString(info.ToString()); message.AppendString("linkUrl"); message.AppendString("event:"); message.AppendString("linkTitle"); message.AppendString("ok"); client.SendMessage(message); return true; }
public override bool Execute(GameClient session, string[] pms) { using (IQueryAdapter adapter = Yupi.GetDatabaseManager().GetQueryReactor()) { FurnitureDataManager.SetCache(); Yupi.GetGame().GetItemManager().LoadItems(adapter); Yupi.GetGame().GetCatalog().Initialize(adapter); Yupi.GetGame().ReloadItems(); FurnitureDataManager.Clear(); } Yupi.GetGame() .GetClientManager() .QueueBroadcaseMessage( new ServerMessage(LibraryParser.OutgoingRequest("PublishShopMessageComposer"))); ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("SuperNotificationMessageComposer")); message.AppendString("ninja_promo_LTD"); message.AppendInteger(4); message.AppendString("title"); message.AppendString("Novo Raro Limitado!"); message.AppendString("message"); message.AppendString( "<i><h1>Como Assim?</h1>, Um Novo Raro Limitado foi Adicionado na Loja!<br> Descubra como ele é Abrindo a Loja!</br>"); message.AppendString("linkUrl"); message.AppendString("event:catalog/open/ultd_furni"); message.AppendString("linkTitle"); message.AppendString("Ver o Raro"); Yupi.GetGame().GetClientManager().QueueBroadcaseMessage(message); return true; }
/// <summary> /// Composes the specified session. /// </summary> /// <param name="group"></param> /// <param name="groupForum"></param> /// <param name="requesterId"></param> /// <returns>ServerMessage.</returns> internal static ServerMessage Compose(Group group, GroupForum groupForum, uint requesterId) { string string1 = string.Empty, string2 = string.Empty, string3 = string.Empty, string4 = string.Empty; ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("GroupForumDataMessageComposer")); message.AppendInteger(group.Id); message.AppendString(group.Name); message.AppendString(group.Description); message.AppendString(group.Badge); message.AppendInteger(0); message.AppendInteger(0); message.AppendInteger(groupForum.ForumMessagesCount); message.AppendInteger(0); message.AppendInteger(0); message.AppendInteger(groupForum.ForumLastPosterId); message.AppendString(groupForum.ForumLastPosterName); message.AppendInteger(groupForum.ForumLastPostTime); message.AppendInteger(groupForum.WhoCanRead); message.AppendInteger(groupForum.WhoCanPost); message.AppendInteger(groupForum.WhoCanThread); message.AppendInteger(groupForum.WhoCanMod); if (groupForum.WhoCanRead == 1 && !group.Members.ContainsKey(requesterId)) string1 = "not_member"; if (groupForum.WhoCanRead == 2 && !group.Admins.ContainsKey(requesterId)) string1 = "not_admin"; if (groupForum.WhoCanPost == 1 && !group.Members.ContainsKey(requesterId)) string2 = "not_member"; if (groupForum.WhoCanPost == 2 && !group.Admins.ContainsKey(requesterId)) string2 = "not_admin"; if (groupForum.WhoCanPost == 3 && requesterId != group.CreatorId) string2 = "not_owner"; if (groupForum.WhoCanThread == 1 && !group.Members.ContainsKey(requesterId)) string3 = "not_member"; if (groupForum.WhoCanThread == 2 && !group.Admins.ContainsKey(requesterId)) string3 = "not_admin"; if (groupForum.WhoCanThread == 3 && requesterId != group.CreatorId) string3 = "not_owner"; if (groupForum.WhoCanMod == 2 && !group.Admins.ContainsKey(requesterId)) string4 = "not_admin"; if (groupForum.WhoCanMod == 3 && requesterId != group.CreatorId) string4 = "not_owner"; message.AppendString(string1); message.AppendString(string2); message.AppendString(string3); message.AppendString(string4); message.AppendString(string.Empty); message.AppendBool(requesterId == group.CreatorId); message.AppendBool(true); return message; }
/// <summary> /// Searializes the specified reply. /// </summary> /// <param name="reply">The reply.</param> internal void Searialize(ServerMessage reply) { reply.AppendInteger(UserId); reply.AppendString(UserName); reply.AppendString(Motto); reply.AppendBool(Yupi.GetGame().GetClientManager().GetClient(UserId) != null); reply.AppendBool(false); reply.AppendString(string.Empty); reply.AppendInteger(0); reply.AppendString(Look); reply.AppendString(LastOnline); }
/// <summary> /// Serializes the promotions result list flatcats. /// </summary> /// <param name="flatCatId">The flat cat identifier.</param> /// <param name="direct">if set to <c>true</c> [direct].</param> /// <param name="message">The message.</param> internal static void SerializePromotionsResultListFlatcats(int flatCatId, bool direct, ServerMessage message) { PublicCategory flatCat = Yupi.GetGame().GetNavigator().GetFlatCat(flatCatId); message.AppendString("new_ads"); message.AppendString(flatCat.Caption); message.AppendInteger(0); message.AppendBool(true); message.AppendInteger(-1); KeyValuePair<RoomData, uint>[] rooms = Yupi.GetGame().GetRoomManager().GetEventRooms(); Yupi.GetGame().GetNavigator().SerializeNavigatorPopularRoomsNews(ref message, rooms, flatCatId, direct); }
internal static void MatchingPollAnswer(GameClient client, Poll poll) { if (poll == null || poll.Type != PollType.Matching) return; ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("MatchingPollMessageComposer")); message.AppendString("MATCHING_POLL"); message.AppendInteger(poll.Id); message.AppendInteger(poll.Id); message.AppendInteger(15580); message.AppendInteger(poll.Id); message.AppendInteger(29); message.AppendInteger(5); message.AppendString(poll.PollName); client.GetHabbo().CurrentRoom.SendMessage(message); }
/// <summary> /// Serializes the search result list flatcats. /// </summary> /// <param name="flatCatId">The flat cat identifier.</param> /// <param name="direct">if set to <c>true</c> [direct].</param> /// <param name="message">The message.</param> internal static void SerializeSearchResultListFlatcats(int flatCatId, bool direct, ServerMessage message) { PublicCategory flatCat = Yupi.GetGame().GetNavigator().GetFlatCat(flatCatId); if (flatCat == null) return; message.AppendString($"category__{flatCat.Caption}"); message.AppendString(flatCat.Caption); message.AppendInteger(0); message.AppendBool(true); message.AppendInteger(-1); KeyValuePair<RoomData, uint>[] rooms = Yupi.GetGame().GetRoomManager().GetActiveRooms(); Yupi.GetGame().GetNavigator().SerializeNavigatorPopularRoomsNews(ref message, rooms, flatCatId, direct); }
internal ServerMessage GetServerMessage(ServerMessage message, RoomItem item) { int cracks = 0; int cracksMax = MaxCracks(item.GetBaseItem().Name); if (Yupi.IsNum(item.ExtraData)) cracks = Convert.ToInt16(item.ExtraData); string state = "0"; if (cracks >= cracksMax) state = "14"; else if (cracks >= cracksMax*6/7) state = "12"; else if (cracks >= cracksMax*5/7) state = "10"; else if (cracks >= cracksMax*4/7) state = "8"; else if (cracks >= cracksMax*3/7) state = "6"; else if (cracks >= cracksMax*2/7) state = "4"; else if (cracks >= cracksMax*1/7) state = "2"; message.AppendInteger(7); message.AppendString(state); //state (0-7) message.AppendInteger(cracks); //actual message.AppendInteger(cracksMax); //max return message; }
internal ServerMessage AppendEntrySubmitMessage(ServerMessage message, int status, Room room = null) { message.Init(LibraryParser.OutgoingRequest("CompetitionEntrySubmitResultMessageComposer")); message.AppendInteger(Id); message.AppendString(Name); message.AppendInteger(status); // 0 : roomSent - 1 : send room - 2 : confirm register - 3 : neededFurnis - 4 : doorClosed - 6 : acceptRules if (status != 3) { message.AppendInteger(0); message.AppendInteger(0); } else { message.StartArray(); foreach (string furni in RequiredFurnis) { message.AppendString(furni); message.SaveArray(); } message.EndArray(); if (room == null) message.AppendInteger(0); else { message.StartArray(); foreach (string furni in RequiredFurnis) { if (!room.GetRoomItemHandler().HasFurniByItemName(furni)) { message.AppendString(furni); message.SaveArray(); } } message.EndArray(); } } return message; }
/// <summary> /// Composes the specified songs. /// </summary> /// <param name="songs">The songs.</param> /// <returns>ServerMessage.</returns> public static ServerMessage Compose(List<SongData> songs) { ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("SongsMessageComposer")); serverMessage.AppendInteger(songs.Count); foreach (SongData current in songs) { serverMessage.AppendInteger(current.Id); serverMessage.AppendString(current.CodeName); serverMessage.AppendString(current.Name); serverMessage.AppendString(current.Data); serverMessage.AppendInteger(current.LengthMiliseconds); serverMessage.AppendString(current.Artist); } return serverMessage; }
/// <summary> /// Composes the specified session. /// </summary> /// <param name="message"></param> /// <param name="group"></param> /// <param name="groupForum"></param> /// <returns>ServerMessage.</returns> internal static ServerMessage Compose(ServerMessage message, Group group, GroupForum groupForum) { message.AppendInteger(group.Id); message.AppendString(group.Name); message.AppendString(string.Empty); message.AppendString(group.Badge); message.AppendInteger(0); message.AppendInteger((int)Math.Round(groupForum.ForumScore)); message.AppendInteger(groupForum.ForumMessagesCount); message.AppendInteger(0); message.AppendInteger(0); message.AppendInteger(groupForum.ForumLastPosterId); message.AppendString(groupForum.ForumLastPosterName); message.AppendInteger(groupForum.ForumLastPostTime); return message; }
public override bool Execute(GameClient session, string[] pms) { string str = string.Join(" ", pms); ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("BroadcastNotifMessageComposer")); message.AppendString($"{str}\r\n- {session.GetHabbo().UserName}"); Yupi.GetGame().GetClientManager().QueueBroadcaseMessage(message); return true; }
/// <summary> /// Composes the index. /// </summary> /// <param name="rank">The rank.</param> /// <param name="type">The type.</param> /// <returns>ServerMessage.</returns> internal static ServerMessage ComposeIndex(uint rank, string type) { IEnumerable<CatalogPage> pages = Yupi.GetGame().GetCatalogManager().Categories.Values.OfType<CatalogPage>().ToList(); IOrderedEnumerable<CatalogPage> sortedPages = pages.Where(x => x.ParentId == -2 && x.MinRank <= rank).OrderBy(x => x.OrderNum); if (type == "NORMAL") sortedPages = pages.Where(x => x.ParentId == -1 && x.MinRank <= rank).OrderBy(x => x.OrderNum); ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("CatalogueIndexMessageComposer")); message.AppendBool(true); message.AppendInteger(0); message.AppendInteger(-1); message.AppendString("root"); message.AppendString(string.Empty); message.AppendInteger(0); message.AppendInteger(sortedPages.Count()); foreach (CatalogPage cat in sortedPages) { message.AppendBool(cat.Visible); message.AppendInteger(cat.IconImage); message.AppendInteger(cat.PageId); message.AppendString(cat.CodeName); message.AppendString(cat.Caption); message.AppendInteger(cat.FlatOffers.Count); foreach (uint i in cat.FlatOffers.Keys) message.AppendInteger(i); IOrderedEnumerable<CatalogPage> sortedSubPages = pages.Where(x => x.ParentId == cat.PageId && x.MinRank <= rank).OrderBy(x => x.OrderNum); message.AppendInteger(sortedSubPages.Count()); foreach (CatalogPage subCat in sortedSubPages) { message.AppendBool(subCat.Visible); message.AppendInteger(subCat.IconImage); message.AppendInteger(subCat.PageId); message.AppendString(subCat.CodeName); message.AppendString(subCat.Caption); message.AppendInteger(subCat.FlatOffers.Count); foreach (uint i2 in subCat.FlatOffers.Keys) message.AppendInteger(i2); message.AppendInteger(0); } } message.AppendBool(false); message.AppendString(type); return message; }
/// <summary> /// Composes the specified achievement. /// </summary> /// <param name="achievement">The achievement.</param> /// <param name="level">The level.</param> /// <param name="pointReward">The point reward.</param> /// <param name="pixelReward">The pixel reward.</param> /// <returns>ServerMessage.</returns> internal static ServerMessage Compose(Achievement achievement, uint level, uint pointReward, uint pixelReward) { ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("UnlockAchievementMessageComposer")); serverMessage.AppendInteger(achievement.Id); serverMessage.AppendInteger(level); serverMessage.AppendInteger(144); serverMessage.AppendString($"{achievement.GroupName}{level}"); serverMessage.AppendInteger(pointReward); serverMessage.AppendInteger(pixelReward); serverMessage.AppendInteger(0); serverMessage.AppendInteger(10); serverMessage.AppendInteger(21); serverMessage.AppendString(level > 1 ? $"{achievement.GroupName}{level - 1}" : string.Empty); serverMessage.AppendString(achievement.Category); serverMessage.AppendBool(true); return serverMessage; }
/// <summary> /// Serializes the specified message. /// </summary> /// <param name="message">The message.</param> /// <param name="questionNumber">The question number.</param> public void Serialize(ServerMessage message, int questionNumber) { message.AppendInteger(Index); message.AppendInteger(questionNumber); message.AppendInteger((int) AType); message.AppendString(Question); if (AType != PollAnswerType.Selection && AType != PollAnswerType.RadioSelection) return; message.AppendInteger(1); message.AppendInteger(Answers.Count); foreach (string current in Answers) { message.AppendString(current); message.AppendString(current); } }
/// <summary> /// Composes the specified achievement. /// </summary> /// <param name="achievement">The achievement.</param> /// <param name="targetLevel">The target level.</param> /// <param name="targetLevelData">The target level data.</param> /// <param name="totalLevels">The total levels.</param> /// <param name="userData">The user data.</param> /// <returns>ServerMessage.</returns> internal static ServerMessage Compose(Achievement achievement, uint targetLevel, AchievementLevel targetLevelData, uint totalLevels, UserAchievement userData) { ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("AchievementProgressMessageComposer")); serverMessage.AppendInteger(achievement.Id); serverMessage.AppendInteger(targetLevel); serverMessage.AppendString($"{achievement.GroupName}{targetLevel}"); serverMessage.AppendInteger(targetLevelData.Requirement); serverMessage.AppendInteger(targetLevelData.Requirement); serverMessage.AppendInteger(targetLevelData.RewardPixels); serverMessage.AppendInteger(0); serverMessage.AppendInteger(userData.Progress); serverMessage.AppendBool(userData.Level >= totalLevels); serverMessage.AppendString(achievement.Category); serverMessage.AppendString(string.Empty); serverMessage.AppendInteger(totalLevels); serverMessage.AppendInteger(0); return serverMessage; }
public override bool Execute(GameClient session, string[] pms) { string msg = string.Join(" ", pms); ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("SuperNotificationMessageComposer")); message.AppendString("staffcloud"); message.AppendInteger(2); message.AppendString("title"); message.AppendString("Staff Internal Alert"); message.AppendString("message"); message.AppendString( $"{msg}\r\n- <i>Sender: {session.GetHabbo().UserName}</i>"); Yupi.GetGame().GetClientManager().StaffAlert(message); Yupi.GetGame() .GetModerationTool() .LogStaffEntry(session.GetHabbo().UserName, string.Empty, "StaffAlert", $"Staff alert [{msg}]"); return true; }
/// <summary> /// Composes the specified session. /// </summary> /// <param name="session">The session.</param> /// <param name="achievements">The achievements.</param> /// <returns>ServerMessage.</returns> internal static ServerMessage Compose(GameClient session, List<Achievement> achievements) { ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("AchievementListMessageComposer")); serverMessage.AppendInteger(achievements.Count); foreach (Achievement achievement in achievements) { UserAchievement achievementData = session.GetHabbo().GetAchievementData(achievement.GroupName); uint i = achievementData?.Level + 1 ?? 1; uint count = (uint) achievement.Levels.Count; if (i > count) i = count; AchievementLevel achievementLevel = achievement.Levels[i]; AchievementLevel oldLevel = achievement.Levels.ContainsKey(i - 1) ? achievement.Levels[i - 1] : achievementLevel; serverMessage.AppendInteger(achievement.Id); serverMessage.AppendInteger(i); serverMessage.AppendString($"{achievement.GroupName}{i}"); serverMessage.AppendInteger(oldLevel.Requirement); serverMessage.AppendInteger(achievementLevel.Requirement); serverMessage.AppendInteger(achievementLevel.RewardPoints); serverMessage.AppendInteger(0); serverMessage.AppendInteger(achievementData?.Progress ?? 0); serverMessage.AppendBool(!(achievementData == null || achievementData.Level < count)); serverMessage.AppendString(achievement.Category); serverMessage.AppendString(string.Empty); serverMessage.AppendInteger(count); serverMessage.AppendInteger(0); } serverMessage.AppendString(string.Empty); return serverMessage; }
/// <summary> /// Composes the specified session. /// </summary> /// <param name="session">The session.</param> /// <param name="quest">The quest.</param> /// <returns>ServerMessage.</returns> internal static ServerMessage Compose(GameClient session, Quest quest) { var amountOfQuestsInCategory = Yupi.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(quest.Category); var i = quest == null ? amountOfQuestsInCategory : quest.Number; var i2 = quest == null ? 0 : session.GetHabbo().GetQuestProgress(quest.Id); var serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("QuestCompletedMessageComposer")); serverMessage.AppendString(quest.Category); serverMessage.AppendInteger(i); serverMessage.AppendInteger(quest.Name.Contains("xmas2012") ? 1 : amountOfQuestsInCategory); serverMessage.AppendInteger(quest == null ? 3 : quest.RewardType); serverMessage.AppendInteger(quest == null ? 0 : quest.Id); serverMessage.AppendBool(quest != null && session.GetHabbo().CurrentQuestId == quest.Id); serverMessage.AppendString(quest == null ? string.Empty : quest.ActionName); serverMessage.AppendString(quest == null ? string.Empty : quest.DataBit); serverMessage.AppendInteger(quest == null ? 0 : quest.Reward); serverMessage.AppendString(quest == null ? string.Empty : quest.Name); serverMessage.AppendInteger(i2); serverMessage.AppendInteger(quest == null ? 0u : quest.GoalData); serverMessage.AppendInteger(quest == null ? 0 : quest.TimeUnlock); serverMessage.AppendString(""); serverMessage.AppendString(""); serverMessage.AppendBool(true); serverMessage.AppendBool(true); return serverMessage; }
public override bool Execute(GameClient session, string[] pms) { Room room = session.GetHabbo().CurrentRoom; RoomUser user = room.GetRoomUserManager().GetRoomUserByHabbo(pms[0]); if (user == null) { session.SendWhisper(Yupi.GetLanguage().GetVar("user_not_found")); return true; } string gender = user.GetClient().GetHabbo().Gender; string look = user.GetClient().GetHabbo().Look; session.GetHabbo().Gender = gender; session.GetHabbo().Look = look; using (IQueryAdapter adapter = Yupi.GetDatabaseManager().GetQueryReactor()) { adapter.SetQuery( "UPDATE users SET gender = @gender, look = @look WHERE id = " + session.GetHabbo().Id); adapter.AddParameter("gender", gender); adapter.AddParameter("look", look); adapter.RunQuery(); } RoomUser myUser = room.GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().UserName); if (myUser == null) return true; ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer")); message.AppendInteger(myUser.VirtualId); message.AppendString(session.GetHabbo().Look); message.AppendString(session.GetHabbo().Gender.ToLower()); message.AppendString(session.GetHabbo().Motto); message.AppendInteger(session.GetHabbo().AchievementPoints); room.SendMessage(message.GetReversedBytes()); return true; }
public override void OnUserWalk(GameClient session, RoomItem item, RoomUser user) { if (item == null || user == null) return; string[] data = item.ExtraData.Split(Convert.ToChar(9)); if (item.ExtraData == "" || data.Length < 4) return; ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("InternalLinkMessageComposer")); message.AppendString(data[3]); session.SendMessage(message); }
/// <summary> /// Generates the extra data. /// </summary> /// <param name="item">The item.</param> /// <param name="message">The message.</param> /// <returns>ServerMessage.</returns> internal ServerMessage GenerateExtraData(RoomItem item, ServerMessage message) { message.AppendInteger(6); message.AppendString(item.ExtraData); //Ouvert/fermé if (item.GetBaseItem().Name.StartsWith("highscore_classic")) message.AppendInteger(2); else if (item.GetBaseItem().Name.StartsWith("highscore_mostwin")) message.AppendInteger(1); else if (item.GetBaseItem().Name.StartsWith("highscore_perteam")) message.AppendInteger(0); message.AppendInteger(0); //Time : ["alltime", "daily", "weekly", "monthly"] message.AppendInteger(Lines.Count); //Count foreach (KeyValuePair<int, HighScoreLine> line in Lines) { message.AppendInteger(line.Value.Score); message.AppendInteger(1); message.AppendString(line.Value.Username); } return message; }
public override bool Execute(GameClient session, string[] pms) { ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("SuperNotificationMessageComposer")); message.AppendString("events"); message.AppendInteger(4); message.AppendString("title"); message.AppendString("Temos um novo Evento"); message.AppendString("message"); message.AppendString( "Tem um novo evento acontecendo agora mesmo!\n\nO evento está sendo feito por: <b>" + session.GetHabbo().UserName + "</b>\n\nCorra para participar antes que o quarto seja fechado! Clique em " + "<i>Ir para o Evento</i>\n\nE o " + "evento vai ser:\n\n<b>" + string.Join(" ", pms) + "</b>\n\nEstamos esperando você lá em!"); message.AppendString("linkUrl"); message.AppendString("event:navigator/goto/" + session.GetHabbo().CurrentRoomId); message.AppendString("linkTitle"); message.AppendString("Ir para o Evento"); /*foreach (var client in Yupi.GetGame().GetClientManager().Clients.Values) { if (client == null) continue; if (session.GetHabbo().Id == client.GetHabbo().Id) { client.SendWhisper("O Alerta de Evento foi Enviado com Sucesso", true); continue; } if (client.GetHabbo().DisableEventAlert == false) client.SendMessage(message); //Thread.Sleep(10); }*/ Yupi.GetGame().GetClientManager().QueueBroadcaseMessage(message); return true; }
public override bool Execute(GameClient session, string[] pms) { Room room = session.GetHabbo().CurrentRoom; string message = string.Join(" ", pms); foreach (GameClient client in Yupi.GetGame().GetClientManager().Clients.Values) { ServerMessage serverMessage = new ServerMessage(); serverMessage.Init(LibraryParser.OutgoingRequest("WhisperMessageComposer")); serverMessage.AppendInteger(room.RoomId); serverMessage.AppendString(message); serverMessage.AppendInteger(0); serverMessage.AppendInteger(36); serverMessage.AppendInteger(0); serverMessage.AppendInteger(-1); client.SendMessage(serverMessage); } return true; }
/// <summary> /// Loads the achievements. /// </summary> /// <param name="dbClient">The database client.</param> internal void LoadAchievements(IQueryAdapter dbClient) { Achievements.Clear(); AchievementLevelFactory.GetAchievementLevels(out Achievements, dbClient); AchievementDataCached = new ServerMessage(LibraryParser.OutgoingRequest("SendAchievementsRequirementsMessageComposer")); AchievementDataCached.AppendInteger(Achievements.Count); foreach (Achievement ach in Achievements.Values) { AchievementDataCached.AppendString(ach.GroupName.Replace("ACH_", string.Empty)); AchievementDataCached.AppendInteger(ach.Levels.Count); for (uint i = 1; i < ach.Levels.Count + 1; i++) { AchievementDataCached.AppendInteger(i); AchievementDataCached.AppendInteger(ach.Levels[i].Requirement); } } AchievementDataCached.AppendInteger(0); }