コード例 #1
0
ファイル: UnloadCommand.cs プロジェクト: xjoao97/HabboRP
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            Room R = null;

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Room.Id, out R))
            {
                return;
            }

            if (Room.Name.ToLower().Contains("gun"))
            {
                RoleplayManager.CalledDelivery = false;
                RoleplayManager.DeliveryWeapon = null;
            }

            List <RoomUser> UsersToReturn = Room.GetRoomUserManager().GetRoomUsers().ToList();

            PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(R, true);

            foreach (RoomUser User in UsersToReturn)
            {
                if (User == null || User.GetClient() == null)
                {
                    continue;
                }

                RoleplayManager.SendUser(User.GetClient(), Room.Id, "Este quarto foi recarregado para correções!");
            }
        }
コード例 #2
0
        public void UnloadRoom(House House)
        {
            if (House == null)
            {
                return;
            }

            Room Room = null;

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(House.RoomId, out Room))
            {
                return;
            }

            List <RoomUser> UsersToReturn = Room.GetRoomUserManager().GetRoomUsers().ToList();

            PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(Room, true);

            foreach (RoomUser User in UsersToReturn)
            {
                if (User == null || User.GetClient() == null)
                {
                    continue;
                }

                RoleplayManager.SendUser(User.GetClient(), House.Sign.RoomId, "The house was just bought, so you were sent back outside!");
            }
        }
コード例 #3
0
        /// <summary>
        /// Checks if the client is jailed, if so send the user to jail
        /// </summary>
        public void JailCheck(GameClient Client)
        {
            if (!Client.GetRoleplay().IsJailed)
            {
                return;
            }

            if (JailbreakManager.JailbreakActivated)
            {
                Client.GetRoleplay().Jailbroken = true;
                Client.SendNotification("Someone has initiated a jailbreak while you were offline! Better run before you get caught!");
                return;
            }

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

            if (Client.GetRoleplay().IsWanted || Client.GetRoleplay().WantedLevel != 0 || Client.GetRoleplay().WantedTimeLeft != 0)
            {
                Client.GetRoleplay().IsWanted       = false;
                Client.GetRoleplay().WantedLevel    = 0;
                Client.GetRoleplay().WantedTimeLeft = 0;
            }

            if (Client.GetHabbo().HomeRoom != JailRID)
            {
                Client.GetHabbo().HomeRoom = JailRID;
            }

            RoleplayManager.SendUser(Client, JailRID, "");
            Client.GetRoleplay().TimerManager.CreateTimer("jail", 1000, true);
        }
コード例 #4
0
ファイル: SendUserCommand.cs プロジェクト: xjoao97/HabboRP
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length < 3)
            {
                Session.SendWhisper("Por favor, use o comando ':uenviar (usuário) (id do quarto)'.", 1);
                return;
            }

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

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

            if (TargetClient.GetHabbo().CurrentRoom != null)
            {
                if (TargetClient.GetHabbo().CurrentRoom.TutorialEnabled)
                {
                    Session.SendWhisper("Você não pode enviar alguém que está em uma sala de tutorial!", 1);
                    return;
                }
            }

            int RoomId;

            if (!int.TryParse(Params[2], out RoomId))
            {
                Session.SendWhisper("Digite um ID válido!", 1);
                return;
            }

            Room TargetRoom = HabboRoleplay.Misc.RoleplayManager.GenerateRoom(RoomId);

            if (TargetRoom == null)
            {
                Session.SendWhisper("Desculpe, não conseguimos encontrar o ID!", 1);
                return;
            }

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

            if (TargetClient.GetRoleplay().IsJailed)
            {
                TargetClient.GetRoleplay().IsJailed       = false;
                TargetClient.GetRoleplay().JailedTimeLeft = 0;
            }

            Session.Shout("*Envia imediatamente " + TargetClient.GetHabbo().Username + " para " + TargetRoom.Name + " [ID: " + RoomId + "]*", 23);
            RoleplayManager.SendUser(TargetClient, RoomId, "Você foi enviado para " + TargetRoom.Name + " [ID: " + RoomId + "] por " + Session.GetHabbo().Username + "!");
        }
コード例 #5
0
ファイル: ColourWars.cs プロジェクト: xjoao97/HabboRP
        public void Start()
        {
            try
            {
                GameIsStarting = true;

                int UserCounter = 0;

                lock (Players)
                {
                    foreach (int playerid in Players)
                    {
                        GameClient Player  = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(playerid);
                        int        Counter = 11;
                        UserCounter++;

                        new Thread(() =>
                        {
                            while (Counter > 0)
                            {
                                if (Player != null)
                                {
                                    if (Counter == 11)
                                    {
                                        Player.SendWhisper("A [Guerra de Cores] vai começar em alguns segundos!", 1);
                                    }
                                    else
                                    {
                                        Player.SendWhisper("[ATENÇÃO] Começará em " + Counter + " segundos!", 1);
                                    }
                                }
                                Counter--;
                                Thread.Sleep(1000);

                                if (Counter == 0)
                                {
                                    if (Player != null && Player.GetRoleplay() != null)
                                    {
                                        PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Player, "ACH_ColourWars", 1);

                                        RoleplayManager.SendUser(Player, Player.GetRoleplay().Team.SpawnRoom);
                                        Player.GetRoleplay().ReplenishStats();
                                    }
                                    GameStarted    = true;
                                    GameIsStarting = false;
                                }
                            }
                        }).Start();
                    }
                }
            }
            catch (Exception e)
            {
                Logging.LogRPGamesError("Error in Start() void: " + e);
            }
        }
コード例 #6
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            UInt32 RoomId = 0;

            if (Params.Length == 1)
            {
                Session.SendWhisper("Opa, você esqueceu de inserir um ID do quarto!", 1);
                return;
            }

            if (!UInt32.TryParse(Params[1].ToString(), out RoomId))
            {
                Session.SendWhisper("Por favor insira um número válido.", 1);
                return;
            }

            Room TargetRoom = RoleplayManager.GenerateRoom(Convert.ToInt32(RoomId));

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

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

            if (RoomId == Session.GetHabbo().CurrentRoomId)
            {
                Session.SendWhisper("Você já está nesta sala!", 1);
                return;
            }

            if (TargetRoom == null)
            {
                Session.SendWhisper("[RPG TAXI] Desculpe, não conseguimos encontrar esse quarto!", 1);
                return;
            }

            if (Session.GetRoleplay().Game != null)
            {
                Session.SendWhisper("Você não pode usar taxi enquanto está dentro de um evento!", 1);
                return;
            }

            if (!Session.GetHabbo().Username.Contains("Ying"))
            {
                Session.Shout("*Pega o Taxi Administrativo e vai imediatamente para o local*", 23);
            }


            RoleplayManager.SendUser(Session, (int)RoomId);
        }
