设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3805|回复: 6
打印 上一主题 下一主题

[已经解决] 請教一下關於這個物品百科腳本,有辦法更改嗎??

[复制链接]

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
跳转到指定楼层
1
 楼主| 发表于 2013-3-5 01:27:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 a000b1745 于 2013-3-19 00:33 编辑

我在日本站找到這個腳本↓

http://izumiwhite.web.fc2.com/rgss3/rgss3_001.html

但是他的"特徴:" 這一欄是需要自己手動打字添上去的,
有辦法改成自動顯示武器/裝備的特性(命中、迴避等...)嗎??

求腳本達人幫忙~{:2_249:}

如果網頁打不開,以下是我複製的RGSS3碼(共兩個)↓

RUBY 代码复制
  1. #==============================================================================
  2. # ■ RGSS3 アイテム図鑑 ver 1.00 初期設定
  3. #------------------------------------------------------------------------------
  4. #  配布元:
  5. #     白の魔 [url]http://izumiwhite.web.fc2.com/[/url]
  6. #
  7. #  利用規約:
  8. #     RPGツクールVXの正規の登録者のみご利用になれます。
  9. #     利用報告・著作権表示とかは必要ありません。
  10. #     改造もご自由にどうぞ。
  11. #     何か問題が発生しても責任は持ちません。
  12. #==============================================================================
  13.  
  14. #-------------------------------------------------------------------------------
  15. # ★ 初期設定。
  16. #-------------------------------------------------------------------------------
  17. module WD_itemdictionary_layout
  18.  
  19. #=== 各項目のレイアウト設定項目 ================================================
  20. #
  21. #   *_***_display       : trueで表示。falseで非表示。
  22. #   *_***_display_x     : 表示位置のx座標
  23. #   *_***_display_y     : 表示位置のy座標
  24. #   *_***_display_width : 表示テキストの幅
  25. #   *_***_display_text* : 表示テキスト
  26. #
  27. #===============================================================================
  28.  
  29. #===全図鑑共通設定==============================================================
  30.  
  31.   #フォントサイズ
  32.   C_font_size = 20
  33.  
  34. #===道具図鑑設定================================================================
  35.  
  36.   #番号の表示
  37.   I_id_display        = true
  38.   I_id_display_x      = 0
  39.   I_id_display_y      = 0
  40.   I_id_display_width  = 60
  41.   I_id_display_digit  = 3 #桁数
  42.  
  43.   #名前の表示
  44.   I_name_display        = true
  45.   I_name_display_x      = 84
  46.   I_name_display_y      = 0
  47.   I_name_display_width  = 172
  48.  
  49.   #価格の表示
  50.   I_price_display        = true
  51.   I_price_display_x      = 150
  52.   I_price_display_y      = 32
  53.   I_price_display_width  = 136
  54.   I_price_display_text1  = "価格"
  55.  
  56.   #使用可能時の表示
  57.   I_occasion_display        = true
  58.   I_occasion_display_x      = 0
  59.   I_occasion_display_y      = 62
  60.   I_occasion_display_width  = 140
  61.   I_occasion_display_text1  = "使用"
  62.   I_occasion_display_text2  = "常時"
  63.   I_occasion_display_text3  = "戦闘時"
  64.   I_occasion_display_text4  = "移動時"
  65.   I_occasion_display_text5  = "-"
  66.  
  67.   #消耗の表示
  68.   I_consumable_display        = true
  69.   I_consumable_display_x      = 150
  70.   I_consumable_display_y      = 62
  71.   I_consumable_display_width  = 140
  72.   I_consumable_display_text1  = "消耗"
  73.   I_consumable_display_text2  = "消耗する"
  74.   I_consumable_display_text3  = "消耗しない"
  75.  
  76.   #特徴の表示
  77.   I_option_display       = true
  78.   I_option_display_x     = 0
  79.   I_option_display_y     = 92
  80.   I_option_display_width = 286
  81.   I_option_display_text1 = "特徴"
  82.   I_option_display_text2 = "なし"
  83.  
  84. #===武器図鑑設定================================================================
  85.  
  86.   #番号の表示
  87.   W_id_display        = true
  88.   W_id_display_x      = 0
  89.   W_id_display_y      = 0
  90.   W_id_display_width  = 60
  91.   W_id_display_digit  = 3 #桁数
  92.  
  93.   #名前の表示
  94.   W_name_display        = true
  95.   W_name_display_x      = 84
  96.   W_name_display_y      = 0
  97.   W_name_display_width  = 172
  98.  
  99.   #タイプの表示
  100.   W_type_display        = true
  101.   W_type_display_x      = 0
  102.   W_type_display_y      = 32
  103.   W_type_display_width  = 136
  104.   W_type_display_text1  = "タイプ"
  105.  
  106.   #価格の表示
  107.   W_price_display       = true
  108.   W_price_display_x     = 150
  109.   W_price_display_y     = 32
  110.   W_price_display_width = 136
  111.   W_price_display_text1 = "価格"
  112.  
  113.   #攻撃力の表示
  114.   W_atk_display         = true
  115.   W_atk_display_x       = 0
  116.   W_atk_display_y       = 62
  117.   W_atk_display_width   = 136
  118.  
  119.   #防御力の表示
  120.   W_def_display         = true
  121.   W_def_display_x       = 150
  122.   W_def_display_y       = 62
  123.   W_def_display_width   = 136
  124.  
  125.   #魔法力の表示
  126.   W_mat_display         = true
  127.   W_mat_display_x       = 0
  128.   W_mat_display_y       = 82
  129.   W_mat_display_width   = 136
  130.  
  131.   #魔法防御の表示
  132.   W_mdf_display         = true
  133.   W_mdf_display_x       = 150
  134.   W_mdf_display_y       = 82
  135.   W_mdf_display_width   = 136
  136.  
  137.   #敏捷性の表示
  138.   W_agi_display         = true
  139.   W_agi_display_x       = 0
  140.   W_agi_display_y       = 102
  141.   W_agi_display_width   = 136
  142.  
  143.   #運の表示
  144.   W_luk_display         = true
  145.   W_luk_display_x       = 150
  146.   W_luk_display_y       = 102
  147.   W_luk_display_width   = 136
  148.  
  149.   #最大HPの表示
  150.   W_mhp_display         = true
  151.   W_mhp_display_x       = 0
  152.   W_mhp_display_y       = 122
  153.   W_mhp_display_width   = 136
  154.  
  155.   #最大MPの表示
  156.   W_mmp_display         = true
  157.   W_mmp_display_x       = 150
  158.   W_mmp_display_y       = 122
  159.   W_mmp_display_width   = 136
  160.  
  161.   #特徴の表示
  162.   W_option_display       = true
  163.   W_option_display_x     = 0
  164.   W_option_display_y     = 152
  165.   W_option_display_width = 286
  166.   W_option_display_text1 = "特徴"
  167.   W_option_display_text2 = "なし"
  168.  
  169.  
  170. #===防具図鑑設定================================================================
  171.  
  172.   #番号の表示
  173.   A_id_display        = true
  174.   A_id_display_x      = 0
  175.   A_id_display_y      = 0
  176.   A_id_display_width  = 60
  177.   A_id_display_digit  = 3 #桁数
  178.  
  179.   #名前の表示
  180.   A_name_display        = true
  181.   A_name_display_x      = 84
  182.   A_name_display_y      = 0
  183.   A_name_display_width  = 172
  184.  
  185.   #タイプの表示
  186.   A_type_display        = true
  187.   A_type_display_x      = 0
  188.   A_type_display_y      = 32
  189.   A_type_display_width  = 136
  190.   A_type_display_text1  = "タイプ"
  191.  
  192.   #価格の表示
  193.   A_price_display       = true
  194.   A_price_display_x     = 150
  195.   A_price_display_y     = 32
  196.   A_price_display_width = 136
  197.   A_price_display_text1 = "価格"
  198.  
  199.   #攻撃力の表示
  200.   A_atk_display         = true
  201.   A_atk_display_x       = 0
  202.   A_atk_display_y       = 62
  203.   A_atk_display_width   = 136
  204.  
  205.   #防御力の表示
  206.   A_def_display         = true
  207.   A_def_display_x       = 150
  208.   A_def_display_y       = 62
  209.   A_def_display_width   = 136
  210.  
  211.   #魔法力の表示
  212.   A_mat_display         = true
  213.   A_mat_display_x       = 0
  214.   A_mat_display_y       = 82
  215.   A_mat_display_width   = 136
  216.  
  217.   #魔法防御の表示
  218.   A_mdf_display         = true
  219.   A_mdf_display_x       = 150
  220.   A_mdf_display_y       = 82
  221.   A_mdf_display_width   = 136
  222.  
  223.   #敏捷性の表示
  224.   A_agi_display         = true
  225.   A_agi_display_x       = 0
  226.   A_agi_display_y       = 102
  227.   A_agi_display_width   = 136
  228.  
  229.   #運の表示
  230.   A_luk_display         = true
  231.   A_luk_display_x       = 150
  232.   A_luk_display_y       = 102
  233.   A_luk_display_width   = 136
  234.  
  235.   #最大HPの表示
  236.   A_mhp_display         = true
  237.   A_mhp_display_x       = 0
  238.   A_mhp_display_y       = 122
  239.   A_mhp_display_width   = 136
  240.  
  241.   #最大MPの表示
  242.   A_mmp_display         = true
  243.   A_mmp_display_x       = 150
  244.   A_mmp_display_y       = 122
  245.   A_mmp_display_width   = 136
  246.  
  247.   #特徴の表示
  248.   A_option_display       = true
  249.   A_option_display_x     = 0
  250.   A_option_display_y     = 152
  251.   A_option_display_width = 286
  252.   A_option_display_text1 = "特徴"
  253.   A_option_display_text2 = "なし"
  254.  
  255.  
  256. end
  257. #-------------------------------------------------------------------------------
  258. # ★ 初期設定おわり
  259. #-------------------------------------------------------------------------------


