魔法剣 カスタム



・武器名や属性による設定からスクリプトでハッシュ設定するように変更
 武器名や素早さ、器用さという制約はなくなりましたが、使い勝手は微妙かも

変更点
まだなし

#----------------------------------------------------------------------------
# 魔法剣 貪藻矢射妥←カスタム 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
説明にある通りですが・・・ ◆武器IDと発動スキル、発動率のハッシュ  武器ID => [発動スキル, 発動率],  を記載していってください MW_SKILL_HASH = { 1 => [21, 80], }

戻る