コード例 #7
0
ファイル: SummonPetsCommand.cs プロジェクト: xjoao97/HabboRP
        public void Execute(GameClients.GameClient Session, Room Room, string[] Params)
        {
            #region Variables
            int Count = 0;
            #endregion

            #region Execute
            lock (PlusEnvironment.GetGame().GetClientManager().GetClients)
            {
                foreach (GameClient Client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                {
                    if (Client == null || Client.GetHabbo() == null || Client.GetRoleplay() == null)
                    {
                        continue;
                    }

                    if (Client == Session)
                    {
                        continue;
                    }

                    if (Client.GetHabbo().PetId <= 0)
                    {
                        continue;
                    }

                    if (Client.GetRoleplay().IsDead)
                    {
                        Client.GetRoleplay().IsDead = false;
                        Client.GetRoleplay().ReplenishStats(true);
                        Client.GetHabbo().Poof();
                    }

                    if (Client.GetRoleplay().IsJailed)
                    {
                        Client.GetRoleplay().IsJailed       = false;
                        Client.GetRoleplay().JailedTimeLeft = 0;
                        Client.GetHabbo().Poof();
                    }

                    Count++;
                    RoleplayManager.SendUser(Client, Room.Id, "Você foi convocado por " + Session.GetHabbo().Username + "!");
                }
                if (Count > 0)
                {
                    Session.Shout("*Puxa todos os usuários transformados para minha sala*", 23);
                }
                else
                {
                    Session.SendWhisper("Desculpe, mas não houve usuários transformados para invocar!", 1);
                }
            }
            #endregion
        }
コード例 #8
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetRoleplay() == null || Session.GetRoomUser() == null)
            {
                return;
            }

            if (!Session.GetRoleplay().IsWanted || !RoleplayManager.WantedList.ContainsKey(Session.GetHabbo().Id))
            {
                Session.SendWhisper("Você não está sendo procurado!", 1);
                return;
            }

            if (Params.Length < 2)
            {
                Session.SendWhisper("Para confirmar que deseja se entregar, Digite :serender sim");
                return;
            }

            if (Params[1].ToString().ToLower() == "sim")
            {
                int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid"));

                Session.Shout("*Se entrega às autoridades da lei e é escoltado para a prisão*", 4);

                if (Session.GetHabbo().CurrentRoomId != JailRID)
                {
                    RoleplayManager.SendUser(Session, JailRID, "Você se entregou às autoridades da lei e foi preso por " + Session.GetRoleplay().WantedLevel * 5 + " minutos!");
                }

                Wanted Junk;
                RoleplayManager.WantedList.TryRemove(Session.GetHabbo().Id, out Junk);

                PlusEnvironment.GetGame().GetClientManager().JailAlert("[Alerta RÁDIO] " + Session.GetHabbo().Username + " se rendeu às autoridades da lei!");

                if (Session.GetRoleplay().EquippedWeapon != null)
                {
                    Session.GetRoleplay().EquippedWeapon = null;
                }

                Session.GetRoleplay().IsJailed       = true;
                Session.GetRoleplay().JailedTimeLeft = Session.GetRoleplay().WantedLevel * 5;

                Session.GetRoleplay().TimerManager.CreateTimer("preso", 1000, false);
                return;
            }
            else
            {
                Session.SendWhisper("Tem certeza de que deseja se render? Você será preso por " + Session.GetRoleplay().WantedLevel * 5 + " minutos!", 1);
                Session.SendWhisper("Digite :serender sim se realmente deseja se entregar.", 1);
                return;
            }
        }
コード例 #9
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Digite o usuário que deseja convocar..", 1);
                return;
            }

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

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

            if (TargetClient.GetRoleplay().Game != null)
            {
                Session.SendWhisper("Desculpe, mas " + TargetClient.GetHabbo().Username + " está em um evento!", 1);
                return;
            }

            if (TargetClient.GetHabbo().CurrentRoom != null)
            {
                if (TargetClient.GetHabbo().CurrentRoom.TutorialEnabled)
                {
                    Session.SendWhisper("Você não pode puxar alguém que está em uma sala de tutorial!", 1);
                    return;
                }
            }

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

            if (TargetClient.GetRoleplay().IsJailed)
            {
                TargetClient.GetRoleplay().IsJailed       = false;
                TargetClient.GetRoleplay().JailedTimeLeft = 0;
                TargetClient.GetHabbo().Poof();
            }

            Session.Shout("*Traz imediatamente " + TargetClient.GetHabbo().Username + " para o quarto*", 23);
            RoleplayManager.SendUser(TargetClient, Room.Id, "Você foi puxado por " + Session.GetHabbo().Username + "!");
        }
コード例 #10
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;
            }
        }
コード例 #11
0
        /// <summary>
        /// Checks if the client is dead, if so send the user to hospital
        /// </summary>
        public void DeathCheck(GameClient Client)
        {
            if (!Client.GetRoleplay().IsDead)
            {
                return;
            }

            int HospitalRID = Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2"));

            if (Client.GetHabbo().HomeRoom != HospitalRID)
            {
                Client.GetHabbo().HomeRoom = HospitalRID;
            }

            RoleplayManager.SendUser(Client, HospitalRID, "");
            Client.GetRoleplay().TimerManager.CreateTimer("death", 1000, true);
        }
コード例 #12
0
ファイル: HungerGame.cs プロジェクト: xjoao97/HabboRP
        public void Start()
        {
            try
            {
                GameStarted = true;

                foreach (int playerid in Players)
                {
                    GameClient Player  = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(playerid);
                    int        Counter = 11;

                    new Thread(() =>
                    {
                        while (Counter > 0)
                        {
                            if (Player != null)
                            {
                                if (Counter == 11)
                                {
                                    Player.SendWhisper("[Jogos Vorazes] vai começar em alguns segundos!", 1);
                                }
                                else
                                {
                                    Player.SendWhisper("[ATENÇÃO] Começará em " + Counter + " segundos!", 1);
                                }
                            }
                            Counter--;
                            Thread.Sleep(1000);

                            if (Counter == 0)
                            {
                                RoleplayManager.SendUser(Player, Player.GetRoleplay().Team.SpawnRoom);
                            }
                        }
                    }).Start();
                }
            }
            catch (Exception e)
            {
                Logging.LogRPGamesError("Error in Start() void: " + e);
            }
        }
コード例 #13
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;
            }
        }
コード例 #14
0
ファイル: RoomKickCommand.cs プロジェクト: xjoao97/HabboRP
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            House House;

            if (!Room.TryGetHouse(out House))
            {
                Session.SendWhisper("Você não está nem dentro de uma casa!", 1);
                return;
            }

            if (House.OwnerId != Session.GetHabbo().Id&& !Session.GetHabbo().GetPermissions().HasRight("mod_tool"))
            {
                Session.SendWhisper("Você não é o dono da casa!", 1);
                return;
            }

            if (Params.Length == 1)
            {
                Session.SendWhisper("Por favor, forneça um motivo expulsar os usuários da sala.", 1);
                return;
            }

            string Message = CommandManager.MergeParams(Params, 1);

            foreach (RoomUser RoomUser in Room.GetRoomUserManager().GetUserList().ToList())
            {
                if (RoomUser == null || RoomUser.IsBot || RoomUser.GetClient() == null || RoomUser.GetClient().GetHabbo() == null || RoomUser.GetClient().GetHabbo().GetPermissions().HasRight("mod_tool") || RoomUser.GetClient().GetHabbo().Id == Session.GetHabbo().Id)
                {
                    continue;
                }

                RoomUser.GetClient().SendNotification("Você foi expulso da casa por: " + Message);

                RoomData roomData = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(House.Sign.RoomId);
                RoleplayManager.SendUser(Session, roomData.Id);
            }

            Session.SendWhisper("Expulsou com sucesso a todos os usuários da sua casa.", 1);
        }
