属性依存のカウンターシステム
Posted: 2017年5月02日(火) 17:18
特定の属性にだけ反応して発動する、カウンタースクリプトがほしいです
できれば、カウンターを行うアクター・バトラーが対象じゃなくても発動するのが望ましいです。
お願いします
できれば、カウンターを行うアクター・バトラーが対象じゃなくても発動するのが望ましいです。
お願いします
コード: 全て選択
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● スキル/アイテムの発動
#--------------------------------------------------------------------------
alias tomo_element_counter_attack_invoke_item invoke_item
def invoke_item(target, item)
if target.states.any? do |state|
state.note.match(/<属性依存反撃:(\d+)>/i) &&
$1.to_i == item.damage.element_id
end
invoke_counter_attack(target, item)
@subject.last_target_index = target.index
else
tomo_element_counter_attack_invoke_item(target, item)
end
end
end
コード: 全て選択
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● スキル/アイテムの発動
#--------------------------------------------------------------------------
alias tomo_element_counter_attack_invoke_item invoke_item
def invoke_item(target, item)
if target.states.any? do |state|
state.note.match(/<属性依存反撃:(\d+),(\d+)>/i) &&
(item.damage.element_id < 0 ? @subject.atk_elements.include?($1.to_i) :
$1.to_i == item.damage.element_id)
end
target.force_action($2.to_i, target.index)
process_forced_action
@subject.last_target_index = target.index
else
tomo_element_counter_attack_invoke_item(target, item)
end
end
end
コード: 全て選択
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● スキル/アイテムの発動
#--------------------------------------------------------------------------
alias tomo_element_counter_attack_invoke_item invoke_item
def invoke_item(target, item)
if target.states.any? do |state|
state.note.match(/<属性依存反撃:(\d+),(\d+)>/i) &&
(item.damage.element_id < 0 ? @subject.atk_elements.include?($1.to_i) :
$1.to_i == item.damage.element_id)
end
invoke_element_counter_attack(target, $2.to_i)
@subject.last_target_index = target.index
else
tomo_element_counter_attack_invoke_item(target, item)
end
end
#--------------------------------------------------------------------------
# ● 属性依存反撃の発動
#--------------------------------------------------------------------------
def invoke_element_counter_attack(user, skill_id)
item = $data_skills[skill_id]
@log_window.display_use_item(user, item)
user.use_item(item)
refresh_status
action = Game_Action.new(user)
action.set_skill(skill_id)
targets = action.make_targets.compact
show_animation(targets, item.animation_id)
targets.each {|target| item.repeats.times {
apply_item_effects(apply_substitute(target, item), item)
} }
begin # 星潟様のスクリプトがある場合
user.ba_item_self_effect(item, false)
rescue
end
end
end