#============================================================================== # 「スキル採用属性」(ACE) ver2.1 by奈々 # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # #------------------------------------------------------------------------------ # # スキルの属性「通常攻撃」に対して変更を行うスクリプトです。 # デフォルトはアクターの持つ攻撃属性「全て」から一番有効な属性が選ばれます。 # # ・採用属性 # スキルのメモ欄に<採用属性 ID>と書いて設定します。(複数設定可) # このスキルの「通常攻撃」属性はアクターの持つ攻撃属性のうち # 「採用属性になっているもの」から一番有効な属性が選ばれます。 # # ・不採用属性 # スキルのメモ欄に<不採用属性 ID>と書いて設定します。(複数設定可) # このスキルの「通常攻撃」属性はアクターの持つ攻撃属性のうち # 「不採用属性以外」から一番有効な属性が選ばれます。 # # 同じIDの採用属性と不採用属性がある場合は不採用属性が優先されます。 # また例えばアクターの攻撃属性に採用属性が1つも無かった場合など # 結果的に属性なしになった場合は0%扱いになります。(通常の属性なしは100%) # # ・追加属性 # スキルのメモ欄に<追加属性 ID>と書いて設定します。(複数指定可) # 普通の属性と組み合わせて使えば、複数属性のスキルが作成できます。 # 「通常攻撃」属性と組み合わせることも可能で、この場合は # 採用属性、不採用属性の影響を受けたアクターの攻撃属性と # スキルに設定した追加属性の中から最も有効なものが選ばれます。 # #============================================================================== class RPG::Skill < RPG::UsableItem #-------------------------------------------------------------------------- # ● 採用属性を取得 #-------------------------------------------------------------------------- def accept_elements list = [] @note.scan(/<採用属性\s?(\d*)>/) {|s| list.push($1.to_i) if $1} return list end #-------------------------------------------------------------------------- # ● 不採用属性を取得 #-------------------------------------------------------------------------- def non_accept_elements list = [] @note.scan(/<不採用属性\s?(\d*)>/) {|s| list.push($1.to_i) if $1} return list end #-------------------------------------------------------------------------- # ● 追加属性を取得 #-------------------------------------------------------------------------- def add_elements list = [] @note.scan(/<追加属性\s?(\d*)>/) {|s| list.push($1.to_i) if $1} return list end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ○ スキル/アイテムの属性修正値を取得(再定義) #-------------------------------------------------------------------------- def item_element_rate(user, item) elements_list = [] #攻撃属性の採用判定 a_elements = user.atk_elements if item.accept_elements != [] a_elements &= item.accept_elements elsif item.non_accept_elements != [] a_elements -= item.non_accept_elements end #属性をリスト化して纏めて判定に送る if item.damage.element_id < 0 elements_list += (a_elements) else elements_list += [item.damage.element_id] end elements_list += item.add_elements elements_max_rate(elements_list) end end