超时空星舰AI底层逻辑(篇)——罗米阿斯
萌新需要知道的一些事: 1.游戏对战每秒40帧,每帧检查运行一次AI 2.AI只会从上往下依次检查条件是否合格,结果是否完成,都满足则执行 3.游戏同模块AI同一帧只会生效一条 4.游戏船员AI模块:技能释放模块/定位模块 房间AI模块:电力控制模块/弹药切换模块/定位模块 5.不同模块间可以同时运行 6.船员定位模块比船员技能释放模块优先级高 7.船员在移动时不会释放技能 8.小人定位房间只会去离自己最近的房间 以下例子略微有些过时,只是作为模板讲解 例: 1.我方电力室血量<100%,定位条件房间 2.我方镭射炮血量<100%,定位条件房间 若我方电力室与镭射炮同时低于100%血量,则船员将优先修理电力,只有在电力全部满血的情况下才会修理未满血的镭射炮 例: 1.我方电力室血量<100%,定位条件房间 2.我方镭射炮血量<100%,定位条件房间 3.目标房间有火,定位我方导弹室若我方电力室与镭射炮同时低于100%血量,则船员会优先修理电力室,但是要修理的房间起火了,船员并不会避开火焰去往导弹室,因为避火的ai位于第三条,优先级低于修理电力与镭射 电力控制的ai可能有很多萌新分不清增加一格电力,降低一格电力,设置电力为x与设置最大电力有什么区别,也会产生这个房间只有3电,那么设置电力为3和设置最大电力有什么区别,简单的来说这几种设置电力的优先级不一样,大致如下: 设置最大电力:最高优先级 将电力设置为x:中等优先级 增加一格电力:有多余的电就用,没有就不增加降低一格电力:将电力释放到刚刚好消耗光的程度 值得注意的是房间类型的ai中,电力控制,弹药选取,目标定位独立运算船员类型的ai中,技能释放,房间定位独立运算 例: 1.敌方护盾尚存,设置电力为1 2.敌方护盾失效,设置电力为3 3.目标房间有敌方船员,设置弹药为毒气弹 4.无,设置弹药为火箭弹 5.敌方任意房间血量<50%,定位条件房间 6.无-定位敌方传送 其中1-2条为电力控制部分,视为一个整体,3-4为弹药选择部分,视为一个整体,第三条可以视为弹药选择部分的第一条,第四条视为弹药选择部分的第二条,5-6为目标定位部分,视为一个整体,原理同上船员类型ai类似,技能释放ai视为一个整体,房间定位ai视为一个整体 注:船员跟你一样是懒狗,如果定位我方一类房间有多个房间的时候,会定位离小人最近的那个,如:无-定位我方镭射炮,小人就会去离他最近的镭射炮 注:以上ai仅作为讲解需要,请勿直接搬运实战,翻车了概不报销修理套件
|