Пример #1
0
        /// <summary>
        /// Generates a new game
        /// </summary>
        /// <param name="gameMode"></param>
        /// <returns></returns>
        private static IGame GetNewGame(GameMode gameMode)
        {
            switch (gameMode)
            {
            case GameMode.HungerGames:
                return(new HungerGames(Convert.ToInt32(RoleplayData.GetData("hungergames", "usersrequired")), GameMode.HungerGames));

            case GameMode.Brawl:
                return(new Brawl(Convert.ToInt32(RoleplayData.GetData("brawl", "usersrequired")), GameMode.Brawl));

            case GameMode.ColourWars:
                return(new ColourWars(Convert.ToInt32(RoleplayData.GetData("colourwars", "usersrequired")), GameMode.ColourWars));

            case GameMode.MafiaWars:
                return(new MafiaWars(Convert.ToInt32(RoleplayData.GetData("mafiawars", "usersrequired")), GameMode.MafiaWars));

            case GameMode.TeamBrawl:
                return(new TeamBrawl(Convert.ToInt32(RoleplayData.GetData("teambrawl", "usersrequired")), GameMode.TeamBrawl));

            case GameMode.SoloQueue:
                return(new SoloQueue(2, GameMode.SoloQueue));

            case GameMode.SoloQueueGuns:
                return(new SoloQueueGuns(2, GameMode.SoloQueueGuns));

            default:
                return(null);
            }
        }
Пример #2
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);
        }
Пример #3
0
        /// <summary>
        /// Creates a game based on the string gameMode
        /// </summary>
        /// <param name="gameMode"></param>
        /// <returns></returns>
        public static IGame CreateGame(string gameMode)
        {
            GameMode mode = GameList.GetGameModeType(gameMode);
            IGame    game = GetNewGame(mode);

            if (game == null || RunningGames.ContainsKey(mode))
            {
                return(null);
            }

            string EventData = RoleplayData.GetData("eventslobby", gameMode);

            if (EventData != null)
            {
                int EventsLobby = Convert.ToInt32(EventData);
                var EventsRoom  = RoleplayManager.GenerateRoom(EventsLobby);

                if (EventsRoom != null)
                {
                    EventsRoom.RoleplayEvent          = game;
                    EventsRoom.RoomData.RoleplayEvent = EventsRoom.RoleplayEvent;
                    PlusEnvironment.GetGame().GetRoomManager().UpdateRoom(EventsRoom);
                }
            }

            RunningGames.Add(mode, game);

            if (GameTick == null || GameTick.ThreadState != ThreadState.Running)
            {
                GameTick = new Thread(TickGames);
                GameTick.Start();
            }

            return(game);
        }
Пример #4
0
        /// <summary>
        /// Gets the coins from the users dead body
        /// </summary>
        public int GetCoins(GameClient TargetClient, RoleplayBot Bot = null)
        {
            if (TargetClient != null && TargetClient.GetHabbo() != null)
            {
                if (TargetClient.GetHabbo().VIPRank > 1)
                {
                    return(0);
                }

                if (TargetClient.GetHabbo().Credits < 3)
                {
                    return(0);
                }
            }

            if (Bot != null)
            {
                int MinMoney = Convert.ToInt32(RoleplayData.GetData("bots", "minmoney"));
                int MaxMoney = Convert.ToInt32(RoleplayData.GetData("bots", "maxmoney"));

                if (MaxMoney == 0)
                {
                    return(0);
                }

                CryptoRandom Random = new CryptoRandom();
                return(Random.Next(MinMoney, (MaxMoney + 1)));
            }

            return(TargetClient.GetHabbo().Credits / 3);
        }
