传奇技术脚本命令大全与学习指南实战详解

来源: 作者: 点击:
脚本基础结构说明

传奇脚本由标签、命令、条件判断三部分组成。标签以@开头标识脚本段落,命令执行具体操作,条件判断控制流程走向。脚本文件存放于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/