5

  当前位置:首页 > 欧美其他游戏 >> >

大航海时代按键脚本心得

2007-03-12 14:01:16  作者:tbsmay  来源:互联网    文字大小:【】【】【
首先想声明一下,我不是按键精灵的老手,只是玩了dol后才由朋友推荐用起按键的。下面就我对按键发表一下心得体会。一些说的不对的地方也请老手批评指正。

 一、通用性

记得在按键的主页上,有人发过一句话,意思是说好像只有自己亲自做出来的脚本才是最好的。这点我非常同意。看了很多朋友发到网上的脚本,我觉得在绝大多数在通用性上缺少说明。很多脚本一些网友下载了就直接去用了,肯定都不大好用。

我的建议是不管是发脚本的朋友还是下载脚本的朋友都应该做好以下两点通用性的说明或调整,才能开始脚本:

1、游戏窗口位置

鉴于大多数朋友都窗口游戏的,发上来的脚本也大多是针对窗口的,心细一些的朋友也就发了个分辨率。但我个人的经验下来,如果你显示器的分辨率设置不一样,窗口内各元素的坐标也会不一样。这个时候需要调整一下,否则同样的点,坐标不一致,根本无法使用。

我认为解决此问题比较简单的方法是:

移动游戏窗口,使游戏同一个点的坐标与脚本种对应点的坐标相同。一个坐标对应了,其他的坐标也就同样对应统一了。

这个工作制需要设置一次,正常登出以后再登陆进去,位置是会保留的。当然我也看到过修正坐标取得对应的脚本,但我想,如果那些朋友连这个窗口对齐都懒得弄,别的辅助脚本就更不会去碰了。

当然,如果你的脚本中不涉及坐标使用,那就不影响。好比最简单的前台或者后台运行的只采集和吃料理的脚本。但我始终觉得,脚本要发挥更大的作用,不靠坐标那些命令是不行的。特别是ifcolor语句。

2、颜色数值

根据我自己的经验,在完成窗口调试工作以后,就算同样的坐标,也可能存在颜色数值不一的情况。比较典型的例子就是灰色(按下自定义栏以后,那种不能使用自定义的技能或道具的边框颜色),我的一台式机就是656565,另一台笔记本好像是6a6a6a。在这种情况下,如果有ifcolor语句使用的话,那种脚本也是不适用的。产生这种问题的原因我也不是很清楚,估计是显卡设置方面的问题。但一旦你发现下载的脚本中同样坐标的颜色和你的颜色不一样,你可就要把所有的坐标颜色都改成你自己机器的颜色。

所以建议发脚本的朋友在脚本注解中,对ifcolor(包括其他涉及坐标的语句)所取得那个点做以下说明,以方便下载朋友的使用。

二、技巧心得

在完成了通用性调试的情况下,你就可以使用网上下载的脚本了。但我觉得在实际运行过程当中,还会发生一些意外情况,导致脚本运行意外中止。最大的情况莫属网络延迟了。有些做脚本的朋友在发帖的时候也考虑到了这一问题,设置了参数让下载的朋友自行调节。我自己则是通过在语句中的调整来改变这一情况。下面就随便举些例子加以说明。

1、网络延迟,执行的命令长时间才有反应

这个估计是大家碰到最多的一个问题。如果以和NPC点击确认对话为例子。最多的使用方法是

delay 2000

moveto xxx yyy

leftclick 1

delay 2000

固然这可以通过改变确认这个动作的前面延迟来解决,现在前后就设置了2秒,你设置个20秒,总能解决问题了吧?但我觉得那种方法一是降低效率,二也不一定能解决问题。我个人对于上面一个简单命令避免网络延迟的脚本建议写法是:

rem wait

moveto xxx yyy

delay 200

ifcolor xxx yyy zzzzzz 0

leftclick 1

delay 200

else

goto wait

endif

虽然同样一个动作我弄得那么复杂,但实际上有效地解决了网络延迟问题。上面命令当中的xxx yyy是按键得那个坐标的颜色,判断只有颜色正确的时候,才点击下去,颜色不正确,死循环等待。

这里要注意的是,大航海中游戏的颜色,有种是固定不变的,有种是需要鼠标移上去改变颜色的,所以尽量都县moveto以后,再进行后面步骤。

2、网络延迟,执行的命令长时间没反应

如果说长时间以后才有反应是延迟,长时间没反应可以称得上是卡死了。我相信这也是大多数朋友经常碰到的一种情况。在这种情况下,我们需要回到上一部命令去操作才可以。解决的方法,我的建议可以设一个参数。还是以刚才的为例子:

rem restart

..........

vbs i=0

rem wait

moveto xxx yyy

delay 200

vbs i=i+1

if i>150

goto restart

endif

ifcolor xxx yyy zzzzzz 0

leftclick 1

delay 200

else

goto wait

endif

参数i设置了150,相当于150*200=30000毫秒(半分钟),就是说如果半分钟死循环等待以后,还是不出来对应的xxx yyy对话框,那需要回到之前的restart的地方,再操作一下。剩下的工作只是把restart标记放在一个合适的位置。

上面两个解决延迟的个人心得,我自己验证下来可以解决绝大多数的对话等问题。使得一些在挂造船、挂引取、挂生产的脚本得以顺畅,当然付出的代价就是脚本比较繁琐。但我认为还是非常值得的。因为一方面解决了延迟问题,另一方面还可以提高效率。200毫秒的设置可以使对话框一出来就能点击,用以海战军事脚本,比手点的都要快。

3、鼠标语句

大多数发上来的脚本,朋友们都能看得清楚鼠标命令,无非是左按、右按、左双击、右双击、锁鼠标。

我的建议是:

只要能用键盘实现的,就不用鼠标;只要鼠标点击不影响当前或后续界面的,多点几下(leftclick 改成 leftdoubleclick)没关系。

另外,锁鼠标可帮助游戏地图界面切换时候准确地定位。大家知道在新到一个游戏地图界面的时候,横向是不会变的,纵向则是根据上一次记录确定的。为了每次保持一致,可以编写一定的鼠标语句使得每次出来方向都一样。

Delay 3000
MoveTo 77 59
RightDown 1
LockMouse
MoveR 380 0
UnlockMouse
RightUp 1
MoveTo 77 561
RightDown 1
LockMouse
MoveTo 77 59
UnlockMouse
RightUp 1
Delay 1000
MoveTo 77 59
RightDown 1
LockMouse
MoveR 0 80
UnlockMouse
RightUp 1
Delay 1000

以上这段是我自己写的从卡尔维码头出来以后,自动转向热那亚的脚本。基数坐标是随便取得,运行后是先横向右转380,再往上转,最后纵向下移80。分辨率是1024*768的左上角游戏框应该都可以实现。纵向是先调整到仰视,再向下80,所以每次出来都能准确对准热那亚前进。

4、海面移动

就海上航行来说,我觉得这不是按键的强项,唯一能做的就是大致方向的确定。所以按键的航海适合短途定向(3天内)的移动。我个人对海面移动命令有以下三点心得:

用键盘操作需要自己机器调试(不同机器在keydown后面同样秒数下面的角度不一样),不如鼠标双击前进。为避免点击的坐标上有船只,可以在前进线路上去多个点点击,角度也可以用之前提到过的鼠标命令调节成俯视。

碰到暴风可以通过右下角暴风标记的取点进行判断,如果有,则断点击抛锚使船不会被漂。

除了出港时的方向直接一次性判断外,在海面上需要中转的转舵方向(好比从多弗尔到伦敦)或者暴风以后的续航方向,可以通过鼠标命令一段一段横向移动,判断罗盘上黄色箭头的颜色来确定。

5、寻找目标

在看到目标的情况下,可以通过tab进行寻找,有些人可能也已经发上来了,就寻找目标来说,我觉得最好的方法还是ifcolor+tab循环,模糊找图、模糊取色的方法可靠程度相对较差。我个人认为以下语句比较适合寻找目标:

For 1000
KeyPress 9 1
Delay 200
IfColor x1 y1 ffffff 0
IfColor x2 y2 ffffff 0
IfColor x3 y3 ffffff 0
IfColor x4 4 ffffff 0
KeyPress 13 1
Delay 1000
Goto find

EndIf
EndIf
EndIf
EndIf
EndFor

rem find



上述脚本中x1 y1, x2 y2, x3 y3, x4 y4分别是所要寻找目标中文字出现在右下提示框上面的四个白点(颜色值为ffffff),取点尽量要分散,有代表性。当然还有一种可能,你要找“交易所老板”,结果有一位玩家,就在你可视范围内,叫“交易所老板的儿子”,那是比较意外的,可能会先定位到他。但绝大多数情况下,不会出现这个问题。取得点数由自己决定。但是数量太少,很容易发生意外。一个字至少一个点,我觉得是基本要求。

寻找npc也可以有效解决进港问题。

上面基本上是我的一点是用按键的心得,有不当之处或者一些更好的命令请高手批评指正。因为曾经能够看到过别人一篇评论以后,被骂“不如发个脚本出来实惠”,我也再次随便发一些sub,供大家参考。

Plugin hwnd = Window.GetKeyFocusWnd()

delay 3000

Gosub repair
Gosub green
Gosub eat
EndScript

Sub eat
Rem starteat
IfColor 134 141 cf68cf 0
Goto endeat
Else
Plugin Window.SendKeyPress(hwnd,120)
Rem waiteat
Delay 50
IfColor 748 181 b3b3b3 0
Plugin Window.SendKeyPress(hwnd,118)
//F7料理
Delay 300
Goto starteat
Else
Goto waiteat
EndIf
EndIf
Rem endeat
Return eat
Sub repair
Rem startrepair
IfColor 150 105 6868cf 0
Goto endrepair
Else
Plugin Window.SendKeyPress(hwnd,120)
Rem waitrepair
Delay 50
IfColor 748 127 b3b3b3 0
Plugin Window.SendKeyPress(hwnd,117)
//F6修理
Delay 300
Goto startrepair
Else
Goto waitrepair
EndIf
EndIf
Rem endrepair
Return repair
Sub green
Rem startgreen
IfColor 133 122 68cf8a 0
Goto endgreen
Else
Plugin Window.SendKeyPress(hwnd,120)
Rem waitgreen
Delay 50
IfColor 748 235 b3b3b3 0
Plugin Window.SendKeyPress(hwnd,119)
//F8救助
Delay 300
Goto startgreen
Else
Goto waitgreen
EndIf
EndIf
Rem endgreen
Return green

上述三个sub,分别是吃料理、修理和救助,当然还可以运用到其他技能上去。窗口调节点可采用三个sub里面的取点,分别是对应F7、F8、F6的左上角框坐标,自定义栏为F9。战斗用基本做到一键恢复。

最后,我在这里求教后台sendkeydown的命令,如果可以,自动操舵、划船的脚本将可以实现后台运作。再次谢谢了。

本类热门

相关文章

评论内容:

热门关键字:

游戏美图

联系方式:职业玩家总机:021-33559392 Email:hezuo@zhiyewanjia.com
广告、分站加盟QQ: 293355330  > 293355300   
职业玩家虚拟交易导航网站 2006-2008 版权所有 职业玩家虚拟交易导航网 赣ICP备06005342号

立即注册PayPal并开始接受信用卡付款。