コード例 #15
0
ファイル: FollowCommand.cs プロジェクト: xjoao97/HabboRP
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Digite o usuário que deseja seguir.", 1);
                return;
            }

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

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

            if (TargetClient.GetHabbo().CurrentRoom == Session.GetHabbo().CurrentRoom)
            {
                Session.SendWhisper(TargetClient.GetHabbo().Username + " está na mesma sala que você!", 1);
                return;
            }

            if (TargetClient.GetHabbo().Username == Session.GetHabbo().Username)
            {
                Session.SendWhisper("Você não pode seguir a si mesmo!", 1);
                return;
            }

            if (!TargetClient.GetHabbo().InRoom)
            {
                Session.SendWhisper("Esse usuário atualmente não está em uma sala!", 1);
                return;
            }

            Session.Shout("*Segue imediatamente " + TargetClient.GetHabbo().Username + "*", 23);
            RoleplayManager.SendUser(Session, TargetClient.GetHabbo().CurrentRoomId);
        }
コード例 #16
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;
        }
コード例 #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;
            }

            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
        }
コード例 #18
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int    roomID     = Packet.PopInt();
            bool   IsVip      = Session.GetHabbo().VIPRank < 1 ? false : true;
            int    Cost       = IsVip ? 0 : 3;
            int    Time       = IsVip ? (5 + DayNightManager.GetTaxiTime()) : (10 + DayNightManager.GetTaxiTime());
            string TaxiText   = IsVip ? " VIP" : "";
            bool   RoomLoaded = false;
            bool   OnDuty     = false;

            if (Session.GetHabbo().GetPermissions().HasRight("mod_tool") && Session.GetRoleplay().StaffOnDuty)
            {
                OnDuty = true;
            }
            if (Session.GetHabbo().VIPRank > 1)
            {
                OnDuty = true;
            }

            #region Conditions
            if (Session.GetRoleplay().IsJailed || Session.GetRoleplay().IsDead)
            {
                return;
            }

            if (Session.GetRoleplay().Cuffed)
            {
                Session.SendWhisper("Os taxistas não querem levar você, pois estão com medo de você algemado!", 1);
                return;
            }

            if (Session.GetRoomUser() != null)
            {
                if (Session.GetRoomUser().Frozen)
                {
                    Session.SendWhisper("Você não pode pegar um taxi enquanto está atordoado!", 1);
                    return;
                }
            }
            #endregion

            RoomData roomData = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(roomID);

            if (roomData == null)
            {
                return;
            }

            if (RoomLoaded)
            {
                return;
            }

            if (roomData.TutorialEnabled && !OnDuty)
            {
                Session.SendWhisper("[RPG Taxi] Você não pode ir para uma sala de Tutorial!", 1);
                return;
            }

            if (Session.GetRoomUser() != null && Session.GetRoomUser().GetRoom() != null)
            {
                if (Session.GetRoomUser().GetRoom().TutorialEnabled&& !OnDuty)
                {
                    Session.SendWhisper("[RPG Taxi] Você não pode usar taxi em uma sala de tutorial, termine ele primeiro!", 1);
                    return;
                }

                if (!Session.GetRoomUser().GetRoom().TaxiFromEnabled&& !OnDuty)
                {
                    Session.SendWhisper("[RPG Taxi] Desculpe, não podemos pegar você neste quarto!", 1);
                    return;
                }
            }

            if (roomID != Session.GetHabbo().CurrentRoomId)
            {
                if (Session.GetRoleplay().Game != null)
                {
                    Session.SendWhisper("Você não pode pegar um texi no evento!", 1);
                    return;
                }

                bool PoliceCost = false;
                if (HabboHotel.Groups.GroupManager.HasJobCommand(Session, "guide") && Session.GetRoleplay().IsWorking)
                {
                    PoliceCost = true;
                }

                if (Session.GetHabbo().Credits < Cost && Cost > 0 && !OnDuty && !PoliceCost)
                {
                    Session.SendWhisper("[RPG Taxi] Você não tem dinheiro suficiente para dar uma volta!", 1);
                    return;
                }

                if (Session.GetRoleplay().InsideTaxi)
                {
                    Session.SendWhisper("[RPG Taxi] Já estou indo pegar você! Digite ':ptaxi' se mudar de ideia!", 1);
                    return;
                }

                bool PoliceTool = false;
                if (Session.GetRoleplay().GuideOtherUser != null)
                {
                    if (HabboHotel.Groups.GroupManager.HasJobCommand(Session, "guide"))
                    {
                        if (Session.GetRoleplay().GuideOtherUser.GetHabbo() != null && Session.GetRoleplay().GuideOtherUser.GetRoomUser() != null)
                        {
                            if (roomID == Session.GetRoleplay().GuideOtherUser.GetRoomUser().RoomId)
                            {
                                PoliceTool = true;
                            }
                        }
                    }
                }

                if (!roomData.TaxiToEnabled && !OnDuty && !PoliceTool)
                {
                    Session.SendWhisper("[RPG Taxi] Desculpe, não podemos buscar você neste quarto!", 1);
                    return;
                }

                bool Event = false;
                if (roomData.RoleplayEvent != null)
                {
                    if (!roomData.RoleplayEvent.HasGameStarted())
                    {
                        Event = true;
                    }
                }

                Session.GetRoleplay().InsideTaxi = true;
                bool PoliceTaxi = false;

                if (!OnDuty && !PoliceTool && Session.GetHabbo().CurrentRoomId > 0 && !Event)
                {
                    if (HabboHotel.Groups.GroupManager.HasJobCommand(Session, "guide") && Session.GetRoleplay().IsWorking)
                    {
                        Cost = 0;
                        Time = 5;

                        if (Session.GetRoomUser() != null)
                        {
                            Session.GetRoomUser().ApplyEffect(EffectsList.PoliceTaxi);
                        }

                        Session.Shout("*Puxa o rádio da Polícia e vai rapidamente para " + roomData.Name + " [ID: " + roomID + "]*", 37);
                        PoliceTaxi = true;
                    }
                    else
                    {
                        if (Session.GetRoomUser() != null)
                        {
                            Session.GetRoomUser().ApplyEffect(EffectsList.Taxi);
                        }

                        Session.Shout("*Chama um Taxi" + TaxiText + " por " + roomData.Name + " [ID: " + roomID + "]*", 4);
                    }

                    new Thread(() =>
                    {
                        for (int i = 0; i < (Time + 1) * 10; i++)
                        {
                            if (Session.GetRoleplay() == null)
                            {
                                break;
                            }

                            if (Session.GetRoleplay().InsideTaxi)
                            {
                                Thread.Sleep(100);
                            }
                            else
                            {
                                break;
                            }
                        }

                        if (Session.GetRoleplay() != null)
                        {
                            if (Session.GetRoleplay().InsideTaxi)
                            {
                                if (Cost > 0)
                                {
                                    Session.GetHabbo().Credits -= Cost;
                                    Session.GetHabbo().UpdateCreditsBalance();
                                }

                                if (PoliceTaxi)
                                {
                                    if (Session.GetRoomUser() != null)
                                    {
                                        Session.GetRoomUser().ApplyEffect(EffectsList.CarPolice);
                                    }
                                    Session.Shout("*Entra no meu carro de polícia e vai para o local*", 37);
                                }
                                else
                                {
                                    Session.Shout("*Pula dentro do meu Taxi" + TaxiText + " e vai rapidamente para o local*", 4);
                                }
                                RoleplayManager.SendUser(Session, roomData.Id);
                            }
                        }
                    }).Start();
                }
                else
                {
                    if (PoliceTool)
                    {
                        if (Session.GetRoomUser() != null)
                        {
                            Session.GetRoomUser().ApplyEffect(EffectsList.CarPolice);
                        }
                        Session.Shout("*Entra no meu carro de polícia e dirige para ajudar um cidadão em necessidade*", 4);
                    }
                    else if (OnDuty)
                    {
                        Session.Shout("*Pula dentro do meu Carro Staff*", 23);
                    }
                    RoleplayManager.SendUser(Session, roomData.Id);
                }
            }
            else
            {
                Session.SendMessage(new GetGuestRoomResultComposer(Session, roomData, true, false));
            }
        }
