#============================================================================== # ■ RGSS3 テンプレ効果 Ver1.02 by 星潟 #------------------------------------------------------------------------------ # 指定したアイテム/スキルに、特定スキルの使用効果を自動的に併せ持たせます。 # その特定スキルの使用効果が発動する確率も設定できます。 # つまり、RGSS3 マルチプルアイテム・スキルの使用効果版です。 # # ステート解除に特化した魔法等についての処理で # テンプレとなる使用効果を持つスキルを作っておく事で # 解除するステートの漏れが発生しにくくなります。 # アイテムに指定した場合でもスキルに指定した場合でも # テンプレとして参照するのはスキルIDです。 # # また、あくまでデータベース上の「使用効果」を自動コピーする物であり # コピー元スキルが持つメモ欄等を用いるスクリプトによって # もたらされる効果については無効となりますので注意して下さい。 #============================================================================== # アイテム/スキルのメモ欄で指定します。 # これらは1つのアイテム/スキルにいくつでも指定できます。 #============================================================================== # <テンプレ効果:125> #------------------------------------------------------------------------------ # このアイテム/スキルはスキルID125の使用効果を併せ持ちます。 #============================================================================== # <テンプレ効果:125,50> #------------------------------------------------------------------------------ # このアイテム/スキルは50%の確率でスキルID125の使用効果を併せ持ちます。 #============================================================================== # <テンプレ効果:$game_variables[1],$game_variables[2]> #------------------------------------------------------------------------------ # このアイテム/スキルはスキル変数ID2の値の確率で # 変数ID1の値のIDを持つスキルの使用効果を併せ持ちます。 #============================================================================== module TemplateEffect #テンプレ効果指定用キーワードを指定。 Word = "テンプレ効果" end class RPG::UsableItem < RPG::BaseItem #-------------------------------------------------------------------------- # 使用効果の配列 #-------------------------------------------------------------------------- unless method_defined?(:effects_add_template) alias effects_add_template effects def effects effects_add_template + add_template_effect end end #-------------------------------------------------------------------------- # テンプレ効果の配列 #-------------------------------------------------------------------------- def add_template_effect template_skills.inject([]) {|r,v| skill = eval(v[1]) > rand(100) ? $data_skills[eval(v[0])] : nil r += skill ? skill.effects : []} end #-------------------------------------------------------------------------- # テンプレ効果のスキルID配列 #-------------------------------------------------------------------------- def template_skills @template_skills ||= create_template_skills end #-------------------------------------------------------------------------- # テンプレ効果のスキルID配列作成 #-------------------------------------------------------------------------- def create_template_skills r = [] w = TemplateEffect::Word note.each_line {|l| if /<#{w}[::](\S+)>/ =~ l a = $1.to_s.split(/\s*,\s*/) a.push("100") if a.size == 1 r.push(a) end} r end end