赞 | 88 |
VIP | 350 |
好人卡 | 311 |
积分 | 100 |
经验 | 150139 |
最后登录 | 2024-6-24 |
在线时间 | 5019 小时 |
Lv4.逐梦者 (版主) 无限の剣制
- 梦石
- 0
- 星屑
- 10014
- 在线时间
- 5019 小时
- 注册时间
- 2013-2-28
- 帖子
- 5030
 
|
3楼

楼主 |
发表于 2014-4-5 00:44:03
|
只看该作者
- #==============================================================================
- # ■ RGSS3 アイテム図鑑 ver 1.00 本体プログラム
- #------------------------------------------------------------------------------
- # 配布元:
- # 白の魔 http://izumiwhite.web.fc2.com/
- #
- # 利用規約:
- # RPGツクールVXの正規の登録者のみご利用になれます。
- # 利用報告・著作権表示とかは必要ありません。
- # 改造もご自由にどうぞ。
- # 何か問題が発生しても責任は持ちません。
- #==============================================================================
- #==============================================================================
- # ■ WD_itemdictionary
- #------------------------------------------------------------------------------
- # アイテム図鑑用の共通メソッドです。
- #==============================================================================
- module WD_itemdictionary
-
-
-
- def i_dictionary_switch_on(id)
- $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil
- $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil
- $game_system.i_dic_sw[id] = true
- end
- def i_dictionary_switch_off(id)
- $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil
- $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil
- $game_system.i_dic_sw[id] = false
- end
- def i_dictionary_switch_on?(id)
- $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil
- $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil
- return $game_system.i_dic_sw[id]
- end
- def w_dictionary_switch_on(id)
- $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil
- $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil
- $game_system.w_dic_sw[id] = true
- end
- def w_dictionary_switch_off(id)
- $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil
- $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil
- $game_system.w_dic_sw[id] = false
- end
- def w_dictionary_switch_on?(id)
- $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil
- $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil
- return $game_system.w_dic_sw[id]
- end
- def a_dictionary_switch_on(id)
- $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil
- $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil
- $game_system.a_dic_sw[id] = true
- end
- def a_dictionary_switch_off(id)
- $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil
- $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil
- $game_system.a_dic_sw[id] = false
- end
- def a_dictionary_switch_on?(id)
- $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil
- $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil
- return $game_system.a_dic_sw[id]
- end
- def t_dictionary_switch_on(item)
- if item.is_a?(RPG::Item)
- i_dictionary_switch_on(item.id)
- end
- if item.is_a?(RPG::Weapon)
- w_dictionary_switch_on(item.id)
- end
- if item.is_a?(RPG::Armor)
- a_dictionary_switch_on(item.id)
- end
- end
- def t_dictionary_switch_on?(item)
- if item.is_a?(RPG::Item)
- return i_dictionary_switch_on?(item.id)
- end
- if item.is_a?(RPG::Weapon)
- return w_dictionary_switch_on?(item.id)
- end
- if item.is_a?(RPG::Armor)
- return a_dictionary_switch_on?(item.id)
- end
- end
- def print_dictionary?(item)
- if item != nil
- if item.name.size > 0
- hantei = /<图鉴无效>/ =~ item.note
- if hantei == nil
- return true
- end
- end
- end
- return false
- end
- def item_dictionary_perfection
- dic_max = 0
- dic_num = 0
- $data_items.each do |item|
- if print_dictionary?(item)
- dic_max += 1
- if i_dictionary_switch_on?(item.id) == true
- dic_num += 1
- end
- end
- end
- $data_weapons.each do |item|
- if print_dictionary?(item)
- dic_max += 1
- if w_dictionary_switch_on?(item.id) == true
- dic_num += 1
- end
- end
- end
- $data_armors.each do |item|
- if print_dictionary?(item)
- dic_max += 1
- if a_dictionary_switch_on?(item.id) == true
- dic_num += 1
- end
- end
- end
- return (100*dic_num)/dic_max
- end
- end
- class Game_Interpreter
- include WD_itemdictionary
- end
- class Game_System
- #--------------------------------------------------------------------------
- # ● 公開インスタンス変数
- #--------------------------------------------------------------------------
- attr_accessor :i_dic_sw
- attr_accessor :w_dic_sw
- attr_accessor :a_dic_sw
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- alias wd_orig_initialize001 initialize
- def initialize
- wd_orig_initialize001
- @i_dic_sw = []
- @w_dic_sw = []
- @a_dic_sw = []
- end
- end
- class Game_Party < Game_Unit
- include WD_itemdictionary
- #--------------------------------------------------------------------------
- # ● アイテムの増加(減少)
- # include_equip : 装備品も含める
- #--------------------------------------------------------------------------
- alias wd_orig_gain_item001 gain_item
- def gain_item(item, amount, include_equip = false)
- wd_orig_gain_item001(item, amount, include_equip = false)
- if amount > 0
- t_dictionary_switch_on(item)
- end
- end
- end
- #==============================================================================
- # ■ Scene_ItemDictionary
- #------------------------------------------------------------------------------
- # アイテム図鑑画面の処理を行うクラスです。
- #==============================================================================
- class Scene_ItemDictionary < Scene_ItemBase
- #--------------------------------------------------------------------------
- # ● 開始処理
- #--------------------------------------------------------------------------
- def start
- super
-
- create_help_window
- create_category_window
- create_status_window
- create_item_window
- create_perfection_window
- end
- #--------------------------------------------------------------------------
- # ● カテゴリウィンドウの作成
- #--------------------------------------------------------------------------
- def create_category_window
- @category_window = Window_ItemCategory.new
- @category_window.viewport = @viewport
- @category_window.help_window = @help_window
- @category_window.y = @help_window.height
- @category_window.set_handler(:ok, method(:on_category_ok))
- @category_window.set_handler(:cancel, method(:return_scene))
- end
-
- def return_scene
- $game_map.autoplay
- SceneManager.return
- end
-
- #--------------------------------------------------------------------------
- # ● アイテムウィンドウの作成
- #--------------------------------------------------------------------------
- def create_item_window
- wy = @category_window.y + @category_window.height
- wh = Graphics.height - wy - 48
- @item_window = Window_ItemDictionaryList.new(Graphics.width-172-48, wy, 172+48, wh)
- @item_window.viewport = @viewport
- @item_window.help_window = @help_window
- @item_window.status_window = @status_window
- @item_window.set_handler(:cancel, method(:on_item_cancel))
- @category_window.item_window = @item_window
- end
- #--------------------------------------------------------------------------
- # ● アイテムステータスウィンドウの作成
- #--------------------------------------------------------------------------
- def create_status_window
- wy = @category_window.y + @category_window.height
- wh = Graphics.height - wy
- @status_window = Window_ItemDictionaryStatus.new(0, wy, Graphics.width-172-48, wh)
- @status_window.viewport = @viewport
- @status_window.set_item(nil)
- end
- #--------------------------------------------------------------------------
- # ● 図鑑完成度ウィンドウの作成
- #--------------------------------------------------------------------------
- def create_perfection_window
- wy = @item_window.y + @item_window.height
- wh = 48
- @perfection_window = Window_ItemDictionaryPerfection.new(Graphics.width-172-48, wy, 172+48, wh)
- @perfection_window.viewport = @viewport
- end
- #--------------------------------------------------------------------------
- # ● カテゴリ[決定]
- #--------------------------------------------------------------------------
- def on_category_ok
- @item_window.activate
- @item_window.select_last
- end
- #--------------------------------------------------------------------------
- # ● アイテム[キャンセル]
- #--------------------------------------------------------------------------
- def on_item_cancel
- @item_window.unselect
- @category_window.activate
- @status_window.set_item(nil)
- end
- end
-
- #==============================================================================
- # ■ Window_ItemDictionaryList
- #------------------------------------------------------------------------------
- # アイテム図鑑画面で、アイテムの一覧を表示するウィンドウです。
- #==============================================================================
- class Window_ItemDictionaryList < Window_Selectable
- include WD_itemdictionary
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize(x, y, width, height)
- super
- @category = :none
- @data = []
- end
- #--------------------------------------------------------------------------
- # ● カテゴリの設定
- #--------------------------------------------------------------------------
- def category=(category)
- return if @category == category
- @category = category
- refresh
- self.oy = 0
- end
- #--------------------------------------------------------------------------
- # ● 桁数の取得
- #--------------------------------------------------------------------------
- def col_max
- return 1
- end
- #--------------------------------------------------------------------------
- # ● 項目数の取得
- #--------------------------------------------------------------------------
- def item_max
- @data ? @data.size : 1
- end
- #--------------------------------------------------------------------------
- # ● アイテムの取得
- #--------------------------------------------------------------------------
- def item
- @data && index >= 0 ? @data[index] : nil
- end
- #--------------------------------------------------------------------------
- # ● 選択項目の有効状態を取得
- #--------------------------------------------------------------------------
- def current_item_enabled?
- enable?(@data[index])
- end
- #--------------------------------------------------------------------------
- # ● アイテムをリストに含めるかどうか
- #--------------------------------------------------------------------------
- def include?(item)
- case @category
- when :item
- item.is_a?(RPG::Item) && !item.key_item?
- when :weapon
- item.is_a?(RPG::Weapon)
- when :armor
- item.is_a?(RPG::Armor)
- when :key_item
- item.is_a?(RPG::Item) && item.key_item?
- else
- false
- end
- end
- #--------------------------------------------------------------------------
- # ● アイテムリストの作成
- #--------------------------------------------------------------------------
- def make_item_list
- @data = []
- $data_items.each do |item|
- if print_dictionary?(item)
- @data.push(item) if include?(item)
- end
- end
- $data_weapons.each do |item|
- if print_dictionary?(item)
- @data.push(item) if include?(item)
- end
- end
- $data_armors.each do |item|
- if print_dictionary?(item)
- @data.push(item) if include?(item)
- end
- end
- @data.push(nil) if include?(nil)
- end
- #--------------------------------------------------------------------------
- # ● 前回の選択位置を復帰
- #--------------------------------------------------------------------------
- def select_last
- select(0)
- end
- #--------------------------------------------------------------------------
- # ● 項目の描画
- #--------------------------------------------------------------------------
- def draw_item(index)
- item = @data[index]
- if item
- rect = item_rect(index)
- rect.width -= 4
- if t_dictionary_switch_on?(item)
- change_color(normal_color, true)
- draw_item_name(item, rect.x, rect.y, true)
- else
- change_color(normal_color, false)
- draw_text(rect.x + 24, rect.y, 172, line_height, "???????")
- end
- end
- end
- #--------------------------------------------------------------------------
- # ● ヘルプテキスト更新
- #--------------------------------------------------------------------------
- def update_help
- if t_dictionary_switch_on?(item)
- @help_window.set_item(item)
- @status_window.set_item(item, @index, true)
- else
- @help_window.set_text("???????")
- @status_window.set_item(item, @index, false)
- end
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- make_item_list
- create_contents
- draw_all_items
- end
- #--------------------------------------------------------------------------
- # ● ステータスウィンドウの設定
- #--------------------------------------------------------------------------
- def status_window=(status_window)
- @status_window = status_window
- end
- end
- #==============================================================================
- # ■ Window_ItemDictionaryPerfection
- #------------------------------------------------------------------------------
- # アイテム図鑑画面で、図鑑の完成度を表示するウィンドウです。
- #==============================================================================
- class Window_ItemDictionaryPerfection < Window_Selectable
- include WD_itemdictionary
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize(x, y, width, height)
- super
- refresh(width)
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh(width)
- contents.clear
- draw_text(0, 0, width-24, line_height, "图鉴完成度: #{item_dictionary_perfection} %", 1)
- end
- end
- #==============================================================================
- # ■ Window_ItemDictionaryStatus
- #------------------------------------------------------------------------------
- # アイテム図鑑画面で、アイテムの詳細を表示するウィンドウです。
- #==============================================================================
- class Window_ItemDictionaryStatus < Window_Selectable
- include WD_itemdictionary
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize(x, y, width, height)
- super
- @item = nil
- refresh
- end
- #--------------------------------------------------------------------------
- # ● アイテムの設定
- #--------------------------------------------------------------------------
- def set_item(item, index=-1, print=false)
- return if ((@item == item) and ([url=home.php?mod=space&uid=370741]@Index[/url] == index))
- @item = item
- @index = index
- @print = print
- refresh
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- contents.font.size = 24
- if @print
- if @item.is_a?(RPG::Item)
- if WD_itemdictionary_layout::I_id_display
- text1 = sprintf("%0#{WD_itemdictionary_layout::I_id_display_digit}d",@index+1)
- x = WD_itemdictionary_layout::I_id_display_x
- y = WD_itemdictionary_layout::I_id_display_y
- width = WD_itemdictionary_layout::I_id_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- if WD_itemdictionary_layout::I_name_display
- x = WD_itemdictionary_layout::I_name_display_x
- y = WD_itemdictionary_layout::I_name_display_y
- draw_item_name(@item, x, y, true)
- end
- font_size = WD_itemdictionary_layout::C_font_size
- contents.font.size = font_size
- if WD_itemdictionary_layout::I_price_display
- text1 = WD_itemdictionary_layout::I_price_display_text1
- text2 = @item.price
- text3 = Vocab::currency_unit
- x = WD_itemdictionary_layout::I_price_display_x
- y = WD_itemdictionary_layout::I_price_display_y
- width = WD_itemdictionary_layout::I_price_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- cx = text_size(Vocab::currency_unit).width
- change_color(normal_color)
- draw_text(x, y, width - cx - 2, font_size, text2, 2)
- change_color(system_color)
- draw_text(x, y, width, font_size, text3, 2)
- change_color(normal_color)
- end
- if WD_itemdictionary_layout::I_occasion_display
- text1 = WD_itemdictionary_layout::I_occasion_display_text1
- text2 = WD_itemdictionary_layout::I_occasion_display_text2
- text3 = WD_itemdictionary_layout::I_occasion_display_text3
- text4 = WD_itemdictionary_layout::I_occasion_display_text4
- text5 = WD_itemdictionary_layout::I_occasion_display_text5
- x = WD_itemdictionary_layout::I_occasion_display_x
- y = WD_itemdictionary_layout::I_occasion_display_y
- width = WD_itemdictionary_layout::I_occasion_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- case @item.occasion
- when 0
- draw_text(x, y, width, font_size, text2, 2)
- when 1
- draw_text(x, y, width, font_size, text3, 2)
- when 2
- draw_text(x, y, width, font_size, text4, 2)
- when 3
- draw_text(x, y, width, font_size, text5, 2)
- end
- end
- if WD_itemdictionary_layout::I_consumable_display
- text1 = WD_itemdictionary_layout::I_consumable_display_text1
- text2 = WD_itemdictionary_layout::I_consumable_display_text2
- text3 = WD_itemdictionary_layout::I_consumable_display_text3
- x = WD_itemdictionary_layout::I_consumable_display_x
- y = WD_itemdictionary_layout::I_consumable_display_y
- width = WD_itemdictionary_layout::I_consumable_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- if @item.consumable
- draw_text(x, y, width, font_size, text2, 2)
- else
- draw_text(x, y, width, font_size, text3, 2)
- end
- end
- if WD_itemdictionary_layout::I_option_display
- text1 = WD_itemdictionary_layout::I_option_display_text1
- text2 = WD_itemdictionary_layout::I_option_display_text2
- x = WD_itemdictionary_layout::I_option_display_x
- y = WD_itemdictionary_layout::I_option_display_y
- width = WD_itemdictionary_layout::I_option_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- i = 0
- @item.note.scan(/<图鉴功能:(.*)>/){|matched|
- i += 1
- self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
- }
- if i == 0
- self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
- end
- end
- elsif @item.is_a?(RPG::Weapon)
- if WD_itemdictionary_layout::W_id_display
- text1 = sprintf("%0#{WD_itemdictionary_layout::W_id_display_digit}d",@index+1)
- x = WD_itemdictionary_layout::W_id_display_x
- y = WD_itemdictionary_layout::W_id_display_y
- width = WD_itemdictionary_layout::W_id_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- if WD_itemdictionary_layout::W_name_display
- x = WD_itemdictionary_layout::W_name_display_x
- y = WD_itemdictionary_layout::W_name_display_y
- draw_item_name(@item, x, y, true)
- end
- font_size = WD_itemdictionary_layout::C_font_size
- contents.font.size = font_size
- if WD_itemdictionary_layout::W_type_display
- text1 = WD_itemdictionary_layout::W_type_display_text1
- text2 = $data_system.weapon_types[@item.wtype_id]
- x = WD_itemdictionary_layout::W_type_display_x
- y = WD_itemdictionary_layout::W_type_display_y
- width = WD_itemdictionary_layout::W_type_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_price_display
- text1 = WD_itemdictionary_layout::W_price_display_text1
- text2 = @item.price
- text3 = Vocab::currency_unit
- x = WD_itemdictionary_layout::W_price_display_x
- y = WD_itemdictionary_layout::W_price_display_y
- width = WD_itemdictionary_layout::W_price_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- cx = text_size(Vocab::currency_unit).width
- change_color(normal_color)
- draw_text(x, y, width - cx - 2, font_size, text2, 2)
- change_color(system_color)
- draw_text(x, y, width, font_size, text3, 2)
- change_color(normal_color)
- end
- if WD_itemdictionary_layout::W_atk_display
- text1 = Vocab::param(2)
- text2 = @item.params[2]
- x = WD_itemdictionary_layout::W_atk_display_x
- y = WD_itemdictionary_layout::W_atk_display_y
- width = WD_itemdictionary_layout::W_atk_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_def_display
- text1 = Vocab::param(3)
- text2 = @item.params[3]
- x = WD_itemdictionary_layout::W_def_display_x
- y = WD_itemdictionary_layout::W_def_display_y
- width = WD_itemdictionary_layout::W_def_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_mat_display
- text1 = Vocab::param(4)
- text2 = @item.params[4]
- x = WD_itemdictionary_layout::W_mat_display_x
- y = WD_itemdictionary_layout::W_mat_display_y
- width = WD_itemdictionary_layout::W_mat_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_mdf_display
- text1 = Vocab::param(5)
- text2 = @item.params[5]
- x = WD_itemdictionary_layout::W_mdf_display_x
- y = WD_itemdictionary_layout::W_mdf_display_y
- width = WD_itemdictionary_layout::W_mdf_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_agi_display
- text1 = Vocab::param(6)
- text2 = @item.params[6]
- x = WD_itemdictionary_layout::W_agi_display_x
- y = WD_itemdictionary_layout::W_agi_display_y
- width = WD_itemdictionary_layout::W_agi_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_luk_display
- text1 = Vocab::param(7)
- text2 = @item.params[7]
- x = WD_itemdictionary_layout::W_luk_display_x
- y = WD_itemdictionary_layout::W_luk_display_y
- width = WD_itemdictionary_layout::W_luk_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_mhp_display
- text1 = Vocab::param(0)
- text2 = @item.params[0]
- x = WD_itemdictionary_layout::W_mhp_display_x
- y = WD_itemdictionary_layout::W_mhp_display_y
- width = WD_itemdictionary_layout::W_mhp_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_mmp_display
- text1 = Vocab::param(1)
- text2 = @item.params[1]
- x = WD_itemdictionary_layout::W_mmp_display_x
- y = WD_itemdictionary_layout::W_mmp_display_y
- width = WD_itemdictionary_layout::W_mmp_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::W_option_display
- text1 = WD_itemdictionary_layout::W_option_display_text1
- text2 = WD_itemdictionary_layout::W_option_display_text2
- x = WD_itemdictionary_layout::W_option_display_x
- y = WD_itemdictionary_layout::W_option_display_y
- width = WD_itemdictionary_layout::W_option_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- i = 0
- @item.note.scan(/<图鉴功能:(.*)>/){|matched|
- i += 1
- self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
- }
- if i == 0
- self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
- end
- end
- elsif @item.is_a?(RPG::Armor)
- if WD_itemdictionary_layout::A_id_display
- text1 = sprintf("%0#{WD_itemdictionary_layout::A_id_display_digit}d",@index+1)
- x = WD_itemdictionary_layout::A_id_display_x
- y = WD_itemdictionary_layout::A_id_display_y
- width = WD_itemdictionary_layout::A_id_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- if WD_itemdictionary_layout::A_name_display
- x = WD_itemdictionary_layout::A_name_display_x
- y = WD_itemdictionary_layout::A_name_display_y
- draw_item_name(@item, x, y, true)
- end
- font_size = WD_itemdictionary_layout::C_font_size
- contents.font.size = font_size
- if WD_itemdictionary_layout::A_type_display
- text1 = WD_itemdictionary_layout::A_type_display_text1
- text2 = $data_system.armor_types[@item.atype_id]
- x = WD_itemdictionary_layout::A_type_display_x
- y = WD_itemdictionary_layout::A_type_display_y
- width = WD_itemdictionary_layout::A_type_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_price_display
- text1 = WD_itemdictionary_layout::A_price_display_text1
- text2 = @item.price
- text3 = Vocab::currency_unit
- x = WD_itemdictionary_layout::A_price_display_x
- y = WD_itemdictionary_layout::A_price_display_y
- width = WD_itemdictionary_layout::A_price_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- cx = text_size(Vocab::currency_unit).width
- change_color(normal_color)
- draw_text(x, y, width - cx - 2, font_size, text2, 2)
- change_color(system_color)
- draw_text(x, y, width, font_size, text3, 2)
- change_color(normal_color)
- end
- if WD_itemdictionary_layout::A_atk_display
- text1 = Vocab::param(2)
- text2 = @item.params[2]
- x = WD_itemdictionary_layout::A_atk_display_x
- y = WD_itemdictionary_layout::A_atk_display_y
- width = WD_itemdictionary_layout::A_atk_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_def_display
- text1 = Vocab::param(3)
- text2 = @item.params[3]
- x = WD_itemdictionary_layout::A_def_display_x
- y = WD_itemdictionary_layout::A_def_display_y
- width = WD_itemdictionary_layout::A_def_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_mat_display
- text1 = Vocab::param(4)
- text2 = @item.params[4]
- x = WD_itemdictionary_layout::A_mat_display_x
- y = WD_itemdictionary_layout::A_mat_display_y
- width = WD_itemdictionary_layout::A_mat_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_mdf_display
- text1 = Vocab::param(5)
- text2 = @item.params[5]
- x = WD_itemdictionary_layout::A_mdf_display_x
- y = WD_itemdictionary_layout::A_mdf_display_y
- width = WD_itemdictionary_layout::A_mdf_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_agi_display
- text1 = Vocab::param(6)
- text2 = @item.params[6]
- x = WD_itemdictionary_layout::A_agi_display_x
- y = WD_itemdictionary_layout::A_agi_display_y
- width = WD_itemdictionary_layout::A_agi_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_luk_display
- text1 = Vocab::param(7)
- text2 = @item.params[7]
- x = WD_itemdictionary_layout::A_luk_display_x
- y = WD_itemdictionary_layout::A_luk_display_y
- width = WD_itemdictionary_layout::A_luk_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_mhp_display
- text1 = Vocab::param(0)
- text2 = @item.params[0]
- x = WD_itemdictionary_layout::A_mhp_display_x
- y = WD_itemdictionary_layout::A_mhp_display_y
- width = WD_itemdictionary_layout::A_mhp_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_mmp_display
- text1 = Vocab::param(1)
- text2 = @item.params[1]
- x = WD_itemdictionary_layout::A_mmp_display_x
- y = WD_itemdictionary_layout::A_mmp_display_y
- width = WD_itemdictionary_layout::A_mmp_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- draw_text(x, y, width, font_size, text2, 2)
- end
- if WD_itemdictionary_layout::A_option_display
- text1 = WD_itemdictionary_layout::A_option_display_text1
- text2 = WD_itemdictionary_layout::A_option_display_text2
- x = WD_itemdictionary_layout::A_option_display_x
- y = WD_itemdictionary_layout::A_option_display_y
- width = WD_itemdictionary_layout::A_option_display_width
- change_color(system_color)
- draw_text(x, y, width, font_size, text1, 0)
- change_color(normal_color)
- i = 0
- @item.note.scan(/<图鉴功能:(.*)>/){|matched|
- i += 1
- self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
- }
- if i == 0
- self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
- end
- end
- end
- elsif @item != nil
- if @item.is_a?(RPG::Item)
- if WD_itemdictionary_layout::I_id_display
- text1 = sprintf("%0#{WD_itemdictionary_layout::I_id_display_digit}d",@index+1)
- x = WD_itemdictionary_layout::I_id_display_x
- y = WD_itemdictionary_layout::I_id_display_y
- width = WD_itemdictionary_layout::I_id_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- if WD_itemdictionary_layout::I_name_display
- text1 = "- No Data -"
- x = WD_itemdictionary_layout::I_name_display_x
- y = WD_itemdictionary_layout::I_name_display_y
- width = WD_itemdictionary_layout::I_name_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- end
- if @item.is_a?(RPG::Weapon)
- if WD_itemdictionary_layout::W_id_display
- text1 = sprintf("%0#{WD_itemdictionary_layout::W_id_display_digit}d",@index+1)
- x = WD_itemdictionary_layout::W_id_display_x
- y = WD_itemdictionary_layout::W_id_display_y
- width = WD_itemdictionary_layout::W_id_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- if WD_itemdictionary_layout::W_name_display
- text1 = "- No Data -"
- x = WD_itemdictionary_layout::W_name_display_x
- y = WD_itemdictionary_layout::W_name_display_y
- width = WD_itemdictionary_layout::W_name_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- end
- if @item.is_a?(RPG::Armor)
- if WD_itemdictionary_layout::A_id_display
- text1 = sprintf("%0#{WD_itemdictionary_layout::A_id_display_digit}d",@index+1)
- x = WD_itemdictionary_layout::A_id_display_x
- y = WD_itemdictionary_layout::A_id_display_y
- width = WD_itemdictionary_layout::A_id_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- if WD_itemdictionary_layout::A_name_display
- text1 = "- No Data -"
- x = WD_itemdictionary_layout::A_name_display_x
- y = WD_itemdictionary_layout::A_name_display_y
- width = WD_itemdictionary_layout::A_name_display_width
- height = line_height
- draw_text(x, y, width, height, text1, 0)
- end
- end
- end
- end
- end
复制代码 |
|