Esempio n. 1
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (Session.GetRoleplay().TryGetCooldown("beijar"))
            {
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode beijar alguém que está ausente!", 1);
                return;
            }
            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance <= 1)
            {
                Session.Shout("*Inclina-se em " + TargetClient.GetHabbo().Username + " e dá um pequeno beijo rápido nos lábios*", 16);
                Session.GetRoleplay().CooldownManager.CreateCooldown("beijar", 1000, 5);
                RoomUser.ApplyEffect(EffectsList.Love);
                TargetUser.ApplyEffect(EffectsList.Love);
                Session.GetRoleplay().KissTimer      = 5;
                TargetClient.GetRoleplay().KissTimer = 5;
                return;
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar desse cidadão para beijá-lo!", 1);
                return;
            }
            #endregion
        }
Esempio n. 2
0
        public bool CanCombat(GameClient Client, RoomUser RoleplayBot)
        {
            double Distance = RoleplayManager.GetDistanceBetweenPoints2D(RoleplayBot.Coordinate, Client.GetRoomUser().Coordinate);

            if (Distance <= 1)
            {
                return(true);
            }

            return(false);
        }
Esempio n. 3
0
        private void WalkToTeleport()
        {
            RoomUser BotUserInstance = this.InteractingBot.DRoomUser;
            double   Distance        = RoleplayManager.GetDistanceBetweenPoints2D(BotUserInstance.Coordinate, this.EnteringTeleport.Coordinate);

            if (Distance <= 3.5)
            {
                this.OnTeleport = true;
            }
            else
            {
                BotUserInstance.MoveTo(this.EnteringTeleport.Coordinate);
            }
        }
Esempio n. 4
0
        public void ExecuteBot(GameClient Session, RoomUser Bot, Room Room)
        {
            if (!Bot.GetBotRoleplay().Jailed)
            {
                Session.SendWhisper("Desculpe, mas " + Bot.GetBotRoleplay().Name + " não está preso!", 1);
                return;
            }

            double Distance   = RoleplayManager.GetDistanceBetweenPoints2D(Session.GetRoomUser().Coordinate, Bot.Coordinate);
            Wanted Wanted     = RoleplayManager.WantedList.ContainsKey(Bot.GetBotRoleplay().Id) ? RoleplayManager.WantedList[Bot.GetBotRoleplay().Id] : null;
            int    WantedTime = Wanted == null ? 5 : Wanted.WantedLevel * 5;

            if (Distance <= 1)
            {
                // cba rn
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar de " + Bot.GetBotRoleplay().Name + "para prendê-lo!", 1);
                return;
            }
        }
Esempio n. 5
0
        private bool CanCombat(GameClient Client, RoomUser RoleplayBot)
        {
            Point Point;

            if (!this.GetAttackingPosition(out Point))
            {
                return(false);
            }

            double Distance = RoleplayManager.GetDistanceBetweenPoints2D(RoleplayBot.Coordinate, Point);

            if (Distance <= 1.5)
            {
                if (this.InteractingUser.GetRoomUser().IsWalking)
                {
                    int Odds  = new Random().Next(this.InteractingBot.MinOdds, this.InteractingBot.MaxOdds);
                    int Odds2 = new Random().Next(this.InteractingBot.MinOdds, this.InteractingBot.MaxOdds);

                    if (Odds == Odds2)
                    {
                        RoleplayBot.Chat("*Swings at " + Client.GetHabbo().Username + ", but misses*", true, 6);
                        RoleplayBot.GetBotRoleplay().CooldownManager.CreateCooldown("fist", 1000, 3);
                    }
                }

                int Rot = Rotation.Calculate(GetRoomUser().X, GetRoomUser().Y, Client.GetRoomUser().X, Client.GetRoomUser().Y);

                GetRoomUser().SetRot(Rot, false);
                GetRoomUser().UpdateNeeded = true;

                return(true);
            }


            return(false);
        }
Esempio n. 6
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions

            RoomUser RoomUser = Session.GetRoomUser();

            if (!GroupManager.HasJobCommand(Session, "flashbang"))
            {
                Session.SendWhisper("Somente um tenente da polícia pode usar esse comando!", 1);
                return;
            }

            if (!Session.GetRoleplay().IsWorking)
            {
                Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1);
                return;
            }

            List <RoomUser> WantedUsers = Room.GetRoomUserManager().GetRoomUsers().Where(x => x != null && x.GetClient() != null && x.GetClient().GetHabbo() != null && x.GetClient().GetRoleplay() != null && RoleplayManager.WantedList.ContainsKey(x.UserId)).ToList();
            if (WantedUsers.Count <= 0)
            {
                Session.SendWhisper("Não há usuários procurados nesta sala!", 1);
                return;
            }

            if (Session.GetRoleplay().TryGetCooldown("flashbang"))
            {
                return;
            }

            Point ClientPos = new Point(RoomUser.Coordinate.X, RoomUser.Coordinate.Y);

            #endregion

            #region Execute

            lock (Room.GetRoomUserManager().GetRoomUsers())
            {
                foreach (RoomUser User in Room.GetRoomUserManager().GetRoomUsers())
                {
                    if (User == null)
                    {
                        continue;
                    }

                    if (User.GetClient() == null)
                    {
                        continue;
                    }

                    if (User.GetClient().GetHabbo() == null)
                    {
                        continue;
                    }

                    if (User.GetClient().GetRoleplay() == null)
                    {
                        continue;
                    }

                    if (Session.GetHabbo().Id == User.UserId)
                    {
                        continue;
                    }

                    if (User.IsAsleep)
                    {
                        continue;
                    }

                    if (!RoleplayManager.WantedList.ContainsKey(User.UserId))
                    {
                        continue;
                    }

                    Point  TargetClientPos = new Point(User.Coordinate.X, User.Coordinate.Y);
                    double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

                    if (Distance <= 6)
                    {
                        User.GetClient().GetRoleplay().TimerManager.CreateTimer("atordoar", 1000, false);
                        User.GetClient().SendMessage(new FloodControlComposer(15));

                        if (User.GetClient().GetRoleplay().InsideTaxi)
                        {
                            User.GetClient().GetRoleplay().InsideTaxi = false;
                        }

                        User.Frozen  = true;
                        User.CanWalk = false;
                        User.ClearMovement(true);
                    }
                }
            }

            Session.Shout("*Atira sua granada flashbang em todos os suspeitos que estão na sala*", 37);
            Session.GetRoleplay().CooldownManager.CreateCooldown("flashbang", 1000, 30);
            return;

            #endregion
        }
