脚本基础结构说明
传奇脚本由标签、命令、条件判断三部分组成。标签以@开头标识脚本段落,命令执行具体操作,条件判断控制流程走向。脚本文件存放于M2Server引擎Script文件夹,主要包含QFunction.txt、Manage_QF.txt、地图脚本文件三类。
[@MAIN]
ACT
SENDMSG0欢迎进入脚本系统
BREAK
[@CHECK]
IF
CHECKLEVEL>10
ACT
GIVE金币1000
BREAK
人物属性检查命令
CHECKLEVEL检查人物等级,支持大于小于等于比较。CHECKGOLD检查金币数量,CHECKJOB检查职业类型。CHECKPKPOINT检查PK值,CHECKEXP检查经验值。
CHECKLEVEL>50
CHECKLEVEL=35
CHECKLEVEL10000
CHECKGOLD100
CHECKEXP>1000000
物品操作命令
GIVE给予玩家物品,TAKE收取玩家物品。CHECKITEM检查是否拥有物品,CHECKITEMW检查是否穿戴物品。CHANGEITEM更改物品属性,MAKE制作物品。
GIVE裁决之杖1
GIVE金币5000
TAKE裁决之杖1
TAKE金币1000
CHECKITEM裁决之杖1
CHECKITEMW裁决之杖
CHANGEITEM裁决之杖攻击5-10
MAKE裁决之杖1
地图传送命令
MAPMOVE地图移动,RANDOMMOVE随机移动。MONCLEAR清理地图怪物,TIP地图提示。SENDMSG发送消息,GROUPCALL组队呼叫。
MAPMOVE3300300
RANDOMMOVE
MONCLEAR3
TIP您已进入危险区域
SENDMSG0全服消息广播
SENDMSG2当前地图消息
GROUPCALL@ScriptLabel
变量操作命令
MOV赋值命令,CALC计算命令。CHECKVAR检查变量,SET设置变量。CLEAR清除变量,SAVEVAR保存变量。LOADVAR读取变量。
MOVG_TestVar100
MOVP_Money5000
CALCG_TestVar=G_TestVar+10
CALCP_Level=P_Level*2
CHECKVARG_TestVar>50
SETG_Flag1
CLEARG_TestVar
SAVEVARG_TestVar
LOADVARG_TestVar
条件判断命令
IF条件判断,ELSE否则分支。AND逻辑与,OR逻辑或。NOT逻辑非,BREAK中断脚本。
IF
CHECKLEVEL>30
CHECKGOLD>1000
ACT
GIVE祝福油1
BREAK
IF
CHECKJOB战士
OR
CHECKJOB道士
ACT
SENDMSG0欢迎战士或道士
IF
NOTCHECKITEM裁决之杖
ACT
GIVE裁决之杖1
循环控制命令
WHILE循环开始,END循环结束。WAIT等待时间,GOTO跳转标签。CALL调用子程序,RETURN返回主程序。
WHILEP_Count10000
BANK存10000
BANK取5000
时间控制命令
GETTIME获取时间,CHECKTIME检查时间。WAIT等待毫秒,DELAY延迟执行。TIMER定时器,CLEARTIMER清除定时器。
GETTIMEH
GETTIMEM
GETTIMES
CHECKTIME>1200
CHECKTIME<1800
WAIT10000
DELAY5000
TIMER1@TimeEvent
CLEARTIMER1
消息提示命令
SENDMSG发送消息,TIP屏幕提示。TOPMSG顶部消息,CENTERMSG中心消息。SYSTEMMSG系统消息,CHATMSG聊天消息。
SENDMSG0全服广播消息
SENDMSG2当前地图消息
SENDMSG1个人消息
TIP欢迎来到游戏世界
TOPMSG活动即将开始
CENTERMSG恭喜获得大奖
SYSTEMMSG系统维护通知
CHATMSG玩家聊天内容
脚本调试技巧
开启M2Server调试模式查看脚本执行日志。使用SENDMSG输出变量值确认数据准确。分段测试脚本功能,定位问题所在段落。
ACT
SENDMSG0当前变量值:%G_TestVar
SENDMSG0当前金币:%P_Gold
BREAK
常见脚本错误处理
标签重复导致脚本跳转错误,确保每个标签唯一。变量未初始化导致计算错误,使用前先赋值。循环无退出条件导致死循环,设置最大循环次数。
;错误示例
WHILEP_Count<10
BEGIN
GIVE金币100
END
;正确示例
WHILEP_Count<10
BEGIN
GIVE金币100
INCP_Count
END
脚本性能控制
单次脚本执行命令不超过一百条。循环次数控制在五十次以内。WAIT时间不低于五百毫秒。避免嵌套超过三层。
;性能良好示例
FORP_Index110
BEGIN
GIVE金币100
END
;性能较差示例
WHILEP_Count<1000
BEGIN
GIVE金币1
INCP_Count
END
脚本部署流程
第一步备份原始脚本文件。第二步编写新脚本代码。第三步测试脚本语法正确性。第四步部署至服务器脚本目录。第五步重启M2Server使配置生效。第六步进入游戏验证功能。
;部署检查清单
脚本文件编码UTF-8
标签命名无重复
变量初始化完成
循环有退出条件
命令参数正确
高级脚本应用
脚本可结合数据库实现数据持久化。调用外部程序扩展功能边界。使用定时器实现定时任务。组队脚本支持多人协作。
;数据库操作
DBREADPlayerData
DBWRITEPlayerData
;定时器任务
TIMER1@DailyEvent
TIMER2@HourlyEvent
;组队脚本
IFGROUP
GROUPCALL@TeamReward
ELSE
GIVE金币1000
脚本学习路径
从基础命令开始掌握语法结构。练习简单任务脚本熟悉流程。逐步学习复杂条件判断。掌握变量操作与数据存储。最终实现完整系统脚本。
;学习阶段
第一阶段:SENDMSGGIVETAKE
第二阶段:CHECKLEVELCHECKITEMIF
第三阶段:MOVCALCWHILE
第四阶段:CALLTIMERDATABASE
脚本资源获取
引擎官方文档提供完整命令列表。技术论坛分享脚本案例代码。玩家社区交流脚本使用心得。开源项目参考脚本架构设计。
;参考资料
M2Server官方手册
脚本命令速查表
经典脚本案例库
常见问题解答集
脚本维护要点
定期清理无用脚本代码。更新脚本适配新版本引擎。记录脚本修改日志便于追溯。备份脚本文件防止丢失。
;维护记录
修改日期:2026-02-23
修改内容:添加新任务脚本
修改人员:管理员
备份位置:Script/Backup/
传奇脚本由标签、命令、条件判断三部分组成。标签以@开头标识脚本段落,命令执行具体操作,条件判断控制流程走向。脚本文件存放于M2Server引擎Script文件夹,主要包含QFunction.txt、Manage_QF.txt、地图脚本文件三类。
[@MAIN]
ACT
SENDMSG0欢迎进入脚本系统
BREAK
[@CHECK]
IF
CHECKLEVEL>10
ACT
GIVE金币1000
BREAK
人物属性检查命令
CHECKLEVEL检查人物等级,支持大于小于等于比较。CHECKGOLD检查金币数量,CHECKJOB检查职业类型。CHECKPKPOINT检查PK值,CHECKEXP检查经验值。
CHECKLEVEL>50
CHECKLEVEL=35
CHECKLEVEL10000
CHECKGOLD100
CHECKEXP>1000000
物品操作命令
GIVE给予玩家物品,TAKE收取玩家物品。CHECKITEM检查是否拥有物品,CHECKITEMW检查是否穿戴物品。CHANGEITEM更改物品属性,MAKE制作物品。
GIVE裁决之杖1
GIVE金币5000
TAKE裁决之杖1
TAKE金币1000
CHECKITEM裁决之杖1
CHECKITEMW裁决之杖
CHANGEITEM裁决之杖攻击5-10
MAKE裁决之杖1
地图传送命令
MAPMOVE地图移动,RANDOMMOVE随机移动。MONCLEAR清理地图怪物,TIP地图提示。SENDMSG发送消息,GROUPCALL组队呼叫。
MAPMOVE3300300
RANDOMMOVE
MONCLEAR3
TIP您已进入危险区域
SENDMSG0全服消息广播
SENDMSG2当前地图消息
GROUPCALL@ScriptLabel
变量操作命令
MOV赋值命令,CALC计算命令。CHECKVAR检查变量,SET设置变量。CLEAR清除变量,SAVEVAR保存变量。LOADVAR读取变量。
MOVG_TestVar100
MOVP_Money5000
CALCG_TestVar=G_TestVar+10
CALCP_Level=P_Level*2
CHECKVARG_TestVar>50
SETG_Flag1
CLEARG_TestVar
SAVEVARG_TestVar
LOADVARG_TestVar
条件判断命令
IF条件判断,ELSE否则分支。AND逻辑与,OR逻辑或。NOT逻辑非,BREAK中断脚本。
IF
CHECKLEVEL>30
CHECKGOLD>1000
ACT
GIVE祝福油1
BREAK
IF
CHECKJOB战士
OR
CHECKJOB道士
ACT
SENDMSG0欢迎战士或道士
IF
NOTCHECKITEM裁决之杖
ACT
GIVE裁决之杖1
循环控制命令
WHILE循环开始,END循环结束。WAIT等待时间,GOTO跳转标签。CALL调用子程序,RETURN返回主程序。
WHILEP_Count10000
BANK存10000
BANK取5000
时间控制命令
GETTIME获取时间,CHECKTIME检查时间。WAIT等待毫秒,DELAY延迟执行。TIMER定时器,CLEARTIMER清除定时器。
GETTIMEH
GETTIMEM
GETTIMES
CHECKTIME>1200
CHECKTIME<1800
WAIT10000
DELAY5000
TIMER1@TimeEvent
CLEARTIMER1
消息提示命令
SENDMSG发送消息,TIP屏幕提示。TOPMSG顶部消息,CENTERMSG中心消息。SYSTEMMSG系统消息,CHATMSG聊天消息。
SENDMSG0全服广播消息
SENDMSG2当前地图消息
SENDMSG1个人消息
TIP欢迎来到游戏世界
TOPMSG活动即将开始
CENTERMSG恭喜获得大奖
SYSTEMMSG系统维护通知
CHATMSG玩家聊天内容
脚本调试技巧
开启M2Server调试模式查看脚本执行日志。使用SENDMSG输出变量值确认数据准确。分段测试脚本功能,定位问题所在段落。
ACT
SENDMSG0当前变量值:%G_TestVar
SENDMSG0当前金币:%P_Gold
BREAK
常见脚本错误处理
标签重复导致脚本跳转错误,确保每个标签唯一。变量未初始化导致计算错误,使用前先赋值。循环无退出条件导致死循环,设置最大循环次数。
;错误示例
WHILEP_Count<10
BEGIN
GIVE金币100
END
;正确示例
WHILEP_Count<10
BEGIN
GIVE金币100
INCP_Count
END
脚本性能控制
单次脚本执行命令不超过一百条。循环次数控制在五十次以内。WAIT时间不低于五百毫秒。避免嵌套超过三层。
;性能良好示例
FORP_Index110
BEGIN
GIVE金币100
END
;性能较差示例
WHILEP_Count<1000
BEGIN
GIVE金币1
INCP_Count
END
脚本部署流程
第一步备份原始脚本文件。第二步编写新脚本代码。第三步测试脚本语法正确性。第四步部署至服务器脚本目录。第五步重启M2Server使配置生效。第六步进入游戏验证功能。
;部署检查清单
脚本文件编码UTF-8
标签命名无重复
变量初始化完成
循环有退出条件
命令参数正确
高级脚本应用
脚本可结合数据库实现数据持久化。调用外部程序扩展功能边界。使用定时器实现定时任务。组队脚本支持多人协作。
;数据库操作
DBREADPlayerData
DBWRITEPlayerData
;定时器任务
TIMER1@DailyEvent
TIMER2@HourlyEvent
;组队脚本
IFGROUP
GROUPCALL@TeamReward
ELSE
GIVE金币1000
脚本学习路径
从基础命令开始掌握语法结构。练习简单任务脚本熟悉流程。逐步学习复杂条件判断。掌握变量操作与数据存储。最终实现完整系统脚本。
;学习阶段
第一阶段:SENDMSGGIVETAKE
第二阶段:CHECKLEVELCHECKITEMIF
第三阶段:MOVCALCWHILE
第四阶段:CALLTIMERDATABASE
脚本资源获取
引擎官方文档提供完整命令列表。技术论坛分享脚本案例代码。玩家社区交流脚本使用心得。开源项目参考脚本架构设计。
;参考资料
M2Server官方手册
脚本命令速查表
经典脚本案例库
常见问题解答集
脚本维护要点
定期清理无用脚本代码。更新脚本适配新版本引擎。记录脚本修改日志便于追溯。备份脚本文件防止丢失。
;维护记录
修改日期:2026-02-23
修改内容:添加新任务脚本
修改人员:管理员
备份位置:Script/Backup/

