跳到主要内容

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→SCS_ScoutAccept接取
C→SCS_ScoutCast收集情报
C→SCS_ScoutSubmit交付
S→CSC_ScoutState目标/品质/状态
S→CSC_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. 验收标准​

  • 接取/收集/交付/失败全流程正确。
  • 品质、伪装、暴露、追杀机制生效。
  • 死亡/下线/阵营变更处理正确。
  • 绝密情报公告与奖励正确。
  • 防刷/防脚本异常兜底。