############################ スキル習得装備の作成 ############################ # # # 装備の属性に「スキル習得:n」(:は半角、nは任意の整数、半角で)と入力。 # # するとそのIDのスキルを装備している間は使うことができます。 # # たとえば「スキル習得:1」の場合ID1のスキルを装備している間使えます。 # # 武器、防具のどちらにも設定可能です。 # # ちなみに、一つの装備に複数のスキル習得効果を持たせる場合は、 # # 「スキル習得:1」と「スキル習得:2」の二つの属性を持たせるなどして下さい。 # # 「スキル習得:1」の「スキル習得:」の部分を変更したいなら設定で変更可能。 # # # ############################################################################## # ここから設定 module Annex SKILL_MASTERY_KEY = "スキル習得:" end # ここまで設定 #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 習得済みスキルの配列取得 (再定義) #-------------------------------------------------------------------------- def skills # ちなみに再定義とはいってもaliasを再定義しているので、 # もはや新規にメソッドを定義したようなものですが。 # @skills の複製 と 装備によって取得したスキルの配列を結合。 # その上で、重複削除、ソートしたものを返す return (@skills.dup + skill_mastery_equip).uniq.sort end #-------------------------------------------------------------------------- # ● スキルの習得済み判定 (再定義) # skill_id : スキル ID #-------------------------------------------------------------------------- def skill_learn?(skill_id) # 行頭の @ を削除することで、def skillsを参照するように変更。 return skills.include?(skill_id) end #-------------------------------------------------------------------------- # ◎ 追加:全装備から新たに習得するスキルのID配列を作成 #-------------------------------------------------------------------------- def skill_mastery_equip skill_ids = [] key = Annex::SKILL_MASTERY_KEY # 武器から取得 if @weapon_id != 0 skill_ids += get_element_key_id($data_weapons[@weapon_id].element_set, key) end # 防具から取得 for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id] next if i == 0 skill_ids += get_element_key_id($data_armors[i].guard_element_set, key) end return skill_ids end #-------------------------------------------------------------------------- # ◎ 追加:「属性名+数字」の形式の属性が含まれていればその数字部分を取得。 # element_set : 属性の配列 # key : 取得する属性名 #-------------------------------------------------------------------------- def get_element_key_id(element_set, key) id = [] for i in element_set if $data_system.elements[i] =~ /#{key}([0-9]+)/ # ID取得 id.push($1.to_i) end end return id end end