不
要
属
性
計
算
排
除
概要
不要な属性(特殊属性)を属性修正計算から排除するスクリプトです。
サイト内の属性使用テクを利用している場合、これは必須になります。
スクリプト
RGSS
セクション:KGC_RemoveElements
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆ 不要属性計算排除 - KGC_RemoveElements ◆ #_/ ◇ Last update : 2007/03/11 ◇ #_/---------------------------------------------------------------------------- #_/ 特殊属性を耐性計算から排除する処理を追加します。 #_/ (これを導入しておくと、配布スクリプトの特殊属性を自動排除します) #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #============================================================================== # ★ カスタマイズ項目 ★ #============================================================================== module KGC # ◆手動除外属性 # 属性修正計算から排除する属性の配列。 # 特殊属性は全てこの中へ。 ( ・∀・)つ□ d(・∀・ ) # 「属性ID・属性名・正規表現」に対応。 REMOVE_LIST = [] end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ $imported = {} if $imported == nil $imported["RemoveElements"] = true #============================================================================== # ■ Game_Battler (分割定義 3) #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 属性修正の計算 # element_set : 属性 #-------------------------------------------------------------------------- def elements_correct(element_set) # 対象属性を取得 element_set_buf = element_set.dup # 排除属性を取得 remove_elements = get_remove_elements # 不要属性を排除 element_set_buf.each_with_index { |element, i| remove_elements.each { |rm_element| case rm_element when Integer # 属性ID if element == rm_element element_set_buf[i] = nil break end when String # 属性名 if $data_system.elements[element] == rm_element element_set_buf[i] = nil break end when Regexp # 正規表現 rm_name = $data_system.elements[element] if rm_name =~ rm_element element_set_buf[i] = nil break end end } } element_set_buf.compact! # 無属性の場合は 100 if element_set_buf.empty? return 100 end # 属性修正を計算 return calc_element_correct(element_set_buf) end #-------------------------------------------------------------------------- # ● 属性修正計算 # element_set : 属性 #-------------------------------------------------------------------------- def calc_element_correct(element_set) # 与えられた属性の中で最も弱いものを返す # ※メソッド element_rate は、このクラスから継承される Game_Actor # および Game_Enemy クラスで定義される weakest = -100 element_set.each { |i| weakest = [weakest, element_rate(i)].max } return weakest end #-------------------------------------------------------------------------- # ● 属性修正計算から排除する属性を取得 #-------------------------------------------------------------------------- def get_remove_elements # ユーザーが定義した排除属性を取得 remove_elements = KGC::REMOVE_LIST.dup # 特殊属性を追加 if $game_special_elements != nil remove_elements += $game_special_elements.values end remove_elements.compact! return remove_elements end end
これで、不要な属性を計算から排除することができます。
自作の特殊属性も REMOVE_LIST 内に追加してください。
属性の指定は[ID][文字列][正規表現]のどれでもOKです。