Exemple #1
0
 public void GetQueue_Item_shield(Vector2 _position, FarmingPoint _point)
 {
     if (queue_f_shield.Count != 0)
     {
         _farmItem = queue_f_shield.Dequeue();
         GetQueue_ItemSpawn(_position, _point);
     }
 }
Exemple #2
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);
            }
        }
Exemple #3
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
            }
        }
Exemple #4
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
            }
        }
 public void OutputAuraItem(FarmingItem _item) // 고정 아이템 획득 시
 {
     _nowAuraActiveItem.Remove(_item);
 }
Exemple #6
0
    private Vector2 _underPos, _topPos; // 보간 최대좌표

    private void Awake()
    {
        _farmingitem = GetComponentInParent <FarmingItem>();
    }
 public void InputAuraItem(FarmingItem _item) // 고정 아이템 활성화 시
 {
     _nowAuraActiveItem.Add(_item);
 }
 public void OutputItem(FarmingItem _item) // 아이템 획득 시
 {
     _nowactiveItem.Remove(_item);
 }
 public void InputItem(FarmingItem _item) // 아이템 활성화 시
 {
     _nowactiveItem.Add(_item);
 }
Exemple #10
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()));
        }
Exemple #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();

            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
        }