#============================================================================== # ■フロアドロップメーカー for RGSS3 Ver1.02-β # □作成者 kure #============================================================================== module KURE module DropList #初期設定(変更しない事) DROP_LIST = [] #ドロップリストの編集 #DROP_LIST[ID] = [[種類, ID, 確率], …] #種類 … 1:アイテム 2:武器 3:防具 # ID … アイテムのID #確率 … 1000分率で指定 DROP_LIST[1] = [[1, 1, 1000], [2,5,500]] end end #============================================================================== # ■ RPG::Enemy(追加定義) #============================================================================== class RPG::Enemy < RPG::BaseItem #-------------------------------------------------------------------------- # ◇ フロアドロップの定義(追加定義) #-------------------------------------------------------------------------- def floor_drop_table @note.match(/<フロアドロップ判定\s?(\d+)\s?>/) return $1 ? $1.to_i : 0 end #-------------------------------------------------------------------------- # ◇ フロアドロップの判定変数定義(追加定義) #-------------------------------------------------------------------------- def floor_drop_table_var @note.match(/<フロアドロップ判定変数\s?(\d+)\s?>/) return $1 ? $1.to_i : 0 end end #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ◎ ドロップアイテムの配列作成(エイリアス再定義) #-------------------------------------------------------------------------- alias k_floor_drop_before_make_drop_items make_drop_items def make_drop_items k_floor_drop_before_make_drop_items + make_floor_drop_items end #-------------------------------------------------------------------------- # ★ フロアドロップアイテムの配列作成(追加定義) #-------------------------------------------------------------------------- def make_floor_drop_items drop_list = [] ; d_list = [] d_list = KURE::DropList::DROP_LIST[enemy.floor_drop_table] if enemy.floor_drop_table != 0 d_list += var_drop_list d_list.each{|block| next if rand(1000) > block[2] drop_list.push(item_object(block[0],block[1])) } return drop_list end #-------------------------------------------------------------------------- # ★ フロアドロップアイテムの配列作成(追加定義) #-------------------------------------------------------------------------- def var_drop_list return [] if enemy.floor_drop_table_var == 0 return [] if $game_variables[enemy.floor_drop_table_var] == 0 return [] unless $game_variables[enemy.floor_drop_table_var].is_a?(Numeric) return [] unless KURE::DropList::DROP_LIST[$game_variables[enemy.floor_drop_table_var]] return KURE::DropList::DROP_LIST[$game_variables[enemy.floor_drop_table_var]] end end