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

