public Room LoadRoom(int Id, bool BotCheck) { Room Room = null; if (TryGetRoom(Id, out Room)) { return(Room); } RoomData Data = GenerateRoomData(Id); if (Data == null) { return(null); } Room = new Room(Data); if (!_rooms.ContainsKey(Room.RoomId)) { _rooms.TryAdd(Room.RoomId, Room); new Thread(() => { Thread.Sleep(2000); RoleplayBotManager.DeployCachedBots(Room); }).Start(); } return(Room); }
private void InitializeMafiaBots() { this.ClearMafiaBots(); #region Get Bots from Cache List <RoleplayBot> MafiaBots = RoleplayBotManager.CachedRoleplayBots.Values.Where(RoleplayBot => RoleplayBot != null && RoleplayBot.AIType == RoleplayBotAIType.MAFIAWARS).ToList(); RoleplayBot GreenBoss, BlueBoss, GreenThug1, GreenThug2, BlueThug1, BlueThug2; GreenBoss = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && MafiaWarsBot.Motto.ToLower().Contains("boss")).FirstOrDefault(); BlueBoss = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && MafiaWarsBot.Motto.ToLower().Contains("boss")).FirstOrDefault(); GreenThug1 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).First(); GreenThug2 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).Last(); BlueThug1 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).First(); BlueThug2 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).Last(); GreenBoss.Dead = false; GreenBoss.Invisible = false; GreenThug1.Dead = false; GreenThug1.Invisible = false; GreenThug2.Dead = false; GreenThug2.Invisible = false; BlueBoss.Dead = false; BlueBoss.Invisible = false; BlueThug1.Dead = false; BlueThug1.Invisible = false; BlueThug2.Dead = false; BlueThug2.Invisible = false; #endregion #region Deploy bots RoleplayBotManager.DeployBotByID(GreenBoss.Id); RoleplayBotManager.DeployBotByID(BlueBoss.Id); RoleplayBotManager.DeployBotByID(GreenThug1.Id); RoleplayBotManager.DeployBotByID(GreenThug2.Id); RoleplayBotManager.DeployBotByID(BlueThug1.Id); RoleplayBotManager.DeployBotByID(BlueThug2.Id); #endregion #region Insert deployed bots into list new Thread(() => { Thread.Sleep(2000); this.MafiaBots.TryAdd("greenboss", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id)); this.MafiaBots.TryAdd("greenthug1", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id)); this.MafiaBots.TryAdd("greenthug2", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id)); this.MafiaBots.TryAdd("blueboss", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id)); this.MafiaBots.TryAdd("bluethug1", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id)); this.MafiaBots.TryAdd("bluethug2", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id)); }).Start(); #endregion }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } int BotId = Packet.PopInt(); if (BotId == 0) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser BotUser = null; if (!Room.GetRoomUserManager().TryGetBot(BotId, out BotUser)) { return; } if (Session.GetHabbo().Id != BotUser.BotData.ownerID && !Session.GetHabbo().GetPermissions().HasRight("bot_place_any_override")) { Session.SendWhisper("Você só pode pegar seus próprios bots!"); return; } if (BotUser.GetBotRoleplay() == null) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `bots` SET `room_id` = '0' WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("id", BotId); dbClient.RunQuery(); } Room.GetGameMap().RemoveUserFromMap(BotUser, new System.Drawing.Point(BotUser.X, BotUser.Y)); Session.GetHabbo().GetInventoryComponent().TryAddBot(new Bot(Convert.ToInt32(BotUser.BotData.Id), Convert.ToInt32(BotUser.BotData.ownerID), BotUser.BotData.Name, BotUser.BotData.Motto, BotUser.BotData.Look, BotUser.BotData.Gender)); Session.SendMessage(new BotInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetBots())); Room.GetRoomUserManager().RemoveBot(BotUser.VirtualId, false); } else { Room.GetGameMap().RemoveUserFromMap(BotUser, new System.Drawing.Point(BotUser.X, BotUser.Y)); Session.GetHabbo().GetInventoryComponent().TryAddBot(new Bot(Convert.ToInt32(BotUser.BotData.Id), Convert.ToInt32(BotUser.BotData.ownerID), BotUser.BotData.Name, BotUser.BotData.Motto, BotUser.BotData.Look, BotUser.BotData.Gender)); Session.SendMessage(new BotInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetBots())); RoleplayBotManager.EjectDeployedBot(BotUser, Room, true); } }
/// <summary> /// Removes a bot friendship /// </summary> /// <param name="BotId"></param> internal void RemoveBotAsFriend(int BotId) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `rp_bots_friendships` WHERE `bot_id` = '" + BotId + "' AND `user_id` = '" + Client.GetHabbo().Id + "'"); } Client.SendWhisper("Você removeu com sucesso " + RoleplayBotManager.GetCachedBotById(BotId).Name + " da sua lista de contatos do celular!", 1); }
public bool AbortHandler(params object [] Params) { Room Room = this.InteractingBot.DRoom; RoleplayBotManager.EjectDeployedBot(this.InteractingBot.DRoomUser, Room); this.InteractingBot.Invisible = true; this.Active = false; return(true); }
/// <summary> /// Sends a message to a bot /// </summary> /// <param name="BotId"></param> /// <param name="Message"></param> internal void MessageBot(int BotId, string Message) { var serverMessage = new NewConsoleMessageComposer(Client.GetHabbo().Id, Message); serverMessage.WriteInteger(BotId); //userid serverMessage.WriteString(Client.GetHabbo().Username); serverMessage.WriteInteger(0); RoomUser Bot = RoleplayBotManager.GetDeployedBotById(BotId - RoleplayBotManager.BotFriendMultiplyer); Bot.GetBotRoleplayAI().OnMessaged(Client, Message); }
/// <summary> /// Gets the bots outfit /// </summary> /// <returns></returns> public string[] GetOutFit() { string[] Outfit = new string[2]; Outfit[0] = this.Figure; Outfit[1] = this.Motto; RoomUser User = RoleplayBotManager.GetDeployedBotById(this.Id); if (this.Dead) { if (this.Gender.ToLower() == "m") { Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-280-83.ch-215-83"); } if (this.Gender.ToLower() == "f") { Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-710-83.ch-635-83"); } Outfit[1] = "[MORTO] Paciente do Hospital"; } else if (this.Jailed) { Random Random = new Random(); int PrisonNumber = Random.Next(10000, 100000); if (Gender.ToLower() == "m") { Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-280-1323.sh-3016-92.ch-220-1323"); } if (Gender.ToLower() == "f") { Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-710-1323.sh-3016-92.ch-3067-1323"); } Outfit[1] = "[PRESO] ID do Criminoso [#" + PrisonNumber + "]"; } else if (User != null && User.GetBotRoleplayAI() != null && User.GetBotRoleplayAI().OnDuty) { if (this.WorkUniform != "Nenhum") { Outfit[0] = RoleplayManager.SplitFigure(this.Figure, this.WorkUniform); } Outfit[1] = "[TRABALHANDO] [" + GroupManager.GetJob(this.Corporation).Name + "]"; } return(Outfit); }
/// <summary> /// Handles teleporting /// </summary> /// <param name="Self">Bot's roomuser instance</param> /// <param name="Room">Bot's room</param> public void HandleTeleporting(RoomUser Self, Room Room) { if (Self == null || Room == null) { return; } RoleplayBot Bot = Self.GetBotRoleplay(); if (!Bot.Teleported) { if (Bot.TeleporterEntering == null) { Bot.Teleporting = false; return; } if (Self.Coordinate == Bot.TeleporterEntering.Coordinate) { // Lets teleport the bot! Self.GetBotRoleplayAI().GetRoom().SendMessage(new UserRemoveComposer(Self.VirtualId)); Bot.Teleported = true; Bot.X = Bot.TeleporterExiting.GetX; Bot.Y = Bot.TeleporterExiting.GetY; Bot.SpawnId = Bot.TeleporterExiting.RoomId; Bot.LastTeleport = Bot.TeleporterExiting; Room TeleRoom = RoleplayManager.GenerateRoom(Bot.TeleporterExiting.RoomId); RoleplayBotManager.TransportDeployedBot(Self, TeleRoom.Id, true); if (Bot != null && Bot.TimerManager != null && Bot.TimerManager.ActiveTimers != null && Bot.TimerManager.ActiveTimers.ContainsKey("teleport")) { Bot.TimerManager.ActiveTimers["teleport"].EndTimer(); if (Bot.UserAttacking != null && Bot.UserAttacking.GetHabbo() != null) { Bot.TimerManager.CreateTimer("attack", this, 10, true, Bot.UserAttacking.GetHabbo().Id); } else { Bot.MoveRandomly(); } } } else { // Lets make the bot walk to the teleport! Self.MoveTo(Bot.TeleporterEntering.GetX, Bot.TeleporterEntering.GetY); } } return; }
/// <summary> /// Begins death sequence /// </summary> public override void Execute() { try { if (base.CachedBot == null || base.CachedBot.DRoomUser == null || base.CachedBot.DRoom == null) { base.EndTimer(); return; } if (!base.CachedBot.DRoomUser.GetBotRoleplay().Dead) { base.EndTimer(); return; } if (base.CachedBot.DRoomUser == null) { return; } TimeLeft -= 1000; if (TimeLeft > 0) { return; } base.CachedBot.DRoomUser.Chat("*Libertado da prisão*", true); base.CachedBot.DRoomUser.GetBotRoleplay().Jailed = false; Room RandRoom = RoleplayManager.GenerateRoom(1); RoleplayBotManager.TransportDeployedBot(CachedBot.DRoomUser, RandRoom.Id, false); if (base.CachedBot.DRoomUser.GetBotRoleplay().RoamBot) { base.CachedBot.MoveRandomly(); } base.EndTimer(); return; } catch { base.EndTimer(); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int UserId = Packet.PopInt(); if (UserId > 1000000) { int BotId = UserId - 1000000; var Bot = RoleplayBotManager.GetCachedBotById(BotId); if (Bot != null) { Session.SendMessage(new HabboUserBadgesComposer(null, Bot)); } } else { Habbo Habbo = PlusEnvironment.GetHabboById(UserId); if (Habbo == null) { return; } if (Session.GetRoleplay().CombatMode) { if (Session.GetRoleplay().InCombat) { Session.GetRoleplay().InCombat = false; if (Habbo.GetClient() != null && Habbo.GetClient().GetRoomUser() != null && !Habbo.GetClient().GetRoomUser().IsBot) { if (Session.GetRoleplay().EquippedWeapon == null) { CombatManager.GetCombatType("fist").Execute(Session, Habbo.GetClient()); } else { CombatManager.GetCombatType("gun").Execute(Session, Habbo.GetClient()); } } } } Session.SendMessage(new HabboUserBadgesComposer(Habbo)); } }
private void ClearMafiaBots() { lock (this.MafiaBots) { if (this.MafiaBots.Count > 0) { foreach (RoomUser User in this.MafiaBots.Values) { if (User == null) { continue; } RoleplayBotManager.EjectDeployedBot(User, User.GetRoom(), false); } this.MafiaBots.Clear(); } } }
/// <summary> /// Initiates the bots death /// </summary> public void InitiateDeath() { this.Dead = true; this.UserAttacking = null; this.TimerManager.EndAllTimers(); this.CurHealth = this.MaxHealth; RoomUser Bot = RoleplayBotManager.GetDeployedBotById(this.Id); if (Bot == null) { return; } int HospitalRoomId = Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2")); Room Hospital = RoleplayManager.GenerateRoom(HospitalRoomId); RoleplayBotManager.TransportDeployedBot(Bot, HospitalRoomId, true); this.TimerManager.CreateTimer("botdeath", this, 1000, true); }
private void UseTeleport() { RoomUser BotUserInstance = this.InteractingBot.DRoomUser; this.InteractingBot.X = this.LeavingTeleport.GetX; this.InteractingBot.Y = this.LeavingTeleport.GetY; this.InteractingBot.Z = this.LeavingTeleport.GetZ; this.InteractingBot.SpawnRot = this.LeavingTeleport.Rotation; this.InteractingBot.DRoomUser.ClearMovement(true); this.InteractingBot.SpawnId = this.LeavingTeleport.RoomId; this.InteractingBot.LastTeleport = this.LeavingTeleport; Room TeleRoom = RoleplayManager.GenerateRoom(this.LeavingTeleport.RoomId); RoleplayBotManager.TransportDeployedBot(BotUserInstance, TeleRoom.Id, true); this.UsedTeleport = true; }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int UserId = Packet.PopInt(); if (UserId > 1000000) { int BotId = UserId - 1000000; var Bot = RoleplayBotManager.GetCachedBotById(BotId); if (Bot != null) { Session.SendMessage(new GetRelationshipsComposer(null, Bot)); } } else { Habbo Habbo = PlusEnvironment.GetHabboById(UserId); if (Habbo == null) { return; } #region Open user statistics dialogue (sockets) if (Habbo.GetClient() != null) { if (Habbo.GetClient() != Session) { PlusEnvironment.GetGame().GetWebEventManager().ExecuteWebEvent(Session, "event_characterbar", "" + Habbo.Id); } } #endregion Session.SendMessage(new GetRelationshipsComposer(Habbo)); } }
/// <summary> /// Stops the delivery bot /// </summary> public override void Execute() { try { if (base.CachedBot == null || base.CachedBot.DRoomUser == null || base.CachedBot.DRoom == null) { base.EndTimer(); return; } Item Item = (Item)Params[0]; if (Item != null) { var Point = new Point(Item.GetX, Item.GetY); if (base.CachedBot.DRoomUser.Coordinate != Point) { return; } Item.ExtraData = "2"; Item.UpdateState(false, true); Item.RequestUpdate(2, true); } RoleplayBotManager.EjectDeployedBot(base.CachedBot.DRoomUser, base.CachedBot.DRoom); base.CachedBot.Invisible = true; base.EndTimer(); } catch { base.EndTimer(); } }
/// <summary> /// Disposes of the roleplay bots instance /// </summary> public void Dispose() { if (DRoomUser != null) { if (DRoomUser.GetBotRoleplayAI() != null) { DRoomUser.GetBotRoleplayAI().StopActivities(); } RoleplayBotManager.EjectDeployedBot(this.DRoomUser, this.DRoom, false); } Id = 0; Name = null; Figure = null; Gender = null; Motto = null; VirtualId = 0; MaxHealth = 0; CurHealth = 0; Strength = 0; Level = 0; SpawnId = 0; OriginalId = 0; Deployed = false; Dead = false; Jailed = false; X = 0; Y = 0; oX = 0; oY = 0; Z = 0; oZ = 0; SpawnRot = 0; RoomBotInstance = null; HabboInstance = null; Responses = null; UserFollowing = null; UserAttacking = null; Attacking = false; Roaming = false; Following = false; RoamBot = false; RoamCityBot = false; AddableBot = false; Invisible = false; TeleporterEntering = null; TeleporterExiting = null; LastTeleport = null; Teleporting = false; Teleported = false; FollowCooldown = 0; AttackCooldown = 0; RoamCooldown = 0; LookCooldown = 0; RoamInterval = 0; AttackInterval = 0; FollowInterval = 0; RoomStayInterval = 0; RoomStayTime = 0; AIType = 0; TimerManager.EndAllTimers(); TimerManager = null; CooldownManager.EndAllCooldowns(); CooldownManager = null; this.RoomBotInstance.Dispose(); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Você deve incluir uma coisa para atualizar, e.x. :atualizar catalogo", 1); return; } string UpdateVariable = Params[1]; switch (UpdateVariable.ToLower()) { case "cata": case "catalog": case "catalogue": case "catalogo": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_catalog")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_catalog'.", 1); break; } PlusEnvironment.GetGame().GetCatalog().Init(PlusEnvironment.GetGame().GetItemManager()); PlusEnvironment.GetGame().GetClientManager().SendMessage(new CatalogUpdatedComposer()); Session.SendWhisper("Catálogo atualizado com sucesso.", 1); break; } case "items": case "furni": case "furniture": case "mobis": case "mobi": case "mobilias": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_furni")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_furni'.", 1); break; } PlusEnvironment.GetGame().GetItemManager().Init(); Session.SendWhisper("Itens/Mobis atualizados com sucesso.", 1); break; } case "models": case "modelos": case "model": case "quartos": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_models")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_models'.", 1); break; } PlusEnvironment.GetGame().GetRoomManager().LoadModels(); Session.SendWhisper("Modelos de quartos atualizados com sucesso.", 1); break; } case "promotions": case "promocoes": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_promotions")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_promotions'.", 1); break; } PlusEnvironment.GetGame().GetLandingManager().LoadPromotions(); Session.SendWhisper("Landing view promotions successfully updated.", 1); break; } case "youtube": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_youtube")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_youtube'", 1); break; } PlusEnvironment.GetGame().GetTelevisionManager().Init(); Session.SendWhisper("A lista de televisões do Youtube foi atualizada com sucesso. ", 1); break; } case "filter": case "filtro": case "filtros": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_filter")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_filter'", 1); break; } PlusEnvironment.GetGame().GetChatManager().GetFilter().Init(); Session.SendWhisper("Definições de filtro atualizadas com sucesso.", 1); break; } case "navigator": case "navegador": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_navigator")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_navigator'.", 1); break; } PlusEnvironment.GetGame().GetNavigator().Init(); Session.SendWhisper("Itens do navegador atualizados com sucesso.", 1); break; } case "ranks": case "rights": case "permissions": case "cargos": case "permissao": case "permissoes": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_permissions")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_rights'.", 1); break; } PlusEnvironment.GetGame().GetPermissionManager().Init(); foreach (GameClient Client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (Client == null || Client.GetHabbo() == null || Client.GetHabbo().GetPermissions() == null) { continue; } Client.GetHabbo().GetPermissions().Init(Client.GetHabbo()); } Session.SendWhisper("Definições de Cargo atualizadas com sucesso.", 1); break; } case "config": case "settings": case "configuracoes": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_configuration")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_configuration'.", 1); break; } PlusEnvironment.ConfigData = new ConfigData(); Session.SendWhisper("Configuração do servidor atualizada com sucesso.", 1); break; } case "bans": case "ban": case "banimentos": case "banidos": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_bans")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_bans'.", 1); break; } PlusEnvironment.GetGame().GetModerationManager().ReCacheBans(); Session.SendWhisper("A lista de banidos foi atualizada com sucesso.", 1); break; } case "quests": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_quests")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_quests'.", 1); break; } PlusEnvironment.GetGame().GetQuestManager().Init(); Session.SendWhisper("Definições de Tarefas atualizadas com êxito.", 1); break; } case "achievements": case "conquistas": case "conquista": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_achievements")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_achievements'.", 1); break; } PlusEnvironment.GetGame().GetAchievementManager().LoadAchievements(); Session.SendWhisper("Definições de conquistas atualizadas com êxito.", 1); break; } case "clothing": case "visuais": case "roupas": case "visual": case "roupa": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_clothing")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_clothing'.", 1); break; } PlusEnvironment.GetGame().GetCatalog().GetClothingManager().Init(); Session.SendWhisper("Mobiliário de vestuário e preços recarregados.", 1); break; } case "moderation": case "moderacao": case "mods": case "moderadores": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_moderation")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_moderation'.", 1); break; } PlusEnvironment.GetGame().GetModerationManager().Init(); PlusEnvironment.GetGame().GetClientManager().ModAlert("As predefinições de moderação foram atualizadas. Recarregue o cliente para ver as novas predefinições."); Session.SendWhisper("Configuração de moderação atualizada com sucesso.", 1); break; } case "tickets": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_tickets")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_tickets'.", 1); break; } if (PlusEnvironment.GetGame().GetModerationTool().Tickets.Count > 0) { PlusEnvironment.GetGame().GetModerationTool().Tickets.Clear(); } PlusEnvironment.GetGame().GetClientManager().ModAlert("Os ingressos foram atualizados. Recarregue o cliente."); Session.SendWhisper("Os ingressos foram atualizados com sucesso.", 1); break; } case "vouchers": case "brindes": case "codigos": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_vouchers")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_vouchers'.", 1); break; } PlusEnvironment.GetGame().GetCatalog().GetVoucherManager().Init(); Session.SendWhisper("Vouchers/Códigos brinde atualizado com sucesso.", 1); break; } case "polls": case "perguntas": case "quiz": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_polls")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_polls'.", 1); break; } int PollLoaded; PlusEnvironment.GetGame().GetPollManager().Init(out PollLoaded); Session.SendWhisper("Polls successfully updated.", 1); break; } case "gamecenter": case "centrodejogos": case "cjogos": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_game_center")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_game_center'.", 1); break; } PlusEnvironment.GetGame().GetGameDataManager().Init(); Session.SendWhisper("Cache do Centro de Jogos atualizado com sucesso.", 1); break; } case "pet_locale": case "lpet": case "petl": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_pet_locale")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_pet_locale'.", 1); break; } PlusEnvironment.GetGame().GetChatManager().GetPetLocale().Init(); Session.SendWhisper("Pet locale cache successfully updated.", 1); break; } case "locale": case "local": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_locale")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_locale'.", 1); break; } PlusEnvironment.GetGame().GetLanguageLocale().Init(); Session.SendWhisper("Local cache atualizado com sucesso.", 1); break; } case "mutant": case "mutante": case "mutantes": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_anti_mutant")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_anti_mutant'.", 1); break; } PlusEnvironment.GetGame().GetAntiMutant().Init(); Session.SendWhisper("Anti mutante recarregado com sucesso.", 1); break; } case "bots": case "bot": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_bots")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_bots'.", 1); break; } PlusEnvironment.GetGame().GetBotManager().Init(); Session.SendWhisper("O gerenciador de Bots foi recarregado com sucesso", 1); break; } case "bots_speech": case "bots speech": case "speech": case "speeches": case "response": case "responses": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_bots")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_bots'", 1); break; } RoleplayBotManager.FetchCachedSpeeches(); Session.SendWhisper("Bots speech and responses successfully reloaded", 1); break; } case "rewards": case "premios": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_rewards")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_rewards'.", 1); break; } PlusEnvironment.GetGame().GetRewardManager().Reload(); Session.SendWhisper("O Gerenciador de recompensas foi recarregado com sucesso.", 1); break; } case "chat_styles": case "echats": case "estilos": case "estilo": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_chat_styles")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_chat_styles'.", 1); break; } PlusEnvironment.GetGame().GetChatManager().GetChatStyles().Init(); Session.SendWhisper("Estilos de bate-papo recarregados com sucesso.", 1); break; } case "badges": case "badge_definitions": case "emblemas": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_badge_definitions")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_badge_definitions'.", 1); break; } PlusEnvironment.GetGame().GetBadgeManager().Init(); Session.SendWhisper("Definições de emblemas recarregadas com sucesso.", 1); break; } case "rpdata": case "roleplaydata": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_roleplay_data")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_roleplaydata'.", 1); break; } RoleplayData.Initialize(); RoleplayManager.UpdateRPData(); Session.SendWhisper("Dados do Roleplay recarregados com sucesso.", 1); break; } case "blacklist": case "listanegra": case "ln": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_blacklist")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_blacklist'.", 1); break; } BlackListManager.Initialize(); Session.SendWhisper("Lista negra recarregada com sucesso.", 1); break; } case "farming": case "agricultura": case "agricolas": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_farming")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_farming'.", 1); break; } FarmingManager.Initialize(); Session.SendWhisper("Artigos agrícolas recarregados com sucesso.", 1); break; } case "events": case "games": case "jogos": case "eventos": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_events")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_events'.", 1); break; } RoleplayGameManager.Initialize(); Session.SendWhisper("Eventos recarregados com sucesso.", 1); break; } case "corps": case "jobs": case "corporations": case "gangs": case "gangues": case "empregos": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_jobs")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_jobs'.", 1); break; } PlusEnvironment.GetGame().GetGroupManager().Initialize(); Session.SendWhisper("Trabalhos e Gangues recarregados com sucesso.", 1); break; } case "turfs": case "turfcaptures": case "gangcaptures": case "territorio": case "territorios": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_turfs")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_turfs'.", 1); break; } TurfManager.Initialize(); Session.SendWhisper("Territórios e Zona de Captura recarregados com sucesso.", 1); break; } case "weapons": case "guns": case "armas": case "arma": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_weapons")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_weapons'.", 1); break; } WeaponManager.Initialize(); #region Refresh User Weapons lock (PlusEnvironment.GetGame().GetClientManager().GetClients) { foreach (GameClient Client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (Client == null || Client.GetHabbo() == null || Client.GetRoleplay() == null) { continue; } if (Client.GetRoleplay().EquippedWeapon == null) { continue; } Client.GetRoleplay().EquippedWeapon = null; Client.GetRoleplay().OwnedWeapons = null; Client.GetRoleplay().OwnedWeapons = Client.GetRoleplay().LoadAndReturnWeapons(); Client.SendWhisper("Um administrador atualizou as armas, sua arma foi retirada, equipe de novo!", 1); } } #endregion Session.SendWhisper("Armas recarregadas com sucesso.", 1); break; } case "food": case "drinks": case "bebidas": case "bebida": case "alimentos": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_food")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_food'.", 1); break; } FoodManager.Initialize(); Session.SendWhisper("Alimentos e bebidas recarregados com sucesso.", 1); break; } case "houses": case "house": case "casas": case "casa": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_houses")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_houses'.", 1); break; } PlusEnvironment.GetGame().GetHouseManager().Init(); Session.SendWhisper("Casas recarregadas com sucesso.", 1); break; } case "crafting": case "construir": case "construcao": case "craft": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_crafting")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_crafting'.", 1); break; } CraftingManager.Initialize(); Session.SendWhisper("Áreas de construção recarregadas com sucesso..", 1); break; } case "lottery": case "loteria": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_lottery")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_lottery'.", 1); break; } LotteryManager.Initialize(); Session.SendWhisper("Loteria recarregados com sucesso.", 1); break; } case "todo": case "tarefas": case "tarefa": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_todo")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_todo'.", 1); break; } ToDoManager.Initialize(); Session.SendWhisper("Lista de Tarefas recarregada com sucesso.", 1); break; } case "bounty": case "bl": case "bounties": case "recompensa": case "recompensas": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_bounty")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_bounty'.", 1); break; } BountyManager.Initialize(); Session.SendWhisper("Lista de recompensas recarregada com sucesso.", 1); break; } case "court": case "jury": case "juiz": case "politica": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_court")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_court'.", 1); break; } RoleplayManager.CourtVoteEnabled = false; RoleplayManager.InnocentVotes = 0; RoleplayManager.GuiltyVotes = 0; RoleplayManager.CourtJuryTime = 0; RoleplayManager.CourtTrialIsStarting = false; RoleplayManager.CourtTrialStarted = false; RoleplayManager.Defendant = null; RoleplayManager.InvitedUsersToJuryDuty.Clear(); Session.SendWhisper("Juiz atualizado com sucesso.", 1); break; } case "chat": case "chats": case "chatroom": case "chatrooms": case "batepapos": case "batepapo": case "whatsapps": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_websocket_chat")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_websocket_chat'.", 1); break; } HabboRoleplay.Web.Util.ChatRoom.WebSocketChatManager.Initialiaze(); Session.SendWhisper("Salas de chat atualizadas com sucesso.", 1); break; } case "gambling": case "texash": case "texas": case "texasholdem": { if (!Session.GetHabbo().GetPermissions().HasCommand("command_update_gambling")) { Session.SendWhisper("Opa, você não tem permissão em 'command_update_gambling'.", 1); break; } TexasHoldEmManager.Initialize(); Session.SendWhisper("Jogos do Texas Holdem atualizados com sucesso.", 1); break; } default: Session.SendWhisper("'" + UpdateVariable + "' não é uma coisa válida para recarregar.", 1); break; } }
/// <summary> /// Waits for delivery bot to arrive with package /// </summary> public override void Execute() { try { if (base.CachedBot == null || base.CachedBot.DRoomUser == null || base.CachedBot.DRoom == null || !RoleplayManager.CalledDelivery || RoleplayManager.DeliveryWeapon == null) { base.EndTimer(); return; } TimeCount++; if (TimeCount < 1000) { return; } if (!this.DeliveryArrived) { RoleplayBot Bot = RoleplayBotManager.GetCachedBotByAI(RoleplayBotAIType.DELIVERY); if (Bot == null) { base.CachedBot.DRoomUser.Chat("O bot de entrega está ocupado agora, desculpe por isso!", true); base.EndTimer(); return; } else { if (!this.DeliveryArrived) { Item Item = null; Bot.GetStopWorkItem(base.CachedBot.DRoom, out Item); if (Item == null) { base.CachedBot.DRoomUser.Chat("O bot de entrega está ocupado agora, desculpe por isso! ", true); base.EndTimer(); return; } RoleplayBotManager.DeployBotByAI(RoleplayBotAIType.DELIVERY, "workitem", base.CachedBot.DRoom.Id); this.DeliveryArrived = true; } } } if (base.CachedBot.DRoom.GetRoomItemHandler().GetFloor.Where(x => x.GetBaseItem().InteractionType == InteractionType.DELIVERY_BOX).ToList().Count <= 0) { return; } TimeCount2++; if (TimeCount2 < 200) { return; } RoleplayManager.CalledDelivery = false; HandleDelivery(); base.EndTimer(); } catch { base.EndTimer(); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } Room Room = null; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) { return; } if ((Room.AllowPets == 0 && !Room.CheckRights(Session, true)) || !Room.CheckRights(Session, true)) { Session.SendMessage(new RoomErrorNotifComposer(1)); return; } if (Room.GetRoomUserManager().PetCount > PlusStaticGameSettings.RoomPetPlacementLimit) { Session.SendMessage(new RoomErrorNotifComposer(2));//5 = I have too many. return; } Pet Pet = null; if (!Session.GetHabbo().GetInventoryComponent().TryGetPet(Packet.PopInt(), out Pet)) { return; } if (Pet == null) { return; } if (Pet.PlacedInRoom) { Session.SendNotification("Este animal de estimação já está no quarto"); return; } int X = Packet.PopInt(); int Y = Packet.PopInt(); if (!Room.GetGameMap().CanWalk(X, Y, false)) { Session.SendMessage(new RoomErrorNotifComposer(4)); return; } RoomUser OldPet = null; if (Room.GetRoomUserManager().TryGetPet(Pet.PetId, out OldPet)) { Room.GetRoomUserManager().RemoveBot(OldPet.VirtualId, false); } Pet.X = X; Pet.Y = Y; Pet.PlacedInRoom = true; Pet.RoomId = Room.RoomId; List <RandomSpeech> RndSpeechList = new List <RandomSpeech>(); RoomBot RoomBot = new RoomBot(Pet.PetId, Pet.RoomId, "pet", "freeroam", Pet.Name, "", Pet.Look, X, Y, 0, 0, 0, 0, 0, 0, ref RndSpeechList, "", 0, Pet.OwnerId, false, 0, false, 0); if (RoomBot == null) { return; } //old//Room.GetRoomUserManager().DeployBot(RoomBot, Pet); RoleplayBotManager.DeployBotByID(RoomBot.Id, "owner", Room.Id); Pet.DBState = DatabaseUpdateState.NeedsUpdate; Room.GetRoomUserManager().UpdatePets(); Pet ToRemove = null; if (!Session.GetHabbo().GetInventoryComponent().TryRemovePet(Pet.PetId, out ToRemove)) { log.Error("Erro ao remover o animal de estimação: " + ToRemove.PetId); return; } Session.SendMessage(new PetInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetPets())); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int userID = Packet.PopInt(); Boolean IsMe = Packet.PopBoolean(); if (userID >= 5000000) { Group Group = GroupManager.GetGang(userID - 5000000); Session.SendMessage(new GroupInfoComposer(Group, Session, true)); return; } if (userID > 1000000) { RoleplayBot Bot = RoleplayBotManager.GetCachedBotById(userID - 1000000); List <Group> BotGroups = new List <Group>(); if (Bot.Corporation > 0) { Group Job = GroupManager.GetJob(Bot.Corporation); if (Job != null) { BotGroups.Add(Job); } } else { Group Job = GroupManager.GetJob(1); if (Job != null) { BotGroups.Add(Job); } } Group Gang = GroupManager.GetGang(1000); if (Gang != null) { BotGroups.Add(Gang); } int BotFriendCount = 0; using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT COUNT(0) FROM `rp_bots_friendships` WHERE `bot_id` = '" + Bot.Id + "'"); BotFriendCount = dbClient.getInteger(); } Session.SendMessage(new ProfileInformationComposer(null, Session, BotGroups, BotFriendCount, Bot)); return; } Habbo targetData = PlusEnvironment.GetHabboById(userID); List <Group> Groups = PlusEnvironment.GetGame().GetGroupManager().GetGroupsForUser(targetData.Id); int friendCount = 0; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT COUNT(0) FROM `messenger_friendships` WHERE (`user_one_id` = @userid OR `user_two_id` = @userid)"); dbClient.AddParameter("userid", userID); friendCount = dbClient.getInteger(); } Session.SendMessage(new ProfileInformationComposer(targetData, Session, Groups, friendCount)); }
public static void InvokeCommand(string inputData) { if (string.IsNullOrEmpty(inputData)) { return; } try { #region Command parsing string[] parameters = inputData.Split(' '); switch (parameters[0].ToLower()) { #region General #region wha case "wha": { string Notice = CommandManager.MergeParams(parameters, 1); foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (client == null) { continue; } if (client.GetHabbo() == null) { continue; } if (client.LoggingOut) { continue; } client.SendWhisper("[Alerta do HOTEL] " + Notice, 33); } log.Info("Enviado Alerta: '" + Notice + "'"); break; } #endregion #region ban case "pban": case "ban": case "banir": { string User = parameters[1].ToLower(); GameClient Session = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(User); Session.SendNotification("Você foi banido!"); if (Session != null) { #region Online Ban if (Session.GetHabbo() == null) { return; } PlusEnvironment.GetGame().GetModerationManager().BanUser("[SISTEMA]", ModerationBanType.USERNAME, Session.GetHabbo().Username, "Ban automático ", 1538641023.14615); if (Session != null) { Session.Disconnect(true); } #endregion } else { #region Offline Ban using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { double ExpireTimestamp = 1538641023.14615; dbClient.SetQuery("REPLACE INTO `bans` (`bantype`, `value`, `reason`, `expire`, `added_by`,`added_date`) VALUES ('user', '" + User + "','Automatic console ban', " + ExpireTimestamp + ", '[SYSTEM]', '" + PlusEnvironment.GetUnixTimestamp() + "');"); dbClient.RunQuery(); } #endregion } log.Info("Proibido permanentemente: '" + User + "'"); break; } #endregion #region unban case "unban": case "desbanir": case "desban": { string User = parameters[1].ToLower(); using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `ip_last`,`machine_id` FROM `users` where `username` = '" + User + "' LIMIT 1"); var Row = dbClient.getRow(); var IPLast = Convert.ToString(Row["ip_last"]); var MachineID = Convert.ToString(Row["machine_id"]); dbClient.RunQuery("DELETE FROM `bans` WHERE `value` = '" + User + "' OR `value` = '" + IPLast + "' OR `value` = '" + MachineID + "'"); } log.Info("Desbanido com sucesso: '" + User + "'!"); break; } #endregion #region dc case "dc": case "desconectar": { #region Variables string User = parameters[1].ToLower(); GameClient Session = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(User); #endregion #region Conditions if (Session == null) { log.Info("'" + User + "' está offline!"); return; } #endregion Session.Disconnect(true); log.Info("'" + User + "' desconectado com sucesso!"); break; } #endregion #region senduser case "senduser": case "uenviar": case "enviaru": { #region Variables string User = parameters[1].ToLower(); GameClient Session = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(User); int RoomId = 1; if (!int.TryParse(parameters[2], out RoomId)) { log.Info("Quarto ID inválido!"); return; } RoomId = Convert.ToInt32(parameters[2]); Room TargetRoom = HabboRoleplay.Misc.RoleplayManager.GenerateRoom(RoomId); #endregion #region Null checks if (Session == null) { log.Info("'" + User + "' está offline!"); return; } if (Session.GetRoleplay() == null) { log.Info("'" + User + "' está offline!"); return; } if (Session.GetHabbo() == null) { log.Info("'" + User + "' está offline!"); return; } if (TargetRoom == null) { log.Info("'Quarto' está nulo!"); } #endregion #region Conditions if (TargetRoom == Session.GetHabbo().CurrentRoom) { log.Info("Este usuário já está nesta sala!"); return; } if (Session.GetRoleplay().IsDead) { Session.GetRoleplay().IsDead = false; Session.GetRoleplay().ReplenishStats(); } if (Session.GetRoleplay().IsJailed) { Session.GetRoleplay().IsJailed = false; Session.GetRoleplay().JailedTimeLeft = 0; } #endregion RoleplayManager.SendUser(Session, RoomId, "Você foi enviado para o quarto " + TargetRoom.Name + " [Quarto ID: " + RoomId + "] por um administrador!"); log.Info("Enviou com sucesso: '" + Session.GetHabbo().Username + "' para o Quarto ID: '" + RoomId + "'"); break; } #endregion #region kill case "kill": case "matar": { #region Variables string User = parameters[1].ToLower(); GameClient Session = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(User); #endregion #region Null Checks if (Session == null) { log.Info("'" + User + "' está offline!"); return; } if (Session.GetRoleplay() == null) { log.Info("'" + User + "' está offline!"); return; } if (Session.GetHabbo() == null) { log.Info("'" + User + "' está offline!"); return; } #endregion Session.GetRoleplay().CurHealth = 0; log.Info("Matou com sucesso: '" + Session.GetHabbo().Username + "'"); break; } #endregion #endregion #region Server Management #region stop case "deslig": case "shutdown": case "parar": case "stop": { Logging.DisablePrimaryWriting(true); Logging.WriteLine("O servidor está salvando móveis de usuários, quartos, etc. ESPERE QUE O SERVIDOR FECHE, NÃO SALE DO PROCESSO NO GERADOR DE TAREFAS!!", ConsoleColor.Yellow); PlusEnvironment.PerformShutDown(false); break; } #endregion #region refresh case "update": case "refresh": case "atualizar": { if (parameters.Length < 2) { Console.WriteLine("Comando inválido!: :atualizar <o que?>"); return; } string ToRefresh = parameters[1].ToLower(); switch (ToRefresh) { #region p case "ranks": case "rights": case "permissions": case "cargos": case "permissoes": { PlusEnvironment.GetGame().GetPermissionManager().Init(); log.Info("Direitos atualizados com sucesso!"); break; } #endregion #region rpbots case "bots": case "bot": case "rpbots": case "rpbot": case "robos": { log.Info("Successfully refreshed Roleplay bots!"); RoleplayBotManager.Initialize(true); lock (PlusEnvironment.GetGame().GetClientManager().GetClients) { foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (client == null || client.GetHabbo() == null) { continue; } client.SendWhisper("[SISTEMA]Todos os BOTS foram atualizados!", 33); } } } break; #endregion #region users case "users": case "usuarios": { foreach (GameClient user in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList()) { if (user == null) { continue; } if (user.LoggingOut) { continue; } if (user.GetRoleplay() != null) { if (user.GetRoleplay().WebSocketConnection != null) { user.GetRoleplay().SendTopAlert("Todos os usuários foram atualizados, você será desconectado, entre novamente!"); } } user.Disconnect(false); } break; } #endregion #region chats case "chats": case "wpp": case "whatsapp": case "grupos": { HabboRoleplay.Web.Util.ChatRoom.WebSocketChatManager.Initialiaze(); break; } #endregion #region botwait case "botwait": case "botesperando": case "espera": case "bespera": { foreach (RoomUser User in RoleplayBotManager.DeployedRoleplayBots.Values) { if (User == null) { continue; } if (User.GetBotRoleplay() == null) { continue; } log.Info(User.GetBotRoleplay().Name + " (Bot Esperando: " + User.GetBotRoleplay().RoomStayTime + "/" + User.GetBotRoleplay().RoomStayInterval + ") : (Contagem do Bot: " + User.GetBotRoleplay().RoamCooldown + ")" + " : (Bot Virtual ID: " + User.GetBotRoleplay().VirtualId + ")"); } } break; #endregion #region commands case "commands": case "comandos": { PlusEnvironment.GetGame().GetChatManager()._commands = new CommandManager(":"); Console.WriteLine("Todos os comandos foram atualizados!", ConsoleColor.Yellow); } break; #endregion } } break; #endregion #region sockets case "sockets": case "websockets": case "socket": { Logging.WriteLine("Contador Socket:" + PlusEnvironment.GetGame().GetWebEventManager()._webSockets.Count + "", ConsoleColor.Yellow); string Append = ""; foreach (Fleck.IWebSocketConnection Connection in PlusEnvironment.GetGame().GetWebEventManager()._webSockets.Keys.ToList()) { Append += "WebSocket ID: " + PlusEnvironment.GetGame().GetWebEventManager().GetSocketsUserID(Connection) + "\n"; Append += "Socket disponível: " + Connection.IsAvailable.ToString() + "\n"; Append += "Socket caminho: " + Connection.ConnectionInfo.Path.Trim() + "\n"; Append += "Socket pronto: " + PlusEnvironment.GetGame().GetWebEventManager().SocketReady(Connection).ToString() + "\n"; Append += "\n\n"; } Logging.WriteLine(Append); } break; #endregion #region sockets case "chats": { Logging.WriteLine("TOTAL Contagem de grupos:" + HabboRoleplay.Web.Util.ChatRoom.WebSocketChatManager.RunningChatRooms.Count + "", ConsoleColor.Red); string Append = ""; foreach (HabboRoleplay.Web.Util.ChatRoom.WebSocketChatRoom ChatRoom in HabboRoleplay.Web.Util.ChatRoom.WebSocketChatManager.RunningChatRooms.Values) { Append += "\n\nNome do Chat: " + ChatRoom.ChatName + "\n"; Append += "Dono do Chat: " + ChatRoom.ChatOwner + "\n"; Append += "Usuários: " + ChatRoom.ChatUsers.Count + "\n"; Append += "Chatlog: " + ChatRoom.ChatLogs.Count + "\n"; Append += "<--------Usuários-------->"; foreach (GameClient User in ChatRoom.ChatUsers.Keys) { Append += "\nUsuário: " + User.GetHabbo().Username + ""; } Append += "\n---------------------"; } Logging.WriteLine(Append, ConsoleColor.Red); } break; #endregion #region clear case "clear": case "limpar": { Console.Clear(); break; } #endregion #region alert case "alert": case "alerta": case "alertar": { string Notice = inputData.Substring(6); PlusEnvironment.GetGame().GetClientManager().SendMessage(new BroadcastMessageAlertComposer(PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("console.noticefromadmin") + "\n\n" + Notice)); log.Info("Alerta enviado com sucesso."); break; } #endregion #region furni and catalog commands #region Catalog stuff case "updatefurni": case "attmobis": { PlusEnvironment.GetGame().GetItemManager().UpdateFurniSpecial(); PlusEnvironment.GetGame().GetItemManager().ProductDataMaker(); PlusEnvironment.GetGame().GetItemManager().DownloadFurnis(); log.Info("Completamente atualizado todos os furni!"); break; } case "furnidata": case "attdata": { PlusEnvironment.GetGame().GetItemManager().UpdateFurniSpecial(); log.Info("Completamente atualizado todos os dados!."); break; } case "furni": case "mobis": { PlusEnvironment.GetGame().GetItemManager().DownloadFurnis(); log.Info("Successfully updated database with furnidata."); break; } case "productdata": case "cache": { PlusEnvironment.GetGame().GetItemManager().ProductDataMaker(); break; } #endregion #region FurniFix2 case "furnifix2": case "fixmobis": { using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `furniture_old`"); DataTable Table = dbClient.getTable(); dbClient.SetQuery("SELECT * FROM `items`"); DataTable ToFix = dbClient.getTable(); int Count = 0; int Count2 = 0; if (Table != null && ToFix != null) { Dictionary <int, int> Changes = new Dictionary <int, int>(); int counter = 0; int counter2 = 0; foreach (DataRow Row in Table.Rows) { string Name = Convert.ToString(Row["item_name"]); int Id = Convert.ToInt32(Row["id"]); ItemData Data = null; if (!PlusEnvironment.GetGame().GetItemManager().GetItem(Name, out Data)) { continue; } if (Changes.ContainsKey(Id)) { continue; } counter++; Changes.Add(Id, Data.Id); if (counter > 100) { counter2++; counter = 0; Console.WriteLine("Anotação: " + (counter2 * 100) + " itens adicionados até agora"); } } Console.WriteLine("Fez a anotaçãos"); StringBuilder String = new StringBuilder(); foreach (DataRow Row in ToFix.Rows) { int DataId = Convert.ToInt32(Row["id"]); int UserId = Convert.ToInt32(Row["user_id"]); int RoomId = Convert.ToInt32(Row["room_id"]); int BaseItem = Convert.ToInt32(Row["base_item"]); string ExtraData = Row["extra_data"].ToString(); int X = Convert.ToInt32(Row["x"]); int Y = Convert.ToInt32(Row["y"]); double Z = Convert.ToDouble(Row["z"]); int Rot = Convert.ToInt32(Row["rot"]); string WallPos = Row["wall_pos"].ToString(); int LimitedNum = Convert.ToInt32(Row["limited_number"]); int LimitedStack = Convert.ToInt32(Row["limited_stack"]); if (Changes.ContainsKey(BaseItem)) { Count++; if (Count >= 100) { Count = 0; Count2++; Console.WriteLine("Atualizado " + (Count2 * 100) + " items até agora!"); } String.Append("INSERT INTO `items_new` VALUES ('" + DataId + "','" + UserId + "','" + RoomId + "','" + Changes[BaseItem] + "','" + ExtraData + "','" + X + "','" + Y + "','" + Z + "','" + Rot + "','" + WallPos + "','" + LimitedNum + "','" + LimitedStack + "');\n"); } } ConsoleWriter.Writer.WriteProductData(String.ToString()); } Console.WriteLine("Terminado!"); } break; } #endregion #region FurniFix case "furnifix": case "mobifix": { Dictionary <int, int> Changes = new Dictionary <int, int>(); using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `furniture_fix`"); DataTable Table = dbClient.getTable(); if (Table != null) { foreach (DataRow Row in Table.Rows) { string Name = Convert.ToString(Row["item_name"]); int OldId = Convert.ToInt32(Row["id"]); int NewId = Convert.ToInt32(Row["new_id"]); if (NewId == 0 && !Changes.ContainsKey(OldId)) { dbClient.SetQuery("SELECT * FROM `furniture` WHERE `item_name` = '" + Name.ToLower() + "' LIMIT 1"); DataRow Data = dbClient.getRow(); if (Data != null) { int RealNewId = Convert.ToInt32(Data["id"]); Changes.Add(OldId, RealNewId); } } } Console.WriteLine("terminado na anotação"); foreach (var Pair in Changes) { dbClient.RunQuery("UPDATE `furniture_fix` SET `new_id` = '" + Pair.Value + "' WHERE `id` = '" + Pair.Key + "' LIMIT 1"); } Console.WriteLine("TABELA DE FIXAÇÃO DE MOBILIÁRIO FINALIZADA"); } } break; } #endregion #endregion #endregion #region Default default: { log.Error(parameters[0].ToLower() + " é um comando desconhecido ou não suportado. Digite ajuda para obter mais informações"); break; } #endregion } #endregion } catch (Exception e) { log.Error("Erro no comando [" + inputData + "]: " + e); } }
public bool RequestBuddy(string UserQuery) { int userID; bool hasFQDisabled; #region Bot Friendship if (RoleplayBotManager.GetDeployedBotByName(UserQuery) != null) { RoomUser BotUser = RoleplayBotManager.GetDeployedBotByName(UserQuery); if (BotUser.GetBotRoleplay() == null) { return(false); } if (GetClient().GetRoleplay().BotFriendShips.ContainsKey(BotUser.GetBotRoleplay().Id)) { GetClient().SendWhisper("Você já é amigo deste NPC!", 1); return(false); } if (!BotUser.GetBotRoleplay().AddableBot) { GetClient().SendWhisper("Você não pode adicionar este bot!", 1); return(false); } BotUser.Chat("OK " + GetClient().GetHabbo().Username + ", eu adicionei você à lista de contatos do meu telefone!", true); GetClient().GetRoleplay().AddBotAsFriend(BotUser.GetBotRoleplay().Id); return(true); } #endregion if (GetClient().GetRoleplay().PhoneType <= 0) { GetClient().SendWhisper("Você não tem um telefone para fazer isso! Compre um na Loja de Celulares [Quarto ID: 25]", 1); return(false); } GameClient client = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(UserQuery); if (client == null) { DataRow Row = null; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `id`,`block_newfriends` FROM `users` WHERE `username` = @query LIMIT 1"); dbClient.AddParameter("query", UserQuery.ToLower()); Row = dbClient.getRow(); } if (Row == null) { return(false); } userID = Convert.ToInt32(Row["id"]); hasFQDisabled = PlusEnvironment.EnumToBool(Row["block_newfriends"].ToString()); } else { userID = client.GetHabbo().Id; hasFQDisabled = client.GetHabbo().AllowFriendRequests; } if (hasFQDisabled) { GetClient().SendMessage(new MessengerErrorComposer(39, 3)); return(false); } int ToId = userID; if (RequestExists(ToId)) { return(true); } int PhoneType = 0; if (client == null || client.GetHabbo() == null || client.GetRoleplay() == null) { using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `phone` FROM `rp_stats` WHERE `id` = @userid LIMIT 1"); dbClient.AddParameter("userid", userID); PhoneType = dbClient.getInteger(); } } else { PhoneType = client.GetRoleplay().PhoneType; } if (PhoneType <= 0) { GetClient().SendWhisper("Desculpe, " + UserQuery + " não tem um telefone!", 1); return(false); } using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("REPLACE INTO `messenger_requests` (`from_id`,`to_id`) VALUES ('" + _userId + "','" + ToId + "')"); } GameClient ToUser = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(ToId); if (ToUser == null || ToUser.GetHabbo() == null) { return(true); } MessengerRequest Request = new MessengerRequest(ToId, _userId, PlusEnvironment.GetGame().GetClientManager().GetNameById(_userId)); ToUser.GetHabbo().GetMessenger().OnNewRequest(_userId); using (UserCache ThisUser = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(_userId)) { if (ThisUser != null) { ToUser.SendMessage(new NewBuddyRequestComposer(ThisUser)); } } _requests.Add(ToId, Request); return(true); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Por favor, insira o item que você gostaria de entregar!", 1); return; } if (RoleplayManager.CalledDelivery) { Session.SendWhisper("O remetente está muito ocupado agora mesmo! Por favor, tente novamente mais tarde.", 1); return; } bool DeliveryCame = false; string Item = Params[1]; switch (Item.ToLower()) { #region Weapons case "glock": case "magnum": case "mp5": case "pistola": { if (!Room.DeliveryEnabled) { Session.SendWhisper("O remetente não entrega a este quarto!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para chamar o homem de entrega!", 1); break; } if (!GroupManager.HasJobCommand(Session, "weapon") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você não trabalha na loja de armas!", 1); break; } var Weapon = WeaponManager.getWeapon(Item.ToLower()); if (Weapon == null) { Session.SendWhisper("Por algum motivo, esta arma não pôde ser encontrada", 1); break; } if (Weapon.Stock > 0) { Session.SendWhisper("Aguarde até o " + Weapon.PublicName + " acabar o estoque para chamar o entregador!", 1); break; } RoleplayBot Bot = RoleplayBotManager.GetCachedBotByAI(RoleplayBotAIType.DELIVERY); if (Bot == null) { Session.SendWhisper("Nenhum mecanismo de entrega foi encontrado, entre em contato com um membro da equipe!", 1); break; } RoleplayManager.UserWhoCalledDelivery = Session.GetHabbo().Id; RoleplayManager.CalledDelivery = true; RoleplayManager.DeliveryWeapon = Weapon; new Thread(() => { if (Session.GetRoomUser() != null) { Session.Shout("*Pega seu telefone e chama o remetente, ordenando um novo estoque de " + Weapon.PublicName + "*", 4); Session.GetRoomUser().ApplyEffect(EffectsList.CellPhone); } Thread.Sleep(3000); if (Session.GetRoomUser() != null) { Session.GetRoomUser().ApplyEffect(0); } }).Start(); var BotUser = RoleplayBotManager.GetDeployedBotById(Bot.Id); new Thread(() => { Thread.Sleep(15000); RoleplayBot DeliverrBot = RoleplayBotManager.GetCachedBotByAI(RoleplayBotAIType.DELIVERY); if (!DeliveryCame) { if (DeliverrBot == null) { Session.SendWhisper("Não é possível obter o bot de entrega, tente novamente mais tarde!", 1); Thread.CurrentThread.Abort(); return; } else { RoleplayBotManager.DeployBotByAI(RoleplayBotAIType.DELIVERY, "default", Room.Id); DeliveryCame = true; } } while (Room != null && Room.GetRoomItemHandler() != null && Room.GetRoomItemHandler().GetFloor.Where(x => x.GetBaseItem().InteractionType == HabboHotel.Items.InteractionType.DELIVERY_BOX).ToList().Count <= 0) { Thread.Sleep(10); } Thread.Sleep(2000); RoleplayManager.CalledDelivery = false; }).Start(); break; } #endregion #region Default default: { Session.SendWhisper("Isso não é um item entregue!", 1); break; } #endregion } }
/// <summary> /// Loads bot friendships /// </summary> internal void LoadBotFriendships() { BotFriendShips = new ConcurrentDictionary <int, RoleplayBot>(); DataTable BotFriends = null; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `bot_id` FROM `rp_bots_friendships` WHERE `user_id` = '" + Client.GetHabbo().Id + "'"); BotFriends = dbClient.getTable(); if (BotFriends == null) { return; } foreach (DataRow BotUser in BotFriends.Rows) { int BotId = Convert.ToInt32(BotUser["bot_id"]); RoleplayBot Botfriend = RoleplayBotManager.GetCachedBotById(BotId); if (Botfriend == null) { return; } MessengerBuddy newfriend = new MessengerBuddy(Botfriend.Id + RoleplayBotManager.BotFriendMultiplyer, Botfriend.Name, Botfriend.Figure, Botfriend.Motto, 0, false, true, true); int addid = Botfriend.Id + RoleplayBotManager.BotFriendMultiplyer; if (Client.GetHabbo() == null) { return; } if (Client.GetHabbo().GetMessenger() == null) { return; } if (Client.GetHabbo().GetMessenger()._friends == null) { return; } if (!Client.GetHabbo().GetMessenger()._friends.ContainsKey(addid)) { Client.GetHabbo().GetMessenger()._friends.Add(addid, newfriend); } if (!BotFriendShips.ContainsKey(Botfriend.Id)) { BotFriendShips.TryAdd(Botfriend.Id, Botfriend); } Client.SendMessage(Client.GetHabbo().GetMessenger().SerializeUpdate(newfriend)); } } }
public RoomUser GetDeployedInstance() { return(RoleplayBotManager.GetDeployedBotById(this.Id)); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } Room Room; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) { return; } if (!Room.CheckRights(Session, true)) { return; } int BotId = Packet.PopInt(); int X = Packet.PopInt(); int Y = Packet.PopInt(); if (!Room.GetGameMap().CanWalk(X, Y, false) || !Room.GetGameMap().ValidTile(X, Y)) { Session.SendNotification("Você não pode colocar um bot aqui!"); return; } Bot Bot = null; if (!Session.GetHabbo().GetInventoryComponent().TryGetBot(BotId, out Bot)) { return; } RoleplayBot RoleplayBotInstance; if (RoleplayBotManager.CachedRoleplayBots.TryGetValue(BotId, out RoleplayBotInstance)) { RoleplayBotManager.DeployBotByID(BotId); return; } int BotCount = 0; foreach (RoomUser User in Room.GetRoomUserManager().GetUserList().ToList()) { if (User == null || User.IsPet || !User.IsBot) { continue; } BotCount += 1; } if (BotCount >= 5 && !Session.GetHabbo().GetPermissions().HasRight("bot_place_any_override")) { Session.SendNotification("Desculpa; 5 bots por quarto apenas!"); return; } //TODO: Hmm, maybe not???? using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `bots` SET `room_id` = '" + Room.RoomId + "', `x` = @CoordX, `y` = @CoordY WHERE `id` = @BotId LIMIT 1"); dbClient.AddParameter("BotId", Bot.Id); dbClient.AddParameter("CoordX", X); dbClient.AddParameter("CoordY", Y); dbClient.RunQuery(); } List <RandomSpeech> BotSpeechList = new List <RandomSpeech>(); //TODO: Grab data? DataRow GetData = null; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `ai_type`,`rotation`,`walk_mode`,`automatic_chat`,`speaking_interval`,`mix_sentences`,`chat_bubble` FROM `bots` WHERE `id` = @BotId LIMIT 1"); dbClient.AddParameter("BotId", Bot.Id); GetData = dbClient.getRow(); dbClient.SetQuery("SELECT `text` FROM `bots_speech` WHERE `bot_id` = @BotId"); dbClient.AddParameter("BotId", Bot.Id); DataTable BotSpeech = dbClient.getTable(); foreach (DataRow Speech in BotSpeech.Rows) { BotSpeechList.Add(new RandomSpeech(Convert.ToString(Speech["text"]), Bot.Id)); } } RoomUser BotUser = Room.GetRoomUserManager().DeployBot(new RoomBot(Bot.Id, Session.GetHabbo().CurrentRoomId, Convert.ToString(GetData["ai_type"]), Convert.ToString(GetData["walk_mode"]), Bot.Name, "", Bot.Figure, X, Y, 0, 4, 0, 0, 0, 0, ref BotSpeechList, "", 0, Bot.OwnerId, PlusEnvironment.EnumToBool(GetData["automatic_chat"].ToString()), Convert.ToInt32(GetData["speaking_interval"]), PlusEnvironment.EnumToBool(GetData["mix_sentences"].ToString()), Convert.ToInt32(GetData["chat_bubble"])), null); BotUser.Chat("Hello!", false, 0); Room.GetGameMap().UpdateUserMovement(new System.Drawing.Point(X, Y), new System.Drawing.Point(X, Y), BotUser); Bot ToRemove = null; if (!Session.GetHabbo().GetInventoryComponent().TryRemoveBot(BotId, out ToRemove)) { Console.WriteLine("Erro ao remover Bot: " + ToRemove.Id); return; } Session.SendMessage(new BotInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetBots())); }
public void UnloadRoom(Room Room, bool RemoveData = false) { if (Room == null) { return; } #region Roleplay Checks #region Turf Turf Turf = TurfManager.GetTurf(Room.RoomId); if (Turf != null) { Turf.Flag = null; Turf.FlagSpawned = false; } #endregion #region Texas Hold Em List <TexasHoldEm> Games = TexasHoldEmManager.GetGamesByRoomId(Room.Id); if (Games.Count > 0) { foreach (TexasHoldEm Game in Games) { if (Game != null) { #region PotSquare Check Game.PotSquare.Furni = null; #endregion #region JoinGate Check Game.JoinGate.Furni = null; #endregion #region Player1 Check foreach (TexasHoldEmItem Item in Game.Player1.Values) { Item.Furni = null; } #endregion #region Player2 Check foreach (TexasHoldEmItem Item in Game.Player2.Values) { Item.Furni = null; } #endregion #region Player3 Check foreach (TexasHoldEmItem Item in Game.Player3.Values) { Item.Furni = null; } #endregion #region Banker Check foreach (TexasHoldEmItem Item in Game.Banker.Values) { Item.Furni = null; } #endregion } } } #endregion #region Farming List <FarmingSpace> FarmingSpaces = FarmingManager.GetFarmingSpacesByRoomId(Room.Id); if (FarmingSpaces.Count > 0) { foreach (FarmingSpace Space in FarmingSpaces) { if (Space != null) { Space.Item = null; Space.Spawned = false; } } } #endregion #region Houses List <House> Houses = PlusEnvironment.GetGame().GetHouseManager().GetHousesBySignRoomId(Room.Id); if (Houses.Count > 0) { foreach (House House in Houses) { if (House.Sign != null) { House.Sign.Item = null; House.Sign.Spawned = false; } } } #endregion #region Bots RoleplayBotManager.EjectRoomsDeployedBots(Room); #endregion #endregion new Thread(() => { Thread.Sleep(200); Room room = null; if (this._rooms.TryRemove(Room.RoomId, out room)) { Room.Dispose(); if (RemoveData) { RoomData Data = null; this._loadedRoomData.TryRemove(Room.Id, out Data); } } }).Start(); }
public static void Initialize() { ServerStarted = DateTime.Now; Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine(); Console.WriteLine(" ____ __ ________ _____ __"); Console.WriteLine(@" / __ \/ /_ _______/ ____/ |/ / / / /"); Console.WriteLine(" / /_/ / / / / / ___/ __/ / /|_/ / / / / "); Console.WriteLine(" / ____/ / /_/ (__ ) /___/ / / / /_/ / "); Console.WriteLine(@" /_/ /_/\__,_/____/_____/_/ /_/\____/ "); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(" " + PrettyVersion + " <Feito por " + PrettyBuild + ">"); Console.WriteLine(" suamae"); Console.WriteLine(""); Console.Title = "Plus Emulador [Carregando...]"; _defaultEncoding = Encoding.Default; Console.WriteLine(""); Console.WriteLine(""); CultureInfo = CultureInfo.CreateSpecificCulture("pt-BR"); try { _configuration = new ConfigurationData(Path.Combine(Application.StartupPath, @"config.ini")); var connectionString = new MySqlConnectionStringBuilder { ConnectionTimeout = 60, Database = GetConfig().data["db.name"], DefaultCommandTimeout = 120, Logging = false, MaximumPoolSize = uint.Parse(GetConfig().data["db.pool.maxsize"]), MinimumPoolSize = uint.Parse(GetConfig().data["db.pool.minsize"]), Password = GetConfig().data["db.password"], Pooling = true, Port = uint.Parse(GetConfig().data["db.port"]), Server = GetConfig().data["db.hostname"], UserID = GetConfig().data["db.username"], AllowZeroDateTime = true, ConvertZeroDateTime = true, }; _manager = new DatabaseManager(connectionString.ToString()); if (!_manager.IsConnected()) { log.Error("Falha ao conectar ao específico servidor MySQL."); Console.ReadKey(true); Environment.Exit(1); return; } log.Info("Conectado a database!"); //Reset our statistics first. int randomInt = ((System.Diagnostics.Debugger.IsAttached) ? 0 : 1); using (IQueryAdapter dbClient = GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("TRUNCATE `catalog_marketplace_data`"); dbClient.RunQuery("UPDATE `rooms` SET `users_now` = '0' WHERE `users_now` > '0';"); dbClient.RunQuery("UPDATE `users` SET `online` = '0' WHERE `online` = '1'"); dbClient.RunQuery("UPDATE `server_status` SET `users_online` = '0', `loaded_rooms` = '0', `environment_status` = '" + randomInt + "'"); } //Get the configuration & Game set. ConfigData = new ConfigData(); _game = new Game(); //Have our encryption ready. HabboEncryptionV2.Initialize(new RSAKeys()); //Make sure MUS is working. MusSystem = new MusSocket(GetConfig().data["mus.tcp.bindip"], int.Parse(GetConfig().data["mus.tcp.port"]), GetConfig().data["mus.tcp.allowedaddr"].Split(Convert.ToChar(";")), 0); //Accept connections. _connectionManager = new ConnectionHandling(int.Parse(GetConfig().data["game.tcp.port"]), int.Parse(GetConfig().data["game.tcp.conlimit"]), int.Parse(GetConfig().data["game.tcp.conperip"]), GetConfig().data["game.tcp.enablenagles"].ToLower() == "true"); _connectionManager.init(); _game.StartGameLoop(); TimeSpan TimeUsed = DateTime.Now - ServerStarted; Console.WriteLine(); log.Info("EMULATOR -> READY! (" + TimeUsed.Seconds + " s, " + TimeUsed.Milliseconds + " ms)"); } catch (KeyNotFoundException e) { Logging.WriteLine("Verifique o seu arquivo de configuração - alguns valores parecem estar faltando.", ConsoleColor.Red); Logging.WriteLine("Pressione qualquer tecla para desligar..."); Logging.WriteLine(e.ToString()); Console.ReadKey(true); Environment.Exit(1); return; } catch (InvalidOperationException e) { Logging.WriteLine("Falha ao inicializar Plus Emulador: " + e.Message, ConsoleColor.Red); Logging.WriteLine("Pressione qualquer tecla para desligar..."); Console.ReadKey(true); Environment.Exit(1); return; } catch (Exception e) { Logging.WriteLine("Erro fatal para iniciar: " + e, ConsoleColor.Red); Logging.WriteLine("Pressione qualquer tecla para fechar."); Console.ReadKey(); Environment.Exit(1); } RoleplayBotManager.Initialize(false); }