public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (!Room.CheckRights(Session, true)) { return; } Room.GetRoomItemHandler().RemoveItems(Session); using (IQueryAdapter dbClient = QuasarEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `items` SET `room_id` = '0' WHERE `room_id` = @RoomId AND `user_id` = @UserId"); dbClient.AddParameter("RoomId", Room.Id); dbClient.AddParameter("UserId", Session.GetHabbo().Id); dbClient.RunQuery(); } List <Item> Items = Room.GetRoomItemHandler().GetWallAndFloor.ToList(); if (Items.Count > 0) { Session.SendWhisper("Er zijn nog steeds items in deze kamer. Gebruik :pickalles om ook die op te pakken!"); } Session.SendMessage(new FurniListUpdateComposer()); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (!Room.CheckRights(Session, true)) { return; } Room.GetRoomItemHandler().RemoveItems(Session); Room.GetGameMap().GenerateMaps(); using (IQueryAdapter dbClient = BiosEmuThiago.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `items` SET `room_id` = '0' WHERE `room_id` = @RoomId AND `user_id` = @UserId"); dbClient.AddParameter("RoomId", Room.Id); dbClient.AddParameter("UserId", Session.GetHabbo().Id); dbClient.RunQuery(); Session.LogsNotif("Todos mobis foram coletados", "command_notification"); } List <Item> Items = Room.GetRoomItemHandler().GetWallAndFloor.ToList(); if (Items.Count > 0) { Session.SendWhisper("Ainda há mais elementos nesta sala, removidos manualmente ou usar: ejectall expulsá-los!"); } Session.SendMessage(new FurniListUpdateComposer()); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (!Room.CheckRights(Session, true)) { return; } Room.GetRoomItemHandler().RemoveItems(Session); Room.GetGameMap().GenerateMaps(); using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `items` SET `room_id` = '0' WHERE `room_id` = @RoomId AND `user_id` = @UserId"); dbClient.AddParameter("RoomId", Room.Id); dbClient.AddParameter("UserId", Session.GetHabbo().Id); dbClient.RunQuery(); } List <Item> Items = Room.GetRoomItemHandler().GetWallAndFloor.ToList(); if (Items.Count > 0) { Session.SendWhisper("There are still more items in this room, manually remove them or use :ejectall to eject them!"); } Session.SendPacket(new FurniListUpdateComposer()); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Room == null) { return; } //if (PlusEnvironment.GetGame().GetCatalog().GetPredesignedRooms().Exists((uint)Room.Id)) //{ // Session.SendWhisper("La sala ya está agregada en la lista."); // return; //} StringBuilder itemAmounts = new StringBuilder(), floorItemsData = new StringBuilder(), wallItemsData = new StringBuilder(), decoration = new StringBuilder(); var floorItems = Room.GetRoomItemHandler().GetFloor; var wallItems = Room.GetRoomItemHandler().GetWall; foreach (var roomItem in floorItems) { var itemCount = floorItems.Count(item => item.BaseItem == roomItem.BaseItem); if (!itemAmounts.ToString().Contains(roomItem.BaseItem + "," + itemCount + ";")) { itemAmounts.Append(roomItem.BaseItem + "," + itemCount + ";"); } floorItemsData.Append(roomItem.BaseItem + "$$$$" + roomItem.GetX + "$$$$" + roomItem.GetY + "$$$$" + roomItem.GetZ + "$$$$" + roomItem.Rotation + "$$$$" + roomItem.ExtraData + ";"); } foreach (var roomItem in wallItems) { var itemCount = wallItems.Count(item => item.BaseItem == roomItem.BaseItem); if (!itemAmounts.ToString().Contains(roomItem.BaseItem + "," + itemCount + ";")) { itemAmounts.Append(roomItem.BaseItem + "," + itemCount + ";"); } wallItemsData.Append(roomItem.BaseItem + "$$$$" + roomItem.wallCoord + "$$$$" + roomItem.ExtraData + ";"); } decoration.Append(Room.RoomData.FloorThickness + ";" + Room.RoomData.WallThickness + ";" + Room.RoomData.Model.WallHeight + ";" + Room.RoomData.Hidewall + ";" + Room.RoomData.Wallpaper + ";" + Room.RoomData.Landscape + ";" + Room.RoomData.Floor); using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO catalog_predesigned_rooms(room_model,flooritems,wallitems,catalogitems,room_id,room_decoration) VALUES('" + Room.RoomData.ModelName + "', '" + floorItemsData + "', '" + wallItemsData + "', '" + itemAmounts + "', " + Room.Id + ", '" + decoration + "');"); var predesignedId = (uint)dbClient.InsertQuery(); PlusEnvironment.GetGame().GetCatalog().GetPredesignedRooms().predesignedRoom.Add(predesignedId, new PredesignedRooms(predesignedId, (uint)Room.Id, Room.RoomData.ModelName, floorItemsData.ToString().TrimEnd(';'), wallItemsData.ToString().TrimEnd(';'), itemAmounts.ToString().TrimEnd(';'), decoration.ToString())); } Session.SendWhisper("O quarto foi salvo com sucesso na lista."); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { RoomUser roomUser = Room?.GetRoomUserManager()?.GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomUser == null) { return; } List <Items.Item> userBooth = Room.GetRoomItemHandler().GetFloor.Where(x => x != null && Gamemap.TilesTouching( x.Coordinate, roomUser.Point) && x.Data.InteractionType == Items.InteractionType.DICE).ToList(); if (userBooth.Count != 5) { Session.SendWhisper("Oeps! Er zijn helaas geen vijf dices gevonden."); return; } userBooth.ForEach(x => { x.ExtraData = "0"; x.UpdateState(); }); Session.SendWhisper("Hoppa! De dices zijn gesloten."); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { RoomUser roomUser = Room?.GetRoomUserManager()?.GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomUser == null) { return; } List <Items.Item> userBooth = Room.GetRoomItemHandler().GetFloor.Where(x => x != null && Gamemap.TilesTouching( x.Coordinate, roomUser.Coordinate) && x.Data.InteractionType == Items.InteractionType.DICE).ToList(); if (userBooth.Count != 5) { Session.SendWhisper("Debes tener 5 dados cerca de ti.", 34); return; } userBooth.ForEach(x => { x.ExtraData = "0"; x.UpdateState(); }); Session.SendWhisper("Los dados han sido cerrados", 34); }
internal bool PlayVideoInRoom(Rooms.Room Room, string Video) { Video = Video.Replace("http://www.youtube.", ""); Video = Video.Replace("www.youtube.", ""); try { Video = Video.Split('=')[1]; } catch { return(false); } if (Video == "") { return(false); } foreach (PlayerTV Tv in LoadedTVs.Values) { if (Tv.RoomId == Room.RoomId) { Tv.CustomVideo = Video; RoomItem Item = Room.GetRoomItemHandler().GetItem(Tv.Item); if (Item != null) { Item.ExtraData = Video; var ServerMessage = new ServerMessage(Outgoing.UpdateRoomItemMessageComposer); Item.Serialize(ServerMessage); Room.SendMessage(ServerMessage); } } } return(true); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Session.GetHabbo().VIPRank < 2 && Room.OwnerId != Session.GetHabbo().Id) { House House; if (Room.TryGetHouse(out House)) { if (House.OwnerId != Session.GetHabbo().Id) { Session.SendWhisper("Somente o proprietário do apartamento pode usar esse comando!", 1); return; } } else { Session.SendWhisper("Desculpe, este quarto não é uma casa!", 1); return; } } Room.GetRoomItemHandler().RemoveItems(Session); using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `items` SET `room_id` = '0', `user_id` = @UserId WHERE `room_id` = @RoomId"); dbClient.AddParameter("RoomId", Room.Id); dbClient.AddParameter("UserId", Session.GetHabbo().Id); dbClient.RunQuery(); } List <Item> Items = Room.GetRoomItemHandler().GetWallAndFloor.ToList(); if (Items.Count > 0) { Session.SendWhisper("Ainda há mais itens nesta sala, remova-os manualmente!", 1); } Session.SendMessage(new FurniListUpdateComposer()); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Oops, debes especificar si quieres comenzar modo casino o dar pl! Escribe :casino start o :casino pl", 34); return; } string query = Params[1]; RoomUser roomUser = Room?.GetRoomUserManager()?.GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomUser == null) { return; } List <Items.Item> userBooth = Room.GetRoomItemHandler().GetFloor.Where(x => x != null && Gamemap.TilesTouching( x.Coordinate, roomUser.Coordinate) && x.Data.InteractionType == Items.InteractionType.DICE).ToList(); if (userBooth.Count != 5) { Session.SendWhisper("Debes tener 5 dados cerca para iniciar un juego de da2", 34); return; } if (query == "pl" || query == "PL") { Room.SendMessage(RoomNotificationComposer.SendBubble("ganador", "El usuario " + Session.GetHabbo().Username + " ha sacado " + Session.GetHabbo().casinoCount + " en los dados (PL Automatico)", "")); Session.GetHabbo().casinoEnabled = false; Session.GetHabbo().casinoCount = 0; } else if (query == "start" || query == "START") { Session.SendWhisper("Has iniciado el modo casino. El contador de dados esta activado", 34); Session.GetHabbo().casinoEnabled = true; } else { Session.SendWhisper("Oops, debes especificar si quieres comenzar modo casino o dar pl! Escribe :casino start o :casino pl"); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Room.MoodlightData == null) { foreach (Item Item in Room.GetRoomItemHandler().GetWall.ToList()) { if (Item.GetBaseItem().InteractionType == InteractionType.MOODLIGHT) { Room.MoodlightData = new MoodlightData(Item.Id); } } } if (Room.MoodlightData == null) { Session.SendWhisper("Opa, parece que não há reguladores de luz nesta sala!", 1); return; } Session.SendMessage(new MoodlightConfigComposer(Room.MoodlightData)); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { string height = Params[1]; if (Session.GetHabbo().Id == Room.OwnerId) { if (!Room.CheckRights(Session, true)) { return; } Item[] items = Room.GetRoomItemHandler().GetFloor.ToArray(); foreach (Item Item in items.ToList()) { GameClient TargetClient = RavenEnvironment.GetGame().GetClientManager().GetClientByUserID(Item.UserID); if (Item.GetBaseItem().InteractionType == InteractionType.STACKTOOL) { Room.SendMessage(new UpdateMagicTileComposer(Item.Id, int.Parse(height))); } } } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Session.GetHabbo().Id == Room.OwnerId) { //Let us check anyway. if (!Room.CheckRights(Session, true)) { return; } foreach (Item Item in Room.GetRoomItemHandler().GetWallAndFloor.ToList()) { if (Item == null || Item.UserID == Session.GetHabbo().Id) { continue; } GameClient TargetClient = CloudServer.GetGame().GetClientManager().GetClientByUserID(Item.UserID); if (TargetClient != null && TargetClient.GetHabbo() != null) { Room.GetRoomItemHandler().RemoveFurniture(TargetClient, Item.Id); TargetClient.GetHabbo().GetInventoryComponent().AddNewItem(Item.Id, Item.BaseItem, Item.ExtraData, Item.GroupId, true, true, Item.LimitedNo, Item.LimitedTot); TargetClient.GetHabbo().GetInventoryComponent().UpdateItems(false); } else { Room.GetRoomItemHandler().RemoveFurniture(null, Item.Id); using (IQueryAdapter dbClient = CloudServer.GetDatabaseManager().GetQueryReactor()) { dbClient.runFastQuery("UPDATE `items` SET `room_id` = '0' WHERE `id` = '" + Item.Id + "' LIMIT 1"); } } } } else { foreach (Item Item in Room.GetRoomItemHandler().GetWallAndFloor.ToList()) { if (Item == null || Item.UserID != Session.GetHabbo().Id) { continue; } GameClient TargetClient = CloudServer.GetGame().GetClientManager().GetClientByUserID(Item.UserID); if (TargetClient != null && TargetClient.GetHabbo() != null) { Room.GetRoomItemHandler().RemoveFurniture(TargetClient, Item.Id); TargetClient.GetHabbo().GetInventoryComponent().AddNewItem(Item.Id, Item.BaseItem, Item.ExtraData, Item.GroupId, true, true, Item.LimitedNo, Item.LimitedTot); TargetClient.GetHabbo().GetInventoryComponent().UpdateItems(false); } else { Room.GetRoomItemHandler().RemoveFurniture(null, Item.Id); using (IQueryAdapter dbClient = CloudServer.GetDatabaseManager().GetQueryReactor()) { dbClient.runFastQuery("UPDATE `items` SET `room_id` = '0' WHERE `id` = '" + Item.Id + "' LIMIT 1"); } } } } }
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 } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Digite o nome de usuário do usuário que deseja puxar.", 1); return; } if (!Room.PullEnabled && !Session.GetHabbo().GetPermissions().HasRight("room_override_custom_config")) { Session.SendWhisper("Você não pode puxar este quarto!", 1); return; } if (Session.GetRoleplay().StaffOnDuty || Session.GetRoleplay().AmbassadorOnDuty&& !Session.GetHabbo().GetPermissions().HasRight("room_override_custom_config")) { Session.SendWhisper("Você não pode puxar alguém enquanto você está plantão!", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online.", 1); return; } RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Username); if (TargetUser == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez eles não estejam online ou no quarto.", 1); return; } if (TargetClient.GetHabbo().Username == Session.GetHabbo().Username) { Session.SendWhisper("Você não pode se puxar!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode puxar alguém está ausente!", 1); return; } if (TargetUser.TeleportEnabled) { Session.SendWhisper("Opa, você não pode puxar um usuário enquanto ele está com o modo teleporte ativado!", 1); return; } if (TargetClient.GetRoleplay().StaffOnDuty) { Session.SendWhisper("Você não pode puxar um membro da equipe que está de plantão!", 1); return; } if (TargetClient.GetRoleplay().AmbassadorOnDuty) { Session.SendWhisper("Você não pode puxar um embaixador que está de plantão!", 1); return; } if (Session.GetRoleplay().Team != null && TargetClient.GetRoleplay().Team != null) { if (Session.GetRoleplay().Team == TargetClient.GetRoleplay().Team) { Session.SendWhisper("Você não pode puxar o membro da sua equipe enquanto estiver dentro de um evento!", 1); return; } } if (Session.GetRoleplay().TryGetCooldown("pull")) { return; } RoomUser ThisUser = Session.GetRoomUser(); if (ThisUser == null) { return; } if (!HabboRoleplay.Misc.RoleplayManager.PushPullOnArrows) { if (TargetClient.GetRoleplay().Game == null || TargetClient.GetRoleplay().Team == null) { List <Item> RoomArrow = Room.GetRoomItemHandler().GetFloor.Where(x => x != null && x.GetBaseItem() != null && x.GetBaseItem().InteractionType == InteractionType.ARROW && (ThisUser.RotBody == 0 ? TargetUser.SetY - 1 == x.GetY : (ThisUser.RotBody == 1 ? TargetUser.SetX + 1 == x.GetX && TargetUser.Y - 1 == x.GetY : (ThisUser.RotBody == 2 ? TargetUser.SetX + 1 == x.GetX : (ThisUser.RotBody == 3 ? TargetUser.X + 1 == x.GetX && TargetUser.Y + 1 == x.GetY : (ThisUser.RotBody == 4 ? TargetUser.SetY + 1 == x.GetY : (ThisUser.RotBody == 5 ? TargetUser.X - 1 == x.GetX && TargetUser.Y + 1 == x.GetY : (ThisUser.RotBody == 6 ? TargetUser.SetX - 1 == x.GetX : (ThisUser.RotBody == 7 ? TargetUser.X - 1 == x.GetX && TargetUser.Y - 1 == x.GetY : false))))))))).ToList(); if (RoomArrow.Count > 0) { Session.SendWhisper("Você não pode retirar os usuários desta sala!", 1); return; } } } string PushDirection = "down"; if (TargetClient.GetHabbo().CurrentRoomId == Session.GetHabbo().CurrentRoomId&& (Math.Abs(ThisUser.X - TargetUser.X) < 3 && Math.Abs(ThisUser.Y - TargetUser.Y) < 3)) { if (ThisUser.RotBody == 0) { PushDirection = "up"; } if (ThisUser.RotBody == 2) { PushDirection = "right"; } if (ThisUser.RotBody == 4) { PushDirection = "down"; } if (ThisUser.RotBody == 6) { PushDirection = "left"; } if (PushDirection == "up") { TargetUser.MoveTo(ThisUser.X, ThisUser.Y - 1); } if (PushDirection == "right") { TargetUser.MoveTo(ThisUser.X + 1, ThisUser.Y); } if (PushDirection == "down") { TargetUser.MoveTo(ThisUser.X, ThisUser.Y + 1); } if (PushDirection == "left") { TargetUser.MoveTo(ThisUser.X - 1, ThisUser.Y); } Session.Shout("*Puxa " + TargetClient.GetHabbo().Username + " em minha direção*", 4); Session.GetRoleplay().CooldownManager.CreateCooldown("pull", 1000, 3); return; } else { Session.SendWhisper("Esse usuário não está perto o suficiente, tente se aproximar!", 1); return; } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { #region Variables bool Stolen = false; int DrinkId = 0; Item Item = null; RoomUser User = Session.GetRoomUser(); #endregion #region Conditions if (User == null) { return; } foreach (Item item in Room.GetRoomItemHandler().GetFloor) { if (item.GetX == User.SquareInFront.X && item.GetY == User.SquareInFront.Y) { if (FoodManager.GetFood(item.BaseItem) != null) { Item = item; DrinkId = item.BaseItem; } } } Food Food = FoodManager.GetFood(DrinkId); if (Food == null || Item == null) { Session.SendWhisper("Não há bebida na sua frente!", 1); return; } if (Food.Type != "drink") { if (Food.Type == "food") { Session.SendWhisper("Use o comando :comer para comer isso!", 1); return; } else { Session.SendWhisper("Você não pode beber isso!", 1); return; } } if (Session.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode beber coisas enquanto está morto!", 1); return; } if (Session.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode beber coisas enquanto está preso!", 1); return; } if (Session.GetRoleplay().CurEnergy >= Session.GetRoleplay().MaxEnergy) { Session.SendWhisper("Sua energia já está esgotada!", 1); return; } if (Food.Cost > 0) { if (Session.GetHabbo().Credits < Food.Cost) { if (Session.GetRoleplay().RobItem != Item) { Session.GetRoleplay().RobItem = Item; Session.SendWhisper("Você não tem dinheiro suficiente para pagar isso! Tente de novo...", 1); return; } else { Session.GetRoleplay().RobItem = null; Session.SendWhisper("Você bebeu sem pagar! Fique atento se alguém o viu!", 1); Stolen = true; } } } #endregion #region Execute string EatText = Food.EatText; if (Food.Health == 0) { EatText = EatText.Replace("[HEALTH]", ""); } else { EatText = EatText.Replace("[HEALTH]", "[+" + Food.Health + " HP]"); } if (Food.Energy == 0) { EatText = EatText.Replace("[ENERGY]", ""); } else { EatText = EatText.Replace("[ENERGY]", "[+" + Food.Energy + " Energia]"); } if (Food.Cost == 0) { EatText = EatText.Replace("[COST]", ""); } else { EatText = EatText.Replace("[COST]", "[-$" + Food.Cost + "]"); } if (Food.Hunger == 0) { EatText = EatText.Replace("[HUNGER]", ""); } else { EatText = EatText.Replace("[HUNGER]", "[-" + Food.Hunger + " Fome]"); } if (!Food.Name.ToLower().Contains("bleach")) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Drinking", 1); PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.DRINK_DRINK); } if (Food.Hunger > 0) { int HungerChange = Session.GetRoleplay().Hunger - Food.Hunger; if (HungerChange <= 0) { Session.GetRoleplay().Hunger = 0; } else { Session.GetRoleplay().Hunger = HungerChange; } } if (Food.Energy > 0) { int EnergyChange = Session.GetRoleplay().CurEnergy + Food.Energy; if (EnergyChange >= Session.GetRoleplay().MaxEnergy) { Session.GetRoleplay().CurEnergy = Session.GetRoleplay().MaxEnergy; } else { Session.GetRoleplay().CurEnergy = EnergyChange; } } if (Food.Health > 0) { int HealthChange = Session.GetRoleplay().CurHealth + Food.Health; if (HealthChange >= Session.GetRoleplay().MaxHealth) { Session.GetRoleplay().CurHealth = Session.GetRoleplay().MaxHealth; } else { Session.GetRoleplay().CurHealth = HealthChange; } } if (Food.Cost > 0 && !Stolen) { Session.GetHabbo().Credits -= Food.Cost; Session.GetHabbo().UpdateCreditsBalance(); } string FoodName = Food.Name.Substring(0, 1).ToUpper() + Food.Name.Substring(1); if (FoodName.ToLower().Contains("bleach")) { Session.Shout(EatText, 4); // kill the civilian, haha Session.GetRoleplay().CurHealth = 0; } else { if (Stolen) { Session.Shout("*Rapidamente bebe o " + FoodName + " sem pagar*", 4); if (!Session.GetRoleplay().WantedFor.Contains("roubando bebidas")) { Session.GetRoleplay().WantedFor = Session.GetRoleplay().WantedFor + "roubando bebidas, "; } } else { Session.Shout(EatText, 4); } } if (Item.InteractingUser > 0 && !Stolen) { var Server = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Item.InteractingUser); if (Server != null) { if (Session != Server) { Server.GetHabbo().Credits += 1; Server.GetHabbo().UpdateCreditsBalance(); Server.SendWhisper("Você ganhou R$1 por servir alguma bebida para " + Session.GetHabbo().Username + "!", 1); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Server, "ACH_ServingDrinks", 1); } } Item.InteractingUser = 0; } Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id); #endregion }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Opa, você esqueceu de entrar em um comando!", 1); return; } string Command = Convert.ToString(Params[1]); switch (Command) { #region follow case "follow": case "followme": case "mesiga": { RoomUser Target = null; foreach (RoomUser Bot in Room.GetRoomUserManager()._bots.Values) { if (!Bot.IsRoleplayBot) { continue; } Target = Bot; } if (Target == null) { Session.SendWhisper("Nenhum BOT para interagir foi encontrado, desculpe!"); return; } Target.GetBotRoleplay().UserFollowing = Session; Target.GetBotRoleplay().Following = true; Session.Shout("*Avisa " + Target.GetBotRoleplay().Name + " para me seguir"); return; } break; #endregion #region attack case "attack": case "attackme": case "fight": case "fightme": case "atacar": { RoomUser Target = null; foreach (RoomUser Bot in Room.GetRoomUserManager()._bots.Values) { if (!Bot.IsRoleplayBot) { continue; } Target = Bot; } if (Target == null) { Session.SendWhisper("Nenhum BOT para interagir foi encontrado, desculpe!"); return; } Target.GetBotRoleplay().UserAttacking = Session; Target.GetBotRoleplay().Roaming = false; Target.GetBotRoleplay().Attacking = true; Session.Shout("*Avisa " + Target.GetBotRoleplay().Name + " para me atacar"); return; } break; #endregion #region tele case "randomtele": case "tele": { RoomUser Target = null; Item Randtele = null; foreach (RoomUser Bot in Room.GetRoomUserManager()._bots.Values) { if (!Bot.IsRoleplayBot) { continue; } Target = Bot; } if (Target == null) { Session.SendWhisper("Nenhum BOT para interagir foi encontrado, desculpe!"); return; } foreach (Item Item in Room.GetRoomItemHandler().GetFloor.ToList()) { if (Item == null || Item.GetBaseItem() == null) { continue; } if (Item.GetBaseItem().InteractionType != InteractionType.ARROW) { continue; } Randtele = Item; } if (Randtele == null) { Session.SendWhisper("Não foi encontrado TELEPORTE para interagir, desculpe!"); return; } Target.GetBotRoleplay().TeleporterEntering = Randtele; int LinkedTele = ItemTeleporterFinder.GetLinkedTele(Target.GetBotRoleplay().TeleporterEntering.Id, Room); int TeleRoomId = ItemTeleporterFinder.GetTeleRoomId(LinkedTele, Room); Room NewRoom = RoleplayManager.GenerateRoom(TeleRoomId); Target.GetBotRoleplay().TeleporterExiting = NewRoom.GetRoomItemHandler().GetItem(LinkedTele); Target.GetBotRoleplay().Teleporting = true; Session.Shout("*Avisa " + Target.GetBotRoleplay().Name + " para pisar na seta*"); return; } break; #endregion } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length < 2) { Session.SendWhisper("Sintaxe de comando inválida! Use :montar <usuário>", 1); return; } string Username = Convert.ToString(Params[1]); RoomUser UserHorsie = Room.GetRoomUserManager().GetRoomUserByHabbo(Username); #region Conditions if (UserHorsie == null) { Session.SendWhisper("Usuário não encontrado ou não é um cavalo!", 1); return; } if (UserHorsie.GetClient() == null) { Session.SendWhisper("Usuário não encontrado ou não é um cavalo!", 1); return; } if (UserHorsie.GetClient().GetHabbo() == null) { Session.SendWhisper("Usuário não encontrado ou não é um cavalo!", 1); return; } if (UserHorsie.GetClient().GetHabbo().PetId <= 0) { Session.SendWhisper("Usuário não é um cavalo!", 1); return; } #endregion if (UserHorsie.RidingHorse) { Session.SendWhisper("Este usuário já está sendo montado!", 1); return; } if (UserHorsie.HorseID == Session.GetRoomUser().VirtualId) { // unmount UserHorsie.Statusses.Remove("sit"); UserHorsie.Statusses.Remove("lay"); UserHorsie.Statusses.Remove("snf"); UserHorsie.Statusses.Remove("eat"); UserHorsie.Statusses.Remove("ded"); UserHorsie.Statusses.Remove("jmp"); Session.GetRoomUser().RidingHorse = false; Session.GetRoomUser().HorseID = 0; UserHorsie.RidingHorse = false; UserHorsie.HorseID = 0; Session.GetRoomUser().MoveTo(new Point(Session.GetRoomUser().X + 2, Session.GetRoomUser().Y + 2)); Session.GetRoomUser().ApplyEffect(-1); Session.GetRoomUser().UpdateNeeded = true; UserHorsie.UpdateNeeded = true; } else { int NewX2 = Session.GetRoomUser().X; int NewY2 = Session.GetRoomUser().Y; Room.SendMessage(Room.GetRoomItemHandler().UpdateUserOnRoller(UserHorsie, new Point(NewX2, NewY2), 0, Room.GetGameMap().SqAbsoluteHeight(NewX2, NewY2))); Room.SendMessage(Room.GetRoomItemHandler().UpdateUserOnRoller(Session.GetRoomUser(), new Point(NewX2, NewY2), 0, Room.GetGameMap().SqAbsoluteHeight(NewX2, NewY2) + 1)); Session.GetRoomUser().MoveTo(NewX2, NewY2); UserHorsie.ClearMovement(true); Session.GetRoomUser().RidingHorse = true; UserHorsie.RidingHorse = true; UserHorsie.HorseID = Session.GetRoomUser().VirtualId; Session.GetRoomUser().HorseID = UserHorsie.VirtualId; Session.GetRoomUser().ApplyEffect(77); Session.GetRoomUser().RotBody = UserHorsie.RotBody; Session.GetRoomUser().RotHead = UserHorsie.RotHead; Session.GetRoomUser().UpdateNeeded = true; UserHorsie.UpdateNeeded = true; Session.Shout("*Pula em " + UserHorsie.GetClient().GetHabbo().Username + ", e começa a cavalgar como sua vadia*"); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Digite o nome de usuário do usuário que deseja empurrar.", 1); return; } if (!Room.PushEnabled && !Session.GetHabbo().GetPermissions().HasRight("room_override_custom_config")) { Session.SendWhisper("Você não pode empurrar nesta sala!", 1); return; } if (Session.GetRoleplay().StaffOnDuty || Session.GetRoleplay().AmbassadorOnDuty&& !Session.GetHabbo().GetPermissions().HasRight("room_override_custom_config")) { Session.SendWhisper("Você não pode empurrar alguém enquanto você está de plantão!", 1); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online.", 1); return; } RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Username); if (TargetUser == null) { Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online ou nesta sala.", 1); return; } if (TargetClient.GetHabbo().Username == Session.GetHabbo().Username) { Session.SendWhisper("Você não pode se empurrar!", 1); return; } if (TargetUser.IsAsleep) { Session.SendWhisper("Você não pode empurrar alguém que não está jogando o jogo agora!", 1); return; } if (TargetUser.TeleportEnabled) { Session.SendWhisper("Opa, você não pode empurrar um usuário que possui o modo de teleporte ativado.", 1); return; } if (TargetClient.GetRoleplay().StaffOnDuty) { Session.SendWhisper("Você não pode empurrar alguém que está de plantão!", 1); return; } if (TargetClient.GetRoleplay().AmbassadorOnDuty) { Session.SendWhisper("Você não pode empurrar um embaixador que está de plantão!", 1); return; } if (Session.GetRoleplay().TryGetCooldown("empurrar")) { return; } if (Session.GetRoleplay().Team != null && TargetClient.GetRoleplay().Team != null) { if (Session.GetRoleplay().Team == TargetClient.GetRoleplay().Team) { Session.SendWhisper("Você não pode empurrar o membro da sua equipe enquanto estiver dentro de um evento!", 1); return; } } RoomUser ThisUser = Session.GetRoomUser(); if (ThisUser == null) { return; } if (!((Math.Abs(TargetUser.X - ThisUser.X) >= 2) || (Math.Abs(TargetUser.Y - ThisUser.Y) >= 2))) { if (!HabboRoleplay.Misc.RoleplayManager.PushPullOnArrows) { if (TargetClient.GetRoleplay().Game == null || TargetClient.GetRoleplay().Team == null) { List <Item> RoomArrow = Room.GetRoomItemHandler().GetFloor.Where(x => x != null && x.GetBaseItem() != null && x.GetBaseItem().InteractionType == InteractionType.ARROW && (ThisUser.RotBody == 0 ? TargetUser.SetY - 1 == x.GetY : (ThisUser.RotBody == 1 ? TargetUser.SetX + 1 == x.GetX && TargetUser.Y - 1 == x.GetY : (ThisUser.RotBody == 2 ? TargetUser.SetX + 1 == x.GetX : (ThisUser.RotBody == 3 ? TargetUser.X + 1 == x.GetX && TargetUser.Y + 1 == x.GetY : (ThisUser.RotBody == 4 ? TargetUser.SetY + 1 == x.GetY : (ThisUser.RotBody == 5 ? TargetUser.X - 1 == x.GetX && TargetUser.Y + 1 == x.GetY : (ThisUser.RotBody == 6 ? TargetUser.SetX - 1 == x.GetX : (ThisUser.RotBody == 7 ? TargetUser.X - 1 == x.GetX && TargetUser.Y - 1 == x.GetY : false))))))))).ToList(); if (RoomArrow.Count > 0) { Session.SendWhisper("Você não pode expulsar os usuários desta sala!", 1); return; } } } if (TargetUser.RotBody == 4) { TargetUser.MoveTo(TargetUser.X, TargetUser.Y + 1); } if (ThisUser.RotBody == 0) { TargetUser.MoveTo(TargetUser.X, TargetUser.Y - 1); } if (ThisUser.RotBody == 6) { TargetUser.MoveTo(TargetUser.X - 1, TargetUser.Y); } if (ThisUser.RotBody == 2) { TargetUser.MoveTo(TargetUser.X + 1, TargetUser.Y); } if (ThisUser.RotBody == 3) { TargetUser.MoveTo(TargetUser.X + 1, TargetUser.Y); TargetUser.MoveTo(TargetUser.X, TargetUser.Y + 1); } if (ThisUser.RotBody == 1) { TargetUser.MoveTo(TargetUser.X + 1, TargetUser.Y); TargetUser.MoveTo(TargetUser.X, TargetUser.Y - 1); } if (ThisUser.RotBody == 7) { TargetUser.MoveTo(TargetUser.X - 1, TargetUser.Y); TargetUser.MoveTo(TargetUser.X, TargetUser.Y - 1); } if (ThisUser.RotBody == 5) { TargetUser.MoveTo(TargetUser.X - 1, TargetUser.Y); TargetUser.MoveTo(TargetUser.X, TargetUser.Y + 1); } Session.Shout("*Empurra " + TargetClient.GetHabbo().Username + " para longe*"); Session.GetRoleplay().CooldownManager.CreateCooldown("puxar", 1000, 3); } else { Session.SendWhisper("Opa, " + TargetClient.GetHabbo().Username + " não está perto!", 1); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (ExtraSettings.STAFF_EFFECT_ENABLED_ROOM) { if (Session.GetHabbo().isLoggedIn&& Session.GetHabbo().Rank > Convert.ToInt32(BiosEmuThiago.GetConfig().data["MineRankStaff"])) { } else { Session.SendWhisper("Você precisa estar logado como staff para usar este comando."); return; } } if (Room == null) { return; } StringBuilder itemAmounts = new StringBuilder(), floorItemsData = new StringBuilder(), wallItemsData = new StringBuilder(), decoration = new StringBuilder(); var floorItems = Room.GetRoomItemHandler().GetFloor; var wallItems = Room.GetRoomItemHandler().GetWall; foreach (var roomItem in floorItems) { var itemCount = floorItems.Count(item => item.BaseItem == roomItem.BaseItem); if (!itemAmounts.ToString().Contains(roomItem.BaseItem + "," + itemCount + ";")) { itemAmounts.Append(roomItem.BaseItem + "," + itemCount + ";"); } floorItemsData.Append(roomItem.BaseItem + "$$$$" + roomItem.GetX + "$$$$" + roomItem.GetY + "$$$$" + roomItem.GetZ + "$$$$" + roomItem.Rotation + "$$$$" + roomItem.ExtraData + ";"); } foreach (var roomItem in wallItems) { var itemCount = wallItems.Count(item => item.BaseItem == roomItem.BaseItem); if (!itemAmounts.ToString().Contains(roomItem.BaseItem + "," + itemCount + ";")) { itemAmounts.Append(roomItem.BaseItem + "," + itemCount + ";"); } wallItemsData.Append(roomItem.BaseItem + "$$$$" + roomItem.wallCoord + "$$$$" + roomItem.ExtraData + ";"); } decoration.Append(Room.RoomData.FloorThickness + ";" + Room.RoomData.WallThickness + ";" + Room.RoomData.Model.WallHeight + ";" + Room.RoomData.Hidewall + ";" + Room.RoomData.Wallpaper + ";" + Room.RoomData.Landscape + ";" + Room.RoomData.Floor); using (var dbClient = BiosEmuThiago.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO catalog_predesigned_rooms(room_model,flooritems,wallitems,catalogitems,room_id,room_decoration) VALUES('" + Room.RoomData.ModelName + "', '" + floorItemsData + "', '" + wallItemsData + "', '" + itemAmounts + "', " + Room.Id + ", '" + decoration + "');"); var predesignedId = (uint)dbClient.InsertQuery(); BiosEmuThiago.GetGame().GetCatalog().GetPredesignedRooms().predesignedRoom.Add(predesignedId, new PredesignedRooms(predesignedId, (uint)Room.Id, Room.RoomData.ModelName, floorItemsData.ToString().TrimEnd(';'), wallItemsData.ToString().TrimEnd(';'), itemAmounts.ToString().TrimEnd(';'), decoration.ToString())); } Session.SendWhisper("O quarto foi colocado a lista de pack do hotel!"); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { #region Conditions if (Params.Length == 1 && Params[0].ToLower() != "explodir" && Params[0].ToLower() != "reparar") { if (Params[0].ToLower() == "plantar") { Session.SendWhisper("Digite o ID da planta que você deseja usar! Digite ':agricultura' para ver os IDs da planta.", 1); return; } else { Session.SendWhisper("Digite o item que deseja colocar para baixo!", 1); return; } } string Type; if (Params[0].ToLower() == "explodir") { Type = "dinamite"; } else if (Params[0].ToLower() == "reparar") { Type = "grade"; } else if (Params[0].ToLower() == "plantar") { Type = "planta"; } else { Type = Params[1].ToLower(); } #endregion switch (Type) { #region Dynamite case "dynamite": case "dinamite": { if (Session.GetRoleplay().Dynamite < 1) { Session.SendWhisper("Você não tem nenhuma dinamite para colocar!", 1); return; } if (JailbreakManager.JailbreakActivated) { Session.SendWhisper("Uma fuga da prisão já está em andamento!", 1); JailbreakManager.JailbreakActivated = false; return; } int RoomId = Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid")); int X = Convert.ToInt32(RoleplayData.GetData("jailbreak", "xposition")); int Y = Convert.ToInt32(RoleplayData.GetData("jailbreak", "yposition")); double Z = Convert.ToDouble(RoleplayData.GetData("jailbreak", "zposition")); int Rot = Convert.ToInt32(RoleplayData.GetData("jailbreak", "rotation")); if (Session.GetRoomUser() == null) { return; } if (Room.Id != RoomId) { Session.SendWhisper("Você não está fora da prisão para iniciar uma fuga!", 1); return; } Item BTile = Room.GetRoomItemHandler().GetFloor.FirstOrDefault(x => x.GetBaseItem().ItemName.ToLower() == "bb_rnd_tele" && x.Coordinate == Session.GetRoomUser().Coordinate); if (BTile == null) { Session.SendWhisper("Você deve estar parado em um tele banzai da prisao para começar a explosão e causar a fuga!", 1); return; } List <GameClient> CurrentJailedUsers = PlusEnvironment.GetGame().GetClientManager().GetClients.Where(x => x != null && x.GetHabbo() != null && x.GetRoleplay() != null && x.GetRoleplay().IsJailed).ToList(); if (CurrentJailedUsers == null || CurrentJailedUsers.Count <= 0) { Session.SendWhisper("Não há ninguém na prisão agora!", 1); return; } Session.GetRoleplay().Dynamite--; JailbreakManager.JailbreakActivated = true; Session.Shout("*Coloca uma dinamite na parede, tentando explodir e libertar os prisioneiros*", 4); if (!Session.GetRoleplay().WantedFor.Contains("fugindo da prisão")) { Session.GetRoleplay().WantedFor = Session.GetRoleplay().WantedFor + "fugindo da prisão, "; } Item Item = RoleplayManager.PlaceItemToRoom(null, 6088, 0, X, Y, Z, Rot, false, Room.Id, false, "0"); Item Item2 = RoleplayManager.PlaceItemToRoom(null, 3011, 0, X, Y, 0, Rot, false, Room.Id, false, "0"); object[] Items = { Session, Item, Item2 }; RoleplayManager.TimerManager.CreateTimer("dinamite", 500, false, Items); break; } #endregion #region Fence Repair case "repair": case "reparar": { if (!JailbreakManager.FenceBroken) { Session.SendWhisper("Não há grade que precise de reparo!", 1); return; } if (!GroupManager.HasJobCommand(Session, "guide") && !Session.GetHabbo().GetPermissions().HasRight("corporation_rights")) { Session.SendWhisper("Apenas um policial tem o equipamento certo para reparar essa grade!", 1); return; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("corporation_rights")) { Session.SendWhisper("Você deve estar trabalhando para reparar essa grade!", 1); return; } if (Session.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("reparar")) { Session.SendWhisper("Você já está reparando a grade!", 1); return; } Item BTile = Room.GetRoomItemHandler().GetFloor.FirstOrDefault(x => x.GetBaseItem().ItemName.ToLower() == "bb_rnd_tele" && x.Coordinate == Session.GetRoomUser().Coordinate); if (BTile == null) { Session.SendWhisper("Você deve estar parado em um tele banzai para começar a reparar a grade!", 1); return; } Session.Shout("*Comece a reparar a grade*", 4); Session.SendWhisper("Você tem 2 minutos até você reparar essa grade!", 1); Session.GetRoleplay().TimerManager.CreateTimer("reparar", 1000, false, BTile.Id); if (Session.GetRoomUser().CurrentEffect != 59) { Session.GetRoomUser().ApplyEffect(59); } break; } #endregion #region Plant case "plant": case "plantar": { int Id; if (!int.TryParse(Params[1], out Id)) { Session.SendWhisper("Digite o ID da planta que você deseja usar! Digite ':agricultura' para ver os IDs das plantas.", 1); break; } if (!Session.GetRoleplay().FarmingStats.HasSeedSatchel) { Session.SendWhisper("Você não tem uma bolsa de sementes para transportar sementes!", 1); return; } if (Id == 0) { Session.SendWhisper("Você guardou todas as suas sementes de volta ao seu saco de sementes", 1); Session.GetRoleplay().FarmingItem = null; break; } FarmingItem Item = FarmingManager.GetFarmingItem(Id); ItemData Furni; if (Item.BaseItem == null) { Session.SendWhisper("Desculpe, mas este ID da planta não existe! Digite ':agricultura' para ver os IDs das planta.", 1); return; } if (!PlusEnvironment.GetGame().GetItemManager().GetItem(Item.BaseItem, out Furni) || Item == null) { Session.SendWhisper("Desculpe, mas este ID da planta não existe! Digite ':agricultura' para ver os IDs das planta.", 1); return; } if (Item.LevelRequired > Session.GetRoleplay().FarmingStats.Level) { Session.SendWhisper("Desculpe, mas você não tem um nível de agricultura alto suficiente para esta semente!", 1); return; } Session.GetRoleplay().FarmingItem = Item; int Amount; if (FarmingManager.GetSatchelAmount(Session, false, out Amount)) { if (Amount <= 0) { Session.SendWhisper("Você não tem nenhuma semente para plantar! Compre alguma no supermercado.", 1); Session.GetRoleplay().FarmingItem = null; break; } else { Session.SendWhisper("Você preparou sua semente " + Amount + " " + Furni.PublicName + " para a plantação!", 1); break; } } else { Session.SendWhisper("Você não tem sementes para plantar! Compre alguma no supermercado.", 1); Session.GetRoleplay().FarmingItem = null; break; } } #endregion #region Default default: { Session.SendWhisper("Desculpe, mas este item não pode ser encontrado!", 1); break; } #endregion } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { #region Conditions if (Session.GetRoomUser() == null) { return; } if (Session.GetRoleplay().IsWorkingOut) { Session.SendWhisper("Você já está malhando!", 1); return; } if (Session.GetRoleplay().IsWorking) { Session.SendWhisper("Você não pode fazer exercícios enquanto trabalha!", 1); return; } if (Session.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode fazer exercícios enquanto está morto!", 1); return; } if (Session.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode fazer exercícios enquanto está preso!", 1); return; } if (!Room.GymEnabled) { Session.SendWhisper("Você deve estar dentro da academia para se exercitar!", 1); return; } if (Session.GetRoleplay().CurEnergy <= 0) { Session.SendWhisper("Você não tem energia suficiente para treinar!", 1); return; } bool HasTreadmill = Room.GetRoomItemHandler().GetFloor.Where(x => (x.GetBaseItem().ItemName.ToLower() == "olympics_c16_treadmill" || x.GetBaseItem().ItemName.ToLower() == "olympics_c16_crosstrainer") && x.Coordinate == Session.GetRoomUser().Coordinate).ToList().Count > 0; if (!HasTreadmill) { Session.SendWhisper("Você deve estar em uma esteira ou crosstrainer para treinar!!", 1); return; } Item Treadmill = Room.GetRoomItemHandler().GetFloor.FirstOrDefault(x => (x.GetBaseItem().ItemName.ToLower() == "olympics_c16_treadmill" || x.GetBaseItem().ItemName.ToLower() == "olympics_c16_crosstrainer") && x.Coordinate == Session.GetRoomUser().Coordinate); if (Treadmill == null) { Session.SendWhisper("Você deve estar em uma esteira ou crosstrainer para treinar!!", 1); return; } bool Strength = false; if (Treadmill.GetBaseItem().ItemName.ToLower() == "olympics_c16_treadmill") { Strength = true; } if (Strength && Session.GetRoleplay().Strength >= RoleplayManager.StrengthCap) { Session.SendWhisper("Você atingiu o nível máximo de força de: " + RoleplayManager.StrengthCap + "!", 1); return; } if (!Strength && Session.GetRoleplay().Stamina >= RoleplayManager.StaminaCap) { Session.SendWhisper("Você alcançou o nível de resistência máxima de: " + RoleplayManager.StaminaCap + "!", 1); return; } #endregion #region Execute if (Session.GetRoomUser().isSitting) { Session.GetRoomUser().Z += 0.35; Session.GetRoomUser().RemoveStatus("sit"); Session.GetRoomUser().isSitting = false; Session.GetRoomUser().UpdateNeeded = true; } else if (Session.GetRoomUser().isLying) { Session.GetRoomUser().Z += 0.35; Session.GetRoomUser().RemoveStatus("lay"); Session.GetRoomUser().isLying = false; Session.GetRoomUser().UpdateNeeded = true; } Treadmill.ExtraData = "1"; Treadmill.InteractingUser = Session.GetHabbo().Id; Treadmill.UpdateState(false, true); Treadmill.RequestUpdate(1, true); if (!Strength) { Session.GetRoomUser().ApplyEffect(195); } else { Session.GetRoomUser().ApplyEffect(194); } object[] Data = { Treadmill.Id, Strength }; Session.GetRoomUser().SetRot(Treadmill.Rotation, false); Session.GetRoleplay().IsWorkingOut = true; Session.GetRoleplay().TimerManager.CreateTimer("workout", 1000, true, Data); if (Strength) { Session.Shout("*Começa a correr na esteira para treinar sua Força*", 4); Session.SendWhisper("Tempo de exercício necessário: " + String.Format("{0:N0}", Session.GetRoleplay().StrengthEXP) + "/" + String.Format("{0:N0}", ((!LevelManager.StrengthLevels.ContainsKey(Session.GetRoleplay().Strength + 1) ? 10400 : LevelManager.StrengthLevels[Session.GetRoleplay().Strength + 1]))), 1); } else { Session.Shout("*Começa correndo no crosstrainer para exercitar seu Sangue*", 4); Session.SendWhisper("Tempo de exercício necessário: " + String.Format("{0:N0}", Session.GetRoleplay().StaminaEXP) + "/" + String.Format("{0:N0}", ((!LevelManager.StaminaLevels.ContainsKey(Session.GetRoleplay().Stamina + 1) ? 25200 : LevelManager.StaminaLevels[Session.GetRoleplay().Stamina + 1]))), 1); } #endregion }