RUBY 代码复制
  1. #==============================================================================
  2. # ■ RGSS3 アイテム図鑑 ver 1.00 本体プログラム
  3. #------------------------------------------------------------------------------
  4. #  配布元:
  5. #     白の魔 [url]http://izumiwhite.web.fc2.com/[/url]
  6. #
  7. #  利用規約:
  8. #     RPGツクールVXの正規の登録者のみご利用になれます。
  9. #     利用報告・著作権表示とかは必要ありません。
  10. #     改造もご自由にどうぞ。
  11. #     何か問題が発生しても責任は持ちません。
  12. #==============================================================================
  13.  
  14. #==============================================================================
  15. # ■ WD_itemdictionary
  16. #------------------------------------------------------------------------------
  17. #  アイテム図鑑用の共通メソッドです。
  18. #==============================================================================
  19.  
  20. module WD_itemdictionary
  21.   def i_dictionary_switch_on(id)
  22.     $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil
  23.     $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil
  24.     $game_system.i_dic_sw[id] = true
  25.   end
  26.   def i_dictionary_switch_off(id)
  27.     $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil
  28.     $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil
  29.     $game_system.i_dic_sw[id] = false
  30.   end
  31.   def i_dictionary_switch_on?(id)
  32.     $game_system.i_dic_sw = [] if $game_system.i_dic_sw == nil
  33.     $game_system.i_dic_sw[id] = false if $game_system.i_dic_sw[id] == nil
  34.     return $game_system.i_dic_sw[id]
  35.   end
  36.   def w_dictionary_switch_on(id)
  37.     $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil
  38.     $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil
  39.     $game_system.w_dic_sw[id] = true
  40.   end
  41.   def w_dictionary_switch_off(id)
  42.     $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil
  43.     $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil
  44.     $game_system.w_dic_sw[id] = false
  45.   end
  46.   def w_dictionary_switch_on?(id)
  47.     $game_system.w_dic_sw = [] if $game_system.w_dic_sw == nil
  48.     $game_system.w_dic_sw[id] = false if $game_system.w_dic_sw[id] == nil
  49.     return $game_system.w_dic_sw[id]
  50.   end
  51.   def a_dictionary_switch_on(id)
  52.     $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil
  53.     $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil
  54.     $game_system.a_dic_sw[id] = true
  55.   end
  56.   def a_dictionary_switch_off(id)
  57.     $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil
  58.     $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil
  59.     $game_system.a_dic_sw[id] = false
  60.   end
  61.   def a_dictionary_switch_on?(id)
  62.     $game_system.a_dic_sw = [] if $game_system.a_dic_sw == nil
  63.     $game_system.a_dic_sw[id] = false if $game_system.a_dic_sw[id] == nil
  64.     return $game_system.a_dic_sw[id]
  65.   end
  66.   def t_dictionary_switch_on(item)
  67.     if item.is_a?(RPG::Item)
  68.       i_dictionary_switch_on(item.id)
  69.     end
  70.     if item.is_a?(RPG::Weapon)
  71.       w_dictionary_switch_on(item.id)
  72.     end
  73.     if item.is_a?(RPG::Armor)
  74.       a_dictionary_switch_on(item.id)
  75.     end
  76.   end
  77.   def t_dictionary_switch_on?(item)
  78.     if item.is_a?(RPG::Item)
  79.       return i_dictionary_switch_on?(item.id)
  80.     end
  81.     if item.is_a?(RPG::Weapon)
  82.       return w_dictionary_switch_on?(item.id)
  83.     end
  84.     if item.is_a?(RPG::Armor)
  85.       return a_dictionary_switch_on?(item.id)
  86.     end
  87.   end
  88.   def print_dictionary?(item)
  89.     if item != nil
  90.       if item.name.size > 0
  91.         hantei = /<図鑑無効>/ =~ item.note
  92.         if hantei == nil
  93.           return true
  94.         end
  95.       end
  96.     end
  97.     return false
  98.   end
  99.   def item_dictionary_perfection
  100.     dic_max = 0
  101.     dic_num = 0
  102.     $data_items.each do |item|
  103.       if print_dictionary?(item)
  104.         dic_max += 1
  105.         if i_dictionary_switch_on?(item.id) == true
  106.           dic_num += 1
  107.         end
  108.       end
  109.     end
  110.     $data_weapons.each do |item|
  111.       if print_dictionary?(item)
  112.         dic_max += 1
  113.         if w_dictionary_switch_on?(item.id) == true
  114.           dic_num += 1
  115.         end
  116.       end
  117.     end
  118.     $data_armors.each do |item|
  119.       if print_dictionary?(item)
  120.         dic_max += 1
  121.         if a_dictionary_switch_on?(item.id) == true
  122.           dic_num += 1
  123.         end
  124.       end
  125.     end
  126.     return (100*dic_num)/dic_max
  127.   end
  128. end
  129.  
  130. class Game_Interpreter
  131.   include WD_itemdictionary
  132. end
  133.  
  134. class Game_System
  135.   #--------------------------------------------------------------------------
  136.   # ● 公開インスタンス変数
  137.   #--------------------------------------------------------------------------
  138.   attr_accessor :i_dic_sw
  139.   attr_accessor :w_dic_sw
  140.   attr_accessor :a_dic_sw
  141.   #--------------------------------------------------------------------------
  142.   # ● オブジェクト初期化
  143.   #--------------------------------------------------------------------------
  144.   alias wd_orig_initialize001 initialize
  145.   def initialize
  146.     wd_orig_initialize001
  147.     @i_dic_sw = []
  148.     @w_dic_sw = []
  149.     @a_dic_sw = []
  150.   end
  151. end
  152.  
  153. class Game_Party < Game_Unit
  154.   include WD_itemdictionary
  155.   #--------------------------------------------------------------------------
  156.   # ● アイテムの増加(減少)
  157.   #     include_equip : 装備品も含める
  158.   #--------------------------------------------------------------------------
  159.   alias wd_orig_gain_item001 gain_item
  160.   def gain_item(item, amount, include_equip = false)   
  161.     wd_orig_gain_item001(item, amount, include_equip = false)
  162.     if amount > 0
  163.       t_dictionary_switch_on(item)
  164.     end
  165.   end
  166. end
  167.  
  168.  
  169. #==============================================================================
  170. # ■ Scene_ItemDictionary
  171. #------------------------------------------------------------------------------
  172. #  アイテム図鑑画面の処理を行うクラスです。
  173. #==============================================================================
  174.  
  175. class Scene_ItemDictionary < Scene_ItemBase
  176.   #--------------------------------------------------------------------------
  177.   # ● 開始処理
  178.   #--------------------------------------------------------------------------
  179.   def start
  180.     super
  181.     create_help_window
  182.     create_category_window
  183.     create_status_window
  184.     create_item_window
  185.     create_perfection_window
  186.   end
  187.   #--------------------------------------------------------------------------
  188.   # ● カテゴリウィンドウの作成
  189.   #--------------------------------------------------------------------------
  190.   def create_category_window
  191.     @category_window = Window_ItemCategory.new
  192.     @category_window.viewport = @viewport
  193.     @category_window.help_window = @help_window
  194.     @category_window.y = @help_window.height
  195.     @category_window.set_handler(:ok,     method(:on_category_ok))
  196.     @category_window.set_handler(:cancel, method(:return_scene))
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● アイテムウィンドウの作成
  200.   #--------------------------------------------------------------------------
  201.   def create_item_window
  202.     wy = @category_window.y + @category_window.height
  203.     wh = Graphics.height - wy - 48
  204.     @item_window = Window_ItemDictionaryList.new(Graphics.width-172-48, wy, 172+48, wh)
  205.     @item_window.viewport = @viewport
  206.     @item_window.help_window = @help_window
  207.     @item_window.status_window = @status_window
  208.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  209.     @category_window.item_window = @item_window
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● アイテムステータスウィンドウの作成
  213.   #--------------------------------------------------------------------------
  214.   def create_status_window
  215.     wy = @category_window.y + @category_window.height
  216.     wh = Graphics.height - wy
  217.     @status_window = Window_ItemDictionaryStatus.new(0, wy, Graphics.width-172-48, wh)
  218.     @status_window.viewport = @viewport
  219.     @status_window.set_item(nil)
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● 図鑑完成度ウィンドウの作成
  223.   #--------------------------------------------------------------------------
  224.   def create_perfection_window
  225.     wy = @item_window.y + @item_window.height
  226.     wh = 48
  227.     @perfection_window = Window_ItemDictionaryPerfection.new(Graphics.width-172-48, wy, 172+48, wh)
  228.     @perfection_window.viewport = @viewport
  229.   end
  230.   #--------------------------------------------------------------------------
  231.   # ● カテゴリ[決定]
  232.   #--------------------------------------------------------------------------
  233.   def on_category_ok
  234.     @item_window.activate
  235.     @item_window.select_last
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● アイテム[キャンセル]
  239.   #--------------------------------------------------------------------------
  240.   def on_item_cancel
  241.     @item_window.unselect
  242.     @category_window.activate
  243.     @status_window.set_item(nil)
  244.   end
  245. end
  246.  
  247.  
  248. #==============================================================================
  249. # ■ Window_ItemDictionaryList
  250. #------------------------------------------------------------------------------
  251. #  アイテム図鑑画面で、アイテムの一覧を表示するウィンドウです。
  252. #==============================================================================
  253.  
  254. class Window_ItemDictionaryList < Window_Selectable
  255.   include WD_itemdictionary
  256.   #--------------------------------------------------------------------------
  257.   # ● オブジェクト初期化
  258.   #--------------------------------------------------------------------------
  259.   def initialize(x, y, width, height)
  260.     super
  261.     @category = :none
  262.     @data = []
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ● カテゴリの設定
  266.   #--------------------------------------------------------------------------
  267.   def category=(category)
  268.     return if @category == category
  269.     @category = category
  270.     refresh
  271.     self.oy = 0
  272.   end
  273.   #--------------------------------------------------------------------------
  274.   # ● 桁数の取得
  275.   #--------------------------------------------------------------------------
  276.   def col_max
  277.     return 1
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ● 項目数の取得
  281.   #--------------------------------------------------------------------------
  282.   def item_max
  283.     @data ? @data.size : 1
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   # ● アイテムの取得
  287.   #--------------------------------------------------------------------------
  288.   def item
  289.     @data && index >= 0 ? @data[index] : nil
  290.   end
  291.   #--------------------------------------------------------------------------
  292.   # ● 選択項目の有効状態を取得
  293.   #--------------------------------------------------------------------------
  294.   def current_item_enabled?
  295.     enable?(@data[index])
  296.   end
  297.   #--------------------------------------------------------------------------
  298.   # ● アイテムをリストに含めるかどうか
  299.   #--------------------------------------------------------------------------
  300.   def include?(item)
  301.     case @category
  302.     when :item
  303.       item.is_a?(RPG::Item) && !item.key_item?
  304.     when :weapon
  305.       item.is_a?(RPG::Weapon)
  306.     when :armor
  307.       item.is_a?(RPG::Armor)
  308.     when :key_item
  309.       item.is_a?(RPG::Item) && item.key_item?
  310.     else
  311.       false
  312.     end
  313.   end
  314.   #--------------------------------------------------------------------------
  315.   # ● アイテムリストの作成
  316.   #--------------------------------------------------------------------------
  317.   def make_item_list
  318.     @data = []
  319.     $data_items.each do |item|
  320.       if print_dictionary?(item)
  321.         @data.push(item) if include?(item)
  322.       end
  323.     end
  324.     $data_weapons.each do |item|
  325.       if print_dictionary?(item)
  326.         @data.push(item) if include?(item)
  327.       end
  328.     end
  329.     $data_armors.each do |item|
  330.       if print_dictionary?(item)
  331.         @data.push(item) if include?(item)
  332.       end
  333.     end
  334.     @data.push(nil) if include?(nil)
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● 前回の選択位置を復帰
  338.   #--------------------------------------------------------------------------
  339.   def select_last
  340.     select(0)
  341.   end
  342.   #--------------------------------------------------------------------------
  343.   # ● 項目の描画
  344.   #--------------------------------------------------------------------------
  345.   def draw_item(index)
  346.     item = @data[index]
  347.     if item
  348.       rect = item_rect(index)
  349.       rect.width -= 4
  350.       if t_dictionary_switch_on?(item)
  351.         change_color(normal_color, true)
  352.         draw_item_name(item, rect.x, rect.y, true)
  353.       else
  354.         change_color(normal_color, false)
  355.         draw_text(rect.x + 24, rect.y, 172, line_height, "???????")
  356.       end
  357.     end
  358.   end
  359.   #--------------------------------------------------------------------------
  360.   # ● ヘルプテキスト更新
  361.   #--------------------------------------------------------------------------
  362.   def update_help
  363.     if t_dictionary_switch_on?(item)
  364.       @help_window.set_item(item)
  365.       @status_window.set_item(item, @index, true)
  366.     else
  367.       @help_window.set_text("???????")
  368.       @status_window.set_item(item, @index, false)
  369.     end
  370.   end
  371.   #--------------------------------------------------------------------------
  372.   # ● リフレッシュ
  373.   #--------------------------------------------------------------------------
  374.   def refresh
  375.     make_item_list
  376.     create_contents
  377.     draw_all_items
  378.   end
  379.   #--------------------------------------------------------------------------
  380.   # ● ステータスウィンドウの設定
  381.   #--------------------------------------------------------------------------
  382.   def status_window=(status_window)
  383.     @status_window = status_window
  384.   end
  385. end
  386.  
  387. #==============================================================================
  388. # ■ Window_ItemDictionaryPerfection
  389. #------------------------------------------------------------------------------
  390. #  アイテム図鑑画面で、図鑑の完成度を表示するウィンドウです。
  391. #==============================================================================
  392.  
  393. class Window_ItemDictionaryPerfection < Window_Selectable
  394.   include WD_itemdictionary
  395.   #--------------------------------------------------------------------------
  396.   # ● オブジェクト初期化
  397.   #--------------------------------------------------------------------------
  398.   def initialize(x, y, width, height)
  399.     super
  400.     refresh(width)
  401.   end
  402.   #--------------------------------------------------------------------------
  403.   # ● リフレッシュ
  404.   #--------------------------------------------------------------------------
  405.   def refresh(width)
  406.     contents.clear
  407.     draw_text(0, 0, width-24, line_height, "図鑑完成度: #{item_dictionary_perfection} %", 1)
  408.   end
  409. end
  410.  
  411.  
  412. #==============================================================================
  413. # ■ Window_ItemDictionaryStatus
  414. #------------------------------------------------------------------------------
  415. #  アイテム図鑑画面で、アイテムの詳細を表示するウィンドウです。
  416. #==============================================================================
  417.  
  418. class Window_ItemDictionaryStatus < Window_Selectable
  419.   include WD_itemdictionary
  420.   #--------------------------------------------------------------------------
  421.   # ● オブジェクト初期化
  422.   #--------------------------------------------------------------------------
  423.   def initialize(x, y, width, height)
  424.     super
  425.     @item = nil
  426.     refresh
  427.   end
  428.   #--------------------------------------------------------------------------
  429.   # ● アイテムの設定
  430.   #--------------------------------------------------------------------------
  431.   def set_item(item, index=-1, print=false)
  432.     return if ((@item == item) and (@index == index))
  433.     @item = item
  434.     @index = index
  435.     @print = print
  436.     refresh
  437.   end
  438.   #--------------------------------------------------------------------------
  439.   # ● リフレッシュ
  440.   #--------------------------------------------------------------------------
  441.   def refresh
  442.     contents.clear
  443.     contents.font.size = 24
  444.  
  445.     if @print
  446.  
  447.       if @item.is_a?(RPG::Item)
  448.         if WD_itemdictionary_layout::I_id_display
  449.           text1  = sprintf("%0#{WD_itemdictionary_layout::I_id_display_digit}d",@index+1)
  450.           x      = WD_itemdictionary_layout::I_id_display_x
  451.           y      = WD_itemdictionary_layout::I_id_display_y
  452.           width  = WD_itemdictionary_layout::I_id_display_width
  453.           height = line_height
  454.           draw_text(x, y, width, height, text1, 0)
  455.         end
  456.         if WD_itemdictionary_layout::I_name_display
  457.           x      = WD_itemdictionary_layout::I_name_display_x
  458.           y      = WD_itemdictionary_layout::I_name_display_y
  459.           draw_item_name(@item, x, y, true)
  460.         end
  461.         font_size = WD_itemdictionary_layout::C_font_size
  462.         contents.font.size = font_size
  463.         if WD_itemdictionary_layout::I_price_display
  464.           text1  = WD_itemdictionary_layout::I_price_display_text1
  465.           text2  = @item.price
  466.           text3  = Vocab::currency_unit
  467.           x      = WD_itemdictionary_layout::I_price_display_x
  468.           y      = WD_itemdictionary_layout::I_price_display_y
  469.           width  = WD_itemdictionary_layout::I_price_display_width
  470.           change_color(system_color)
  471.           draw_text(x, y, width, font_size, text1, 0)
  472.           cx = text_size(Vocab::currency_unit).width
  473.           change_color(normal_color)
  474.           draw_text(x, y, width - cx - 2, font_size, text2, 2)
  475.           change_color(system_color)
  476.           draw_text(x, y, width, font_size, text3, 2)
  477.           change_color(normal_color)
  478.         end
  479.         if WD_itemdictionary_layout::I_occasion_display
  480.           text1  = WD_itemdictionary_layout::I_occasion_display_text1
  481.           text2  = WD_itemdictionary_layout::I_occasion_display_text2
  482.           text3  = WD_itemdictionary_layout::I_occasion_display_text3
  483.           text4  = WD_itemdictionary_layout::I_occasion_display_text4
  484.           text5  = WD_itemdictionary_layout::I_occasion_display_text5
  485.           x      = WD_itemdictionary_layout::I_occasion_display_x
  486.           y      = WD_itemdictionary_layout::I_occasion_display_y
  487.           width  = WD_itemdictionary_layout::I_occasion_display_width
  488.           change_color(system_color)
  489.           draw_text(x, y, width, font_size, text1, 0)
  490.           change_color(normal_color)
  491.           case @item.occasion
  492.           when 0
  493.             draw_text(x, y, width, font_size, text2, 2)
  494.           when 1
  495.             draw_text(x, y, width, font_size, text3, 2)
  496.           when 2
  497.             draw_text(x, y, width, font_size, text4, 2)
  498.           when 3
  499.             draw_text(x, y, width, font_size, text5, 2)
  500.           end
  501.         end
  502.         if WD_itemdictionary_layout::I_consumable_display
  503.           text1  = WD_itemdictionary_layout::I_consumable_display_text1
  504.           text2  = WD_itemdictionary_layout::I_consumable_display_text2
  505.           text3  = WD_itemdictionary_layout::I_consumable_display_text3
  506.           x      = WD_itemdictionary_layout::I_consumable_display_x
  507.           y      = WD_itemdictionary_layout::I_consumable_display_y
  508.           width  = WD_itemdictionary_layout::I_consumable_display_width
  509.           change_color(system_color)
  510.           draw_text(x, y, width, font_size, text1, 0)
  511.           change_color(normal_color)
  512.           if @item.consumable
  513.             draw_text(x, y, width, font_size, text2, 2)
  514.           else
  515.             draw_text(x, y, width, font_size, text3, 2)
  516.           end
  517.         end  
  518.         if WD_itemdictionary_layout::I_option_display
  519.           text1  = WD_itemdictionary_layout::I_option_display_text1
  520.           text2  = WD_itemdictionary_layout::I_option_display_text2
  521.           x      = WD_itemdictionary_layout::I_option_display_x
  522.           y      = WD_itemdictionary_layout::I_option_display_y
  523.           width  = WD_itemdictionary_layout::I_option_display_width
  524.           change_color(system_color)
  525.           draw_text(x, y, width, font_size, text1, 0)
  526.           change_color(normal_color)
  527.           i = 0
  528.           @item.note.scan(/<図鑑特徴:(.*)>/){|matched|
  529.             i += 1
  530.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
  531.            }
  532.           if i == 0
  533.             self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
  534.           end
  535.         end
  536.  
  537.       elsif @item.is_a?(RPG::Weapon)
  538.         if WD_itemdictionary_layout::W_id_display
  539.           text1  = sprintf("%0#{WD_itemdictionary_layout::W_id_display_digit}d",@index+1)
  540.           x      = WD_itemdictionary_layout::W_id_display_x
  541.           y      = WD_itemdictionary_layout::W_id_display_y
  542.           width  = WD_itemdictionary_layout::W_id_display_width
  543.           height = line_height
  544.           draw_text(x, y, width, height, text1, 0)
  545.         end
  546.         if WD_itemdictionary_layout::W_name_display
  547.           x      = WD_itemdictionary_layout::W_name_display_x
  548.           y      = WD_itemdictionary_layout::W_name_display_y
  549.           draw_item_name(@item, x, y, true)
  550.         end
  551.         font_size = WD_itemdictionary_layout::C_font_size
  552.         contents.font.size = font_size
  553.         if WD_itemdictionary_layout::W_type_display
  554.           text1  = WD_itemdictionary_layout::W_type_display_text1
  555.           text2  = $data_system.weapon_types[@item.wtype_id]
  556.           x      = WD_itemdictionary_layout::W_type_display_x
  557.           y      = WD_itemdictionary_layout::W_type_display_y
  558.           width  = WD_itemdictionary_layout::W_type_display_width
  559.           change_color(system_color)
  560.           draw_text(x, y, width, font_size, text1, 0)
  561.           change_color(normal_color)
  562.           draw_text(x, y, width, font_size, text2, 2)
  563.         end
  564.         if WD_itemdictionary_layout::W_price_display
  565.           text1  = WD_itemdictionary_layout::W_price_display_text1
  566.           text2  = @item.price
  567.           text3  = Vocab::currency_unit
  568.           x      = WD_itemdictionary_layout::W_price_display_x
  569.           y      = WD_itemdictionary_layout::W_price_display_y
  570.           width  = WD_itemdictionary_layout::W_price_display_width
  571.           change_color(system_color)
  572.           draw_text(x, y, width, font_size, text1, 0)
  573.           cx = text_size(Vocab::currency_unit).width
  574.           change_color(normal_color)
  575.           draw_text(x, y, width - cx - 2, font_size, text2, 2)
  576.           change_color(system_color)
  577.           draw_text(x, y, width, font_size, text3, 2)
  578.           change_color(normal_color)
  579.         end
  580.         if WD_itemdictionary_layout::W_atk_display
  581.           text1  = Vocab::param(2)
  582.           text2  = @item.params[2]
  583.           x      = WD_itemdictionary_layout::W_atk_display_x
  584.           y      = WD_itemdictionary_layout::W_atk_display_y
  585.           width  = WD_itemdictionary_layout::W_atk_display_width
  586.           change_color(system_color)
  587.           draw_text(x, y, width, font_size, text1, 0)
  588.           change_color(normal_color)
  589.           draw_text(x, y, width, font_size, text2, 2)
  590.         end
  591.         if WD_itemdictionary_layout::W_def_display
  592.           text1  = Vocab::param(3)
  593.           text2  = @item.params[3]
  594.           x      = WD_itemdictionary_layout::W_def_display_x
  595.           y      = WD_itemdictionary_layout::W_def_display_y
  596.           width  = WD_itemdictionary_layout::W_def_display_width
  597.           change_color(system_color)
  598.           draw_text(x, y, width, font_size, text1, 0)
  599.           change_color(normal_color)
  600.           draw_text(x, y, width, font_size, text2, 2)
  601.         end
  602.         if WD_itemdictionary_layout::W_mat_display
  603.           text1  = Vocab::param(4)
  604.           text2  = @item.params[4]
  605.           x      = WD_itemdictionary_layout::W_mat_display_x
  606.           y      = WD_itemdictionary_layout::W_mat_display_y
  607.           width  = WD_itemdictionary_layout::W_mat_display_width
  608.           change_color(system_color)
  609.           draw_text(x, y, width, font_size, text1, 0)
  610.           change_color(normal_color)
  611.           draw_text(x, y, width, font_size, text2, 2)
  612.         end
  613.         if WD_itemdictionary_layout::W_mdf_display
  614.           text1  = Vocab::param(5)
  615.           text2  = @item.params[5]
  616.           x      = WD_itemdictionary_layout::W_mdf_display_x
  617.           y      = WD_itemdictionary_layout::W_mdf_display_y
  618.           width  = WD_itemdictionary_layout::W_mdf_display_width
  619.           change_color(system_color)
  620.           draw_text(x, y, width, font_size, text1, 0)
  621.           change_color(normal_color)
  622.           draw_text(x, y, width, font_size, text2, 2)
  623.         end
  624.         if WD_itemdictionary_layout::W_agi_display
  625.           text1  = Vocab::param(6)
  626.           text2  = @item.params[6]
  627.           x      = WD_itemdictionary_layout::W_agi_display_x
  628.           y      = WD_itemdictionary_layout::W_agi_display_y
  629.           width  = WD_itemdictionary_layout::W_agi_display_width
  630.           change_color(system_color)
  631.           draw_text(x, y, width, font_size, text1, 0)
  632.           change_color(normal_color)
  633.           draw_text(x, y, width, font_size, text2, 2)
  634.         end
  635.         if WD_itemdictionary_layout::W_luk_display
  636.           text1  = Vocab::param(7)
  637.           text2  = @item.params[7]
  638.           x      = WD_itemdictionary_layout::W_luk_display_x
  639.           y      = WD_itemdictionary_layout::W_luk_display_y
  640.           width  = WD_itemdictionary_layout::W_luk_display_width
  641.           change_color(system_color)
  642.           draw_text(x, y, width, font_size, text1, 0)
  643.           change_color(normal_color)
  644.           draw_text(x, y, width, font_size, text2, 2)
  645.         end
  646.         if WD_itemdictionary_layout::W_mhp_display
  647.           text1  = Vocab::param(0)
  648.           text2  = @item.params[0]
  649.           x      = WD_itemdictionary_layout::W_mhp_display_x
  650.           y      = WD_itemdictionary_layout::W_mhp_display_y
  651.           width  = WD_itemdictionary_layout::W_mhp_display_width
  652.           change_color(system_color)
  653.           draw_text(x, y, width, font_size, text1, 0)
  654.           change_color(normal_color)
  655.           draw_text(x, y, width, font_size, text2, 2)
  656.         end
  657.         if WD_itemdictionary_layout::W_mmp_display
  658.           text1  = Vocab::param(1)
  659.           text2  = @item.params[1]
  660.           x      = WD_itemdictionary_layout::W_mmp_display_x
  661.           y      = WD_itemdictionary_layout::W_mmp_display_y
  662.           width  = WD_itemdictionary_layout::W_mmp_display_width
  663.           change_color(system_color)
  664.           draw_text(x, y, width, font_size, text1, 0)
  665.           change_color(normal_color)
  666.           draw_text(x, y, width, font_size, text2, 2)
  667.         end
  668.         if WD_itemdictionary_layout::W_option_display
  669.           text1  = WD_itemdictionary_layout::W_option_display_text1
  670.           text2  = WD_itemdictionary_layout::W_option_display_text2
  671.           x      = WD_itemdictionary_layout::W_option_display_x
  672.           y      = WD_itemdictionary_layout::W_option_display_y
  673.           width  = WD_itemdictionary_layout::W_option_display_width
  674.           change_color(system_color)
  675.           draw_text(x, y, width, font_size, text1, 0)
  676.           change_color(normal_color)
  677.           i = 0
  678.           @item.note.scan(/<図鑑特徴:(.*)>/){|matched|
  679.             i += 1
  680.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
  681.            }
  682.           if i == 0
  683.             self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
  684.           end
  685.         end
  686.  
  687.       elsif @item.is_a?(RPG::Armor)
  688.         if WD_itemdictionary_layout::A_id_display
  689.           text1  = sprintf("%0#{WD_itemdictionary_layout::A_id_display_digit}d",@index+1)
  690.           x      = WD_itemdictionary_layout::A_id_display_x
  691.           y      = WD_itemdictionary_layout::A_id_display_y
  692.           width  = WD_itemdictionary_layout::A_id_display_width
  693.           height = line_height
  694.           draw_text(x, y, width, height, text1, 0)
  695.         end
  696.         if WD_itemdictionary_layout::A_name_display
  697.           x      = WD_itemdictionary_layout::A_name_display_x
  698.           y      = WD_itemdictionary_layout::A_name_display_y
  699.           draw_item_name(@item, x, y, true)
  700.         end
  701.         font_size = WD_itemdictionary_layout::C_font_size
  702.         contents.font.size = font_size
  703.         if WD_itemdictionary_layout::A_type_display
  704.           text1  = WD_itemdictionary_layout::A_type_display_text1
  705.           text2  = $data_system.armor_types[@item.atype_id]
  706.           x      = WD_itemdictionary_layout::A_type_display_x
  707.           y      = WD_itemdictionary_layout::A_type_display_y
  708.           width  = WD_itemdictionary_layout::A_type_display_width
  709.           change_color(system_color)
  710.           draw_text(x, y, width, font_size, text1, 0)
  711.           change_color(normal_color)
  712.           draw_text(x, y, width, font_size, text2, 2)
  713.         end
  714.         if WD_itemdictionary_layout::A_price_display
  715.           text1  = WD_itemdictionary_layout::A_price_display_text1
  716.           text2  = @item.price
  717.           text3  = Vocab::currency_unit
  718.           x      = WD_itemdictionary_layout::A_price_display_x
  719.           y      = WD_itemdictionary_layout::A_price_display_y
  720.           width  = WD_itemdictionary_layout::A_price_display_width
  721.           change_color(system_color)
  722.           draw_text(x, y, width, font_size, text1, 0)
  723.           cx = text_size(Vocab::currency_unit).width
  724.           change_color(normal_color)
  725.           draw_text(x, y, width - cx - 2, font_size, text2, 2)
  726.           change_color(system_color)
  727.           draw_text(x, y, width, font_size, text3, 2)
  728.           change_color(normal_color)
  729.         end
  730.         if WD_itemdictionary_layout::A_atk_display
  731.           text1  = Vocab::param(2)
  732.           text2  = @item.params[2]
  733.           x      = WD_itemdictionary_layout::A_atk_display_x
  734.           y      = WD_itemdictionary_layout::A_atk_display_y
  735.           width  = WD_itemdictionary_layout::A_atk_display_width
  736.           change_color(system_color)
  737.           draw_text(x, y, width, font_size, text1, 0)
  738.           change_color(normal_color)
  739.           draw_text(x, y, width, font_size, text2, 2)
  740.         end
  741.         if WD_itemdictionary_layout::A_def_display
  742.           text1  = Vocab::param(3)
  743.           text2  = @item.params[3]
  744.           x      = WD_itemdictionary_layout::A_def_display_x
  745.           y      = WD_itemdictionary_layout::A_def_display_y
  746.           width  = WD_itemdictionary_layout::A_def_display_width
  747.           change_color(system_color)
  748.           draw_text(x, y, width, font_size, text1, 0)
  749.           change_color(normal_color)
  750.           draw_text(x, y, width, font_size, text2, 2)
  751.         end
  752.         if WD_itemdictionary_layout::A_mat_display
  753.           text1  = Vocab::param(4)
  754.           text2  = @item.params[4]
  755.           x      = WD_itemdictionary_layout::A_mat_display_x
  756.           y      = WD_itemdictionary_layout::A_mat_display_y
  757.           width  = WD_itemdictionary_layout::A_mat_display_width
  758.           change_color(system_color)
  759.           draw_text(x, y, width, font_size, text1, 0)
  760.           change_color(normal_color)
  761.           draw_text(x, y, width, font_size, text2, 2)
  762.         end
  763.         if WD_itemdictionary_layout::A_mdf_display
  764.           text1  = Vocab::param(5)
  765.           text2  = @item.params[5]
  766.           x      = WD_itemdictionary_layout::A_mdf_display_x
  767.           y      = WD_itemdictionary_layout::A_mdf_display_y
  768.           width  = WD_itemdictionary_layout::A_mdf_display_width
  769.           change_color(system_color)
  770.           draw_text(x, y, width, font_size, text1, 0)
  771.           change_color(normal_color)
  772.           draw_text(x, y, width, font_size, text2, 2)
  773.         end
  774.         if WD_itemdictionary_layout::A_agi_display
  775.           text1  = Vocab::param(6)
  776.           text2  = @item.params[6]
  777.           x      = WD_itemdictionary_layout::A_agi_display_x
  778.           y      = WD_itemdictionary_layout::A_agi_display_y
  779.           width  = WD_itemdictionary_layout::A_agi_display_width
  780.           change_color(system_color)
  781.           draw_text(x, y, width, font_size, text1, 0)
  782.           change_color(normal_color)
  783.           draw_text(x, y, width, font_size, text2, 2)
  784.         end
  785.         if WD_itemdictionary_layout::A_luk_display
  786.           text1  = Vocab::param(7)
  787.           text2  = @item.params[7]
  788.           x      = WD_itemdictionary_layout::A_luk_display_x
  789.           y      = WD_itemdictionary_layout::A_luk_display_y
  790.           width  = WD_itemdictionary_layout::A_luk_display_width
  791.           change_color(system_color)
  792.           draw_text(x, y, width, font_size, text1, 0)
  793.           change_color(normal_color)
  794.           draw_text(x, y, width, font_size, text2, 2)
  795.         end
  796.         if WD_itemdictionary_layout::A_mhp_display
  797.           text1  = Vocab::param(0)
  798.           text2  = @item.params[0]
  799.           x      = WD_itemdictionary_layout::A_mhp_display_x
  800.           y      = WD_itemdictionary_layout::A_mhp_display_y
  801.           width  = WD_itemdictionary_layout::A_mhp_display_width
  802.           change_color(system_color)
  803.           draw_text(x, y, width, font_size, text1, 0)
  804.           change_color(normal_color)
  805.           draw_text(x, y, width, font_size, text2, 2)
  806.         end
  807.         if WD_itemdictionary_layout::A_mmp_display
  808.           text1  = Vocab::param(1)
  809.           text2  = @item.params[1]
  810.           x      = WD_itemdictionary_layout::A_mmp_display_x
  811.           y      = WD_itemdictionary_layout::A_mmp_display_y
  812.           width  = WD_itemdictionary_layout::A_mmp_display_width
  813.           change_color(system_color)
  814.           draw_text(x, y, width, font_size, text1, 0)
  815.           change_color(normal_color)
  816.           draw_text(x, y, width, font_size, text2, 2)
  817.         end
  818.         if WD_itemdictionary_layout::A_option_display
  819.           text1  = WD_itemdictionary_layout::A_option_display_text1
  820.           text2  = WD_itemdictionary_layout::A_option_display_text2
  821.           x      = WD_itemdictionary_layout::A_option_display_x
  822.           y      = WD_itemdictionary_layout::A_option_display_y
  823.           width  = WD_itemdictionary_layout::A_option_display_width
  824.           change_color(system_color)
  825.           draw_text(x, y, width, font_size, text1, 0)
  826.           change_color(normal_color)
  827.           i = 0
  828.           @item.note.scan(/<図鑑特徴:(.*)>/){|matched|
  829.             i += 1
  830.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
  831.            }
  832.           if i == 0
  833.             self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
  834.           end
  835.         end
  836.  
  837.       end
  838.  
  839.     elsif @item != nil
  840.       if @item.is_a?(RPG::Item)
  841.         if WD_itemdictionary_layout::I_id_display
  842.           text1  = sprintf("%0#{WD_itemdictionary_layout::I_id_display_digit}d",@index+1)
  843.           x      = WD_itemdictionary_layout::I_id_display_x
  844.           y      = WD_itemdictionary_layout::I_id_display_y
  845.           width  = WD_itemdictionary_layout::I_id_display_width
  846.           height = line_height
  847.           draw_text(x, y, width, height, text1, 0)
  848.         end
  849.         if WD_itemdictionary_layout::I_name_display
  850.           text1  = "- No Data -"
  851.           x      = WD_itemdictionary_layout::I_name_display_x
  852.           y      = WD_itemdictionary_layout::I_name_display_y
  853.           width  = WD_itemdictionary_layout::I_name_display_width
  854.           height = line_height
  855.           draw_text(x, y, width, height, text1, 0)
  856.         end
  857.       end
  858.       if @item.is_a?(RPG::Weapon)
  859.         if WD_itemdictionary_layout::W_id_display
  860.           text1  = sprintf("%0#{WD_itemdictionary_layout::W_id_display_digit}d",@index+1)
  861.           x      = WD_itemdictionary_layout::W_id_display_x
  862.           y      = WD_itemdictionary_layout::W_id_display_y
  863.           width  = WD_itemdictionary_layout::W_id_display_width
  864.           height = line_height
  865.           draw_text(x, y, width, height, text1, 0)
  866.         end
  867.         if WD_itemdictionary_layout::W_name_display
  868.           text1  = "- No Data -"
  869.           x      = WD_itemdictionary_layout::W_name_display_x
  870.           y      = WD_itemdictionary_layout::W_name_display_y
  871.           width  = WD_itemdictionary_layout::W_name_display_width
  872.           height = line_height
  873.           draw_text(x, y, width, height, text1, 0)
  874.         end
  875.       end
  876.       if @item.is_a?(RPG::Armor)
  877.         if WD_itemdictionary_layout::A_id_display
  878.           text1  = sprintf("%0#{WD_itemdictionary_layout::A_id_display_digit}d",@index+1)
  879.           x      = WD_itemdictionary_layout::A_id_display_x
  880.           y      = WD_itemdictionary_layout::A_id_display_y
  881.           width  = WD_itemdictionary_layout::A_id_display_width
  882.           height = line_height
  883.           draw_text(x, y, width, height, text1, 0)
  884.         end
  885.         if WD_itemdictionary_layout::A_name_display
  886.           text1  = "- No Data -"
  887.           x      = WD_itemdictionary_layout::A_name_display_x
  888.           y      = WD_itemdictionary_layout::A_name_display_y
  889.           width  = WD_itemdictionary_layout::A_name_display_width
  890.           height = line_height
  891.           draw_text(x, y, width, height, text1, 0)
  892.         end
  893.       end
  894.  
  895.     end
  896.   end
  897. end


