コード例 #1
0
ファイル: TexasHoldEmTimer.cs プロジェクト: xjoao97/HabboRP
        public bool CheckPlayers(TexasHoldEm Game)
        {
            bool Failed = false;

            try
            {
                if (Game == null || !Game.GameStarted || !TexasHoldEmManager.GameList.ContainsKey(Game.GameId))
                {
                    return(true);
                }

                foreach (var Pair in Game.PlayerList)
                {
                    if (Pair.Value == null || Pair.Value.UserId <= 0)
                    {
                        continue;
                    }

                    GameClient Player = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Pair.Value.UserId);

                    if (Player == null || Player.GetHabbo() == null || Player.GetRoleplay() == null || Player.GetRoleplay().TexasHoldEmPlayer <= 0 || Player.GetRoomUser() == null || Player.GetRoomUser().GetRoom() == null)
                    {
                        if (Player != null && Player.GetRoleplay() != null)
                        {
                            Player.GetRoleplay().TexasHoldEmPlayer = 0;
                        }

                        if (Game.PlayersTurn == Pair.Key)
                        {
                            Game.ChangeTurn();
                        }

                        ConcurrentDictionary <int, TexasHoldEmItem> Data;
                        if (Pair.Key == 1)
                        {
                            Data = Game.Player1;
                        }
                        else if (Pair.Key == 2)
                        {
                            Data = Game.Player2;
                        }
                        else
                        {
                            Data = Game.Player3;
                        }

                        if (Data != null)
                        {
                            foreach (var Item in Data.Values)
                            {
                                if (Item.Furni != null)
                                {
                                    Item.Furni.ExtraData = "0";
                                    Item.Furni.UpdateState(false, true);
                                }

                                Item.Rolled = false;
                                Item.Value  = 0;
                            }
                        }


                        Game.RemoveBetFurni(Pair.Key);
                        Game.PlayerList.TryUpdate(Pair.Key, new TexasHoldEmPlayer(0, Game.PlayerList[Pair.Key].CurrentBet, Game.PlayerList[Pair.Key].TotalAmount), Pair.Value);
                        Failed = true;
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Logging.LogRPGamesError("Error in CheckPlayers() void: " + e);
            }

            return(Failed);
        }
コード例 #2
0
ファイル: GamblingCommand.cs プロジェクト: xjoao97/HabboRP
        public void ExecuteBet(GameClients.GameClient Session, Rooms.Room Room, string[] Params, TexasHoldEm Game)
        {
            if (Game.GameSequence <= 0 || Game.GameSequence > 2)
            {
                Session.SendWhisper("Você não pode fazer uma aposta (ou passar) agora!", 1);
                return;
            }

            int Number = Session.GetRoleplay().TexasHoldEmPlayer;

            if (Game.PlayersTurn != Number)
            {
                Session.SendWhisper("Não é a sua vez no jogo!", 1);
                return;
            }

            if (!Game.PlayerList.ContainsKey(Number))
            {
                return;
            }

            var Player = Game.PlayerList[Number];

            if (Player == null || Player.UserId != Session.GetHabbo().Id)
            {
                return;
            }

            if (Player.TotalAmount <= 0)
            {
                // Already has all their chips in (or has the maximum bet rn)
                Game.ChangeTurn();
                return;
            }

            bool Zero = false;

            if (Params.Length > 1 && Params[1].ToLower() == "0")
            {
                Zero = true;
            }

            if (Params[0].ToLower() == "passar" && Game.MinimumBet(Number) > 0)
            {
                Session.SendWhisper("Você não pode passar neste turno! Você deve :apostar ou :sairjogo!", 1);
                return;
            }

            if (Game.MinimumBet(Number) == 0 && (Params.Length == 1 || Params[0].ToLower() == "passar" || Zero))
            {
                // Doesnt need to make a bet, can pass
                Game.ChangeTurn();
                return;
            }

            if (Params.Length == 1)
            {
                Session.SendWhisper("Digite o valor que você gostaria de apostar!", 1);
                return;
            }

            int Amount;

            if (!int.TryParse(Params[1], out Amount))
            {
                Session.SendWhisper("Por favor insira um número válido como o valor que você gostaria de apostar!", 1);
                return;
            }

            // Check if its a multiple of 5
            if (Convert.ToDouble((double)Amount / 5) != Math.Floor(Convert.ToDouble((double)Amount / 5)))
            {
                Session.SendWhisper("Você só pode apostar dinheiro em múltiplos de 5!", 1);
                return;
            }

            if (Player.TotalAmount < Amount)
            {
                Amount = Player.TotalAmount;
            }

            if (Amount < Game.MinimumBet(Number) && Amount != Player.TotalAmount)
            {
                Session.SendWhisper("Você deve apostar pelo menos R$" + String.Format("{0:N0}", Game.MinimumBet(Number)) + " para combinar o pote atual!", 1);
                return;
            }

            if (Session.GetHabbo().Credits < Amount)
            {
                Session.SendWhisper("Você não tem tanto dinheiro para apostar!", 1);
                return;
            }

            Session.Shout("*Faz uma aposta de R$" + String.Format("{0:N0}", Amount) + " para os jogos Pot*", 4);

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

            Game.PlacePotFurni(Number, Amount);
            Game.SpawnStartingBet(Number);
            Game.ChangeTurn();
            return;
        }