修复21点中的结算错误
This commit is contained in:
@@ -1283,7 +1283,8 @@ class Database:
|
||||
'bet_id': bet['id']
|
||||
})
|
||||
total_win += actual_win
|
||||
elif not player_is_busted and player_points != banker_points:
|
||||
elif player_points != banker_points:
|
||||
# 输家:包括爆牌或点数小于庄家
|
||||
losers.append({
|
||||
'user_id': user_id,
|
||||
'amount': bet['amount'],
|
||||
@@ -1322,7 +1323,16 @@ class Database:
|
||||
self.add_points(user_id, bet['amount'], 'casino_blackjack_push',
|
||||
"21点游戏平局,返还下注")
|
||||
|
||||
result_str = f"庄家{banker_points}点 vs 玩家{player_points}点"
|
||||
# 生成结果字符串,包含玩家状态信息
|
||||
if player_is_busted:
|
||||
player_desc = "爆牌"
|
||||
elif player_is_blackjack:
|
||||
player_desc = f"{player_points}点(黑杰克)"
|
||||
else:
|
||||
player_desc = f"{player_points}点"
|
||||
|
||||
banker_desc = "爆牌" if banker_is_busted else (f"{banker_points}点(黑杰克)" if banker_is_blackjack else f"{banker_points}点")
|
||||
result_str = f"庄家{banker_desc} vs 玩家{player_desc}"
|
||||
|
||||
if is_win:
|
||||
win_amount = int(bet['amount'] * multiplier)
|
||||
@@ -1334,14 +1344,15 @@ class Database:
|
||||
SET status = 'settled', result = ?, win_amount = ?, settled_at = ?
|
||||
WHERE id = ?
|
||||
""", (result_str, actual_win, current_time, bet['id']))
|
||||
elif not player_is_busted and player_points != banker_points:
|
||||
elif player_points == banker_points:
|
||||
# 平局,已返还下注(在上面的逻辑中已处理)
|
||||
cursor.execute("""
|
||||
UPDATE casino_bets
|
||||
SET status = 'settled', result = ?, settled_at = ?
|
||||
WHERE id = ?
|
||||
""", (result_str, current_time, bet['id']))
|
||||
else:
|
||||
# 平局,已返还下注
|
||||
# 输家:包括爆牌或点数小于庄家
|
||||
cursor.execute("""
|
||||
UPDATE casino_bets
|
||||
SET status = 'settled', result = ?, settled_at = ?
|
||||
|
||||
Reference in New Issue
Block a user