=begin RGSS3 武器とかステートによる通常攻撃をスキル化(コマンドネーム)α0.01 2016 11/12  mo-to TKOOL COOL http://mototkool.blog.fc2.com/ ★使用法★ スクリプトの▼ 素材 以下 ▼ メイン 以上にこれをコピーして張り付ける。 武器またはステートのメモ欄に <通常攻撃スキル n> n=スキルIDと記述する。 ステートと武器が被った場合の優先順位は ステート>武器 です。 ★注意★ 現状ステートをスキル化のほうは、攻撃体勢に入ったそのターンはスキル化ステートに 掛かってもスキル化されず、次のターンよりスキル化の処理がされる 複数のスキル化ステートに掛かった場合、最後に掛かったスキル化ステートが適用される どんなスキルでも武器による通常攻撃に設定できますが回復などを指定した場合 状況によっては戦闘が終わらなくなるので詰む可能性があります。 製作する場合は注意してください。 ●武器をスキル化のほうは通常通りに使えます ★更新履歴★ ver.α0.01 公開 =end #↓カスタマイズ module MOTO COMMAND_NAME = true #アクターコマンドに武器スキルを表示可能するか否かtrue/false end #ここまで module RPG class State < BaseItem #-------------------------------------------------------------------------- # ☆ キャッシュの作成とメモ欄からスキル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 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 states.compact.find { |state| unless state.normal_atk_skill_id.nil? result = [state.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