コード例 #19
0
ファイル: SummonStaffCommand.cs プロジェクト: xjoao97/HabboRP
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Digite uma mensagem para enviar.", 1);
                return;
            }

            List <string> CantSummon = new List <string>();

            int OnlineStaff = 0;

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

                if (client == Session)
                {
                    continue;
                }

                if (client.GetHabbo().CurrentRoom == Room)
                {
                    continue;
                }

                if (!client.GetHabbo().GetPermissions().HasRight("mod_tool"))
                {
                    continue;
                }

                OnlineStaff++;

                if (client.GetRoleplay().Game != null)
                {
                    CantSummon.Add(client.GetHabbo().Username);
                    continue;
                }

                if (client.GetRoleplay().IsDead)
                {
                    client.GetRoleplay().IsDead = false;
                    client.GetRoleplay().ReplenishStats(true);
                    client.GetHabbo().Poof();
                }

                if (client.GetRoleplay().IsJailed)
                {
                    client.GetRoleplay().IsJailed       = false;
                    client.GetRoleplay().JailedTimeLeft = 0;
                    client.GetHabbo().Poof();
                }

                RoleplayManager.SendUser(client, Room.Id, "Você foi puxado ao quarto por " + Session.GetHabbo().Username + "!");
            }
            if (OnlineStaff > 0)
            {
                Session.Shout("*Puxa para o quarto todos os membros da equipe on-lines*", 23);
            }
            else
            {
                Session.SendWhisper("Desculpa! Não há mais Staffs online neste momento!", 1);
                return;
            }

            if (CantSummon.Count > 0)
            {
                string Users = "";

                foreach (string user in CantSummon)
                {
                    Users += user + ",";
                }

                Session.SendMessage(new MOTDNotificationComposer("Desculpe, não pôde trazer os seguintes Staffs, pois estão dentro de um Evento!\n\n " + Users));
            }
        }
コード例 #20
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            HabboRoleplay.Apartments.Apartment Apartment;

            if (!Room.TryGetApartment(out Apartment))
            {
                Session.SendWhisper("Desculpe, mas este quarto não é um apartamento!", 1);
                return;
            }

            if (!Apartment.ForSale)
            {
                Session.SendWhisper("Desculpe, mas este apartamento não está à venda!", 1);
                return;
            }

            if (Params.Length == 1)
            {
                Session.SendWhisper("Tem certeza de que quer comprar este apartamento por R$" + Apartment.Cost + "? Digite ':comprarap sim' para confirmar!", 1);
                return;
            }
            else
            {
                if (Params[1].ToLower() != "sim")
                {
                    Session.SendWhisper("Tem certeza de que quer comprar este apartamento por R$" + Apartment.Cost + "? Digite ':comprarap sim' para confirmar!", 1);
                    return;
                }
                else
                {
                    if (Session.GetHabbo().Credits < Apartment.Cost)
                    {
                        Session.SendWhisper("You do not have the $" + Apartment.Cost + " to purchase this apartment!", 1);
                        return;
                    }
                    else
                    {
                        RoleplayManager.Shout(Session, "*Compra este apartamento por R$" + Apartment.Cost + "*", 4);
                        Session.GetHabbo().Credits -= Apartment.Cost;
                        Session.GetHabbo().UpdateCreditsBalance();

                        var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Apartment.OwnerId);

                        if (Client == null)
                        {
                            using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                            {
                                dbClient.SetQuery("UPDATE `users` SET `credits` = `credits` + @cost WHERE `id` = @userid");
                                dbClient.AddParameter("cost", Apartment.Cost);
                                dbClient.AddParameter("userid", Apartment.OwnerId);
                                dbClient.RunQuery();
                            }
                        }
                        else
                        {
                            Client.SendNotification("Seu apartamento em [Quarto ID: " + Apartment.RoomId + "] acabou de ser vendido para " + Session.GetHabbo().Id + " por R$" + Apartment.Cost + "!\n\nParabéns.");
                            Client.GetHabbo().Credits += Apartment.Cost;
                            Client.GetHabbo().UpdateCreditsBalance();
                        }

                        Apartment.BuyApartment(Session);

                        Room R;
                        if (PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Room.Id, out R))
                        {
                            List <RoomUser> UsersToReturn = Room.GetRoomUserManager().GetRoomUsers().ToList();
                            PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(Room, true);
                            foreach (RoomUser User in UsersToReturn)
                            {
                                if (User == null || User.GetClient() == null)
                                {
                                    continue;
                                }

                                RoleplayManager.SendUser(User.GetClient(), Room.Id, "O apartamento acabou de ser comprado por " + Session.GetHabbo().Username + "!");
                            }
                        }
                        return;
                    }
                }
            }
        }
コード例 #21
0
ファイル: SendRoomCommand.cs プロジェクト: xjoao97/HabboRP
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Insira um quarto para enviar os usuários!", 1);
                return;
            }

            if (Room.GetRoomUserManager().GetRoomUsers().Count == 1)
            {
                Session.SendWhisper("Você é a única pessoa na sala!", 1);
                return;
            }

            int RoomId;

            if (!int.TryParse(Params[1], out RoomId))
            {
                Session.SendWhisper("Digite um id válido para o quarto!", 1);
                return;
            }

            Room TargetRoom = HabboRoleplay.Misc.RoleplayManager.GenerateRoom(RoomId);

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

            if (TargetRoom == Session.GetHabbo().CurrentRoom)
            {
                Session.SendWhisper("Você e todos os outros já estão nteste quarto!", 1);
                return;
            }

            List <string> CantSend = new List <string>();

            int count = 0;

            foreach (var user in Room.GetRoomUserManager().GetRoomUsers())
            {
                if (user == null || user.GetClient() == null || user.GetClient().GetHabbo() == null)
                {
                    continue;
                }

                if (user.GetClient() == Session)
                {
                    continue;
                }

                if (user.GetClient().GetRoleplay().Game != null)
                {
                    CantSend.Add(user.GetClient().GetHabbo().Username);
                    continue;
                }

                count++;

                if (user.GetClient().GetRoleplay().IsDead)
                {
                    user.GetClient().GetRoleplay().IsDead = false;
                    user.GetClient().GetRoleplay().ReplenishStats(true);
                    user.GetClient().GetHabbo().Poof();
                }

                if (user.GetClient().GetRoleplay().IsJailed)
                {
                    user.GetClient().GetRoleplay().IsJailed       = false;
                    user.GetClient().GetRoleplay().JailedTimeLeft = 0;
                }

                RoleplayManager.SendUser(user.GetClient(), RoomId, "Você foi enviado para o quarto [" + TargetRoom.Name + " -´Quarto ID:  " + RoomId + "] por " + Session.GetHabbo().Username + "!");
            }

            if (count > 0)
            {
                Session.Shout("*Envia imediatamente todas as pessoas do quarto para [" + TargetRoom.Name + " Quarto ID: " + RoomId + "]*", 23);
            }

            if (CantSend.Count > 0)
            {
                string Users = "";

                foreach (string user in CantSend)
                {
                    Users += user + ",";
                }

                Session.SendMessage(new MOTDNotificationComposer("Desculpe, não foi possível enviar os seguintes usuários, pois estão dentro de um Evento!\n\n " + Users));
            }
        }
