賭博系統
賭博系統為 EliteMobs 新增了一個功能完整的賭場。玩家可以在四種不同的小遊戲中用精英硬幣下注,在資金耗盡時會累積債務,當討債人找上門時就必須面對後果。伺服器管理員可以設定系統的每個方面,從賠率倍數到債務上限。
設定
賭博系統透過特殊設定的 NPC 來存取。每個遊戲和顯示都有其自己的 NPC 互動類型。
要設定賭博 NPC,請建立一個 NPC 設定檔並將 interactionType 設定為以下值之一:
| 互動類型 | 說明 |
|---|---|
GAMBLING_BLACKJACK | 開啟 21 點的下注選單 |
GAMBLING_COINFLIP | 開啟擲硬幣的下注選單 |
GAMBLING_SLOTS | 開啟老虎機的下注選單 |
GAMBLING_HIGHERLOWER | 開啟比大小的下注選單 |
賭場老闆 NPC 不使用特殊的互動類型。要設定它,請建立檔名為 gambling_den_owner.yml 的 NPC。莊家收益顯示將根據此檔名自動出現在 NPC 頭上。
遊戲
21 點
適用標準 21 點規則。目標是盡可能接近 21 點而不爆牌。
規則
- 玩家和莊家各發兩張牌。
- 莊家的第二張牌在玩家停牌前會被隱藏。
- A 算作 11 或 1(在可能的情況下會自動調整以防止爆牌)。
- 花牌(J、Q、K)算作 10。
- 莊家在 17 點停牌。
- 玩家最多可持有 5 張牌。
動作
| 動作 | 說明 |
|---|---|
| 要牌 | 抽取另一張牌。 |
| 停牌 | 保持目前的牌組;然後由莊家出牌。 |
| 加倍 | 將賭注加倍,只抽一張牌,然後自動停牌。只有在您的第一個動作(當您有 2 張牌時)且能負擔加倍賭注時才可使用。 |
賠付
| 結果 | 預設倍數 |
|---|---|
| 普通獲勝(玩家總數超過莊家,或莊家爆牌) | 2.0x |
| 21 點(前兩張牌為 21) | 2.5x |
| 平手(平局) | 1.0x(退還賭注) |
| 失敗(玩家爆牌或莊家總數較高) | 0x(失去賭注) |
關閉選單
如果玩家在莊家回合時關閉選單,莊家的牌會自動打完並解決結果。如果玩家在停牌前關閉選單,則沒收賭注。
擲硬幣
簡單的 50/50 遊戲。選擇正面或反面,由硬幣決定您的命運。
玩法
- 遊戲開啟時有正面按鈕和反面按鈕。
- 點擊其中一個進行選擇。
- 播放硬幣翻轉動畫。
- 顯示結果。
賠付
| 結果 | 預設倍數 |
|---|---|
| 猜對 | 1.9x |
| 立邊(硬幣立在邊緣) | 10.0x |
| 猜錯 | 0x(失去賭注) |
立邊結果
硬幣有 1% 的機率立在邊緣而非正面或反面。當發生這種情況時,無論玩家選擇什麼都獲勝,並獲得賭注的 10 倍賠付。這個罕見事件會顯示特殊的聊天訊息和視覺效果。
關閉選單
如果玩家在做出選擇前關閉選單,則沒收賭注。
老虎機
旋轉三個轉輪並配對符號以獲勝。更稀有的符號賠付更多。
玩法
- 遊戲開啟時有 3x3 轉輪網格和旋轉按鈕。
- 點擊旋轉開始轉輪。
- 每個轉輪依序停止並播放動畫。
- 中間行(賠付線)決定結果。
符號和賠付
每個符號都有一個權重,決定它出現的頻率。配對三個相同符號的賠率倍數計算為 100 / 權重。配對兩個符號賠付該符號三個配對賠付的 25%。
| 符號 | 權重 | 機率 | 三個配對賠付 | 兩個配對賠付 |
|---|---|---|---|---|
| 櫻桃 | 35 | 35% | 2.86x | 0.71x |
| 檸檬 | 28 | 28% | 3.57x | 0.89x |
| 橘子 | 20 | 20% | 5.0x | 1.25x |
| 金鐘 | 10 | 10% | 10.0x | 2.5x |
| 銀條 | 5 | 5% | 20.0x | 5.0x |
| 幸運 7 | 2 | 2% | 50.0x | 12.5x |
三個幸運 7 是頭獎,會獲得特殊的視覺和音效。
關閉選單
如果玩家在旋轉前關閉選單,則沒收賭注。
比大小
基於連勝的撲克牌遊戲。猜測下一張牌是比目前的牌更大還是更小,並累積倍數。隨時兌現或全部冒險。
玩法
- 抽出並顯示一張牌(數值範圍從 2 到 14,其中 A = 14)。
- 猜測下一張牌會比目前的牌更大還是更小。
- 如果猜對,您的倍數增加,翻開的牌成為新的目前牌。
- 在至少猜對一次後可以隨時兌現。
- 如果猜錯,您失去全部賭注。
- 如果下一張牌與目前的牌相等,則算失敗。
連勝倍數
每次猜對會將您的獎金乘以設定的倍數(預設為 1.5x)。倍數會累積:
| 連勝 | 倍數(預設) | 100 硬幣賭注的賠付 |
|---|---|---|
| 1 | 1.5x | 150 |
| 2 | 2.25x | 225 |
| 3 | 3.375x | 337.5 |
| 4 | 5.0625x | 506.25 |
| 5 | 7.59x | 759 |
| ... | ... | ... |
| 12 | ~129.75x | ~12,975 |
最高連勝和自動兌現
最高連勝為 12。當玩家達到 12 次正確猜測時,會自動兌現並獲得獎金。這可防止倍數失控。
關閉選單
如果玩家在有獲勝連勝時關閉選單,會自動兌現並獲得目前的獎金。如果在進行任何猜測前關閉,則沒收賭注。
下注
任何遊戲開始前,玩家會看到下注選單以選擇賭注。
下注限制
| 設定 | 預設值 |
|---|---|
| 最低賭注 | 10 |
| 最高賭注 | 1000 |
下注選單控制
下注選單提供幾個控制選項:
- 增減按鈕 -- 三種大小的增加和減少按鈕。如果玩家有至少 100 硬幣且無債務,增量會基於百分比(餘額的 5%、10%、25%)。否則使用固定金額 10、50 和 100。
- 全押 -- 將賭注設定為玩家能負擔的最大值(包括可用信用額度)。
- 重置 -- 將賭注重置為最低值。
- 開始 -- 以目前賭注開始遊戲。只有在玩家能負擔賭注時才會啟用。
- 取消 -- 關閉選單而不下注。
選單顯示玩家的目前餘額、任何現有債務和可用信用額度。
債務系統
玩家可以透過累積債務來超過其餘額下注。賭場會提供可設定上限的信用額度。
債務運作方式
- 當玩家下的賭注超過其餘額時,剩餘金額會新增為賭博債務。
- 玩家可累積的最大債務預設為 500 硬幣。
- 玩家無法下會使其債務超過最大值的賭注。
- 當玩家獲勝時,其獎金會首先用於償還債務,然後才加到餘額中。
可用信用額度
玩家的可用信用額度計算為: 最大債務 - 目前債務。這會顯示在下注選單中。
債務警告
當玩家陷入債務時,會收到警告訊息。討債人可能在他們背負債務時找上門。
討債人首領
討債人是一個自訂首領,會生成來追捕欠賭債的玩家。
生成條件
- 玩家必須有未償還的賭博債務。
- 定期檢查每 60 分鐘(可設定)對所有線上玩家執行一次。
- 每次檢查有 50% 的機率(可設定)為符合資格的玩家生成討債人。
- 每個玩家同時只能有一個討債人活動。
- 討債人使用自訂首領檔案
debt_collector.yml。
等級縮放
討債人的等級基於目標玩家的戰鬥等級。其生命值乘以可設定的生命值倍數(預設為 5.0x),傷害乘以傷害倍數(預設為 1.0x)。
行為
- 討債人在距離玩家 5 到 10 格的地方生成。
- 它立即鎖定生成它的玩家。
- 預設有 600 秒(10 分鐘)的超時時間。如果在該時間內未被擊殺,它會消失並警告玩家它會回來。
結果
| 結果 | 效果 |
|---|---|
| 玩家擊殺討債人 | 首領消失。玩家的債務不會減少,但會收到它會回來的訊息。 |
| 討債人擊殺玩家 | 玩家的債務減少 50 硬幣(可設定)。如果這完全清除了債務,會通知玩家。討債人在 5 秒後消失。 |
| 超時(未及時擊殺) | 討債人消失並發送警告訊息。它會在下次檢查時再次嘗試生成。 |
賭場老闆
賭場老闆是一個特殊的 NPC,在其頭上顯示莊家收益作為浮動文字顯示。這顯示莊家從所有賭博活動中累積的總利潤或損失。
- 正收益以綠色顯示(例如
+1234.56)。 - 負收益(玩家獲勝多於失敗)以紅色顯示(例如
-567.89)。 - 顯示每秒更新一次。
- 莊家收益儲存到
house_earnings.yml並在伺服器重啟後保留。
設定
所有賭博設定儲存在 GamblingSettings.yml 中。以下是影響遊戲玩法的主要設定。
一般設定
| 鍵 | 說明 | 預設 |
|---|---|---|
gamblingEnabled | 啟用或停用整個賭博系統。停用時,賭博 NPC 將無法運作,討債人也不會生成。 | true |
maxDebt | 玩家可從賭博累積的最大債務金額。 | 500.0 |
minBet | 所有賭博遊戲的最低賭注金額。 | 10 |
maxBet | 所有賭博遊戲的最高賭注金額。 | 1000 |
賠率倍數
| 鍵 | 說明 | 預設 |
|---|---|---|
payouts.blackjack.normal | 普通 21 點獲勝的賠率倍數。 | 2.0 |
payouts.blackjack.blackjack | 拿到自然 21 點(前兩張牌為 21)的賠率倍數。 | 2.5 |
payouts.coinFlip | 擲硬幣獲勝的賠率倍數。設定低於 2.0 為莊家優勢(1.9 = 5% 莊家優勢)。 | 1.9 |
payouts.higherLower.multiplier | 比大小中每次猜對套用的倍數。會累積乘法。 | 1.5 |
老虎機賠付
老虎機賠付無法設定。它們使用公式 100 / 權重 從符號權重自動計算:
| 符號 | 權重 | 三個配對賠付 | 兩個配對賠付 |
|---|---|---|---|
| 櫻桃 | 35 | 2.86x | 0.71x |
| 檸檬 | 28 | 3.57x | 0.89x |
| 橘子 | 20 | 5.0x | 1.25x |
| 鐘 | 10 | 10.0x | 2.50x |
| 條 | 5 | 20.0x | 5.00x |
| 幸運 7 | 2 | 50.0x | 12.50x |
payouts.slots.* 鍵存在於 GamblingSettings.yml 中,但未被遊戲邏輯使用。實際賠付始終基於權重。
討債人設定
| 鍵 | 說明 | 預設 |
|---|---|---|
debtCollector.spawnChance | 討債人在每次檢查時生成的機率(0.0 到 1.0)。 | 0.5 |
debtCollector.checkIntervalMinutes | 檢查是否應為欠債玩家生成討債人的頻率(以分鐘為單位)。 | 60 |
debtCollector.timeoutSeconds | 討債人在未被擊殺的情況下多久後消失(以秒為單位)。 | 600 |
debtCollector.healthMultiplier | 討債人首領的生命值倍數。 | 5.0 |
debtCollector.damageMultiplier | 討債人首領的傷害倍數。 | 1.0 |
debtCollector.debtReductionOnPlayerDeath | 討債人擊殺玩家時減少的債務金額。 | 50.0 |
經濟安全
賭博系統使用安全優先的交易模型。所有賭注都會被扣除,結果在任何視覺動畫播放前就已經財務上解決。這可防止玩家在動畫中途斷線以避免失敗或複製獲勝的漏洞。如果玩家在動畫期間或之後的任何時間斷線,其財務狀態已經是正確的。