internal ServerMessage ForumDataMessage(uint RequesterId) { ServerMessage Message = new ServerMessage(Outgoing.GroupForumDataMessageComposer); Message.AppendUInt(this.Id); Message.AppendString(this.Name);//nombre del foro Message.AppendString(this.Description); Message.AppendString(this.Badge); Message.AppendInt32(0);// nosé Message.AppendInt32(0); Message.AppendUInt(this.ForumMessagesCount);//Mensajes Message.AppendInt32(0);//Mensajes no leídos Message.AppendInt32(0);//mensajes? Message.AppendUInt(this.ForumLastPosterId);//Id de quien publicó el último mensaje Message.AppendString(this.ForumLastPosterName);//Quién publicó eL último mensaje. Message.AppendInt32(this.ForumLastPostTime);//hace cuantos segundos se publicó Message.AppendInt32(0); Message.AppendInt32(1); Message.AppendInt32(1); Message.AppendInt32(2); Message.AppendString(""); // (si no está vacío: Acceso denegado para ver el foro) Message.AppendString((this.Members.ContainsKey(RequesterId) ? "" : "not_member")); Message.AppendString((this.Members.ContainsKey(RequesterId) ? "" : "not_member")); Message.AppendString((this.Admins.ContainsKey(RequesterId) ? "" : "not_admin")); Message.AppendString(""); // Message.AppendBoolean(false); Message.AppendBoolean(false); return Message; }
internal Trade(uint UserOneId, uint UserTwoId, uint RoomId) { this.oneId = UserOneId; this.twoId = UserTwoId; this.Users = new TradeUser[2]; this.Users[0] = new TradeUser(UserOneId, RoomId); this.Users[1] = new TradeUser(UserTwoId, RoomId); this.TradeStage = 1; this.RoomId = RoomId; TradeUser[] users = this.Users; for (int i = 0; i < users.Length; i++) { TradeUser tradeUser = users[i]; if (!tradeUser.GetRoomUser().Statusses.ContainsKey("trd")) { tradeUser.GetRoomUser().AddStatus("trd", ""); tradeUser.GetRoomUser().UpdateNeeded = true; } } ServerMessage serverMessage = new ServerMessage(Outgoing.TradeStartMessageComposer); serverMessage.AppendUInt(UserOneId); serverMessage.AppendInt32(1); serverMessage.AppendUInt(UserTwoId); serverMessage.AppendInt32(1); this.SendMessageToUsers(serverMessage); }
internal static ServerMessage Compose(GameClient Session, Quest Quest) { int amountOfQuestsInCategory = MercuryEnvironment.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(Quest.Category); int i = (Quest == null) ? amountOfQuestsInCategory : Quest.Number; int i2 = (Quest == null) ? 0 : Session.GetHabbo().GetQuestProgress(Quest.Id); ServerMessage serverMessage = new ServerMessage(Outgoing.QuestCompletedMessageComposer); serverMessage.AppendString(Quest.Category); serverMessage.AppendInt32(i); serverMessage.AppendInt32(Quest.Name.Contains("xmas2012") ? 1 : amountOfQuestsInCategory); serverMessage.AppendInt32((Quest == null) ? 3 : Quest.RewardType); serverMessage.AppendUInt((Quest == null) ? 0u : Quest.Id); serverMessage.AppendBoolean(Quest != null && Session.GetHabbo().CurrentQuestId == Quest.Id); serverMessage.AppendString((Quest == null) ? string.Empty : Quest.ActionName); serverMessage.AppendString((Quest == null) ? string.Empty : Quest.DataBit); serverMessage.AppendInt32((Quest == null) ? 0 : Quest.Reward); serverMessage.AppendString((Quest == null) ? string.Empty : Quest.Name); serverMessage.AppendInt32(i2); serverMessage.AppendUInt((Quest == null) ? 0u : Quest.GoalData); serverMessage.AppendInt32((Quest == null) ? 0 : Quest.TimeUnlock); serverMessage.AppendString(""); serverMessage.AppendString(""); serverMessage.AppendBoolean(true); serverMessage.AppendBoolean(true); return serverMessage; }
internal static ServerMessage Compose(int PlaylistCapacity, List<SongInstance> Playlist) { ServerMessage serverMessage = new ServerMessage(Outgoing.JukeboxPlaylistMessageComposer); serverMessage.AppendInt32(PlaylistCapacity); serverMessage.AppendInt32(Playlist.Count); foreach (SongInstance current in Playlist) { serverMessage.AppendUInt(current.DiskItem.itemID); serverMessage.AppendUInt(current.SongData.Id); } return serverMessage; }
internal void Serialize(ServerMessage Request) { Request.AppendUInt(this.FromUser); Request.AppendString(this.mUsername); Habbo habboForName = MercuryEnvironment.getHabboForName(this.mUsername); Request.AppendString((habboForName != null) ? habboForName.Look : ""); }
internal static void SerializeQuest(ServerMessage Message, GameClient Session, Quest Quest, string Category) { if (Message == null || Session == null) { return; } int amountOfQuestsInCategory = MercuryEnvironment.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(Category); checked { int num = (Quest == null) ? amountOfQuestsInCategory : (Quest.Number - 1); int num2 = (Quest == null) ? 0 : Session.GetHabbo().GetQuestProgress(Quest.Id); if (Quest != null && Quest.IsCompleted(num2)) { num++; } Message.AppendString(Category); Message.AppendInt32((Quest == null) ? 0 : (Quest.Category.Contains("xmas2012") ? 0 : num)); Message.AppendInt32((Quest == null) ? 0 : (Quest.Category.Contains("xmas2012") ? 0 : amountOfQuestsInCategory)); Message.AppendInt32((Quest == null) ? 3 : Quest.RewardType); Message.AppendUInt((Quest == null) ? 0u : Quest.Id); Message.AppendBoolean(Quest != null && Session.GetHabbo().CurrentQuestId == Quest.Id); Message.AppendString((Quest == null) ? string.Empty : Quest.ActionName); Message.AppendString((Quest == null) ? string.Empty : Quest.DataBit); Message.AppendInt32((Quest == null) ? 0 : Quest.Reward); Message.AppendString((Quest == null) ? string.Empty : Quest.Name); Message.AppendInt32(num2); Message.AppendUInt((Quest == null) ? 0u : Quest.GoalData); Message.AppendInt32((Quest == null) ? 0 : Quest.TimeUnlock); Message.AppendString(""); Message.AppendString(""); Message.AppendBoolean(true); } }
public static ServerMessage ComposePlayingComposer(uint SongId, int PlaylistItemNumber, int SyncTimestampMs) { ServerMessage serverMessage = new ServerMessage(Outgoing.JukeboxNowPlayingMessageComposer); if (SongId == 0u) { serverMessage.AppendInt32(-1); serverMessage.AppendInt32(-1); serverMessage.AppendInt32(-1); serverMessage.AppendInt32(-1); serverMessage.AppendInt32(0); } else { serverMessage.AppendUInt(SongId); serverMessage.AppendInt32(PlaylistItemNumber); serverMessage.AppendUInt(SongId); serverMessage.AppendInt32(0); serverMessage.AppendInt32(SyncTimestampMs); } return serverMessage; }
internal void SerializeWall(ServerMessage Message, bool Inventory) { Message.AppendUInt(this.Id); Message.AppendString(this.mBaseItem.Type.ToString().ToUpper()); Message.AppendUInt(this.Id); Message.AppendInt32(this.GetBaseItem().SpriteId); if (this.GetBaseItem().Name.Contains("a2")) { Message.AppendInt32(3); } else { if (this.GetBaseItem().Name.Contains("wallpaper")) { Message.AppendInt32(2); } else { if (this.GetBaseItem().Name.Contains("landscape")) { Message.AppendInt32(4); } else { Message.AppendInt32(1); } } } Message.AppendInt32(0); Message.AppendString(this.ExtraData); Message.AppendBoolean(this.GetBaseItem().AllowRecycle); Message.AppendBoolean(this.GetBaseItem().AllowTrade); Message.AppendBoolean(this.GetBaseItem().AllowInventoryStack); Message.AppendBoolean(false); Message.AppendInt32(-1); Message.AppendBoolean(true); Message.AppendInt32(-1); }
internal void Searialize(ServerMessage reply) { reply.AppendUInt(this.userID); reply.AppendString(this.username); reply.AppendString(this.motto); bool b = MercuryEnvironment.GetGame().GetClientManager().GetClient(this.userID) != null; reply.AppendBoolean(b); reply.AppendBoolean(false); reply.AppendString(string.Empty); reply.AppendInt32(0); reply.AppendString(this.look); reply.AppendString(this.last_online); }
public static ServerMessage Compose(List<SongData> Songs) { ServerMessage serverMessage = new ServerMessage(Outgoing.SongsMessageComposer); serverMessage.AppendInt32(Songs.Count); foreach (SongData current in Songs) { serverMessage.AppendUInt(current.Id); serverMessage.AppendString(current.Codename); serverMessage.AppendString(current.Name); serverMessage.AppendString(current.Data); serverMessage.AppendInt32(current.LengthMiliseconds); serverMessage.AppendString(current.Artist); } return serverMessage; }
internal static ServerMessage Compose(Achievement Achievement, int Level, int PointReward, int PixelReward) { ServerMessage serverMessage = new ServerMessage(Outgoing.UnlockAchievementMessageComposer); serverMessage.AppendUInt(Achievement.Id); serverMessage.AppendInt32(Level); serverMessage.AppendInt32(144); serverMessage.AppendString(Achievement.GroupName + Level); serverMessage.AppendInt32(PointReward); serverMessage.AppendInt32(PixelReward); serverMessage.AppendInt32(0); serverMessage.AppendInt32(10); serverMessage.AppendInt32(21); serverMessage.AppendString(Level > 1 ? Achievement.GroupName + checked(Level - 1) : string.Empty); serverMessage.AppendString(Achievement.Category); serverMessage.AppendBoolean(true); return serverMessage; }
public void Serialize(ServerMessage Message, int QuestionNumber) { Message.AppendUInt(this.Index); Message.AppendInt32(QuestionNumber); Message.AppendInt32((int)this.AType); Message.AppendString(this.Question); if (this.AType == PollQuestion.PollAnswerType.Selection || this.AType == PollQuestion.PollAnswerType.RadioSelection) { Message.AppendInt32(1); Message.AppendInt32(this.Answers.Count); foreach (string current in this.Answers) { Message.AppendString(current); Message.AppendString(current); } } }
internal static ServerMessage Compose(Achievement Achievement, int TargetLevel, AchievementLevel TargetLevelData, int TotalLevels, UserAchievement UserData) { ServerMessage serverMessage = new ServerMessage(Outgoing.AchievementProgressMessageComposer); serverMessage.AppendUInt(Achievement.Id); serverMessage.AppendInt32(TargetLevel); serverMessage.AppendString(Achievement.GroupName + TargetLevel); serverMessage.AppendInt32(TargetLevelData.Requirement); serverMessage.AppendInt32(TargetLevelData.Requirement); serverMessage.AppendInt32(TargetLevelData.RewardPixels); serverMessage.AppendInt32(0); serverMessage.AppendInt32(UserData != null ? UserData.Progress : 0); serverMessage.AppendBoolean(UserData != null && UserData.Level >= TotalLevels); serverMessage.AppendString(Achievement.Category); serverMessage.AppendString(string.Empty); serverMessage.AppendInt32(TotalLevels); serverMessage.AppendInt32(0); return serverMessage; }
internal static ServerMessage Compose(GameClient Session, List<Achievement> Achievements) { ServerMessage serverMessage = new ServerMessage(Outgoing.AchievementListMessageComposer); serverMessage.AppendInt32(Achievements.Count); foreach (Achievement achievement in Achievements) { UserAchievement achievementData = Session.GetHabbo().GetAchievementData(achievement.GroupName); int i = achievementData != null ? checked(achievementData.Level + 1) : 1; int count = 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.AppendUInt(achievement.Id); serverMessage.AppendInt32(i); serverMessage.AppendString(achievement.GroupName + i); serverMessage.AppendInt32(oldLevel.Requirement); // Requisito Anterior serverMessage.AppendInt32(achievementLevel.Requirement); // Requisito Nuevo serverMessage.AppendInt32(achievementLevel.RewardPoints); serverMessage.AppendInt32(0); serverMessage.AppendInt32(achievementData != null ? achievementData.Progress : 0); // Progreso Total if (achievementData == null) { serverMessage.AppendBoolean(false); } else if (achievementData.Level >= count) { serverMessage.AppendBoolean(true); } else { serverMessage.AppendBoolean(false); // Terminado } serverMessage.AppendString(achievement.Category); serverMessage.AppendString(string.Empty); serverMessage.AppendInt32(count); // Número de niveles serverMessage.AppendInt32(0); } serverMessage.AppendString(""); return serverMessage; }
internal List<RoomItem> RemoveAllFurniture(GameClient Session) { List<RoomItem> list = new List<RoomItem>(); RoomItem[] array = this.mFloorItems.Values.ToArray<RoomItem>(); for (int i = 0; i < array.Length; i++) { RoomItem roomItem = array[i]; roomItem.Interactor.OnRemove(Session, roomItem); ServerMessage serverMessage = new ServerMessage(Outgoing.PickUpFloorItemMessageComposer); serverMessage.AppendString(roomItem.Id + string.Empty); serverMessage.AppendBoolean(false); serverMessage.AppendInt32(0); serverMessage.AppendUInt(roomItem.UserID); this.room.SendMessage(serverMessage); list.Add(roomItem); } RoomItem[] array2 = this.mWallItems.Values.ToArray<RoomItem>(); for (int j = 0; j < array2.Length; j++) { RoomItem roomItem2 = array2[j]; roomItem2.Interactor.OnRemove(Session, roomItem2); ServerMessage serverMessage2 = new ServerMessage(Outgoing.PickUpWallItemMessageComposer); serverMessage2.AppendString(roomItem2.Id + string.Empty); serverMessage2.AppendUInt(roomItem2.UserID); this.room.SendMessage(serverMessage2); list.Add(roomItem2); } this.mWallItems.Clear(); this.mFloorItems.Clear(); this.mRemovedItems.Clear(); this.mMovedItems.Clear(); this.mAddedItems.Clear(); this.mRollers.QueueDelegate(new onCycleDoneDelegate(this.ClearRollers)); using (IQueryAdapter queryreactor = MercuryEnvironment.GetDatabaseManager().getQueryreactor()) { queryreactor.runFastQuery("UPDATE items SET room_id='0' WHERE room_id = " + this.room.RoomId); } this.room.GetGameMap().GenerateMaps(true); this.room.GetRoomUserManager().UpdateUserStatusses(); return list; }
public bool OnCycle() { long num = MercuryEnvironment.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; }
internal void SerializeFloor(ServerMessage Message, bool Inventory) { Message.AppendUInt(this.Id); Message.AppendString(this.mBaseItem.Type.ToString().ToUpper()); Message.AppendUInt(this.Id); Message.AppendInt32(this.GetBaseItem().SpriteId); int ExtraParam = 0; if (this.GetBaseItem().InteractionType == InteractionType.gld_item || this.GetBaseItem().InteractionType == InteractionType.gld_gate) { Guild group = MercuryEnvironment.GetGame().GetGroupManager().GetGroup(this.GroupId); if (group != null) { Message.AppendInt32(17); Message.AppendInt32(2); Message.AppendInt32(5); Message.AppendString(this.ExtraData); Message.AppendString(group.Id.ToString()); Message.AppendString(group.Badge); Message.AppendString(MercuryEnvironment.GetGame().GetGroupManager().GetGroupColour(group.Colour1, true)); Message.AppendString(MercuryEnvironment.GetGame().GetGroupManager().GetGroupColour(group.Colour2, false)); } else { if (this.GetBaseItem().InteractionType == InteractionType.moplaseed) { Message.AppendInt32(19); Message.AppendInt32(1); Message.AppendInt32(1); Message.AppendString("rarity"); Message.AppendString(this.ExtraData.ToString()); } else { if (this.LimitedNo > 0) { Message.AppendInt32(1); Message.AppendInt32(256); Message.AppendString(this.ExtraData); Message.AppendInt32(this.LimitedNo); Message.AppendInt32(this.LimitedTot); } else { Message.AppendInt32((GetBaseItem().InteractionType == InteractionType.gift) ? 9 : 0); Message.AppendInt32(0); Message.AppendString((GetBaseItem().InteractionType == InteractionType.gift) ? "" : this.ExtraData); } } } } else { Message.AppendInt32(1); Message.AppendInt32(0); Message.AppendString((GetBaseItem().InteractionType == InteractionType.gift) ? "" : this.ExtraData); } Message.AppendBoolean(this.GetBaseItem().AllowRecycle); Message.AppendBoolean(this.GetBaseItem().AllowTrade); Message.AppendBoolean(this.LimitedNo <= 0 && this.GetBaseItem().AllowInventoryStack); Message.AppendBoolean(false); Message.AppendInt32(-1); Message.AppendBoolean(true); Message.AppendInt32(-1); Message.AppendString(""); try { if (GetBaseItem().InteractionType == InteractionType.gift) { string[] Split = this.ExtraData.Split((char)9); int Ribbon = int.Parse(Split[2]); int Colour = int.Parse(Split[3]); ExtraParam = (Ribbon * 1000) + Colour; } } catch { ExtraParam = 1001; } Console.WriteLine(ExtraParam); Message.AppendInt32(ExtraParam);//ExtraParam }
internal void DeliverInstantMessageError(int ErrorId, uint ConversationId) { ServerMessage serverMessage = new ServerMessage(Outgoing.ConsoleChatErrorMessageComposer); serverMessage.AppendInt32(ErrorId); serverMessage.AppendUInt(ConversationId); serverMessage.AppendString(""); this.GetClient().SendMessage(serverMessage); }
internal ServerMessage SerializeOfflineMessages(OfflineMessage Message) { ServerMessage serverMessage = new ServerMessage(Outgoing.ConsoleChatMessageComposer); serverMessage.AppendUInt(Message.FromId); serverMessage.AppendString(Message.Message); serverMessage.AppendInt32(checked((int)unchecked((double)MercuryEnvironment.GetUnixTimestamp() - Message.Timestamp))); return serverMessage; }
internal static ServerMessage SerializeSongInventory(HybridDictionary songs) { ServerMessage serverMessage = new ServerMessage(Outgoing.SongsLibraryMessageComposer); serverMessage.AppendInt32(songs.Count); foreach (UserItem userItem in songs.Values) { serverMessage.AppendUInt(userItem.Id); serverMessage.AppendUInt(SongManager.GetSong(userItem.SongCode).Id); } return serverMessage; }
internal void DeliverInstantMessage(string message, uint convoID) { ServerMessage serverMessage = new ServerMessage(Outgoing.ConsoleChatMessageComposer); serverMessage.AppendUInt(convoID); serverMessage.AppendString(message); serverMessage.AppendInt32(0); this.GetClient().SendMessage(serverMessage); }
internal void DeliverItems() { List<UserItem> offeredItems = this.GetTradeUser(this.oneId).OfferedItems; List<UserItem> offeredItems2 = this.GetTradeUser(this.twoId).OfferedItems; foreach (UserItem current in offeredItems) { if (this.GetTradeUser(this.oneId).GetClient().GetHabbo().GetInventoryComponent().GetItem(current.Id) == null) { this.GetTradeUser(this.oneId).GetClient().SendNotif("El tradeo ha fallado."); this.GetTradeUser(this.twoId).GetClient().SendNotif("El tradeo ha fallado."); return; } } foreach (UserItem current2 in offeredItems2) { if (this.GetTradeUser(this.twoId).GetClient().GetHabbo().GetInventoryComponent().GetItem(current2.Id) == null) { this.GetTradeUser(this.oneId).GetClient().SendNotif("El tradeo ha fallado."); this.GetTradeUser(this.twoId).GetClient().SendNotif("El tradeo ha fallado."); return; } } this.GetTradeUser(this.twoId).GetClient().GetHabbo().GetInventoryComponent().RunDBUpdate(); this.GetTradeUser(this.oneId).GetClient().GetHabbo().GetInventoryComponent().RunDBUpdate(); foreach (UserItem current3 in offeredItems) { this.GetTradeUser(this.oneId).GetClient().GetHabbo().GetInventoryComponent().RemoveItem(current3.Id, false); this.GetTradeUser(this.twoId).GetClient().GetHabbo().GetInventoryComponent().AddNewItem(current3.Id, current3.BaseItem, current3.ExtraData, current3.GroupId, false, false, 0, 0, current3.SongCode); this.GetTradeUser(this.oneId).GetClient().GetHabbo().GetInventoryComponent().RunDBUpdate(); this.GetTradeUser(this.twoId).GetClient().GetHabbo().GetInventoryComponent().RunDBUpdate(); } foreach (UserItem current4 in offeredItems2) { this.GetTradeUser(this.twoId).GetClient().GetHabbo().GetInventoryComponent().RemoveItem(current4.Id, false); this.GetTradeUser(this.oneId).GetClient().GetHabbo().GetInventoryComponent().AddNewItem(current4.Id, current4.BaseItem, current4.ExtraData, current4.GroupId, false, false, 0, 0, current4.SongCode); this.GetTradeUser(this.twoId).GetClient().GetHabbo().GetInventoryComponent().RunDBUpdate(); this.GetTradeUser(this.oneId).GetClient().GetHabbo().GetInventoryComponent().RunDBUpdate(); } ServerMessage serverMessage = new ServerMessage(Outgoing.NewInventoryObjectMessageComposer); serverMessage.AppendInt32(1); int i = 1; foreach (UserItem current5 in offeredItems) { if (current5.GetBaseItem().Type.ToString().ToLower() != "s") { i = 2; } } serverMessage.AppendInt32(i); serverMessage.AppendInt32(offeredItems.Count); foreach (UserItem current6 in offeredItems) { serverMessage.AppendUInt(current6.Id); } this.GetTradeUser(this.twoId).GetClient().SendMessage(serverMessage); ServerMessage serverMessage2 = new ServerMessage(Outgoing.NewInventoryObjectMessageComposer); serverMessage2.AppendInt32(1); i = 1; foreach (UserItem current7 in offeredItems2) { if (current7.GetBaseItem().Type.ToString().ToLower() != "s") { i = 2; } } serverMessage2.AppendInt32(i); serverMessage2.AppendInt32(offeredItems2.Count); foreach (UserItem current8 in offeredItems2) { serverMessage2.AppendUInt(current8.Id); } this.GetTradeUser(this.oneId).GetClient().SendMessage(serverMessage2); this.GetTradeUser(this.oneId).GetClient().GetHabbo().GetInventoryComponent().UpdateItems(false); this.GetTradeUser(this.twoId).GetClient().GetHabbo().GetInventoryComponent().UpdateItems(false); }
internal void CloseTrade(uint UserId) { checked { for (int i = 0; i < this.Users.Length; i++) { TradeUser tradeUser = this.Users[i]; if (tradeUser != null && tradeUser.GetRoomUser() != null) { tradeUser.GetRoomUser().RemoveStatus("trd"); tradeUser.GetRoomUser().UpdateNeeded = true; } } ServerMessage serverMessage = new ServerMessage(Outgoing.TradeCloseMessageComposer); serverMessage.AppendUInt(UserId); serverMessage.AppendInt32(0); this.SendMessageToUsers(serverMessage); } }
internal void CompleteTrade(uint UserId) { TradeUser tradeUser = this.GetTradeUser(UserId); if (tradeUser == null || this.TradeStage != 2) { return; } tradeUser.HasAccepted = true; ServerMessage serverMessage = new ServerMessage(Outgoing.TradeAcceptMessageComposer); serverMessage.AppendUInt(UserId); serverMessage.AppendInt32(1); this.SendMessageToUsers(serverMessage); if (this.AllUsersAccepted) { this.TradeStage = 999; this.Finnito(); } }
internal void UpdateTradeWindow() { ServerMessage serverMessage = new ServerMessage(Outgoing.TradeUpdateMessageComposer); checked { for (int i = 0; i < this.Users.Length; i++) { TradeUser tradeUser = this.Users[i]; if (tradeUser != null) { serverMessage.AppendUInt(tradeUser.UserId); serverMessage.AppendInt32(tradeUser.OfferedItems.Count); foreach (UserItem current in tradeUser.OfferedItems) { serverMessage.AppendUInt(current.Id); serverMessage.AppendString(current.GetBaseItem().Type.ToString().ToLower()); serverMessage.AppendUInt(current.Id); serverMessage.AppendInt32(current.GetBaseItem().SpriteId); serverMessage.AppendInt32(0); serverMessage.AppendBoolean(true); serverMessage.AppendInt32(0); serverMessage.AppendString(""); serverMessage.AppendInt32(0); serverMessage.AppendInt32(0); serverMessage.AppendInt32(0); if (current.GetBaseItem().Type == 's') { serverMessage.AppendInt32(0); } } } } this.SendMessageToUsers(serverMessage); } }
internal void Unaccept(uint UserId) { TradeUser tradeUser = this.GetTradeUser(UserId); if (tradeUser == null || this.TradeStage != 1 || this.AllUsersAccepted) { return; } tradeUser.HasAccepted = false; ServerMessage serverMessage = new ServerMessage(Outgoing.TradeAcceptMessageComposer); serverMessage.AppendUInt(UserId); serverMessage.AppendInt32(0); this.SendMessageToUsers(serverMessage); }
internal void Accept(uint UserId) { TradeUser tradeUser = this.GetTradeUser(UserId); if (tradeUser == null || this.TradeStage != 1) { return; } tradeUser.HasAccepted = true; ServerMessage serverMessage = new ServerMessage(Outgoing.TradeAcceptMessageComposer); serverMessage.AppendUInt(UserId); serverMessage.AppendInt32(1); this.SendMessageToUsers(serverMessage); checked { if (this.AllUsersAccepted) { this.SendMessageToUsers(new ServerMessage(Outgoing.TradeConfirmationMessageComposer)); this.TradeStage++; this.ClearAccepted(); } } }
internal void MoveBall(RoomItem item, GameClient mover, int newX, int newY, RoomUser user) { if (item == null || mover == null) return; if (!room.GetGameMap().itemCanBePlacedHere(newX, newY)) return; Point oldRoomCoord = item.Coordinate; // bool itemIsOnGameItem = GameItemOverlaps(item); Double NewZ = room.GetGameMap().Model.SqFloorHeight[newX, newY]; ServerMessage mMessage = new ServerMessage(); mMessage.Init(Outgoing.ItemAnimationMessageComposer); // Cf mMessage.AppendInt32(item.Coordinate.X); mMessage.AppendInt32(item.Coordinate.Y); mMessage.AppendInt32(newX); mMessage.AppendInt32(newY); mMessage.AppendInt32(1); mMessage.AppendUInt(item.Id); mMessage.AppendString(TextHandling.GetString(item.GetZ)); mMessage.AppendString(TextHandling.GetString(NewZ)); mMessage.AppendUInt(item.Id); room.SendMessage(mMessage); item.ExtraData = "11"; item.UpdateNeeded = true; if (oldRoomCoord.X == newX && oldRoomCoord.Y == newY) return; if (!room.GetRoomItemHandler().SetFloorItem(mover, item, newX, newY, item.Rot, false, false, false, false)) { room.GetRoomItemHandler().SetFloorItem(item, newX, newY, NewZ); } HandleFootballGameItems(item.Coordinate, user); }
internal void Serialize(ServerMessage Message, GameClient Session) { Relationship value = Session.GetHabbo().Relationships.FirstOrDefault((KeyValuePair<int, Relationship> x) => x.Value.UserId == Convert.ToInt32(this.UserId)).Value; int i = (value == null) ? 0 : value.Type; Message.AppendUInt(this.UserId); Message.AppendString(this.mUsername); Message.AppendInt32(1); if (!this.mAppearOffline || Session.GetHabbo().Rank >= 4u) { Message.AppendBoolean(this.IsOnline); } else { Message.AppendBoolean(false); } if (!this.mHideInroom || Session.GetHabbo().Rank >= 4u) { Message.AppendBoolean(this.InRoom); } else { Message.AppendBoolean(false); } Message.AppendString(this.IsOnline ? this.mLook : ""); Message.AppendInt32(0); Message.AppendString(this.mMotto); Message.AppendString(string.Empty); Message.AppendString(string.Empty); Message.AppendBoolean(true); Message.AppendBoolean(false); Message.AppendBoolean(false); Message.AppendShort(i); }
internal void Serialize(ServerMessage Message) { Message.AppendUInt(this.Id); Message.AppendString("");//? Message.AppendString(this.PollInvitation); }