Beispiel #1
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(' ');

            if (Message.ToLower() == Name)
            {
                GetRoomUser().Chat("Sim " + Client.GetHabbo().Username + ", Você precisa de algo?", true);
            }
            else
            {
                switch (Params[0].ToLower())
                {
                    #region Car
                case "car":
                case "carro":
                {
                    if (Client.GetRoleplay().CarType > 0)
                    {
                        string WhisperMessage = "Você já tem um carro!";
                        Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                        break;
                    }
                    else
                    {
                        int  Cost     = 800;
                        bool HasOffer = false;
                        if (Client.GetHabbo().Credits >= Cost)
                        {
                            foreach (var Offer in Client.GetRoleplay().OfferManager.ActiveOffers.Values)
                            {
                                if (Offer.Type.ToLower() == "carro")
                                {
                                    HasOffer = true;
                                }
                            }
                            if (!HasOffer)
                            {
                                GetRoomUser().Chat("*Oferece um Toyota Corolla para " + Client.GetHabbo().Username + " por R$800,00*", true);
                                Client.GetRoleplay().OfferManager.CreateOffer("carro", 0, Cost, this);
                                Client.SendWhisper("Você recebeu uma oferta de um Toyota Corolla por R$800,00! Digite ':aceitar carro' para comprar!", 1);
                                break;
                            }
                            else
                            {
                                string WhisperMessage = "Você já recebeu uma oferta de carro! Digite ':aceitar carro' para comprar por R$800,00!";
                                Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                                break;
                            }
                        }
                        else
                        {
                            string WhisperMessage = "Você não tem R$800,00 para comprar um carro!";
                            Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                            break;
                        }
                    }
                }
                    #endregion

                    #region Car Upgrade
                case "upgrade":
                case "carupgrade":
                case "uparcarro":
                case "attcarro":
                case "upcarro":
                case "atcarro":
                {
                    if (Client.GetRoleplay().CarType < 1)
                    {
                        string WhisperMessage = "Desculpe, mas você não tem um carro para atualizar!";
                        Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                        break;
                    }
                    else if (Client.GetRoleplay().CarType > 2)
                    {
                        string WhisperMessage = "Desculpe, mas você já tem o carro mais alto que se pode obter!";
                        Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                        break;
                    }
                    else
                    {
                        int    Cost     = Client.GetRoleplay().CarType == 1 ? 800 : 1500;
                        bool   HasOffer = false;
                        string CarName  = RoleplayManager.GetCarName(Client, true);

                        if (Client.GetHabbo().Credits >= Cost)
                        {
                            foreach (var Offer in Client.GetRoleplay().OfferManager.ActiveOffers.Values)
                            {
                                if (Offer.Type.ToLower() == "uparcarro")
                                {
                                    HasOffer = true;
                                }
                            }
                            if (!HasOffer)
                            {
                                GetRoomUser().Chat("*Oferece uma atualização de carro do seu " + CarName + " para " + Client.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", true);
                                Client.GetRoleplay().OfferManager.CreateOffer("uparcarro", 0, Cost, this);
                                Client.SendWhisper("Você recebeu uma oferta de atualização para o seu " + CarName + " por R$" + String.Format("{0:N0}", Cost) + "! Digite ':aceitar uparcarro' para comprar!", 1);
                                break;
                            }
                            else
                            {
                                string WhisperMessage = "Desculpe, mas você já recebeu uma oferta de atualização de carro!";
                                Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                                break;
                            }
                        }
                        else
                        {
                            string WhisperMessage = "Desculpe, mas você não pode pagar uma atualização de carro!";
                            Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                            break;
                        }
                    }
                }
                    #endregion

                    #region Fuel
                case "fuel":
                case "gasolina":
                case "combustivel":
                {
                    int Amount;

                    if (Client.GetRoleplay().CarType < 1)
                    {
                        string WhisperMessage = "Desculpe, mas você não tem um carro para comprar combustível!";
                        Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                        break;
                    }
                    else if (Params.Length == 1)
                    {
                        string WhisperMessage = "Insira a quantidade de combustível que deseja comprar!";
                        Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                        return;
                    }
                    else if (!int.TryParse(Params[1], out Amount))
                    {
                        string WhisperMessage = "Por favor insira uma quantidade válida de combustível que você gostaria de comprar!";
                        Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                        break;
                    }

                    if (Amount < 10)
                    {
                        string WhisperMessage = "Você precisa comprar pelo menos 10 galões de combustível de cada vez!";
                        Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                        break;
                    }
                    else
                    {
                        int  Cost     = Convert.ToInt32(Math.Floor((double)(Amount * 2) / 3));
                        bool HasOffer = false;

                        if (Client.GetHabbo().Credits >= Cost)
                        {
                            foreach (var Offer in Client.GetRoleplay().OfferManager.ActiveOffers.Values)
                            {
                                if (Offer.Type.ToLower() == "gasolina")
                                {
                                    HasOffer = true;
                                }
                            }
                            if (!HasOffer)
                            {
                                GetRoomUser().Chat("*Oferece " + String.Format("{0:N0}", Amount) + " galões de gasolina " + Client.GetHabbo().Username + " por R$" + String.Format("{0:N0}", Cost) + "*", true);
                                Client.GetRoleplay().OfferManager.CreateOffer("gasolina", 0, Amount, this);
                                Client.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
                            {
                                string WhisperMessage = "Desculpe, mas você já recebeu uma oferta de combustível!";
                                Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                                break;
                            }
                        }
                        else
                        {
                            string WhisperMessage = "Desculpe, mas não pode pagar esse combustível!";
                            Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                            break;
                        }
                    }
                }
                    #endregion
                }
            }
        }
Beispiel #2
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
            }
        }
