跳到主要内容

赌博系统

赌博系统为 EliteMobs 添加了一个功能齐全的赌场。玩家可以用他们的精英硬币在四种不同的小游戏中下注,在没钱时可以欠债,并在讨债人上门时面对后果。服务器管理员可以配置系统的各个方面,从赔率倍数到债务限额。


设置

赌博系统通过特殊配置的 NPC 访问。每个游戏和显示都有自己的 NPC 互动类型。

要设置赌博 NPC,创建一个 NPC 配置文件并将 interactionType 设置为以下值之一:

互动类型描述
GAMBLING_BLACKJACK打开二十一点的下注菜单
GAMBLING_COINFLIP打开抛硬币的下注菜单
GAMBLING_SLOTS打开老虎机的下注菜单
GAMBLING_HIGHERLOWER打开高低牌的下注菜单

赌场老板 NPC 不使用特殊的互动类型。要设置它,创建一个文件名为 gambling_den_owner.yml 的 NPC。庄家收益显示将根据此文件名自动出现在 NPC 头顶。


游戏

二十一点

适用标准二十一点规则。目标是尽可能接近 21 点而不爆牌。

规则

  • 玩家和庄家各发两张牌。
  • 庄家的第二张牌在玩家停牌前隐藏。
  • A 算作 11 或 1(在可能的情况下自动调整以防止爆牌)。
  • 面牌(J、Q、K)算作 10。
  • 庄家在 17 点时停牌。
  • 玩家最多可持有 5 张牌。

操作

操作描述
要牌抽取另一张牌。
停牌保留当前的牌;然后庄家开始游戏。
加倍下注将赌注加倍,抽取一张牌,然后自动停牌。仅在首次操作时可用(有 2 张牌时),并且只有在您有足够的钱加倍赌注时可用。

赔率

结果默认倍数
普通胜利(玩家点数超过庄家,或庄家爆牌)2.0x
二十一点(前两张牌为 21)2.5x
平局1.0x(返还赌注)
失败(玩家爆牌或庄家点数更高)0x(失去赌注)

关闭菜单

如果玩家在庄家回合期间关闭菜单,庄家的牌将自动打出并解决结果。如果玩家在停牌前关闭菜单,则赌注将被没收。


抛硬币

简单的 50/50 游戏。选择正面或反面,硬币决定你的命运。

如何玩

  1. 游戏开启时有正面按钮和反面按钮。
  2. 点击一个来做出选择。
  3. 播放抛硬币动画。
  4. 显示结果。

赔率

结果默认倍数
猜对1.9x
立起(硬币立在边缘上)10.0x
猜错0x(失去赌注)

立起结果

硬币有 1% 的几率立在边缘上而不是正面或反面。当这种情况发生时,无论玩家选择什么,玩家总是获胜,并获得赌注的 10 倍赔付。这个罕见事件会显示特殊的聊天消息和视觉效果。

关闭菜单

如果玩家在做出选择前关闭菜单,则赌注将被没收。


老虎机

旋转三个转轮并匹配符号以获胜。越稀有的符号赔付越多。

如何玩

  1. 游戏开启时有 3x3 转轮网格和旋转按钮。
  2. 点击旋转开始转轮。
  3. 每个转轮依次停止并带有动画。
  4. 中间行(赔付线)决定结果。

符号和赔率

每个符号都有一个权重,决定它出现的频率。匹配三个符号的赔率倍数计算为 100 / 权重。匹配两个符号支付该符号三个匹配赔付的 25%。

符号权重几率3 个匹配赔付2 个匹配赔付
樱桃3535%2.86x0.71x
柠檬2828%3.57x0.89x
橙子2020%5.0x1.25x
金铃铛1010%10.0x2.5x
银条55%20.0x5.0x
幸运 722%50.0x12.5x

三个幸运 7 是大奖,会收到特殊的视觉和声音效果。

关闭菜单

如果玩家在旋转前关闭菜单,则赌注将被没收。


高低牌

基于连胜的纸牌游戏。猜测下一张牌是高于还是低于当前牌,并积累倍数。随时兑现或冒险全押。

如何玩

  1. 抽取并显示一张牌(值范围从 2 到 14,其中 A = 14)。
  2. 猜测下一张牌将高于还是低于当前牌。
  3. 如果你猜对了,你的倍数会增加,显示的牌成为新的当前牌。
  4. 在至少一次猜对后,你可以随时兑现
  5. 如果你猜错了,你会失去全部赌注。
  6. 如果下一张牌等于当前牌,则算作失败。

连胜倍数

每次猜对都会将你的奖金乘以配置的倍数(默认 1.5x)。倍数是叠加的:

连胜倍数(默认)100 硬币赌注的赔付
11.5x150
22.25x225
33.375x337.5
45.0625x506.25
57.59x759
.........
12~129.75x~12,975

