public bool Execute(params object[] stuff) { RoomUser bot = Room.GetRoomUserManager().GetBotByName(OtherString); if (bot == null || OtherExtraString == "null") { return(false); } bot.BotData.Look = OtherExtraString; ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("SetRoomUserMessageComposer")); serverMessage.AppendInteger(1); bot.Serialize(serverMessage, false); Room.SendMessage(serverMessage); return(true); }
public void parse(GameClient Session, ClientMessage Event) { int num = Event.PopWiredInt32(); if (num > 0 && (Session != null && Session.GetHabbo() != null)) { Session.GetHabbo().GroupID = 0; if (Session.GetHabbo().InRoom) { Room class14_ = Session.GetHabbo().CurrentRoom; RoomUser @class = class14_.GetRoomUserByHabbo(Session.GetHabbo().Id); ServerMessage Message = new ServerMessage(28u); Message.AppendInt32(1); @class.Serialize(Message); class14_.SendMessage(Message, null); } using (DatabaseClient class2 = PhoenixEnvironment.GetDatabase().GetClient()) { class2.ExecuteQuery("UPDATE user_stats SET groupid = 0 WHERE Id = " + Session.GetHabbo().Id + " LIMIT 1;"); } DataTable dataTable_ = Session.GetHabbo().GroupMemberships; if (dataTable_ != null) { ServerMessage Message2 = new ServerMessage(915u); Message2.AppendInt32(dataTable_.Rows.Count); foreach (DataRow dataRow in dataTable_.Rows) { Group class3 = GroupManager.GetGroup((int)dataRow["groupid"]); Message2.AppendInt32(class3.Id); Message2.AppendStringWithBreak(class3.Name); Message2.AppendStringWithBreak(class3.Badge); if (Session.GetHabbo().GroupID == class3.Id) { Message2.AppendBoolean(true); } else { Message2.AppendBoolean(false); } } Session.SendMessage(Message2); } } }
/// <summary> /// Handles the <see cref="E:UserAdd" /> event. /// </summary> /// <param name="user"></param> private void OnUserAdd(RoomUser user) { try { if (user?.GetClient() == null || user.GetClient().GetHabbo() == null) return; GameClient client = user.GetClient(); if (client?.GetHabbo() == null || _userRoom == null) return; if (!user.IsSpectator) { DynamicRoomModel model = _userRoom.GetGameMap().Model; if (model == null) return; user.SetPos(model.DoorX, model.DoorY, model.DoorZ); user.SetRot(model.DoorOrientation, false); user.AddStatus(_userRoom.CheckRights(client, true) ? "flatctrl 4" : "flatctrl 1", string.Empty); user.CurrentItemEffect = ItemEffectType.None; if (!user.IsBot && client.GetHabbo().IsTeleporting) { client.GetHabbo().IsTeleporting = false; client.GetHabbo().TeleportingRoomId = 0; RoomItem item = _userRoom.GetRoomItemHandler().GetItem(client.GetHabbo().TeleporterId); if (item != null) { item.ExtraData = "2"; item.UpdateState(false, true); user.SetPos(item.X, item.Y, item.Z); user.SetRot(item.Rot, false); item.InteractingUser2 = client.GetHabbo().Id; item.ExtraData = "0"; item.UpdateState(false, true); } } if (!user.IsBot && client.GetHabbo().IsHopping) { client.GetHabbo().IsHopping = false; client.GetHabbo().HopperId = 0; RoomItem item2 = _userRoom.GetRoomItemHandler().GetItem(client.GetHabbo().HopperId); if (item2 != null) { item2.ExtraData = "1"; item2.UpdateState(false, true); user.SetPos(item2.X, item2.Y, item2.Z); user.SetRot(item2.Rot, false); user.AllowOverride = false; item2.InteractingUser2 = client.GetHabbo().Id; item2.ExtraData = "2"; item2.UpdateState(false, true); } } if (!user.IsSpectator) { ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("SetRoomUserMessageComposer")); serverMessage.AppendInteger(1); user.Serialize(serverMessage, _userRoom.GetGameMap().GotPublicPool); _userRoom.SendMessage(serverMessage); } if (!user.IsBot) { ServerMessage serverMessage2 = new ServerMessage(); serverMessage2.Init(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer")); serverMessage2.AppendInteger(user.VirtualId); serverMessage2.AppendString(client.GetHabbo().Look); serverMessage2.AppendString(client.GetHabbo().Gender.ToLower()); serverMessage2.AppendString(client.GetHabbo().Motto); serverMessage2.AppendInteger(client.GetHabbo().AchievementPoints); _userRoom.SendMessage(serverMessage2); } if (_userRoom.RoomData.Owner != client.GetHabbo().UserName) { Yupi.GetGame() .GetAchievementManager() .ProgressUserAchievement(client, "ACH_RoomEntry", 1); } } if (client.GetHabbo().GetMessenger() != null) client.GetHabbo().GetMessenger().OnStatusChanged(true); client.GetMessageHandler().OnRoomUserAdd(); //if (client.GetHabbo().HasFuse("fuse_mod")) client.GetHabbo().GetAvatarEffectsInventoryComponent().ActivateCustomEffect(102); //if (client.GetHabbo().Rank == Convert.ToUInt32(Yupi.GetDbConfig().DbData["ambassador.minrank"])) client.GetHabbo().GetAvatarEffectsInventoryComponent().ActivateCustomEffect(178); if (OnUserEnter != null) OnUserEnter(user, null); if (_userRoom.GotMusicController() && _userRoom.GotMusicController()) _userRoom.GetRoomMusicController().OnNewUserEnter(user); _userRoom.OnUserEnter(user); } catch (Exception ex) { ServerLogManager.LogCriticalException(ex.ToString()); } }
/// <summary> /// Deploys the bot. /// </summary> /// <param name="bot">The bot.</param> /// <param name="petData">The pet data.</param> /// <returns>RoomUser.</returns> internal RoomUser DeployBot(RoomBot bot, Pet petData) { int virtualId = _primaryPrivateUserId++; RoomUser roomUser = new RoomUser(0u, _userRoom.RoomId, virtualId, _userRoom, false); int num = _secondaryPrivateUserId++; roomUser.InternalRoomId = num; UserList.TryAdd(num, roomUser); OnUserAdd(roomUser); DynamicRoomModel model = _userRoom.GetGameMap().Model; Point coord = new Point(bot.X, bot.Y); if ((bot.X > 0) && (bot.Y >= 0) && (bot.X < model.MapSizeX) && (bot.Y < model.MapSizeY)) { _userRoom.GetGameMap().AddUserToMap(roomUser, coord); roomUser.SetPos(bot.X, bot.Y, bot.Z); roomUser.SetRot(bot.Rot, false); } else { bot.X = model.DoorX; bot.Y = model.DoorY; roomUser.SetPos(model.DoorX, model.DoorY, model.DoorZ); roomUser.SetRot(model.DoorOrientation, false); } bot.RoomUser = roomUser; roomUser.BotData = bot; roomUser.BotAi = bot.GenerateBotAi(roomUser.VirtualId, (int) bot.BotId); if (roomUser.IsPet) { roomUser.BotAi.Init(bot.BotId, roomUser.VirtualId, _userRoom.RoomId, roomUser, _userRoom); roomUser.PetData = petData; roomUser.PetData.VirtualId = roomUser.VirtualId; } else roomUser.BotAi.Init(bot.BotId, roomUser.VirtualId, _userRoom.RoomId, roomUser, _userRoom); UpdateUserStatus(roomUser, false); roomUser.UpdateNeeded = true; ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("SetRoomUserMessageComposer")); serverMessage.AppendInteger(1); roomUser.Serialize(serverMessage, _userRoom.GetGameMap().GotPublicPool); _userRoom.SendMessage(serverMessage); roomUser.BotAi.OnSelfEnterRoom(); if (roomUser.IsPet) { if (_pets.Contains(roomUser.PetData.PetId)) _pets[roomUser.PetData.PetId] = roomUser; else _pets.Add(roomUser.PetData.PetId, roomUser); PetCount++; } roomUser.BotAi.Modified(); if (roomUser.BotData.AiType != AiType.Generic) return roomUser; if (_bots.Contains(roomUser.BotData.BotId)) _bots[roomUser.BotData.BotId] = roomUser; else _bots.Add(roomUser.BotData.BotId, roomUser); serverMessage.Init(LibraryParser.OutgoingRequest("DanceStatusMessageComposer")); serverMessage.AppendInteger(roomUser.VirtualId); serverMessage.AppendInteger(roomUser.BotData.DanceId); _userRoom.SendMessage(serverMessage); PetCount++; return roomUser; }
internal RoomUser DeployBot(RoomBot Bot, Pet PetData) { RoomUser BotUser = new RoomUser(0, room.RoomId, primaryPrivateUserID++, room, false); int PersonalID = secondaryPrivateUserID++; BotUser.InternalRoomID = PersonalID; //this.UserList[PersonalID] = BotUser; userlist.Add(PersonalID, BotUser); DynamicRoomModel Model = room.GetGameMap().Model; if ((Bot.X > 0 && Bot.Y > 0) && Bot.X < Model.MapSizeX && Bot.Y < Model.MapSizeY) { BotUser.SetPos(Bot.X, Bot.Y, Bot.Z); BotUser.SetRot(Bot.Rot, false); } else { Bot.X = Model.DoorX; Bot.Y = Model.DoorY; BotUser.SetPos(Model.DoorX, Model.DoorY, Model.DoorZ); BotUser.SetRot(Model.DoorOrientation, false); } BotUser.BotData = Bot; BotUser.BotAI = Bot.GenerateBotAI(BotUser.VirtualId); if (BotUser.IsPet) { BotUser.BotAI.Init((int)Bot.BotId, BotUser.VirtualId, room.RoomId, BotUser, room); BotUser.PetData = PetData; BotUser.PetData.VirtualId = BotUser.VirtualId; } else { BotUser.BotAI.Init(-1, BotUser.VirtualId, room.RoomId, BotUser, room); } UpdateUserStatus(BotUser, false); BotUser.UpdateNeeded = true; ServerMessage EnterMessage = new ServerMessage(28); EnterMessage.AppendInt32(1); BotUser.Serialize(EnterMessage, room.GetGameMap().gotPublicPool); room.SendMessage(EnterMessage); BotUser.BotAI.OnSelfEnterRoom(); if (BotUser.BotData.AiType == AIType.Guide) room.guideBotIsCalled = true; if (BotUser.IsPet) { if (pets.ContainsKey(BotUser.PetData.PetId)) //Pet allready placed pets[BotUser.PetData.PetId] = BotUser; else pets.Add(BotUser.PetData.PetId, BotUser); petCount++; } return BotUser; }
internal RoomUser DeployBot(RoomBot Bot, Pet PetData) { int virtualId = this.primaryPrivateUserID++; RoomUser roomUser = new RoomUser(0u, this.room.RoomId, virtualId, this.room, false); int num = this.secondaryPrivateUserID++; roomUser.InternalRoomID = num; this.userlist.Add(num, roomUser); DynamicRoomModel model = this.room.GetGameMap().Model; Point coord = new Point(Bot.X, Bot.Y); if (Bot.X > 0 && Bot.Y > 0 && Bot.X < model.MapSizeX && Bot.Y < model.MapSizeY) { this.room.GetGameMap().AddUserToMap(roomUser, coord); roomUser.SetPos(Bot.X, Bot.Y, Bot.Z); roomUser.SetRot(Bot.Rot, false); } else { Bot.X = model.DoorX; Bot.Y = model.DoorY; roomUser.SetPos(model.DoorX, model.DoorY, model.DoorZ); roomUser.SetRot(model.DoorOrientation, false); } roomUser.BotData = Bot; checked { roomUser.BotAI = Bot.GenerateBotAI(roomUser.VirtualId, (int)Bot.BotId); if (roomUser.IsPet) { roomUser.BotAI.Init(Bot.BotId, roomUser.VirtualId, this.room.RoomId, roomUser, this.room); roomUser.PetData = PetData; roomUser.PetData.VirtualId = roomUser.VirtualId; } else { roomUser.BotAI.Init(Bot.BotId, roomUser.VirtualId, this.room.RoomId, roomUser, this.room); } this.UpdateUserStatus(roomUser, false); roomUser.UpdateNeeded = true; ServerMessage serverMessage = new ServerMessage(Outgoing.SetRoomUserMessageComposer); serverMessage.AppendInt32(1); roomUser.Serialize(serverMessage, this.room.GetGameMap().gotPublicPool); this.room.SendMessage(serverMessage); roomUser.BotAI.OnSelfEnterRoom(); if (roomUser.IsPet) { if (this.pets.Contains(roomUser.PetData.PetId)) { this.pets[roomUser.PetData.PetId] = roomUser; } else { this.pets.Add(roomUser.PetData.PetId, roomUser); } this.petCount++; } if (roomUser.BotData.AiType == AIType.Generic) { if (this.bots.Contains(roomUser.BotData.BotId)) { this.bots[roomUser.BotData.BotId] = roomUser; } else { this.bots.Add(roomUser.BotData.BotId, roomUser); } serverMessage.Init(Outgoing.DanceStatusMessageComposer); serverMessage.AppendInt32(roomUser.VirtualId); serverMessage.AppendInt32(roomUser.BotData.DanceId); this.room.SendMessage(serverMessage); this.petCount++; } return roomUser; } }
public void parse(GameClient Session, ClientMessage Request) { string text = PhoenixEnvironment.FilterInjectionChars(Request.PopFixedString(), false, true); if (text.Length < 3) { ServerMessage Message = new ServerMessage(571u); Message.AppendString("J"); Session.SendMessage(Message); } else { if (text.Length > 15) { ServerMessage Message = new ServerMessage(571u); Message.AppendString("K"); Session.SendMessage(Message); } else { if (text.Contains(" ") || !Session.GetMessageHandler().NameFree(text) || text != ChatCommandHandler.ApplyWordFilter(text)) { ServerMessage Message = new ServerMessage(571u); Message.AppendString("QA"); Session.SendMessage(Message); } else { if (Request.Header == "GW") { ServerMessage Message = new ServerMessage(571u); Message.AppendString("H"); Message.AppendString(text); Session.SendMessage(Message); } else { if (Request.Header == "GV") { ServerMessage Message2 = new ServerMessage(570u); Message2.AppendString("H"); Session.SendMessage(Message2); ServerMessage Message3 = new ServerMessage(572u); Message3.AppendUInt(Session.GetHabbo().Id); Message3.AppendString("H"); Message3.AppendString(text); Session.SendMessage(Message3); if (Session.GetHabbo().CurrentRoomId > 0u) { Room @class = PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser class2 = @class.GetRoomUserByHabbo(Session.GetHabbo().Id); ServerMessage Message4 = new ServerMessage(28u); Message4.AppendInt32(1); class2.Serialize(Message4); @class.SendMessage(Message4, null); } Dictionary <Room, int> dictionary = PhoenixEnvironment.GetGame().GetRoomManager().method_22(); IEnumerable <Room> arg_204_0 = dictionary.Keys; if (ChangeUserNameMessageEvent.func_0 == null) { ChangeUserNameMessageEvent.func_0 = new Func <Room, int>(ChangeUserNameMessageEvent.smethod_0); } IOrderedEnumerable <Room> orderedEnumerable = arg_204_0.OrderByDescending(ChangeUserNameMessageEvent.func_0); foreach (Room current in orderedEnumerable) { if (current.Owner == Session.GetHabbo().Username) { current.Owner = text; PhoenixEnvironment.GetGame().GetRoomManager().UnloadRoom(PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(current.RoomId)); } } using (DatabaseClient class3 = PhoenixEnvironment.GetDatabase().GetClient()) { class3.ExecuteQuery(string.Concat(new string[] { "UPDATE rooms SET owner = '", text, "' WHERE owner = '", Session.GetHabbo().Username, "'" })); class3.ExecuteQuery(string.Concat(new object[] { "UPDATE users SET username = '******' WHERE Id = '", Session.GetHabbo().Id, "' LIMIT 1" })); PhoenixEnvironment.GetGame().GetClientManager().RecordCmdLogs(Session, "flagme", "OldName: " + Session.GetHabbo().Username + " NewName: " + text); Session.GetHabbo().Username = text; Session.GetHabbo().UpdateRooms(class3); foreach (RoomData current2 in Session.GetHabbo().UsersRooms) { current2.Owner = text; } } PhoenixEnvironment.GetGame().GetAchievementManager().UnlockAchievement(Session, 9u, 1); } } } } } }
internal RoomUser DeployBot(RoomBot Bot, Pet PetData) { int num2; this.primaryPrivateUserID = (num2 = this.primaryPrivateUserID) + 1; RoomUser BotUser = new RoomUser(0, this.room.RoomId, num2, this.room, false); this.secondaryPrivateUserID = (num2 = this.secondaryPrivateUserID) + 1; int key = num2; BotUser.InternalRoomID = key; this.userlist.Add(key, BotUser); DynamicRoomModel Model = this.room.GetGameMap().Model; Point myPoint = new Point(Bot.X,Bot.Y); if ((Bot.X > 0 && Bot.Y > 0) && Bot.X < Model.MapSizeX && Bot.Y < Model.MapSizeY) { room.GetGameMap().AddUserToMap(BotUser, myPoint); BotUser.SetPos(Bot.X, Bot.Y, Bot.Z); BotUser.SetRot(Bot.Rot, false); } else { Bot.X = Model.DoorX; Bot.Y = Model.DoorY; BotUser.SetPos(Model.DoorX, Model.DoorY, Model.DoorZ); BotUser.SetRot(Model.DoorOrientation, false); } BotUser.BotData = Bot; BotUser.BotAI = Bot.GenerateBotAI(BotUser.VirtualId,(int)Bot.BotId); if (BotUser.IsPet) { BotUser.BotAI.Init(Bot.BotId, BotUser.VirtualId, room.RoomId, BotUser, room); BotUser.PetData = PetData; BotUser.PetData.VirtualId = BotUser.VirtualId; } else { BotUser.BotAI.Init(Bot.BotId, BotUser.VirtualId, room.RoomId, BotUser, room); } this.UpdateUserStatus(BotUser, false); BotUser.UpdateNeeded = true; ServerMessage EnterMessage = new ServerMessage(Outgoing.PlaceBot); EnterMessage.AppendInt32(1); BotUser.Serialize(EnterMessage, room.GetGameMap().gotPublicPool); room.SendMessage(EnterMessage); BotUser.BotAI.OnSelfEnterRoom(); if (BotUser.IsPet) { if (pets.ContainsKey(BotUser.PetData.PetId)) //Pet allready placed pets[BotUser.PetData.PetId] = BotUser; else pets.Add(BotUser.PetData.PetId, BotUser); petCount++; } if (BotUser.BotData.AiType == AIType.Generic) { if (bots.ContainsKey(BotUser.BotData.BotId)) bots[BotUser.BotData.BotId] = BotUser; else { bots.Add(BotUser.BotData.BotId, BotUser); } EnterMessage.Init(Outgoing.Dance); EnterMessage.AppendInt32(BotUser.VirtualId); EnterMessage.AppendInt32(BotUser.BotData.DanceId); room.SendMessage(EnterMessage); petCount++; } return BotUser; }
public void parse(GameClient Session, ClientMessage Event) { if (Session.GetHabbo().LoadingRoom > 0u && Session.GetHabbo().LoadingChecksPassed) { RoomData @class = PhoenixEnvironment.GetGame().GetRoomManager().GenerateRoomData(Session.GetHabbo().LoadingRoom); if (@class != null) { if (@class.Model == null) { Session.SendNotif("Error loading room, please try again soon! (Error Code: MdlData)"); Session.SendMessage(new ServerMessage(18u)); Session.GetMessageHandler().ClearRoomLoading(); } else { Session.SendMessage(@class.Model.method_1()); Session.SendMessage(@class.Model.method_2()); Room class2 = PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().LoadingRoom); if (class2 != null) { Session.GetMessageHandler().ClearRoomLoading(); ServerMessage Message = new ServerMessage(30u); if (class2.Model.StaticFurniMap != "") { Message.AppendStringWithBreak(class2.Model.StaticFurniMap); } 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.Serialize(Message2); } Session.SendMessage(Message2); ServerMessage Message3 = new ServerMessage(45u); Message3.AppendInt32(hashtable_2.Count); foreach (RoomItem class3 in hashtable_2.Values) { class3.Serialize(Message3); } Session.SendMessage(Message3); } class2.method_46(Session, Session.GetHabbo().SpectatorMode); List <RoomUser> list = new List <RoomUser>(); for (int i = 0; i < class2.UserList.Length; i++) { RoomUser class4 = class2.UserList[i]; if (class4 != null && (!class4.IsSpectator && class4.Visible)) { list.Add(class4); } } ServerMessage Message4 = new ServerMessage(28u); Message4.AppendInt32(list.Count); foreach (RoomUser class4 in list) { class4.Serialize(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.RoomId); if (class2.CheckRights(Session, true)) { Message6.AppendBoolean(true); } else { Message6.AppendBoolean(false); } Session.SendMessage(Message6); ServerMessage Message7 = new ServerMessage(454u); Message7.AppendBoolean(false); @class.Serialize(Message7, false, false); Session.SendMessage(Message7); } } ServerMessage Message8 = class2.method_67(true); if (Message8 != null) { Session.SendMessage(Message8); } for (int i = 0; i < class2.UserList.Length; i++) { RoomUser class4 = class2.UserList[i]; if (class4 != null && !class4.IsSpectator) { if (class4.IsDancing) { ServerMessage Message9 = new ServerMessage(480u); Message9.AppendInt32(class4.VirtualId); Message9.AppendInt32(class4.DanceId); Session.SendMessage(Message9); } if (class4.IsAsleep) { ServerMessage Message10 = new ServerMessage(486u); Message10.AppendInt32(class4.VirtualId); Message10.AppendBoolean(true); Session.SendMessage(Message10); } if (class4.CarryItemID > 0 && class4.CarryTimer > 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().GetAvatarEffectsInventoryComponent() != null && class4.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect >= 1) { ServerMessage Message12 = new ServerMessage(485u); Message12.AppendInt32(class4.VirtualId); Message12.AppendInt32(class4.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect); Session.SendMessage(Message12); } goto IL_5C5; } catch { goto IL_5C5; } } if (!class4.IsPet && class4.BotData.EffectId != 0) { ServerMessage Message12 = new ServerMessage(485u); Message12.AppendInt32(class4.VirtualId); Message12.AppendInt32(class4.BotData.EffectId); Session.SendMessage(Message12); } } IL_5C5 :; } if (class2 != null && Session != null && Session.GetHabbo().CurrentRoom != null) { class2.method_8(Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id)); } if (class2.Achievement > 0u) { PhoenixEnvironment.GetGame().GetAchievementManager().UnlockAchievement(Session, class2.Achievement, 1); } if (Session.GetHabbo().Muted&& Session.GetHabbo().MuteLength > 0) { ServerMessage Message13 = new ServerMessage(27u); Message13.AppendInt32(Session.GetHabbo().MuteLength); Session.SendMessage(Message13); } } } } } }
internal RoomUser DeployBot(RoomBot Bot, Pet PetData) { DynamicRoomModel Model = room.GetGameMap().Model; RoomUser BotUser = new RoomUser(0, string.Empty, room.RoomId, primaryPrivateUserID++, room, false); BotUser.InternalRoomID = ++secondaryPrivateUserID; //this.UserList[PersonalID] = BotUser; userlist.Add(BotUser.InternalRoomID, BotUser); if ((Bot.X > 0 && Bot.Y > 0) && Bot.X < Model.MapSizeX && Bot.Y < Model.MapSizeY) { BotUser.SetPos(Bot.X, Bot.Y, Bot.Z); BotUser.SetRot(Bot.Rot, false); } else { Bot.X = Model.DoorX; Bot.Y = Model.DoorY; BotUser.SetPos(Model.DoorX, Model.DoorY, Model.DoorZ); BotUser.SetRot(Model.DoorOrientation, false); } BotUser.BotData = Bot; BotUser.BotAI = Bot.GenerateBotAI(BotUser.VirtualId); if (BotUser.IsPet) { BotUser.BotAI.Init((int)Bot.BotId, BotUser.VirtualId, room.RoomId, BotUser, room); BotUser.PetData = PetData; BotUser.PetData.virtualID = BotUser.VirtualId; } else { BotUser.BotAI.Init(Bot.ownerID > 0 ? (int)Bot.BotId : -1, BotUser.VirtualId, room.RoomId, BotUser, room); } UpdateUserStatus(BotUser, false); BotUser.UpdateNeeded = true; ServerMessage EnterMessage = PacketHandelingManager.GetRecycledItem(OutputCode.UsersMessageEvent); EnterMessage.AddInt32(1); BotUser.Serialize(EnterMessage); room.SendMessage(EnterMessage); BotUser.BotAI.OnSelfEnterRoom(); if (BotUser.IsPet) { if (pets.ContainsKey(BotUser.PetData.petID)) //Pet allready placed pets[BotUser.PetData.petID] = BotUser; else pets.Add(BotUser.PetData.petID, BotUser); petCount++; } return BotUser; }
internal void RefreshUser(RoomUser user) { ServerMessage LeaveMessage = PacketHandelingManager.GetRecycledItem(OutputCode.UserRemoveMessageEvent); LeaveMessage.AddString(user.VirtualId.ToString()); room.SendMessage(LeaveMessage); ServerMessage EnterMessage = PacketHandelingManager.GetRecycledItem(OutputCode.UsersMessageEvent); EnterMessage.AddInt32(1); user.Serialize(EnterMessage); room.SendMessage(EnterMessage); }
public void parse(GameClient Session, ClientMessage Event) { int num = Event.PopWiredInt32(); if (num > 0 && (Session != null && Session.GetHabbo() != null)) { Session.GetHabbo().GroupID = num; using (DatabaseClient @class = PhoenixEnvironment.GetDatabase().GetClient()) { @class.ExecuteQuery(string.Concat(new object[] { "UPDATE user_stats SET groupid = ", num, " WHERE Id = ", Session.GetHabbo().Id, " LIMIT 1;" })); } DataTable dataTable_ = Session.GetHabbo().GroupMemberships; if (dataTable_ != null) { ServerMessage Message = new ServerMessage(915u); Message.AppendInt32(dataTable_.Rows.Count); foreach (DataRow dataRow in dataTable_.Rows) { Group class2 = GroupManager.GetGroup((int)dataRow["groupid"]); Message.AppendInt32(class2.Id); Message.AppendStringWithBreak(class2.Name); Message.AppendStringWithBreak(class2.Badge); if (Session.GetHabbo().GroupID == class2.Id) { Message.AppendBoolean(true); } else { Message.AppendBoolean(false); } } Session.SendMessage(Message); if (Session.GetHabbo().InRoom) { Room class14_ = Session.GetHabbo().CurrentRoom; RoomUser class3 = class14_.GetRoomUserByHabbo(Session.GetHabbo().Id); ServerMessage Message2 = new ServerMessage(28u); Message2.AppendInt32(1); class3.Serialize(Message2); class14_.SendMessage(Message2, null); Group class4 = GroupManager.GetGroup(Session.GetHabbo().GroupID); if (!class14_.list_17.Contains(class4)) { class14_.list_17.Add(class4); ServerMessage Message3 = new ServerMessage(309u); Message3.AppendInt32(class14_.list_17.Count); foreach (Group class2 in class14_.list_17) { Message3.AppendInt32(class2.Id); Message3.AppendStringWithBreak(class2.Badge); } class14_.SendMessage(Message3, null); } else { foreach (Group current in class14_.list_17) { if (current == class4 && current.Badge != class4.Badge) { ServerMessage Message3 = new ServerMessage(309u); Message3.AppendInt32(class14_.list_17.Count); foreach (Group class2 in class14_.list_17) { Message3.AppendInt32(class2.Id); Message3.AppendStringWithBreak(class2.Badge); } class14_.SendMessage(Message3, null); } } } } } } }