Beispiel #3
0
        /// <summary>
        /// Checks the users roleplay conditions
        /// </summary>
        public override void Execute()
        {
            try
            {
                #region Base Conditions
                if (base.Client == null || base.Client.GetHabbo() == null || base.Client.GetRoleplay() == null)
                {
                    base.EndTimer();
                    return;
                }

                if (base.Client.GetRoomUser() == null)
                {
                    return;
                }

                if (base.Client.GetHabbo().CurrentRoom == null)
                {
                    return;
                }
                #endregion

                #region Variables
                bool Equipped = base.Client.GetRoleplay().EquippedWeapon == null ? false : true;
                bool Hygiene  = base.Client.GetRoleplay().Hygiene == 0 ? true : false;
                bool Healing  = base.Client.GetRoleplay().BeingHealed;
                bool Farming  = base.Client.GetRoleplay().WateringCan;
                int  Effect   = base.Client.GetRoomUser().CurrentEffect;
                int  Item     = base.Client.GetRoomUser().CarryItemID;
                #endregion

                #region Random Checks
                if (base.Client.GetRoleplay().IsWorking || base.Client.GetRoleplay().IsWorkingOut || base.Client.GetRoleplay().BankAccount <= 2 && !base.Client.GetRoomUser().IsAsleep)
                {
                    if (!base.Client.GetRoleplay().CaptchaSent)
                    {
                        base.Client.GetRoleplay().CaptchaTime++;
                    }
                }

                if (base.Client.GetRoomUser().IsAsleep)
                {
                    if (Equipped)
                    {
                        base.Client.GetRoleplay().EquippedWeapon = null;
                        if (base.Client.GetRoomUser().CurrentEffect != EffectsList.None)
                        {
                            base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                        }
                        if (base.Client.GetRoomUser().CarryItemID != 0)
                        {
                            base.Client.GetRoomUser().CarryItem(0);
                        }
                    }
                }
                if (!Equipped)
                {
                    if (Effect > 0 && WeaponManager.Weapons.Values.Where(x => x.EffectID == Effect).ToList().Count > 0)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                    }

                    if (Item > 0 && WeaponManager.Weapons.Values.Where(x => x.HandItem == Item).ToList().Count > 0)
                    {
                        base.Client.GetRoomUser().CarryItem(EffectsList.None);
                    }
                }
                #endregion

                #region Anti-Enable Checks
                // Repairing Fence & Event Capturing Check
                if (Effect == EffectsList.SunnyD && (!base.Client.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("repair") || !base.Client.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("capture")))
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Working Out
                if ((Effect == EffectsList.Treadmill || Effect == EffectsList.CrossTrainer) && !base.Client.GetRoleplay().IsWorkingOut)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Farming Check
                if (Effect == EffectsList.WateringCan && !Farming)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Hygiene Check
                if (Effect == EffectsList.Flies && !Hygiene)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Stun & Frozen Check
                if ((Effect == EffectsList.Dizzy || Effect == EffectsList.Ice) && !base.Client.GetRoomUser().Frozen)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Riding Horse Check
                if (Effect == EffectsList.HorseRiding && !base.Client.GetRoomUser().RidingHorse)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Healing check
                if (Effect == EffectsList.GreenGlow && !Healing)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Staff On Duty Check
                if (Effect == EffectsList.Staff && !base.Client.GetRoleplay().StaffOnDuty)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Ambassador On Duty Check
                if (Effect == EffectsList.Ambassador && !base.Client.GetRoleplay().AmbassadorOnDuty)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Police On Duty Check
                if (Effect == EffectsList.HoloRPPolice && (!base.Client.GetRoleplay().IsWorking || !GroupManager.HasJobCommand(base.Client, "guide")))
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Hosptial On Duty Check
                if (Effect == EffectsList.Medic && (!base.Client.GetRoleplay().IsWorking || !GroupManager.HasJobCommand(base.Client, "heal")))
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Car Driving Check
                if ((Effect == EffectsList.CarDollar || Effect == EffectsList.CarTopFuel || Effect == EffectsList.CarMini || Effect == EffectsList.HoverboardYellow) && !base.Client.GetRoleplay().DrivingCar)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Cuffed Check
                if (Effect == EffectsList.Cuffed && !base.Client.GetRoleplay().Cuffed)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Taxi Check (Regular Users)
                if (Effect == EffectsList.Taxi && !base.Client.GetRoleplay().InsideTaxi)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                // Taxi Check (Police)
                if (Effect == EffectsList.PoliceTaxi && !base.Client.GetRoleplay().InsideTaxi)
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                }
                #endregion

                #region Main Checks
                if (base.Client.GetRoleplay().DrivingCar)
                {
                    base.Client.GetRoleplay().CarTimer++;

                    if (base.Client.GetRoleplay().SexTimer > 0)
                    {
                        base.Client.GetRoleplay().SexTimer = 0;
                        base.Client.GetHabbo().Poof(true);
                    }

                    if (base.Client.GetHabbo().CurrentRoom == null)
                    {
                        base.Client.GetRoleplay().DrivingCar  = false;
                        base.Client.GetRoleplay().CarEnableId = 0;
                    }
                    else
                    {
                        if (base.Client.GetRoleplay().CarEnableId == EffectsList.CarPolice)
                        {
                            if (!GroupManager.HasJobCommand(base.Client, "arrest") || !base.Client.GetRoleplay().IsWorking)
                            {
                                base.Client.GetRoleplay().DrivingCar  = false;
                                base.Client.GetRoleplay().CarEnableId = EffectsList.None;
                                RoleplayManager.Shout(base.Client, "*Entra em seu carro de polícia*", 4);
                            }
                        }

                        if (!base.Client.GetHabbo().CurrentRoom.DriveEnabled&& base.Client.GetRoleplay().DrivingCar)
                        {
                            bool VipCar = base.Client.GetRoleplay().CarEnableId == EffectsList.HoverBoardWhite;

                            base.Client.GetRoleplay().DrivingCar  = false;
                            base.Client.GetRoleplay().CarEnableId = EffectsList.None;
                        }
                    }

                    if (base.Client.GetRoleplay().DrivingCar&& base.Client.GetRoleplay().CarEnableId != EffectsList.HoverBoardWhite && base.Client.GetRoleplay().CarEnableId != EffectsList.CarPolice)
                    {
                        if (base.Client.GetRoleplay().CarTimer >= 25)
                        {
                            if (base.Client.GetRoleplay().CarType == 1)
                            {
                                base.Client.GetRoleplay().CarFuel -= 3;
                                base.Client.SendWhisper("Você acabou de perder 3 litros de gasolina, agora você tem " + base.Client.GetRoleplay().CarFuel + " galões sobrando!", 1);
                            }
                            else if (base.Client.GetRoleplay().CarType == 2)
                            {
                                base.Client.GetRoleplay().CarFuel -= 2;
                                base.Client.SendWhisper("Você acabou de perder 2 litros de gasolina, agora você tem " + base.Client.GetRoleplay().CarFuel + " galões sobrando!", 1);
                            }
                            else
                            {
                                base.Client.GetRoleplay().CarFuel -= 1;
                                base.Client.SendWhisper("Você acabou de perder 1 litro de gasolina, agora você tem " + base.Client.GetRoleplay().CarFuel + " galões sobrando!", 1);
                            }
                            base.Client.GetRoleplay().CarTimer = 0;
                        }

                        if (base.Client.GetRoleplay().CarFuel <= 0)
                        {
                            base.Client.GetRoleplay().CarFuel     = 0;
                            base.Client.GetRoleplay().DrivingCar  = false;
                            base.Client.GetRoleplay().CarEnableId = EffectsList.None;

                            string CarName = RoleplayManager.GetCarName(base.Client);
                            RoleplayManager.Shout(base.Client, "*Sente o seu " + CarName + " parar, acho que acabou a gasolina*", 4);
                        }
                    }

                    if (base.Client.GetRoleplay().DrivingCar&& (base.Client.GetRoleplay().CarEnableId == EffectsList.HoverBoardWhite || base.Client.GetRoleplay().CarEnableId == EffectsList.CarPolice))
                    {
                        if (base.Client.GetRoleplay().CarTimer >= 360)
                        {
                            base.Client.GetRoleplay().CarTimer   = 0;
                            base.Client.GetRoleplay().DrivingCar = false;

                            if (Effect != EffectsList.None)
                            {
                                base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                            }

                            if (base.Client.GetRoleplay().CarEnableId == EffectsList.HoverBoardWhite)
                            {
                                RoleplayManager.Shout(base.Client, "*Parece que o seu hoverboard VIP parou, a bateria deve ter morrido*", 4);
                            }
                            else
                            {
                                RoleplayManager.Shout(base.Client, "*Parece que seu carro de polícia ficou sem gasolina, vá comprar mais*", 4);
                            }
                            base.Client.GetRoleplay().CarEnableId = EffectsList.None;
                        }
                    }

                    if (base.Client.GetRoleplay().DrivingCar&& Effect != base.Client.GetRoleplay().CarEnableId)
                    {
                        base.Client.GetRoomUser().ApplyEffect(base.Client.GetRoleplay().CarEnableId);
                    }

                    if (!base.Client.GetRoleplay().DrivingCar)
                    {
                        base.Client.GetRoleplay().CarTimer = 0;

                        if (Effect != EffectsList.None)
                        {
                            base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                        }

                        if (base.Client.GetRoleplay().CooldownManager.ActiveCooldowns.ContainsKey("car"))
                        {
                            base.Client.GetRoleplay().CooldownManager.ActiveCooldowns["car"].Amount = 90;
                        }
                        else
                        {
                            base.Client.GetRoleplay().CooldownManager.CreateCooldown("car", 1000, 90);
                        }
                    }
                }
                else if (base.Client.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("repair") || base.Client.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("capture"))
                {
                    base.Client.GetRoomUser().ApplyEffect(EffectsList.SunnyD);
                    return;
                }
                else if (Healing)
                {
                    if (Equipped && Item != base.Client.GetRoleplay().EquippedWeapon.HandItem)
                    {
                        base.Client.GetRoomUser().CarryItem(0);
                    }
                    if (Effect != EffectsList.GreenGlow)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.GreenGlow);
                    }
                    return;
                }
                else if (base.Client.GetRoleplay().IsWorkingOut)
                {
                    return;
                }
                else if (base.Client.GetRoleplay().TextTimer > 0)
                {
                    if (Effect == EffectsList.CellPhone)
                    {
                        if (base.Client.GetRoleplay().TextTimer == 1)
                        {
                            base.Client.GetRoleplay().TextTimer = 0;

                            if (base.Client.GetRoomUser() != null)
                            {
                                base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                            }
                        }
                        else
                        {
                            base.Client.GetRoleplay().TextTimer--;
                        }
                    }
                    else
                    {
                        base.Client.GetRoleplay().TextTimer = 0;
                    }
                }
                else if (base.Client.GetRoleplay().SexTimer > 0)
                {
                    if (Effect == EffectsList.RunningMan)
                    {
                        if (base.Client.GetRoleplay().SexTimer == 1)
                        {
                            base.Client.GetRoleplay().SexTimer = 0;

                            if (base.Client.GetRoomUser() != null)
                            {
                                base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                            }

                            base.Client.GetHabbo().Poof(true);
                        }
                        else
                        {
                            base.Client.GetRoleplay().SexTimer--;
                        }
                    }
                    else
                    {
                        base.Client.GetRoleplay().SexTimer = 0;
                        base.Client.GetHabbo().Poof(true);
                    }
                }
                else if (base.Client.GetRoleplay().RapeTimer > 0)
                {
                    if (Effect == EffectsList.Twinkle)
                    {
                        if (base.Client.GetRoleplay().RapeTimer == 1)
                        {
                            base.Client.GetRoleplay().RapeTimer = 0;

                            if (base.Client.GetRoomUser() != null)
                            {
                                base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                            }
                        }
                        else
                        {
                            base.Client.GetRoleplay().RapeTimer--;
                        }
                    }
                    else
                    {
                        base.Client.GetRoleplay().RapeTimer = 0;
                    }
                }
                else if (base.Client.GetRoleplay().KissTimer > 0)
                {
                    if (Effect == EffectsList.Love)
                    {
                        if (base.Client.GetRoleplay().KissTimer == 1)
                        {
                            base.Client.GetRoleplay().KissTimer = 0;

                            if (base.Client.GetRoomUser() != null)
                            {
                                base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                            }
                        }
                        else
                        {
                            base.Client.GetRoleplay().KissTimer--;
                        }
                    }
                    else
                    {
                        base.Client.GetRoleplay().KissTimer = 0;
                    }
                }
                else if (base.Client.GetRoleplay().HugTimer > 0)
                {
                    if (Effect == EffectsList.Love)
                    {
                        if (base.Client.GetRoleplay().HugTimer == 1)
                        {
                            base.Client.GetRoleplay().HugTimer = 0;

                            if (base.Client.GetRoomUser() != null)
                            {
                                base.Client.GetRoomUser().ApplyEffect(EffectsList.None);
                            }
                        }
                        else
                        {
                            base.Client.GetRoleplay().HugTimer--;
                        }
                    }
                    else
                    {
                        base.Client.GetRoleplay().HugTimer = 0;
                    }
                }
                else if (Effect == EffectsList.HorseRiding && base.Client.GetRoomUser().RidingHorse)
                {
                    return;
                }
                else if ((Effect == EffectsList.Dizzy || Effect == EffectsList.Ice) && base.Client.GetRoomUser().Frozen)
                {
                    return;
                }
                else if (base.Client.GetRoleplay().InsideTaxi)
                {
                    if (GroupManager.HasJobCommand(base.Client, "guide") && base.Client.GetRoleplay().IsWorking)
                    {
                        if (Effect != EffectsList.PoliceTaxi)
                        {
                            base.Client.GetRoomUser().ApplyEffect(EffectsList.PoliceTaxi);
                        }
                    }
                    else
                    {
                        if (Effect != EffectsList.Taxi)
                        {
                            base.Client.GetRoomUser().ApplyEffect(EffectsList.Taxi);
                        }
                    }
                    return;
                }
                else if (base.Client.GetRoleplay().Cuffed)
                {
                    if (Effect != EffectsList.Cuffed)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.Cuffed);
                    }
                    return;
                }
                else if (Equipped)
                {
                    if (base.Client.GetRoleplay() != null && base.Client.GetRoleplay().EquippedWeapon != null && base.Client.GetRoomUser() != null)
                    {
                        if (base.Client.GetRoleplay().EquippedWeapon.EffectID > 0 && base.Client.GetRoomUser().CurrentEffect != base.Client.GetRoleplay().EquippedWeapon.EffectID)
                        {
                            base.Client.GetRoomUser().ApplyEffect(base.Client.GetRoleplay().EquippedWeapon.EffectID);
                        }
                    }
                    if (base.Client.GetRoleplay() != null && base.Client.GetRoleplay().EquippedWeapon != null && base.Client.GetRoomUser() != null)
                    {
                        if (base.Client.GetRoleplay().EquippedWeapon.HandItem > 0 && base.Client.GetRoomUser().CarryItemID != base.Client.GetRoleplay().EquippedWeapon.HandItem)
                        {
                            base.Client.GetRoomUser().CarryItem(base.Client.GetRoleplay().EquippedWeapon.HandItem);
                        }
                    }
                    return;
                }
                else if (Farming)
                {
                    if (Effect != EffectsList.WateringCan)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.WateringCan);
                    }
                    return;
                }
                else if (Hygiene)
                {
                    if (Effect != EffectsList.Flies)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.Flies);
                    }
                    return;
                }
                else if (base.Client.GetRoleplay().StaffOnDuty)
                {
                    if (Effect != EffectsList.Staff)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.Staff);
                    }
                    return;
                }
                else if (base.Client.GetRoleplay().AmbassadorOnDuty)
                {
                    if (Effect != EffectsList.Ambassador)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.Ambassador);
                    }
                    return;
                }
                else if (base.Client.GetRoleplay().IsWorking&& GroupManager.HasJobCommand(base.Client, "guide"))
                {
                    if (Effect != EffectsList.HoloRPPolice)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.HoloRPPolice);
                    }
                    return;
                }
                else if (base.Client.GetRoleplay().IsWorking&& GroupManager.HasJobCommand(base.Client, "heal"))
                {
                    if (Effect != EffectsList.Medic)
                    {
                        base.Client.GetRoomUser().ApplyEffect(EffectsList.Medic);
                    }
                    return;
                }
                #endregion
            }
            catch (Exception e)
            {
                Logging.LogRPTimersError("Error in Execute() void: " + e);
            }
        }
