=begin RGSS3 武器による通常攻撃をスキル化(大きいIDver)Ver.1.15 2012/03/13  mo-to TKOOL COOL http://mototkool.blog.fc2.com/ ★使用法★ スクリプトの▼ 素材 以下 ▼ メイン 以上にこれをコピーして張り付ける。 武器のメモ欄に <通常攻撃スキル n> n=スキルIDと記述する。 例)武器のメモ欄に <通常攻撃スキル 4> と記述すると   通常攻撃した際、デフォでは『2回攻撃』が発動される。 ★概要★ 通常攻撃を指定したスキルに変更できる武器を製作できる。 ★注意★ どんなスキルでも武器による通常攻撃に設定できますが回復などを指定した場合 状況によっては戦闘が終わらなくなるので詰む可能性があります。 製作する場合は注意してください。 ★アクターコマンド名の表示について★ アクターコマンド名『攻撃(デフォ)』の位置に武器で指定したスキル名が 入るようになります。 不要なら COMMAND_NAME をfalseにして下さい。 その場合はコマンドが『攻撃(デフォ)』のままです。 ★更新履歴★ ver.1.00 公開 ver.1.01 二刀流時、武器2に何も設定していない武器を装備しているとき攻撃できない不具合を修正 ver.1.01b 二刀流時、大きいほうのスキルIDを取るように変更 ver.1.1 アクターコマンドに武器スキルを表示可能にした ver.1.11 素手のときエラーが出る不具合を修正 ver.1.12 戦闘中、味方アクターに単体補助・回復系のスキルを使用しキャンセルすると フリーズする不具合の修正 ソースコードを少し整理した ver.1.13 メソッド『コマンド』『攻撃コマンドをリストに追加』の余計な処理を修正し エイリアス再定義にソースコードを変更。 ver.1.14 さらにソースコードをコンパクトに修正。 ver.1.15 さらにメソッドエイリアス化      ももまるさんのXP風バトルとの競合対策。 =end #↓カスタマイズ module MOTO COMMAND_NAME = true #アクターコマンドに武器スキルを表示可能するか否かtrue/false end #ここまで module RPG class Weapon < EquipItem #-------------------------------------------------------------------------- # ☆ キャッシュの作成とメモ欄からスキルIDを取得 #-------------------------------------------------------------------------- def normal_atk_skill @normal_atk_skill_id = nil self.note.each_line { |line| case line when /<通常攻撃スキル\s*(\d+)>/ @normal_atk_skill_id = $1.to_i end } end def normal_atk_skill_id unless @normal_atk_skill_data normal_atk_skill @normal_atk_skill_data = true end return @normal_atk_skill_id end end end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ★ 通常攻撃のスキル ID を取得 ※オーバーライド #-------------------------------------------------------------------------- def attack_skill_id result = [super] weapons.compact.each do |weapon| result << weapon.normal_atk_skill_id end return result.compact.max end end class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ○ コマンド[攻撃] #-------------------------------------------------------------------------- alias ori_moto_command_attack command_attack def command_attack BattleManager.actor.input.set_attack skill_id = BattleManager.actor.input.set_attack.item.id skill_scope = $data_skills[skill_id].scope case skill_scope when 0, 2..6, 8, 10, 11 return next_command when 1 return ori_moto_command_attack when 7, 9 return select_actor_selection end end #-------------------------------------------------------------------------- # ○ アクター[キャンセル] #-------------------------------------------------------------------------- alias ori_moto_on_actor_cancel on_actor_cancel def on_actor_cancel ori_moto_on_actor_cancel case @actor_command_window.current_symbol when :attack @actor_command_window.activate end end end class Window_ActorCommand < Window_Command #-------------------------------------------------------------------------- # ○ 攻撃コマンドをリストに追加 #-------------------------------------------------------------------------- alias ori_moto_add_attack_command add_attack_command def add_attack_command if MOTO::COMMAND_NAME == true skill_id = @actor.attack_skill_id name = $data_skills[skill_id].name add_command(name, :attack, @actor.attack_usable?) else ori_moto_add_attack_command end end end