WebShopX 算法 详细手册
文档性质:深度手册
🏗️ 第一章:核心架构与设计哲学
动态价格算法、拍卖机制算法让 WebShopX 从传统的“静态商店”转向一个基于**热度反馈机制(Demand-Driven Feedback)**驱动的自适应经济引擎。系统的核心目标是通过算法自动调节物价,利用数学模型对冲服务器的通货膨胀。
1.1 核心防护机制
- 🛡️ 钳制函数 (Clamping):所有动态价格在经过复杂公式计算后,最终都会被收敛在服主设定的绝对安全区间内: 这意味着无论算法如何暴走,物价永远不会击穿 (最高限价)和 (底价)。
- 📜 事务溯源:底层的
MarketService与持久化层深度绑定,每一笔订单、每一次价格演变均有详细日志记录,支持发生挤兑时的经济复盘。 - 🔒 乐观锁并发:采用基于
version字段的数据库乐观锁控制,在高频交易(如全服抢购)场景下,严格防止“超卖”和“读写竞争”产生的经济漏洞。
🧪 第二章:动态价格算法全解析 (7大基石模型)
系统通过监测需求热度 (),利用以下数学模型实时计算成交价。每一种算法都对应着不同的经济调节目的。
📈 1. 线性需求 (LINEAR_DEMAND_V1)
最经典、最直观的供需模型。买得越多,涨得越稳。
- 数学公式:
- 参数解析: 为价格斜率。若 ,每增加 1 点热度,价格上涨 0.5。
- 经济学应用:适用于**基础矿物(铁锭、煤炭)**等产出稳定、消耗极大的硬通货。能有效设定服务器的基础物价基准。
📉 2. 边际递减 (DIMINISHING_RETURN_V1)
初期涨价明显,但随着热度不断攀升,涨价幅度会遭到强力压制,最终无限趋近于一个上限。
- 数学公式:
- 参数解析:极限溢价为 。若 ,则无论买多少,最高只会比原价贵 100。
- 经济学应用:适用于大宗建筑方块(泥土、石砖、混凝土)。保护建筑党玩家,防止他们因为购买几千个方块而破产。
🌊 3. 对数平滑 (LOG_SMOOTH_V1)
对数字变化极度脱敏的模型,曲线非常圆润。
- 数学公式:
- 参数解析: 控制平滑度。在热度从 100 涨到 1000 的过程中,价格可能只上涨了不到一倍。
- 经济学应用:适用于日常高频消耗品(火把、面包、箭矢)。玩家零碎购买时,体感上几乎察觉不到涨价,体验极佳。
🚀 4. 指数防护 (EXPONENTIAL_DEFENSE_V1)
极其暴力的反垄断防御塔。热度微小的提升会导致价格呈几何倍数核爆级上涨。
- 数学公式:
- 参数解析: 为指数倍率。通常设置在 0.01 到 0.05 之间。
- 经济学应用:适用于战略级物资(下界合金锭、信标、极品附魔书)。允许普通玩家买一两个,但若土豪企图一次性买 50 个清空库存,天文数字的价格会瞬间抽干他的钱包。强烈建议严格配置 。
🚧 5. 阈值分段 (THRESHOLD_STEP_V1)
不触碰红线就相安无事,一旦越界重拳出击。
- 数学公式:
- 当 时:
- 当 时: (其中 )
- 参数解析: 为安全阈值。
- 经济学应用:适用于功能性道具(潜影壳、经验瓶、刷怪蛋)。精准区分“正常玩家买来用”和“工作室大规模囤货倒卖”。
⚖️ 6. 弹性模型 (ELASTICITY_V1)
引入经济学中的“价格弹性”概念。
- 数学公式:
- 参数解析:(Eta)为弹性指数。 市场表现迟钝(抗跌抗涨), 市场极度敏感(暴涨暴跌)。
- 经济学应用:适用于特殊代币、绿宝石。服主可以通过调整 直接操控市场的神经敏感度。
🔥 7. 恐慌抢购 (PANIC_BUYING_V1)
模拟真实世界中的“羊群效应”与挤兑危机。
- 数学公式:
- 参数解析:引入了二次项 。突破阈值 后,价格进入抛物线加速上涨轨道。
- 经济学应用:适用于绝版头颅、活动限量盲盒。用极端的涨幅引爆玩家的抢购心理。
🔨 第三章:拍卖机制算法全解析 (4大模式)
📢 1. 英式公开拍卖 (English Auction)
- 机制运行:经典的“价高者得”。每一次有效出价都会成为新的基准价。
- 反制狙击 (Anti-Snipe):系统内置软性延时机制。如果在结束前最后 秒内有人出价,倒计时会自动延长 秒,彻底消灭“在最后一秒卡点出价”的玩法。
- 资产冻结:玩家出价瞬间,对应钱包资金即被强锁;一旦被后来者超越,
AsyncRefundTask会在毫秒级内将资金解冻退回。
📉 2. 荷兰减价拍卖 (Dutch Auction)
- 机制运行:从一个不可理喻的天价起步,价格随时间流逝呈阶梯式下跌(例如每小时降价 5%)。
- 心理博弈:全服玩家同时盯着一个物品,先点击“买断”的人瞬间成交。等得越久越便宜,但也越容易被截胡。
- 应用场景:服务器官方清仓大甩卖、高价值地皮起拍。
📦 3. 密封第二价格拍卖 (Vickrey Auction)
- 机制运行:暗拍模式。在开标前,所有人的出价都被加密隐藏。截止后,出价最高的人获胜,但他只需要支付“第二高的出价金额”。
- 经济学原理:诺贝尔经济学奖级的设计。这在博弈论中消除了“赢家诅咒”,在数学上证明了**“玩家报出自己内心真实的最高底线”是唯一的绝对优势策略(Dominant Strategy)**。无需互相揣测,回归物品真实价值。
🕯️ 4. 蜡烛随机拍卖 (Candle Auction)
- 机制运行:流程类似英式拍卖,但真实的流拍结束点是一个隐藏的随机数。
- 应用特色:表面倒计时是晚上 8:00 结束,但系统可能在 7:55 到 8:00 之间的任意一毫秒悄悄落锤判定。玩家被迫尽早给出有竞争力的价格,而不是苟到最后。
🔧 第四章:服主深度调参实战指南
4.1 价格热度的双轨驱动
动态价格的引擎不仅受买入影响,还受时间影响:
- 正向反馈(买入/事件驱动):玩家每次下单,系统根据购买数量向该商品池注入热度(Demand)。
- 负向反馈(时间驱动/衰减):系统内部运行着一个 Cron 任务,以固定周期(如每 6 小时)执行衰减衰减:。
4.2 调参安全红线 (Safety Protocols)
- 灰度测试:不要一上来就把全服硬通货改成动态价格。先用“腐肉”、“骨头”这种边缘物品开辟一个试验田,观察玩家行为和曲线 3-5 天后再全面推广。
- 热更新免覆盖:你可以随时修改
web/docs/目录下的.md说明文档。插件检测到文件被修改后,会触发保护机制,不会在重启时用默认文档覆盖你的修改。
🐛 第五章:技术故障排查与工单支持
Q1: 为什么网页端看到的价格,点购买时提示价格已变化?
A: 这是正常的。在高频动态市场中,你浏览页面和发起请求之间存在时间差。如果有别人抢先买了一份,热度更新会导致最新价格高于你看到的缓存价。这也是 version 乐观锁在起保护作用。
Q2: 玩家反馈拍卖流拍后,钱卡在冻结状态没有退回?
A: 大概率是服务器遭遇了瞬时的 TPS 骤降或内存溢出(OOM),导致异步退款任务(AsyncRefundTask)被挂起。
解决方案:请服主在后台查看日志定位报错,然后可手动调用管理员指令或重启插件同步状态。
📩 核心技术支持与 Bug 追踪
WebShopX 正在逐步完善中。如果您在部署过程中遇到任何 Bug,或希望加入到代码协作中,请务必联系我们!
👉 请至 GitHub 官方仓库提交 Issue: WebShopX-Issues (点击进入反馈中心)