P.S 以上這兩個腳本要一起存在才有效果!!
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
2
发表于 2013-3-5 08:43:34 | 只看该作者
改倒是能改,大约 518 行:
  1.         if WD_itemdictionary_layout::I_option_display
  2.           text1  = WD_itemdictionary_layout::I_option_display_text1
  3.           text2  = WD_itemdictionary_layout::I_option_display_text2
  4.           x      = WD_itemdictionary_layout::I_option_display_x
  5.           y      = WD_itemdictionary_layout::I_option_display_y
  6.           width  = WD_itemdictionary_layout::I_option_display_width
  7.           change_color(system_color)
  8.           draw_text(x, y, width, font_size, text1, 0)
  9.           change_color(normal_color)
  10.           i = 0
  11.           @item.note.scan(/<図鉴特徴:(.*)>/){|matched|
  12.             i += 1
  13.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
  14.            }
  15.           if i == 0
  16.             self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
  17.           end
  18.         end
复制代码
这就是做特征表示的程式码,但是我不知道您说的命中、回避资料要去哪抓?

好比数据库中的武器页,手斧的名称和价格那些都好说,现成订定好的,

但命中率在能力值变化量中没有看到,难道要自己取特性内容去作运算?

那还不如原本在备注栏中写明的好使。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
3
 楼主| 发表于 2013-3-5 17:16:46 | 只看该作者