Пример #5
0
        /// <summary>
        /// Adds exp to the farming skill
        /// </summary>
        public static void AddEXP(GameClient Session, int Amount)
        {
            try
            {
                Amount = Convert.ToInt32(RoleplayData.GetData("farming", "modifier")) * Amount;

                if (Session != null && Session.GetRoleplay() != null)
                {
                    Session.GetRoleplay().FarmingStats.Exp += Amount;

                    if (LevelUp(Session))
                    {
                        Session.GetRoleplay().FarmingStats.Level += 1;
                        Session.SendWhisper("Você acabou de upar sua agricultura! Agora é Nível: " + Session.GetRoleplay().FarmingStats.Level + ".");
                    }
                    else
                    {
                        Session.SendWhisper("Você recebeu " + Amount + " XP! para o seu próximo nível, você precisa " + (levels[Session.GetRoleplay().FarmingStats.Level + 1] - Session.GetRoleplay().FarmingStats.Exp) + "XP para alcançar " + (Session.GetRoleplay().FarmingStats.Level + 1), 1);
                    }
                }
            }
            catch
            {
            }
        }
Пример #6
0
        public static void AddStrengthEXP(GameClient Session, int amount)
        {
            try
            {
                amount = Convert.ToInt32(RoleplayData.GetData("strength", "modifier")) * amount;

                if (Session != null && Session.GetRoleplay() != null)
                {
                    Session.GetRoleplay().StrengthEXP += amount;

                    if (LevelUp(Session, "strength"))
                    {
                        Session.GetRoleplay().Strength += 1;
                        Session.Shout("*Se sente um pouco mais forte [+1 Força]*", 4);
                    }
                    else
                    {
                        Session.SendWhisper("Malhando: " + String.Format("{0:N0}", Session.GetRoleplay().StrengthEXP) + "/" + String.Format("{0:N0}", (StrengthLevels[Session.GetRoleplay().Strength + 1])), 1);
                    }
                }
            }
            catch
            {
            }
        }
Пример #7
0
        public static void AddStaminaEXP(GameClient Session, int amount)
        {
            try
            {
                amount = Convert.ToInt32(RoleplayData.GetData("stamina", "modifier")) * amount;

                if (Session != null && Session.GetRoleplay() != null)
                {
                    Session.GetRoleplay().StaminaEXP += amount;

                    if (LevelUp(Session, "stamina"))
                    {
                        Session.GetRoleplay().Stamina  += 1;
                        Session.GetRoleplay().MaxEnergy = (100 + Session.GetRoleplay().Stamina * 5);
                        Session.Shout("*Se senta com mais vida [+1 Vigor]*", 4);
                    }
                    else
                    {
                        Session.SendWhisper("Malhando: " + String.Format("{0:N0}", Session.GetRoleplay().StaminaEXP) + "/" + String.Format("{0:N0}", (StaminaLevels[Session.GetRoleplay().Stamina + 1])), 1);
                    }
                }
            }
            catch
            {
            }
        }
Пример #8
0
        public static void AddIntelligenceEXP(GameClient Session, int amount)
        {
            try
            {
                amount = Convert.ToInt32(RoleplayData.GetData("intelligence", "modifier")) * amount;

                if (Session != null && Session.GetRoleplay() != null)
                {
                    Session.GetRoleplay().IntelligenceEXP += amount;

                    if (LevelUp(Session, "intelligence"))
                    {
                        Session.GetRoleplay().Intelligence += 1;
                        Session.Shout("*Se sente um pouco mais inteligente [+1 Inteligência]*", 4);
                    }
                    else
                    {
                        Session.SendWhisper("Lendo: " + String.Format("{0:N0}", Session.GetRoleplay().IntelligenceEXP) + "/" + String.Format("{0:N0}", (IntelligenceLevels[Session.GetRoleplay().Intelligence + 1])), 1);
                    }
                }
            }
            catch
            {
            }
        }
Пример #9
0
        public static void AddLevelEXP(GameClient Session, int amount)
        {
            try
            {
                Session.GetRoleplay().RefreshStatDialogue();
                amount = Convert.ToInt32(RoleplayData.GetData("level", "modifier")) * amount;

                if (Session != null && Session.GetRoleplay() != null)
                {
                    Session.GetRoleplay().LevelEXP += amount;

                    if (LevelUp(Session, "level"))
                    {
                        Session.GetRoleplay().Level += 1;
                        Session.GetRoleplay().RefreshStatDialogue();

                        if (PlusEnvironment.GetGame().GetCacheManager().ContainsUser(Session.GetHabbo().Id))
                        {
                            PlusEnvironment.GetGame().GetCacheManager().TryUpdateUser(Session);
                        }

                        Session.SendWhisper("Você upou seu nível, agora você é Nível: " + Session.GetRoleplay().Level + ".");
                    }
                    else
                    {
                        Session.SendWhisper("Você recebeu " + String.Format("{0:N0}", amount) + "XP! você precisa de " + String.Format("{0:N0}", (Levels[Session.GetRoleplay().Level + 1] - Session.GetRoleplay().LevelEXP)) + " para ir para o nível " + (Session.GetRoleplay().Level + 1), 1);
                    }
                }
            }
            catch
            {
            }
        }
