传奇脚本分服务端脚本和客户端外挂脚本两条线,前者改版本功能(NPC对话、爆率、任务、机器人定时器),后者做自动打怪挂机(按键精灵+大漠插件模拟键鼠)。两条线语法完全不通,先确定你要做哪头。
服务端脚本(Hero/GOM/GEE引擎通用底子)
所有脚本都是.txt文本,推荐Notepad++写,保存选ANSI编码,放错目录引擎不读。核心逻辑就一句:触发标识+条件判断+执行动作。
基础结构:
[@MAIN]
IF
CHECKLEVELEX>35
CHECKGOLD10000
ACT
TAKE金币10000
GIVE裁决之杖1
SENDMSG6兑换成功!
BREAK
ELSESAY
等级或金币不够。
[@标签]是入口,点击NPC时引擎找对应标签执行。#IF底下跟条件(CHECKLEVEL检测等级、CHECKITEM检测背包物品、CHECKGOLD检测金币、CHECKJOBWARRIOR检测职业、RANDOM100表示1%几率),#ACT底下跟动作(GIVE发物品、TAKE扣物品、MAPMOVE地图号XY传送、CHANGEEXP加经验、SET[任务号]1打标记),#SAY输出对话,\换行,BREAK中断不再往下走,#ELSEACT/#ELSESAY是不满足条件时的分支。
NPC注册:脚本写完放Mir200\Envir\Market_Def\,文件名“NPC名-地图号.txt”。然后打开Mir200\Envir\Merchant.txt末尾加一行:
0330330装备使者装备使者510010
字段依次是地图号、X、Y、显示名、脚本名(不带.txt)、外观编号、范围、刷新间隔。M2控制台点“重新加载NPC”生效,不用关服。
爆率脚本:Mir200\Envir\MonItems\下建“祖玛教主.txt”,内容:
1/500裁决之杖1
1/100力量戒指1
1/50强效太阳水35
100%金币5002000
1/N是平均N只掉一次,100%必掉。
全局触发:登录、进图、定时泡点写Mir200\Envir\MapQuest_def\QManage.txt,用[@Login]、[@EnterMap]等引擎预留标签。定时器走Robot_def\AutoRunRobot.txt配“#AutoRunNPCSEC30@泡点”,RobotManage.txt里写[@泡点]段用SetScTimer开启、KillScTimer关闭。
假人/机器人自动上线:DummyNameList.txt塞名字,AutoRunRobot.txt每30秒触发@假人上线,RobotManage.txt里CHECKDUMMYCOUNT<50配合DUMMYLOGON33303305在盟重登5个,合击版另配DummyHeroNameList.txt给英雄名。
变量系统:P0-P9人物临时数字,D0-D9持久数字,G0-G9全服全局,S0-S9字符,A0-A9字符。MOVP1100赋值,INCP11自增,DECP11自减,MOVSS1<$USERNAME>存名字。防重复领奖用SETS1已领再CHECKSTRINGS1已领。
客户端挂机脚本(按键精灵+大漠)
面向合击版自动打怪、双开练英雄。装按键精灵官网版,加载大漠插件dm.dmsoft,绑定窗口用dm.BindWindow(hwnd"dx2""windows""windows"0)。主循环Do…Loop里干四件事:抓血条颜色判断喝药、FindColor找怪物血条红点、KeyPress49按1键放烈火、Delay800-1200随机延时模拟人手。
最小可用框架:
Do
hp=dm.GetColor(100100)
Ifhp<>"00FF00"Then
dm.KeyPress(83)'开背包
dm.KeyPress(49)'喝红
EndIf
dm.FindColor(00800600"FF0000"xy)
Ifx>0Then
dm.MoveToxy
dm.LeftClick
dm.KeyPress(49)'烈火
Delay1000
Else
dm.MoveToRnd(200)+400Rnd(150)+300
dm.LeftClick
Delay2000
EndIf
Loop
合击版要多一段:先dm.KeyPress(17)Ctrl+E确认英雄出战,找怪后dm.KeyPress(87)配合Ctrl+W锁敌,怒满dm.KeyPress(83)Ctrl+S放合击。血条坐标、怪物颜色用大漠综合工具“抓抓”对着你自己客户端截屏取,别人脚本直接抄坐标多半偏。
调试顺序
服务端脚本写错最常见是中文标点、参数少填、标签重名、编码非ANSI。改完别重启整个服,M2点“重新加载脚本”或“重新加载NPC”先看M2日志报哪行错。客户端脚本先单步跑一个找怪+攻击,确认坐标对准再叠喝药和拾取,拾取用FindPic找物品落地图的bmp截图,比纯颜色稳。
GOM和Hero命令九成通用,少数如CHECKGAMEGOLD(GOM元宝)和CHECKGOLD(Hero元宝)名字不同,换引擎时对照命令手册改一遍就行,别整套重写。
服务端脚本(Hero/GOM/GEE引擎通用底子)
所有脚本都是.txt文本,推荐Notepad++写,保存选ANSI编码,放错目录引擎不读。核心逻辑就一句:触发标识+条件判断+执行动作。
基础结构:
[@MAIN]
IF
CHECKLEVELEX>35
CHECKGOLD10000
ACT
TAKE金币10000
GIVE裁决之杖1
SENDMSG6兑换成功!
BREAK
ELSESAY
等级或金币不够。
[@标签]是入口,点击NPC时引擎找对应标签执行。#IF底下跟条件(CHECKLEVEL检测等级、CHECKITEM检测背包物品、CHECKGOLD检测金币、CHECKJOBWARRIOR检测职业、RANDOM100表示1%几率),#ACT底下跟动作(GIVE发物品、TAKE扣物品、MAPMOVE地图号XY传送、CHANGEEXP加经验、SET[任务号]1打标记),#SAY输出对话,\换行,BREAK中断不再往下走,#ELSEACT/#ELSESAY是不满足条件时的分支。
NPC注册:脚本写完放Mir200\Envir\Market_Def\,文件名“NPC名-地图号.txt”。然后打开Mir200\Envir\Merchant.txt末尾加一行:
0330330装备使者装备使者510010
字段依次是地图号、X、Y、显示名、脚本名(不带.txt)、外观编号、范围、刷新间隔。M2控制台点“重新加载NPC”生效,不用关服。
爆率脚本:Mir200\Envir\MonItems\下建“祖玛教主.txt”,内容:
1/500裁决之杖1
1/100力量戒指1
1/50强效太阳水35
100%金币5002000
1/N是平均N只掉一次,100%必掉。
全局触发:登录、进图、定时泡点写Mir200\Envir\MapQuest_def\QManage.txt,用[@Login]、[@EnterMap]等引擎预留标签。定时器走Robot_def\AutoRunRobot.txt配“#AutoRunNPCSEC30@泡点”,RobotManage.txt里写[@泡点]段用SetScTimer开启、KillScTimer关闭。
假人/机器人自动上线:DummyNameList.txt塞名字,AutoRunRobot.txt每30秒触发@假人上线,RobotManage.txt里CHECKDUMMYCOUNT<50配合DUMMYLOGON33303305在盟重登5个,合击版另配DummyHeroNameList.txt给英雄名。
变量系统:P0-P9人物临时数字,D0-D9持久数字,G0-G9全服全局,S0-S9字符,A0-A9字符。MOVP1100赋值,INCP11自增,DECP11自减,MOVSS1<$USERNAME>存名字。防重复领奖用SETS1已领再CHECKSTRINGS1已领。
客户端挂机脚本(按键精灵+大漠)
面向合击版自动打怪、双开练英雄。装按键精灵官网版,加载大漠插件dm.dmsoft,绑定窗口用dm.BindWindow(hwnd"dx2""windows""windows"0)。主循环Do…Loop里干四件事:抓血条颜色判断喝药、FindColor找怪物血条红点、KeyPress49按1键放烈火、Delay800-1200随机延时模拟人手。
最小可用框架:
Do
hp=dm.GetColor(100100)
Ifhp<>"00FF00"Then
dm.KeyPress(83)'开背包
dm.KeyPress(49)'喝红
EndIf
dm.FindColor(00800600"FF0000"xy)
Ifx>0Then
dm.MoveToxy
dm.LeftClick
dm.KeyPress(49)'烈火
Delay1000
Else
dm.MoveToRnd(200)+400Rnd(150)+300
dm.LeftClick
Delay2000
EndIf
Loop
合击版要多一段:先dm.KeyPress(17)Ctrl+E确认英雄出战,找怪后dm.KeyPress(87)配合Ctrl+W锁敌,怒满dm.KeyPress(83)Ctrl+S放合击。血条坐标、怪物颜色用大漠综合工具“抓抓”对着你自己客户端截屏取,别人脚本直接抄坐标多半偏。
调试顺序
服务端脚本写错最常见是中文标点、参数少填、标签重名、编码非ANSI。改完别重启整个服,M2点“重新加载脚本”或“重新加载NPC”先看M2日志报哪行错。客户端脚本先单步跑一个找怪+攻击,确认坐标对准再叠喝药和拾取,拾取用FindPic找物品落地图的bmp截图,比纯颜色稳。
GOM和Hero命令九成通用,少数如CHECKGAMEGOLD(GOM元宝)和CHECKGOLD(Hero元宝)名字不同,换引擎时对照命令手册改一遍就行,别整套重写。

