#==============================================================================
# 「アイテム入手率拡張」(ACE) Ver.1.0
# 製作者:奈々(なな)
# へぷたなすくろーる http://heptanas.mamagoto.com/
#
# ◇利用規約
# この素材はフリーゲームにのみご利用頂けます。
# シェアウェア、販売作品への利用は原則として禁止します。(詳細はブログ参照)
# 利用される場合はスクリプト作成者として「奈々」とURLを明記し
# 配布時にブログで利用規約の確認と、利用報告を行って下さい。
#
#------------------------------------------------------------------------------
#
# ※前提スクリプトとして「ドロップアイテム拡張(ver1.0〜)」が必要です。
# 「アイテム入手率」を拡張します。
# ・タグによって%で細かく設定できるように
# ・「アイテム入手率二倍」の特徴を、入手数(判定)2倍に変更
#
# データベースの「アクター、職業、ステート、装備品、スキル」のメモ欄に入力します。
#
# <アイテム入手率 n%>
#
# 入手率を全て乗算した割合が、ベースのドロップ確率に掛かります。
#
#
#==============================================================================
#初期設定
module Nana
module Dia_R
#「アイテム入手率」を戦闘に参加していないメンバーも含めて適用するかどうか
ALL_MEMBER = false
end
end
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
# 敵キャラを扱うクラスです。このクラスは Game_Troop クラス($game_troop)の
# 内部で使用されます。
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ● ドロップアイテムのリスト作成
#--------------------------------------------------------------------------
alias n7dia_r_make_drop_items_list make_drop_items_list
def make_drop_items_list
n7dia_r_make_drop_items_list.inject([]) do |r, di|
unless di.unique
r.push(di)
r.push(di)
else
r.push(di)
end
end
end
#--------------------------------------------------------------------------
# ● ドロップアイテム取得率の倍率を取得
#--------------------------------------------------------------------------
def drop_item_rate
$game_party.drop_item_rate
end
end
#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
# パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ
# スのインスタンスは $game_party で参照されます。
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ● アイテム入手率
#--------------------------------------------------------------------------
def drop_item_rate
if Nana::Dia_R::ALL_MEMBER
self.all_members.inject(1) do |dir, member|
dir *= member.drop_item_rate
end
else
self.battle_members.inject(1) do |dir, member|
dir *= member.drop_item_rate
end
end
end
end
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors)
# の内部で使用され、Game_Party クラス($game_party)からも参照されます。
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● アイテム入手率
#--------------------------------------------------------------------------
def drop_item_rate
prm = self.actor.drop_item_rate
prm *= self.class.drop_item_rate
self.equips.each do |equip|
next unless equip
prm *= equip.drop_item_rate
end
self.states.each do |state|
prm *= state.drop_item_rate
end
self.skills.each do |skill|
prm *= skill.drop_item_rate
end
return prm
end
end
#==============================================================================
# ■ RPG::BaseItem
#------------------------------------------------------------------------------
# アクター、職業、スキル、アイテム、武器、防具、敵キャラ、およびステートのスーパークラス。
#==============================================================================
class RPG::BaseItem
#--------------------------------------------------------------------------
# ● アイテム入手率
#--------------------------------------------------------------------------
def drop_item_rate
prm = 1
@note.scan(/<\s*アイテム入手率\s*(\d+)%\s*>/) {|s| prm *= ($1.to_i / 100) if $1}
return prm
end
end