就是設定武器/裝備/道具右邊那欄啊~
有追加能力值(譬如命中率+3%. 最大HP*120. 增加攻擊次數1 等等...)
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
4
发表于 2013-3-5 22:55:25 | 只看该作者
a000b1745 发表于 2013-3-5 17:16
就是設定武器/裝備/道具右邊那欄啊~
有追加能力值(譬如命中率+3%. 最大HP*120. 增加攻擊次數1 等等...) ...

晕,我举个例子,武器中的手斧,特性栏中有


加入能力         [物理命中机率] -10 %


那特征命中率直接这样写吗?或者还是要计算出命中率的实际值?

如果直接读特性栏内的设定还好些,计算结果就没辄了,

因为我不懂这个计算方式,所以也无法去试着改改看。

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
5
 楼主| 发表于 2013-3-5 23:52:11 | 只看该作者
是直接寫的~ 不用再計算什麼~!
有辦法嗎?? 我不需要什麼計算公式{:2_263:}
只要簡單顯示" [物理命中机率] -10 %" 就好了!
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
6
发表于 2013-3-6 07:53:50 | 只看该作者
本帖最后由 j433463 于 2013-3-6 12:20 编辑

呃,好像做到了,不过是土方法,之前说的那一段注释后用这个取代:


RUBY 代码复制
  1. #道具图鉴
  2.           i = 0
  3.          @item.effects.each {|effect|
  4.             i += 1
  5.     case effect.code
  6.     when 11 #
  7.       text2 = "恢复体力值 :" + (effect.value2.to_i).to_s
  8.     when 12
  9.       text2 = "恢复魔力值 :" + (effect.value2.to_i).to_s
  10.     when 13
  11.       text2 = "恢复特技值 :" + (effect.value2.to_i).to_s
  12.  
  13.     when 21
  14.       text2 = "附加状态  :[" + $data_states[effect.data_id].name + "]" + sprintf("%02d", effect.value1 * 100) + "%"
  15.     when 22
  16.       text2 = "解除状态  :[" + $data_states[effect.data_id].name + "]" + sprintf("%02d", effect.value1 * 100) + "%"
  17.  
  18.     when 31
  19.       text2 = "强化能力  :[" + @param_name[effect.data_id] + "] " + (effect.value1.to_i).to_s + " 回合"
  20.     when 32
  21.       text2 = "弱化能力  :[" + @param_name[effect.data_id] + "] " + (effect.value1.to_i).to_s + " 回合"
  22.     when 33
  23.       text2 = "解除能力强化:[" + @param_name[effect.data_id] + "] "
  24.     when 34
  25.       text2 = "解除能力弱化:[" + @param_name[effect.data_id] + "] "
  26.  
  27.     when 41
  28.       text2 = "特殊效果  :撤退"
  29.     when 42
  30.       text2 = "能力提升  :[" + @param_name[effect.data_id] + "] + " + (effect.value1.to_i).to_s
  31.  
  32.     when 43
  33.       text2 = "学会技能  :[" + $data_skills[effect.data_id].name + "]"
  34.     when 44
  35.       text2 = "公共事件  :[" + $data_common_events[effect.data_id].name + "]"
  36.     end
  37.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, text2 , 0)
  38.           }
  39.           if i == 0
  40.             self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
  41.           end








