예제 #1
0
        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);
        }
예제 #2
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);
    }
예제 #3
0
        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);
            }
        }
예제 #4
0
        /// <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
        }
예제 #5
0
        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);
            }
        }
예제 #6
0
        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
            }
        }
예제 #7
0
        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;
            }
        }
예제 #8
0
파일: Game.cs 프로젝트: xjoao97/HabboRP
        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
        }
예제 #9
0
        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();
        }
예제 #10
0
        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
            }
        }
예제 #11
0
        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;
                }
            }
        }
예제 #12
0
        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
        }