Пример #10
0
        public override void HandleRequest(GameClient Client, string Message)
        {
            if (!OnDuty)
            {
                return;
            }

            if (GetBotRoleplay().WalkingToItem)
            {
                return;
            }

            if (RespondToSpeech(Client, Message))
            {
                return;
            }

            string Name        = GetBotRoleplay().Name.ToLower();
            int    WeedCost    = Convert.ToInt32(RoleplayData.GetData("drugs", "weedcost"));
            int    CocaineCost = Convert.ToInt32(RoleplayData.GetData("drugs", "cocainecost"));

            if (Message.ToLower() == Name)
            {
                GetRoomUser().Chat("Sim " + Client.GetHabbo().Username + ", você quer me vender drogas?", true);
            }
            else if (Message.ToLower() == "droga" || Message.ToLower() == "drogas" || Message.ToLower() == "valor")
            {
                string WhisperMessage = "Atualmente, estou comprando 10g de maconha por R$" + String.Format("{0:N0}", WeedCost) + " e 10g de cocaína por R$" + String.Format("{0:N0}", CocaineCost) + "!";
                Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
            }
            else if (Message.ToLower() == "maconha")
            {
                if (Client.GetRoleplay().Weed < 15)
                {
                    string WhisperMessage = "Você não tem 15g de maconha para me vender!";
                    Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                    return;
                }

                Client.GetRoleplay().Weed -= 10;
                Client.GetHabbo().Credits += WeedCost;
                Client.GetHabbo().UpdateCreditsBalance();
                GetRoomUser().Chat("*Compra 10g de maconha de " + Client.GetHabbo().Username + " por R$" + String.Format("{0:N0}", WeedCost) + "*", true);
            }
            else if (Message.ToLower() == "cocaina")
            {
                if (Client.GetRoleplay().Cocaine < 15)
                {
                    string WhisperMessage = "Você não tem 15g de cocaína para me vender!";
                    Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2));
                    return;
                }

                Client.GetRoleplay().Cocaine -= 15;
                Client.GetHabbo().Credits    += CocaineCost;
                Client.GetHabbo().UpdateCreditsBalance();
                GetRoomUser().Chat("*Compra 15g de cocaína de " + Client.GetHabbo().Username + " por R$" + String.Format("{0:N0}", CocaineCost) + "*", true);
            }
        }
Пример #11
0
        public bool TeamCanBeJoined(RoleplayTeam team)
        {
            if (team.Members.Count >= Convert.ToInt32(RoleplayData.GetData("teambrawl", "maxusersperteam")))
            {
                return(false);
            }

            return(true);
        }
Пример #12
0
        public InvitationTimer(string Type, int Time, bool Forever, object[] Params)
            : base(Type, Time, Forever, Params)
        {
            // 3 minutes converted to milliseconds
            int InvitationTime = Convert.ToInt32(RoleplayData.GetData("court", "invitationtime"));

            TimeLeft  = InvitationTime * 60000;
            TimeCount = 0;
        }
Пример #13
0
        public JailbreakTimer(string Type, int Time, bool Forever, object[] Params)
            : base(Type, Time, Forever, Params)
        {
            // minutes converted to miliseconds
            int JailbreakTime = Convert.ToInt32(RoleplayData.GetData("jailbreak", "timer"));

            TimeLeft  = JailbreakTime * 60000;
            TimeCount = 0;
        }