コード例 #22
0
ファイル: JuryTimer.cs プロジェクト: xjoao97/HabboRP
        /// <summary>
        /// Begins chasing the client
        /// </summary>
        public override void Execute()
        {
            try
            {
                if (base.CachedBot == null || base.CachedBot.DRoomUser == null || base.CachedBot.DRoom == null)
                {
                    SpawnJuryUsersOut(false);
                    Thread.Sleep(200);

                    RoleplayManager.CourtVoteEnabled = false;
                    RoleplayManager.InnocentVotes    = 0;
                    RoleplayManager.GuiltyVotes      = 0;

                    RoleplayManager.CourtJuryTime        = 0;
                    RoleplayManager.CourtTrialIsStarting = false;
                    RoleplayManager.CourtTrialStarted    = false;
                    RoleplayManager.Defendant            = null;
                    RoleplayManager.InvitedUsersToJuryDuty.Clear();

                    base.EndTimer();

                    return;
                }

                GameClient Client      = RoleplayManager.Defendant;
                int        CourtRoomId = Convert.ToInt32(RoleplayData.GetData("court", "roomid"));
                Room       Room        = RoleplayManager.GenerateRoom(CourtRoomId);

                if (Client == null || Client.LoggingOut || Client.GetHabbo() == null || Client.GetRoleplay() == null)
                {
                    SpawnJuryUsersOut(false);

                    RoleplayManager.CourtVoteEnabled = false;
                    RoleplayManager.InnocentVotes    = 0;
                    RoleplayManager.GuiltyVotes      = 0;

                    RoleplayManager.CourtJuryTime        = 0;
                    RoleplayManager.CourtTrialIsStarting = false;
                    RoleplayManager.CourtTrialStarted    = false;
                    RoleplayManager.Defendant            = null;
                    RoleplayManager.InvitedUsersToJuryDuty.Clear();

                    if (base.CachedBot != null)
                    {
                        if (base.CachedBot.DRoomUser != null)
                        {
                            base.CachedBot.DRoomUser.Chat("Olá, como o réu saiu, o processo judicial foi suspenso. Desculpas por qualquer inconveniente!", false, 2);
                        }
                    }
                    base.EndTimer();
                    return;
                }

                RoleplayManager.CourtJuryTime++;

                if (RoleplayManager.CourtJuryTime < 151)
                {
                    if (RoleplayManager.CourtJuryTime == 2)
                    {
                        RoleplayManager.SendUser(Client, CourtRoomId, "");
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 5)
                    {
                        base.CachedBot.DRoomUser.Chat("Bom dia senhoras e senhores, agora irá começar o julgamento da Polícia do HabboRPG contra o(a) " + Client.GetHabbo().Username + ", seja honesto.", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 10)
                    {
                        if (Client.GetRoleplay().WantedFor != "")
                        {
                            base.CachedBot.DRoomUser.Chat("Esta pessoa é acusada de " + Client.GetRoleplay().WantedFor.TrimEnd(',', ' ') + ".", false, 2);
                        }
                        else
                        {
                            base.CachedBot.DRoomUser.Chat("Infelizmente, não recebi receber o relatório das acusações para o julgamento deste tribunal, então o juiz ouvirá sua explicação " + Client.GetHabbo().Username + "!", false, 2);
                        }
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 18)
                    {
                        base.CachedBot.DRoomUser.Chat("Apenas um lembrete. A Polícia do HabboRPG afirma que o Réu é culpado dos crimes, vamos prosseguir.", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 26)
                    {
                        base.CachedBot.DRoomUser.Chat(Client.GetHabbo().Username + ", explique para mim e para os juris, o que realmente aconteceu?", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 75)
                    {
                        base.CachedBot.DRoomUser.Chat("Obrigado por sua explicação.", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 81)
                    {
                        base.CachedBot.DRoomUser.Chat(Client.GetHabbo().Username + ", Se os jurados achar que você é inocente, você será libertado da prisão.", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 87)
                    {
                        base.CachedBot.DRoomUser.Chat("No entanto, se acharem que você é culpado, você permanecerá na prisão para servir o resto da sua sentença.", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 93)
                    {
                        base.CachedBot.DRoomUser.Chat("Advogado(a), por favor, pode remover " + Client.GetHabbo().Username + " para prosseguirmos com o julgamento.", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 96)
                    {
                        int JailRID = Convert.ToInt32(RoleplayData.GetData("jail", "insideroomid"));
                        RoleplayManager.SendUser(Client, JailRID);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 100)
                    {
                        base.CachedBot.DRoomUser.Chat("Agora são vocês, juris, decidir o destino do Réu", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 105)
                    {
                        RoleplayManager.CourtVoteEnabled = true;
                        base.CachedBot.DRoomUser.Chat("Por favor, vote digitando ':votar (culpado/inocente)'!", false, 2);
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 125)
                    {
                        int CourtResult = Math.Max(RoleplayManager.InnocentVotes, RoleplayManager.GuiltyVotes);

                        if (CourtResult == 0)
                        {
                            base.CachedBot.DRoomUser.Chat("Obrigado pelos seus votos. O júri definiu que o réu, " + Client.GetHabbo().Username + ", é culpado de todos os crimes.", false, 2);
                            Thread.Sleep(4000);
                            base.CachedBot.DRoomUser.Chat("O réu permanecerá na prisão e servirá o resto de sua sentença lá.", false, 2);
                            Client.SendNotification("Os juris definiu que você é culpado de todos os crimes. Você permanecerá na prisão e servirá o resto da sua sentença!");
                            return;
                        }
                        else if (CourtResult == RoleplayManager.GuiltyVotes)
                        {
                            base.CachedBot.DRoomUser.Chat("Obrigado pelo seu voto. O júri definiu que o réu, " + Client.GetHabbo().Username + ", é culpado de todos os crimes.", false, 2);
                            Thread.Sleep(4000);
                            base.CachedBot.DRoomUser.Chat("O réu permanecerá na prisão e servirá o resto de sua sentença lá.", false, 2);
                            Client.SendNotification("Os juris definiu que você é culpado de todos os crimes. Você permanecerá na prisão e servirá o resto da sua sentença!");
                            return;
                        }
                        else
                        {
                            base.CachedBot.DRoomUser.Chat("Obrigado por seu voto. Os juris definiu que o réu, " + Client.GetHabbo().Username + ", é inocente de todos os crimes.", false, 2);
                            Thread.Sleep(4000);
                            base.CachedBot.DRoomUser.Chat("Eu liberto o réu e perdoo de todos os crimes.", false, 2);
                            Client.SendNotification("Os juris definiu que você é inocente de todos os crimes. Você foi libertado da prisão!");
                            Client.GetRoleplay().IsJailed       = false;
                            Client.GetRoleplay().JailedTimeLeft = 0;
                        }
                        return;
                    }
                    else if (RoleplayManager.CourtJuryTime == 150)
                    {
                        base.CachedBot.DRoomUser.Chat("Obrigado juris. Caso encerrado.", false, 2);

                        if (Room != null)
                        {
                            SpawnJuryUsersOut(true);
                        }
                        return;
                    }
                    return;
                }

                RoleplayManager.CourtVoteEnabled = false;
                RoleplayManager.InnocentVotes    = 0;
                RoleplayManager.GuiltyVotes      = 0;

                RoleplayManager.CourtJuryTime        = 0;
                RoleplayManager.CourtTrialIsStarting = false;
                RoleplayManager.CourtTrialStarted    = false;
                RoleplayManager.Defendant            = null;
                RoleplayManager.InvitedUsersToJuryDuty.Clear();
                base.EndTimer();
            }
            catch (Exception e)
            {
                Logging.LogRPTimersError("Error in Execute() void: " + e);
                base.EndTimer();
            }
        }
コード例 #23
0
ファイル: ColourWars.cs プロジェクト: xjoao97/HabboRP
        public void RemovePlayerFromGame(GameClient player, bool Winner = false)
        {
            try
            {
                if (player == null || player.GetHabbo() == null || player.GetRoleplay() == null)
                {
                    return;
                }

                if (Players.Contains(player.GetHabbo().Id))
                {
                    Players.Remove(player.GetHabbo().Id);
                }
                else
                {
                    return;
                }

                if (Teams.Values.Where(x => x.Members.Contains(player.GetHabbo().Id)).ToList().Count > 0)
                {
                    RoleplayTeam Team = Teams.Values.FirstOrDefault(x => x.Members.Contains(player.GetHabbo().Id));
                    Team.Members.Remove(player.GetHabbo().Id);
                }

                player.GetHabbo().Look  = player.GetRoleplay().OriginalOutfit;
                player.GetHabbo().Motto = player.GetRoleplay().Class;
                player.GetHabbo().Poof(false);

                player.GetRoleplay().GameSpawned = false;
                player.GetRoleplay().Game        = null;
                player.GetRoleplay().Team        = null;

                if (player.GetRoomUser() != null)
                {
                    player.GetRoomUser().CanWalk = true;
                }

                RoleplayManager.SendUser(player, Convert.ToInt32(RoleplayData.GetData("colourwars", "lobbyid")));

                if (GameStarted)
                {
                    if (Winner)
                    {
                        player.GetRoleplay().UpdateEventWins("cw", 1);
                        player.GetRoleplay().ReplenishStats(true);
                        player.GetHabbo().EventPoints += Prize;
                        player.GetHabbo().UpdateEventPointsBalance();
                        player.SendNotification("Parabéns! Sua equipe ganhou, você foi premiado com " + Prize + " pontos de eventos!");
                    }
                    else
                    {
                        player.GetHabbo().EventPoints++;
                        player.GetHabbo().UpdateEventPointsBalance();
                        player.SendNotification("Que merda hein, sua equipe perdeu no evento [Guerras de Cores]! Você ganhou 1 ponto de evento por participar!");
                    }
                }
            }
            catch (Exception e)
            {
                Logging.LogRPGamesError("Error in RemovePlayerFromGame() void: " + e);
            }
        }
コード例 #24
0
        /// <summary>
        /// Kills the user normally, depends on the event mode
        /// </summary>
        /// <param name="Client"></param>
        private void EventDeath(GameClient Client)
        {
            if (Client.GetRoleplay().Game == null)
            {
                NormalDeath(Client);
            }

            #region Brawl
            else if (Client.GetRoleplay().Game == Games.RoleplayGameManager.GetGame(Games.GameMode.Brawl))
            {
                Client.GetRoleplay().ReplenishStats();

                RoleplayManager.Shout(Client, "*Nocauteado e expulso da briga*", 32);
                RoleplayManager.SpawnChairs(Client, "es_bench");

                Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado e perdeu a briga!"));
                Client.GetRoleplay().Game.RemovePlayerFromGame(Client);
            }
            #endregion

            #region Team Brawl
            else if (Client.GetRoleplay().Game == Games.RoleplayGameManager.GetGame(Games.GameMode.TeamBrawl))
            {
                Client.GetRoleplay().ReplenishStats();
                RoleplayManager.Shout(Client, "*Sai da briga por ser nocauteado*", 32);

                #region Graveyard Spawn
                if (Client.GetRoomUser() != null)
                {
                    int ArenaStartX  = Convert.ToInt32(RoleplayData.GetData("teambrawl", "graveyardstartx"));
                    int ArenaStartY  = Convert.ToInt32(RoleplayData.GetData("teambrawl", "graveyardstarty"));
                    int ArenaFinishX = Convert.ToInt32(RoleplayData.GetData("teambrawl", "graveyardfinishx"));
                    int ArenaFinishY = Convert.ToInt32(RoleplayData.GetData("teambrawl", "graveyardfinishy"));

                    CryptoRandom       Random       = new CryptoRandom();
                    List <ThreeDCoord> Squares      = RoleplayManager.GenerateMap(ArenaStartX, ArenaStartY, ArenaFinishX, ArenaFinishY);
                    ThreeDCoord        RandomSquare = Squares[Random.Next(0, Squares.Count)] == null?Squares.FirstOrDefault() : Squares[Random.Next(0, Squares.Count)];

                    Client.GetRoomUser().ClearMovement(true);
                    var Room = RoleplayManager.GenerateRoom(Client.GetRoomUser().RoomId);
                    if (Room != null)
                    {
                        Room.GetGameMap().UpdateUserMovement(new Point(Client.GetRoomUser().X, Client.GetRoomUser().Y), new Point(RandomSquare.X, RandomSquare.Y), Client.GetRoomUser());
                    }

                    Client.GetRoomUser().X            = RandomSquare.X;
                    Client.GetRoomUser().Y            = RandomSquare.Y;
                    Client.GetRoomUser().UpdateNeeded = true;
                }
                #endregion

                Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado da Briga de Times!"));

                if (!Client.GetRoleplay().Team.LostMembers.Contains(Client.GetHabbo().Id))
                {
                    Client.GetRoleplay().Team.LostMembers.Add(Client.GetHabbo().Id);
                }

                if (Client.GetRoleplay().Team.LostMembers.Count == Client.GetRoleplay().Team.Members.Count)
                {
                    Client.GetRoleplay().Team.InGame = false;
                }
            }
            #endregion

            #region SoloQueue
            else if (Client.GetRoleplay().Game.GetGameMode() == Games.GameMode.SoloQueue || Client.GetRoleplay().Game.GetGameMode() == Games.GameMode.SoloQueueGuns)
            {
                Client.GetRoleplay().ReplenishStats();

                RoleplayManager.Shout(Client, "*Sai do Soloqueue por ser nocauteado*", 32);
                RoleplayManager.SpawnChairs(Client, "es_bench");

                Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado do Soloqueue!"));
                Client.GetRoleplay().Game.RemovePlayerFromGame(Client);
            }
            #endregion

            #region Colour Wars
            else if (Client.GetRoleplay().Game == Games.RoleplayGameManager.GetGame(Games.GameMode.ColourWars))
            {
                Client.GetRoleplay().ReplenishStats();
                Client.GetRoleplay().NeedsRespawn = true;

                RoleplayManager.Shout(Client, "*Nocauteado! Você está sendo levado para sala de revivência*", 32);
                RoleplayManager.SendUser(Client, Client.GetRoleplay().Team.SpawnRoom);
                Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado. Vai demorar dois minutos para recuperar."));

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

                    int Counter = 0;
                    while (Counter < 200)
                    {
                        if (Client == null || Client.GetRoleplay() == null || Client.GetRoleplay().Game == null || Client.GetRoleplay().Team == null || Client.GetRoleplay().Game.GetGameMode() != Games.GameMode.ColourWars)
                        {
                            if (Client.GetRoomUser() != null)
                            {
                                Client.GetRoomUser().CanWalk = true;
                            }

                            if (Client.GetRoleplay() != null)
                            {
                                Client.GetRoleplay().NeedsRespawn = false;
                            }
                            break;
                        }

                        Counter++;
                        Thread.Sleep(1000);

                        if (Counter == 30)
                        {
                            Client.SendWhisper("Você tem 1 minuto, 30 segundos restantes até que você possa se mover novamente!", 1);
                        }
                        else if (Counter == 60)
                        {
                            Client.SendWhisper("Você tem 1 minuto restante até que você possa se mover novamente!", 1);
                        }
                        else if (Counter == 90)
                        {
                            Client.SendWhisper("Você tem 30 segundos restantes até que você possa se mover novamente!", 1);
                        }
                        else if (Counter == 110)
                        {
                            Client.SendWhisper("Você tem 10 segundos restantes até que você possa se mover novament!", 1);
                        }
                        else if (Counter == 120)
                        {
                            Client.SendWhisper("Você agora está consciente e pode se mover!", 1);
                        }
                        else if (Counter >= 121)
                        {
                            if (Client.GetRoomUser() != null)
                            {
                                Client.GetRoomUser().CanWalk = true;
                            }

                            if (Client.GetRoleplay() != null)
                            {
                                Client.GetRoleplay().NeedsRespawn = false;
                            }
                            break;
                        }
                    }
                }).Start();
            }
            #endregion

            #region Mafia Wars
            else if (Client.GetRoleplay().Game == Games.RoleplayGameManager.GetGame(Games.GameMode.MafiaWars))
            {
                Client.GetRoleplay().ReplenishStats();
                Client.GetRoleplay().NeedsRespawn = true;

                RoleplayManager.Shout(Client, "*Nocauteado! Você está sendo levado para sala de revivência*", 32);
                RoleplayManager.SendUser(Client, Client.GetRoleplay().Team.SpawnRoom);
                Client.SendMessage(new RoomNotificationComposer("room_kick_cannonball", "message", "Você foi nocauteado! Levará 35 segundos para recuperar."));

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


                    if (Client.GetRoomUser() != null)
                    {
                        Client.GetRoomUser().ApplyEffect(EffectsList.Ghost);
                        Client.GetRoomUser().Frozen = true;
                    }

                    Thread.Sleep(4000);

                    int Counter = 0;
                    while (Counter < 30)
                    {
                        if (Client == null)
                        {
                            break;
                        }

                        if (Client.GetRoomUser() == null)
                        {
                            break;
                        }

                        Counter++;
                        Thread.Sleep(1000);

                        if (Counter == 30)
                        {
                            Client.SendWhisper("Agora você pode se mover novamente!", 1);

                            if (Client.GetRoomUser() != null)
                            {
                                Client.GetRoomUser().ApplyEffect(EffectsList.None);
                                Client.GetRoomUser().CanWalk = true;
                                Client.GetRoomUser().Frozen  = false;
                            }

                            if (Client.GetRoleplay() != null)
                            {
                                Client.GetRoleplay().NeedsRespawn = false;
                            }
                            break;
                        }
                    }
                }).Start();
            }
            #endregion
        }
コード例 #25
0
ファイル: JailbreakTimer.cs プロジェクト: xjoao97/HabboRP
        /// <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();
            }
        }
コード例 #26
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            if (!Session.GetHabbo().InRoom)
            {
                return;
            }

            Room Room = Session.GetHabbo().CurrentRoom;

            if (Room == null || Session.GetHabbo().CurrentRoomId != Room.Id || !Room.CheckRights(Session, true))
            {
                return;
            }

            char[] validLetters =
            {
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
                'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', '\r'
            };

            string Map = Packet.PopString().ToLower().TrimEnd();

            if (Map.Length > 4159) //4096 + New Lines = 4159
            {
                Session.SendMessage(new RoomNotificationComposer("floorplan_editor.error", "errors", "(%%%general%%%): %%%too_large_area%%% (%%%max%%% 2048 %%%tiles%%%)"));
                return;
            }

            if (Map.Any(letter => !validLetters.Contains(letter)) || String.IsNullOrEmpty(Map))
            {
                Session.SendMessage(new RoomNotificationComposer("floorplan_editor.error", "errors", "Opa, parece que você entrou em um mapa do piso inválido!"));
                return;
            }

            var modelData = Map.Split((char)13);

            int SizeY = modelData.Length;
            int SizeX = modelData[0].Length;

            if (SizeY > 64 || SizeX > 64)
            {
                Session.SendMessage(new RoomNotificationComposer("floorplan_editor.error", "errors", "A altura e a largura máximas de um modelo são 64x64!"));
                return;
            }

            int  lastLineLength = 0;
            bool isValid        = true;

            for (int i = 0; i < modelData.Length; i++)
            {
                if (lastLineLength == 0)
                {
                    lastLineLength = modelData[i].Length;
                    continue;
                }

                if (lastLineLength != modelData[i].Length)
                {
                    isValid = false;
                }
            }

            if (!isValid)
            {
                Session.SendMessage(new RoomNotificationComposer("floorplan_editor.error", "errors", "Opa, parece que você entrou em um mapa do piso inválido!"));
                return;
            }

            int DoorX         = Packet.PopInt();
            int DoorY         = Packet.PopInt();
            int DoorDirection = Packet.PopInt();
            int WallThick     = Packet.PopInt();
            int FloorThick    = Packet.PopInt();
            int WallHeight    = Packet.PopInt();

            int DoorZ = 0;

            try
            {
                DoorZ = parse(modelData[DoorY][DoorX]);
            }
            catch { }

            if (WallThick > 1)
            {
                WallThick = 1;
            }

            if (WallThick < -2)
            {
                WallThick = -2;
            }

            if (FloorThick > 1)
            {
                FloorThick = 1;
            }

            if (FloorThick < -2)
            {
                WallThick = -2;
            }

            if (WallHeight < 0)
            {
                WallHeight = 0;
            }

            if (WallHeight > 15)
            {
                WallHeight = 15;
            }

            string ModelName = "model_bc_" + Room.Id;

            DataRow Row = null;

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT * FROM `room_models` WHERE `id` = @model AND `custom` = '1' LIMIT 1");
                dbClient.AddParameter("model", "model_bc_" + Room.Id);
                Row = dbClient.getRow();

                if (Row == null)//The row is still null, let's insert instead.
                {
                    dbClient.SetQuery("INSERT INTO `room_models` (`id`,`door_x`,`door_y`, `door_z`, `door_dir`,`heightmap`,`custom`,`wall_height`) VALUES (@ModelName, @DoorX, @DoorY, @DoorZ, @DoorDirection, @Map,'1',@WallHeight)");
                    dbClient.AddParameter("ModelName", "model_bc_" + Room.Id);
                    dbClient.AddParameter("DoorX", DoorX);
                    dbClient.AddParameter("DoorY", DoorY);
                    dbClient.AddParameter("DoorDirection", DoorDirection);
                    dbClient.AddParameter("DoorZ", DoorZ);
                    dbClient.AddParameter("Map", Map);
                    dbClient.AddParameter("WallHeight", WallHeight);
                    dbClient.RunQuery();
                }
                else
                {
                    dbClient.SetQuery("UPDATE `room_models` SET `heightmap` = @Map, `door_x` = @DoorX, `door_y` = @DoorY, `door_z` = @DoorZ,  `door_dir` = @DoorDirection, `wall_height` = @WallHeight WHERE `id` = @ModelName LIMIT 1");
                    dbClient.AddParameter("ModelName", "model_bc_" + Room.Id);
                    dbClient.AddParameter("Map", Map);
                    dbClient.AddParameter("DoorX", DoorX);
                    dbClient.AddParameter("DoorY", DoorY);
                    dbClient.AddParameter("DoorZ", DoorZ);
                    dbClient.AddParameter("DoorDirection", DoorDirection);
                    dbClient.AddParameter("WallHeight", WallHeight);
                    dbClient.RunQuery();
                }

                dbClient.SetQuery("UPDATE `rooms` SET `model_name` = @ModelName, `wallthick` = @WallThick, `floorthick` = @FloorThick WHERE `id` = '" + Room.Id + "' LIMIT 1");
                dbClient.AddParameter("ModelName", "model_bc_" + Room.Id);
                dbClient.AddParameter("WallThick", WallThick);
                dbClient.AddParameter("FloorThick", FloorThick);
                dbClient.RunQuery();
            }

            Room.RoomData.ModelName      = ModelName;
            Room.RoomData.WallThickness  = WallThick;
            Room.RoomData.FloorThickness = FloorThick;

            List <RoomUser> UsersToReturn = Room.GetRoomUserManager().GetRoomUsers().ToList();

            PlusEnvironment.GetGame().GetRoomManager().ReloadModel(ModelName);
            PlusEnvironment.GetGame().GetRoomManager().UnloadRoom(Room);

            foreach (RoomUser User in UsersToReturn)
            {
                if (User == null || User.GetClient() == null)
                {
                    continue;
                }

                RoleplayManager.SendUser(User.GetClient(), Room.Id, "A sala em que você estava estava apenas descarregada devido a um construtor de salas editando o modelo do quarto!");
            }
        }
