传奇服务端常用脚本命令详解与应用实例

来源: 作者: 点击:
基础变量与操作命令

传奇脚本通过变量存储和操作数据,核心变量分为三类:个人变量(D、N、S、A)、全局变量(G、M)、机器人变量(P)。所有变量运算必须在#IF或#ACT段落内执行。
;示例:变量赋值与运算
#IF
#ACT
MOV D1 100 ; 个人变量D1赋值为100
INC D1 20 ; D1增加20,结果D1=120
DEC D1 30 ; D1减少30,结果D1=90
MOV S1 战士 ; 字符串变量S1赋值为“战士”
MOV N$随机数 5 ; 自定义个人变量N$随机数赋值为5
CALCVAR G1 + 500 ; 全局变量G1增加500
SAVEVAR G1 ..\QuestDiary\全局变量.txt ; 保存变量


条件检测命令(#IF)

#IF 用于判断条件是否成立,其后可接多个并列条件,只有全部满足才会执行后面的#ACT。
;示例:多条件检测
#IF
CHECKLEVELEX > 35 ; 检测等级大于35
CHECKJOB Warrior ; 检测职业为战士
CHECKITEM 金币 10000 ; 检测背包有10000金币
CHECKVAR D2 = 1 ; 检测变量D2等于1
#ACT
GIVE 屠龙
#ELSEACT
MESSAGEBOX 条件不足


物品与货币操作命令

核心命令包括GIVE(给予)、TAKE(扣除)、CHECKITEM(检测)、GAMEGOLD(元宝)、GAMEPOINT(游戏点)。
;示例:装备合成脚本片段
#IF
CHECKITEM 金条 5 ; 检测5个金条
CHECKITEM 黑铁矿 10 ; 检测10个黑铁矿
CHECKGAMEGOLD > 99 ; 检测元宝大于99
#ACT
TAKE 金条 5
TAKE 黑铁矿 10
GAMEGOLD - 100
GIVE 裁决之杖
SENDMSG 6 合成裁决之杖成功


地图传送与人物控制命令

地图传送相关命令需与MapInfo.txt中的地图编号对应。
;示例:传送与人物控制
#ACT
MAPMOVE 0 330 330 ; 传送到比奇省安全区(坐标330,330)
MAP 3 ; 传送到盟重省
GAMEGLORY + 1000 ; 增加1000荣誉
KILL ; 杀死自己
CHANGEPERMISSION 10 ; 设置权限为10(GM)
CHANGENAME 新名字 ; 修改人物名称


怪物与召唤命令

MonGen命令格式为怪物名 刷新数量 范围 地图 X坐标 Y坐标。
;示例:召唤怪物与刷怪
#ACT
RECALLMOB 神兽 7 0 ; 召唤7级神兽
MOBPLACE 触龙神 10 10 0 ; 在当前地图放置触龙神
Param1 0
Param2 0
MonGen 白野猪 10 20 3 330 320 ; 在3号地图(330,320)周围20范围内刷10只白野猪


对话与界面命令

;示例:NPC对话框与界面操作
#SAY
欢迎来到沙巴克。\ ; \为换行符
<加入/@加入> <离开/@离开>\ ; <>内为可点击按钮
#ACT
OpenWebSite www.xxx.com ; 打开网页
ADDBATCH 加入行会 ; 加入行会
DELBATCH 退出行会 ; 退出行会


时间控制与机器人脚本

机器人脚本需放在Robot.txt中自动执行,使用#AutoRun标记。
;示例:机器人脚本(每分钟检测)
#AutoRun NPC RUNONDAY 00:01
#IF
CHECKONLINE 玩家名字
#ACT
SENDMSG 0 [%s]在线


核心文件路径与关联

命令类别 关联配置文件 存放路径

地图传送 MapInfo.txt Mir200\Envir\

物品检测 StdItems.DB Mud2\DB\

怪物检测 Monster.DB Mud2\DB\

NPC对话 Market_Def\ Mir200\Envir\Market_Def\

机器人脚本 Robot.txt Mir200\Envir\Robot_def\

脚本编写后需重启M2Server或使用@ReloadManage命令重载。脚本错误日志在Mir200\Envir\下的Log文件夹中,通过查看日志可快速定位语法错误。