Esempio n. 7
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (!GroupManager.HasJobCommand(Session, "cuff") && !Session.GetRoleplay().PoliceTrial)
            {
                Session.SendWhisper("Apenas um policial pode usar esse comando!", 1);
                return;
            }

            if (!Session.GetRoleplay().IsWorking&& !Session.GetRoleplay().PoliceTrial)
            {
                Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode algemar alguém que está morto!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsJailed&& !TargetClient.GetRoleplay().Jailbroken)
            {
                Session.SendWhisper("Você não pode algemar alguém que está preso!", 1);
                return;
            }

            if (!TargetClient.GetRoomUser().Frozen)
            {
                Session.SendWhisper("Você não pode algemar alguém que não está atordoado!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().Cuffed)
            {
                Session.SendWhisper("Você não pode algemar alguém que já está algemado!", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode algemar alguém que está ausente!", 1);
                return;
            }
            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance <= 1)
            {
                if (TargetClient.GetRoleplay().EquippedWeapon != null)
                {
                    Session.Shout("*Segura " + TargetClient.GetHabbo().Username + ", pega sua " + TargetClient.GetRoleplay().EquippedWeapon.PublicName + " e joga longe*", 37);

                    if (RoleplayManager.ConfiscateWeapons)
                    {
                        using (var DB = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                        {
                            DB.SetQuery("UPDATE `rp_weapons_owned` SET `can_use` = '1' WHERE `user_id` = @userid AND `base_weapon` = @baseweapon LIMIT 1");
                            DB.AddParameter("userid", TargetClient.GetHabbo().Id);
                            DB.AddParameter("baseweapon", TargetClient.GetRoleplay().EquippedWeapon.Name.ToLower());
                            DB.RunQuery();
                        }

                        TargetClient.GetRoleplay().EquippedWeapon = null;
                        TargetClient.GetRoleplay().OwnedWeapons   = null;
                        TargetClient.GetRoleplay().OwnedWeapons   = TargetClient.GetRoleplay().LoadAndReturnWeapons();
                    }
                    else
                    {
                        TargetClient.GetRoleplay().EquippedWeapon = null;
                    }
                }
                Session.Shout("*Puxa suas algemas e coloca rapidamente no pulso do vagabundo " + TargetClient.GetHabbo().Username + "'", 37);
                TargetClient.GetRoleplay().Cuffed         = true;
                TargetClient.GetRoleplay().CuffedTimeLeft = 8;
                TargetClient.GetRoleplay().TimerManager.CreateTimer("algemar", 1000, false);
                if (TargetClient.GetRoomUser() != null)
                {
                    TargetClient.GetRoomUser().ApplyEffect(590);
                }
                return;
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar desse cidadão para algema-lo!", 1);
                return;
            }
            #endregion
        }
Esempio n. 8
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);

            if (TargetClient == null || TargetClient.GetRoleplay() == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            int LevelDifference = Math.Abs(Session.GetRoleplay().Level - TargetClient.GetRoleplay().Level);

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (Session.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode roubar alguém enquanto está morto!", 1);
                return;
            }

            if (Session.GetRoleplay().IsJailed)
            {
                Session.SendWhisper("Você não pode roubar alguém enquanto está preso!", 1);
                return;
            }

            if (Session.GetRoleplay().StaffOnDuty || Session.GetRoleplay().AmbassadorOnDuty)
            {
                Session.SendWhisper("Você não pode roubar alguém enquanto você está de plantão!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode roubar alguém que está morto!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsJailed)
            {
                Session.SendWhisper("Você não pode roubar alguém que está na prisão!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().StaffOnDuty)
            {
                Session.SendWhisper("Você não pode roubar um funcionário que esteja de plantão!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().AmbassadorOnDuty)
            {
                Session.SendWhisper("Você não pode roubar um embaixador que está de plantão!", 1);
                return;
            }

            if (TargetClient.GetHabbo().VIPRank > 1)
            {
                Session.SendWhisper("Você não pode roubar esse membro da equipe!", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode roubar alguém que está ausente!", 1);
                return;
            }

            if (!Room.RobEnabled && !RoleplayManager.PurgeStarted)
            {
                Session.SendWhisper("Você não pode roubar nesta sala!", 1);
                return;
            }

            if (Session.GetRoleplay().DrivingCar)
            {
                Session.SendWhisper("Você não pode roubar alguém ao dirigir um veículo!", 1);
                return;
            }

            if (Session.GetRoleplay().IsNoob)
            {
                Session.SendWhisper("Você não pode completar esta ação enquanto estiver sob Deus Proteção!", 1);
                return;
            }

            if (TargetClient == Session)
            {
                Session.SendWhisper("Você não pode se roubar!", 1);
                return;
            }

            if (TargetClient.MachineId == Session.MachineId)
            {
                Session.SendWhisper("GAROTO IXPERTINHO! Você não pode roubar outra das suas contas!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().Level < 2)
            {
                Session.SendWhisper("Você não pode completar esta ação porque o nível do usuário é abaixo de 2!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().Level < 2)
            {
                Session.SendWhisper("Você não pode completar esta ação, pois você ainda é Nível 1!", 1);
                return;
            }

            if (Session.GetRoleplay().TryGetCooldown("roubar"))
            {
                return;
            }

            if (LevelDifference > 6)
            {
                Session.SendWhisper("Você não pode roubar esse usuário, pois sua diferença de nível é maior que 5!", 1);
                return;
            }
            #endregion

            #region Execute
            CryptoRandom Random          = new CryptoRandom();
            Point        ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point        TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double       Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            bool   Success     = false;
            string RobbedItems = "";
            int    DrugsChance = Random.Next(1, 101);

            if (Distance <= 1)
            {
                if (TargetClient.GetHabbo().Credits > 50)
                {
                    int AmountToRob;
                    if (TargetClient.GetHabbo().Credits > 100)
                    {
                        AmountToRob = 100;
                    }
                    else
                    {
                        AmountToRob = TargetClient.GetHabbo().Credits;
                    }

                    int MaxAmount = Convert.ToInt32(Math.Floor((Double)AmountToRob / 2));
                    int MinAmount = Convert.ToInt32(Math.Floor((double)AmountToRob / 10));

                    int Amount = Random.Next(MinAmount, MaxAmount + 1);

                    Session.GetHabbo().Credits += Amount;
                    Session.GetHabbo().UpdateCreditsBalance();

                    TargetClient.GetHabbo().Credits -= Amount;
                    TargetClient.GetHabbo().UpdateCreditsBalance();

                    Success      = true;
                    RobbedItems += "R$" + String.Format("{0:N0}", Amount) + ", ";
                }

                if (DrugsChance <= 15)
                {
                    if (TargetClient.GetRoleplay().Weed > 30)
                    {
                        int AmountToRob;
                        if (TargetClient.GetRoleplay().Weed > 100)
                        {
                            AmountToRob = 100;
                        }
                        else
                        {
                            AmountToRob = TargetClient.GetRoleplay().Weed;
                        }

                        int MaxAmount = Convert.ToInt32(Math.Floor((Double)AmountToRob / 5));
                        int MinAmount = Convert.ToInt32(Math.Floor((double)AmountToRob / 20));

                        int Amount = Random.Next(MinAmount, MaxAmount + 1);

                        Session.GetRoleplay().Weed      += Amount;
                        TargetClient.GetRoleplay().Weed -= Amount;

                        Success      = true;
                        RobbedItems += "e " + String.Format("{0:N0}", Amount) + "g de maconha, ";
                    }

                    if (TargetClient.GetRoleplay().Cocaine > 30)
                    {
                        int AmountToRob;
                        if (TargetClient.GetRoleplay().Cocaine > 100)
                        {
                            AmountToRob = 100;
                        }
                        else
                        {
                            AmountToRob = TargetClient.GetRoleplay().Cocaine;
                        }

                        int MaxAmount = Convert.ToInt32(Math.Floor((Double)AmountToRob / 5));
                        int MinAmount = Convert.ToInt32(Math.Floor((double)AmountToRob / 20));

                        int Amount = Random.Next(MinAmount, MaxAmount + 1);

                        Session.GetRoleplay().Cocaine      += Amount;
                        TargetClient.GetRoleplay().Cocaine -= Amount;

                        Success      = true;
                        RobbedItems += "e " + String.Format("{0:N0}", Amount) + "g de cocaína, ";
                    }

                    if (TargetClient.GetRoleplay().Cigarettes > 30)
                    {
                        int AmountToRob;
                        if (TargetClient.GetRoleplay().Cigarettes > 100)
                        {
                            AmountToRob = 100;
                        }
                        else
                        {
                            AmountToRob = TargetClient.GetRoleplay().Cigarettes;
                        }

                        int MaxAmount = Convert.ToInt32(Math.Floor((Double)AmountToRob / 5));
                        int MinAmount = Convert.ToInt32(Math.Floor((double)AmountToRob / 20));

                        int Amount = Random.Next(MinAmount, MaxAmount + 1);

                        Session.GetRoleplay().Cigarettes      += Amount;
                        TargetClient.GetRoleplay().Cigarettes -= Amount;

                        Success      = true;
                        RobbedItems += "e " + String.Format("{0:N0}", Amount) + "g de cigarros, ";
                    }
                }

                if (!Success)
                {
                    Session.SendWhisper("Desculpe, mas esta pessoa é muito pobre para roubar!", 1);
                    return;
                }

                if (Success)
                {
                    if (!Session.GetRoleplay().WantedFor.Contains("roubar"))
                    {
                        Session.GetRoleplay().WantedFor = Session.GetRoleplay().WantedFor + "roubar os cidadão(s), ";
                    }

                    Session.Shout("*Coloca as mãos nos bolsos de " + TargetClient.GetHabbo().Username + " e rouba " + RobbedItems.TrimEnd(',', ' ') + "*", 4);



                    lock (PlusEnvironment.GetGame().GetClientManager().GetClients)
                    {
                        foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                        {
                            if (client == null || client.GetHabbo() == null)
                            {
                                continue;
                            }

                            client.SendMessage(new RoomNotificationComposer("staff_notice", "message", "[Notícia Urgente] " + Session.GetHabbo().Username + " roubou " + RobbedItems.TrimEnd(',', ' ') + " de " + TargetClient.GetHabbo().Username + ", tome cuidado!"));
                        }
                    }

                    Session.SendWhisper("Você roubou " + RobbedItems.TrimEnd(',', ' ') + " de " + TargetClient.GetHabbo().Username + ", todos, inclusive a polícia recebeu a notícia!", 1);
                    if (Session.GetRoleplay().TryGetCooldown("roubar"))
                    {
                        return;
                    }



                    TargetClient.SendWhisper("Você foi roubado e perdeu " + RobbedItems.TrimEnd(',', ' ') + " para " + Session.GetHabbo().Username + ", todos, inclusive a polícia recebeu a notícia!", 1);

                    Session.GetRoleplay().CooldownManager.CreateCooldown("roubar", 1000, 300);
                    Session.GetRoleplay().SpecialCooldowns.TryUpdate("roubar", 300, Session.GetRoleplay().SpecialCooldowns["roubar"]);
                }
            }
            else
            {
                Session.SendWhisper("Você precisa se aproximar de " + TargetClient.GetHabbo().Username + " para roubá-lo!", 1);
                return;
            }
            #endregion
        }
Esempio n. 9
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (Session.GetRoleplay().TryGetCooldown("estuprar"))
            {
                return;
            }

            if (Session.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode estuprar alguém que está morto!", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode estuprar alguém que está ausente!!", 1);
                return;
            }

            if (TargetClient == Session)
            {
                Session.SendWhisper("Você não pode estuprar você mesmo!", 1);
                return;
            }

            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance <= 1)
            {
                if (!Session.GetRoleplay().WantedFor.Contains("assédio sexual"))
                {
                    Session.GetRoleplay().WantedFor = Session.GetRoleplay().WantedFor + "assédio sexual[estupro], ";
                }

                Session.Shout("*Estupra " + TargetClient.GetHabbo().Username + "*", 4);
                Session.GetRoleplay().CooldownManager.CreateCooldown("estuprar", 1000, ((Session.GetRoleplay().IsJailed) ? 20 : 8));
                RoomUser.ApplyEffect(EffectsList.Twinkle);
                TargetUser.ApplyEffect(EffectsList.Twinkle);
                Session.GetRoleplay().RapeTimer      = 5;
                TargetClient.GetRoleplay().RapeTimer = 5;
                return;
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar desse cidadão para estupra-lo!", 1);
                return;
            }
            #endregion
        }
Esempio n. 10
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (!GroupManager.HasJobCommand(Session, "search"))
            {
                Session.SendWhisper("Apenas um policial pode usar esse comando!", 1);
                return;
            }

            if (!Session.GetRoleplay().IsWorking)
            {
                Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode vasculhar alguém que está morto!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsJailed)
            {
                Session.SendWhisper("Você não pode vasculhar alguém que está preso!", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode vasculhar alguém que está ausente", 1);
                return;
            }
            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance <= 1)
            {
                Random Random = new Random();

                int Chance = Random.Next(1, 101);

                if (Chance <= 8)
                {
                    Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " tentando encontrar drogas*", 37);
                    return;
                }
                else
                {
                    bool HasWeed    = TargetClient.GetRoleplay().Weed > 0;
                    bool HasCocaine = TargetClient.GetRoleplay().Cocaine > 0;

                    if (!HasWeed && !HasCocaine)
                    {
                        Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " mas não acha nenhuma droga*", 37);
                        return;
                    }
                    else if (HasWeed && !HasCocaine)
                    {
                        Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " e acha " + String.Format("{0:N0}", TargetClient.GetRoleplay().Weed) + "g de maconha*", 37);
                        return;
                    }
                    else if (HasCocaine && !HasWeed)
                    {
                        Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " e acha " + String.Format("{0:N0}", TargetClient.GetRoleplay().Cocaine) + "g de cocaína*", 37);
                        return;
                    }
                    else
                    {
                        Session.Shout("*Vasculha " + TargetClient.GetHabbo().Username + " e acha " + String.Format("{0:N0}", TargetClient.GetRoleplay().Cocaine) + "g de cocaína e " + String.Format("{0:N0}", TargetClient.GetRoleplay().Weed) + "g de maconha*", 37);
                        return;
                    }
                }
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar desse cidadão para vasculhar!", 1);
                return;
            }
            #endregion
        }
Esempio n. 11
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                RoomUser Bot = Room.GetRoomUserManager().GetBotByName(Params[1]);

                if (Bot != null && Bot.GetBotRoleplay() != null)
                {
                    ExecuteBot(Session, Bot, Room);
                    return;
                }

                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (!GroupManager.HasJobCommand(Session, "discharge"))
            {
                Session.SendWhisper("Somente um trabalhador do Hospital pode usar esse comando!", 1);
                return;
            }

            if (!Session.GetRoleplay().IsWorking)
            {
                Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1);
                return;
            }

            if (!TargetClient.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode reviver alguém que não está morto!", 1);
                return;
            }
            #endregion

            #region Execute
            double Distance = RoleplayManager.GetDistanceBetweenPoints2D(Session.GetRoomUser().Coordinate, TargetClient.GetRoomUser().Coordinate);

            if (Distance <= 5)
            {
                Session.Shout("*Revive " + TargetClient.GetHabbo().Username + " da cama de hospital*", 4);
                TargetClient.GetRoleplay().IsDead       = false;
                TargetClient.GetRoleplay().DeadTimeLeft = 0;

                if (Session.GetRoleplay().LastKilled != TargetClient.GetHabbo().Id)
                {
                    int Amount = 0;

                    if (Session.GetRoleplay().Level <= 5)
                    {
                        Amount = 1;
                    }
                    else if (Session.GetRoleplay().Level > 5 && Session.GetRoleplay().Level <= 10)
                    {
                        Amount = 2;
                    }
                    else if (Session.GetRoleplay().Level > 10 && Session.GetRoleplay().Level <= 15)
                    {
                        Amount = 3;
                    }
                    else
                    {
                        Amount = 4;
                    }

                    PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Discharging", 1);

                    Session.GetRoleplay().LastKilled = TargetClient.GetHabbo().Id;

                    if (!Room.HitEnabled && !Room.ShootEnabled)
                    {
                        Session.GetHabbo().Credits += Amount;
                        Session.GetHabbo().UpdateCreditsBalance();
                        Session.SendWhisper("Você ganhou R$" + Amount + " extra por reviver " + TargetClient.GetHabbo().Username + "!", 1);
                    }
                }
                return;
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar desse cidadão para revive-lo!", 1);
                return;
            }
            #endregion
        }
Esempio n. 12
0
        public void ExecuteBot(GameClient Session, RoomUser Bot, Room Room)
        {
            if (!Bot.GetBotRoleplay().Dead)
            {
                Session.SendWhisper("Desculpe, mas " + Bot.GetBotRoleplay().Name + " não está morto!", 1);
                return;
            }

            double Distance = RoleplayManager.GetDistanceBetweenPoints2D(Session.GetRoomUser().Coordinate, Bot.Coordinate);

            if (Distance <= 5)
            {
                if (Bot.GetBotRoleplay().TimerManager.ActiveTimers.ContainsKey("botdeath"))
                {
                    Bot.GetBotRoleplay().TimerManager.ActiveTimers["botdeath"].EndTimer();
                }

                if (Bot.Frozen)
                {
                    Bot.Frozen = false;
                }

                Session.Shout("*Revive " + Bot.GetBotRoleplay().Name + " da cama de hospital*", 4);
                RoleplayManager.SpawnChairs(null, "val14_wchair", Bot);

                Bot.GetBotRoleplay().Dead = false;
                Room.SendMessage(new UsersComposer(Bot));

                if (Bot.GetBotRoleplay().RoamBot)
                {
                    Bot.GetBotRoleplay().MoveRandomly();
                }

                if (Session.GetRoleplay().LastKilled != (RoleplayBotManager.BotFriendMultiplyer + Bot.GetBotRoleplay().Id))
                {
                    int Amount = 0;

                    if (Session.GetRoleplay().Level <= 5)
                    {
                        Amount = 1;
                    }
                    else if (Session.GetRoleplay().Level > 5 && Session.GetRoleplay().Level <= 10)
                    {
                        Amount = 2;
                    }
                    else if (Session.GetRoleplay().Level > 10 && Session.GetRoleplay().Level <= 15)
                    {
                        Amount = 3;
                    }
                    else
                    {
                        Amount = 4;
                    }

                    PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Discharging", 1);

                    Session.GetRoleplay().LastKilled = (RoleplayBotManager.BotFriendMultiplyer + Bot.GetBotRoleplay().Id);

                    if (!Room.HitEnabled && !Room.ShootEnabled)
                    {
                        Session.GetHabbo().Credits += Amount;
                        Session.GetHabbo().UpdateCreditsBalance();
                        Session.SendWhisper("Você ganhou R$" + Amount + " extra por reviver " + Bot.GetBotRoleplay().Name + "!", 1);
                    }
                }
                return;
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar de " + Bot.GetBotRoleplay().Name + " para revive-lo!", 1);
                return;
            }
        }
Esempio n. 13
0
        /// <summary>
        /// Selects the closest person to the client
        /// </summary>
        public bool TryGetClosestTarget(GameClient Client, out RoomUser Target)
        {
            Target = null;

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

            if (Client.GetRoomUser().RoomId <= 0)
            {
                return(false);
            }

            var Room = RoleplayManager.GenerateRoom(Client.GetRoomUser().RoomId);

            if (Room == null)
            {
                return(false);
            }

            if (Room.GetRoomUserManager().GetRoomUsers().Count <= 1)
            {
                Client.SendWhisper("Não há ninguém perto de você para atingir automaticamente!", 1);
                return(false);
            }

            var Point = new Point(Client.GetRoomUser().Coordinate.X, Client.GetRoomUser().Coordinate.Y);

            ConcurrentDictionary <RoomUser, double> PossibleUsers = new ConcurrentDictionary <RoomUser, double>();

            lock (Room.GetRoomUserManager().GetRoomUsers())
            {
                foreach (var User in Room.GetRoomUserManager().GetRoomUsers())
                {
                    if (User.IsBot)
                    {
                        if (User.GetBotRoleplay() == null)
                        {
                            continue;
                        }

                        if (!User.GetBotRoleplay().CanBeAttacked)
                        {
                            continue;
                        }
                    }

                    if (User == Client.GetRoomUser())
                    {
                        continue;
                    }

                    Point  TargetPoint = new Point(User.Coordinate.X, User.Coordinate.Y);
                    double Distance    = RoleplayManager.GetDistanceBetweenPoints2D(Point, TargetPoint);

                    if (!User.IsBot && Client.GetRoleplay().Game != null && Client.GetRoleplay().Game.GetGameMode() == Games.GameMode.TeamBrawl)
                    {
                        if (Client.GetRoleplay().Team != null && User.GetClient().GetRoleplay().Team != null && User.GetClient().GetRoleplay().Team == Client.GetRoleplay().Team)
                        {
                            continue;
                        }
                    }

                    if (!PossibleUsers.ContainsKey(User))
                    {
                        PossibleUsers.TryAdd(User, Distance);
                    }
                }
            }

            var OrderedUsers = PossibleUsers.OrderBy(x => x.Value);

            if (OrderedUsers.ToList().Count < 1)
            {
                return(false);
            }

            Target = OrderedUsers.FirstOrDefault().Key;

            if (Target != null)
            {
                return(true);
            }

            return(false);
        }
Esempio n. 14
0
        /// <summary>
        /// Checks if a client can complete this action
        /// </summary>
        public bool CanCombat(GameClient Client, GameClient TargetClient, RoleplayBot Bot = null)
        {
            RoomUser RoomUser       = Client.GetRoomUser();
            RoomUser TargetRoomUser = Bot == null?TargetClient.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Username) : Client.GetHabbo().CurrentRoom.GetRoomUserManager().GetBotByName(Bot.Name);

            if (RoomUser == null || TargetRoomUser == null)
            {
                return(false);
            }

            if (Bot != null)
            {
                if (!Bot.CanBeAttacked)
                {
                    Client.SendWhisper("Desculpe, mas este bot não pode ser atacado!", 1);
                    return(false);
                }

                if (Bot.AIType == RoleplayBotAIType.MAFIAWARS)
                {
                    if (Client.GetRoleplay().Team == null)
                    {
                        Client.SendWhisper("Como você não está na Guerra de Máfias, você não pode fazer isso!", 1);
                        return(false);
                    }

                    if (Client.GetRoleplay().Game == null)
                    {
                        Client.SendWhisper("Como você não está na Guerra de Máfias, você não pode fazer isso!", 1);
                        return(false);
                    }

                    if (Client.GetHabbo().VIPRank < 2 && Client.GetRoleplay().Game.GetGameMode() != GameMode.MafiaWars)
                    {
                        Client.SendWhisper("Como você não está na Guerra de Máfias, você não pode fazer iss!", 1);
                        return(false);
                    }

                    string BotsTeam = Bot.Motto.ToLower().Split(' ')[0];

                    if (Client.GetRoleplay().Team.Name.ToLower() == BotsTeam)
                    {
                        Client.SendWhisper("Você não pode atacar os membros da sua própria equipe!", 1);
                        return(false);
                    }
                }
            }

            Point ClientPos       = RoomUser.Coordinate;
            Point TargetClientPos = TargetRoomUser.Coordinate;

            #region Main Conditions
            double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            Room Room = null;

            if (Client.GetHabbo().CurrentRoomId > 0)
            {
                Room = Client.GetHabbo().CurrentRoom;
            }

            if (Room != null)
            {
                if (Room.SafeZoneEnabled)
                {
                    Client.SendWhisper("Você não pode bater nesta sala!", 1);
                    return(false);
                }

                if (!RoleplayManager.PurgeStarted)
                {
                    if (!Room.HitEnabled && Client.GetRoleplay().Game == null)
                    {
                        Client.SendWhisper("Você não pode bater nesta sala!", 1);
                        return(false);
                    }
                }
            }

            if (TargetRoomUser == null)
            {
                Client.SendWhisper("Esta pessoa não está na mesma sala que você!", 1);
                return(false);
            }

            if (Client.GetRoleplay().Game != null)
            {
                if (!Client.GetRoleplay().Game.HasGameStarted())
                {
                    Client.SendWhisper("O evento ainda não começou!", 1);
                    return(false);
                }
                if (TargetClient != null && TargetClient.GetRoleplay().Game != Client.GetRoleplay().Game)
                {
                    Client.SendWhisper("Seu alvo não faz parte desse evento!", 1);
                    return(false);
                }
                if (RoomUser != null)
                {
                    if (RoomUser.Frozen)
                    {
                        return(false);
                    }
                }

                if (TargetRoomUser != null)
                {
                    if (TargetRoomUser.Frozen)
                    {
                        return(false);
                    }
                }
            }

            if (TargetClient != null && Client.GetRoleplay().Team != null && TargetClient.GetRoleplay().Team != null)
            {
                if (Client.GetRoleplay().Team == TargetClient.GetRoleplay().Team)
                {
                    Client.SendWhisper("Você não pode atacar seu companheiro de equipe!", 1);
                    return(false);
                }
            }

            if (Client.GetRoleplay().Game == null)
            {
                if (RoleplayManager.LevelDifference)
                {
                    if (!Room.TurfEnabled)
                    {
                        int TargetLevel = Bot == null?TargetClient.GetRoleplay().Level : Bot.Level;

                        int LevelDifference = Math.Abs(Client.GetRoleplay().Level - TargetLevel);

                        if (LevelDifference > 8)
                        {
                            Client.SendWhisper("Você não pode atingir essa pessoa, pois sua diferença de nível é maior do que 8!", 1);
                            return(false);
                        }
                    }
                }
            }

            if (Client.GetRoleplay().Game == null)
            {
                if (Client.GetRoleplay().IsNoob)
                {
                    if (!Client.GetRoleplay().NoobWarned)
                    {
                        Client.SendWhisper("[OBSERVE] Se fizer isso mais vezes você perderá sua proteção de Deus e poderá ser atacado. (Avisos: 1/2)", 1);
                        Client.GetRoleplay().NoobWarned = true;
                        return(false);
                    }
                    else if (!Client.GetRoleplay().NoobWarned2)
                    {
                        Client.SendWhisper("[OBSERVE] Se fizer isso mais vezes você perderá sua proteção de Deus e poderá ser atacado. (Avisos: 2/2)", 1);
                        Client.GetRoleplay().NoobWarned2 = true;
                        return(false);
                    }
                    else
                    {
                        Client.SendWhisper("Você perdeu sua proteção de deus, você está sozinho agora.", 1);

                        if (Client.GetRoleplay().TimerManager != null && Client.GetRoleplay().TimerManager.ActiveTimers != null)
                        {
                            if (Client.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("noob"))
                            {
                                Client.GetRoleplay().TimerManager.ActiveTimers["noob"].EndTimer();
                            }
                        }

                        Client.GetRoleplay().IsNoob       = false;
                        Client.GetRoleplay().NoobTimeLeft = 0;
                        return(true);
                    }
                }
            }

            if (Client.GetRoleplay().TryGetCooldown("fist"))
            {
                return(false);
            }

            #endregion

            #region Status Conditions
            if (RoomUser.Frozen)
            {
                Client.SendWhisper("Você não pode fazer isso enquanto você está atordoado!", 1);
                return(false);
            }

            if (RoomUser.IsAsleep)
            {
                Client.SendWhisper("Você não pode fazer isso enquanto a pessoa está ausente!", 1);
                return(false);
            }

            if (Client.GetRoleplay().IsDead)
            {
                Client.SendWhisper("Você não pode bater em alguém enquanto está morto!", 1);
                return(false);
            }

            if (Client.GetRoleplay().IsJailed)
            {
                Client.SendWhisper("Você não pode bater em alguém enquanto está preso!", 1);
                return(false);
            }

            if (Client.GetRoleplay().IsWorking)
            {
                Client.SendWhisper("Você não pode bater em alguém enquanto trabalha!", 1);
                return(false);
            }

            if (Client.GetRoleplay().StaffOnDuty || Client.GetRoleplay().AmbassadorOnDuty)
            {
                Client.SendWhisper("Você não pode bater em alguém enquanto está de plantão!", 1);
                return(false);
            }

            if (Bot != null)
            {
                if (Bot.Dead)
                {
                    Client.SendWhisper("Você não pode bater em alguém que está morto!", 1);
                    return(false);
                }

                if (Bot.Jailed)
                {
                    Client.SendWhisper("Você não pode bater em alguém preso!", 1);
                    return(false);
                }
            }

            if (TargetClient != null)
            {
                if (TargetClient.GetRoleplay().IsDead)
                {
                    Client.SendWhisper("Você não pode bater em alguém que está morto!", 1);
                    return(false);
                }

                if (TargetClient.GetRoleplay().IsJailed)
                {
                    Client.SendWhisper("Você não pode bater em alguém que está preso!", 1);
                    return(false);
                }

                if (TargetClient.GetRoleplay().StaffOnDuty)
                {
                    Client.SendWhisper("Você não pode bater em alguém que está de plantão!", 1);
                    return(false);
                }

                if (TargetClient.GetRoleplay().AmbassadorOnDuty)
                {
                    Client.SendWhisper("Você não pode bater em um embaixador que está de plantão!", 1);
                    return(false);
                }

                if (TargetClient == Client)
                {
                    Client.SendWhisper("Você não pode bater em si mesmo!", 1);
                    return(false);
                }

                if (TargetClient.MachineId == Client.MachineId)
                {
                    Client.SendWhisper("Você não pode bater em outra das suas contas!", 1);
                    return(false);
                }
            }

            if (Client.GetRoleplay().CurEnergy <= 0 && Client.GetRoleplay().Game == null)
            {
                Client.SendWhisper("Você ficou sem energia para bater em alguém!", 1);
                return(false);
            }

            if (Client.GetRoleplay().Cuffed)
            {
                Client.SendWhisper("Você não pode bater em um cidadão enquanto você está algemado!", 1);
                return(false);
            }

            if (Client.GetRoleplay().DrivingCar)
            {
                Client.SendWhisper("Por favor, pare de dirigir seu veículo para bater em alguém!", 1);
                return(false);
            }

            if (TargetRoomUser.IsAsleep)
            {
                Client.SendWhisper("Você não pode bater em alguém que está ausente", 1);
                return(false);
            }
            #endregion

            #region Distance

            if (Distance > 1)
            {
                RoleplayManager.Shout(Client, "*Tenta dar um soco em " + (Bot == null ? TargetClient.GetHabbo().Username : Bot.Name) + ", mas erra*", 4);
                Client.GetRoleplay().CooldownManager.CreateCooldown("fist", 1000, (Client.GetRoleplay().Game == null ? (Client.GetRoleplay().Class.ToLower() == "fighter" ? RoleplayManager.HitCooldown : RoleplayManager.DefaultHitCooldown) : RoleplayManager.HitCooldownInEvent));
                return(false);
            }

            #endregion

            return(true);
        }
Esempio n. 15
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (TargetUser == null)
            {
                Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online ou nesta sala.", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode escoltar alguém que está morto!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsJailed&& !TargetClient.GetRoleplay().Jailbroken)
            {
                Session.SendWhisper("Você não pode escoltar alguém que já está preso!", 1);
                return;
            }

            if (!TargetClient.GetRoleplay().Cuffed)
            {
                Session.SendWhisper("Você não pode escoltar alguém que não está algemado!", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode escoltar alguém que está ausente!", 1);
                return;
            }

            if (TargetClient == Session)
            {
                Session.SendWhisper("Você não pode se escoltar!", 1);
                return;
            }

            if (!TargetClient.GetRoleplay().Jailbroken)
            {
                if (!RoleplayManager.WantedList.ContainsKey(TargetClient.GetHabbo().Id))
                {
                    if (TargetClient.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("probation"))
                    {
                        TargetClient.GetRoleplay().TimerManager.ActiveTimers["probation"].EndTimer();
                    }

                    TargetClient.GetRoleplay().IsWanted       = true;
                    TargetClient.GetRoleplay().WantedLevel    = 1;
                    TargetClient.GetRoleplay().WantedTimeLeft = 10;

                    TargetClient.GetRoleplay().TimerManager.CreateTimer("procurado", 1000, false);
                    RoleplayManager.WantedList.TryUpdate(TargetClient.GetHabbo().Id, new Wanted(Convert.ToUInt32(TargetClient.GetHabbo().Id), Room.Id.ToString(), 1), RoleplayManager.WantedList[TargetClient.GetHabbo().Id]);
                }
            }

            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);
            Wanted Wanted          = RoleplayManager.WantedList.ContainsKey(TargetClient.GetHabbo().Id) ? RoleplayManager.WantedList[TargetClient.GetHabbo().Id] : null;
            int    WantedTime      = Wanted == null ? 6 : Wanted.WantedLevel * 5;

            if (Distance <= 1)
            {
                if (TargetClient.GetRoleplay().IsWorking)
                {
                    WorkManager.RemoveWorkerFromList(TargetClient);
                    TargetClient.GetRoleplay().IsWorking = false;
                    TargetClient.GetHabbo().Poof();
                }

                Session.Shout("*Algema as mãos de " + TargetClient.GetHabbo().Username + ", coloca as algemas e prende por " + WantedTime + " minutos*", (GroupManager.HasJobCommand(Session, "guide") && Session.GetRoleplay().IsWorking ? 37 : 4));
                TargetClient.GetRoleplay().Cuffed = false;
                TargetClient.GetRoomUser().ApplyEffect(0);

                if (TargetClient.GetHabbo().Look.Contains("lg-78322"))
                {
                    if (!TargetClient.GetRoleplay().WantedFor.Contains("exposição indecente"))
                    {
                        TargetClient.GetRoleplay().WantedFor = TargetClient.GetRoleplay().WantedFor + "exposição indecente, ";
                    }
                }

                if (TargetUser.Frozen)
                {
                    TargetUser.Frozen = false;
                }

                if (!TargetClient.GetRoleplay().IsJailed)
                {
                    TargetClient.GetRoleplay().IsJailed       = true;
                    TargetClient.GetRoleplay().JailedTimeLeft = WantedTime;
                    TargetClient.GetRoleplay().TimerManager.CreateTimer("jail", 1000, false);
                }

                if (TargetClient.GetRoleplay().Jailbroken&& !JailbreakManager.FenceBroken)
                {
                    TargetClient.GetRoleplay().Jailbroken = false;
                }

                int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid"));

                if (TargetClient.GetHabbo().CurrentRoomId == JailRID)
                {
                    RoleplayManager.GetLookAndMotto(TargetClient);
                    RoleplayManager.SpawnBeds(TargetClient, "bed_silo_one");
                    TargetClient.SendMessage(new RoomNotificationComposer("room_jail_prison", "message", "Você foi escoltado por " + Session.GetHabbo().Username + " por " + WantedTime + " minutos!"));
                }
                else
                {
                    TargetClient.SendMessage(new RoomNotificationComposer("room_jail_prison", "message", "Você foi escoltado por " + Session.GetHabbo().Username + " por " + WantedTime + " minutos!"));
                    RoleplayManager.SendUser(TargetClient, JailRID);
                }

                PlusEnvironment.GetGame().GetClientManager().JailAlert("[Alerta RÁDIO] " + TargetClient.GetHabbo().Username + " acabou de ser escoltado para a prisão por " + Session.GetHabbo().Username + "!");
                PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Arrests", 1);
                Session.GetRoleplay().Arrests++;
                PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(TargetClient, "ACH_Arrested", 1);
                TargetClient.GetRoleplay().Arrested++;
                return;
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar desse cidadão para escoltá-lo!", 1);
                return;
            }
            #endregion
        }
Esempio n. 16
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            string Type = "";

            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            if (Params[0].ToLower() == "pulverizar")
            {
                Type = "pulverizar";
            }

            if (Params[0].ToLower() == "atordoar")
            {
                Type = "atordoar";
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (!GroupManager.HasJobCommand(Session, "stun") && !Session.GetRoleplay().PoliceTrial)
            {
                Session.SendWhisper("Somente um policial pode usar esse comando!", 1);
                return;
            }

            if (!Session.GetRoleplay().IsWorking&& !Session.GetRoleplay().PoliceTrial)
            {
                Session.SendWhisper("Você deve estar trabalhando para usar este comando!", 1);
                return;
            }

            if (Session.GetRoleplay().TryGetCooldown("atirar"))
            {
                return;
            }

            if (TargetClient.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode atordoar alguém que está morto!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsJailed&& !TargetClient.GetRoleplay().Jailbroken)
            {
                Session.SendWhisper("Você não pode atordoar alguém que está preso!", 1);
                return;
            }

            if (TargetClient.GetRoomUser().Frozen)
            {
                Session.SendWhisper("Este usuário já está atordoado, agora coloque as algemas!", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode atordoar ou pulverizar alguém que está ausente!", 1);
                return;
            }
            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.Coordinate.X, RoomUser.Coordinate.Y);
            Point  TargetClientPos = new Point(TargetUser.Coordinate.X, TargetUser.Coordinate.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            CryptoRandom Random = new CryptoRandom();
            int          Chance = Random.Next(1, 101);

            if (Distance <= 5)
            {
                if (Chance <= 10)
                {
                    if (Type == "atordoar")
                    {
                        Session.Shout("*Tenta atordoar " + TargetClient.GetHabbo().Username + ", mas não consegue acertar*", 37);
                    }

                    if (Type == "pulverizar")
                    {
                        Session.Shout("*Tenta atordoar " + TargetClient.GetHabbo().Username + ", mas não consegue acertar*", 37);
                    }

                    Session.GetRoleplay().CooldownManager.CreateCooldown("atordoar", 1000, 3);
                    return;
                }
                else
                {
                    if (Distance > 6 && Type == "pulverizar")
                    {
                        Session.Shout("*Solta seu spray de pimenta em " + TargetClient.GetHabbo().Username + ", mas não consegue acertar*", 37);
                        Session.GetRoleplay().CooldownManager.CreateCooldown("atordoar", 1000, 3);
                        return;
                    }
                    else
                    {
                        if (Type == "atordoar")
                        {
                            Session.Shout("*Atordoa o vagabundo " + TargetClient.GetHabbo().Username + " com sua arma de choques*", 37);
                            TargetClient.GetRoleplay().TimerManager.CreateTimer("atordoar", 1000, false);
                            TargetClient.SendMessage(new FloodControlComposer(5));
                            TargetClient.GetRoomUser().ApplyEffect(53);
                        }
                        else if (Type == "spray")
                        {
                            Session.Shout("*Pulveriza o vagabundo " + TargetClient.GetHabbo().Username + "*", 37);
                            TargetClient.GetRoleplay().TimerManager.CreateTimer("pulverizar", 1000, false);
                        }

                        if (TargetClient.GetRoleplay().InsideTaxi)
                        {
                            TargetClient.GetRoleplay().InsideTaxi = false;
                        }

                        TargetClient.GetRoomUser().Frozen  = true;
                        TargetClient.GetRoomUser().CanWalk = false;
                        TargetClient.GetRoomUser().ClearMovement(true);
                        Session.GetRoleplay().CooldownManager.CreateCooldown("atordoar", 1000, 3);
                        return;
                    }
                }
            }
            else
            {
                if (Type == "atordoar")
                {
                    Session.Shout("*Atira sua arma de choque em " + TargetClient.GetHabbo().Username + ", mas os tiros não alcançam*", 37);
                }

                if (Type == "spray")
                {
                    Session.Shout("*Atira seu spray de pimenta em " + TargetClient.GetHabbo().Username + ", mas não consegue acertar*", 37);
                }

                Session.GetRoleplay().CooldownManager.CreateCooldown("atordoar", 1000, 3);
                return;
            }
            #endregion
        }
Esempio n. 17
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            if (TargetClient.GetRoleplay() == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            if (TargetClient.GetRoleplay().TimerManager == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (!GroupManager.HasJobCommand(Session, "heal"))
            {
                Session.SendWhisper("Somente um funcionário do hospital pode usar esse comando!", 1);
                return;
            }

            if (!Session.GetRoleplay().IsWorking)
            {
                Session.SendWhisper("Você deve estar trabalhando para usar esse comando!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode recuperar o HP de alguém que está morto!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsJailed)
            {
                Session.SendWhisper("Você não pode curar alguém que está na prisão!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().BeingHealed)
            {
                Session.SendWhisper("Você não pode curar alguém que já está sendo curado!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().CurHealth >= TargetClient.GetRoleplay().MaxHealth)
            {
                Session.SendWhisper("Este cidadão já está com o sangue cheio!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().Hunger >= 100)
            {
                Session.SendWhisper("Este cidadão está com muita fome para curar! Diga para ele comer algum alimento.", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode curar alguém que está ausente!", 1);
                return;
            }
            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance <= 5)
            {
                Session.Shout("*Começa a curar as feridas de " + TargetClient.GetHabbo().Username + "*", 4);
                TargetClient.GetRoomUser().ApplyEffect(0);
                TargetClient.GetRoleplay().BeingHealed = true;
                TargetClient.GetRoleplay().TimerManager.CreateTimer("heal", 1000, false);

                if (Session.GetRoleplay().LastKilled != TargetClient.GetHabbo().Id&& TargetClient.GetHabbo().Id != Session.GetHabbo().Id)
                {
                    int Amount = 0;

                    if (Session.GetRoleplay().Level <= 10)
                    {
                        Amount = 1;
                    }
                    else
                    {
                        Amount = 2;
                    }

                    PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Healing", 1);

                    Session.GetRoleplay().LastKilled = TargetClient.GetHabbo().Id;

                    if (!Room.HitEnabled)
                    {
                        Session.GetHabbo().Credits += Amount;
                        Session.GetHabbo().UpdateCreditsBalance();
                        Session.SendWhisper("Você ganhou R$" + Amount + " extra por cura " + TargetClient.GetHabbo().Username + "!", 1);
                    }
                }

                return;
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar desse cidadão para curá-lo!", 1);
                return;
            }
            #endregion
        }
Esempio n. 18
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            string Type = "";

            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            if (Params[0].ToLower() == "despulverizar")
            {
                Type = "despulverizar";
            }

            if (Params[0].ToLower() == "desatordoar")
            {
                Type = "desatordoar";
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (!GroupManager.HasJobCommand(Session, "unstun") && !Session.GetRoleplay().PoliceTrial)
            {
                Session.SendWhisper("Apenas um policial pode usar esse comando!", 1);
                return;
            }

            if (!Session.GetRoleplay().IsWorking&& !Session.GetRoleplay().PoliceTrial)
            {
                Session.SendWhisper("Você deve estar trabalhando para usar este comando!", 1);
                return;
            }

            if (!TargetClient.GetRoomUser().Frozen)
            {
                if (Type == "desatordoar")
                {
                    Session.SendWhisper("Você não pode desatordoar alguém que não está atordoado!", 1);
                }

                if (Type == "despulverizar")
                {
                    Session.SendWhisper("Você não pode despulverizar alguém que não está pulverizado", 1);
                }

                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode desatordoar alguém que está ausente!", 1);
                return;
            }
            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance <= 2)
            {
                if (Type == "desatordoar")
                {
                    Session.Shout("*Retira o efeito de atordoamento de " + TargetClient.GetHabbo().Username + "*", 37);
                    TargetClient.GetRoleplay().TimerManager.CreateTimer("desatordoar", 1000, false);
                    TargetClient.SendMessage(new FloodControlComposer(1));
                }
                else if (Type == "despulverizar")
                {
                    Session.Shout("*Despulveriza " + TargetClient.GetHabbo().Username + "*", 37);
                    TargetClient.GetRoleplay().TimerManager.CreateTimer("despulverizar", 1000, false);
                }

                if (TargetClient.GetRoleplay().InsideTaxi)
                {
                    TargetClient.GetRoleplay().InsideTaxi = true;
                }

                TargetClient.GetRoomUser().Frozen  = false;
                TargetClient.GetRoomUser().CanWalk = true;
                TargetClient.GetRoomUser().ClearMovement(false);
                Session.GetRoleplay().CooldownManager.CreateCooldown("desatordoar", 1000, 3);
                return;
            }
            else
            {
                if (Type == "desatordoar")
                {
                    Session.SendWhisper("Chegue mais perto para desatordoar este cidadão!", 1);
                }

                if (Type == "despulverizar")
                {
                    Session.SendWhisper("Chegue mais perto para despulverizar este cidadão!", 1);
                }

                return;
            }
            #endregion
        }
Esempio n. 19
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (!GroupManager.HasJobCommand(Session, "cuff") && !Session.GetRoleplay().PoliceTrial)
            {
                Session.SendWhisper("Apenas um policial pode usar esse comando!", 1);
                return;
            }

            if (!Session.GetRoleplay().IsWorking&& !Session.GetRoleplay().PoliceTrial)
            {
                Session.SendWhisper("Você deve estar trabalhando para usar este comando!", 1);
                return;
            }

            if (!TargetClient.GetRoleplay().Cuffed)
            {
                Session.SendWhisper("Você não pode desalgemar alguém que não está algemado!", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode desalgemar alguém que está ausente!", 1);
                return;
            }
            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance <= 1)
            {
                Session.Shout("*Pega as chaves e remove as algemas de " + TargetClient.GetHabbo().Username + "*", 37);
                TargetClient.GetRoleplay().Cuffed = false;
                return;
            }
            else
            {
                Session.SendWhisper("Chegue mais perto do cidadão para desalgema-lo!", 1);
                return;
            }
            #endregion
        }
Esempio n. 20
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("Ocorreu um erro ao tentar encontrar esse usuário, talvez ele esteja offline.", 1);
                return;
            }

            RoomUser RoomUser   = Session.GetRoomUser();
            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.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;
            }

            if (Session.GetRoleplay().TryGetCooldown("sexo"))
            {
                return;
            }

            if (Session.GetRoleplay().MarriedTo == 0)
            {
                Session.SendWhisper("Você não pode completar esta ação quando não é casado(a)!", 1);
                return;
            }

            if (Session.GetRoleplay().MarriedTo != TargetClient.GetHabbo().Id)
            {
                Session.SendWhisper("Você só pode fazer sexo com sua esposa/seu esposo!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().IsDead)
            {
                Session.SendWhisper("Você não pode fazer sexo com alguém que está morto!", 1);
                return;
            }

            if (TargetClient.GetRoleplay().Game != null)
            {
                Session.SendWhisper("Você não pode fazer sexo com alguém enquanto estiver dentro de um evento!", 1);
                return;
            }

            if (TargetUser.IsAsleep)
            {
                Session.SendWhisper("Você não pode fazer sexo com alguém está ausente!", 1);
                return;
            }
            #endregion

            #region Execute
            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetUser.X, TargetUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance <= 1)
            {
                if (Session.GetHabbo().Gender.ToLower().StartsWith("m") && TargetClient.GetHabbo().Gender.ToLower().StartsWith("f"))
                {
                    Session.Shout("*Agarra " + TargetClient.GetHabbo().Username + " pelos quadris e deixe-o no chão, tirando suas roupas*", 16);
                    RoleplayManager.Shout(TargetClient, "*Gemidos de " + Session.GetHabbo().Username + " quando empurra seu pênis dentro dela*", 16);
                }
                else if (Session.GetHabbo().Gender.ToLower().StartsWith("f") && TargetClient.GetHabbo().Gender.ToLower().StartsWith("m"))
                {
                    Session.Shout("*Pushes " + TargetClient.GetHabbo().Username + " down onto the floor, climbing ontop of him and sliding his clothes off*", 16);
                    RoleplayManager.Shout(TargetClient, "*Gemidos de " + Session.GetHabbo().Username + " quando desliza o dedo dentro dela*", 16);
                }
                else if (Session.GetHabbo().Gender.ToLower().StartsWith("m") && TargetClient.GetHabbo().Gender.ToLower().StartsWith("m"))
                {
                    Session.Shout("*Agarra " + TargetClient.GetHabbo().Username + " pelo peito e abate-o, tirando a roupa*", 16);
                    RoleplayManager.Shout(TargetClient, "*Gemidos de prazer de " + Session.GetHabbo().Username + " saltando para cima e para baixo seu pau*", 16);
                }
                else if (Session.GetHabbo().Gender.ToLower().StartsWith("f") && TargetClient.GetHabbo().Gender.ToLower().StartsWith("f"))
                {
                    Session.Shout("*Empurra " + TargetClient.GetHabbo().Username + " descendo no chão, subindo sobre ela e deslizando as roupas dela*", 16);
                    RoleplayManager.Shout(TargetClient, "*Gemidos de " + Session.GetHabbo().Username + " quando os dedos deslizam dentro dela*", 16);
                }
                else
                {
                    Session.Shout("*Faz amor doce com " + TargetClient.GetHabbo().Username + "*", 16);
                    RoleplayManager.Shout(TargetClient, "*Gemidos dos movimentos de " + Session.GetHabbo().Username + "*", 16);
                }
                Session.GetRoleplay().CooldownManager.CreateCooldown("sexo", 1000, 60);
                RoomUser.ApplyEffect(507);
                TargetUser.ApplyEffect(507);
                Session.GetRoleplay().SexTimer      = 15;
                TargetClient.GetRoleplay().SexTimer = 15;
                RoleplayManager.GetLookAndMotto(Session);
                RoleplayManager.GetLookAndMotto(TargetClient);
                return;
            }
            else
            {
                Session.SendWhisper("Você deve se aproximar desse cidadão para fazer sexo com ele!", 1);
                return;
            }
            #endregion
        }
Esempio n. 21
0
        /// <summary>
        /// Executes this type of combat
        /// </summary>
        public void Execute(GameClient Client, GameClient TargetClient, bool HitClosest = false)
        {
            if (!CanCombat(Client, TargetClient))
            {
                return;
            }

            #region Variables

            RoomUser RoomUser        = Client.GetRoomUser();
            RoomUser TargetRoomUser  = TargetClient.GetRoomUser();
            int      Damage          = GetDamage(Client, TargetClient);
            Weapon   Weapon          = Client.GetRoleplay().EquippedWeapon;
            Point    ClientPos       = RoomUser.Coordinate;
            Point    TargetClientPos = TargetRoomUser.Coordinate;

            #endregion

            #region Ammo Check
            if (Client.GetRoleplay().GunShots >= Weapon.ClipSize)
            {
                Weapon.Reload(Client, TargetClient);
                Client.GetRoleplay().CooldownManager.CreateCooldown("reload", 1000, Weapon.ReloadTime);
                return;
            }
            #endregion

            #region Distance Check
            double Distance = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);
            if (Distance > Weapon.Range)
            {
                RoleplayManager.Shout(Client, "*Tenta acertar o tiro em " + TargetClient.GetHabbo().Username + ", mas erra o alvo*", 4);
                Client.GetRoleplay().GunShots++;

                if (Client.GetRoleplay().Game == null)
                {
                    Client.GetRoleplay().Bullets--;
                }
                return;
            }
            #endregion

            #region Target Death Procedure
            if (TargetClient.GetRoleplay().CurHealth - Damage <= 0)
            {
                Client.GetRoleplay().ClearWebSocketDialogue();

                string Text    = Weapon.FiringText.Split(':')[1];
                string GunName = Weapon.PublicName;

                RoleplayManager.Shout(Client, FormatFiringText(Text, GunName, TargetClient.GetHabbo().Username, Damage, Weapon.Energy), 6);


                lock (PlusEnvironment.GetGame().GetClientManager().GetClients)
                {
                    foreach (var client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                    {
                        if (client == null || client.GetHabbo() == null)
                        {
                            continue;
                        }

                        client.SendMessage(new RoomNotificationComposer("staff_notice", "message", "[Notícia Urgente] " + Client.GetHabbo().Username + " matou com tiros o cidadão " + TargetClient.GetHabbo().Username + ", tome cuidado pelas ruas!"));
                    }
                }

                if (Client.GetRoleplay().LastKilled != TargetClient.GetHabbo().Id&& TargetClient.GetRoleplay().Game == null)
                {
                    PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Client, QuestType.KILL_USER);
                    PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Client, "ACH_Kills", 1);
                    PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(TargetClient, "ACH_Death", 1);

                    #region Player Stats
                    Client.GetRoleplay().LastKilled = TargetClient.GetHabbo().Id;
                    Client.GetRoleplay().Kills++;
                    Client.GetRoleplay().GunKills++;

                    if (GroupManager.HasJobCommand(TargetClient, "guide") && TargetClient.GetRoleplay().IsWorking)
                    {
                        TargetClient.GetRoleplay().CopDeaths++;
                    }
                    else
                    {
                        TargetClient.GetRoleplay().Deaths++;
                    }

                    if (!Client.GetRoleplay().WantedFor.Contains("cometer assassinato"))
                    {
                        Client.GetRoleplay().WantedFor = Client.GetRoleplay().WantedFor + "cometer assassinato, ";
                    }
                    #endregion

                    #region Exp Calculator
                    CryptoRandom Random     = new CryptoRandom();
                    int          Multiplier = 1;

                    int Chance = Random.Next(1, 101);

                    if (Chance <= 16)
                    {
                        if (Chance <= 8)
                        {
                            Multiplier = 3;
                        }
                        else
                        {
                            Multiplier = 2;
                        }
                    }

                    LevelManager.AddLevelEXP(Client, GetEXP(Client, TargetClient) * Multiplier);
                    #endregion

                    #region Gang Stats
                    Group Gang       = GroupManager.GetGang(Client.GetRoleplay().GangId);
                    Group TarGetGang = GroupManager.GetGang(TargetClient.GetRoleplay().GangId);

                    using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                    {
                        if (Gang != null)
                        {
                            if (Gang.Id > 1000)
                            {
                                int ScoreIncrease = Random.Next(1, 11);

                                Gang.GangKills++;
                                Gang.GangScore += ScoreIncrease;

                                dbClient.RunQuery("UPDATE `rp_gangs` SET `gang_kills` = '" + Gang.GangKills + "', `gang_score` = '" + Gang.GangScore + "' WHERE `id` = '" + Gang.Id + "'");
                            }
                        }
                        if (TarGetGang != null)
                        {
                            if (TarGetGang.Id > 1000)
                            {
                                TarGetGang.GangDeaths++;

                                dbClient.RunQuery("UPDATE `rp_gangs` SET `gang_deaths` = '" + TarGetGang.GangDeaths + "' WHERE `id` = '" + TarGetGang.Id + "'");
                            }
                        }
                    }
                    #endregion

                    BountyManager.CheckBounty(Client, TargetClient.GetHabbo().Id);

                    if ((TargetClient.GetRoleplay().CurHealth - Damage) <= 0)
                    {
                        TargetClient.GetRoleplay().CurHealth = 0;
                    }
                }
            }
            #endregion

            #region Target Damage Procedure (Did not die)
            else
            {
                string Text    = Weapon.FiringText.Split(':')[0];
                string GunName = Weapon.PublicName;
                Client.GetRoleplay().OpenUsersDialogue(TargetClient);
                TargetClient.GetRoleplay().OpenUsersDialogue(Client);

                PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Client, QuestType.SHOOT_USER);
                RoleplayManager.Shout(Client, FormatFiringText(Text, GunName, TargetClient.GetHabbo().Username, Damage, Weapon.Energy), 6);
            }
            #endregion

            TargetClient.GetRoleplay().CurHealth -= Damage;

            if (Client.GetRoleplay().Game == null)
            {
                Client.GetRoleplay().Bullets--;
            }

            if (Client.GetRoleplay().Game == null)
            {
                Client.GetRoleplay().CurEnergy -= Weapon.Energy;
            }

            Client.GetRoleplay().GunShots++;

            if (!Client.GetRoleplay().WantedFor.Contains("tentativa de assaltSo + tentativa/assassinato"))
            {
                Client.GetRoleplay().WantedFor = Client.GetRoleplay().WantedFor + "tentativa de assalto + tentativa/assassinato ";
            }
        }
Esempio n. 22
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length != 2)
            {
                Session.SendWhisper("Digite o nome de usuário do membro da gangue que deseja curar!", 1);
                return;
            }

            Group     Gang     = GroupManager.GetGang(Session.GetRoleplay().GangId);
            GroupRank GangRank = GroupManager.GetGangRank(Session.GetRoleplay().GangId, Session.GetRoleplay().GangRank);

            if (Gang == null)
            {
                Session.SendWhisper("Você não faz parte de nenhum grupo!", 1);
                return;
            }

            if (Gang.Id <= 1000)
            {
                Session.SendWhisper("Você não faz parte de nenhum grupo!", 1);
                return;
            }

            if (!GroupManager.HasGangCommand(Session, "gheal"))
            {
                Session.SendWhisper("Você não possui um cargo alto o suficiente para usar esse comando!", 1);
                return;
            }

            if (Gang.MediPacks <= 0)
            {
                Session.SendWhisper("Sua gangue não tem mais pacotes de cura!", 1);
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);

            if (TargetClient == null)
            {
                Session.SendWhisper("Desculpe, mas este usuário não pôde ser encontrado!", 1);
                return;
            }

            RoomUser RoomUser       = Session.GetRoomUser();
            RoomUser TargetRoomUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Username);

            if (TargetRoomUser == null)
            {
                Session.SendWhisper("Ocorreu um erro ao encontrar esse usuário, talvez ele não esteja online ou nesta sala.", 1);
                return;
            }

            if (TargetClient.GetRoleplay().CurHealth == TargetClient.GetRoleplay().MaxHealth)
            {
                Session.SendWhisper(TargetClient.GetHabbo().Username + " não precisa ser curado!", 1);
                return;
            }

            Point  ClientPos       = new Point(RoomUser.X, RoomUser.Y);
            Point  TargetClientPos = new Point(TargetRoomUser.X, TargetRoomUser.Y);
            double Distance        = RoleplayManager.GetDistanceBetweenPoints2D(ClientPos, TargetClientPos);

            if (Distance > 1)
            {
                Session.SendWhisper("Aproxime-se de " + TargetClient.GetHabbo().Username + " para curá-lo com um pacote médico!", 1);
                return;
            }

            Session.Shout("*Puxa um pacote médico e aplica alguns band-aid nas feridas de " + TargetClient.GetHabbo().Username + "'*", 4);
            Gang.MediPacks -= 1;

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                dbClient.RunQuery("UPDATE `rp_gangs` SET `medipacks` = '" + Gang.MediPacks + "' WHERE `id` = '" + Gang.Id + "'");

            CryptoRandom Random     = new CryptoRandom();
            int          HealAmount = Random.Next(5, 16);

            new Thread(() =>
            {
                Thread.Sleep(3000);

                if (!TargetClient.GetRoleplay().IsDead)
                {
                    if (TargetRoomUser != null)
                    {
                        TargetRoomUser.ApplyEffect(23);
                    }

                    int NewHealth = TargetClient.GetRoleplay().CurHealth + HealAmount;

                    if (NewHealth > TargetClient.GetRoleplay().MaxHealth)
                    {
                        TargetClient.GetRoleplay().CurHealth = TargetClient.GetRoleplay().MaxHealth;
                    }
                    else
                    {
                        TargetClient.GetRoleplay().CurHealth = NewHealth;
                    }

                    TargetClient.SendWhisper(Session.GetHabbo().Username + " Os kits médicos começou a produzir efeito!", 1);
                }
            }).Start();
        }