设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 27|回复: 1
打印 上一主题 下一主题

[有事请教] 关于敌方回血技能使用概率的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1014
在线时间
79 小时
注册时间
2021-3-17
帖子
65
跳转到指定楼层
发表于 昨天 16:18 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
100星屑
我想修改敌方回血技能的Ai,具体为敌人血量越低加血概率越大
我的做法是在在gamg enemy行动里面修改增加代码:
    ###回血技能按血量分配权重###
    if (117..121).include?(action.skill_id)
      # 找出全场存活敌人最低血量百分比
      min_hp_rate = 1.0
      $game_troop.enemies.each do |enemy|
        next if enemy.dead?
        rate = enemy.hp.to_f / enemy.maxhp
        min_hp_rate = rate if rate < min_hp_rate
      end
      # 根据最低血量统一加权
      if min_hp_rate <= 0.2
        action.rating += 3
      elsif min_hp_rate <= 0.5
        action.rating += 2
      elsif min_hp_rate <= 0.7
        action.rating += 1
      end
    end
经测试,我把敌人打到残血后,它开始回血后,会一直加血,哪怕他已经满血了,还是会每回合加血,我应该怎么改

Lv5.捕梦者

梦石
0
星屑
42115
在线时间
6000 小时
注册时间
2006-11-10
帖子
7022
1
发表于 昨天 16:44 | 只看该作者
class  Game_Enemy < Game_Battler
  def 修正加血权重(action)
    return if action.kind != 1 or (sk=$data_skills[action.skill_id]).nil? or sk.power >= 0
    r = $game_troop.enemies.map{|i| i.exist? ? i.hp.to_f / i.maxhp : 1}.min
    action.rating = (11 - 10 * r).round
  end
end

把它塞到mian前,  然后 找到 available_actions.push(action) 这句, 在它上面加上  修正加血权重(action)

这样, 敌人持有加血技能的时候, 这个行动就会根据队伍里血量比例最低的来增减权重
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2026-6-25 03:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表