=begin RGSS3 武器による通常攻撃と防御をスキル化ver.1.02 2016/04/08 mo-to TKOOL COOL http://mototkool.blog.fc2.com/ 発案者 AAAAさん ★概要★ 武器による通常攻撃をスキル化を改造したものです。 二刀流時に限り、防御コマンドをスロット2に装備している武器スキルに変えます。 ★使用法★ スクリプトの▼ 素材 以下 ▼ メイン 以上にこれをコピーして張り付ける。 武器のメモ欄に <通常攻撃スキル n> n=スキルIDと記述する。 例)武器のメモ欄に <通常攻撃スキル 4> と記述すると   通常攻撃した際、デフォでは『2回攻撃』が発動される。 ★概要★ 通常攻撃を指定したスキルに変更できる武器を製作できる。 ★注意★ どんなスキルでも武器による通常攻撃に設定できますが回復などを指定した場合 状況によっては戦闘が終わらなくなるので詰む可能性があります。 製作する場合は注意してください。 ★更新履歴★ ver.1.00 公開 ver.1.01 素手で落ちる不具合を修正 ver.1.02 防御コマンド枠で攻撃時キャンセルでフリーズする不具合を修正 =end #↓カスタマイズ module MOTO #アクターコマンドに武器スキルを表示可能するか否かtrue/false COMMAND_NAME = true #スロット2の武器に攻撃スキルがついてない場合、防御コマンドにどのスキルを割り当てるか GARD_COMMAND_SKILL = 1 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.find { |weapon| unless weapon.normal_atk_skill_id.nil? result = weapon.normal_atk_skill_id end } return result end #-------------------------------------------------------------------------- # ★ 防御のスキル ID を取得 ※オーバーライド #-------------------------------------------------------------------------- def guard_skill_id result = super if dual_wield? if weapons[1].nil? || weapons[1].normal_atk_skill_id.nil? result = MOTO::GARD_COMMAND_SKILL else result = weapons[1].normal_atk_skill_id end end return result 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_command_guard command_guard def command_guard BattleManager.actor.input.set_guard skill_id = BattleManager.actor.input.set_guard.item.id skill_scope = $data_skills[skill_id].scope case skill_scope when 0, 2..6, 8, 10, 11 return ori_moto_command_guard when 1 return select_enemy_selection 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, :guard @actor_command_window.activate end end #-------------------------------------------------------------------------- # ○ 敵キャラ[キャンセル] #-------------------------------------------------------------------------- alias ori_moto_on_enemy_cancel on_enemy_cancel def on_enemy_cancel ori_moto_on_enemy_cancel case @actor_command_window.current_symbol when :guard @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 #-------------------------------------------------------------------------- # ○ 防御コマンドをリストに追加 #-------------------------------------------------------------------------- alias ori_moto_add_guard_command add_guard_command def add_guard_command if MOTO::COMMAND_NAME == true skill_id = @actor.guard_skill_id name = $data_skills[skill_id].name add_command(name, :guard, @actor.guard_usable?) else ori_moto_add_guard_command end end end