不过,code 和 data_id 有那些值,又代表哪个特性,不试不知道,要把它写完全还真不是简单的工作,这还只是道具的部份,

我只完成物品的部份,脚本下方还有 武器 和 防具 也要做,方式一样,这是个大工程,我偷懒了,您自己搞定吧,

武器和物品的 code 不能共同,貌似防具也不同,无法用物品的复制过去,都要重做,而且更多,

不是我不负责,要把它们全部弄出来,我还不如用原来方法在备注栏手动添加呢,没省多少力。

而且,貌似显示特征的空间不够,我测试默认分辨率 544*416 下只能放四行,第五行会盖掉下半部,

默认的物品武器防具其特性超过四行的不少,必须再调整出空间来才行。

对了,补充一下,武器要用 features 而不是 effects,所以是 @item.features.each

点评

你說的對! 的確只能放下四行,就算自己添加也要挑重要的來寫!!  发表于 2013-3-6 13:26
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
567
在线时间
465 小时
注册时间
2009-10-11
帖子
407
7
 楼主| 发表于 2013-3-6 13:24:17 | 只看该作者
哇! 還真是大工程~
讓我好好回去研究一下!!
非常謝謝你啊大獅子{:2_249:}

点评

這腳本不錯,算是提供玩家的小百科。但有辦法直接讓內容都顯示嗎?? i_dictionary_switch_on(1) 是開通ID=1的物品~我想開通全部的~非要一個一個打嗎??  发表于 2013-3-6 15:52
改这脚本我有兴趣,只是后面整理那些资料太累了,只好暂时偷懒,不过基本架构已经写出来,剩下只有整理而已,应该不会太难了,有空再继续做。  发表于 2013-3-6 13:34
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-27 04:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表