PRD-044 阵营刺探
文档编号:PRD-044
版本:v1.0
状态:已通过
适用端:服务端 / 客户端
脚本挂载:lua/activity/scout.lua
1. 背景与目标
刺探提供阵营日常对抗与情报收集。任务目标、路线、奖励适合用 Lua 编排,可复用为双阵营/多阵营活动。
目标
- 玩家潜入敌对阵营地图,收集情报并返回。
- 情报分普通/机密/绝密,风险与奖励递增。
- 支持伪装、追杀、反刺探。
2. 核心规则
- 每日 3 次,玩家等级 ≥ 40,加入阵营。
- 接取后随机 1 个敌对阵营情报点,需到达并读条 5 秒。
- 读条期间可被敌对玩家攻击,死亡则任务失败。
- 获得情报后需返回本方 NPC 交付,途中可被追杀。
- 情报品质随机,绝密情报全服公告携带者位置。
- 交付获得阵营声望/贡献,失败返还一半次数。
3. 服务端设计
3.1 Lua 脚本设计
-- lua/activity/scout.lua
Scout = {
daily_limit = 3,
cast_time = 5,
qualities = { {q="normal",w=70}, {q="secret",w=25}, {q="top",w=5} },
}
function OnScoutAccept(ctx, role)
if ctx:GetDailyCount(role, "scout") >= Scout.daily_limit then
return ctx:Fail(role, "今日刺探次数已用完")
end
local point = ctx:PickEnemyPoint(role)
local q = ctx:PickWeighted(Scout.qualities)
ctx:SetRoleVar(role, "scout_point", point)
ctx:SetRoleVar(role, "scout_quality", q.q)
ctx:SetRoleVar(role, "scout_state", "running")
end
function OnScoutCast(ctx, role)
if not ctx:InRange(role, ctx:GetRoleVar(role, "scout_point"), 3) then
return ctx:Fail(role, "不在情报点")
end
ctx:SetRoleVar(role, "scout_state", "returning")
if ctx:GetRoleVar(role, "scout_quality") == "top" then
ctx:Broadcast("world", ctx:GetName(role) .. "携带绝密情报")
end
end
function OnScoutDie(ctx, role)
if ctx:GetRoleVar(role, "scout_state") == "running" then
ctx:FailScout(role, "刺探失败")
end
end
- 情报点、阵营关系由 C++ 提供,脚本只抽点与状态。
- 死亡事件由场景服转发,脚本判定失败。
- 绝密情报公告与追杀标记由脚本触发。
3.2 协议
| 方向 | 协议 | 说明 |
|---|---|---|
| C→S | CS_ScoutAccept | 接取 |
| C→S | CS_ScoutCast | 收集情报 |
| C→S | CS_ScoutSubmit | 交付 |
| S→C | SC_ScoutState | 目标/品质/状态 |
| S→C | SC_ScoutResult | 成功/失败/奖励 |
3.3 伪装与追杀
- 进入敌对地图自动伪装,名字显示为“黑衣人”。
- 攻击/被攻击/使用技能会暴露身份。
- 携带绝密情报时移动速度 -10%,显示光柱。
4. 客户端设计
- 刺探任务追踪:目标地图/坐标/品质。
- 伪装状态、暴露提示、追杀标记。
- 收集读条、交付 NPC 指引。
- 绝密情报全服公告与地图标记。
- 失败结算与次数返还提示。
5. 配置与 Lua 接口
| 配置 | 说明 |
|---|---|
daily_limit | 每日次数 |
cast_time | 收集时间 |
qualities | 品质权重 |
reward_group | 交付奖励 |
expose_skills | 暴露技能 |
Lua 接口:PickEnemyPoint、InRange、SetRoleVar、FailScout、Broadcast、GetName。
6. 边界与异常
| 场景 | 处理 |
|---|---|
| 接取后下线 | 任务保留 10 分钟,超时失败 |
| 目标地图关闭 | 重新抽点 |
| 阵营变更 | 任务取消 |
| 交付时背包满 | 奖励转邮件 |
| 重复交付 | 幂等 |
| 脚本异常 | 任务失败并返还次数 |
7. 验收标准
- 接取/收集/交付/失败全流程正确。
- 品质、伪装、暴露、追杀机制生效。
- 死亡/下线/阵营变更处理正确。
- 绝密情报公告与奖励正确。
- 防刷/防脚本异常兜底。