脚本基础结构与逻辑控制
传奇脚本基于条件判断(#IF)与动作执行(#ACT)的双模块结构。脚本自上而下逐行读取,若#IF后的条件成立,则执行对应的#ACT段命令,否则跳过或执行#ELSEACT。
核心指令功能说明示例用法
#IF条件检测起始符#IFCHECKLEVELEX>40
#ACT条件成立执行动作#ACTGIVE屠龙1
#SAYNPC对话框显示文本#SAY欢迎来到盟重。
#ELSEACT条件不成立执行动作#ELSEACTSENDMSG6等级不足
#ELSESAY条件不成立显示文本#ELSESAY你还没完成任务
GOTO跳转到指定标签段GOTO@奖励领取
BREAK终止当前脚本段执行常用于防止重复领取奖励
基础模板:
[@Main]
#IF
CHECKLEVELEX>35
#ACT
GIVE裁决之杖1
#SAY
恭喜你达到35级,奖励裁决之杖一把。
#ELSESAY
你的等级不足35级,无法领取奖励。
人物属性检测与操作命令
此类命令用于读取玩家状态或修改角色数据,是任务脚本的核心。
命令功能参数说明
CHECKLEVELEX检测人物等级>40(大于40级)
CHECKJOB检测职业Wizard(法师)
CHECKGOLD检测金币数量>1000000
CHECKITEM检测背包物品金条1(持有1根)
GIVE给予物品/金币GIVE金条5
TAKE收回物品/金币TAKE回城卷1
CHANGELEVEL调整人物等级=50(直接设为50级)
CHANGEPERMISSION调整GM权限10(设为GM10级)
实战:等级奖励脚本
[@LevelUpReward]
#IF
CHECKLEVELEX=50
CHECKITEM50级奖励凭证1
#ACT
TAKE50级奖励凭证1
GIVE圣战戒指2
SENDMSG1恭喜玩家<$USERNAME>达成50级,领取圣战戒指!
消息发送与界面提示
SENDMSG是脚本交互的关键,不同参数决定消息的显示位置与颜色。
命令格式显示位置与效果常用场景
SENDMSG0%s消息全服公告(红字)全服活动通知
SENDMSG1消息全服滚动公告系统广播
SENDMSG5消息屏幕中间大字体重要成就提示
SENDMSG6消息私人聊天框(红)错误提示、私聊
SENDMSG7消息私人聊天框(蓝)任务提示
SendCenterMsg屏幕中央公告GOM引擎专用
颜色自定义(GOM/GEE):
#ACT
SENDMSG1249255这是一条自定义颜色公告
;参数说明:1(公告类型)249(字体色)255(背景色)
地图传送与怪物刷怪
控制玩家移动与地图生物生成,用于副本入口或活动脚本。
命令功能示例
MAPMOVE地图传送MAPMOVE0330330(比奇安全区)
PARAM1设置地图名PARAM10150(幻境五层)
PARAM2设置坐标XPARAM250
PARAM3设置坐标YPARAM350
MONCLEAR清空当前地图怪常用于重置副本
MOB刷出一只怪物MOB白野猪1010
定点传送脚本:
[@GoToBoss]
#ACT
MAPMOVED515100100
SENDMSG6已传送至BOSS房间,请小心!
变量与定时器高级应用
实现动态计数与延时功能,用于复杂活动逻辑。
命令功能说明
MOV赋值变量MOVA11(将A1变量设为1)
INC变量自增INCA11(A1=A1+1)
DEC变量自减DECA11(A1=A1-1)
DelayCall延时执行DelayCall5000@CallBack(5秒后回调)
每日限领脚本:
[@GetDaily]
#IF
CHECKVARHUMAN今日领取=1
#ACT
SENDMSG6今日已领取过,请明天再来!
BREAK
#IF
#ACT
GIVE金币1000000
CALCVARHUMAN今日领取=1
SAVEVARHUMAN今日领取..\QuestDiary\变量记录.txt
#SAY
每日奖励已发放。
常见报错与调试技巧
1.语法错误:检查#IF、#ACT是否拼写错误(如写成#LF、#ATC),每行命令后需有空格分隔参数。
2.逻辑死循环:避免在GOTO跳转中形成@A跳@B,@B又跳回@A的闭环,会导致服务器卡死。
3.变量未保存:使用HUMAN或GLOBAL变量后,必须用SAVEVAR命令保存至txt文件,否则重启服务器数据丢失。
4.权限不足:涉及KICK(踢人)、CHANGEPERMISSION等敏感命令,需脚本NPC具有足够GM权限或玩家为管理员身份。
传奇脚本基于条件判断(#IF)与动作执行(#ACT)的双模块结构。脚本自上而下逐行读取,若#IF后的条件成立,则执行对应的#ACT段命令,否则跳过或执行#ELSEACT。
核心指令功能说明示例用法
#IF条件检测起始符#IFCHECKLEVELEX>40
#ACT条件成立执行动作#ACTGIVE屠龙1
#SAYNPC对话框显示文本#SAY欢迎来到盟重。
#ELSEACT条件不成立执行动作#ELSEACTSENDMSG6等级不足
#ELSESAY条件不成立显示文本#ELSESAY你还没完成任务
GOTO跳转到指定标签段GOTO@奖励领取
BREAK终止当前脚本段执行常用于防止重复领取奖励
基础模板:
[@Main]
#IF
CHECKLEVELEX>35
#ACT
GIVE裁决之杖1
#SAY
恭喜你达到35级,奖励裁决之杖一把。
#ELSESAY
你的等级不足35级,无法领取奖励。
人物属性检测与操作命令
此类命令用于读取玩家状态或修改角色数据,是任务脚本的核心。
命令功能参数说明
CHECKLEVELEX检测人物等级>40(大于40级)
CHECKJOB检测职业Wizard(法师)
CHECKGOLD检测金币数量>1000000
CHECKITEM检测背包物品金条1(持有1根)
GIVE给予物品/金币GIVE金条5
TAKE收回物品/金币TAKE回城卷1
CHANGELEVEL调整人物等级=50(直接设为50级)
CHANGEPERMISSION调整GM权限10(设为GM10级)
实战:等级奖励脚本
[@LevelUpReward]
#IF
CHECKLEVELEX=50
CHECKITEM50级奖励凭证1
#ACT
TAKE50级奖励凭证1
GIVE圣战戒指2
SENDMSG1恭喜玩家<$USERNAME>达成50级,领取圣战戒指!
消息发送与界面提示
SENDMSG是脚本交互的关键,不同参数决定消息的显示位置与颜色。
命令格式显示位置与效果常用场景
SENDMSG0%s消息全服公告(红字)全服活动通知
SENDMSG1消息全服滚动公告系统广播
SENDMSG5消息屏幕中间大字体重要成就提示
SENDMSG6消息私人聊天框(红)错误提示、私聊
SENDMSG7消息私人聊天框(蓝)任务提示
SendCenterMsg屏幕中央公告GOM引擎专用
颜色自定义(GOM/GEE):
#ACT
SENDMSG1249255这是一条自定义颜色公告
;参数说明:1(公告类型)249(字体色)255(背景色)
地图传送与怪物刷怪
控制玩家移动与地图生物生成,用于副本入口或活动脚本。
命令功能示例
MAPMOVE地图传送MAPMOVE0330330(比奇安全区)
PARAM1设置地图名PARAM10150(幻境五层)
PARAM2设置坐标XPARAM250
PARAM3设置坐标YPARAM350
MONCLEAR清空当前地图怪常用于重置副本
MOB刷出一只怪物MOB白野猪1010
定点传送脚本:
[@GoToBoss]
#ACT
MAPMOVED515100100
SENDMSG6已传送至BOSS房间,请小心!
变量与定时器高级应用
实现动态计数与延时功能,用于复杂活动逻辑。
命令功能说明
MOV赋值变量MOVA11(将A1变量设为1)
INC变量自增INCA11(A1=A1+1)
DEC变量自减DECA11(A1=A1-1)
DelayCall延时执行DelayCall5000@CallBack(5秒后回调)
每日限领脚本:
[@GetDaily]
#IF
CHECKVARHUMAN今日领取=1
#ACT
SENDMSG6今日已领取过,请明天再来!
BREAK
#IF
#ACT
GIVE金币1000000
CALCVARHUMAN今日领取=1
SAVEVARHUMAN今日领取..\QuestDiary\变量记录.txt
#SAY
每日奖励已发放。
常见报错与调试技巧
1.语法错误:检查#IF、#ACT是否拼写错误(如写成#LF、#ATC),每行命令后需有空格分隔参数。
2.逻辑死循环:避免在GOTO跳转中形成@A跳@B,@B又跳回@A的闭环,会导致服务器卡死。
3.变量未保存:使用HUMAN或GLOBAL变量后,必须用SAVEVAR命令保存至txt文件,否则重启服务器数据丢失。
4.权限不足:涉及KICK(踢人)、CHANGEPERMISSION等敏感命令,需脚本NPC具有足够GM权限或玩家为管理员身份。