コード例 #27
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);
                }
            }
        }
コード例 #28
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));
        }
コード例 #29
0
ファイル: KickCommand.cs プロジェクト: xjoao97/HabboRP
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            House House;

            if (!Room.TryGetHouse(out House))
            {
                Session.SendWhisper("Você não está dentro de uma casa!", 1);
                return;
            }

            if (House.OwnerId != Session.GetHabbo().Id&& !Session.GetHabbo().GetPermissions().HasRight("mod_tool"))
            {
                Session.SendWhisper("Você não é o dono da casa!", 1);
                return;
            }

            if (Params.Length == 1)
            {
                Session.SendWhisper("Digite o nome do usuário que deseja expulsar da sala.", 1);
                return;
            }

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

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

            if (TargetClient.GetRoomUser().RoomId != Room.RoomId)
            {
                Session.SendWhisper("Este usuário não está em sua casa!", 1);
                return;
            }

            if (TargetClient.GetHabbo().Username == Session.GetHabbo().Username)
            {
                Session.SendWhisper("Você não pode se expulsar da casa!", 1);
                return;
            }

            Room TargetRoom;

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(TargetClient.GetHabbo().CurrentRoomId, out TargetRoom))
            {
                return;
            }

            if (Params.Length > 2)
            {
                TargetClient.SendNotification("Você foi expulso da casa pelo seguinte motivo: " + CommandManager.MergeParams(Params, 2));
            }
            else
            {
                TargetClient.SendNotification("Você foi expulso da casa.");
            }

            if (TargetClient.GetRoomUser() != null)
            {
                if (TargetClient.GetRoomUser().RoomId == House.Sign.RoomId)
                {
                    return;
                }
            }

            RoomData roomData = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(House.Sign.RoomId);

            RoleplayManager.SendUser(TargetClient, roomData.Id);
        }
