通过上次章节,我们讲到了在土城如何调用处理一些土城事项,如买药、整修、卖东西、存东西等一系列操作。那么接下来,我们就准备整装待发,进入天骥脱机脚本的战斗中了,一起跟小编来吧。 <战斗> 边走边打到[D5072,7,51] 跳转到<战斗> 说明:战斗由于地图不同,情况也都不相同。但是基本上都要使用 边走边打到[地图编码,X坐标,Y坐标] 这个命令。编写战斗脚本,有以下几个基本点,掌握了这几点,战斗部分的编写将变的十分轻松: A: 由于每个SF的地图不同,即使是相同的地方,也可能坐标点不一样。这里有一个重要的概念,就是门点。门点的坐标是脚本正常运行的基本保证。然而在成熟的天骥脱机脚本中,你根本看不到一个门点,这就是天骥脱机最智能的方面:它可以跨地图行走。但是有一个前提:就是你在执行脚本以前,必须要把你要作战的地图都走一遍。提前走一次的目的,就在于程序会自动纪录下每个地图之间准确的门点,在你走过一次以后,你的脚本已经变的十分的轻松。比如你要从地图D5071打到D5072,那么你直接可以写边打边走到[D5071,x,y],根本不需要在脚本中出现门点,过门等等语句了。这里有一个问题要注意,当跨地图编写时,你要到达的下一个地图的坐标,最好离门点稍微近一些,这样会程序会减少计算时间,使脚本优化,快速。(这里还有一个小技巧,比如你两个人物需要在同一个地图挂机。其中一个人物已经把要作战的地图都走过了,你可以在程序的文件夹中的 DATA 目录下,找到这个人物的名字的文件夹,打开它,你会看到有一个 doorlink.ini 的文件,当下一个人物需要在同样的地图挂机时,你把这个文件 复制,粘贴到另一个人物的文件夹下,覆盖掉新人物的 doorlink.ini ,那么这个新人物可以直接挂机,而不用重新走了。对了,doorlink.ini 就是纪录地图之间门点的文件) B: 天骥脱机脚本默认搜索怪的范围是最大,所以如果你想控制它搜索怪物范围的话,可以使用命令 搜索怪物范围[X]格,加在边打边走的坐标之前,比如 搜索怪物范围[5]格 C:战斗中对地图的判断至关重要,完善的地图判断是脚本顺利战斗的保证。因为你在打怪过程中,会出现小退,断线等等情况,人物上线以后,会停留在原地图,或者被传送到某个其他地图。 这里先解释一下程序在小退以后是如何判断的:天骥脱机外挂在人物小退以后,会首先判断你新上线以后的地图是不是刚才你下线时候的地图,如果是,那么它会继续执行你下线以前的脚本语句,你会在程序的系统显示中看到重新激活脚本 的字样。如果不是,那么它会重新启动脚本。 新上线时候,如果装备持久高,药带的足够,回城的话太浪费时间。但是装备需要修理,没药的时候如果判断不对,就不能及时回城,装备有化掉的危险。那么如何来做到既不浪费时间,又能保证该回城的时候就回去呢? 我们用两个例子来说明。首先是战斗中的地图判断。 下面的例子用来说明如何用一个模块来对整个地图的判断加以最完美的控制。 <战斗> 系统显示[您的人物已经开始战斗] <--这样写会在你的程序系统 显示部分出现一行你定义的蓝色的字,对于调试脚本很有用,建议你养成这个好习惯 如果 $_当前地图=D515 那么跳转到<小退> 如果 $_当前地图=D5071 那么跳转到<D5071> 如果 $_当前地图=D5072 那么跳转到<D5072> 如果 $_当前地图=D5073 那么跳转到<D5073> 如果 $_当前地图=D5074 那么跳转到<D5074> <小退> <--这个服务器是先到玛祖7,小退后再上来才能到祖玛6 小退[20]毫秒 等待[2000]毫秒 如果 $_当前地图<>D5071 <---这里的 <> 为不等于,脚本支持 >= <= <> = 那么跳转到<小退> <---直到地图编号=D5071才会到下一句,返回 跳转到<战斗> <D5071> 边打边走到[D5072,11,55] 如果 $_当前地图=D5071 那么跳转到<D5071> 跳转到<战斗> <D5072> 边打边走到[D5072,86,23] 走到[D5073,13,68] <--走到下一个地图离门点很近的一个坐标点 等待[1000]毫秒 跳转到<战斗> <D5073> 边打边走到[D5073,78,15] 边打边走到[D5073,54,9] 走到[D5074,45,87] 等待[1000]毫秒 跳转到<战斗> <D5074> 边打边走到[D5074,75,18] 走到[D515,15,29] 等待[1000]毫秒 跳转到<战斗> 呵呵,对了,就是这样。为每一个战斗地图都专门设立一个模块,并在完成后都跳转到<战斗>中去判断。这样就在战斗期间就永远不会出现地图错误的情况了。这样的脚本在执行中,干净利索,执行速度快。 这里需要插一下,说一下 $_当前地图 这个变量的用法。大家刚才看到的最上面的模块中,最后的4句,先看这4个语句 如果 $_当前地图=D5071 那么跳转到<D5071> 如果 $_当前地图=D5072 那么跳转到<D5072> 如果 $_当前地图=D5073 那么跳转到<D5073> 如果 $_当前地图=D5074 那么跳转到<D5074> 其实这这么多句,可以用一句来完成: 跳转到<$_当前地图> 也就是说,最上面那个<战斗>的模块部分,可以写成: <战斗> 系统显示[您的人物已经开始战斗] 如果 $_当前地图=D515 那么跳转到<小退> 否则跳转到<$_当前地图> 是不是更加简洁呢? 比如石墓阵里绕来绕去的地方,你也可以用一句来完成: 简单的可以写成 <石墓阵战斗> 边打边走到[$_当前地图,17,12] 跳转到<石墓阵战斗> ............................................. 这个变量会在一些样子相似,但是地图编码不同的地图中发挥最大的作用。比如在 祖码阁 的那些小屋子中也能发挥的淋漓尽致。你现在一定比我用这个变量用的好拉。我们继续往下看: 好了,那么我们说第2个例子,就是一但小退后新上线,由于地图的改变,程序默认会重新执行脚本。那怎么样才能做到完美呢?这个留到下一章,我们将讲到脚本的优化,让大家编写更高效的天骥脱机脚本 天骥脱机,你的终身伙伴! 感谢浏览天骥脱机官网! 天骥团队祝您游戏愉快。 (责任编辑:admin) |