Project1

标题: 敵人選擇自己陣營HP最低者補血的腳本問題 [打印本页]

作者: liu5417    时间: 2016-10-9 23:25
标题: 敵人選擇自己陣營HP最低者補血的腳本問題
class Game_Action
  alias targets_for_friends_20140611 targets_for_friends
  def targets_for_friends
    if item.note.include?('<指定同隊HP最低者>')
      [friends_unit.alive_members.min_by(&:hp_rate)]
    elsif item.note.include?('<指定同隊HP最高者>')
      [friends_unit.alive_members.max_by(&:hp_rate)]
    else
      targets_for_friends_20140611
    end
  end

這是敵人使用技能選擇同隊HP最低或最高的腳本, 想多加一個判定是排除HP滿血的對象,若全體滿血則使用次要技能,要怎修改?
作者: RaidenInfinity    时间: 2016-10-17 08:50
如果你是要敌人在敌队全满血时则不使用这个技能:

  1. class Game_Enemy < Game_Battler
  2.   
  3.   def select_enemy_action(action_list, rating_zero)
  4.     sum = action_list.inject(0) {|r, a| r += a.rating - rating_zero }
  5.     return nil if sum <= 0
  6.     value = rand(sum)
  7.     action_list = action_list.clone
  8.     action_list.each{|a|
  9.       if a.skill_id == 技能ID
  10.         action_list.delete(a) if $game_troop.alive_members_hp_full?
  11.       end
  12.     }  
  13.     action_list.each do |action|
  14.       return action if value < action.rating - rating_zero
  15.       value -= action.rating - rating_zero
  16.     end
  17.   end
  18.   
  19. end  

  20. class Game_Unit
  21.   
  22.   def alive_members_hp_full?
  23.     return alive_members.select{|e| e.hp_rate > 1.0}.empty?
  24.   end
  25.   
  26. end  
复制代码


请自行填入技能ID




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1