public static void PerformShutDown(bool Crashed = true) { Console.Clear(); log.Info("Servidor desligando..."); Console.Title = "Plus Emulador: Desligando!"; if (!Crashed) { PlusEnvironment.GetGame().GetClientManager().SendMessage(new Communication.Packets.Outgoing.Rooms.Notifications.RoomNotificationComposer("[Alerta de Manutenção]", PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("shutdown_alert"), "disconnection", "ok", "event:")); } else { PlusEnvironment.GetGame().GetClientManager().SendMessage(new RoomNotificationComposer("[Alerta de Manutenção]", PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("shutdown_alert_crash"), "disconnection", "ok", "event:")); } GetGame().StopGameLoop(); Thread.Sleep(Crashed ? 6500 : 2500); GetConnectionManager().Destroy(); //Stop listening. GetGame().GetPacketManager().UnregisterAll(); //Unregister the packets. GetGame().GetPacketManager().WaitForAllToComplete(); FarmingManager.UpdateAllFarmingSpaces(); RoleplayManager.TimerManager.EndAllTimers(); RoleplayManager.TimerManager = null; GetGame().GetClientManager().CloseAll(); //Close all connections GetGame().GetRoomManager().Dispose(); //Stop the game loop. using (IQueryAdapter dbClient = _manager.GetQueryReactor()) { dbClient.RunQuery("TRUNCATE `catalog_marketplace_data`"); dbClient.RunQuery("UPDATE `users` SET online = '0', `auth_ticket` = NULL"); dbClient.RunQuery("UPDATE `rooms` SET `users_now` = '0' WHERE `users_now` > '0'"); dbClient.RunQuery("UPDATE `server_status` SET `users_online` = '0', `loaded_rooms` = '0', `environment_status` = '" + (Crashed ? 3 : 0) + "'"); } WebSocketChatManager.StopAllChats(); log.Info("Plus Emulador desligado com sucesso."); Thread.Sleep(1000); Environment.Exit(0); }
private void Awake() { int i = 0; instance = this; // 무기 해금여부에 따라서 스폰할 무기의 종류를 넣어줌 if (FileManager.weaponembargo["pistol"]) { _activeItems.Add(i++, 0); } if (FileManager.weaponembargo["smg"]) { _activeItems.Add(i++, 1); } if (FileManager.weaponembargo["sniper"]) { _activeItems.Add(i++, 2); } if (FileManager.weaponembargo["ar"]) { _activeItems.Add(i++, 3); } if (FileManager.weaponembargo["sg"]) { _activeItems.Add(i++, 4); } if (FileManager.weaponembargo["grenade"]) { _activeItems.Add(i++, 5); } // HP & 쉴드 아이템(6번, 7번) _activeItems.Add(i++, 6); _activeItems.Add(i++, 7); }
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights) { RoomUser roomUser = null; if (Session != null && Session.GetRoleplay() != null) { roomUser = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } if (roomUser == null) { return; } if (Item.FarmingData == null) { Session.SendWhisper("Desculpe, este item não tem dados agrícolas!", 1); return; } FarmingItem FarmingItem = FarmingManager.GetFarmingItem(Item.GetBaseItem().ItemName); if (FarmingItem == null) { Session.SendWhisper("Desculpe, este não é um item agrícola!", 1); return; } if (Item.FarmingData.OwnerId != 0 && Item.FarmingData.OwnerId != Session.GetHabbo().Id) { Session.SendWhisper("Alguém mais possui essa planta!", 1); return; } if (Session.GetRoleplay().TryGetCooldown("farming", false)) { return; } #region Check Rentable Space if (Item.GetRoom().GetRoomItemHandler() != null && Item.GetRoom().GetRoomItemHandler().GetFloor != null) { lock (Item.GetRoom().GetRoomItemHandler().GetFloor) { List <Item> OwnedRentableSpaces = Item.GetRoom().GetRoomItemHandler().GetFloor.Where(x => x.GetBaseItem().InteractionType == InteractionType.RENTABLE_SPACE && x.RentableSpaceData != null && x.RentableSpaceData.FarmingSpace != null && x.RentableSpaceData.FarmingSpace.OwnerId == Session.GetHabbo().Id).ToList(); if (OwnedRentableSpaces.Count <= 0) { Session.SendWhisper("Você não possui esse terreno para cultivar!", 1); Session.GetRoleplay().CooldownManager.CreateCooldown("farming", 500); return; } Item SpaceItem = OwnedRentableSpaces.FirstOrDefault(); List <Point> SpacePoints = SpaceItem.GetAffectedTiles; if (!SpacePoints.Contains(Item.Coordinate)) { Session.SendWhisper("YVocê não possui esse terreno para cultivar!!", 1); Session.GetRoleplay().CooldownManager.CreateCooldown("farming", 500); return; } } } #endregion if (Item.FarmingData.BeingFarmed) { if (Item.ExtraData != "0") { Session.SendWhisper("Esta planta foi regada recentemente", 1); } else { Session.SendWhisper("Esta semente foi plantada!", 1); } return; } if (!Session.GetRoleplay().WateringCan&& Item.ExtraData != "8") { Session.SendWhisper("Você não tem água na sua mão!", 1); Session.GetRoleplay().CooldownManager.CreateCooldown("farming", 500); return; } if (RoleplayManager.FarmingCAPTCHABox) { if (Session.GetRoleplay().CaptchaSent) { Session.SendWhisper("Você deve inserir o código no código AFK para continuar cultivando!", 1); Session.GetRoleplay().CooldownManager.CreateCooldown("farming", 500); return; } } CryptoRandom Random = new CryptoRandom(); if (Gamemap.TilesTouching(Item.GetX, Item.GetY, roomUser.X, roomUser.Y)) { if (Item.ExtraData == "4") { if (!Session.GetRoleplay().FarmingStats.HasPlantSatchel) { Session.SendWhisper("Você precisa de uma sacola da planta para pegar esta planta!", 1); Session.GetRoleplay().CooldownManager.CreateCooldown("farming", 500); return; } if (Item.GetRoom() != null) { Item.GetRoom().GetRoomItemHandler().RemoveFurniture(null, Item.Id); FarmingManager.AddEXP(Session, Random.Next(FarmingItem.MaxExp, (FarmingItem.MaxExp + 4))); FarmingManager.IncreaseSatchelCount(Session, FarmingItem, 1, true); Session.Shout("*Colhe o " + Item.GetBaseItem().PublicName + " e a coloca em sua mochila*", 4); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Farming", 1); Session.GetRoleplay().CooldownManager.CreateCooldown("farming", 500); return; } } else { var cracks = 0; int.TryParse(Item.ExtraData, out cracks); cracks++; Item.FarmingData.BeingFarmed = true; Session.Shout("*Põe um pouco de água na " + Item.GetBaseItem().PublicName + " e espera que ele cresça*", 4); FarmingManager.AddEXP(Session, Random.Next(FarmingItem.MinExp, (FarmingItem.MaxExp + 1))); Session.GetRoleplay().CooldownManager.CreateCooldown("farming", 500); #region Timer new Thread(() => { int count = 0; while (Session != null && Item != null && Item.FarmingData != null) { if (Session == null || Item == null || Item.FarmingData == null) { break; } count++; Thread.Sleep(1000); if (count >= 10) { break; } } if (count >= 10 && Session != null && Item != null && Item.FarmingData != null) { Item.ExtraData = Convert.ToString(cracks); Item.UpdateState(false, true); if (Item.ExtraData != "4") { Session.SendWhisper("A planta(s) " + Item.GetBaseItem().PublicName + " que você regou amadureceu um pouco!", 1); } else { Session.SendWhisper("A planta(s)" + Item.GetBaseItem().PublicName + " você regou amadureceu completamente!", 1); } } if (Item != null && Item.FarmingData != null) { Item.FarmingData.BeingFarmed = false; } }).Start(); #endregion } Session.GetRoleplay().CooldownManager.CreateCooldown("farming", 500); } }
/// <summary> /// Responds to the event /// </summary> public void Execute(object Source, object[] Params) { GameClient Client = (GameClient)Source; if (Client == null || Client.GetRoleplay() == null || Client.GetHabbo() == null) { return; } Room Room = (Room)Params[0]; TutorialBadge(Client, Params); if (Client.GetRoleplay().PoliceTrial) { Client.GetRoleplay().PoliceTrial = false; } #region WebSocket Dialogue Check Client.GetRoleplay().ClearWebSocketDialogue(); #endregion #region Police Car Enable Check if (Client.GetRoomUser() != null) { if (Client.GetRoomUser().CurrentEffect == EffectsList.CarPolice) { Client.GetRoomUser().ApplyEffect(EffectsList.None); } } #endregion #region Spawn/Update Texas Hold 'Em Furni if (TexasHoldEmManager.GetGamesByRoomId(Room.RoomId).Count > 0) { List <TexasHoldEm> Games = TexasHoldEmManager.GetGamesByRoomId(Room.RoomId); foreach (TexasHoldEm Game in Games) { if (Game != null) { #region PotSquare Check if (Game.PotSquare.Furni != null) { if (Game.PotSquare.Furni.GetX != Game.PotSquare.X && Game.PotSquare.Furni.GetY != Game.PotSquare.Y && Game.PotSquare.Furni.GetZ != Game.PotSquare.Z && Game.PotSquare.Furni.Rotation != Game.PotSquare.Rotation) { if (Room.GetRoomItemHandler().GetFloor.Contains(Game.PotSquare.Furni)) { Room.GetRoomItemHandler().RemoveFurniture(null, Game.PotSquare.Furni.Id); } Game.PotSquare.SpawnDice(); } } else { Game.PotSquare.SpawnDice(); } #endregion #region JoinGate Check if (Game.JoinGate.Furni != null) { if (Game.JoinGate.Furni.GetX != Game.JoinGate.X && Game.JoinGate.Furni.GetY != Game.JoinGate.Y && Game.JoinGate.Furni.GetZ != Game.JoinGate.Z && Game.JoinGate.Furni.Rotation != Game.JoinGate.Rotation) { if (Room.GetRoomItemHandler().GetFloor.Contains(Game.JoinGate.Furni)) { Room.GetRoomItemHandler().RemoveFurniture(null, Game.JoinGate.Furni.Id); } Game.JoinGate.SpawnDice(); } } else { Game.JoinGate.SpawnDice(); } #endregion #region Player1 Check foreach (TexasHoldEmItem Item in Game.Player1.Values) { if (Item.Furni != null) { if (Item.Furni.GetX != Item.X && Item.Furni.GetY != Item.Y && Item.Furni.GetZ != Item.Z && Item.Furni.Rotation != Item.Rotation) { if (Room.GetRoomItemHandler().GetFloor.Contains(Item.Furni)) { Room.GetRoomItemHandler().RemoveFurniture(null, Item.Furni.Id); } Item.SpawnDice(); } } else { Item.SpawnDice(); } } #endregion #region Player2 Check foreach (TexasHoldEmItem Item in Game.Player2.Values) { if (Item.Furni != null) { if (Item.Furni.GetX != Item.X && Item.Furni.GetY != Item.Y && Item.Furni.GetZ != Item.Z && Item.Furni.Rotation != Item.Rotation) { if (Room.GetRoomItemHandler().GetFloor.Contains(Item.Furni)) { Room.GetRoomItemHandler().RemoveFurniture(null, Item.Furni.Id); } Item.SpawnDice(); } } else { Item.SpawnDice(); } } #endregion #region Player3 Check foreach (TexasHoldEmItem Item in Game.Player3.Values) { if (Item.Furni != null) { if (Item.Furni.GetX != Item.X && Item.Furni.GetY != Item.Y && Item.Furni.GetZ != Item.Z && Item.Furni.Rotation != Item.Rotation) { if (Room.GetRoomItemHandler().GetFloor.Contains(Item.Furni)) { Room.GetRoomItemHandler().RemoveFurniture(null, Item.Furni.Id); } Item.SpawnDice(); } } else { Item.SpawnDice(); } } #endregion #region Banker Check foreach (TexasHoldEmItem Item in Game.Banker.Values) { if (Item.Furni != null) { if (Item.Furni.GetX != Item.X && Item.Furni.GetY != Item.Y && Item.Furni.GetZ != Item.Z && Item.Furni.Rotation != Item.Rotation) { if (Room.GetRoomItemHandler().GetFloor.Contains(Item.Furni)) { Room.GetRoomItemHandler().RemoveFurniture(null, Item.Furni.Id); } Item.SpawnDice(); } } else { Item.SpawnDice(); } } #endregion } } } #endregion #region Spawn/Update Turf Flag Furni if (Room.TurfEnabled) { Turf Turf = TurfManager.GetTurf(Room.RoomId); if (Turf != null) { if (Turf.FlagSpawned) { if (Turf.Flag.GroupId != Turf.GangId || (Turf.Flag.GetX != Turf.FlagX && Turf.Flag.GetY != Turf.FlagY)) { Turf.SpawnFlag(); } } else { Turf.SpawnFlag(); } } } #endregion #region Spawn/Update House Signs List <House> Houses = PlusEnvironment.GetGame().GetHouseManager().GetHousesBySignRoomId(Room.Id); if (Houses.Count > 0) { foreach (House House in Houses) { if (House.Sign.Spawned) { if (House.Sign.Item.GetX != House.Sign.X && House.Sign.Item.GetY != House.Sign.Y && House.Sign.Item.GetZ != House.Sign.Z) { House.SpawnSign(); } } else { House.SpawnSign(); } } } #endregion #region Spawn/Update Farming Spaces List <FarmingSpace> FarmingSpaces = FarmingManager.GetFarmingSpacesByRoomId(Room.Id); if (FarmingSpaces.Count > 0) { foreach (FarmingSpace Space in FarmingSpaces) { if (Space.Spawned) { if (Space.Item.GetX != Space.X && Space.Item.GetY != Space.Y && Space.Item.GetZ != Space.Z) { Space.SpawnSign(); } } else { Space.SpawnSign(); } } } #endregion #region Spawn Jailbreak Fence if (Room.RoomId == Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid")) && !JailbreakManager.JailbreakActivated) { int X = Convert.ToInt32(RoleplayData.GetData("jailbreak", "fencex")); int Y = Convert.ToInt32(RoleplayData.GetData("jailbreak", "fencey")); int Rot = Convert.ToInt32(RoleplayData.GetData("jailbreak", "fencerotation")); if (Room.GetRoomItemHandler().GetFloor.Where(x => x.BaseItem == 8049 && x.GetX == X && x.GetY == Y).ToList().Count <= 0) { double MaxHeight = 0.0; Item ItemInFront; if (Room.GetGameMap().GetHighestItemForSquare(new Point(X, Y), out ItemInFront)) { if (ItemInFront != null) { MaxHeight = ItemInFront.TotalHeight; } } RoleplayManager.PlaceItemToRoom(null, 8049, 0, X, Y, MaxHeight, Rot, false, Room.RoomId, false); } } #endregion #region Taxi Message if (Client.GetRoleplay().AntiArrowCheck) { Client.GetRoleplay().AntiArrowCheck = false; } if (Client.GetRoleplay().InsideTaxi) { int Bubble = (Client.GetHabbo().GetPermissions().HasRight("mod_tool") && Client.GetRoleplay().StaffOnDuty) ? 23 : 4; Client.GetRoleplay().InsideTaxi = false; new Thread(() => { Thread.Sleep(500); RoleplayManager.Shout(Client, "*Chega ao meu destino*", Bubble); }).Start(); } else { PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Client, QuestType.SOCIAL_VISIT); } #endregion #region Room Entrance Message if (Room.EnterRoomMessage != "none") { new Thread(() => { Thread.Sleep(500); Client.SendWhisper(Room.EnterRoomMessage, 34); }).Start(); } #endregion #region Main checks BotInteractionCheck(Client, Params); if (Client.GetRoleplay().Game == null && Client.GetRoleplay().Team == null) { HomeRoomCheck(Client, Params); JobCheck(Client, Params); SendhomeCheck(Client, Params); DeathCheck(Client, Params); JailCheck(Client, Params); WantedCheck(Client, Params); ProbationCheck(Client, Params); #region AFK check if (Client.GetRoomUser() != null) { Client.GetHabbo().Poof(true); } #endregion } #endregion #region Event/Game Checks else { if (Client.GetRoleplay().Game != null && Client.GetRoleplay().Team != null) { if (!Client.GetRoleplay().GameSpawned || Client.GetRoleplay().NeedsRespawn) { if (Client.GetRoleplay().Game != Games.RoleplayGameManager.GetGame(Games.GameMode.Brawl)) { var OldCoord = new Point(Client.GetRoomUser().Coordinate.X, Client.GetRoomUser().Coordinate.Y); var NewCoord = new Point(Client.GetRoleplay().Team.SpawnPoint.X, Client.GetRoleplay().Team.SpawnPoint.Y); Client.GetHabbo().CurrentRoom.GetGameMap().UpdateUserMovement(OldCoord, NewCoord, Client.GetRoomUser()); Client.GetRoomUser().SetPos(NewCoord.X, NewCoord.Y, Client.GetHabbo().CurrentRoom.GetGameMap().GetHeightForSquare(NewCoord)); if (Client.GetRoleplay().NeedsRespawn) { if (Client.GetRoomUser() != null) { Client.GetRoomUser().CanWalk = false; } } if (!Client.GetRoleplay().GameSpawned) { Client.GetRoleplay().GameSpawned = true; Client.SendNotification(Client.GetRoleplay().Game.GetName() + " Começou! Boa sorte!"); } } } } } #endregion }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom) { return; } Room Room; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) { return; } int itemID = Packet.PopInt(); Item Item = Room.GetRoomItemHandler().GetItem(itemID); if (Item == null) { return; } bool hasRights = false; if (Room.CheckRights(Session, false, true)) { hasRights = true; } if (Item.GetBaseItem().ItemName.ToLower() == "fxbox_fx192") { FarmingManager.EquipWateringCan(Session, Item); return; } if (Item.GetBaseItem().ItemName.ToLower() == "nest_dirt") { FarmingManager.PlantSeed(Session, Item); return; } if (Item.GetBaseItem().InteractionType == InteractionType.banzaitele) { return; } if (Item.GetBaseItem().InteractionType == InteractionType.TONER) { if (!Room.CheckRights(Session, false)) { return; } if (Room.TonerData.Enabled == 0) { Room.TonerData.Enabled = 1; } else { Room.TonerData.Enabled = 0; } Room.SendMessage(new ObjectUpdateComposer(Item, Item.UserID)); Item.UpdateState(); using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `room_items_toner` SET `enabled` = '" + Room.TonerData.Enabled + "' LIMIT 1"); } return; } if (Item.Data.InteractionType == InteractionType.GNOME_BOX && Item.UserID == Session.GetHabbo().Id) { Session.SendMessage(new GnomeBoxComposer(Item.Id)); } Boolean Toggle = true; if (Item.GetBaseItem().InteractionType == InteractionType.WF_FLOOR_SWITCH_1 || Item.GetBaseItem().InteractionType == InteractionType.WF_FLOOR_SWITCH_2) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } if (!Gamemap.TilesTouching(Item.GetX, Item.GetY, User.X, User.Y)) { Toggle = false; } } string oldData = Item.ExtraData; int request = Packet.PopInt(); Item.Interactor.OnTrigger(Session, Item, request, hasRights); if (Toggle) { Item.GetRoom().GetWired().TriggerEvent(WiredBoxType.TriggerStateChanges, Session.GetHabbo(), Item); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length < 3) { Session.SendWhisper("Comando inválido, Use ':oferecer usuário item [e talvez preço]'.", 1); return; } GameClient Target = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Target == null) { Session.SendWhisper("Opa, usuário não encontrado!", 1); return; } RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Target.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; } string Type = Params[2]; if (CommandManager.MergeParams(Params, 2) == "Saco de Sementes") { Type = "sacodesementes"; } else if (CommandManager.MergeParams(Params, 2) == "Saco de Plantas") { Type = "sacodeplantas"; } #region Weapon Check Weapon weapon = null; foreach (Weapon Weapon in WeaponManager.Weapons.Values) { if (Type.ToLower() == Weapon.Name.ToLower()) { Type = "armas"; weapon = Weapon; } } #endregion #region Car/Phone Upgrade Check if (Type.ToLower() == "upar") { lock (GroupManager.Jobs) { Group CarJob = GroupManager.Jobs.Values.FirstOrDefault(x => x.Ranks.Count > 0 && x.Ranks.Values.FirstOrDefault().HasCommand("carro")); Group PhoneJob = GroupManager.Jobs.Values.FirstOrDefault(x => x.Ranks.Count > 0 && x.Ranks.Values.FirstOrDefault().HasCommand("celular")); if (CarJob != null && CarJob.Ranks.Values.FirstOrDefault().CanWorkHere(Room.Id)) { Type = "uparcarro"; } if (PhoneJob != null && PhoneJob.Ranks.Values.FirstOrDefault().CanWorkHere(Room.Id)) { Type = "uparcel"; } } } #endregion switch (Type.ToLower()) { #region Weapon case "weapon": case "armas": case "arma": case "gun": { if (weapon == null) { Session.SendWhisper("'" + Type + "' não é um tipo de oferta válida!"); break; } if (weapon.Stock < 1) { Session.SendWhisper("Não há " + weapon.PublicName + " no estoque! Por favor, use o comando ':pedirentrega' para lotar o estoque!", 1); return; } if (!GroupManager.HasJobCommand(Session, "weapon") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything") && Session.GetHabbo().VIPRank < 2) { Session.SendWhisper("Desculpe, você não trabalha na empresa de Armas!", 1); break; } if (Target.GetRoleplay().OwnedWeapons.ContainsKey(weapon.Name) && Target.GetRoleplay().OwnedWeapons[weapon.Name].CanUse) { Session.SendWhisper("Desculpe, esse cidadão já possui um(a) " + weapon.PublicName + "!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything") && Session.GetHabbo().VIPRank < 2) { Session.SendWhisper("Você deve estar trabalhando para oferecer a alguém um(a) " + weapon.PublicName + "!", 1); break; } else { int Cost = (!Target.GetRoleplay().OwnedWeapons.ContainsKey(weapon.Name) ? weapon.Cost : weapon.CostFine); bool HasOffer = false; if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (WeaponManager.Weapons.ContainsKey(Offer.Type.ToLower())) { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece um(a) " + weapon.PublicName + " para " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer(weapon.Name.ToLower(), Session.GetHabbo().Id, Cost); Target.SendWhisper("Você recebeu uma oferta de um(a) " + weapon.PublicName + " por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar arma' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu uma arma!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar um(a) " + weapon.PublicName + "!", 1); break; } } } #endregion #region Phone case "phone": case "celular": case "cel": case "telefone": { if (!GroupManager.HasJobCommand(Session, "phone") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa de celular!", 1); break; } if (Target.GetRoleplay().PhoneType > 0) { Session.SendWhisper("Desculpe, esse cidadão já tem um celular!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer a alguém um telefone!", 1); break; } else { int Cost = 50; bool HasOffer = false; if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == Type.ToLower()) { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece um Nokia Tijolao para " + Target.GetHabbo().Username + " por $50*", 4); Target.GetRoleplay().OfferManager.CreateOffer("celular", Session.GetHabbo().Id, Cost); Target.SendWhisper("Você recebeu uma oferta de um Nokia Tijolão! Digite ':aceitar celular' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu uma oferta de Celular!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar um telefone!", 1); break; } } } #endregion #region Phone Upgrade case "phoneupgrade": case "uparcel": case "upartelefone": case "uparcelular": case "attcel": case "atualizarcel": case "attcelular": { if (!GroupManager.HasJobCommand(Session, "phone") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa do telefone!", 1); break; } if (Target.GetRoleplay().PhoneType < 1) { Session.SendWhisper("Desculpe, esse cidadão não possui um telefone para atualizar!", 1); break; } if (Target.GetRoleplay().PhoneType > 2) { Session.SendWhisper("Desculpe, esse cidadão já tem o telefone mais alto que pode obter!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer a alguém um telefone!", 1); break; } else { int Cost = Target.GetRoleplay().PhoneType == 1 ? 400 : 1000; bool HasOffer = false; string PhoneName = RoleplayManager.GetPhoneName(Target, true); if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == "uparcel") { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece uma atualização para o " + PhoneName + " de " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer("uparcel", Session.GetHabbo().Id, Cost); Target.SendWhisper("Você recebeu uma oferta para atualizar o seu " + PhoneName + " por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar uparcel' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu uma atualização para o telefone!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar uma atualização por telefone!", 1); break; } } } #endregion #region Phone Credit case "credit": case "credits": case "phonecredit": case "phonecredits": case "creditos": case "celcreditos": { if (!GroupManager.HasJobCommand(Session, "phone") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa de telefone!", 1); break; } if (Params.Length == 3) { Session.SendWhisper("Digite o valor do crédito do telefone que você gostaria de oferecer ao cidadão!", 1); return; } int Amount; if (!int.TryParse(Params[3], out Amount)) { Session.SendWhisper("Digite uma quantidade válida de crédito do telefone que você gostaria de oferecer ao cidadão!", 1); break; } if (Amount < 10) { Session.SendWhisper("Você precisa oferecer ao cidadão pelo menos 10 créditos de celular por vez!", 1); break; } if (Target.GetRoleplay().PhoneType < 1) { Session.SendWhisper("Desculpe, esse cidadão não tem telefone!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer créditos para alguém!", 1); break; } else { int Cost = Convert.ToInt32(Math.Floor((double)Amount / 2)); bool HasOffer = false; if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == "creditos") { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece " + String.Format("{0:N0}", Amount) + " créditos de celular para " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer("creditos", Session.GetHabbo().Id, Amount); Target.SendWhisper("Você recebeu uma oferta de " + String.Format("{0:N0}", Amount) + " créditos de celular por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar creditos' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu créditos de telefone!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar créditos de telefone!", 1); break; } } } #endregion #region Bullets case "bullets": case "ammo": case "balas": { if (!GroupManager.HasJobCommand(Session, "weapon") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa de Armas!", 1); break; } if (Params.Length == 3) { Session.SendWhisper("Digite a quantidade de balas que você gostaria de oferecer ao cidadão!", 1); return; } int Amount; if (!int.TryParse(Params[3], out Amount)) { Session.SendWhisper("Digite uma quantidade válida de balas que você gostaria de oferecer ao cidadão!", 1); break; } if (Amount < 10) { Session.SendWhisper("Você precisa oferecer ao cidadão pelo menos 10 balas por vez!", 1); break; } if (Target.GetRoleplay().PhoneType < 1) { Session.SendWhisper("Este Cidadão precisa de um Celular para ter uma Arma, em caso de Multas!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer balas de alguém!", 1); break; } else { int Cost = Convert.ToInt32(Math.Floor((double)Amount / 1)); bool HasOffer = false; if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == "balas") { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece " + String.Format("{0:N0}", Amount) + " balas para " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer("balas", Session.GetHabbo().Id, Amount); Target.SendWhisper("Você recebeu uma oferta de " + String.Format("{0:N0}", Amount) + " balas por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar balas' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu balas!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar balas!", 1); break; } } } #endregion #region Seeds case "seed": case "seeds": case "sementes": { if (!GroupManager.HasJobCommand(Session, "supermarket") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa do supermercado!", 1); break; } if (Params.Length < 5) { Session.SendWhisper("Digite o comando: ':oferecer <usuário> semente <id> <quantidade>'!", 1); return; } int Id; if (!int.TryParse(Params[3], out Id)) { Session.SendWhisper("Digite um ID de semente válido para oferecer ao cidadão!", 1); return; } FarmingItem Item = FarmingManager.GetFarmingItem(Id); if (Item == null) { Session.SendWhisper("Desculpe, mas este ID de semente não pôde ser encontrado!", 1); return; } ItemData Furni; if (!PlusEnvironment.GetGame().GetItemManager().GetItem(Item.BaseItem, out Furni)) { Session.SendWhisper("Desculpe, mas esta semente não pôde ser encontrada!", 1); return; } int Amount; if (!int.TryParse(Params[4], out Amount)) { Session.SendWhisper("Insira uma quantidade válida de sementes que você gostaria de oferecer ao cidadão!", 1); break; } if (!Target.GetRoleplay().FarmingStats.HasSeedSatchel) { Session.SendWhisper("Desculpe, esse cidadão não tem um Saco de Sementes!", 1); break; } int Cost = (Amount * Item.BuyPrice); if (Item.LevelRequired > Target.GetRoleplay().FarmingStats.Level) { Session.SendWhisper("Desculpe, mas esse cidadão não tem um nível de cultivo suficientemente alto para esta semente!", 1); return; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer sementes", 1); break; } else { if (Target.GetHabbo().Credits >= Cost) { if (Target.GetRoleplay().OfferManager.ActiveOffers.Values.Where(x => x.Type.ToLower() == "seeds").ToList().Count <= 0) { Session.Shout("*Oferece " + String.Format("{0:N0}", Amount) + " sementes " + Furni.PublicName + " para " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer("sementes", Session.GetHabbo().Id, Amount, Item); Target.SendWhisper("Você recebeu uma oferta de Sementes " + String.Format("{0:N0}", Amount) + " " + Furni.PublicName + " por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar sementes' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu uma oferta de sementes!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar a oferta de sementes!", 1); break; } } } #endregion #region Seed Satchel case "seedsatchel": case "sacosementes": case "sacodesementes": case "sds": { if (!GroupManager.HasJobCommand(Session, "supermarket") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa de supermercados!", 1); break; } if (Target.GetRoleplay().FarmingStats.HasSeedSatchel) { Session.SendWhisper("Desculpe, esse cidadão já possui um Saco de Sementes!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer a alguém um Saco de Sementes!", 1); break; } else { int Cost = Convert.ToInt32(RoleplayData.GetData("farming", "seedsatchelcost")); bool HasOffer = false; if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == Type.ToLower()) { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece um Saco de Sementes para " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer("sacodesementes", Session.GetHabbo().Id, Cost); Target.SendWhisper("Você recebeu uma oferta de Saco de Sementes por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar sacodesementes' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já foi oferecido um Saco de Sementes!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar um Saco de Sementes!", 1); break; } } } #endregion #region Plant Satchel case "plantsatchel": case "sacodeplanta": case "sacoplanta": case "sp": case "sdp": { if (!GroupManager.HasJobCommand(Session, "supermarket") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa do supermercado!", 1); break; } if (Target.GetRoleplay().FarmingStats.HasPlantSatchel) { Session.SendWhisper("Desculpe, esse cidadão já possui um Saco de Plantas!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer a alguém um Saco de Plantas!", 1); break; } else { int Cost = Convert.ToInt32(RoleplayData.GetData("farming", "plantsatchelcost")); bool HasOffer = false; if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == Type.ToLower()) { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece um Saco de Plantas para " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer("sacodeplantas", Session.GetHabbo().Id, Cost); Target.SendWhisper("Você recebeu uma oferta de Saco de Plantas por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar sacodeplantas' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu uma oferta de Saco de Plantas!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar um Saco de Plantas!", 1); break; } } } #endregion #region Car case "car": case "carro": { if (!GroupManager.HasJobCommand(Session, "car") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa de automóveis!", 1); break; } if (Target.GetRoleplay().CarType > 0) { Session.SendWhisper("Desculpe, esse cidadão já tem um carro!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer a alguém um carro!", 1); break; } else { int Cost = 800; bool HasOffer = false; if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == Type.ToLower()) { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece um Toyota Corolla para " + Target.GetHabbo().Username + " por R$800,00*", 4); Target.GetRoleplay().OfferManager.CreateOffer("carro", Session.GetHabbo().Id, Cost); Target.SendWhisper("Você recebeu uma oferta de um Toyota Corolla por R$800,00! Digite ':aceitar carro' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu uma oferta de carro!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar um carro!", 1); break; } } } #endregion #region Car Upgrade case "carupgrade": case "uparcarro": case "attcarro": case "atualizarcarro": { if (!GroupManager.HasJobCommand(Session, "car") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa de automóveis!", 1); break; } if (Target.GetRoleplay().CarType < 1) { Session.SendWhisper("Desculpe, esse cidadão não possui carro para atualizar!", 1); break; } if (Target.GetRoleplay().CarType > 2) { Session.SendWhisper("Desculpe, esse cidadão já tem o carro mais alto que pode comprar!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer uma atualização de carro!", 1); break; } else { int Cost = Target.GetRoleplay().CarType == 1 ? 800 : 1500; bool HasOffer = false; string CarName = RoleplayManager.GetCarName(Target, true); if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == "uparcarro") { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece uma atualização do " + CarName + " para " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer("uparcarro", Session.GetHabbo().Id, Cost); Target.SendWhisper("Você recebeu uma oferta para atualizar o seu " + CarName + " por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar uparcarro' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu uma oferta de atualização de carro!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar uma atualização de carro!", 1); break; } } } #endregion #region Fuel case "fuel": case "gasolina": case "combustivel": case "diesel": { if (!GroupManager.HasJobCommand(Session, "car") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Desculpe, você não trabalha na empresa Carros!", 1); break; } if (Params.Length == 3) { Session.SendWhisper("Insira a quantidade de combustível para oferecer ao cidadão!", 1); return; } int Amount; if (!int.TryParse(Params[3], out Amount)) { Session.SendWhisper("Insira uma quantidade válida de combustível para oferecer ao cidadão!", 1); break; } if (Amount < 10) { Session.SendWhisper("Você precisa oferecer ao cidadão pelo menos 10 galões de combustível por vez!", 1); break; } if (Target.GetRoleplay().CarType < 1) { Session.SendWhisper("Desculpe, esse cidadão não tem um carro!", 1); break; } if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything")) { Session.SendWhisper("Você deve estar trabalhando para oferecer a alguém combustível!", 1); break; } else { int Cost = Convert.ToInt32(Math.Floor((double)(Amount * 2) / 3)); bool HasOffer = false; if (Target.GetHabbo().Credits >= Cost) { foreach (var Offer in Target.GetRoleplay().OfferManager.ActiveOffers.Values) { if (Offer.Type.ToLower() == "gasolina") { HasOffer = true; } } if (!HasOffer) { Session.Shout("*Oferece " + String.Format("{0:N0}", Amount) + " galões de gasolina para " + Target.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", 4); Target.GetRoleplay().OfferManager.CreateOffer("gasolina", Session.GetHabbo().Id, Amount); Target.SendWhisper("Você recebeu uma oferta de " + String.Format("{0:N0}", Amount) + " galões de gasolina por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar gasolina' para comprar!", 1); break; } else { Session.SendWhisper("Este usuário já recebeu combustível!", 1); break; } } else { Session.SendWhisper("Este cidadão não pode pagar combustível!", 1); break; } } } #endregion #region Default default: { Session.SendWhisper("'" + Type + "' não é um tipo de oferta válida!", 1); break; } #endregion } }
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; } }
public Game() { this._packetManager = new PacketManager(); this._clientManager = new GameClientManager(); this._modManager = new ModerationManager(); this._moderationTool = new ModerationTool(); this._itemDataManager = new ItemDataManager(); this._itemDataManager.Init(); this._catalogManager = new CatalogManager(); this._catalogManager.Init(this._itemDataManager); this._televisionManager = new TelevisionManager(); this._navigatorManager = new NavigatorManager(); this._roomManager = new RoomManager(); this._chatManager = new ChatManager(); this._questManager = new QuestManager(); this._achievementManager = new AchievementManager(); this._talentTrackManager = new TalentTrackManager(); this._landingViewManager = new LandingViewManager(); this._gameDataManager = new GameDataManager(); this._globalUpdater = new ServerStatusUpdater(); this._globalUpdater.Init(); this._languageLocale = new LanguageLocale(); this._antiMutant = new AntiMutant(); this._botManager = new BotManager(); this._cacheManager = new CacheManager(); this._rewardManager = new RewardManager(); this._badgeManager = new BadgeManager(); this._badgeManager.Init(); this._permissionManager = new PermissionManager(); this._permissionManager.Init(); this._subscriptionManager = new SubscriptionManager(); this._subscriptionManager.Init(); this._guideManager = new GuideManager(); int pollLoaded; this._pollManager = new PollManager(); this._pollManager.Init(out pollLoaded); #region Roleplay Section RoleplayData.Initialize(); EventManager.Initialize(); CombatManager.Initialize(); RoleplayGameManager.Initialize(); this._groupManager = new GroupManager(); this._groupManager.Initialize(); TexasHoldEmManager.Initialize(); TurfManager.Initialize(); WeaponManager.Initialize(); FoodManager.Initialize(); FarmingManager.Initialize(); CraftingManager.Initialize(); LotteryManager.Initialize(); ToDoManager.Initialize(); BlackListManager.Initialize(); BountyManager.Initialize(); WebSocketChatManager.Initialiaze(); this._houseManager = new HouseManager(); this._houseManager.Init(); this._webEventManager = new WebEventManager(); this._webEventManager.Init(); #endregion }
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 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 override void HandleRequest(GameClient Client, string Message) { if (!OnDuty) { return; } if (GetBotRoleplay().WalkingToItem) { return; } if (RespondToSpeech(Client, Message)) { return; } string Name = GetBotRoleplay().Name.ToLower(); if (Message.ToLower() == Name) { GetRoomUser().Chat("Sim " + Client.GetHabbo().Username + ", Você quer vender algumas plantas?", true); } else if (Message.ToLower() == "sim" || Message.ToLower() == "planta" || Message.ToLower() == "plantas" || Message.ToLower() == "vender") { StringBuilder Plants = new StringBuilder().Append("<----- Preços das plantas ----->\n"); Plants.Append("Digite 'vender plantas' para me vender todas as suas plantas!\n\n"); foreach (var Item in FarmingManager.FarmingItems.Values) { if (Item == null) { continue; } ItemData Furni; if (PlusEnvironment.GetGame().GetItemManager().GetItem(Item.BaseItem, out Furni)) { Plants.Append("<----- " + Furni.PublicName + " ----->\n"); Plants.Append("Lucro: " + String.Format("{0:N0}", Item.SellPrice) + " por planta \n\n"); } } GetRoomUser().Chat("Aqui está " + Client.GetHabbo().Username + ", esta a lista de plantas que eu estou comprando!", true); Client.SendMessage(new MOTDNotificationComposer(Plants.ToString())); } else if (Message.ToLower() == "vender plantas") { int Amount = FarmingManager.SellPlants(Client); if (Amount > 0) { Client.GetHabbo().Credits += Amount; Client.GetHabbo().UpdateCreditsBalance(); RoleplayManager.Shout(Client, "*Vende todas as suas plantas para " + this.GetBotRoleplay().Name + "*", 4); Client.SendWhisper("Você acabou de ganhar R$" + String.Format("{0:N0}", Amount) + " por vender suas plantas!", 1); GetRoomUser().Chat("Obrigado por todas as suas plantas " + Client.GetHabbo().Username + "!", true); return; } else { string WhisperMessage = "Você não tem plantas para me vender, " + Client.GetHabbo().Username + "!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } } }
public override void HandleRequest(GameClient Client, string Message) { if (!OnDuty) { return; } if (GetBotRoleplay().WalkingToItem) { return; } if (RespondToSpeech(Client, Message)) { return; } string Name = GetBotRoleplay().Name.ToLower(); string[] Params = Message.Split(' '); #region Satchel if (Message.ToLower() == "saco") { string WhisperMessage = "Por favor digite 'saco de sementes' para comprar uma sacola de sementes, ou 'saco de plantas' para comprar!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } #endregion #region Plant Satchel if (Message.StartsWith("sacodeplantas")) { if (Client.GetRoleplay().FarmingStats.HasPlantSatchel) { string WhisperMessage = "Desculpe, você já tem um Saco de Plantas!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } if (Client.GetRoleplay().OfferManager.ActiveOffers.Values.Where(x => x.Type.ToLower() == "plantsatchel").ToList().Count > 0) { string WhisperMessage = "Desculpe, mas você já recebeu uma oferta de sacola de plantas!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } int Cost = Convert.ToInt32(RoleplayData.GetData("farming", "plantsatchelcost")); if (Client.GetHabbo().Credits < Cost) { string WhisperMessage = "Desculpe, você não tem R$" + String.Format("{0:N0}", Cost) + " para comprar o Saco de Plantas!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } GetRoomUser().Chat("*Oferece um Saco de Plantas para " + Client.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", true); Client.GetRoleplay().OfferManager.CreateOffer("sacodeplantas", 0, Cost, this); Client.SendWhisper("Você recebeu uma oferta de Saco de Plantas por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar sacodeplantas' para comprar!", 1); return; } #endregion #region Seed Satchel if (Message.StartsWith("sacodesementes")) { if (Client.GetRoleplay().FarmingStats.HasSeedSatchel) { string WhisperMessage = "Desculpe, você já possui um Saco de sementes!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } if (Client.GetRoleplay().OfferManager.ActiveOffers.Values.Where(x => x.Type.ToLower() == "seedsatchel").ToList().Count > 0) { string WhisperMessage = "Desculpe, mas você já recebeu uma oferta de Saco de sementes!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } int Cost = Convert.ToInt32(RoleplayData.GetData("farming", "seedsatchelcost")); if (Client.GetHabbo().Credits < Cost) { string WhisperMessage = "Desculpe, você não tem R$" + String.Format("{0:N0}", Cost) + " para comprar um Saco de Sementes!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } GetRoomUser().Chat("*Oferece um Saco de sementes para " + Client.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", true); Client.GetRoleplay().OfferManager.CreateOffer("sacodesementes", 0, Cost, this); Client.SendWhisper("Você recebe uma oferta de Saco de Sementes por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar sacodesementes' para comprar!", 1); return; } #endregion #region Seeds if (Message.ToLower() == "seeds" || Message.ToLower() == "seed") { GetRoomUser().Chat("Welcome " + Client.GetHabbo().Username + " to the supermarket!", true); StringBuilder FarmingList = new StringBuilder().Append("--- Seeds For Sale ---\n"); FarmingList.Append("To buy any of the following, type 'seed <id> <amount>'!\n\n"); foreach (FarmingItem Item in FarmingManager.FarmingItems.Values.OrderBy(x => x.Id)) { if (Item != null) { ItemData Furni; if (PlusEnvironment.GetGame().GetItemManager().GetItem(Item.BaseItem, out Furni)) { FarmingList.Append("--- " + Furni.PublicName + " [" + Item.Id + "] ---\n"); FarmingList.Append("Farming Level Required: " + Item.LevelRequired + "\n"); FarmingList.Append("Cost: $" + String.Format("{0:N0}", Item.BuyPrice) + "\n\n"); } } } Client.SendMessage(new MOTDNotificationComposer(FarmingList.ToString())); return; } #endregion #region Buying Seeds if (Params[0].ToLower() == "seed" && Params.Length > 2) { int Id; if (!int.TryParse(Params[1], out Id)) { string WhisperMessage = "Please type 'seed <id> <amount>' to buy some seeds, or type 'seeds' to see what I have for sale!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } FarmingItem Item = FarmingManager.GetFarmingItem(Id); ItemData Furni; if (!PlusEnvironment.GetGame().GetItemManager().GetItem(Item.BaseItem, out Furni) || Item == null) { string WhisperMessage = "Sorry, but there is no seed for sale with that id!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } int Amount; if (!int.TryParse(Params[2], out Amount)) { string WhisperMessage = "Please type 'seed <id> <amount>' to buy some seeds, or type 'seeds' to see what I have for sale!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } if (Client.GetRoleplay().OfferManager.ActiveOffers.Values.Where(x => x.Type.ToLower() == "seed").ToList().Count > 0) { string WhisperMessage = "Sorry, but you already been offered some seeds!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } if (!Client.GetRoleplay().FarmingStats.HasSeedSatchel) { string WhisperMessage = "You don't have a seed satchel to carry any seeds! Type 'seed satchel' to buy one."; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } if (Item.LevelRequired > Client.GetRoleplay().FarmingStats.Level) { string WhisperMessage = "Sorry, but you do not have a high enough farming level for this seed type!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } int Cost = (Amount * Item.BuyPrice); if (Client.GetHabbo().Credits < Cost) { string WhisperMessage = "You don't have $" + String.Format("{0:N0}", Cost) + " to buy " + Amount + " " + Furni.PublicName + "'s!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } object[] Objects = new object[] { this, Item }; GetRoomUser().Chat("*Offers " + Amount + " " + Furni.PublicName + " seeds to " + Client.GetHabbo().Username + " for $" + String.Format("{0:N0}", Cost) + "*", true); Client.GetRoleplay().OfferManager.CreateOffer("sementes", 0, Amount, Objects); Client.SendWhisper("You have just been offered " + Amount + " " + Furni.PublicName + " seeds for $" + String.Format("{0:N0}", Cost) + "! Type ':accept seeds' to buy them!", 1); return; } #endregion }