public void Handle(GameClient session, ClientMessage message) { Room room = Essential.GetGame().GetRoomManager().GetRoom(session.GetHabbo().CurrentRoomId); if (room != null && (room.CheckRights(session, true))) { uint botId = message.PopWiredUInt(); UserBot bot = session.GetHabbo().GetInventoryComponent().GetBotById(botId); if (bot != null && !bot.PlacedInRoom) { int num = message.PopWiredInt32(); int num2 = message.PopWiredInt32(); if (room.method_30(num, num2, 0.0, true, false))//&& !room.ContainsBot()) { bot.PlacedInRoom = true; bot.RoomId = (int)room.Id; List <RandomSpeech> list = new List <RandomSpeech>(); List <BotResponse> list2 = new List <BotResponse>(); try { room.AddBotToRoom(new RoomBot(bot.BotId, (uint)bot.RoomId, AIType.UserBot, "freeroam", bot.Name, "", bot.Look, num, num2, 0, 0, 0, 0, 0, 0, ref list, ref list2, 0), bot); } catch (Exception e) { Console.WriteLine(e.ToString()); } session.GetHabbo().GetInventoryComponent().RemoveBotById(bot.BotId); using (DatabaseClient dbClient = Essential.GetDatabase().GetClient()) { dbClient.ExecuteQuery("UPDATE user_bots SET room_id = '" + bot.RoomId + "', x = " + num + " , y = " + num2 + " WHERE id = '" + botId + "' LIMIT 1"); } session.SendMessage(session.GetHabbo().GetInventoryComponent().ComposeBotInventoryListMessage()); } } } }
public void Handle(GameClient Session, ClientMessage Event) { if (!Session.GetHabbo().CurrentRoom.CheckRights(Session, true)) { return; } Room room = Session.GetHabbo().CurrentRoom; uint id = Event.PopWiredUInt(); int ActionType = Event.PopWiredInt32(); RoomUser BotUser = room.getBot(id); /*string Username = Event.PopFixedString(); * * BotUser.RoomBot.Name = Username; * using(DatabaseClient dbClient = Essential.GetDatabase().GetClient()) * { * dbClient.AddParamWithValue("username", Username); * dbClient.ExecuteQuery("UPDATE user_bots SET name=@username WHERE id=" + id); * }*/ List <RandomSpeech> list = new List <RandomSpeech>(); List <BotResponse> list2 = new List <BotResponse>(); int currentX = BotUser.X; int currentY = BotUser.Y; int currentRot = BotUser.BodyRotation; double currentH = BotUser.double_0; UserBot bot = null; switch (ActionType) { case 1: string Look = Session.GetHabbo().Figure; BotUser.RoomBot.Look = Look; room.method_6(BotUser.VirtualId, false); using (DatabaseClient dbClient = Essential.GetDatabase().GetClient()) { dbClient.AddParamWithValue("look", Look); dbClient.ExecuteQuery("UPDATE user_bots SET look=@look WHERE id=" + id); bot = Essential.GetGame().GetCatalog().RetrBot(dbClient.ReadDataRow("SELECT * FROM user_bots WHERE id=" + id)); } room.AddBotToRoom(new RoomBot(id, Session.GetHabbo().CurrentRoomId, AIType.UserBot, "freeroam", BotUser.RoomBot.Name, BotUser.RoomBot.Motto, Look, currentX, currentY, 0, currentRot, 0, 0, 0, 0, ref list, ref list2, 0), bot); break; case 2: string Data = Event.PopFixedString(); DataRow BotData; string[] firstdata = Data.Split(';'); string[] toinendata = firstdata[0].Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); string automaticChat = firstdata[2]; string speakingInterval = firstdata[4]; //seconds if (String.IsNullOrEmpty(speakingInterval) || Convert.ToInt32(speakingInterval) <= 0) { speakingInterval = "7"; } using (DatabaseClient dbClient = Essential.GetDatabase().GetClient()) { dbClient.ExecuteQuery("DELETE FROM bots_speech WHERE bot_id = '" + id + "'"); } for (int i = 0; i <= toinendata.Length - 1; i++) { using (DatabaseClient dbClient = Essential.GetDatabase().GetClient()) { dbClient.AddParamWithValue("data", toinendata[i]); dbClient.ExecuteQuery("INSERT INTO `bots_speech` (`bot_id`, `text`) VALUES ('" + id + "', @data)"); dbClient.ExecuteQuery("UPDATE user_bots SET automatic_chat='" + automaticChat + "',speaking_interval=" + Convert.ToInt32(speakingInterval) + " WHERE id = " + id); } } using (DatabaseClient dbClient = Essential.GetDatabase().GetClient()) { BotData = dbClient.ReadDataRow("SELECT * FROM user_bots WHERE id = '" + id + "'"); } DataTable BotSpeech; using (DatabaseClient dbClient = Essential.GetDatabase().GetClient()) { BotSpeech = dbClient.ReadDataTable("SELECT text, shout, bot_id FROM bots_speech;"); bot = Essential.GetGame().GetCatalog().RetrBot(dbClient.ReadDataRow("SELECT * FROM user_bots WHERE id=" + id)); } foreach (DataRow Row2 in BotSpeech.Rows) { list.Add(new RandomSpeech((string)Row2["text"], Essential.StringToBoolean(Row2["shout"].ToString()), Convert.ToUInt32(Row2["bot_id"]))); } room.method_6(BotUser.VirtualId, false); room.AddBotToRoom(new RoomBot((uint)BotData["id"], (uint)BotData["room_id"], AIType.UserBot, "freeroam", (string)BotData["name"], (string)BotData["motto"], (string)BotData["look"], currentX, currentY, 0, currentRot, 0, 0, 0, 0, ref list, ref list2, (int)Session.GetHabbo().Id), bot); break; case 3: //stop dancing break; case 4: if (BotUser.DanceId > 0) { BotUser.DanceId = 0; } else { Random rnd = new Random(); BotUser.DanceId = rnd.Next(1, 4); } ServerMessage message = new ServerMessage(Outgoing.Dance); message.AppendInt32(BotUser.VirtualId); message.AppendInt32(BotUser.DanceId); Session.GetHabbo().CurrentRoom.SendMessage(message, null); break; case 5: string Username = Event.PopFixedString(); if (!Essential.IsValidName(Username)) { break; } BotUser.RoomBot.Name = Username; room.method_6(BotUser.VirtualId, false); using (DatabaseClient dbClient = Essential.GetDatabase().GetClient()) { dbClient.AddParamWithValue("username", Username); dbClient.ExecuteQuery("UPDATE user_bots SET name=@username WHERE id=" + id); bot = Essential.GetGame().GetCatalog().RetrBot(dbClient.ReadDataRow("SELECT * FROM user_bots WHERE id=" + id)); } room.AddBotToRoom(new RoomBot(id, Session.GetHabbo().CurrentRoomId, AIType.UserBot, "freeroam", Username, BotUser.RoomBot.Motto, BotUser.RoomBot.Look, currentX, currentY, 0, currentRot, 0, 0, 0, 0, ref list, ref list2, 0), bot); break; default: //nothing break; } }