目测是因为这里使用了alias
alias remove_shockcount_state remove_state def remove_state(state_id) remove_shockcount_state(state_id) out_count_state(state_id) end
alias remove_shockcount_state remove_state
def remove_state(state_id)
remove_shockcount_state(state_id)
out_count_state(state_id)
end
原方法执行了一次解除状态,新方法out_count_state(state_id)又执行了一次解除状态
所以可以尝试一下在原方法中加入条件判断,应该就没有问题了
class Game_Battler def remove_state(state_id) if state?(state_id) && !@shockcount_states.include?(state_id) revive if state_id == death_state_id erase_state(state_id) refresh @result.removed_states.push(state_id).uniq! end out_count_state(state_id) end end
class Game_Battler
def remove_state(state_id)
if state?(state_id) && !@shockcount_states.include?(state_id)
revive if state_id == death_state_id
erase_state(state_id)
refresh
@result.removed_states.push(state_id).uniq!
end
out_count_state(state_id)
end
end
|