当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇脚本入门基础语法与实战编写指南

热度:
传奇脚本用于控制NPC对话、任务触发、物品发放等核心功能,文件存放于服务端“QuestDiary”目录,以纯文本格式编写。以下从结构、标签、条件、动作四方面详解入门要点。

一、脚本文件结构
每个脚本由多个“标签(Label)”组成,标签以中括号定义,如[@main]、[@buy]。系统通过调用标签执行对应逻辑。常见文件包括:
QFunction-0.txt:全局功能主文件;
Npc_def1001.txt:NPC编号1001的专属对话脚本;
!Setup.txt:脚本全局变量初始化。

二、基本标签类型
主对话入口:[@main]为NPC默认打开界面;
自定义分支:[@heal]、[@reward]等可自由命名,通过/goto@heal跳转;
系统事件标签:[@Login](上线)、[@Death](死亡)、[@LevelUp](升级)等自动触发。

三、条件判断指令(#IF)
条件决定是否执行后续动作,常用指令:
CHECKLEVELX:检测角色等级≥X;
CHECKGAMEGOLDX:元宝≥X;
CHECKITEM物品名数量:背包含指定物品;
EQUAL变量值:变量等于某值(如EQUAL"3");
CHECK[X]Y:临时变量[X]等于Y(X范围0-99)。
多条件组合使用#OR(或)和#AND(与),例如:

IF
CHECKLEVEL30
AND
CHECKGAMEGOLD100


四、执行动作指令(#ACT)
满足条件后执行操作,核心指令包括:
GIVE物品名数量:给予物品;
TAKE物品名数量:扣除物品;
GAMEGOLD+X/-X:增加或减少元宝;
MAPMOVE地图号XY:传送玩家;
GuildNoticeMsg类型颜色文本:全服公告;
CLOSE:关闭当前对话框;
SET[X]Y:设置临时变量值;
SAVEVARHUMAN变量名值:永久保存变量(重启不丢失)。

五、对话显示(#SAY)
向玩家显示文本,支持换行()和颜色代码(如红色文字)。示例:

SAY
欢迎来到药店!



点击链接自动跳转至对应标签。

六、完整入门示例:新手礼包NPC
在Npc_def1001.txt中编写:

[@main]
IF
CHECK[10]0
ACT
GIVE新手礼包1
SET[10]1
SAVEVARHUMANGOT_BAG1
SAY
礼包已发放,请查收背包。

ELSESAY
你已领取过礼包。


说明:
[10]为临时变量,首次进入时为0,领取后设为1;
SAVEVAR确保下次登录仍记录已领取状态。

七、调试与常见错误
脚本不生效:检查文件编码是否为ANSI,标签名是否拼写错误;
物品名不符:必须与StdItems.txt中的Name字段完全一致;
条件失效:确认CHECKLEVEL等指令数值无多余空格;
无限循环:避免在[@main]中直接goto@main,需加退出选项。

八、进阶提示
使用D0-D99存储计算中间值(如MOVD0);
在QFunction-0.txt中统一管理复杂逻辑,NPC脚本仅作跳转;
全服公告颜色值参考RGB(如255=红,65280=绿,16711680=蓝)。

掌握以上基础即可实现90%的日常功能开发,重点在于理解条件-动作-显示的三段式结构,并通过小步测试验证逻辑。
[顶部]