一、传奇脚本基础执行逻辑
传奇及传奇世界脚本,均采用条件判定优先、动作指令后置的固定执行模式,脚本从上到下逐行读取,满足判定条件才执行对应动作,不满足则跳过或执行备选指令,全程按固定链路运行,不会乱序执行。
所有脚本的核心执行框架统一:先做条件检测,再执行对应操作,最后终止当前段落,整套流程闭环运行,触发方式不同,执行顺序规则保持一致。
二、标准脚本分段执行顺序(必懂核心)
传奇类脚本固定分为三大段落,执行顺序不可颠倒,颠倒后直接报错或功能失效,三段式执行优先级为:#IF 优先判定 → #ACT 满足执行 → #ELSEACT 不满足执行。
1. #IF 条件判定段(第一执行顺位)
脚本启动后,第一时间读取#IF开头的段落,执行各类检测指令,比如检测装备穿戴、物品数量、角色状态、地图位置、变量数值等。这一段只做判断、不执行任何动作,判断结果只有“成立”和“不成立”两种,直接决定后续脚本走向。
#IF段内多个判定条件,按从上到下逐行检测,必须全部满足,才会判定为成立;任意一个条件不满足,直接判定为不成立。
2. #ACT 动作执行段(第二执行顺位)
当#IF段所有条件判定成立后,立即执行#ACT开头的段落,这一段是脚本的核心功能段,执行各类操作指令,比如发放物品、调整属性、传送角色、刷新怪物、弹窗提示等。
#ACT段内的动作指令,依旧按从上到下逐行执行,执行完所有动作后,必须以BREAK指令收尾,终止本段脚本,避免向下继续执行其他无关代码。
3. #ELSEACT 备选执行段(第三执行顺位)
当#IF段条件判定不成立时,跳过#ACT段,直接执行#ELSEACT开头的段落,这一段属于备选动作,比如提示玩家条件不足、扣除道具失败、拒绝传送等,执行完毕后同样以BREAK指令终止脚本。
三、传奇世界脚本触发方式与执行顺序
传奇世界脚本触发场景不同,执行启动时机不同,但内部三段式执行顺序不变,常见触发类型及运行流程如下。
1. NPC交互脚本(点击触发)
玩家点击NPC → 系统加载对应NPC脚本 → 执行#IF段检测(比如检测等级、元宝、任务状态)→ 条件成立执行#ACT段(打开商店、发放任务、传送地图)→ 条件不成立执行#ELSEACT段(提示条件不够)→ 执行BREAK终止脚本。
2. 穿戴触发脚本(装备穿戴触发)
玩家穿戴指定装备 → 系统调用穿戴检测脚本 → #IF段检测装备是否穿戴成功 → 成立执行#ACT段(加属性、加攻速、解锁技能)→ 卸下装备则反向判定 → 终止脚本。
3. 地图/刷新脚本(定时/地图触发)
到达定时时间/玩家进入指定地图 → 系统加载地图脚本 → #IF段检测怪物数量、角色数量、刷新状态 → 成立执行#ACT段(刷新BOSS、生成小怪、触发区域事件)→ 不成立则跳过刷新 → 终止脚本。
4. 死亡/拾取脚本(角色动作触发)
玩家拾取物品/怪物死亡 → 触发对应脚本 → #IF段检测物品类型、怪物名称、掉落状态 → 成立执行#ACT段(自动拾取、绑定物品、记录击杀)→ 不成立则无操作 → 终止脚本。
四、多脚本嵌套执行顺序
传奇世界复杂功能会用到脚本嵌套,执行顺序遵循外层优先、内层后执行,先跑完外层脚本判定,再进入内层子脚本执行,内层脚本执行完毕,返回外层继续运行剩余指令。
嵌套脚本严禁循环嵌套,否则会出现脚本卡死、执行乱序的情况,每一层嵌套脚本都必须独立完成#IF→#ACT→BREAK的流程,再返回上一层。
五、变量脚本执行顺序
带变量的脚本,执行顺序为:先读取变量初始值 → #IF段检测变量数值 → #ACT段执行变量赋值/修改 → 保存变量状态 → 终止脚本。变量读取和修改必须在判定之后,先赋值再判定会导致执行结果错误。
六、脚本执行终止规则
每一段独立脚本,无论#ACT或#ELSEACT段执行完毕,必须加BREAK指令,强制终止当前脚本运行,防止脚本向下穿透执行其他无关代码。缺少BREAK指令,会出现功能错乱、重复执行、脚本报错等问题。
七、常见脚本执行顺序错误问题
- 条件未满足就执行动作:#IF与#ACT顺序颠倒,或判定条件缺失,修正段落顺序即可
- 脚本执行无响应:缺少BREAK终止指令,或段落标识(#IF/#ACT)写错,补全修正标识
- 动作执行乱序:#ACT段内指令顺序错乱,按功能需求调整指令上下顺序
- 嵌套脚本卡死:嵌套层级过多,或缺少终止指令,简化层级并每层添加BREAK
- 变量不生效:先执行动作再检测变量,调整为先判定变量,再执行操作
八、传奇世界脚本运行实操要点
- 脚本编写严格按#IF→#ACT→#ELSEACT顺序,不可调换段落位置
- 单段脚本内指令逐行排列,不要跨行、乱序书写
- 每段功能脚本末尾必加BREAK,杜绝穿透执行
- 修改脚本后,必须重载服务端,新的执行顺序才会生效
- 测试时按触发流程逐步排查,定位执行中断或错乱的节点

