Project1

标题: 设置队员没死就无敌的角色/敌人 [打印本页]

作者: VIPArcher    时间: 2014-8-17 19:03
标题: 设置队员没死就无敌的角色/敌人
VA区提问的帖子 @rjterry @taroxd
使用方法是在角色/敌人的备注栏里备注<我不是杂鱼>
RUBY 代码复制
  1. class Game_Enemy < Game_Battler
  2.   def damage_valid?
  3.     return true if $game_troop.alive_members == [self]
  4.     return false if $data_enemies[@enemy_id].note.include?("<我不是杂鱼>")
  5.     return true
  6.   end
  7. end
  8.  
  9. class Game_Actor
  10.  
  11.   def damage_valid?
  12.     return true if $game_party.alive_members == [self]
  13.     return false if $data_actors[@actor_id].note.include?("<我不是杂鱼>")
  14.     return true
  15.   end
  16.  
  17. end
  18.  
  19. class Game_Battler
  20.  
  21.   def damage_valid?
  22.     true
  23.   end
  24.  
  25.   alias assign_hp_20140817 hp=
  26.   def hp=(hp)
  27.     assign_hp_20140817(hp) if hp >= @hp || damage_valid?
  28.   end
  29.  
  30.   alias mdv_20140817 make_damage_value
  31.   def make_damage_value(user, item)
  32.     mdv_20140817(user, item) if damage_valid?
  33.   end
  34.  
  35. end

出问题不保修(ΦωΦ)
作者: taroxd    时间: 2014-8-17 19:06
本帖最后由 taroxd 于 2014-8-17 19:13 编辑


不妨用更统一的形式定义:

RUBY 代码复制
  1. class Game_Battler
  2.  
  3.   def damage_valid?
  4.     !(actor? ? actor : enemy).note.include?('<我不是杂鱼>') ||
  5.       friends_unit.alive_members == [self]
  6.   end
  7.  
  8.   alias assign_hp_20140817 hp=
  9.   def hp=(hp)
  10.     assign_hp_20140817(hp) if hp >= @hp || damage_valid?
  11.   end
  12.  
  13.   alias mdv_20140817 make_damage_value
  14.   def make_damage_value(user, item)
  15.     mdv_20140817(user, item) if damage_valid?
  16.   end
  17.  
  18. end

作者: rjterry    时间: 2014-8-17 19:19
你真好 谢了哈   冲这我也得坚持做完游戏啊。。。。。
作者: 彩虹色的猪    时间: 2014-8-18 11:36
我也刚想要用这个呢
作者: 彩虹色的猪    时间: 2014-8-18 11:51
那请问如果想达成“有队友存活时,该角色不会被攻击”要如何修改呢?




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