Beispiel #4
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            StringBuilder Message = new StringBuilder().Append("<----- Ofertas ativas atualmente ----->\n\n");

            if (Session.GetRoleplay().OfferManager.ActiveOffers.Count <= 0)
            {
                Message.Append("Você atualmente não tem ofertas ativas!\n");
            }
            else
            {
                Message.Append("Digite ':aceitar OFERTA' (As OFERTAS são [celular/casamento/gangue/roupa, e outras]!\n\n");
            }

            lock (Session.GetRoleplay().OfferManager.ActiveOffers.Values)
            {
                foreach (var Offer in Session.GetRoleplay().OfferManager.ActiveOffers.Values)
                {
                    if (Offer == null)
                    {
                        continue;
                    }

                    string Name = "";
                    if (Offer.Params != null && Offer.Params.Length > 0)
                    {
                        if (Offer.Type.ToLower() == "sementes" && Offer.Params.ToList().Count == 1)
                        {
                            var OffererCache = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(Offer.OffererId);
                            Name = OffererCache.Username;
                        }
                        else
                        {
                            RoleplayBotAI Bot = (RoleplayBotAI)Offer.Params[0];
                            Name = "[BOT] " + Bot.GetBotRoleplay().Name;
                        }
                    }
                    else
                    {
                        var OffererCache = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(Offer.OffererId);
                        Name = OffererCache.Username;
                    }

                    string PhoneName = RoleplayManager.GetPhoneName(Session, true);
                    string CarName   = RoleplayManager.GetCarName(Session, true);

                    if (Offer.Type.ToLower() == "casamento")
                    {
                        Message.Append("Casamento: " + Name + " pediu sua mão em casamento!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "sacodesementes")
                    {
                        Message.Append("Saco de Sementes: Um Saco de Sementes por R$" + String.Format("{0:N0}", Offer.Cost) + " de " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "sacodeplantas")
                    {
                        Message.Append("Saco de Plantas: Um Saco de Plantas por R$" + String.Format("{0:N0}", Offer.Cost) + " de " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "sementes")
                    {
                        FarmingItem Item = (FarmingItem)Offer.Params[1];

                        ItemData Furni;
                        if (PlusEnvironment.GetGame().GetItemManager().GetItem(Item.BaseItem, out Furni))
                        {
                            Message.Append("Sementes: " + Name + " ofereceu para você " + Offer.Cost + " " + Furni.PublicName + " sementes por R$" + String.Format("{0:N0}", (Offer.Cost * Item.BuyPrice)) + "!\n\n");
                        }
                    }
                    else if (Offer.Type.ToLower() == "desconto")
                    {
                        Message.Append("Roupas: Desconto de 5% para comprar roupas de " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "celular")
                    {
                        Message.Append("Celular: Um Nokia Tijolão por " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "carro")
                    {
                        Message.Append("Carro: Um Toyota Corolla por $1,000 from " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "cheques")
                    {
                        Message.Append("Cheques: Uma conta de Cheques no branco grátis de " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "poupanca")
                    {
                        Message.Append("Poupança: Uma conta Poupança por R$" + String.Format("{0:N0}", Offer.Cost) + " de " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "uparcel")
                    {
                        Message.Append("Atualização de Celular: Uma atualização para o seu " + PhoneName + " por R$" + String.Format("{0:N0}", Offer.Cost) + " de " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "uparcarro")
                    {
                        Message.Append("Atualização de Carro: Uma atualização para o seu " + CarName + " por R$" + String.Format("{0:N0}", Offer.Cost) + " de " + Name + "!\n\n");
                    }
                    else if (Offer.Type.ToLower() == "gangue")
                    {
                        var Gang = Groups.GroupManager.GetGang(Offer.Cost);

                        if (Gang != null)
                        {
                            Message.Append("Gangue: Convidado para se juntar à gangue '" + Gang.Name + "' por " + Name + "!\n\n");
                        }
                    }
                    else if (Offer.Type.ToLower() == "emprego")
                    {
                        var Job     = Groups.GroupManager.GetJob(Offer.Cost);
                        var JobRank = Groups.GroupManager.GetJobRank(Job.Id, 1);

                        if (Job != null)
                        {
                            Message.Append("Emprego: Convidado para se juntar a Empresa '" + Job.Name + "' como um '" + JobRank.Name + "' por " + Name + "!\n\n");
                        }
                    }
                    else if (WeaponManager.Weapons.ContainsKey(Offer.Type.ToLower()))
                    {
                        Weapon weapon = WeaponManager.Weapons[Offer.Type.ToLower()];

                        if (weapon != null)
                        {
                            Message.Append("Armas: Uma " + weapon.PublicName + " por R$" + String.Format("{0:N0}", weapon.Cost) + " de " + Name + "!\n\n");
                        }
                    }
                }
            }
            Session.SendMessage(new MOTDNotificationComposer(Message.ToString()));
        }