Пример #14
0
        public void GenerateTeams()
        {
            string greenTeamData = RoleplayData.GetData("mafiawars", "green").ToString();
            string blueTeamData  = RoleplayData.GetData("mafiawars", "blue").ToString();

            RoleplayTeam green = new RoleplayTeam("Verde", greenTeamData.Split(';'));
            RoleplayTeam blue  = new RoleplayTeam("Azul", blueTeamData.Split(';'));

            Game.Teams.Add(green.Name, green);
            Game.Teams.Add(blue.Name, blue);
        }
Пример #15
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;
            }
        }
Пример #16
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            #region Variables
            int Cost        = LotteryManager.Cost;
            int LotteryRoom = Convert.ToInt32(RoleplayData.GetData("bank", "room")); //bank = lottery
            #endregion

            #region Conditions
            if (Room.Id != LotteryRoom)
            {
                Session.SendWhisper("Você deve estar na loja da loteria para comprar um bilhete!", 1);
                return;
            }

            if (Session.GetHabbo().Credits < Cost)
            {
                Session.SendWhisper("Você não tem dinheiro suficiente para comprar um bilhete!", 1);
                return;
            }

            if (LotteryManager.LotteryTickets.ContainsKey(Session.GetHabbo().Id))
            {
                Session.SendWhisper("Você já comprou um bilhete para esta loteria!", 1);
                return;
            }

            if (LotteryManager.LotteryFull())
            {
                Session.SendWhisper("Desculpe, mas não há tickets para venda!", 1);
                return;
            }
            #endregion

            #region Execute
            int TicketId = LotteryManager.LotteryTickets.Count + 1;

            LotteryManager.LotteryTickets.TryAdd(Session.GetHabbo().Id, TicketId);
            Session.Shout("*Compra um bilhete de loteria da loja*", 4);

            Session.GetHabbo().Credits -= Cost;
            Session.GetHabbo().UpdateCreditsBalance();

            using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("INSERT INTO `rp_lottery` VALUES (@user, @ticket)");
                dbClient.AddParameter("user", Session.GetHabbo().Id);
                dbClient.AddParameter("ticket", TicketId);
                dbClient.RunQuery();
            }
            #endregion
        }
Пример #17
0
        /// <summary>
        /// Sends out a hotel alert based on the gamemode
        /// </summary>
        /// <param name="Mode"></param>
        public static void EventAlert(IGame Game)
        {
            int GameRoom;

            if (int.TryParse(RoleplayData.GetData("eventslobby", Game.GetName().Replace(" ", "").ToLower()), out GameRoom))
            {
                var Room = RoleplayManager.GenerateRoom(GameRoom);

                if (Room != null)
                {
                    PlusEnvironment.GetGame().GetClientManager().SendMessage(new RoomNotificationComposer(null, "event", "", 0, Game.GetGameMode(), Room));
                }
            }
        }
Пример #18
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;
            }
        }
Пример #19
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int ClothingRoom = Convert.ToInt32(RoleplayData.GetData("clothing", "roomid"));

            if (Session.GetRoomUser() == null || !Session.GetHabbo().InRoom)
            {
                Session.SendNotification("Você so pode mudar seu visual na Loja de Roupas! [Quarto ID: " + ClothingRoom + "]");
            }

            if (Session.GetRoomUser().RoomId != ClothingRoom)
            {
                Session.SendNotification("Você so pode mudar seu visual na Loja de Roupas! [Quarto ID: " + ClothingRoom + "]");
            }

            Session.SendMessage(new WardrobeComposer(Session));
        }
Пример #20
0
        /// <summary>
        /// Removes the cooldown
        /// </summary>
        public override void Execute()
        {
            if (base.Client == null || base.Client.GetRoleplay() == null || base.Client.GetHabbo() == null)
            {
                base.EndCooldown();
                return;
            }

            TimeLeft -= Convert.ToInt32(RoleplayData.GetData("farming", "cooldown"));

            if (TimeLeft > 0)
            {
                return;
            }

            base.EndCooldown();
        }
Пример #21
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);
        }
