#----------------------------------------------------------------------------
# 魔法剣 貪藻矢射妥←カスタム by 貪藻矢射妥←
#----------------------------------------------------------------------------
# 原作: ◆ 魔法剣 - KGC_MagicWeapon ◆
# ◇ Last update : 20XX/??/?? ◇
# 原作者: TOMY様
# HP: Kamesoft
# アドレス: http://ytomy.sakura.ne.jp/
#
# 改造内容:
# ・武器名や属性による設定からスクリプトでハッシュ設定するように変更
# 武器名や素早さ、器用さという制約はなくなりましたが、使い勝手は微妙かも
#
#============================================================================
# 変更点
# まだなし
#==============================================================================
# ★ カスタマイズ項目 ★
#==============================================================================
module KGC
# ◆制約[敵を通常攻撃]でも発動
MW_EXEC_RESTRICT2 = true
# ◆武器IDと発動スキル、発動率のハッシュ
# 武器ID => [発動スキル, 発動率],
# を記載していってください
MW_SKILL_HASH = {
1 => [21, 80],
}
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
$imported = {} if $imported == nil
$imported["MagicWeapon"] = true
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Battler (分割定義 1)
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :magic_weapon # 魔法剣発動フラグ
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_KGC_MagicWeapon initialize
def initialize
# 元の処理を実行
initialize_KGC_MagicWeapon
@magic_weapon = false
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Battle (分割定義 3)
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● フレーム更新 (アクターコマンドフェーズ)
#--------------------------------------------------------------------------
alias update_phase3_KGC_MagicWeapon update_phase3
def update_phase3
# 魔法剣発動フラグ解除
@active_battler.magic_weapon = false if @active_battler.magic_weapon
# 元の処理を実行
update_phase3_KGC_MagicWeapon
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Battle (分割定義 4)
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 基本アクション 結果作成
#--------------------------------------------------------------------------
alias make_basic_action_result_KGC_MagicWeapon make_basic_action_result
def make_basic_action_result
# 魔法剣発動フラグ解除
@active_battler.magic_weapon = false
# 行動側バトラーがアクター、行動が通常攻撃の場合
if @active_battler.is_a?(Game_Actor) &&
@active_battler.current_action.basic == 0 &&
(@active_battler.restriction < 2 ||
(@active_battler.restriction == 2 && KGC::MW_EXEC_RESTRICT2))
# 魔法剣の場合
weapon = $data_weapons[@active_battler.weapon_id]
if weapon != nil
# 発動スキルの取得
exec_skill = KGC::MW_SKILL_HASH[weapon.id]
if exec_skill != nil
# 攻撃対象設定
if @active_battler.restriction == 2 # 制約 : 敵を攻撃
target = $game_troop.random_target_enemy
else
index = @active_battler.current_action.target_index
target = $game_troop.smooth_target_enemy(index)
end
# 発動判定
#srand()
if rand(100) < exec_skill[1]
# アクションを設定
@active_battler.current_action.kind = 1
@active_battler.current_action.skill_id = exec_skill[0]
# 魔法剣発動フラグを立てる
@active_battler.magic_weapon = true
# スキルを実行して戻る
make_skill_action_result
return
end
end
end
end
# 元の処理を実行
make_basic_action_result_KGC_MagicWeapon
end
#--------------------------------------------------------------------------
# ● スキルアクション 結果作成
#--------------------------------------------------------------------------
alias make_skill_action_result_KGC_MagicWeapon make_skill_action_result
def make_skill_action_result
# 行動者がアクター、魔法剣発動、かつ強制アクションでなければ
if @active_battler.is_a?(Game_Actor) && @active_battler.magic_weapon &&
!@active_battler.current_action.forcing
# 魔法剣発動フラグ解除
@active_battler.magic_weapon = false
# スキルを取得
@skill = $data_skills[@active_battler.current_action.skill_id]
# ステータスウィンドウをリフレッシュ
@status_window.refresh
# ヘルプウィンドウにスキル名を表示
@help_window.set_text(@skill.name, 1)
# アニメーション ID を設定
@animation1_id = @skill.animation1_id
@animation2_id = @skill.animation2_id
# コモンイベント ID を設定
@common_event_id = @skill.common_event_id
# 対象側バトラーを設定
set_target_battlers(@skill.scope)
# スキルの効果を適用
@target_battlers.each { |target|
target.skill_effect(@active_battler, @skill)
}
return
end
# 元の処理を実行
make_skill_action_result_KGC_MagicWeapon
end
end
|