예제 #1
0
        private void InitializeMafiaBots()
        {
            this.ClearMafiaBots();

            #region Get Bots from Cache

            List <RoleplayBot> MafiaBots = RoleplayBotManager.CachedRoleplayBots.Values.Where(RoleplayBot => RoleplayBot != null && RoleplayBot.AIType == RoleplayBotAIType.MAFIAWARS).ToList();

            RoleplayBot GreenBoss, BlueBoss, GreenThug1, GreenThug2, BlueThug1, BlueThug2;

            GreenBoss = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && MafiaWarsBot.Motto.ToLower().Contains("boss")).FirstOrDefault();
            BlueBoss  = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && MafiaWarsBot.Motto.ToLower().Contains("boss")).FirstOrDefault();

            GreenThug1 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).First();
            GreenThug2 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("green") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).Last();

            BlueThug1 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).First();
            BlueThug2 = MafiaBots.Where(MafiaWarsBot => MafiaWarsBot.Motto.ToLower().Contains("blue") && !MafiaWarsBot.Motto.ToLower().Contains("boss")).Last();

            GreenBoss.Dead       = false;
            GreenBoss.Invisible  = false;
            GreenThug1.Dead      = false;
            GreenThug1.Invisible = false;
            GreenThug2.Dead      = false;
            GreenThug2.Invisible = false;

            BlueBoss.Dead       = false;
            BlueBoss.Invisible  = false;
            BlueThug1.Dead      = false;
            BlueThug1.Invisible = false;
            BlueThug2.Dead      = false;
            BlueThug2.Invisible = false;

            #endregion

            #region Deploy bots
            RoleplayBotManager.DeployBotByID(GreenBoss.Id);
            RoleplayBotManager.DeployBotByID(BlueBoss.Id);

            RoleplayBotManager.DeployBotByID(GreenThug1.Id);
            RoleplayBotManager.DeployBotByID(GreenThug2.Id);

            RoleplayBotManager.DeployBotByID(BlueThug1.Id);
            RoleplayBotManager.DeployBotByID(BlueThug2.Id);
            #endregion

            #region Insert deployed bots into list
            new Thread(() => {
                Thread.Sleep(2000);
                this.MafiaBots.TryAdd("greenboss", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
                this.MafiaBots.TryAdd("greenthug1", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
                this.MafiaBots.TryAdd("greenthug2", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));

                this.MafiaBots.TryAdd("blueboss", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
                this.MafiaBots.TryAdd("bluethug1", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
                this.MafiaBots.TryAdd("bluethug2", RoleplayBotManager.GetDeployedBotById(GreenBoss.Id));
            }).Start();
            #endregion
        }
예제 #2
0
        /// <summary>
        /// Sends a message to a bot
        /// </summary>
        /// <param name="BotId"></param>
        /// <param name="Message"></param>
        internal void MessageBot(int BotId, string Message)
        {
            var serverMessage = new NewConsoleMessageComposer(Client.GetHabbo().Id, Message);

            serverMessage.WriteInteger(BotId); //userid
            serverMessage.WriteString(Client.GetHabbo().Username);
            serverMessage.WriteInteger(0);

            RoomUser Bot = RoleplayBotManager.GetDeployedBotById(BotId - RoleplayBotManager.BotFriendMultiplyer);

            Bot.GetBotRoleplayAI().OnMessaged(Client, Message);
        }
예제 #3
0
        /// <summary>
        /// Gets the bots outfit
        /// </summary>
        /// <returns></returns>
        public string[] GetOutFit()
        {
            string[] Outfit = new string[2];

            Outfit[0] = this.Figure;
            Outfit[1] = this.Motto;

            RoomUser User = RoleplayBotManager.GetDeployedBotById(this.Id);

            if (this.Dead)
            {
                if (this.Gender.ToLower() == "m")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-280-83.ch-215-83");
                }

                if (this.Gender.ToLower() == "f")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-710-83.ch-635-83");
                }

                Outfit[1] = "[MORTO] Paciente do Hospital";
            }
            else if (this.Jailed)
            {
                Random Random       = new Random();
                int    PrisonNumber = Random.Next(10000, 100000);

                if (Gender.ToLower() == "m")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-280-1323.sh-3016-92.ch-220-1323");
                }

                if (Gender.ToLower() == "f")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, "lg-710-1323.sh-3016-92.ch-3067-1323");
                }

                Outfit[1] = "[PRESO] ID do Criminoso [#" + PrisonNumber + "]";
            }
            else if (User != null && User.GetBotRoleplayAI() != null && User.GetBotRoleplayAI().OnDuty)
            {
                if (this.WorkUniform != "Nenhum")
                {
                    Outfit[0] = RoleplayManager.SplitFigure(this.Figure, this.WorkUniform);
                }

                Outfit[1] = "[TRABALHANDO] [" + GroupManager.GetJob(this.Corporation).Name + "]";
            }

            return(Outfit);
        }