Пример #22
0
        public void GenerateTeams()
        {
            string pinkTeamData   = RoleplayData.GetData("hungergames", "pink").ToString();
            string greenTeamData  = RoleplayData.GetData("hungergames", "green").ToString();
            string blueTeamData   = RoleplayData.GetData("hungergames", "blue").ToString();
            string yellowTeamData = RoleplayData.GetData("hungergames", "yellow").ToString();

            RoleplayTeam pink   = new RoleplayTeam("Rosa", pinkTeamData.Split(';'));
            RoleplayTeam green  = new RoleplayTeam("Verde", greenTeamData.Split(';'));
            RoleplayTeam blue   = new RoleplayTeam("Azul", blueTeamData.Split(';'));
            RoleplayTeam yellow = new RoleplayTeam("Amarelo", yellowTeamData.Split(';'));

            Game.Teams.Add(pink.Name, pink);
            Game.Teams.Add(green.Name, green);
            Game.Teams.Add(blue.Name, blue);
            Game.Teams.Add(yellow.Name, yellow);
        }
Пример #23
0
        public void SendToPoint(GameClient Client)
        {
            try
            {
                if (Client == null || Client.GetRoleplay() == null || Client.GetHabbo() == null || Client.GetRoomUser() == null)
                {
                    return;
                }

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

                int SpawnX = 0;
                int SpawnY = 0;

                if (Client.GetRoleplay().Game.GetGameMode() == GameMode.ColourWars)
                {
                    SpawnX = Convert.ToInt32(RoleplayData.GetData("colourwarspoint", Name.ToLower() + "spawnx"));
                    SpawnY = Convert.ToInt32(RoleplayData.GetData("colourwarspoint", Name.ToLower() + "spawny"));
                }
                else if (Client.GetRoleplay().Game.GetGameMode() == GameMode.TeamBrawl)
                {
                    SpawnX = Convert.ToInt32(RoleplayData.GetData("teambrawlpoint", Name.ToLower() + "spawnx"));
                    SpawnY = Convert.ToInt32(RoleplayData.GetData("teambrawlpoint", Name.ToLower() + "spawny"));
                }
                else if (Client.GetRoleplay().Game.GetGameMode() == GameMode.MafiaWars)
                {
                    SpawnX = Convert.ToInt32(RoleplayData.GetData("mafiawarspoint", Name.ToLower() + "spawnx"));
                    SpawnY = Convert.ToInt32(RoleplayData.GetData("mafiawarspoint", Name.ToLower() + "spawny"));
                }

                var OldCoord = new Point(Client.GetRoomUser().Coordinate.X, Client.GetRoomUser().Coordinate.Y);
                var NewCoord = new Point(SpawnX, SpawnY);

                Client.GetHabbo().CurrentRoom.GetGameMap().UpdateUserMovement(OldCoord, NewCoord, Client.GetRoomUser());
                Client.GetRoomUser().SetPos(SpawnX, SpawnY, Client.GetHabbo().CurrentRoom.GetGameMap().GetHeightForSquare(NewCoord));
            }
            catch (Exception e)
            {
                Logging.LogRPGamesError("Error in SendToPoint() void: " + e);
            }
        }
Пример #24
0
        /// <summary>
        /// Initiates the bots death
        /// </summary>
        public void InitiateDeath()
        {
            this.Dead          = true;
            this.UserAttacking = null;
            this.TimerManager.EndAllTimers();
            this.CurHealth = this.MaxHealth;

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

            if (Bot == null)
            {
                return;
            }

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

            RoleplayBotManager.TransportDeployedBot(Bot, HospitalRoomId, true);
            this.TimerManager.CreateTimer("botdeath", this, 1000, true);
        }
Пример #25
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;
            }
        }
Пример #26
0
        public void TutorialBadge(GameClient Client, object[] Params)
        {
            Room Room = (Room)Params[0];

            int FinalTutorialRoom = Convert.ToInt32(RoleplayData.GetData("tutorial", "finishroomid"));

            if (Room == null)
            {
                return;
            }

            if (Room.Id != FinalTutorialRoom)
            {
                return;
            }

            if (Client == null || Client.GetHabbo() == null || Client.GetHabbo().GetBadgeComponent() == null)
            {
                return;
            }

            Client.GetHabbo().GetBadgeComponent().GiveBadge("BR248", true, Client);
            Client.SendNotification("You have just been awarded the 'Tutorial Master' badge for completing the tutorial!\n\nCongratulations!");
        }
