#============================================================================== # 「最強装備拡張」(ACE) ver.1.3 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # その他、詳しい利用規約はブログを参照して下さい。 # #------------------------------------------------------------------------------ # # 「最強装備」を選ぶための装備評価を自由に設定できるようになります。 # # ◇アクター・職業 # メモ欄に<装備評価タイプ x>と書きます。 # 職業が優先され、どちらも無記入ならタイプ0扱いです。 # # ◇武器・防具 # メモ欄に<装備評価 x y>と書きます。(xが違えば複数可) # yの値がその装備品の評価となり、最も高いものが最強装備になります。 # xの値はアクターの持つ装備評価タイプと対応します。 # 対応するタイプがない場合はタイプ0が適用されます。 # # ◇武器・防具(変数での評価) # メモ欄に<装備評価変数 x y>と書きます。 # y番の変数の値がその装備品の評価となります。 # それ以外は装備評価と全く同じです。 # # ◇その他 # # ・評価を設定していない装備について # メモ欄の評価設定が無記入の場合は # 初期設定のDEFAULT = nで設定した値の評価になります。 # # ・評価が0の装備について # 評価が0の装備は、装備可能であっても最強装備で選ばれません。 # これは呪い装備などを再現するためのものです。 # # #============================================================================== # ◇初期設定 module Nana_EP DEFAULT = 1 #評価未設定時の評価 end # ここまで #============================================================================== #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors) # の内部で使用され、Game_Party クラス($game_party)からも参照されます。 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● 装備評価タイプ #-------------------------------------------------------------------------- def ep_type return self.class.ep_type if self.class.ep_type return actor.ep_type if actor.ep_type return 0 end #-------------------------------------------------------------------------- # ● 最強装備 #-------------------------------------------------------------------------- def optimize_equipments clear_equipments equip_slots.size.times do |i| next if !equip_change_ok?(i) items = $game_party.equip_items.select do |item| item.etype_id == equip_slots[i] && equippable?(item) && item.equip_performance(ep_type) > 0 end change_equip(i, items.max_by {|item| item.equip_performance(ep_type) }) end end end class RPG::EquipItem < RPG::BaseItem #-------------------------------------------------------------------------- # ● 装備評価 #-------------------------------------------------------------------------- def equip_performance(ep_type) list = [] @note.scan(/<装備評価\s?(\d+)\s?(\d+)>/){|s| list[$1.to_i] = $2.to_i } @note.scan(/<装備評価変数\s?(\d+)\s?(\d+)>/){|s| list[$1.to_i] = $game_variables[$2.to_i] } return list[ep_type] ? list[ep_type] : (list[0] ? list[0] : Nana_EP::DEFAULT) end end class RPG::BaseItem #-------------------------------------------------------------------------- # ● 装備評価タイプ #-------------------------------------------------------------------------- def ep_type @note.scan(/<装備評価タイプ\s?(\d+)>/) return $1 ? $1.to_i : nil end end