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

传奇脚本制作全流程:从零编写NPC与功能脚本

热度:
一、脚本文件存放路径与分类

传奇脚本是纯文本文件,存放在服务端MirServer\Mir200\Envir目录下,不同功能对应不同子文件夹:
-NPC脚本:Market_Def\文件夹。每个NPC对应一个.txt文件,文件名必须与MerChant.txt中登记的NPC名称完全一致。
-全局功能脚本:Market_Def\QFunction-0.txt。负责处理物品使用、升级触发、杀人杀怪等全局事件。
-登陆脚本:MapQuest_def\QManage.txt。玩家上线时自动执行。

二、NPC脚本基础结构与语法

一个标准的NPC脚本由[@标签名]分段,@main是默认入口。核心语法遵循“检测-执行-显示”逻辑。

基础框架示例(新手奖励NPC):
[@main]
欢迎来到新手村,等级达到10级可领取奖励。\
<领取奖励/@领取><离开/@exit>

[@领取]
#IF
CheckLevel10
#ACT
Give金条1
Give乌木剑1
SendMsg5奖励领取成功!
#ELSESAY
你的等级不足10级,无法领取。

代码解析:
•#IF:条件检测段,只能写判断命令(如CheckLevel检查等级)。

•#ACT:条件满足后执行的动作(如Give给物品)。

•#SAY/#ELSESAY:显示对话内容,#ELSESAY是条件不满足时的提示。

•\:换行符;<文字/@标签>:可点击的按钮,点击后跳转到[@标签]段落。

三、全局功能脚本(QF)制作

QFunction-0.txt用于处理非NPC交互的事件,如使用物品、升级触发。标签名由引擎固定或自定义。

1.物品触发脚本(双击物品生效)
首先在数据库设置物品的StdMode和AniCount字段(如AniCount=100),然后在QF中编写:
[@StdModeFunc100]
#ACT
SendMsg5你使用了特效物品!
MapMove0330330

2.升级触发脚本
[@PlayLevelUp]
#IF
CheckLevel35
#ACT
SendMsg5恭喜你达到35级,解锁新技能!


四、常用命令速查

-检测类:CheckLevel等级(等级)、CheckItem物品名数量(背包物品)、CheckGold金币数(金币)。
-执行类:Give物品名数量(给物品)、Take物品名数量(扣物品)、MapMove地图号XY(传送)。
-变量操作:MOVN1100(赋值变量N1为100)、INCN11(变量N1自增1),配合CheckVar进行条件判断。

五、脚本生效与调试流程

1.修改脚本:用记事本或Notepad++修改脚本文件,保存为ANSI编码(避免乱码)。
2.重载脚本:在M2Server控制台(M2→查看→列表信息)点击“重新加载NPC脚本”和“重新加载功能脚本(QF)”。
3.查看报错:修改后若M2报错,检查命令拼写、空格、变量是否重复定义。常见错误包括将执行命令误写在#IF段,或标签名不匹配。

六、进阶:任务脚本逻辑

结合变量可实现复杂的任务流程(接取→杀怪→完成):
[@接任务]
#IF
CheckVarT100=0
#ACT
SetVarT100=1
SendMsg5任务已接取:杀死10只鸡。

[@杀鸡触发]//此段写在QF的杀怪触发里
#IF
CheckVarT100=1
Random鸡
#ACT
IncN11
#IF
CheckVarT100=1
LargeN19
#ACT
SetVarT100=2
SendMsg5任务完成,回去交任务吧。
[顶部]