Пример #27
0
        /// <summary>
        /// Ends the jailbreak
        /// </summary>
        public override void Execute()
        {
            try
            {
                if (!JailbreakManager.JailbreakActivated)
                {
                    base.EndTimer();
                    return;
                }

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

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

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

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

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

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

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

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

                        MessagePoliceOfficers();

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

                TimeCount++;
                TimeLeft -= 1000;

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

                        TimeCount = 0;
                    }
                    return;
                }

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

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

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

                    if (Room != null)
                    {
                        JailbreakManager.GenerateFence(Room);
                    }
                    JailbreakManager.FenceBroken = false;
                }
                JailbreakManager.JailbreakActivated = false;
                JailbreakManager.UserJailbreaking   = null;
                base.EndTimer();
                return;
            }
            catch (Exception e)
            {
                Logging.LogRPTimersError("Error in Execute() void: " + e);
                base.EndTimer();
            }
        }
Пример #28
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);
                }
            }
        }
Пример #29
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
        }
Пример #30
0
        /// <summary>
        /// Decrease our users timer
        /// </summary>
        public override void Execute()
        {
            try
            {
                if (base.Client == null || base.Client.GetHabbo() == null || base.Client.GetRoleplay() == null)
                {
                    base.EndTimer();
                    return;
                }

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

                if (!base.Client.GetRoleplay().IsDead)
                {
                    Client.GetRoleplay().UpdateTimerDialogue("Dead-Timer", "remove", Client.GetRoleplay().DeadTimeLeft, OriginalTime);

                    if (base.Client.GetRoomUser().Frozen)
                    {
                        base.Client.GetRoomUser().Frozen = false;
                    }

                    if (base.Client.GetHabbo().CurrentRoomId == Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2")))
                    {
                        RoleplayManager.SpawnChairs(base.Client, "pura_mdl3*4");
                    }

                    base.Client.GetRoleplay().BeingHealed  = false;
                    base.Client.GetRoleplay().IsDead       = false;
                    base.Client.GetRoleplay().DeadTimeLeft = 0;
                    base.Client.GetRoleplay().ReplenishStats(true);
                    base.EndTimer();
                    return;
                }

                if (!base.Client.GetRoomUser().Frozen)
                {
                    base.Client.GetRoomUser().Frozen = true;
                }

                if (base.Client.GetRoleplay().BeingHealed)
                {
                    return;
                }

                TimeCount++;
                TimeLeft -= 1000;

                if (TimeCount == 60)
                {
                    base.Client.GetRoleplay().DeadTimeLeft--;
                }

                if (TimeLeft > 0)
                {
                    if (TimeCount == 60)
                    {
                        Client.GetRoleplay().UpdateTimerDialogue("Dead-Timer", "decrement", Client.GetRoleplay().DeadTimeLeft, OriginalTime);
                        base.Client.SendWhisper("Você tem " + base.Client.GetRoleplay().DeadTimeLeft + " minuto(s) para ser liberado do hospital", 1);
                        TimeCount = 0;
                    }
                    return;
                }

                if (base.Client.GetRoomUser().Frozen)
                {
                    base.Client.GetRoomUser().Frozen = false;
                }

                if (base.Client.GetRoomUser().RoomId == Convert.ToInt32(RoleplayData.GetData("hospital", "roomid2")))
                {
                    RoleplayManager.SpawnChairs(base.Client, "pura_mdl3*4");
                }

                Client.GetRoleplay().UpdateTimerDialogue("Dead-Timer", "remove", Client.GetRoleplay().DeadTimeLeft, OriginalTime);

                RoleplayManager.Shout(base.Client, "*Recupera a consciência*", 4);
                Client.SendWhisper("Seu visual voltará ao original após sair do quarto!", 1);
                base.Client.GetRoleplay().BeingHealed  = false;
                base.Client.GetRoleplay().IsDead       = false;
                base.Client.GetRoleplay().DeadTimeLeft = 0;
                base.Client.GetRoleplay().ReplenishStats(true);
                base.EndTimer();
            }
            catch (Exception e)
            {
                Logging.LogRPTimersError("Error in Execute() void: " + e);
                base.EndTimer();
            }
        }