跳到主要内容

PRD-063 修炼与心法

文档编号:PRD-063
版本:v1.0
状态:已通过
适用端:服务端 / 客户端
脚本挂载:lua/numeric/cultivation.lua

1. 背景与目标​

修炼/心法提供离线/在线的长线属性成长。修炼队列、突破、加速、心法组合适合用 Lua 编排。

目标

  • 4 个修炼位,可同时修炼不同心法。
  • 修炼按时间产出修为,突破提升心法等级。
  • 心法可组合激活羁绊,提供额外属性。

2. 核心规则​

2.1 修炼位​

  • 初始 1 个,等级/道具解锁第 2–4 个。
  • 每个位可修炼 1 本心法,修炼中不可替换。
  • 修炼速度受心法品质、修炼加成、VIP 影响。

2.2 修为与突破​

  • 每 10 秒产出 1 点修为,离线按 50% 结算,上限 12 小时。
  • 修为满可突破,成功率随等级下降,失败积累悟性。
  • 悟性满 100 必成;突破后心法等级 +1,属性提升。
  • 心法等级上限受角色等级/转生次数限制。

2.3 羁绊​

  • 心法分 4 系:攻击、防御、生命、辅助。
  • 同时装备 2/4 本同系心法激活羁绊。
  • 羁绊只统计当前修炼位,不统计背包。

3. 服务端设计​

3.1 Lua 脚本设计​

-- lua/numeric/cultivation.lua
Cultivation = {
slots = 4,
tick_seconds = 10,
offline_rate = 0.5,
offline_cap_hours = 12,
breakthrough = { base=0.8, decay=0.05, min=0.2, pity=100 },
}

function OnCultivateStart(ctx, role, slot, book_id)
if ctx:GetSlotLevel(role) < slot then return ctx:Fail(role, "修炼位未解锁") end
if ctx:GetCultivating(role, slot) then return ctx:Fail(role, "该位正在修炼") end
ctx:SetCultivating(role, slot, book_id, ctx:Now())
ctx:StartTimer("cult_" .. role .. "_" .. slot, Cultivation.tick_seconds, OnTick)
end

function OnTick(ctx, role, slot)
local book = ctx:GetCultivating(role, slot)
if not book then return ctx:StopTimer() end
ctx:AddCultivationExp(role, book, ctx:CalcRate(role, book))
end

function OnBreakthrough(ctx, role, book_id)
local rate = ctx:GetBreakRate(book_id, Cultivation.breakthrough)
if ctx:Random() <= rate then
ctx:AddBookLevel(role, book_id, 1)
ctx:ClearPity(role, book_id)
else
ctx:AddPity(role, book_id, 10)
end
end
  • 修炼状态/时间戳持久化,登录按离线时长补算。
  • 离线补算按 50% 且封顶 12 小时,防止挂机脚本。
  • 突破/羁绊由脚本计算,属性汇总到角色。

3.2 协议​

方向协议说明
C→SCS_CultivateStart开始修炼
C→SCS_CultivateStop停止
C→SCS_Breakthrough突破
S→CSC_CultivationInfo修炼位/修为/羁绊
S→CSC_BreakthroughResult成功/失败/悟性

3.3 竞技约束​

  • 心法属性计入战力,竞技模板可归一化。
  • 战斗中不可切换心法/突破。
  • 离线收益不计入竞技赛季积分。

4. 客户端设计​

  • 修炼面板:4 位、心法、修为进度、速度。
  • 突破按钮、成功率、悟性进度。
  • 羁绊提示:当前系/件数/效果。
  • 离线收益结算弹窗。
  • 心法图鉴/来源。

5. 配置与 Lua 接口​

配置说明
book_id心法
quality品质
max_level等级上限
break_rate突破成功率
bond羁绊效果

Lua 接口:SetCultivating、GetCultivating、AddCultivationExp、AddBookLevel、CalcRate、RecalcAttributes。

6. 边界与异常​

场景处理
修炼位未解锁拒绝
重复开始拒绝
离线超过 12h按上限结算
心法被删除停止修炼,邮件通知
战斗中突破拒绝
脚本异常停止该位修炼,保留修为

7. 验收标准​

  • 修炼位/开始/停止/产出/离线结算正确。
  • 突破成功率/悟性/保底正确。
  • 羁绊统计/属性正确。
  • 战斗/删除/异常处理正确。
  • 客户端进度与服务端一致。