Exemplo n.º 1
0
        /// <summary>
        /// Checks to see if the client is jailed, if true send back to jail if not already in one
        /// </summary>
        private void JailCheck(GameClient Client, object[] Params)
        {
            if (Client.GetRoleplay().IsJailed)
            {
                if (Client.GetRoleplay().Jailbroken)
                {
                    RoleplayManager.GetLookAndMotto(Client);
                    return;
                }

                int  JailRID  = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid"));
                int  JailRID2 = Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid"));
                int  CourtRID = Convert.ToInt32(RoleplayData.GetData("court", "roomid"));
                Room Room     = (Room)Params[0];

                if (RoleplayManager.Defendant == Client && Room.Id == CourtRID)
                {
                    RoleplayManager.GetLookAndMotto(Client);
                    RoleplayManager.SpawnChairs(Client, "uni_lectern");

                    new Thread(() =>
                    {
                        Thread.Sleep(500);
                        if (Client.GetRoomUser() != null)
                        {
                            Client.GetRoomUser().Frozen = true;
                        }
                    }).Start();
                    return;
                }

                if (Room.Id != JailRID && Room.Id != JailRID2)
                {
                    RoleplayManager.SendUser(Client, JailRID);
                    Client.SendNotification("You cannot leave jail until your sentence has expired!");
                }

                if (Room.Id == JailRID)
                {
                    RoleplayManager.GetLookAndMotto(Client);
                    RoleplayManager.SpawnBeds(Client, "bed_silo_one");
                }
            }
            else
            {
                return;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Checks to see if the client is dead, if true send back to hospital if not already in one
        /// </summary>
        private void DeathCheck(GameClient Client, object[] Params)
        {
            if (Client.GetRoleplay().IsDead)
            {
                int  HospitalRID = Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2"));
                Room Room        = (Room)Params[0];

                if (Room.Id != HospitalRID)
                {
                    RoleplayManager.SendUser(Client, HospitalRID);
                    Client.SendNotification("You cannot leave the hospital while you are dead!");
                }

                RoleplayManager.GetLookAndMotto(Client);
                RoleplayManager.SpawnBeds(Client, "hosptl_bed");
            }
            else
            {
                return;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Ends the jailbreak
        /// </summary>
        public override void Execute()
        {
            try
            {
                if (!JailbreakManager.JailbreakActivated)
                {
                    base.EndTimer();
                    return;
                }

                List <GameClient> CurrentJailbrokenUsers = PlusEnvironment.GetGame().GetClientManager().GetClients.Where(x => x != null && x.GetHabbo() != null && x.GetRoleplay() != null && x.GetRoleplay().Jailbroken).ToList();
                GameClient        UserJailbreaking       = JailbreakManager.UserJailbreaking;

                if (CurrentJailbrokenUsers.Count <= 0)
                {
                    JailbreakManager.JailbreakActivated = false;
                    if (JailbreakManager.FenceBroken)
                    {
                        Room Room = RoleplayManager.GenerateRoom(Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid")));

                        if (Room != null)
                        {
                            JailbreakManager.GenerateFence(Room);
                        }
                        JailbreakManager.FenceBroken = false;
                    }
                    MessagePoliceOfficers();
                    base.EndTimer();
                    return;
                }

                if (UserJailbreaking != null || UserJailbreaking.GetHabbo().CurrentRoom != null || UserJailbreaking.GetRoomUser() != null)
                {
                    if (UserJailbreaking.GetHabbo().CurrentRoomId != Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid")))
                    {
                        JailbreakManager.JailbreakActivated = false;
                        if (JailbreakManager.FenceBroken)
                        {
                            Room Room = RoleplayManager.GenerateRoom(Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid")));

                            if (Room != null)
                            {
                                JailbreakManager.GenerateFence(Room);
                            }
                            JailbreakManager.FenceBroken = false;
                        }

                        foreach (GameClient Client in CurrentJailbrokenUsers)
                        {
                            if (Client == null || Client.GetRoleplay() == null || Client.GetHabbo() == null)
                            {
                                continue;
                            }

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

                            if (Client.GetHabbo().CurrentRoomId == Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid")))
                            {
                                RoleplayManager.GetLookAndMotto(Client);
                                RoleplayManager.SpawnBeds(Client, "bed_silo_one");
                                Client.SendNotification("O processo para fuga da prisão parou, então você voltou para ela!");
                            }
                            else
                            {
                                Client.SendNotification("O processo para fuga da prisão parou, então você voltou para ela!");
                                RoleplayManager.SendUser(Client, Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid")));
                            }
                        }

                        MessagePoliceOfficers();

                        RoleplayManager.Shout(UserJailbreaking, "*Para a fuga*", 4);
                        base.EndTimer();
                        return;
                    }
                }

                TimeCount++;
                TimeLeft -= 1000;

                if (TimeLeft > 0)
                {
                    if (TimeCount == 60)
                    {
                        if (UserJailbreaking != null || UserJailbreaking.GetHabbo().CurrentRoom != null || UserJailbreaking.GetRoomUser() != null)
                        {
                            RoleplayManager.Shout(UserJailbreaking, "*Estou mais perto de terminar a fuga dos prisioneiros [" + (TimeLeft / 60000) + " minutos restantes]*", 4);
                        }

                        TimeCount = 0;
                    }
                    return;
                }

                foreach (GameClient Client in CurrentJailbrokenUsers)
                {
                    if (Client == null || Client.GetRoleplay() == null || Client.GetHabbo() == null)
                    {
                        continue;
                    }

                    RoleplayManager.Shout(Client, "*Escapa completamente da prisão graças a um parceiro*", 4);
                    PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Client, "ACH_Jailbreak", 1);
                    Client.GetRoleplay().Jailbroken = false;
                    Client.GetRoleplay().IsWanted   = false;
                    Client.GetRoleplay().IsJailed   = false;
                    Client.GetHabbo().Poof();
                }

                if (JailbreakManager.FenceBroken)
                {
                    Room Room = RoleplayManager.GenerateRoom(Convert.ToInt32(RoleplayData.GetData("jail", "outsideroomid")));

                    if (Room != null)
                    {
                        JailbreakManager.GenerateFence(Room);
                    }
                    JailbreakManager.FenceBroken = false;
                }
                JailbreakManager.JailbreakActivated = false;
                JailbreakManager.UserJailbreaking   = null;
                base.EndTimer();
                return;
            }
            catch (Exception e)
            {
                Logging.LogRPTimersError("Error in Execute() void: " + e);
                base.EndTimer();
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Kills the user normally, sends them to the hospital
        /// </summary>
        /// <param name="Client"></param>
        private void NormalDeath(GameClient Client)
        {
            RoleplayManager.Shout(Client, "*Cai no chão desmaiado e morre*", 32);

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

            #region Lays User Down
            if (Client.GetRoomUser() != null)
            {
                var User = Client.GetRoomUser();

                if (User.isLying)
                {
                    User.RemoveStatus("lay");
                    User.isLying = false;
                }

                if (User.isSitting)
                {
                    User.RemoveStatus("sit");
                    User.isSitting = false;
                }

                if ((User.RotBody % 2) == 0)
                {
                    if (User == null)
                    {
                        return;
                    }

                    try
                    {
                        User.Statusses.Add("lay", "1.0 null");
                        User.Z           -= 0.35;
                        User.isLying      = true;
                        User.UpdateNeeded = true;
                    }
                    catch { }
                }
                else
                {
                    User.RotBody--;
                    User.Statusses.Add("lay", "1.0 null");
                    User.Z           -= 0.35;
                    User.isLying      = true;
                    User.UpdateNeeded = true;
                }
            }
            #endregion

            if (Client.GetRoleplay().IsWorking)
            {
                WorkManager.RemoveWorkerFromList(Client);
                Client.GetRoleplay().IsWorking = false;
            }

            Client.GetRoleplay().IsDead       = true;
            Client.GetRoleplay().DeadTimeLeft = RoleplayManager.DeathTime;

            if (Client.GetRoleplay() != null && Client.GetRoleplay().TimerManager != null && Client.GetRoleplay().TimerManager.ActiveTimers != null)
            {
                if (Client.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("death"))
                {
                    Client.GetRoleplay().TimerManager.ActiveTimers["death"].EndTimer();
                }
                Client.GetRoleplay().TimerManager.CreateTimer("death", 1000, true);
            }

            PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Client, QuestType.DEATH);

            int      HospitalRID = Convert.ToInt32(RoleplayData.GetData("hospital", "insideroomid"));
            RoomData roomData    = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(HospitalRID);

            if (Client != null && Client.GetHabbo() != null)
            {
                if (Client.GetHabbo().CurrentRoomId == HospitalRID)
                {
                    RoleplayManager.GetLookAndMotto(Client);
                    RoleplayManager.SpawnBeds(Client, "hosptl_bed");
                    Client.SendMessage(new RoomNotificationComposer("room_death_axe", "message", "Você morreu! Você está sendo levado ao Hospital."));
                }
                else
                {
                    Client.SendMessage(new RoomNotificationComposer("room_death_axe", "message", "Você morreu! Você está sendo levado ao Hospital."));
                    RoleplayManager.SendUser(Client, HospitalRID);
                }
            }
        }
Exemplo n.º 5
0
        public void Execute(GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length < 3)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um nome de usuário ou o número de estrelas de 1-6!", 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;
            }

            var RoomUser       = Session.GetRoomUser();
            var TargetRoomUser = TargetClient.GetRoomUser();

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

            if (TargetClient.GetRoleplay().IsJailed)
            {
                Session.SendWhisper("Esta pessoa já está presa!", 1);
                return;
            }

            int Stars;

            if (!int.TryParse(Params[2], out Stars))
            {
                Session.SendWhisper("Digite um número de estrelas válido de 1-6", 1);
                return;
            }
            else
            {
                if (Stars < 1 || Stars > 6)
                {
                    Session.SendWhisper("Digite um número de estrelas válido de 1-6", 1);
                    return;
                }
            }

            int WantedTime = Stars * 5;

            TargetClient.GetRoleplay().WantedLevel = Stars;
            if (TargetClient.GetRoleplay().IsDead)
            {
                TargetClient.GetRoleplay().IsDead = false;
                TargetClient.GetRoleplay().ReplenishStats(true);
                TargetClient.GetHabbo().Poof();
            }

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

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

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

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

            TargetClient.GetRoleplay().IsJailed       = true;
            TargetClient.GetRoleplay().JailedTimeLeft = WantedTime;
            TargetClient.GetRoleplay().TimerManager.CreateTimer("jail", 1000, 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 preso por " + Session.GetHabbo().Username + " por " + WantedTime + " minutos!"));
            }
            else
            {
                TargetClient.SendMessage(new RoomNotificationComposer("room_jail_prison", "message", "Você foi preso por " + Session.GetHabbo().Username + " por " + WantedTime + " minutos!"));
                RoleplayManager.SendUser(TargetClient, JailRID);
            }

            if (RoleplayManager.WantedList.ContainsKey(TargetClient.GetHabbo().Id))
            {
                Wanted Junk;
                RoleplayManager.WantedList.TryRemove(TargetClient.GetHabbo().Id, out Junk);
                PlusEnvironment.GetGame().GetClientManager().JailAlert("[Alerta RÁDIO] " + TargetClient.GetHabbo().Username + " acabou de ser preso por " + Session.GetHabbo().Username + "! Bom trabalho.");
            }

            Session.Shout("*Prende imediatamente o " + TargetClient.GetHabbo().Username + " por " + WantedTime + " minutos*", 23);
            return;
        }
Exemplo n.º 6
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            RoomUser User  = Session.GetRoomUser();
            Group    Group = GroupManager.GetJob(Session.GetRoleplay().JobId);

            #region Conditions
            if (User == null)
            {
                return;
            }

            if (Group == null)
            {
                Session.SendNotification("Somente um policial pode usar esta ferramenta!");
                return;
            }

            if (Group.Id <= 0)
            {
                Session.SendNotification("Somente um policial pode usar esta ferramenta!!");
                return;
            }

            if (!GroupManager.HasJobCommand(Session, "guide"))
            {
                Session.SendNotification("Somente um policial pode usar esta ferramenta!!");
                return;
            }

            if (Session.GetRoleplay().IsDead)
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                Session.SendWhisper("Você não pode trabalhar enquanto está morto!", 1);
                return;
            }

            if (Session.GetRoleplay().IsJailed)
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                Session.SendWhisper("Você não pode trabalhar enquanto está preso!", 1);
                return;
            }

            if (Session.GetRoleplay().IsWorkingOut)
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                Session.SendWhisper("Você não pode trabalhar enquanto está malhando!", 1);
                return;
            }

            if (Session.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("sendhome"))
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                Session.SendWhisper("Você não pode trabalhar enquanto foi enviado para casa!", 1);
                return;
            }

            if (Session.GetRoleplay().Game != null)
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                Session.SendWhisper("Você não pode trabalhar enquanto estiver dentro de um evento!", 1);
                return;
            }

            if (GroupManager.HasJobCommand(Session, "guide") && RoleplayManager.PurgeStarted)
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                Session.SendWhisper("Você não pode começar a trabalhar como policial enquanto uma purga foi ativada!", 1);
                return;
            }

            if (GroupManager.HasJobCommand(Session, "guide") && Session.GetHabbo().CurrentRoom.RoomData.TurfEnabled&& !RoleplayManager.StartWorkInPoliceHQ)
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                Session.SendWhisper("Você não pode trabalhar como policial enquanto está dentro de um território!", 1);
                return;
            }

            if (BlackListManager.BlackList.Contains(Session.GetHabbo().Id))
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                Session.SendWhisper("Desculpe, mas você está na lista negra da corporação policial!", 1);
                return;
            }
            #endregion

            GuideManager guideManager = PlusEnvironment.GetGame().GetGuideManager();
            bool         onDuty       = Packet.PopBoolean();

            Session.GetRoleplay().HandlingCalls      = Packet.PopBoolean();
            Session.GetRoleplay().HandlingJailbreaks = Packet.PopBoolean();
            Session.GetRoleplay().HandlingHeists     = Packet.PopBoolean();

            if (onDuty)
            {
                if (Session.GetRoleplay().TryGetCooldown("startwork", true))
                {
                    Session.SendMessage(new HelperToolConfigurationComposer(Session));
                    return;
                }

                if (Session.GetRoleplay().CurEnergy <= 0)
                {
                    Session.SendMessage(new HelperToolConfigurationComposer(Session));
                    Session.SendWhisper("Você não tem energia para trabalhar!", 1);
                    return;
                }

                if (!Session.GetRoleplay().IsWorking)
                {
                    Session.GetRoleplay().IsWorking = true;
                    guideManager.AddGuide(Session);
                    Session.Shout("*Começa a trabalhar como " + GroupManager.GetJob(Session.GetRoleplay().JobId).Name + " no cargo " + GroupManager.GetJobRank(Session.GetRoleplay().JobId, Session.GetRoleplay().JobRank).Name + "*", 4);
                    RoleplayManager.GetLookAndMotto(Session);
                    WorkManager.AddWorkerToList(Session);
                    Session.GetRoleplay().TimerManager.CreateTimer("work", 1000, true);
                    Session.GetRoleplay().CooldownManager.CreateCooldown("startwork", 1000, 10);

                    if (Session.GetHabbo().CurrentRoomId != Convert.ToInt32(RoleplayData.GetData("police", "headquartersroomid")))
                    {
                        if (RoleplayManager.StartWorkInPoliceHQ)
                        {
                            RoleplayManager.SendUser(Session, Convert.ToInt32(RoleplayData.GetData("police", "headquartersroomid")));
                        }
                    }
                }
            }
            else
            {
                if (Session.GetRoleplay().TryGetCooldown("stopwork", true))
                {
                    Session.SendMessage(new HelperToolConfigurationComposer(Session));
                    return;
                }
                if (Session.GetRoleplay().IsWorking)
                {
                    Session.GetRoleplay().IsWorking = false;
                    guideManager.RemoveGuide(Session);
                    Session.Shout("*Para de trabalhar como " + GroupManager.GetJob(Session.GetRoleplay().JobId).Name + " [" + GroupManager.GetJobRank(Session.GetRoleplay().JobId, Session.GetRoleplay().JobRank).Name + "]*", 4);
                    WorkManager.RemoveWorkerFromList(Session);
                    Session.GetHabbo().Poof();
                    Session.GetRoleplay().CooldownManager.CreateCooldown("stopwork", 1000, 10);
                }
            }
            Session.SendMessage(new HelperToolConfigurationComposer(Session));
        }