コード例 #30
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            List <string> CantSummon = new List <string>();

            int OnlineUsers = 0;

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

                if (client == Session)
                {
                    continue;
                }

                if (client.GetHabbo().CurrentRoom != null)
                {
                    if (client.GetHabbo().CurrentRoom == Room)
                    {
                        continue;
                    }

                    if (client.GetHabbo().CurrentRoom.TutorialEnabled)
                    {
                        continue;
                    }
                }

                OnlineUsers++;

                if (client.GetRoleplay().Game != null)
                {
                    CantSummon.Add(client.GetHabbo().Username);
                    continue;
                }

                if (client.GetRoleplay().IsDead)
                {
                    client.GetRoleplay().IsDead = false;
                    client.GetRoleplay().ReplenishStats(true);
                    client.GetHabbo().Poof();
                }

                if (client.GetRoleplay().IsJailed)
                {
                    client.GetRoleplay().IsJailed       = false;
                    client.GetRoleplay().JailedTimeLeft = 0;
                    client.GetHabbo().Poof();
                }

                RoleplayManager.SendUser(client, Room.Id, "Você foi convocado por " + Session.GetHabbo().Username + "!");
            }
            if (OnlineUsers > 0)
            {
                Session.Shout("*Convoca todos os usuários online para a sala*", 23);
            }
            else
            {
                Session.SendWhisper("Desculpa! Não há outros usuários online neste momento!", 1);
                return;
            }

            if (CantSummon.Count > 0)
            {
                string Users = "";

                foreach (string user in CantSummon)
                {
                    Users += user + ",";
                }

                Session.SendMessage(new MOTDNotificationComposer("Desculpe, não foi possível trazer os seguintes usuários, pois estão dentro de um Evento!\n\n " + Users));
            }
        }