#============================================================================== # 能力値でスキル変化 ver1.01 #------------------------------------------------------------------------------ #[特徴] # 特定の能力値が設定値以上のとき、別のスキルに変化する。 # #[仕様] # スキルウィンドウに表示されるのは、元になるスキル。 # 使用条件は元になるスキルで判断される。 # 消費するMP/TPは変化後のスキル。使用時のメッセージも変化後のスキル。 # そのため、元になるスキルと変化後のスキルのスキルタイプ、消費MP/TPは同じにしてください。 # #[スキル設定方法] # スキルのメモ欄に <能力値変化:スキルID,能力値名,能力値> と書く。 # 複数書いた場合、条件を満たしたものの中で一番最後(下)に記述したものが反映されます。 # # 【能力値名】 # 最大HP、現在HP、最大MP、現在MP、攻撃力、防御力、魔法力、魔法防御、敏捷性、運 # #[例] # 元になるスキル『連撃』を作成(スキルIDは3) # メモ欄に <能力値変化:4,敏捷性,100> # <能力値変化:5,敏捷性,200> と書く。 # 敏捷性が100以上のとき、スキルID4のスキルが発動する。 # 敏捷性が200以上のとき、スキルID5のスキルが発動する。 # # ※ 発動条件が難しいものほど後に書いてください。 ※ # # # 作成:ぶちょー # ホム:http://nyannyannyan.bake-neko.net/ # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # バージョンアップ情報 # ver1.01 『ステートでスキル変化』との共用に対応 # ver1.00 公開 #============================================================================== #============================================================================== # 設定項目はありません #============================================================================== $kzr_imported = {} if $kzr_imported == nil $kzr_imported["SkillChangeByParam"] = true #============================================================================== # ■ Game_BattlerBase #============================================================================== class Game_BattlerBase #-------------------------------------------------------------------------- # ● スキル変化用のパラメータの集合 #-------------------------------------------------------------------------- def params_to_sc params = [] ; 8.times {|i| params << param(i) } ; params += [hp, mp] end end #============================================================================== # ■ Game_Action #============================================================================== class Game_Action #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :default_use_skill_id #-------------------------------------------------------------------------- # ● スキルを設定 #-------------------------------------------------------------------------- alias kzr_skill_change_by_param_set_skill set_skill def set_skill(skill_id) @default_use_skill_id = skill_id unless $kzr_imported["SkillChangeByState"] kzr_skill_change_by_param_set_skill($data_skills[skill_id].skill_change_param(@subject, skill_id)) end end #============================================================================== # ■ RPG::Skill #============================================================================== class RPG::Skill < RPG::UsableItem PARAM_NAME = ["最大HP","最大MP","攻撃力","防御力","魔法力", "魔法防御","敏捷性","運","現在HP","現在MP"] def skill_change_param(a, id) note.each_line {|line| case line when /<能力値変化:(\d+),(\S+),(\d+)>/ id = $1.to_i if a.params_to_sc[PARAM_NAME.index($2.to_s)] >= $3.to_i end } $kzr_imported["SkillChangeByState"] ? skill_change_state(a, id) : id end end