第125章:采集精灵

    第125章:采集精灵 (第2/3页)

更是无法应对浮玉山这种复杂情况。所以他的思路中暂时排除了浮玉山,决定先考虑设计在普通地图采集药材的程序。

    仔细思索一番,其实这个程序设计难度并不高。大致思路就是:在野外地图按照一定的路线巡逻,搜索可以采集的药材的位置,然后前往目标附近,实施采集动作。

    如何识别野外地图的药材生长的位置?药材在地图上是随机生长的。因此,需要程序灵活判断。这里的解决方案,基于对服务器返回的实时数据的解读。

    按照孙轶民在光潋开发游戏的实践中了解到的网游运行的工作原理,角色接受周围视野范围内的信息的是实时动态的。

    具体来说:随着角色在地图上的移动,以角色为中心的附近一定距离范围内(视野范围内)的实时情况会以数据形式从服务器发送到客户端,这些数据包括附近的玩家角色,怪物,资源等等信息。

    客户端根据这些数据,动态更新玩家角色视野范围内的图形内容。

    在这些数据信息中自然可以找到药材位置的相关内容。基于黎允儿提供的数据解码模块,做到这一点并没有障碍。

    获取到药材的位置信息后,程序便可以通过发送模拟的键盘和鼠标消息,操纵角色移动到目标位置,并实施采集动作。

    那么还要解决如何持续采集的问题。

    由于药材被采集之后需要一段时间后才能重新生长出来,因此,如果长时间在一个位置附近采集,必然最终会导致视野范围内所有药材被采集完毕。此时,可以让程序驱动角色移动到另一片区域。

    那么如何选择移动方向?可以随机选择一个方向直线前进,直到视野范围内出现可以采集的药材为止。

    当然,这样的搜索方式有些笨,效率不一定高。不过作为第一版程序,先采用这个笨办法也无妨,后续可以改进。

    程序设计的大致思路就是如此。

    关于采集的具体过程,程序面临两个问题需要解决:一是采集药材的过程中会有小怪骚扰纠缠,二是有可能容易遭遇敌对玩家攻击。三是野外也有一定的小概率出现精英怪物,以及周日出现的世界boss。

    关于第一个问题,相对于襄王的战力水平而言,野外的普通怪物对人物攻击造成的伤害非常有限,不会致命,襄王原本可以不用理会。但问题是,采集一颗草药的动作过程,需要3.5秒的时间,在这个时间内,如果遭到野外小怪的攻击,则动作被打断则会导致采集失败。所以程序要做的是:如果检测到遭到角色正在遭受小怪骚扰攻击,那么先启动战斗功能杀死怪物。

    这里的战斗功能设计并不难,因为需要对付的是战斗力不高的普通小怪,不需要讲究战斗策略,只要简单的按顺序循环施放所有攻击技能即可。可以照搬演奏家的“硬怼”战斗模式。

    

    (本章未完,请点击下一页继续阅读)