龙狼三国是一个我玩了很久的游戏,现在游戏风云的官服已经停服了(参见《〈龙狼三国〉停服公告》:http://www.gamefy.cn/view_38832.html),而且神龙守护者刷新BUG已经在今年(2014)年初被修复。这两天整理了下之前写的脚本,写到博客里,至少也能留个念想~~~
脚本(神龙终结者_20141081344.Q)下载地址:http://pan.baidu.com/s/1bn70hEB
1.关于龙狼三国神龙守护者的BUG
龙狼三国神龙守护者,一共50关,一关获胜后可以继续挑战后面的关卡,失败了可以重新挑战,每次挑战无论胜负都可以重新挑战。
最开始,我用一个鼠标连点器(我给它取名叫Justitia)来解决不断挑战神龙守护者获取奖励。但是,用鼠标连点器Justita刷BUG具有两个致命的缺陷:
1)Justitia采用了鼠标连点方法来刷神龙,其效率的低下显而易见,在龙狼三国游戏机制中,战斗开始的时候会在短时间内快速结束,而过场动画其实是不必要的。因此,刷新浏览器并重新进入会比看完动画后退出战斗界面重新进入快很多-从多台计算机的数据统计来看至少要快两倍。
2)龙狼三国游戏的代码存在内存泄漏问题,在游戏中不断增长的内存会导致浏览器崩溃,鼠标连点器一般在运行3-4小时后会导致这一问题的发生。内存的无限制增长也是游戏开始界面提示玩家要经常刷新的原因。如果使用刷新机制刷神龙守护,每次都会清空游戏内存,即使浏览器偶然崩溃,也可以通过刷新浏览器重新进入,容错率非常高。
因此,我用按键精灵写了JustitiaII,用来在晚上挂机。由于不同计算机的屏幕大小不同,导致鼠标单击位置在不同计算机上会发生变化,JustitiaII也进行了相关设定。用户可以自由设置每两次鼠标操作的时间间隔和鼠标单击屏幕的位置。
注:这个BUG在今年年初被修复(参见《〈龙狼三国〉1月21日维护公告》:http://www.mx175.com/html/2014/news_0121/4889.html)
2.界面设计
下面是JustitiaII的界面设计
设置界面内的所有控件,每行一个的都为等候时间的设置,控件名依次为:
InputBoxDelay1 到 InputBoxDelay6
每行两个的都为鼠标坐标的设置,控件名依次为:
横坐标:InputBoxX1 到 InputBoxX5
纵坐标:InputBoxY1 到 InputBoxY5
在制作好的小精灵中显示如下:
3.脚本代码
Delay Form1.InputBoxDelay1.Text //刷新浏览器(默认火狐浏览器Win7系统最大化时位置) MoveTo Form1.InputBoxX1.Text, Form1.InputBoxY1.Text LeftClick 1 Delay Form1.InputBoxDelay2.Text //选择大区(默认在三区位置) MoveTo Form1.InputBoxX2.Text, Form1.InputBoxY2.Text LeftClick 1 Delay Form1.InputBoxDelay3.Text //确认获得的挂机经验值 MoveTo Form1.InputBoxX3.Text, Form1.InputBoxY3.Text LeftClick 1 Delay Form1.InputBoxDelay4.Text //找到神龙守护者 MoveTo Form1.InputBoxX4.Text, Form1.InputBoxY4.Text LeftClick 1 Delay Form1.InputBoxDelay5.Text //确认开启神龙守护者 MoveTo Form1.InputBoxX5.Text, Form1.InputBoxY5.Text LeftClick 1 Delay Form1.InputBoxDelay6.Text //测试鼠标位置,输入坐标,可以直接将鼠标移动到坐标处 Event Form1.ButtonTest.Click MoveTo Form1.InputBoxX.Text, Form1.InputBoxY.Text End Event //将配置恢复到默认 Event Form1.ButtonDefault.Click Form1.InputBoxDelay1.Text="1000" Form1.InputBoxDelay2.Text="3000" Form1.InputBoxDelay3.Text="8000" Form1.InputBoxDelay4.Text="2000" Form1.InputBoxDelay5.Text="2000" Form1.InputBoxDelay6.Text="4000" Form1.InputBoxX1.Text="918" Form1.InputBoxX2.Text="714" Form1.InputBoxX3.Text="714" Form1.InputBoxX4.Text="645" Form1.InputBoxX5.Text="645" Form1.InputBoxY1.Text="42" Form1.InputBoxY2.Text="458" Form1.InputBoxY3.Text="458" Form1.InputBoxY4.Text="130" Form1.InputBoxY5.Text="355" End Event //保存配置文件到指定路径 Event Form1.ButtonSave.Click //写INI文件,四个参数依次是小节名、键名、键值、INI文件路径 //延迟信息 Call Plugin.File.WriteINI("Delay","Delay1", _ Form1.InputBoxDelay1.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("Delay","Delay2", _ Form1.InputBoxDelay2.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("Delay","Delay3", _ Form1.InputBoxDelay3.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("Delay","Delay4", _ Form1.InputBoxDelay4.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("Delay","Delay5", _ Form1.InputBoxDelay5.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("Delay","Delay6", _ Form1.InputBoxDelay6.Text,Form1.InputBoxAddress.Text) //鼠标横轴信息 Call Plugin.File.WriteINI("MouseX","MouseX1", _ Form1.InputBoxX1.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("MouseX","MouseX2", _ Form1.InputBoxX2.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("MouseX","MouseX3", _ Form1.InputBoxX3.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("MouseX","MouseX4", _ Form1.InputBoxX4.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("MouseX","MouseX5", _ Form1.InputBoxX5.Text,Form1.InputBoxAddress.Text) //鼠标纵轴信息 Call Plugin.File.WriteINI("MouseY","MouseY1", _ Form1.InputBoxY1.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("MouseY","MouseY2", _ Form1.InputBoxY2.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("MouseY","MouseY3", _ Form1.InputBoxY3.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("MouseY","MouseY4", _ Form1.InputBoxY4.Text,Form1.InputBoxAddress.Text) Call Plugin.File.WriteINI("MouseY","MouseY5", _ Form1.InputBoxY5.Text,Form1.InputBoxAddress.Text) MessageBox "参数保存完毕" End Event //从指定路径读取配置文件 Event Form1.ButtonLoad.Click //读取INI文件内容,参数依次为小节名、键名、文件地址,返回键值 //延迟信息 Form1.InputBoxDelay1.Text=Plugin.File.ReadINI( _ "Delay","Delay1",Form1.InputBoxAddress.Text) Form1.InputBoxDelay2.Text=Plugin.File.ReadINI( _ "Delay","Delay2",Form1.InputBoxAddress.Text) Form1.InputBoxDelay3.Text=Plugin.File.ReadINI( _ "Delay","Delay3",Form1.InputBoxAddress.Text) Form1.InputBoxDelay4.Text=Plugin.File.ReadINI( _ "Delay","Delay4",Form1.InputBoxAddress.Text) Form1.InputBoxDelay5.Text=Plugin.File.ReadINI( _ "Delay","Delay5",Form1.InputBoxAddress.Text) Form1.InputBoxDelay6.Text=Plugin.File.ReadINI( _ "Delay","Delay6",Form1.InputBoxAddress.Text) //鼠标横轴信息 Form1.InputBoxX1.Text=Plugin.File.ReadINI( _ "MouseX","MouseX1",Form1.InputBoxAddress.Text) Form1.InputBoxX2.Text=Plugin.File.ReadINI( _ "MouseX","MouseX2",Form1.InputBoxAddress.Text) Form1.InputBoxX3.Text=Plugin.File.ReadINI( _ "MouseX","MouseX3",Form1.InputBoxAddress.Text) Form1.InputBoxX4.Text=Plugin.File.ReadINI( _ "MouseX","MouseX4",Form1.InputBoxAddress.Text) Form1.InputBoxX5.Text=Plugin.File.ReadINI( _ "MouseX","MouseX5",Form1.InputBoxAddress.Text) //鼠标纵轴信息 Form1.InputBoxY1.Text=Plugin.File.ReadINI( _ "MouseY","MouseY1",Form1.InputBoxAddress.Text) Form1.InputBoxY2.Text=Plugin.File.ReadINI( _ "MouseY","MouseY2",Form1.InputBoxAddress.Text) Form1.InputBoxY3.Text=Plugin.File.ReadINI( _ "MouseY","MouseY3",Form1.InputBoxAddress.Text) Form1.InputBoxY4.Text=Plugin.File.ReadINI( _ "MouseY","MouseY4",Form1.InputBoxAddress.Text) Form1.InputBoxY5.Text=Plugin.File.ReadINI( _ "MouseY","MouseY5",Form1.InputBoxAddress.Text) MessageBox "参数读取完毕" End Event
4.脚本说明
(这个说明针对的是V3.0版本,也就是本文中贴出代码和GUI设计的版本)
1)本精灵为《龙狼三国》神龙守护者专用刷物品工具
2)本精灵现在已经可以适用于所有浏览器,增加了鼠标位置手动校准功能
3)本精灵在V2.0版本的基础上,又增加了设置的保存和读取功能
4)现在使用本精灵时可以直接将配置信息设回默认了
5)使用本程序前,请先进入到人人网龙狼三国大区选择界面
6)在使用本精灵时最好先设置电脑静音,以免受到游戏中不断切换的背景音乐烦扰
7)在一个陌生环境下第一次使用本程序,请务必校准鼠标位置
5.按键小精灵图标的修改
我把我生成的按键小精灵JustitiaII的图标给改了 :-)
具体方法如下:
最右侧的图像是PNG格式的截图,自左数分别是16*16、32*32、48*48、64*64、256*256的ICO格式图标。将PNG图像转换为这些尺寸的ICO图标,我是通过这个网站上完成的:http://www.ico.la/ 。用ICO文件替换EXE文件的图标,可以通过工具pexplorer将EXE文件中的各尺寸图标逐一替换来实现。
附1:JustitiaII的几个快捷键
1)启动热键 Ctrl+1
2)暂停/继续热键 Ctrl+2
3)中止热键 Ctrl+3
4)全部中止热键 Ctrl+4
附2:JustitiaII之后的龙狼三国神龙守护者
BUG修复之后,JustitiaII已经不能使用了,所以我只能另想其他办法应对去刷新这个活动。
有兴趣的读者可以参考这篇博客:http://my.oschina.net/Tsybius2014/blog/296966
END