最大连胜和自动兑现

最大连胜为 12。当玩家达到 12 次正确猜测时,他们会自动兑现并获得奖金。这可以防止失控的倍数。

关闭菜单

如果玩家在有连胜时关闭菜单,他们会自动兑现并获得当前奖金。如果他们在做出任何猜测前关闭,则赌注将被没收。


下注

在任何游戏开始前,玩家会看到一个下注菜单来选择他们的赌注。

赌注限制

设置默认值
最小赌注10
最大赌注1000

下注菜单控制

下注菜单提供几个控制:

  • 增量按钮 -- 三种大小的增加和减少按钮。如果玩家至少有 100 硬币且没有债务,则增量基于百分比(余额的 5%、10%、25%)。否则,使用固定金额 10、50 和 100。
  • 全押 -- 将赌注设置为玩家能承受的最大值(包括可用信用额度)。
  • 重置 -- 将赌注重置为最小值。
  • 游戏 -- 以当前赌注开始游戏。仅在玩家能承受赌注时激活。
  • 取消 -- 关闭菜单而不下注。

菜单显示玩家当前余额、任何现有债务和可用信用额度。


债务系统

玩家可以通过欠债来下注超过余额的金额。赌场扩展信用额度至可配置的限额。

债务如何运作

  1. 当玩家下注超过其余额时,剩余金额将作为赌博债务添加。
  2. 玩家可以累积的最大债务默认为 500 硬币
  3. 玩家无法下注会将其债务推高到最大值以上的赌注。
  4. 当玩家获胜时,他们的奖金首先用于偿还债务,然后才添加到余额中。

可用信用额度

玩家的可用信用额度计算为: 最大债务 - 当前债务。这在下注菜单中显示。

债务警告

当玩家欠债时,他们会收到警告消息。讨债人可能会在他们背负未偿债务时找上门来。


讨债人 Boss

讨债人是一个自定义 Boss,会生成来追捕欠赌债的玩家。

生成条件

  • 玩家必须有未偿还的赌债。
  • 60 分钟(可配置)对所有在线玩家进行一次定期检查。
  • 每次检查有 50% 的几率(可配置)为符合条件的玩家生成讨债人。
  • 每个玩家同时只能有一个讨债人激活。
  • 讨债人使用自定义 Boss 文件 debt_collector.yml

等级缩放

讨债人的等级基于目标玩家的战斗等级。其生命值乘以可配置的生命值倍数(默认 5.0x),伤害乘以伤害倍数(默认 1.0x)。

行为

  • 讨债人在距离玩家 5 到 10 格的位置生成。
  • 它立即锁定为其生成的玩家。
  • 它有默认 600 秒(10 分钟)的超时时间。如果在该时间内未被杀死,它会消失并警告玩家它会回来。

结果

结果效果
玩家击杀讨债人Boss 消失。玩家的债务不会减少,但他们会收到它将返回的消息。
讨债人击杀玩家玩家的债务减少 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普通二十一点胜利的赔率倍数。2.0
payouts.blackjack.blackjack获得天然二十一点(前两张牌为 21)的赔率倍数。2.5
payouts.coinFlip抛硬币获胜的赔率倍数。设置低于 2.0 可获得庄家优势(1.9 = 5% 庄家优势)。1.9
payouts.higherLower.multiplier高低牌中每次正确猜测应用的倍数。倍数叠加。1.5

老虎机赔率

老虎机赔率不可配置。它们根据符号权重使用公式 100 / 权重 自动计算:

符号权重3 个匹配赔付2 个匹配赔付
樱桃352.86x0.71x
柠檬283.57x0.89x
橙子205.0x1.25x
铃铛1010.0x2.50x
银条520.0x5.00x
幸运 7250.0x12.50x

GamblingSettings.yml 中存在 payouts.slots.* 键,但游戏逻辑不使用它们。实际赔率始终基于权重。

讨债人设置

描述默认值
debtCollector.spawnChance每次检查时讨债人生成的几率(0.0 到 1.0)。0.5
debtCollector.checkIntervalMinutes检查是否应为欠债玩家生成讨债人的间隔时间(以分钟为单位)。60
debtCollector.timeoutSeconds如果未被击杀,讨债人消失前的时间(以秒为单位)。600
debtCollector.healthMultiplier讨债人 Boss 的生命值倍数。5.0
debtCollector.damageMultiplier讨债人 Boss 的伤害倍数。1.0
debtCollector.debtReductionOnPlayerDeath当讨债人击杀玩家时减少的债务金额。50.0

经济安全

赌博系统使用安全优先的交易模型。所有赌注都在任何视觉动画播放之前扣除并在财务上解决结果。这可以防止玩家在动画中途断开连接以避免损失或复制胜利的漏洞。如果玩家在动画期间或之后的任何时刻断开连接,他们的财务状态已经是正确的。