Project1
标题: 设置队员没死就无敌的角色/敌人 [打印本页]
作者: VIPArcher 时间: 2014-8-17 19:03
标题: 设置队员没死就无敌的角色/敌人
VA区提问的帖子 @rjterry @taroxd
使用方法是在角色/敌人的备注栏里备注<我不是杂鱼>
class Game_Enemy < Game_Battler
def damage_valid?
return true if $game_troop.alive_members == [self]
return false if $data_enemies[@enemy_id].note.include?("<我不是杂鱼>")
return true
end
end
class Game_Actor
def damage_valid?
return true if $game_party.alive_members == [self]
return false if $data_actors[@actor_id].note.include?("<我不是杂鱼>")
return true
end
end
class Game_Battler
def damage_valid?
true
end
alias assign_hp_20140817 hp=
def hp=(hp)
assign_hp_20140817(hp) if hp >= @hp || damage_valid?
end
alias mdv_20140817 make_damage_value
def make_damage_value(user, item)
mdv_20140817(user, item) if damage_valid?
end
end
class Game_Enemy < Game_Battler
def damage_valid?
return true if $game_troop.alive_members == [self]
return false if $data_enemies[@enemy_id].note.include?("<我不是杂鱼>")
return true
end
end
class Game_Actor
def damage_valid?
return true if $game_party.alive_members == [self]
return false if $data_actors[@actor_id].note.include?("<我不是杂鱼>")
return true
end
end
class Game_Battler
def damage_valid?
true
end
alias assign_hp_20140817 hp=
def hp=(hp)
assign_hp_20140817(hp) if hp >= @hp || damage_valid?
end
alias mdv_20140817 make_damage_value
def make_damage_value(user, item)
mdv_20140817(user, item) if damage_valid?
end
end
出问题不保修(ΦωΦ)
作者: taroxd 时间: 2014-8-17 19:06
本帖最后由 taroxd 于 2014-8-17 19:13 编辑
不妨用更统一的形式定义:
class Game_Battler
def damage_valid?
!(actor? ? actor : enemy).note.include?('<我不是杂鱼>') ||
friends_unit.alive_members == [self]
end
alias assign_hp_20140817 hp=
def hp=(hp)
assign_hp_20140817(hp) if hp >= @hp || damage_valid?
end
alias mdv_20140817 make_damage_value
def make_damage_value(user, item)
mdv_20140817(user, item) if damage_valid?
end
end
class Game_Battler
def damage_valid?
!(actor? ? actor : enemy).note.include?('<我不是杂鱼>') ||
friends_unit.alive_members == [self]
end
alias assign_hp_20140817 hp=
def hp=(hp)
assign_hp_20140817(hp) if hp >= @hp || damage_valid?
end
alias mdv_20140817 make_damage_value
def make_damage_value(user, item)
mdv_20140817(user, item) if damage_valid?
end
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 |