#==============================================================================
# 「最強装備拡張」(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