예제 #1
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
        }
예제 #2
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1 && Params[0] != "checarloteria")
            {
                Session.SendWhisper("Digite um tipo de evento!", 1);
                return;
            }

            string Message;

            if (Params[0] == "checarloteria")
            {
                Message = "lottery";
            }
            else
            {
                Message = Params[1].ToString().ToLower();
            }

            switch (Message)
            {
                #region Brawl
            case "brawl":
            case "briga":
            {
                if (!RoleplayGameManager.RunningGames.ContainsKey(GameMode.Brawl))
                {
                    Session.SendWhisper("Não há evento de Briga acontecendo!", 1);
                }
                else
                {
                    var Game = RoleplayGameManager.GetGame(GameMode.Brawl);
                    if (Game.GetPlayers().Count > 0)
                    {
                        while (Game.GetPlayers().Count > 0)
                        {
                            foreach (var player in Game.GetPlayers())
                            {
                                var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(player);

                                if (Client != null)
                                {
                                    if (Client.GetRoomUser() != null)
                                    {
                                        Client.GetRoomUser().ClearMovement(true);
                                    }
                                    RoleplayManager.SpawnChairs(Client, "es_bench");
                                    Game.RemovePlayerFromGame(Client);
                                }

                                if (Game.GetPlayers().Contains(player))
                                {
                                    Game.GetPlayers().Remove(player);
                                }
                                break;
                            }

                            if (Game.GetPlayers().Count <= 0)
                            {
                                break;
                            }
                        }
                    }
                    RoleplayGameManager.StopGame(GameMode.Brawl);
                    Session.SendWhisper("Você parou o Evento de Briga!", 1);
                }
                break;
            }
                #endregion

                #region Team Brawl
            case "teambrawl":
            case "tbrawl":
            case "tb":
            case "brigatimes":
            case "bt":
            case "brigadetimes":
            {
                if (!RoleplayGameManager.RunningGames.ContainsKey(GameMode.TeamBrawl))
                {
                    Session.SendWhisper("Não há um evento de Briga de Times acontecendo!", 1);
                }
                else
                {
                    var Game = RoleplayGameManager.GetGame(GameMode.TeamBrawl);
                    if (Game.GetPlayers().Count > 0)
                    {
                        while (Game.GetPlayers().Count > 0)
                        {
                            foreach (var Player in Game.GetPlayers())
                            {
                                var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Player);

                                if (Client != null)
                                {
                                    Game.RemovePlayerFromGame(Client);
                                    RoleplayManager.SpawnChairs(Client, "es_bench");
                                }
                                if (Game.GetPlayers().Contains(Player))
                                {
                                    Game.GetPlayers().Remove(Player);
                                }
                                break;
                            }

                            if (Game.GetPlayers().Count <= 0)
                            {
                                break;
                            }
                        }
                    }
                    RoleplayGameManager.StopGame(GameMode.TeamBrawl);
                    Session.SendWhisper("Você parou o Evento Briga de Times!", 1);
                }
                break;
            }
                #endregion

                #region Colour Wars
            case "colorwars":
            case "colourwars":
            case "cw":
            case "guerradecores":
            case "guerracores":
            case "gc":
            {
                if (!RoleplayGameManager.RunningGames.ContainsKey(GameMode.ColourWars))
                {
                    Session.SendWhisper("Não há nenhum evento de Guerra de Cores acontecendo!", 1);
                }
                else
                {
                    var Game = RoleplayGameManager.GetGame(GameMode.ColourWars);
                    if (Game.GetPlayers().Count > 0)
                    {
                        while (Game.GetPlayers().Count > 0)
                        {
                            foreach (var Player in Game.GetPlayers())
                            {
                                var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Player);

                                if (Client != null)
                                {
                                    Game.RemovePlayerFromGame(Client);
                                }

                                if (Game.GetPlayers().Contains(Player))
                                {
                                    Game.GetPlayers().Remove(Player);
                                }
                                break;
                            }

                            if (Game.GetPlayers().Count <= 0)
                            {
                                break;
                            }
                        }
                    }
                    RoleplayGameManager.StopGame(GameMode.ColourWars);
                    Session.SendWhisper("Você parou o Evento Guerra de Cores!", 1);
                }
                break;
            }
                #endregion

                #region Mafia Wars
            case "mafiawars":
            case "mwars":
            case "mw":
            case "gm":
            case "guerramafia":
            case "guerrademafias":
            case "guerrademafia":
            {
                if (!RoleplayGameManager.RunningGames.ContainsKey(GameMode.MafiaWars))
                {
                    Session.SendWhisper("Não há um evento de Guerra de Máfias acontecendo!", 1);
                }
                else
                {
                    var Game = RoleplayGameManager.GetGame(GameMode.MafiaWars);
                    if (Game.GetPlayers().Count > 0)
                    {
                        while (Game.GetPlayers().Count > 0)
                        {
                            foreach (var Player in Game.GetPlayers())
                            {
                                var Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Player);

                                if (Client != null)
                                {
                                    Game.RemovePlayerFromGame(Client);
                                }

                                if (Game.GetPlayers().Contains(Player))
                                {
                                    Game.GetPlayers().Remove(Player);
                                }
                                break;
                            }

                            if (Game.GetPlayers().Count <= 0)
                            {
                                break;
                            }
                        }
                    }
                    RoleplayGameManager.StopGame(GameMode.MafiaWars);
                    Session.SendWhisper("Você parou o Evento Guerra de Máfias!", 1);
                }
                break;
            }
                #endregion

                #region Purge

            case "purge":
            case "purga":
            case "tempodepurga":
            case "purg":
            {
                if (!RoleplayManager.PurgeStarted)
                {
                    Session.SendWhisper("Este não há um evento de Purga acontecendo agora!");
                    break;
                }

                try
                {
                    lock (PlusEnvironment.GetGame().GetClientManager().GetClients)
                    {
                        foreach (GameClient client in PlusEnvironment.GetGame().GetClientManager().GetClients.ToList())
                        {
                            if (client == null)
                            {
                                continue;
                            }

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

                            client.SendWhisper("Um membro da Equipe terminou o Evento de Purga. Nós esperamos que você tenha aproveitado! ;)", 34);
                        }
                    }

                    RoleplayManager.PurgeStarted = false;
                }
                catch (Exception e)
                {
                    Logging.LogCriticalException("Erro ao parar a purga: " + e);
                }
                break;
            }

                #endregion

                #region Lottery
            case "lottery":
            case "loteria":
            {
                if (!LotteryManager.LotteryFull())
                {
                    Session.SendWhisper("Nem todos os bilhetes foram vendidos! [" + LotteryManager.LotteryTickets.Count + "/" + LotteryManager.TicketLimit + "]", 1);
                    break;
                }
                else
                {
                    int Winner = LotteryManager.GetWinner();
                    LotteryManager.GivePrize(Winner);
                    LotteryManager.ClearLottery();
                    Session.SendWhisper("A loteria foi limpa com sucesso!", 1);
                }

                break;
            }
                #endregion

            default:
            {
                Session.SendWhisper("Este tipo de evento não existe ou está desabilitado!", 1);
                break;
            }
            }
        }