1.新增描述文档
This commit is contained in:
@@ -8,7 +8,8 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite --open",
|
"dev": "vite --open",
|
||||||
"build": "vue-tsc --noEmit && vite build",
|
"sync:flowcharts": "node scripts/sync-dice-flowcharts.mjs",
|
||||||
|
"build": "node scripts/sync-dice-flowcharts.mjs && vue-tsc --noEmit && vite build",
|
||||||
"serve": "vite preview",
|
"serve": "vite preview",
|
||||||
"lint": "eslint",
|
"lint": "eslint",
|
||||||
"fix": "eslint --fix",
|
"fix": "eslint --fix",
|
||||||
|
|||||||
192
saiadmin-artd/public/docs/flowcharts/dice-为何抽到该奖励.html
Normal file
192
saiadmin-artd/public/docs/flowcharts/dice-为何抽到该奖励.html
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>为何最终抽到该奖励</title>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
||||||
|
<style>
|
||||||
|
* { box-sizing: border-box; }
|
||||||
|
body {
|
||||||
|
font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 24px 32px 48px;
|
||||||
|
background: #f5f7fa;
|
||||||
|
color: #1a1a2e;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
header { max-width: 1100px; margin: 0 auto 16px; }
|
||||||
|
h1 { font-size: 1.5rem; margin: 0 0 8px; font-weight: 600; }
|
||||||
|
.subtitle { color: #5c6370; font-size: 0.95rem; margin: 0; }
|
||||||
|
.card {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 28px 24px;
|
||||||
|
box-shadow: 0 2px 12px rgba(0,0,0,.06);
|
||||||
|
}
|
||||||
|
.copy-hint {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: 12px auto 0;
|
||||||
|
font-size: 0.88rem;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
.copy-box {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: 8px auto 0;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 12px 14px;
|
||||||
|
}
|
||||||
|
.copy-box summary { cursor: pointer; font-size: 0.9rem; color: #409eff; }
|
||||||
|
.copy-box pre {
|
||||||
|
margin: 10px 0 0;
|
||||||
|
font-size: 0.78rem;
|
||||||
|
line-height: 1.45;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-all;
|
||||||
|
max-height: 280px;
|
||||||
|
overflow: auto;
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
.legend {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: 20px auto 0;
|
||||||
|
padding: 16px 20px;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 12px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
.legend h2 { font-size: 1rem; margin: 0 0 10px; }
|
||||||
|
.legend ul { margin: 0; padding-left: 1.2em; }
|
||||||
|
.legend li { margin: 4px 0; }
|
||||||
|
.mermaid { display: flex; justify-content: center; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h1>为何最终抽到的是这个奖励</h1>
|
||||||
|
<p class="subtitle">业务说明:一局抽奖从开局到到账的决策顺序(仅用本项目菜单与业务用语)</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<p class="copy-hint">复制方式:展开下方「Mermaid 源码」全选复制,粘贴到 ProcessOn / draw.io / 飞书文档等支持 Mermaid 的流程图工具;或直接用浏览器打开本页看图。</p>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<pre class="mermaid">
|
||||||
|
flowchart TD
|
||||||
|
Start([玩家开始一局抽奖]) --> Dir[选择方向:顺时针 或 逆时针]
|
||||||
|
Dir --> Ante[选择底注倍数]
|
||||||
|
Ante --> Type{本局是否使用免费抽奖券?}
|
||||||
|
|
||||||
|
Type -->|是| Free[免费局]
|
||||||
|
Type -->|否且平台币足够| Paid[付费局:扣除底注对应平台币]
|
||||||
|
|
||||||
|
Free --> PoolKill[按「杀分奖池」的 T1~T5 档位概率抽签]
|
||||||
|
Paid --> KillCheck{彩金池已开启杀分<br/>且彩金池累计盈利 ≥ 安全线?}
|
||||||
|
KillCheck -->|是| PoolKill
|
||||||
|
KillCheck -->|否| PlayerW[按该玩家在「玩家管理」<br/>配置的 T1~T5 档位概率抽签]
|
||||||
|
|
||||||
|
PoolKill --> DrawTier[随机抽出档位 T1~T5]
|
||||||
|
PlayerW --> DrawTier
|
||||||
|
|
||||||
|
DrawTier --> PickRow[在「色子奖励权重」中<br/>取该档位 + 本局方向的所有行<br/>按行权重随机一条]
|
||||||
|
PickRow --> Got[得到:色子点数、结算金额、所属档位、落点格位]
|
||||||
|
|
||||||
|
Got --> KillMode{本局是否走杀分档位概率?}
|
||||||
|
KillMode -->|是| NoLeo[不发放豹子大奖<br/>且不会抽到仅能豹子的点数 5、30]
|
||||||
|
KillMode -->|否| NormalPath[按普通规则继续]
|
||||||
|
NoLeo --> DiceShow[生成五颗骰子并结算]
|
||||||
|
|
||||||
|
NormalPath --> Leopard{色子点数是否为<br/>5 / 10 / 15 / 20 / 25 / 30?}
|
||||||
|
Leopard -->|否| NormalWin[五颗骰子点数和 = 该点数<br/>奖金 = 结算金额 × 底注]
|
||||||
|
Leopard -->|是| LeoRule{点数?}
|
||||||
|
LeoRule -->|5 或 30| MustBig[必定豹子大奖]
|
||||||
|
LeoRule -->|10 / 15 / 20 / 25| BigRate[按「奖励配置」页签「大奖权重」<br/>该点数权重决定真豹子或普通展示]
|
||||||
|
MustBig --> BigPay[豹子奖金 = 大奖结算金额 × 底注<br/>本局不再发该点数的普通奖]
|
||||||
|
BigRate -->|命中豹子| BigPay
|
||||||
|
BigRate -->|未中豹子| NonLeo[五颗骰子为非豹子组合<br/>奖金 = 结算金额 × 底注]
|
||||||
|
|
||||||
|
NormalWin --> T5Check
|
||||||
|
NonLeo --> T5Check
|
||||||
|
BigPay --> EndBig([本局结束:以豹子大奖为准])
|
||||||
|
DiceShow --> T5Check{档位为 T5 再来一次?}
|
||||||
|
T5Check -->|是| FreeTicket[赠送 1 次免费抽奖券<br/>下次免费局须相同底注]
|
||||||
|
T5Check -->|否| EndNormal([本局结束:以普通奖或惩罚为准])
|
||||||
|
FreeTicket --> EndNormal
|
||||||
|
|
||||||
|
style Start fill:#e8f4fc
|
||||||
|
style EndNormal fill:#e8fce8
|
||||||
|
style EndBig fill:#fff3e0
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<details class="copy-box">
|
||||||
|
<summary>Mermaid 源码(可复制,与同目录 .mmd 文件一致)</summary>
|
||||||
|
<pre id="mermaid-src">flowchart TD
|
||||||
|
Start([玩家开始一局抽奖]) --> Dir[选择方向:顺时针 或 逆时针]
|
||||||
|
Dir --> Ante[选择底注倍数]
|
||||||
|
Ante --> Type{本局是否使用免费抽奖券?}
|
||||||
|
|
||||||
|
Type -->|是| Free[免费局]
|
||||||
|
Type -->|否且平台币足够| Paid[付费局:扣除底注对应平台币]
|
||||||
|
|
||||||
|
Free --> PoolKill[按「杀分奖池」的 T1~T5 档位概率抽签]
|
||||||
|
Paid --> KillCheck{彩金池已开启杀分<br/>且彩金池累计盈利 ≥ 安全线?}
|
||||||
|
KillCheck -->|是| PoolKill
|
||||||
|
KillCheck -->|否| PlayerW[按该玩家在「玩家管理」<br/>配置的 T1~T5 档位概率抽签]
|
||||||
|
|
||||||
|
PoolKill --> DrawTier[随机抽出档位 T1~T5]
|
||||||
|
PlayerW --> DrawTier
|
||||||
|
|
||||||
|
DrawTier --> PickRow[在「色子奖励权重」中<br/>取该档位 + 本局方向的所有行<br/>按行权重随机一条]
|
||||||
|
PickRow --> Got[得到:色子点数、结算金额、所属档位、落点格位]
|
||||||
|
|
||||||
|
Got --> KillMode{本局是否走杀分档位概率?}
|
||||||
|
KillMode -->|是| NoLeo[不发放豹子大奖<br/>且不会抽到仅能豹子的点数 5、30]
|
||||||
|
KillMode -->|否| NormalPath[按普通规则继续]
|
||||||
|
NoLeo --> DiceShow[生成五颗骰子并结算]
|
||||||
|
|
||||||
|
NormalPath --> Leopard{色子点数是否为<br/>5 / 10 / 15 / 20 / 25 / 30?}
|
||||||
|
Leopard -->|否| NormalWin[五颗骰子点数和 = 该点数<br/>奖金 = 结算金额 × 底注]
|
||||||
|
Leopard -->|是| LeoRule{点数?}
|
||||||
|
LeoRule -->|5 或 30| MustBig[必定豹子大奖]
|
||||||
|
LeoRule -->|10 / 15 / 20 / 25| BigRate[按「奖励配置」页签「大奖权重」<br/>该点数权重决定真豹子或普通展示]
|
||||||
|
MustBig --> BigPay[豹子奖金 = 大奖结算金额 × 底注<br/>本局不再发该点数的普通奖]
|
||||||
|
BigRate -->|命中豹子| BigPay
|
||||||
|
BigRate -->|未中豹子| NonLeo[五颗骰子为非豹子组合<br/>奖金 = 结算金额 × 底注]
|
||||||
|
|
||||||
|
NormalWin --> T5Check
|
||||||
|
NonLeo --> T5Check
|
||||||
|
BigPay --> EndBig([本局结束:以豹子大奖为准])
|
||||||
|
DiceShow --> T5Check{档位为 T5 再来一次?}
|
||||||
|
T5Check -->|是| FreeTicket[赠送 1 次免费抽奖券<br/>下次免费局须相同底注]
|
||||||
|
T5Check -->|否| EndNormal([本局结束:以普通奖或惩罚为准])
|
||||||
|
FreeTicket --> EndNormal
|
||||||
|
|
||||||
|
style Start fill:#e8f4fc
|
||||||
|
style EndNormal fill:#e8fce8
|
||||||
|
style EndBig fill:#fff3e0</pre>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<div class="legend">
|
||||||
|
<h2>读图要点</h2>
|
||||||
|
<ul>
|
||||||
|
<li><strong>两步抽签</strong>:先抽档位 T1~T5(大奖 / 小赚 / 抽水 / 惩罚 / 再来一次),再在该档位 + 方向的多条奖励里按权重抽具体点数与结算金额。</li>
|
||||||
|
<li><strong>免费局与杀分局</strong>:都用杀分奖池的档位概率;一般不会出豹子大奖,也不会抽到只能组成豹子的点数 5、30。</li>
|
||||||
|
<li><strong>普通付费局</strong>:彩金池未到杀分条件时,用该玩家在「玩家管理」里的档位权重,才可能按「大奖权重」出豹子。</li>
|
||||||
|
<li><strong>玩家最终看到</strong>:色子点数、五颗骰子图案、到账平台币(普通奖 + 豹子奖)、是否获得「再来一次」免费券。</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
mermaid.initialize({
|
||||||
|
startOnLoad: true,
|
||||||
|
theme: 'neutral',
|
||||||
|
flowchart: { curve: 'basis', padding: 16, nodeSpacing: 28, rankSpacing: 40 }
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
44
saiadmin-artd/public/docs/flowcharts/dice-为何抽到该奖励.mmd
Normal file
44
saiadmin-artd/public/docs/flowcharts/dice-为何抽到该奖励.mmd
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
flowchart TD
|
||||||
|
Start([玩家开始一局抽奖]) --> Dir[选择方向:顺时针 或 逆时针]
|
||||||
|
Dir --> Ante[选择底注倍数]
|
||||||
|
Ante --> Type{本局是否使用免费抽奖券?}
|
||||||
|
|
||||||
|
Type -->|是| Free[免费局]
|
||||||
|
Type -->|否且平台币足够| Paid[付费局:扣除底注对应平台币]
|
||||||
|
|
||||||
|
Free --> PoolKill[按「杀分奖池」的 T1~T5 档位概率抽签]
|
||||||
|
Paid --> KillCheck{彩金池已开启杀分<br/>且彩金池累计盈利 ≥ 安全线?}
|
||||||
|
KillCheck -->|是| PoolKill
|
||||||
|
KillCheck -->|否| PlayerW[按该玩家在「玩家管理」<br/>配置的 T1~T5 档位概率抽签]
|
||||||
|
|
||||||
|
PoolKill --> DrawTier[随机抽出档位 T1~T5]
|
||||||
|
PlayerW --> DrawTier
|
||||||
|
|
||||||
|
DrawTier --> PickRow[在「色子奖励权重」中<br/>取该档位 + 本局方向的所有行<br/>按行权重随机一条]
|
||||||
|
PickRow --> Got[得到:色子点数、结算金额、所属档位、落点格位]
|
||||||
|
|
||||||
|
Got --> KillMode{本局是否走杀分档位概率?}
|
||||||
|
KillMode -->|是| NoLeo[不发放豹子大奖<br/>且不会抽到仅能豹子的点数 5、30]
|
||||||
|
KillMode -->|否| NormalPath[按普通规则继续]
|
||||||
|
NoLeo --> DiceShow[生成五颗骰子并结算]
|
||||||
|
|
||||||
|
NormalPath --> Leopard{色子点数是否为<br/>5 / 10 / 15 / 20 / 25 / 30?}
|
||||||
|
Leopard -->|否| NormalWin[五颗骰子点数和 = 该点数<br/>奖金 = 结算金额 × 底注]
|
||||||
|
Leopard -->|是| LeoRule{点数?}
|
||||||
|
LeoRule -->|5 或 30| MustBig[必定豹子大奖]
|
||||||
|
LeoRule -->|10 / 15 / 20 / 25| BigRate[按「奖励配置」页签「大奖权重」<br/>该点数权重决定真豹子或普通展示]
|
||||||
|
MustBig --> BigPay[豹子奖金 = 大奖结算金额 × 底注<br/>本局不再发该点数的普通奖]
|
||||||
|
BigRate -->|命中豹子| BigPay
|
||||||
|
BigRate -->|未中豹子| NonLeo[五颗骰子为非豹子组合<br/>奖金 = 结算金额 × 底注]
|
||||||
|
|
||||||
|
NormalWin --> T5Check
|
||||||
|
NonLeo --> T5Check
|
||||||
|
BigPay --> EndBig([本局结束:以豹子大奖为准])
|
||||||
|
DiceShow --> T5Check{档位为 T5 再来一次?}
|
||||||
|
T5Check -->|是| FreeTicket[赠送 1 次免费抽奖券<br/>下次免费局须相同底注]
|
||||||
|
T5Check -->|否| EndNormal([本局结束:以普通奖或惩罚为准])
|
||||||
|
FreeTicket --> EndNormal
|
||||||
|
|
||||||
|
style Start fill:#e8f4fc
|
||||||
|
style EndNormal fill:#e8fce8
|
||||||
|
style EndBig fill:#fff3e0
|
||||||
219
saiadmin-artd/public/docs/flowcharts/dice-后台中奖逻辑配置.html
Normal file
219
saiadmin-artd/public/docs/flowcharts/dice-后台中奖逻辑配置.html
Normal file
@@ -0,0 +1,219 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>后台如何配置中奖逻辑</title>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
||||||
|
<style>
|
||||||
|
* { box-sizing: border-box; }
|
||||||
|
body {
|
||||||
|
font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 24px 32px 48px;
|
||||||
|
background: #f0f4f8;
|
||||||
|
color: #1a1a2e;
|
||||||
|
line-height: 1.55;
|
||||||
|
}
|
||||||
|
header { max-width: 1200px; margin: 0 auto 16px; }
|
||||||
|
h1 { font-size: 1.45rem; margin: 0 0 6px; font-weight: 600; }
|
||||||
|
.subtitle { color: #5c6370; font-size: 0.92rem; margin: 0; }
|
||||||
|
.tip {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto 16px;
|
||||||
|
padding: 12px 16px;
|
||||||
|
background: #fff8e6;
|
||||||
|
border-left: 4px solid #e6a23c;
|
||||||
|
border-radius: 6px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.card {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto 20px;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 24px 20px;
|
||||||
|
box-shadow: 0 2px 12px rgba(0,0,0,.06);
|
||||||
|
}
|
||||||
|
.card h2 { font-size: 1.05rem; margin: 0 0 12px; color: #303133; }
|
||||||
|
.copy-hint {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto 12px;
|
||||||
|
font-size: 0.88rem;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
.copy-box {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 8px auto 20px;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 12px 14px;
|
||||||
|
}
|
||||||
|
.copy-box summary { cursor: pointer; font-size: 0.9rem; color: #409eff; }
|
||||||
|
.copy-box pre {
|
||||||
|
margin: 10px 0 0;
|
||||||
|
font-size: 0.76rem;
|
||||||
|
line-height: 1.4;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-all;
|
||||||
|
max-height: 320px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.steps {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: grid;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
.step {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 12px 16px;
|
||||||
|
border: 1px solid #e4e7ed;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.step strong { color: #409eff; }
|
||||||
|
.mermaid { display: flex; justify-content: center; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h1>后台如何配置中奖逻辑</h1>
|
||||||
|
<p class="subtitle">按「一局真实抽奖」顺序:每个环节对应左侧菜单与页面按钮(与前台逻辑一致)</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<p class="tip">菜单根目录:<strong>大富翁-色子游戏</strong>。多渠道后台请先选顶部<strong>渠道</strong>,再改该渠道数据。</p>
|
||||||
|
<p class="copy-hint">复制:展开「Mermaid 源码」粘贴到流程图工具;日常维护也可打开同目录 <code>dice-后台中奖逻辑配置.mmd</code>。</p>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h2>主流程图(抽奖环节 → 去哪点哪个按钮)</h2>
|
||||||
|
<pre class="mermaid">
|
||||||
|
flowchart TD
|
||||||
|
O([按一局抽奖的真实顺序配置后台]) --> L1
|
||||||
|
|
||||||
|
L1[① 玩家选方向 + 底注] --> L1A[可选:大富翁-色子游戏 → 底注配置<br/>按钮:新增 / 行内编辑 → 提交]
|
||||||
|
L1A --> L2
|
||||||
|
|
||||||
|
L2[② 先随机抽出档位 T1~T5] --> L2Q{本局类型?}
|
||||||
|
L2Q -->|免费抽奖券| L2F[概率来源:杀分奖池 killScore]
|
||||||
|
L2Q -->|付费且彩金池杀分生效| L2F
|
||||||
|
L2Q -->|付费且未杀分| L2P[概率来源:该玩家档位权重]
|
||||||
|
|
||||||
|
L2F --> M2F[大富翁-色子游戏 → 彩金池配置<br/>按钮:行内「编辑」→ 名称 killScore<br/>填写 T1池权重~T5池权重 合计 100%<br/>按钮:「提交」]
|
||||||
|
L2P --> M2P[大富翁-色子游戏 → 玩家管理<br/>按钮:行内「编辑」<br/>填写 T1池权重~T5池权重 或 选择「彩金池配置」<br/>按钮:「提交」]
|
||||||
|
|
||||||
|
M2F --> L2K
|
||||||
|
M2P --> L2K
|
||||||
|
L2K[杀分何时对付费局生效] --> M2K[大富翁-色子游戏 → 彩金池配置<br/>按钮:「查看当前彩金池」<br/>填写「安全线」· 开关「开启杀分」<br/>按钮:「保存安全线」]
|
||||||
|
|
||||||
|
M2K --> L3
|
||||||
|
L3[③ 在档位内随机一条奖励行] --> M3A[须先有盘面金额与档位规则]
|
||||||
|
M3A --> M3B[大富翁-色子游戏 → 奖励配置<br/>页签「奖励索引」→ 填写结算金额等<br/>按钮:「保存」]
|
||||||
|
M3B --> M3C[奖励配置 → 按钮「创建奖励对照」<br/>弹窗 → 按钮「确认导入」]
|
||||||
|
M3C --> M3D[大富翁-色子游戏 → 色子奖励权重<br/>按钮:「权重配比」→ 页签顺时针/逆时针<br/>按 T1~T5 填各点数权重 → 按钮「提交」]
|
||||||
|
|
||||||
|
M3D --> L4
|
||||||
|
L4[④ 若抽到豹子点数 5/10/15/20/25/30] --> L4Q{本局是否杀分档位?}
|
||||||
|
L4Q -->|是| L4N[不触发豹子大奖]
|
||||||
|
L4Q -->|否| L4Y[可能触发豹子大奖]
|
||||||
|
L4Y --> M4[大富翁-色子游戏 → 奖励配置<br/>页签「大奖权重」→ 拖动权重滑条<br/>按钮:「保存」<br/>说明:点数 5、30 固定必中;10/15/20/25 可调]
|
||||||
|
|
||||||
|
L4N --> L5
|
||||||
|
M4 --> L5
|
||||||
|
L5[⑤ 验证后上线] --> M5A[色子奖励权重 → 按钮「一键测试权重」<br/>弹窗 → 按钮「开始测试」]
|
||||||
|
M5A --> M5B[权重测试记录 → 按钮「查看详情」<br/>按钮「导入到当前配置」→「确认导入」]
|
||||||
|
M5B --> Done([可对玩家开放;用「玩家抽奖记录」核对])
|
||||||
|
|
||||||
|
style O fill:#e8f4fc
|
||||||
|
style Done fill:#e8fce8
|
||||||
|
style M2F fill:#fdf6ec
|
||||||
|
style M2P fill:#fdf6ec
|
||||||
|
style M3D fill:#fde2e2
|
||||||
|
style M4 fill:#e1f3d8
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<details class="copy-box">
|
||||||
|
<summary>Mermaid 源码(可复制,与同目录 .mmd 文件一致)</summary>
|
||||||
|
<pre id="mermaid-src">flowchart TD
|
||||||
|
O([按一局抽奖的真实顺序配置后台]) --> L1
|
||||||
|
|
||||||
|
L1[① 玩家选方向 + 底注] --> L1A[可选:大富翁-色子游戏 → 底注配置<br/>按钮:新增 / 行内编辑 → 提交]
|
||||||
|
L1A --> L2
|
||||||
|
|
||||||
|
L2[② 先随机抽出档位 T1~T5] --> L2Q{本局类型?}
|
||||||
|
L2Q -->|免费抽奖券| L2F[概率来源:杀分奖池 killScore]
|
||||||
|
L2Q -->|付费且彩金池杀分生效| L2F
|
||||||
|
L2Q -->|付费且未杀分| L2P[概率来源:该玩家档位权重]
|
||||||
|
|
||||||
|
L2F --> M2F[大富翁-色子游戏 → 彩金池配置<br/>按钮:行内「编辑」→ 名称 killScore<br/>填写 T1池权重~T5池权重 合计 100%<br/>按钮:「提交」]
|
||||||
|
L2P --> M2P[大富翁-色子游戏 → 玩家管理<br/>按钮:行内「编辑」<br/>填写 T1池权重~T5池权重 或 选择「彩金池配置」<br/>按钮:「提交」]
|
||||||
|
|
||||||
|
M2F --> L2K
|
||||||
|
M2P --> L2K
|
||||||
|
L2K[杀分何时对付费局生效] --> M2K[大富翁-色子游戏 → 彩金池配置<br/>按钮:「查看当前彩金池」<br/>填写「安全线」· 开关「开启杀分」<br/>按钮:「保存安全线」]
|
||||||
|
|
||||||
|
M2K --> L3
|
||||||
|
L3[③ 在档位内随机一条奖励行] --> M3A[须先有盘面金额与档位规则]
|
||||||
|
M3A --> M3B[大富翁-色子游戏 → 奖励配置<br/>页签「奖励索引」→ 填写结算金额等<br/>按钮:「保存」]
|
||||||
|
M3B --> M3C[奖励配置 → 按钮「创建奖励对照」<br/>弹窗 → 按钮「确认导入」]
|
||||||
|
M3C --> M3D[大富翁-色子游戏 → 色子奖励权重<br/>按钮:「权重配比」→ 页签顺时针/逆时针<br/>按 T1~T5 填各点数权重 → 按钮「提交」]
|
||||||
|
|
||||||
|
M3D --> L4
|
||||||
|
L4[④ 若抽到豹子点数 5/10/15/20/25/30] --> L4Q{本局是否杀分档位?}
|
||||||
|
L4Q -->|是| L4N[不触发豹子大奖]
|
||||||
|
L4Q -->|否| L4Y[可能触发豹子大奖]
|
||||||
|
L4Y --> M4[大富翁-色子游戏 → 奖励配置<br/>页签「大奖权重」→ 拖动权重滑条<br/>按钮:「保存」<br/>说明:点数 5、30 固定必中;10/15/20/25 可调]
|
||||||
|
|
||||||
|
L4N --> L5
|
||||||
|
M4 --> L5
|
||||||
|
L5[⑤ 验证后上线] --> M5A[色子奖励权重 → 按钮「一键测试权重」<br/>弹窗 → 按钮「开始测试」]
|
||||||
|
M5A --> M5B[权重测试记录 → 按钮「查看详情」<br/>按钮「导入到当前配置」→「确认导入」]
|
||||||
|
M5B --> Done([可对玩家开放;用「玩家抽奖记录」核对])
|
||||||
|
|
||||||
|
style O fill:#e8f4fc
|
||||||
|
style Done fill:#e8fce8
|
||||||
|
style M2F fill:#fdf6ec
|
||||||
|
style M2P fill:#fdf6ec
|
||||||
|
style M3D fill:#fde2e2
|
||||||
|
style M4 fill:#e1f3d8</pre>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h2>首次搭建推荐顺序(与上图环节对应)</h2>
|
||||||
|
<pre class="mermaid">
|
||||||
|
flowchart TD
|
||||||
|
O([开始配置]) --> R1[奖励配置 · 页签「奖励索引」· 按钮「保存」]
|
||||||
|
R1 --> R2[奖励配置 · 页签「大奖权重」· 按钮「保存」]
|
||||||
|
R2 --> R3[奖励配置 · 按钮「创建奖励对照」·「确认导入」]
|
||||||
|
R3 --> W[色子奖励权重 · 按钮「权重配比」· 按钮「提交」]
|
||||||
|
W --> P1[彩金池配置 · 行内「编辑」default / killScore ·「提交」]
|
||||||
|
P1 --> P2[彩金池配置 ·「查看当前彩金池」·「保存安全线」]
|
||||||
|
P2 --> PL[玩家管理 · 行内「编辑」· 档位权重 ·「提交」]
|
||||||
|
PL --> T{要仿真?}
|
||||||
|
T -->|是| Test[色子奖励权重 ·「一键测试权重」·「开始测试」]
|
||||||
|
Test --> Imp[权重测试记录 ·「查看详情」·「导入到当前配置」·「确认导入」]
|
||||||
|
T -->|否| Live([上线])
|
||||||
|
Imp --> Live
|
||||||
|
|
||||||
|
style O fill:#e8f4fc
|
||||||
|
style Live fill:#e8fce8
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="steps">
|
||||||
|
<div class="step"><strong>档位含义</strong>:T1 大奖 · T2 小赚 · T3 抽水 · T4 惩罚 · T5 再来一次(由「奖励索引」结算金额规则决定,见页内说明)。</div>
|
||||||
|
<div class="step"><strong>改「奖励索引」后</strong>:必须再点「创建奖励对照」→「确认导入」,否则抽奖仍用旧对照表。</div>
|
||||||
|
<div class="step"><strong>核对真实对局</strong>:大富翁-色子游戏 → 玩家抽奖记录(看奖励档位、色子点数、摇色子中奖平台币、中大奖平台币、底注、方向)。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
mermaid.initialize({
|
||||||
|
startOnLoad: true,
|
||||||
|
theme: 'neutral',
|
||||||
|
flowchart: { curve: 'basis', padding: 14, nodeSpacing: 24, rankSpacing: 36 }
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
42
saiadmin-artd/public/docs/flowcharts/dice-后台中奖逻辑配置.mmd
Normal file
42
saiadmin-artd/public/docs/flowcharts/dice-后台中奖逻辑配置.mmd
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
flowchart TD
|
||||||
|
O([按一局抽奖的真实顺序配置后台]) --> L1
|
||||||
|
|
||||||
|
L1[① 玩家选方向 + 底注] --> L1A[可选:大富翁-色子游戏 → 底注配置<br/>按钮:新增 / 行内编辑 → 提交]
|
||||||
|
L1A --> L2
|
||||||
|
|
||||||
|
L2[② 先随机抽出档位 T1~T5] --> L2Q{本局类型?}
|
||||||
|
L2Q -->|免费抽奖券| L2F[概率来源:杀分奖池 killScore]
|
||||||
|
L2Q -->|付费且彩金池杀分生效| L2F
|
||||||
|
L2Q -->|付费且未杀分| L2P[概率来源:该玩家档位权重]
|
||||||
|
|
||||||
|
L2F --> M2F[大富翁-色子游戏 → 彩金池配置<br/>按钮:行内「编辑」→ 名称 killScore<br/>填写 T1池权重~T5池权重 合计 100%<br/>按钮:「提交」]
|
||||||
|
L2P --> M2P[大富翁-色子游戏 → 玩家管理<br/>按钮:行内「编辑」<br/>填写 T1池权重~T5池权重 或 选择「彩金池配置」<br/>按钮:「提交」]
|
||||||
|
|
||||||
|
M2F --> L2K
|
||||||
|
M2P --> L2K
|
||||||
|
L2K[杀分何时对付费局生效] --> M2K[大富翁-色子游戏 → 彩金池配置<br/>按钮:「查看当前彩金池」<br/>填写「安全线」· 开关「开启杀分」<br/>按钮:「保存安全线」]
|
||||||
|
|
||||||
|
M2K --> L3
|
||||||
|
L3[③ 在档位内随机一条奖励行] --> M3A[须先有盘面金额与档位规则]
|
||||||
|
M3A --> M3B[大富翁-色子游戏 → 奖励配置<br/>页签「奖励索引」→ 填写结算金额等<br/>按钮:「保存」]
|
||||||
|
M3B --> M3C[奖励配置 → 按钮「创建奖励对照」<br/>弹窗 → 按钮「确认导入」]
|
||||||
|
M3C --> M3D[大富翁-色子游戏 → 色子奖励权重<br/>按钮:「权重配比」→ 页签顺时针/逆时针<br/>按 T1~T5 填各点数权重 → 按钮「提交」]
|
||||||
|
|
||||||
|
M3D --> L4
|
||||||
|
L4[④ 若抽到豹子点数 5/10/15/20/25/30] --> L4Q{本局是否杀分档位?}
|
||||||
|
L4Q -->|是| L4N[不触发豹子大奖]
|
||||||
|
L4Q -->|否| L4Y[可能触发豹子大奖]
|
||||||
|
L4Y --> M4[大富翁-色子游戏 → 奖励配置<br/>页签「大奖权重」→ 拖动权重滑条<br/>按钮:「保存」<br/>说明:点数 5、30 固定必中;10/15/20/25 可调]
|
||||||
|
|
||||||
|
L4N --> L5
|
||||||
|
M4 --> L5
|
||||||
|
L5[⑤ 验证后上线] --> M5A[色子奖励权重 → 按钮「一键测试权重」<br/>弹窗 → 按钮「开始测试」]
|
||||||
|
M5A --> M5B[权重测试记录 → 按钮「查看详情」<br/>按钮「导入到当前配置」→「确认导入」]
|
||||||
|
M5B --> Done([可对玩家开放;用「玩家抽奖记录」核对])
|
||||||
|
|
||||||
|
style O fill:#e8f4fc
|
||||||
|
style Done fill:#e8fce8
|
||||||
|
style M2F fill:#fdf6ec
|
||||||
|
style M2P fill:#fdf6ec
|
||||||
|
style M3D fill:#fde2e2
|
||||||
|
style M4 fill:#e1f3d8
|
||||||
26
saiadmin-artd/scripts/sync-dice-flowcharts.mjs
Normal file
26
saiadmin-artd/scripts/sync-dice-flowcharts.mjs
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* 将 server/docs/flowcharts 同步到 saiadmin-artd/public/docs/flowcharts
|
||||||
|
* 构建前执行,保证部署包内含最新流程图 HTML/MMD
|
||||||
|
*/
|
||||||
|
import fs from 'fs'
|
||||||
|
import path from 'path'
|
||||||
|
import { fileURLToPath } from 'url'
|
||||||
|
|
||||||
|
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
||||||
|
const artdRoot = path.resolve(__dirname, '..')
|
||||||
|
const repoRoot = path.resolve(artdRoot, '..')
|
||||||
|
const srcDir = path.join(repoRoot, 'server', 'docs', 'flowcharts')
|
||||||
|
const destDir = path.join(artdRoot, 'public', 'docs', 'flowcharts')
|
||||||
|
|
||||||
|
if (!fs.existsSync(srcDir)) {
|
||||||
|
console.warn('[sync-dice-flowcharts] 源目录不存在,跳过:', srcDir)
|
||||||
|
process.exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.mkdirSync(destDir, { recursive: true })
|
||||||
|
const names = fs.readdirSync(srcDir).filter((n) => /\.(html|mmd)$/i.test(n))
|
||||||
|
for (const name of names) {
|
||||||
|
fs.copyFileSync(path.join(srcDir, name), path.join(destDir, name))
|
||||||
|
console.log('[sync-dice-flowcharts] copied', name)
|
||||||
|
}
|
||||||
|
console.log('[sync-dice-flowcharts] done,', names.length, 'file(s)')
|
||||||
@@ -16,10 +16,11 @@
|
|||||||
*/
|
*/
|
||||||
import { AppRouteRecord } from '@/types/router'
|
import { AppRouteRecord } from '@/types/router'
|
||||||
import { router } from '@/router'
|
import { router } from '@/router'
|
||||||
|
import { resolveAppAssetUrl } from '@/utils/navigation/resolveAppAssetUrl'
|
||||||
|
|
||||||
// 打开外部链接
|
// 打开外部链接(含站内静态页,自动拼接部署 base)
|
||||||
export const openExternalLink = (link: string) => {
|
export const openExternalLink = (link: string) => {
|
||||||
window.open(link, '_blank')
|
window.open(resolveAppAssetUrl(link), '_blank', 'noopener,noreferrer')
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
19
saiadmin-artd/src/utils/navigation/resolveAppAssetUrl.ts
Normal file
19
saiadmin-artd/src/utils/navigation/resolveAppAssetUrl.ts
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* 解析菜单外链 / 静态资源路径(兼容 VITE_BASE_URL 子目录部署)
|
||||||
|
*/
|
||||||
|
export function resolveAppAssetUrl(relativeOrAbsolute: string): string {
|
||||||
|
const link = relativeOrAbsolute.trim()
|
||||||
|
if (!link) {
|
||||||
|
return link
|
||||||
|
}
|
||||||
|
if (/^https?:\/\//i.test(link)) {
|
||||||
|
return link
|
||||||
|
}
|
||||||
|
const base = import.meta.env.BASE_URL || '/'
|
||||||
|
const normalizedBase = base.endsWith('/') ? base : `${base}/`
|
||||||
|
const path = link.startsWith('/') ? link.slice(1) : link
|
||||||
|
if (typeof window === 'undefined') {
|
||||||
|
return `${normalizedBase}${path}`
|
||||||
|
}
|
||||||
|
return `${window.location.origin}${normalizedBase}${path}`
|
||||||
|
}
|
||||||
192
server/docs/flowcharts/dice-为何抽到该奖励.html
Normal file
192
server/docs/flowcharts/dice-为何抽到该奖励.html
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>为何最终抽到该奖励</title>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
||||||
|
<style>
|
||||||
|
* { box-sizing: border-box; }
|
||||||
|
body {
|
||||||
|
font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 24px 32px 48px;
|
||||||
|
background: #f5f7fa;
|
||||||
|
color: #1a1a2e;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
header { max-width: 1100px; margin: 0 auto 16px; }
|
||||||
|
h1 { font-size: 1.5rem; margin: 0 0 8px; font-weight: 600; }
|
||||||
|
.subtitle { color: #5c6370; font-size: 0.95rem; margin: 0; }
|
||||||
|
.card {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 28px 24px;
|
||||||
|
box-shadow: 0 2px 12px rgba(0,0,0,.06);
|
||||||
|
}
|
||||||
|
.copy-hint {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: 12px auto 0;
|
||||||
|
font-size: 0.88rem;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
.copy-box {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: 8px auto 0;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 12px 14px;
|
||||||
|
}
|
||||||
|
.copy-box summary { cursor: pointer; font-size: 0.9rem; color: #409eff; }
|
||||||
|
.copy-box pre {
|
||||||
|
margin: 10px 0 0;
|
||||||
|
font-size: 0.78rem;
|
||||||
|
line-height: 1.45;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-all;
|
||||||
|
max-height: 280px;
|
||||||
|
overflow: auto;
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
.legend {
|
||||||
|
max-width: 1100px;
|
||||||
|
margin: 20px auto 0;
|
||||||
|
padding: 16px 20px;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 12px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
.legend h2 { font-size: 1rem; margin: 0 0 10px; }
|
||||||
|
.legend ul { margin: 0; padding-left: 1.2em; }
|
||||||
|
.legend li { margin: 4px 0; }
|
||||||
|
.mermaid { display: flex; justify-content: center; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h1>为何最终抽到的是这个奖励</h1>
|
||||||
|
<p class="subtitle">业务说明:一局抽奖从开局到到账的决策顺序(仅用本项目菜单与业务用语)</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<p class="copy-hint">复制方式:展开下方「Mermaid 源码」全选复制,粘贴到 ProcessOn / draw.io / 飞书文档等支持 Mermaid 的流程图工具;或直接用浏览器打开本页看图。</p>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<pre class="mermaid">
|
||||||
|
flowchart TD
|
||||||
|
Start([玩家开始一局抽奖]) --> Dir[选择方向:顺时针 或 逆时针]
|
||||||
|
Dir --> Ante[选择底注倍数]
|
||||||
|
Ante --> Type{本局是否使用免费抽奖券?}
|
||||||
|
|
||||||
|
Type -->|是| Free[免费局]
|
||||||
|
Type -->|否且平台币足够| Paid[付费局:扣除底注对应平台币]
|
||||||
|
|
||||||
|
Free --> PoolKill[按「杀分奖池」的 T1~T5 档位概率抽签]
|
||||||
|
Paid --> KillCheck{彩金池已开启杀分<br/>且彩金池累计盈利 ≥ 安全线?}
|
||||||
|
KillCheck -->|是| PoolKill
|
||||||
|
KillCheck -->|否| PlayerW[按该玩家在「玩家管理」<br/>配置的 T1~T5 档位概率抽签]
|
||||||
|
|
||||||
|
PoolKill --> DrawTier[随机抽出档位 T1~T5]
|
||||||
|
PlayerW --> DrawTier
|
||||||
|
|
||||||
|
DrawTier --> PickRow[在「色子奖励权重」中<br/>取该档位 + 本局方向的所有行<br/>按行权重随机一条]
|
||||||
|
PickRow --> Got[得到:色子点数、结算金额、所属档位、落点格位]
|
||||||
|
|
||||||
|
Got --> KillMode{本局是否走杀分档位概率?}
|
||||||
|
KillMode -->|是| NoLeo[不发放豹子大奖<br/>且不会抽到仅能豹子的点数 5、30]
|
||||||
|
KillMode -->|否| NormalPath[按普通规则继续]
|
||||||
|
NoLeo --> DiceShow[生成五颗骰子并结算]
|
||||||
|
|
||||||
|
NormalPath --> Leopard{色子点数是否为<br/>5 / 10 / 15 / 20 / 25 / 30?}
|
||||||
|
Leopard -->|否| NormalWin[五颗骰子点数和 = 该点数<br/>奖金 = 结算金额 × 底注]
|
||||||
|
Leopard -->|是| LeoRule{点数?}
|
||||||
|
LeoRule -->|5 或 30| MustBig[必定豹子大奖]
|
||||||
|
LeoRule -->|10 / 15 / 20 / 25| BigRate[按「奖励配置」页签「大奖权重」<br/>该点数权重决定真豹子或普通展示]
|
||||||
|
MustBig --> BigPay[豹子奖金 = 大奖结算金额 × 底注<br/>本局不再发该点数的普通奖]
|
||||||
|
BigRate -->|命中豹子| BigPay
|
||||||
|
BigRate -->|未中豹子| NonLeo[五颗骰子为非豹子组合<br/>奖金 = 结算金额 × 底注]
|
||||||
|
|
||||||
|
NormalWin --> T5Check
|
||||||
|
NonLeo --> T5Check
|
||||||
|
BigPay --> EndBig([本局结束:以豹子大奖为准])
|
||||||
|
DiceShow --> T5Check{档位为 T5 再来一次?}
|
||||||
|
T5Check -->|是| FreeTicket[赠送 1 次免费抽奖券<br/>下次免费局须相同底注]
|
||||||
|
T5Check -->|否| EndNormal([本局结束:以普通奖或惩罚为准])
|
||||||
|
FreeTicket --> EndNormal
|
||||||
|
|
||||||
|
style Start fill:#e8f4fc
|
||||||
|
style EndNormal fill:#e8fce8
|
||||||
|
style EndBig fill:#fff3e0
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<details class="copy-box">
|
||||||
|
<summary>Mermaid 源码(可复制,与同目录 .mmd 文件一致)</summary>
|
||||||
|
<pre id="mermaid-src">flowchart TD
|
||||||
|
Start([玩家开始一局抽奖]) --> Dir[选择方向:顺时针 或 逆时针]
|
||||||
|
Dir --> Ante[选择底注倍数]
|
||||||
|
Ante --> Type{本局是否使用免费抽奖券?}
|
||||||
|
|
||||||
|
Type -->|是| Free[免费局]
|
||||||
|
Type -->|否且平台币足够| Paid[付费局:扣除底注对应平台币]
|
||||||
|
|
||||||
|
Free --> PoolKill[按「杀分奖池」的 T1~T5 档位概率抽签]
|
||||||
|
Paid --> KillCheck{彩金池已开启杀分<br/>且彩金池累计盈利 ≥ 安全线?}
|
||||||
|
KillCheck -->|是| PoolKill
|
||||||
|
KillCheck -->|否| PlayerW[按该玩家在「玩家管理」<br/>配置的 T1~T5 档位概率抽签]
|
||||||
|
|
||||||
|
PoolKill --> DrawTier[随机抽出档位 T1~T5]
|
||||||
|
PlayerW --> DrawTier
|
||||||
|
|
||||||
|
DrawTier --> PickRow[在「色子奖励权重」中<br/>取该档位 + 本局方向的所有行<br/>按行权重随机一条]
|
||||||
|
PickRow --> Got[得到:色子点数、结算金额、所属档位、落点格位]
|
||||||
|
|
||||||
|
Got --> KillMode{本局是否走杀分档位概率?}
|
||||||
|
KillMode -->|是| NoLeo[不发放豹子大奖<br/>且不会抽到仅能豹子的点数 5、30]
|
||||||
|
KillMode -->|否| NormalPath[按普通规则继续]
|
||||||
|
NoLeo --> DiceShow[生成五颗骰子并结算]
|
||||||
|
|
||||||
|
NormalPath --> Leopard{色子点数是否为<br/>5 / 10 / 15 / 20 / 25 / 30?}
|
||||||
|
Leopard -->|否| NormalWin[五颗骰子点数和 = 该点数<br/>奖金 = 结算金额 × 底注]
|
||||||
|
Leopard -->|是| LeoRule{点数?}
|
||||||
|
LeoRule -->|5 或 30| MustBig[必定豹子大奖]
|
||||||
|
LeoRule -->|10 / 15 / 20 / 25| BigRate[按「奖励配置」页签「大奖权重」<br/>该点数权重决定真豹子或普通展示]
|
||||||
|
MustBig --> BigPay[豹子奖金 = 大奖结算金额 × 底注<br/>本局不再发该点数的普通奖]
|
||||||
|
BigRate -->|命中豹子| BigPay
|
||||||
|
BigRate -->|未中豹子| NonLeo[五颗骰子为非豹子组合<br/>奖金 = 结算金额 × 底注]
|
||||||
|
|
||||||
|
NormalWin --> T5Check
|
||||||
|
NonLeo --> T5Check
|
||||||
|
BigPay --> EndBig([本局结束:以豹子大奖为准])
|
||||||
|
DiceShow --> T5Check{档位为 T5 再来一次?}
|
||||||
|
T5Check -->|是| FreeTicket[赠送 1 次免费抽奖券<br/>下次免费局须相同底注]
|
||||||
|
T5Check -->|否| EndNormal([本局结束:以普通奖或惩罚为准])
|
||||||
|
FreeTicket --> EndNormal
|
||||||
|
|
||||||
|
style Start fill:#e8f4fc
|
||||||
|
style EndNormal fill:#e8fce8
|
||||||
|
style EndBig fill:#fff3e0</pre>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<div class="legend">
|
||||||
|
<h2>读图要点</h2>
|
||||||
|
<ul>
|
||||||
|
<li><strong>两步抽签</strong>:先抽档位 T1~T5(大奖 / 小赚 / 抽水 / 惩罚 / 再来一次),再在该档位 + 方向的多条奖励里按权重抽具体点数与结算金额。</li>
|
||||||
|
<li><strong>免费局与杀分局</strong>:都用杀分奖池的档位概率;一般不会出豹子大奖,也不会抽到只能组成豹子的点数 5、30。</li>
|
||||||
|
<li><strong>普通付费局</strong>:彩金池未到杀分条件时,用该玩家在「玩家管理」里的档位权重,才可能按「大奖权重」出豹子。</li>
|
||||||
|
<li><strong>玩家最终看到</strong>:色子点数、五颗骰子图案、到账平台币(普通奖 + 豹子奖)、是否获得「再来一次」免费券。</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
mermaid.initialize({
|
||||||
|
startOnLoad: true,
|
||||||
|
theme: 'neutral',
|
||||||
|
flowchart: { curve: 'basis', padding: 16, nodeSpacing: 28, rankSpacing: 40 }
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
44
server/docs/flowcharts/dice-为何抽到该奖励.mmd
Normal file
44
server/docs/flowcharts/dice-为何抽到该奖励.mmd
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
flowchart TD
|
||||||
|
Start([玩家开始一局抽奖]) --> Dir[选择方向:顺时针 或 逆时针]
|
||||||
|
Dir --> Ante[选择底注倍数]
|
||||||
|
Ante --> Type{本局是否使用免费抽奖券?}
|
||||||
|
|
||||||
|
Type -->|是| Free[免费局]
|
||||||
|
Type -->|否且平台币足够| Paid[付费局:扣除底注对应平台币]
|
||||||
|
|
||||||
|
Free --> PoolKill[按「杀分奖池」的 T1~T5 档位概率抽签]
|
||||||
|
Paid --> KillCheck{彩金池已开启杀分<br/>且彩金池累计盈利 ≥ 安全线?}
|
||||||
|
KillCheck -->|是| PoolKill
|
||||||
|
KillCheck -->|否| PlayerW[按该玩家在「玩家管理」<br/>配置的 T1~T5 档位概率抽签]
|
||||||
|
|
||||||
|
PoolKill --> DrawTier[随机抽出档位 T1~T5]
|
||||||
|
PlayerW --> DrawTier
|
||||||
|
|
||||||
|
DrawTier --> PickRow[在「色子奖励权重」中<br/>取该档位 + 本局方向的所有行<br/>按行权重随机一条]
|
||||||
|
PickRow --> Got[得到:色子点数、结算金额、所属档位、落点格位]
|
||||||
|
|
||||||
|
Got --> KillMode{本局是否走杀分档位概率?}
|
||||||
|
KillMode -->|是| NoLeo[不发放豹子大奖<br/>且不会抽到仅能豹子的点数 5、30]
|
||||||
|
KillMode -->|否| NormalPath[按普通规则继续]
|
||||||
|
NoLeo --> DiceShow[生成五颗骰子并结算]
|
||||||
|
|
||||||
|
NormalPath --> Leopard{色子点数是否为<br/>5 / 10 / 15 / 20 / 25 / 30?}
|
||||||
|
Leopard -->|否| NormalWin[五颗骰子点数和 = 该点数<br/>奖金 = 结算金额 × 底注]
|
||||||
|
Leopard -->|是| LeoRule{点数?}
|
||||||
|
LeoRule -->|5 或 30| MustBig[必定豹子大奖]
|
||||||
|
LeoRule -->|10 / 15 / 20 / 25| BigRate[按「奖励配置」页签「大奖权重」<br/>该点数权重决定真豹子或普通展示]
|
||||||
|
MustBig --> BigPay[豹子奖金 = 大奖结算金额 × 底注<br/>本局不再发该点数的普通奖]
|
||||||
|
BigRate -->|命中豹子| BigPay
|
||||||
|
BigRate -->|未中豹子| NonLeo[五颗骰子为非豹子组合<br/>奖金 = 结算金额 × 底注]
|
||||||
|
|
||||||
|
NormalWin --> T5Check
|
||||||
|
NonLeo --> T5Check
|
||||||
|
BigPay --> EndBig([本局结束:以豹子大奖为准])
|
||||||
|
DiceShow --> T5Check{档位为 T5 再来一次?}
|
||||||
|
T5Check -->|是| FreeTicket[赠送 1 次免费抽奖券<br/>下次免费局须相同底注]
|
||||||
|
T5Check -->|否| EndNormal([本局结束:以普通奖或惩罚为准])
|
||||||
|
FreeTicket --> EndNormal
|
||||||
|
|
||||||
|
style Start fill:#e8f4fc
|
||||||
|
style EndNormal fill:#e8fce8
|
||||||
|
style EndBig fill:#fff3e0
|
||||||
219
server/docs/flowcharts/dice-后台中奖逻辑配置.html
Normal file
219
server/docs/flowcharts/dice-后台中奖逻辑配置.html
Normal file
@@ -0,0 +1,219 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>后台如何配置中奖逻辑</title>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
||||||
|
<style>
|
||||||
|
* { box-sizing: border-box; }
|
||||||
|
body {
|
||||||
|
font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 24px 32px 48px;
|
||||||
|
background: #f0f4f8;
|
||||||
|
color: #1a1a2e;
|
||||||
|
line-height: 1.55;
|
||||||
|
}
|
||||||
|
header { max-width: 1200px; margin: 0 auto 16px; }
|
||||||
|
h1 { font-size: 1.45rem; margin: 0 0 6px; font-weight: 600; }
|
||||||
|
.subtitle { color: #5c6370; font-size: 0.92rem; margin: 0; }
|
||||||
|
.tip {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto 16px;
|
||||||
|
padding: 12px 16px;
|
||||||
|
background: #fff8e6;
|
||||||
|
border-left: 4px solid #e6a23c;
|
||||||
|
border-radius: 6px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.card {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto 20px;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 24px 20px;
|
||||||
|
box-shadow: 0 2px 12px rgba(0,0,0,.06);
|
||||||
|
}
|
||||||
|
.card h2 { font-size: 1.05rem; margin: 0 0 12px; color: #303133; }
|
||||||
|
.copy-hint {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto 12px;
|
||||||
|
font-size: 0.88rem;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
.copy-box {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 8px auto 20px;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 12px 14px;
|
||||||
|
}
|
||||||
|
.copy-box summary { cursor: pointer; font-size: 0.9rem; color: #409eff; }
|
||||||
|
.copy-box pre {
|
||||||
|
margin: 10px 0 0;
|
||||||
|
font-size: 0.76rem;
|
||||||
|
line-height: 1.4;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-all;
|
||||||
|
max-height: 320px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.steps {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: grid;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
.step {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 12px 16px;
|
||||||
|
border: 1px solid #e4e7ed;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.step strong { color: #409eff; }
|
||||||
|
.mermaid { display: flex; justify-content: center; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h1>后台如何配置中奖逻辑</h1>
|
||||||
|
<p class="subtitle">按「一局真实抽奖」顺序:每个环节对应左侧菜单与页面按钮(与前台逻辑一致)</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<p class="tip">菜单根目录:<strong>大富翁-色子游戏</strong>。多渠道后台请先选顶部<strong>渠道</strong>,再改该渠道数据。</p>
|
||||||
|
<p class="copy-hint">复制:展开「Mermaid 源码」粘贴到流程图工具;日常维护也可打开同目录 <code>dice-后台中奖逻辑配置.mmd</code>。</p>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h2>主流程图(抽奖环节 → 去哪点哪个按钮)</h2>
|
||||||
|
<pre class="mermaid">
|
||||||
|
flowchart TD
|
||||||
|
O([按一局抽奖的真实顺序配置后台]) --> L1
|
||||||
|
|
||||||
|
L1[① 玩家选方向 + 底注] --> L1A[可选:大富翁-色子游戏 → 底注配置<br/>按钮:新增 / 行内编辑 → 提交]
|
||||||
|
L1A --> L2
|
||||||
|
|
||||||
|
L2[② 先随机抽出档位 T1~T5] --> L2Q{本局类型?}
|
||||||
|
L2Q -->|免费抽奖券| L2F[概率来源:杀分奖池 killScore]
|
||||||
|
L2Q -->|付费且彩金池杀分生效| L2F
|
||||||
|
L2Q -->|付费且未杀分| L2P[概率来源:该玩家档位权重]
|
||||||
|
|
||||||
|
L2F --> M2F[大富翁-色子游戏 → 彩金池配置<br/>按钮:行内「编辑」→ 名称 killScore<br/>填写 T1池权重~T5池权重 合计 100%<br/>按钮:「提交」]
|
||||||
|
L2P --> M2P[大富翁-色子游戏 → 玩家管理<br/>按钮:行内「编辑」<br/>填写 T1池权重~T5池权重 或 选择「彩金池配置」<br/>按钮:「提交」]
|
||||||
|
|
||||||
|
M2F --> L2K
|
||||||
|
M2P --> L2K
|
||||||
|
L2K[杀分何时对付费局生效] --> M2K[大富翁-色子游戏 → 彩金池配置<br/>按钮:「查看当前彩金池」<br/>填写「安全线」· 开关「开启杀分」<br/>按钮:「保存安全线」]
|
||||||
|
|
||||||
|
M2K --> L3
|
||||||
|
L3[③ 在档位内随机一条奖励行] --> M3A[须先有盘面金额与档位规则]
|
||||||
|
M3A --> M3B[大富翁-色子游戏 → 奖励配置<br/>页签「奖励索引」→ 填写结算金额等<br/>按钮:「保存」]
|
||||||
|
M3B --> M3C[奖励配置 → 按钮「创建奖励对照」<br/>弹窗 → 按钮「确认导入」]
|
||||||
|
M3C --> M3D[大富翁-色子游戏 → 色子奖励权重<br/>按钮:「权重配比」→ 页签顺时针/逆时针<br/>按 T1~T5 填各点数权重 → 按钮「提交」]
|
||||||
|
|
||||||
|
M3D --> L4
|
||||||
|
L4[④ 若抽到豹子点数 5/10/15/20/25/30] --> L4Q{本局是否杀分档位?}
|
||||||
|
L4Q -->|是| L4N[不触发豹子大奖]
|
||||||
|
L4Q -->|否| L4Y[可能触发豹子大奖]
|
||||||
|
L4Y --> M4[大富翁-色子游戏 → 奖励配置<br/>页签「大奖权重」→ 拖动权重滑条<br/>按钮:「保存」<br/>说明:点数 5、30 固定必中;10/15/20/25 可调]
|
||||||
|
|
||||||
|
L4N --> L5
|
||||||
|
M4 --> L5
|
||||||
|
L5[⑤ 验证后上线] --> M5A[色子奖励权重 → 按钮「一键测试权重」<br/>弹窗 → 按钮「开始测试」]
|
||||||
|
M5A --> M5B[权重测试记录 → 按钮「查看详情」<br/>按钮「导入到当前配置」→「确认导入」]
|
||||||
|
M5B --> Done([可对玩家开放;用「玩家抽奖记录」核对])
|
||||||
|
|
||||||
|
style O fill:#e8f4fc
|
||||||
|
style Done fill:#e8fce8
|
||||||
|
style M2F fill:#fdf6ec
|
||||||
|
style M2P fill:#fdf6ec
|
||||||
|
style M3D fill:#fde2e2
|
||||||
|
style M4 fill:#e1f3d8
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<details class="copy-box">
|
||||||
|
<summary>Mermaid 源码(可复制,与同目录 .mmd 文件一致)</summary>
|
||||||
|
<pre id="mermaid-src">flowchart TD
|
||||||
|
O([按一局抽奖的真实顺序配置后台]) --> L1
|
||||||
|
|
||||||
|
L1[① 玩家选方向 + 底注] --> L1A[可选:大富翁-色子游戏 → 底注配置<br/>按钮:新增 / 行内编辑 → 提交]
|
||||||
|
L1A --> L2
|
||||||
|
|
||||||
|
L2[② 先随机抽出档位 T1~T5] --> L2Q{本局类型?}
|
||||||
|
L2Q -->|免费抽奖券| L2F[概率来源:杀分奖池 killScore]
|
||||||
|
L2Q -->|付费且彩金池杀分生效| L2F
|
||||||
|
L2Q -->|付费且未杀分| L2P[概率来源:该玩家档位权重]
|
||||||
|
|
||||||
|
L2F --> M2F[大富翁-色子游戏 → 彩金池配置<br/>按钮:行内「编辑」→ 名称 killScore<br/>填写 T1池权重~T5池权重 合计 100%<br/>按钮:「提交」]
|
||||||
|
L2P --> M2P[大富翁-色子游戏 → 玩家管理<br/>按钮:行内「编辑」<br/>填写 T1池权重~T5池权重 或 选择「彩金池配置」<br/>按钮:「提交」]
|
||||||
|
|
||||||
|
M2F --> L2K
|
||||||
|
M2P --> L2K
|
||||||
|
L2K[杀分何时对付费局生效] --> M2K[大富翁-色子游戏 → 彩金池配置<br/>按钮:「查看当前彩金池」<br/>填写「安全线」· 开关「开启杀分」<br/>按钮:「保存安全线」]
|
||||||
|
|
||||||
|
M2K --> L3
|
||||||
|
L3[③ 在档位内随机一条奖励行] --> M3A[须先有盘面金额与档位规则]
|
||||||
|
M3A --> M3B[大富翁-色子游戏 → 奖励配置<br/>页签「奖励索引」→ 填写结算金额等<br/>按钮:「保存」]
|
||||||
|
M3B --> M3C[奖励配置 → 按钮「创建奖励对照」<br/>弹窗 → 按钮「确认导入」]
|
||||||
|
M3C --> M3D[大富翁-色子游戏 → 色子奖励权重<br/>按钮:「权重配比」→ 页签顺时针/逆时针<br/>按 T1~T5 填各点数权重 → 按钮「提交」]
|
||||||
|
|
||||||
|
M3D --> L4
|
||||||
|
L4[④ 若抽到豹子点数 5/10/15/20/25/30] --> L4Q{本局是否杀分档位?}
|
||||||
|
L4Q -->|是| L4N[不触发豹子大奖]
|
||||||
|
L4Q -->|否| L4Y[可能触发豹子大奖]
|
||||||
|
L4Y --> M4[大富翁-色子游戏 → 奖励配置<br/>页签「大奖权重」→ 拖动权重滑条<br/>按钮:「保存」<br/>说明:点数 5、30 固定必中;10/15/20/25 可调]
|
||||||
|
|
||||||
|
L4N --> L5
|
||||||
|
M4 --> L5
|
||||||
|
L5[⑤ 验证后上线] --> M5A[色子奖励权重 → 按钮「一键测试权重」<br/>弹窗 → 按钮「开始测试」]
|
||||||
|
M5A --> M5B[权重测试记录 → 按钮「查看详情」<br/>按钮「导入到当前配置」→「确认导入」]
|
||||||
|
M5B --> Done([可对玩家开放;用「玩家抽奖记录」核对])
|
||||||
|
|
||||||
|
style O fill:#e8f4fc
|
||||||
|
style Done fill:#e8fce8
|
||||||
|
style M2F fill:#fdf6ec
|
||||||
|
style M2P fill:#fdf6ec
|
||||||
|
style M3D fill:#fde2e2
|
||||||
|
style M4 fill:#e1f3d8</pre>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<h2>首次搭建推荐顺序(与上图环节对应)</h2>
|
||||||
|
<pre class="mermaid">
|
||||||
|
flowchart TD
|
||||||
|
O([开始配置]) --> R1[奖励配置 · 页签「奖励索引」· 按钮「保存」]
|
||||||
|
R1 --> R2[奖励配置 · 页签「大奖权重」· 按钮「保存」]
|
||||||
|
R2 --> R3[奖励配置 · 按钮「创建奖励对照」·「确认导入」]
|
||||||
|
R3 --> W[色子奖励权重 · 按钮「权重配比」· 按钮「提交」]
|
||||||
|
W --> P1[彩金池配置 · 行内「编辑」default / killScore ·「提交」]
|
||||||
|
P1 --> P2[彩金池配置 ·「查看当前彩金池」·「保存安全线」]
|
||||||
|
P2 --> PL[玩家管理 · 行内「编辑」· 档位权重 ·「提交」]
|
||||||
|
PL --> T{要仿真?}
|
||||||
|
T -->|是| Test[色子奖励权重 ·「一键测试权重」·「开始测试」]
|
||||||
|
Test --> Imp[权重测试记录 ·「查看详情」·「导入到当前配置」·「确认导入」]
|
||||||
|
T -->|否| Live([上线])
|
||||||
|
Imp --> Live
|
||||||
|
|
||||||
|
style O fill:#e8f4fc
|
||||||
|
style Live fill:#e8fce8
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="steps">
|
||||||
|
<div class="step"><strong>档位含义</strong>:T1 大奖 · T2 小赚 · T3 抽水 · T4 惩罚 · T5 再来一次(由「奖励索引」结算金额规则决定,见页内说明)。</div>
|
||||||
|
<div class="step"><strong>改「奖励索引」后</strong>:必须再点「创建奖励对照」→「确认导入」,否则抽奖仍用旧对照表。</div>
|
||||||
|
<div class="step"><strong>核对真实对局</strong>:大富翁-色子游戏 → 玩家抽奖记录(看奖励档位、色子点数、摇色子中奖平台币、中大奖平台币、底注、方向)。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
mermaid.initialize({
|
||||||
|
startOnLoad: true,
|
||||||
|
theme: 'neutral',
|
||||||
|
flowchart: { curve: 'basis', padding: 14, nodeSpacing: 24, rankSpacing: 36 }
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
42
server/docs/flowcharts/dice-后台中奖逻辑配置.mmd
Normal file
42
server/docs/flowcharts/dice-后台中奖逻辑配置.mmd
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
flowchart TD
|
||||||
|
O([按一局抽奖的真实顺序配置后台]) --> L1
|
||||||
|
|
||||||
|
L1[① 玩家选方向 + 底注] --> L1A[可选:大富翁-色子游戏 → 底注配置<br/>按钮:新增 / 行内编辑 → 提交]
|
||||||
|
L1A --> L2
|
||||||
|
|
||||||
|
L2[② 先随机抽出档位 T1~T5] --> L2Q{本局类型?}
|
||||||
|
L2Q -->|免费抽奖券| L2F[概率来源:杀分奖池 killScore]
|
||||||
|
L2Q -->|付费且彩金池杀分生效| L2F
|
||||||
|
L2Q -->|付费且未杀分| L2P[概率来源:该玩家档位权重]
|
||||||
|
|
||||||
|
L2F --> M2F[大富翁-色子游戏 → 彩金池配置<br/>按钮:行内「编辑」→ 名称 killScore<br/>填写 T1池权重~T5池权重 合计 100%<br/>按钮:「提交」]
|
||||||
|
L2P --> M2P[大富翁-色子游戏 → 玩家管理<br/>按钮:行内「编辑」<br/>填写 T1池权重~T5池权重 或 选择「彩金池配置」<br/>按钮:「提交」]
|
||||||
|
|
||||||
|
M2F --> L2K
|
||||||
|
M2P --> L2K
|
||||||
|
L2K[杀分何时对付费局生效] --> M2K[大富翁-色子游戏 → 彩金池配置<br/>按钮:「查看当前彩金池」<br/>填写「安全线」· 开关「开启杀分」<br/>按钮:「保存安全线」]
|
||||||
|
|
||||||
|
M2K --> L3
|
||||||
|
L3[③ 在档位内随机一条奖励行] --> M3A[须先有盘面金额与档位规则]
|
||||||
|
M3A --> M3B[大富翁-色子游戏 → 奖励配置<br/>页签「奖励索引」→ 填写结算金额等<br/>按钮:「保存」]
|
||||||
|
M3B --> M3C[奖励配置 → 按钮「创建奖励对照」<br/>弹窗 → 按钮「确认导入」]
|
||||||
|
M3C --> M3D[大富翁-色子游戏 → 色子奖励权重<br/>按钮:「权重配比」→ 页签顺时针/逆时针<br/>按 T1~T5 填各点数权重 → 按钮「提交」]
|
||||||
|
|
||||||
|
M3D --> L4
|
||||||
|
L4[④ 若抽到豹子点数 5/10/15/20/25/30] --> L4Q{本局是否杀分档位?}
|
||||||
|
L4Q -->|是| L4N[不触发豹子大奖]
|
||||||
|
L4Q -->|否| L4Y[可能触发豹子大奖]
|
||||||
|
L4Y --> M4[大富翁-色子游戏 → 奖励配置<br/>页签「大奖权重」→ 拖动权重滑条<br/>按钮:「保存」<br/>说明:点数 5、30 固定必中;10/15/20/25 可调]
|
||||||
|
|
||||||
|
L4N --> L5
|
||||||
|
M4 --> L5
|
||||||
|
L5[⑤ 验证后上线] --> M5A[色子奖励权重 → 按钮「一键测试权重」<br/>弹窗 → 按钮「开始测试」]
|
||||||
|
M5A --> M5B[权重测试记录 → 按钮「查看详情」<br/>按钮「导入到当前配置」→「确认导入」]
|
||||||
|
M5B --> Done([可对玩家开放;用「玩家抽奖记录」核对])
|
||||||
|
|
||||||
|
style O fill:#e8f4fc
|
||||||
|
style Done fill:#e8fce8
|
||||||
|
style M2F fill:#fdf6ec
|
||||||
|
style M2P fill:#fdf6ec
|
||||||
|
style M3D fill:#fde2e2
|
||||||
|
style M4 fill:#e1f3d8
|
||||||
Reference in New Issue
Block a user