class Game_Battler < Game_BattlerBase
if !respond_to?("item_apply_20180709")
alias item_apply_20180709 item_apply
def item_apply(user, item)
$item_panding = item
item_apply_20180709(user, item)
end
end
end
class Game_BattlerBase
def duiyou?(user) #判断目标是否是队友,只能在能判定目标时使用
return true if (user.enemy? && self.enemy?) or (user.actor? && self.actor?)
return false
end
end
也或者在指定的脚本位置参照以下写法手动添加:
if respond_to?("update_state_cishu")
$fanshe_jieduan = "反射";$fanshe_jieduan1 = "受反射"
update_state_cishu(user, item)
end
以增加新的触发条件。
=end
class Game_BattlerBase
attr_accessor :state_cishu
alias clear_states_cishu clear_states
def clear_states
clear_states_cishu
@state_cishu = {}
end
alias erase_state_cishu erase_state
def erase_state(state_id)
erase_state_cishu(state_id)
@state_cishu.delete(state_id)
end
end
class Game_Battler < Game_BattlerBase
alias item_apply_cishu item_apply
def item_apply(user, item)
$fanshe_jieduan = "受攻击" if !item.damage.recover? && !duiyou?(user)
$fanshe_jieduan1 = "攻击" if !item.damage.recover? && !duiyou?(user)
update_state_cishu(user, item)
item_apply_cishu(user, item)
end
alias execute_damage_cishu execute_damage
def execute_damage(user)
item = $item_panding
execute_damage_cishu(user)
$fanshe_jieduan = "受伤害" if @result.hp_damage > 0
$fanshe_jieduan1 = "伤害" if @result.hp_damage > 0
$fanshe_jieduan = "受治疗" if @result.hp_damage < 0
$fanshe_jieduan1 = "治疗" if @result.hp_damage < 0
update_state_cishu(user, item)
end
def update_state_cishu(user, item)
states.each do |state|
if state.note.match(/<触发次数 (\S*) (\S*)>/)
if $fanshe_jieduan != nil && $fanshe_jieduan == eval($1)
@state_cishu[state.id] -= 1 if @state_cishu[state.id] > 0
remove_state(state.id) if @state_cishu[state.id] == 0
end
end
end
user.states.each do |state|
if state.note.match(/<触发次数 (\S*) (\S*)>/)
if $fanshe_jieduan1 != nil && $fanshe_jieduan1 == eval($1)
user.state_cishu[state.id] -= 1 if user.state_cishu[state.id] > 0
user.remove_state(state.id) if user.state_cishu[state.id] == 0
end
end
end
end
alias reset_state_counts_cishu reset_state_counts
def reset_state_counts(state_id) #附加状态时生成状态次数
state = $data_states[state_id]
if state.note.match(/<触发次数 (\S*) (\S*)>/)
@state_cishu[state.id] = eval($2)
end
reset_state_counts_cishu(state_id)
end