Project1
标题:
【VA】LZSB系列第五蛋·敌人AI系统v0.04
[打印本页]
作者:
阿尔西斯的马甲
时间:
2012-1-29 20:18
标题:
【VA】LZSB系列第五蛋·敌人AI系统v0.04
本帖最后由 阿尔西斯的马甲 于 2012-1-30 14:33 编辑
LZSB系列第五蛋是一个敌人AI系统
的万年大坑
灰常的坑爹。需要慢慢修补坑爹点才能真正变成完整系统。
所以版本号暂定为0.01
别急着看脚本
先了解一下这脚本的坑爹点
坑爹点1:
完全就是一不完善的东西我就急着发出来了,这个AI正如我,伟大的LZ的智商一样,是SB级的(部分解决)
坑爹点2:
为什么加了apply_guard还是无法判断防御?
=begin
0.01 to 0.02
史莱姆发动狂战士咆哮的时机把握得更准了。
0.02 to 0.03
敌人懂得通过target_index确定杀最小血玩家的战略
0.03 to 0.04
计算公式推倒重做
=end
def mo(a, b)
a.to_i-(a.to_i/b.to_i*b.to_i)#去模的小函数。。。我不太了解Ruby的Math库
end
class Game_Action
def ojt=(ojt)#用ojt接口完成更改当前行动obj的工作
@item.object=ojt
end
def ojt
@item.object
end
end
class Game_Battler < Game_BattlerBase
def getdmgval(user, item, withhp=false)
value = item.damage.eval(user, self, $game_variables)
value *= item_element_rate(user, item)
value *= pdr if item.physical?
value *= mdr if item.magical?
value *= rec if item.damage.recover?
value = apply_critical(value) if @result.critical
value = apply_variance(value, item.damage.variance)
value = apply_guard(value)
if withhp==true
if self.hp!=0
value = value.to_f/self.hp
if value>self.hp
value = 1#一击秒杀
end
else
value = 0#怪物已经死了,再打也没用
end
end
value
end
end
class Game_Enemy
alias befai_init initialize
def initialize(index, enemy_id)
befai_init(index, enemy_id)
@huihe = 0
end
def ai_action
@huihe += 1
return false if hidden?
return false if @actions[0].forcing
case @enemy_id
when 1
$pxguaqi=false if $pxguaqi==nil
$yjpxhuihe=0 if $yjpxhuihe==nil
$paoxiao=false
if self.tp>=25
if $pxguaqi or (mo(@huihe,5)==1 and @huihe!=$yjpxhuihe)
@actions[0].ojt=$data_skills[82]
$yjpxhuihe=@huihe
$pxguaqi=false
$paoxiao=true
end
else
$pxguaqi=true
end
if $paoxiao==false
@actions[0].ojt=$data_skills[1]
a=0
for i in 0..4
begin
dmg = $game_party.battle_members[i].getdmgval(self,@actions[0].ojt,true)
if ($game_party.battle_members[i].hp>0 and dmg>a)
a=dmg
@actions[0].target_index=i
end
rescue
end
end
end
else
return false
end
return true
end
alias befai_mact make_actions
def make_actions
befai_mact
ai_action
end
end
复制代码
作者:
Kimu
时间:
2012-1-29 20:22
32行的AI.................除去接口外还剩下几行..........
@actions[0].ojt=$data_skills[82]
复制代码
固定一个技能大丈夫?
作者:
阿尔西斯的马甲
时间:
2012-1-30 12:42
0.04版本已经可以做到计算伤害(用系统默认模式计算)基本摆脱SB智商
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1