快速开始

给 NPC 加上条件判断

面向已经跑通第一个 NPC 的读者,说明怎样给 NPC 增加最基础的条件分支,让满足条件和不满足条件的玩家看到不同结果。

如果你已经按上一页跑通了第一个 NPC,下一步最适合补的,就是给 NPC 加一条最基础的条件判断。

这页只讲一个最小场景:

  • 等级高于 50 的玩家可以进入下一步
  • 等级不足的玩家会看到提示

先看目标效果

这次不是只验证"NPC 能不能打开",而是验证下面两条分支都能正常工作:

  1. 满足条件时,脚本进入成功分支
  2. 不满足条件时,脚本进入提示分支

示例脚本

把上一页的测试脚本替换成下面这段:

[@Main]
#SAY
欢迎使用测试 NPC。\
<进入高级区域/@TryEnter>

[@TryEnter]
#IF
CheckLevelEx > 50
#ACT
GOTO @AllowEnter
#ELSESAY
当前等级不足,暂时不能进入。\
<返回主菜单/@Main>

[@AllowEnter]
#SAY
条件已满足,可以继续进入下一步。\
<返回主菜单/@Main>

这段脚本在做什么

  • [@Main] 负责显示入口按钮
  • 点击"进入高级区域"后,流程进入 [@TryEnter]
  • #IF 判断 CheckLevelEx > 50 是否成立
  • 条件成立时,用 GOTO @AllowEnter 进入成功分支
  • 条件不成立时,直接执行 #ELSESAY 里的提示内容

这就是最常见的一类 NPC 分支:

  • 满足条件就继续
  • 不满足条件就提示并停在当前结果页

进游戏时只看两件事

第一次验证条件 NPC 时,只确认这两件事:

  1. 等级高于 50 的角色点击按钮后,是否会进入"条件已满足"的结果页
  2. 等级不足的角色点击按钮后,是否会看到"当前等级不足"的提示页

只要这两种结果都对,就说明你的第一个条件分支已经跑通了。

这一页真正想让你掌握什么

写条件 NPC 时,先抓住这一条最小结构:

[@入口标签]
#IF
;这里写判断条件
#ACT
;这里写满足条件后的处理
#ELSESAY
;这里写不满足条件时的提示

以后你把 CheckLevelEx > 50 换成别的判断条件,这个骨架通常还是一样的。

跑不通时先查哪里

如果点击按钮后没有进入预期分支,优先检查:

  • #IF 后面的判断条件是否写在了同一段判断结构里
  • #ACT、#ELSESAY 是否和当前 #IF 对应
  • GOTO @AllowEnter 的目标标签是否真的存在
  • 你测试的角色等级,是否确实满足或不满足当前条件

接下来怎么继续

如果你已经跑通这个示例,下一步建议回头系统补这几页:

相关阅读