Exemplo n.º 7
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
        }
Exemplo 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)
            {
                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
        }
Exemplo n.º 9
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Conditions
            if (Session.GetRoleplay().IsWorking)
            {
                Session.SendWhisper("Você já está trabalhando!", 1);
                return;
            }

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

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

            if (Session.GetRoleplay().JobId == 1)
            {
                Session.SendWhisper("Você não pode trabalhar, você está desempregado!", 1);
                return;
            }

            if (Session.GetRoleplay().IsWorkingOut)
            {
                Session.SendWhisper("Você não pode trabalhar enquanto está malhando!", 1);
                return;
            }

            if (Session.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("sendhome"))
            {
                Session.SendWhisper("Você não pode trabalhar enquanto foi enviado para casa!", 1);
                return;
            }

            if (!GroupManager.JobExists(Session.GetRoleplay().JobId, Session.GetRoleplay().JobRank))
            {
                Session.GetRoleplay().TimeWorked = 0;
                Session.GetRoleplay().JobId      = 1;
                Session.GetRoleplay().JobRank    = 1;
                Session.GetRoleplay().JobRequest = 0;

                Group NewJob = GroupManager.GetJob(Session.GetRoleplay().JobId);
                NewJob.AddNewMember(Session.GetHabbo().Id);
                NewJob.SendPackets(Session);

                Session.SendWhisper("Desculpe, seu trabalho não existe! Ele foi removido.", 1);
                return;
            }

            Group     Job  = GroupManager.GetJob(Session.GetRoleplay().JobId);
            GroupRank Rank = GroupManager.GetJobRank(Job.Id, Session.GetRoleplay().JobRank);

            if (!Rank.CanWorkHere(Room.Id))
            {
                Session.SendWhisper("Este não é um dos seus quartos de trabalho! Você trabalha no(s) Quarto(s): [" + String.Join(",", Rank.WorkRooms) + "].", 1);
                return;
            }

            if (Session.GetRoleplay().CurEnergy <= 0)
            {
                Session.SendWhisper("Você não tem energia suficiente para trabalhar!", 1);
                return;
            }

            if (GroupManager.HasJobCommand(Session, "policial") && RoleplayManager.PurgeStarted)
            {
                Session.SendWhisper("Você não pode começar a trabalhar como policial em uma purga!", 1);
                return;
            }

            if (GroupManager.HasJobCommand(Session, "policial") && Room.RoomData.TurfEnabled)
            {
                Session.SendWhisper("Você não pode trabalhar como policial dentro de um território!", 1);
                return;
            }

            if (Session.GetRoleplay().TryGetCooldown("startwork", true))
            {
                return;
            }

            #endregion

            #region Execute
            if (GroupManager.HasJobCommand(Session, "guide"))
            {
                Session.SendMessage(new HelperToolConfigurationComposer(Session));
                return;
            }

            #region Farming Level Check
            int JobRank = 1;
            if (GroupManager.HasJobCommand(Session, "farming"))
            {
                if (!Session.GetRoleplay().FarmingStats.HasPlantSatchel&& !Session.GetRoleplay().FarmingStats.HasSeedSatchel)
                {
                    Session.SendWhisper("O agricultor precisa de um Saco de plantas e um Saco de sementes para que eles possam começar a trabalhar! Compre um no supermercado.", 1);
                    return;
                }

                if (Session.GetRoleplay().FarmingStats.Level < 6)
                {
                    JobRank = 1;
                }
                else if (Session.GetRoleplay().FarmingStats.Level >= 6 && Session.GetRoleplay().FarmingStats.Level < 11)
                {
                    JobRank = 2;
                }
                else if (Session.GetRoleplay().FarmingStats.Level >= 11)
                {
                    JobRank = 3;
                }

                if (JobRank != Session.GetRoleplay().JobRank)
                {
                    Session.GetRoleplay().JobRank = JobRank;
                    Job.UpdateJobMember(Session.GetHabbo().Id);
                }
            }
            #endregion

            Session.GetRoleplay().IsWorking = true;
            RoleplayManager.GetLookAndMotto(Session);
            WorkManager.AddWorkerToList(Session);
            Session.GetRoleplay().TimerManager.CreateTimer("work", 1000, true);
            Session.GetRoleplay().CooldownManager.CreateCooldown("startwork", 1000, 10);
            return;

            #endregion
        }