예제 #4
0
        /// <summary>
        /// Initiates the bots death
        /// </summary>
        public void InitiateDeath()
        {
            this.Dead          = true;
            this.UserAttacking = null;
            this.TimerManager.EndAllTimers();
            this.CurHealth = this.MaxHealth;

            RoomUser Bot = RoleplayBotManager.GetDeployedBotById(this.Id);

            if (Bot == null)
            {
                return;
            }

            int  HospitalRoomId = Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2"));
            Room Hospital       = RoleplayManager.GenerateRoom(HospitalRoomId);

            RoleplayBotManager.TransportDeployedBot(Bot, HospitalRoomId, true);
            this.TimerManager.CreateTimer("botdeath", this, 1000, true);
        }
예제 #5
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Por favor, insira o item que você gostaria de entregar!", 1);
                return;
            }

            if (RoleplayManager.CalledDelivery)
            {
                Session.SendWhisper("O remetente está muito ocupado agora mesmo! Por favor, tente novamente mais tarde.", 1);
                return;
            }

            bool DeliveryCame = false;

            string Item = Params[1];

            switch (Item.ToLower())
            {
                #region Weapons
            case "glock":
            case "magnum":
            case "mp5":
            case "pistola":
            {
                if (!Room.DeliveryEnabled)
                {
                    Session.SendWhisper("O remetente não entrega a este quarto!", 1);
                    break;
                }

                if (!Session.GetRoleplay().IsWorking&& !Session.GetHabbo().GetPermissions().HasRight("offer_anything"))
                {
                    Session.SendWhisper("Você deve estar trabalhando para chamar o homem de entrega!", 1);
                    break;
                }

                if (!GroupManager.HasJobCommand(Session, "weapon") && !Session.GetHabbo().GetPermissions().HasRight("offer_anything"))
                {
                    Session.SendWhisper("Você não trabalha na loja de armas!", 1);
                    break;
                }

                var Weapon = WeaponManager.getWeapon(Item.ToLower());

                if (Weapon == null)
                {
                    Session.SendWhisper("Por algum motivo, esta arma não pôde ser encontrada", 1);
                    break;
                }

                if (Weapon.Stock > 0)
                {
                    Session.SendWhisper("Aguarde até o " + Weapon.PublicName + " acabar o estoque para chamar o entregador!", 1);
                    break;
                }

                RoleplayBot Bot = RoleplayBotManager.GetCachedBotByAI(RoleplayBotAIType.DELIVERY);

                if (Bot == null)
                {
                    Session.SendWhisper("Nenhum mecanismo de entrega foi encontrado, entre em contato com um membro da equipe!", 1);
                    break;
                }

                RoleplayManager.UserWhoCalledDelivery = Session.GetHabbo().Id;
                RoleplayManager.CalledDelivery        = true;
                RoleplayManager.DeliveryWeapon        = Weapon;

                new Thread(() =>
                    {
                        if (Session.GetRoomUser() != null)
                        {
                            Session.Shout("*Pega seu telefone e chama o remetente, ordenando um novo estoque de " + Weapon.PublicName + "*", 4);
                            Session.GetRoomUser().ApplyEffect(EffectsList.CellPhone);
                        }

                        Thread.Sleep(3000);

                        if (Session.GetRoomUser() != null)
                        {
                            Session.GetRoomUser().ApplyEffect(0);
                        }
                    }).Start();

                var BotUser = RoleplayBotManager.GetDeployedBotById(Bot.Id);
                new Thread(() =>
                    {
                        Thread.Sleep(15000);


                        RoleplayBot DeliverrBot = RoleplayBotManager.GetCachedBotByAI(RoleplayBotAIType.DELIVERY);

                        if (!DeliveryCame)
                        {
                            if (DeliverrBot == null)
                            {
                                Session.SendWhisper("Não é possível obter o bot de entrega, tente novamente mais tarde!", 1);
                                Thread.CurrentThread.Abort();
                                return;
                            }
                            else
                            {
                                RoleplayBotManager.DeployBotByAI(RoleplayBotAIType.DELIVERY, "default", Room.Id);
                                DeliveryCame = true;
                            }
                        }

                        while (Room != null && Room.GetRoomItemHandler() != null && Room.GetRoomItemHandler().GetFloor.Where(x => x.GetBaseItem().InteractionType == HabboHotel.Items.InteractionType.DELIVERY_BOX).ToList().Count <= 0)
                        {
                            Thread.Sleep(10);
                        }

                        Thread.Sleep(2000);
                        RoleplayManager.CalledDelivery = false;
                    }).Start();
                break;
            }
                #endregion

                #region Default
            default:
            {
                Session.SendWhisper("Isso não é um item entregue!", 1);
                break;
            }
                #endregion
            }
        }
예제 #6
0
 public RoomUser GetDeployedInstance()
 {
     return(RoleplayBotManager.GetDeployedBotById(this.Id));
 }