在传奇服务端配置中,脚本号是用于标识和调用特定功能逻辑的数字编号,主要出现在NPC对话、技能触发、任务流程等场景。它本身不包含代码,而是作为事件入口,指向QFunction、QManage或Mission文件中对应的标签段落。
一、脚本号的基本定义
脚本号通常为0至9999之间的整数,在NPC文件(如Npc_def/xxx.txt)中通过“SCRIPT=数字”指定。例如:
[1001]
IF
ACT
GIVE 金创药 10
当玩家点击关联该脚本号的NPC选项时,系统会自动跳转到QManage.txt中查找[@Main_1001]或[@1001]标签并执行其下命令。
二、脚本号的常见用途
NPC功能分支:一个NPC可设置多个选项,每个选项绑定不同脚本号,实现商店、传送、任务等功能分离。
技能附加效果:部分引擎允许在!MagicInfo.txt中通过Script=1002调用脚本,实现技能命中后触发额外逻辑。
任务状态控制:任务开始、完成、失败等阶段可分配独立脚本号,便于管理流程。
物品右键功能:在!ItemList.txt中设置ItemScript=1003,使玩家右键使用物品时执行特定操作。
三、脚本号与文件的对应关系
QManage.txt:处理NPC主菜单及子选项,格式为[@Main_脚本号]或[@脚本号]
QFunction-0.txt:处理系统级事件(如登录、死亡),一般不直接使用脚本号
QCall.txt:用于跨文件调用,可通过CALL [脚本号]复用逻辑
Mission目录:高级任务系统可能按脚本号分文件存储
示例:NPC文件中定义选项
[@main]
欢迎来到仓库!
(进入仓库:1005)
(领取奖励:1006)
则QManage.txt需包含:
[@1005]
ACT
MAPMOVE 3 330 330
[@1006]
IF
CHECKQUEST 101 == 1
ACT
GIVE 裁决之杖 1
四、脚本号分配原则
避免重复:同一服务器内脚本号应唯一,防止功能冲突
分段管理:如1000-1999用于传送,2000-2999用于奖励,便于维护
预留空号:为后续扩展保留连续编号空间
五、常见错误排查
点击无反应:检查脚本号是否在QManage.txt中有对应标签
执行错乱:确认标签格式为[@1001]而非[1001](缺少@符号)
物品无效:ItemScript设置后需重启服务端或重载脚本
脚本号是传奇服务端逻辑调度的核心机制,合理规划可大幅提升功能扩展性与维护效率。

