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); }
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; }