一、脚本入门:从看懂结构开始
传奇脚本本质是文本指令集,核心逻辑是“如果满足条件,就执行动作”。
1.基础语法骨架
所有NPC脚本都遵循#IF(条件判断)与#ACT(执行动作)的结构。
[@GetMoney];标签名,NPC对话选项触发
#IF;如果
CHECKLEVEL35;条件:等级达到35级
CHECKGOLD50000;条件:拥有5万金币
#ACT;那么执行
TAKE金币50000;动作:扣除金币
GIVE屠龙1;动作:给予屠龙
SENDMSG0恭喜你领取了屠龙!
#ELSEACT;否则执行
SENDMSG0等级不足或金币不够!
关键规则:#IF下只能写检测命令(如CHECK),#ACT下只能写执行命令(如GIVE)。
2.核心文件路径
学习前需熟悉服务端目录结构(以Mir200为例):
-NPC脚本:Mir200\Envir\Market_Def\(每个NPC对应一个.txt文件)
-全局触发:Mir200\Envir\MapQuest_Def\QManage.txt(玩家登录触发)
-功能触发:Mir200\Envir\QFunction-0.txt(攻击、死亡、拾取等事件)
二、高频脚本命令分类速查
1.物品与货币操作
命令参数示例功能说明
GIVEGIVE金币1000给予物品/金币
TAKETAKE回城卷1扣除物品
CHECKITEMCHECKITEM金条1检测背包是否有物品
CHECKGOLDCHECKGOLD1000000检测金币是否足够
2.人物属性与检测
命令参数示例功能说明
CHECKLEVELCHECKLEVEL40检测等级是否≥40
CHANGELEVELCHANGELEVEL+1增加1级
CHECKJOBCHECKJOBWarrior检测职业(Warrior/Wizard/Taoist)
GAMEGOLDGAMEGOLD+100增加元宝(GOM/GEE引擎)
3.地图传送与刷怪
命令参数示例功能说明
MAPMAP0传送到土城(随机坐标)
MAPMOVEMAPMOVE3330330传送到指定地图坐标
MONGENMONGEN白野猪110在当前坐标刷1只白野猪,10秒后刷新
TIMERECALLTIMERECALL60设置地图倒计时60分钟
4.消息提示与界面
命令参数示例功能说明
SENDMSGSENDMSG6私人提示发送个人聊天框消息(类型6)
SENDMSGSENDMSG0全服公告发送全服广播(类型0)
SENDCENTERMSGSENDCENTERMSG0居中大字屏幕居中大字体公告
5.变量操作(进阶)
变量是脚本逻辑的灵魂,用于记录状态。
-个人字符变量:S10(S1-S99),如SETS10已领取
-全局数字变量:G100(G1-G999),如SETG1001
-临时变量:P0-P9(仅当前脚本有效)
-显示变量:<$STR(S10)>在NPC对话中显示变量值
三、实战案例:编写一个“等级奖励”脚本
在Market_Def新建LevelReward.txt,写入以下内容:
[@Main]
欢迎领取等级奖励!\\
<领取35级奖励/@Get35><领取50级奖励/@Get50>\\
<离开/@Exit>
[@Get35]
#IF
CHECKLEVEL35
CHECK[100]0;检测标志变量[100]是否为0(未领取)
#ACT
SET[100]1;设置标志为已领取
GIVE圣战戒指2
GAMEGOLD+500
SENDMSG0玩家【<$USERNAME>】领取了35级奖励!
#ELSEACT
SENDMSG0你已经领取过该奖励或等级不足!
此脚本实现了等级检测、防重复领取、物品发放、全服公告全套流程。
四、学习路径与排错指南
1.第一步:抄写。找成熟版本(如单职业)的NPC脚本,逐行抄写并理解每个命令的作用。
2.第二步:修改。尝试修改现成脚本的参数(如把奖励物品“屠龙”改成“开天”),重启服务端测试。
3.第三步:查错。脚本报错时,优先检查中英文符号(必须全英文逗号)、空格(命令与参数间需有空格)、变量是否初始化。
4.工具推荐:使用MSE脚本编辑器或VSCode编辑.txt文件,避免使用记事本(易乱码)。
总结:脚本学习的核心是“模仿→修改→创造”。先从修改奖励NPC开始,逐步过渡到编写自动回收、签到系统等复杂逻辑。
传奇脚本本质是文本指令集,核心逻辑是“如果满足条件,就执行动作”。
1.基础语法骨架
所有NPC脚本都遵循#IF(条件判断)与#ACT(执行动作)的结构。
[@GetMoney];标签名,NPC对话选项触发
#IF;如果
CHECKLEVEL35;条件:等级达到35级
CHECKGOLD50000;条件:拥有5万金币
#ACT;那么执行
TAKE金币50000;动作:扣除金币
GIVE屠龙1;动作:给予屠龙
SENDMSG0恭喜你领取了屠龙!
#ELSEACT;否则执行
SENDMSG0等级不足或金币不够!
关键规则:#IF下只能写检测命令(如CHECK),#ACT下只能写执行命令(如GIVE)。
2.核心文件路径
学习前需熟悉服务端目录结构(以Mir200为例):
-NPC脚本:Mir200\Envir\Market_Def\(每个NPC对应一个.txt文件)
-全局触发:Mir200\Envir\MapQuest_Def\QManage.txt(玩家登录触发)
-功能触发:Mir200\Envir\QFunction-0.txt(攻击、死亡、拾取等事件)
二、高频脚本命令分类速查
1.物品与货币操作
命令参数示例功能说明
GIVEGIVE金币1000给予物品/金币
TAKETAKE回城卷1扣除物品
CHECKITEMCHECKITEM金条1检测背包是否有物品
CHECKGOLDCHECKGOLD1000000检测金币是否足够
2.人物属性与检测
命令参数示例功能说明
CHECKLEVELCHECKLEVEL40检测等级是否≥40
CHANGELEVELCHANGELEVEL+1增加1级
CHECKJOBCHECKJOBWarrior检测职业(Warrior/Wizard/Taoist)
GAMEGOLDGAMEGOLD+100增加元宝(GOM/GEE引擎)
3.地图传送与刷怪
命令参数示例功能说明
MAPMAP0传送到土城(随机坐标)
MAPMOVEMAPMOVE3330330传送到指定地图坐标
MONGENMONGEN白野猪110在当前坐标刷1只白野猪,10秒后刷新
TIMERECALLTIMERECALL60设置地图倒计时60分钟
4.消息提示与界面
命令参数示例功能说明
SENDMSGSENDMSG6私人提示发送个人聊天框消息(类型6)
SENDMSGSENDMSG0全服公告发送全服广播(类型0)
SENDCENTERMSGSENDCENTERMSG0居中大字屏幕居中大字体公告
5.变量操作(进阶)
变量是脚本逻辑的灵魂,用于记录状态。
-个人字符变量:S10(S1-S99),如SETS10已领取
-全局数字变量:G100(G1-G999),如SETG1001
-临时变量:P0-P9(仅当前脚本有效)
-显示变量:<$STR(S10)>在NPC对话中显示变量值
三、实战案例:编写一个“等级奖励”脚本
在Market_Def新建LevelReward.txt,写入以下内容:
[@Main]
欢迎领取等级奖励!\\
<领取35级奖励/@Get35><领取50级奖励/@Get50>\\
<离开/@Exit>
[@Get35]
#IF
CHECKLEVEL35
CHECK[100]0;检测标志变量[100]是否为0(未领取)
#ACT
SET[100]1;设置标志为已领取
GIVE圣战戒指2
GAMEGOLD+500
SENDMSG0玩家【<$USERNAME>】领取了35级奖励!
#ELSEACT
SENDMSG0你已经领取过该奖励或等级不足!
此脚本实现了等级检测、防重复领取、物品发放、全服公告全套流程。
四、学习路径与排错指南
1.第一步:抄写。找成熟版本(如单职业)的NPC脚本,逐行抄写并理解每个命令的作用。
2.第二步:修改。尝试修改现成脚本的参数(如把奖励物品“屠龙”改成“开天”),重启服务端测试。
3.第三步:查错。脚本报错时,优先检查中英文符号(必须全英文逗号)、空格(命令与参数间需有空格)、变量是否初始化。
4.工具推荐:使用MSE脚本编辑器或VSCode编辑.txt文件,避免使用记事本(易乱码)。
总结:脚本学习的核心是“模仿→修改→创造”。先从修改奖励NPC开始,逐步过渡到编写自动回收、签到系统等复杂逻辑。

