#◆◇◆◇◆ ☆ スキル習得装備 & スキルオートステート ver 2.10 ◇◆◇◆◇ # ☆ マスタースクリプト ver 2.00 以降専用 # サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/ # by みんと =begin 更新履歴 ver 2.10 競合と思われる部分を修正。 マスタースクリプト ver 2.00 以降専用化 使用方法 習得スキルを設定する場合、 「必ず」装備名の後に (半角のスペース)を入れてください。 その後に m という記号を使い、 IDを指定してください。 例 ブロンズソード m1 (↑の場合、ヒールを取得) なお1装備につき、設定できる数は5つまでです。 複数設定する場合は、 ブロンズソード m1m2m3m4m5 と入力します。 防具の場合も同様です。 スキルオートステート スキル名 st値 と記述することで スキルのオートステートを設定できます。 =end #============================================================================== # □ カスタマイズポイント #============================================================================== module MINTO # スキル習得装備を有効化 RGSS["equip_skill"] = true # 習得スキルのソート方式 # 1で1番上に追加。2で1番下に。 3でID順 Equip_Skills_Sort = 1 end if MINTO::RGSS["equip_skill"] #============================================================================== # ■ RPG::Weapon #============================================================================== module RPG class Weapon def name name = @name.split(/ /)[0] return name != nil ? name : '' end def w_skill name = @name.split(/m/)[1].to_i return name != nil ? name : 0 end def w_skill1 name = @name.split(/m/)[2].to_i return name != nil ? name : 0 end def w_skill2 name = @name.split(/m/)[3].to_i return name != nil ? name : 0 end def w_skill3 name = @name.split(/m/)[4].to_i return name != nil ? name : 0 end def w_skill4 name = @name.split(/m/)[5].to_i return name != nil ? name : 0 end end end #============================================================================== # ■ RPG::Armor #============================================================================== module RPG class Armor def name name = @name.split(/ /)[0] return name != nil ? name : '' end def a_skill name = @name.split(/m/)[1].to_i return name != nil ? name : 0 end def a_skill1 name = @name.split(/m/)[2].to_i return name != nil ? name : 0 end def a_skill2 name = @name.split(/m/)[3].to_i return name != nil ? name : 0 end def a_skill3 name = @name.split(/m/)[4].to_i return name != nil ? name : 0 end def a_skill4 name = @name.split(/m/)[5].to_i return name != nil ? name : 0 end end end #============================================================================== # ■ RPG::Skill #============================================================================== module RPG class Skill def name name = @name.split(/ /)[0] return name != nil ? name : '' end def state name = @name.split(/st/)[1].to_i return name != 0 ? name : 0 end end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :last_skills # 最終スキル #-------------------------------------------------------------------------- # ● セットアップ # actor_id : アクター ID #-------------------------------------------------------------------------- alias setup_MINT_Equip_Skill setup def setup(actor_id) # 元の処理を実行 setup_MINT_Equip_Skill(actor_id) @last_skills = @skills skill_state end #-------------------------------------------------------------------------- # ● スキルの使用可能判定 #-------------------------------------------------------------------------- def skill_can_use?(skill_id) if !Data_Skills_Base.data[skill_id] false else return super end end #-------------------------------------------------------------------------- # ● @skills 再定義 #-------------------------------------------------------------------------- def skills skill = [] if @weapon_id != 0 skill += [Data_Weapons.data[@weapon_id].w_skill] skill += [Data_Weapons.data[@weapon_id].w_skill1] skill += [Data_Weapons.data[@weapon_id].w_skill2] skill += [Data_Weapons.data[@weapon_id].w_skill3] skill += [Data_Weapons.data[@weapon_id].w_skill4] end if @armor1_id != 0 skill += [Data_Armors.data[@armor1_id].a_skill] skill += [Data_Armors.data[@armor1_id].a_skill1] skill += [Data_Armors.data[@armor1_id].a_skill2] skill += [Data_Armors.data[@armor1_id].a_skill3] skill += [Data_Armors.data[@armor1_id].a_skill4] end if @armor2_id != 0 skill += [Data_Armors.data[@armor2_id].a_skill] skill += [Data_Armors.data[@armor2_id].a_skill1] skill += [Data_Armors.data[@armor2_id].a_skill2] skill += [Data_Armors.data[@armor2_id].a_skill3] skill += [Data_Armors.data[@armor2_id].a_skill4] end if @armor3_id != 0 skill += [Data_Armors.data[@armor3_id].a_skill] skill += [Data_Armors.data[@armor3_id].a_skill1] skill += [Data_Armors.data[@armor3_id].a_skill2] skill += [Data_Armors.data[@armor3_id].a_skill3] skill += [Data_Armors.data[@armor3_id].a_skill4] end if @armor4_id != 0 skill += [Data_Armors.data[@armor4_id].a_skill] skill += [Data_Armors.data[@armor4_id].a_skill1] skill += [Data_Armors.data[@armor4_id].a_skill2] skill += [Data_Armors.data[@armor4_id].a_skill3] skill += [Data_Armors.data[@armor4_id].a_skill4] end skill = skill.sort! skills = @skills master_skill = skill + skills if MINTO::Equip_Skills_Sort == 1 master_skill = skills + skill if MINTO::Equip_Skills_Sort == 2 || MINTO::Equip_Skills_Sort == 3 master_skill = master_skill.sort! if MINTO::Equip_Skills_Sort == 3 master_skill = master_skill & master_skill - [0] return master_skill end #-------------------------------------------------------------------------- # ● スキル・オートステートの更新 #-------------------------------------------------------------------------- def skill_state(type = 1) if @last_skills && type == 0 for i in 0...@last_skills.size break if @last_skills == [] state_skill = Data_Skills_Base.data[@last_skills[i]] remove_state(state_skill.state) if state_skill.state > 0 end end if type == 1 for i in 0...skills.size break if skills == [] state_skill = Data_Skills_Base.data[skills[i]] if skill_can_use?(id) && state_skill.state > 0 add_state(state_skill.state) elsif !skill_can_use?(id) && state_skill.state > 0 remove_state(state_skill.state) end end end end end #============================================================================== # ■ Scene_Equip #============================================================================== class Scene_Equip #-------------------------------------------------------------------------- # ● メイン処理 #-------------------------------------------------------------------------- alias main_MINT_Equip_Skill main def main # アクターを取得 @actor = $game_party.actors[@actor_index] @actor.last_skills = @actor.skills @actor.skill_state(0) # 元の処理を実行 main_MINT_Equip_Skill @actor.skill_state(1) end end #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● メイン処理 #-------------------------------------------------------------------------- alias main_MINT_Equip_Skill main def main $game_temp.in_battle = true # アクターを取得 for actor in $game_party.actors actor.skill_state end # 元の処理を実行 main_MINT_Equip_Skill end #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ) #-------------------------------------------------------------------------- alias update_phase4_step6_MINT_Equip_Skill update_phase4_step6 def update_phase4_step6 # 元の処理を実行 update_phase4_step6_MINT_Equip_Skill for actor in $game_party.actors actor.skill_state end end end end