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

Project1

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

[已经解决] 求脚本!!

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12562
在线时间
1055 小时
注册时间
2015-6-12
帖子
2
跳转到指定楼层
1
发表于 2015-11-3 07:48:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
求一个白の魔的魔物脚本

点评

是魔物图鉴脚本  发表于 2015-11-3 12:46

Lv1.梦旅人

梦石
0
星屑
50
在线时间
641 小时
注册时间
2015-7-29
帖子
211
2
发表于 2015-11-3 14:04:16 | 只看该作者
  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. module WD_monsterdictionary_layout

  17. #=== 各項目のレイアウト設定項目 ================================================
  18. #
  19. #   *_***_display       : trueで表示。falseで非表示。
  20. #   *_***_display_x     : 表示位置のx座標
  21. #   *_***_display_y     : 表示位置のy座標
  22. #   *_***_display_width : 表示テキストの幅
  23. #   *_***_display_text* : 表示テキスト
  24. #
  25. #===============================================================================

  26. #===全図鑑共通設定==============================================================

  27.   #図鑑完成度にどの段階で繁栄するか
  28.   Perfection_timing = 2 #1⇒遭遇時、2⇒撃破時

  29.   #フォントサイズ
  30.   C_font_size = 18

  31. #===魔物図鑑設定================================================================

  32.   #番号の表示
  33.   M_id_display            = true
  34.   M_id_display_x          = 0
  35.   M_id_display_y          = 0
  36.   M_id_display_width      = 60
  37.   M_id_display_digit      = 3 #桁数

  38.   #名前の表示
  39.   M_name_display          = true
  40.   M_name_display_x        = 84
  41.   M_name_display_y        = 0
  42.   M_name_display_width    = 172

  43.   #画像の表示
  44.   M_pic_display           = true
  45.   M_pic_display_x         = 140
  46.   M_pic_display_y         = 380
  47.   M_pic_display_opacity   = 255 #画像の不透明度

  48.   #最大HPの表示
  49.   M_mhp_display           = true
  50.   M_mhp_display_x         = 0
  51.   M_mhp_display_y         = 33
  52.   M_mhp_display_width     = 136

  53.   #最大MPの表示
  54.   M_mmp_display           = true
  55.   M_mmp_display_x         = 150
  56.   M_mmp_display_y         = 33
  57.   M_mmp_display_width     = 136

  58.   #攻撃力の表示
  59.   M_atk_display           = true
  60.   M_atk_display_x         = 0
  61.   M_atk_display_y         = 51
  62.   M_atk_display_width     = 136

  63.   #防御力の表示
  64.   M_def_display           = true
  65.   M_def_display_x         = 150
  66.   M_def_display_y         = 51
  67.   M_def_display_width     = 136

  68.   #魔法力の表示
  69.   M_mat_display           = true
  70.   M_mat_display_x         = 0
  71.   M_mat_display_y         = 69
  72.   M_mat_display_width     = 136

  73.   #魔法防御の表示
  74.   M_mdf_display           = true
  75.   M_mdf_display_x         = 150
  76.   M_mdf_display_y         = 69
  77.   M_mdf_display_width     = 136

  78.   #敏捷性の表示
  79.   M_agi_display           = true
  80.   M_agi_display_x         = 0
  81.   M_agi_display_y         = 87
  82.   M_agi_display_width     = 136

  83.   #運の表示
  84.   M_luk_display           = true
  85.   M_luk_display_x         = 150
  86.   M_luk_display_y         = 87
  87.   M_luk_display_width     = 136

  88.   #特徴の表示
  89.   M_feature_display       = true
  90.   M_feature_display_x     = 0
  91.   M_feature_display_y     = 114
  92.   M_feature_display_width = 286
  93.   M_feature_display_text1 = "功能"
  94.   M_feature_display_text2 = "-"

  95.   #経験値の表示
  96.   M_exp_display           = true
  97.   M_exp_display_x         = 0
  98.   M_exp_display_y         = 213
  99.   M_exp_display_width     = 136
  100.   M_exp_display_text1     = "经验值"

  101.   #お金の表示
  102.   M_gold_display          = true
  103.   M_gold_display_x        = 150
  104.   M_gold_display_y        = 213
  105.   M_gold_display_width    = 136
  106.   M_gold_display_text1    = "货币"

  107.   #ドロップアイテムの表示
  108.   M_drop_display          = true
  109.   M_drop_display_x        = 0
  110.   M_drop_display_y        = 240
  111.   M_drop_display_width    = 286
  112.   M_drop_display_text1    = "掉落物品"
  113.   M_drop_display_text2    = "无"

  114.   #説明の表示
  115.   M_help_display          = true
  116.   M_help_display_x        = 0
  117.   M_help_display_y        = 321
  118.   M_help_display_width    = 286
  119.   M_help_display_text1    = "说明"
  120.   M_help_display_text2    = "-"

  121.   #撃破数の表示
  122.   M_geno_display          = true
  123.   M_geno_display_x        = 320
  124.   M_geno_display_y        = 321
  125.   M_geno_display_width    = 100
  126.   M_geno_display_text1    = "击破数"

  127. end
  128. #-------------------------------------------------------------------------------
  129. # ★ 初期設定おわり
  130. #-------------------------------------------------------------------------------
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
641 小时
注册时间
2015-7-29
帖子
211
3
发表于 2015-11-3 14:05:04 | 只看该作者
  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. # ■ WD_monsterdictionary
  15. #------------------------------------------------------------------------------
  16. #  魔物図鑑用の共通メソッドです。
  17. #==============================================================================

  18. module WD_monsterdictionary



  19.   def m_dictionary_encount_switch_on(id)
  20.     $game_system.m_dic_encount_sw = [] if $game_system.m_dic_encount_sw == nil
  21.     $game_system.m_dic_encount_sw[id] = false if $game_system.m_dic_encount_sw[id] == nil
  22.     $game_system.m_dic_encount_sw[id] = true
  23.   end
  24.   def m_dictionary_encount_switch_off(id)
  25.     $game_system.m_dic_encount_sw = [] if $game_system.m_dic_encount_sw == nil
  26.     $game_system.m_dic_encount_sw[id] = false if $game_system.m_dic_encount_sw[id] == nil
  27.     $game_system.m_dic_encount_sw[id] = false
  28.   end
  29.   def m_dictionary_encount_switch_on?(id)
  30.     $game_system.m_dic_encount_sw = [] if $game_system.m_dic_encount_sw == nil
  31.     $game_system.m_dic_encount_sw[id] = false if $game_system.m_dic_encount_sw[id] == nil
  32.     return $game_system.m_dic_encount_sw[id]
  33.   end
  34.   def m_dictionary_victory_switch_on(id)
  35.     $game_system.m_dic_victory_sw = [] if $game_system.m_dic_victory_sw == nil
  36.     $game_system.m_dic_victory_sw[id] = false if $game_system.m_dic_victory_sw[id] == nil
  37.     $game_system.m_dic_victory_sw[id] = true
  38.   end
  39.   def m_dictionary_victory_switch_off(id)
  40.     $game_system.m_dic_victory_sw = [] if $game_system.m_dic_victory_sw == nil
  41.     $game_system.m_dic_victory_sw[id] = false if $game_system.m_dic_victory_sw[id] == nil
  42.     $game_system.m_dic_victory_sw[id] = false
  43.   end
  44.   def m_dictionary_victory_switch_on?(id)
  45.     $game_system.m_dic_victory_sw = [] if $game_system.m_dic_victory_sw == nil
  46.     $game_system.m_dic_victory_sw[id] = false if $game_system.m_dic_victory_sw[id] == nil
  47.     return $game_system.m_dic_victory_sw[id]
  48.   end
  49.   def m_dictionary_drop_switch_on(id, n)
  50.     $game_system.m_dic_drop_sw = [] if $game_system.m_dic_drop_sw == nil
  51.     $game_system.m_dic_drop_sw[id] = [] if $game_system.m_dic_drop_sw[id] == nil
  52.     $game_system.m_dic_drop_sw[id][n] = false if $game_system.m_dic_drop_sw[id][n] == nil
  53.     $game_system.m_dic_drop_sw[id][n] = true
  54.   end
  55.   def m_dictionary_drop_switch_off(id, n)
  56.     $game_system.m_dic_drop_sw = [] if $game_system.m_dic_drop_sw == nil
  57.     $game_system.m_dic_drop_sw[id] = [] if $game_system.m_dic_drop_sw[id] == nil
  58.     $game_system.m_dic_drop_sw[id][n] = false if $game_system.m_dic_drop_sw[id][n] == nil
  59.     $game_system.m_dic_drop_sw[id][n] = false
  60.   end
  61.   def m_dictionary_drop_switch_on?(id, n)
  62.     $game_system.m_dic_drop_sw = [] if $game_system.m_dic_drop_sw == nil
  63.     $game_system.m_dic_drop_sw[id] = [] if $game_system.m_dic_drop_sw[id] == nil
  64.     $game_system.m_dic_drop_sw[id][n] = false if $game_system.m_dic_drop_sw[id][n] == nil
  65.     return $game_system.m_dic_drop_sw[id][n]
  66.   end
  67.   def m_dictionary_genoside_number_add(id, n)
  68.     $game_system.m_dic_genoside_num = [] if $game_system.m_dic_genoside_num == nil
  69.     $game_system.m_dic_genoside_num[id] = 0 if $game_system.m_dic_genoside_num[id] == nil
  70.     $game_system.m_dic_genoside_num[id] += n
  71.   end
  72.   def m_dictionary_genoside_number(id)
  73.     $game_system.m_dic_genoside_num = [] if $game_system.m_dic_genoside_num == nil
  74.     $game_system.m_dic_genoside_num[id] = 0 if $game_system.m_dic_genoside_num[id] == nil
  75.     return $game_system.m_dic_genoside_num[id]
  76.   end

  77.   def print_dictionary?(enemy)
  78.     if enemy != nil
  79.       if enemy.name.size > 0
  80.         hantei = /<图鉴无效>/ =~ enemy.note
  81.         if hantei == nil
  82.           return true
  83.         end
  84.       end
  85.     end
  86.     return false
  87.   end
  88.   def monster_dictionary_perfection
  89.     dic_max = 0
  90.     dic_num = 0
  91.     $data_enemies.each do |enemy|
  92.       if print_dictionary?(enemy)
  93.         dic_max += 1
  94.         if WD_monsterdictionary_layout::Perfection_timing == 1
  95.           if m_dictionary_encount_switch_on?(enemy.id) == true
  96.             dic_num += 1
  97.           end
  98.         elsif WD_monsterdictionary_layout::Perfection_timing == 2
  99.           if m_dictionary_victory_switch_on?(enemy.id) == true
  100.             dic_num += 1
  101.           end
  102.         end
  103.       end
  104.     end
  105.     return (100*dic_num)/dic_max
  106.   end
  107. end

  108. class Game_Interpreter
  109.   include WD_monsterdictionary
  110. end

  111. class Game_System
  112.   #--------------------------------------------------------------------------
  113.   # ● 公開インスタンス変数
  114.   #--------------------------------------------------------------------------
  115.   attr_accessor :m_dic_encount_sw
  116.   attr_accessor :m_dic_victory_sw
  117.   attr_accessor :m_dic_drop_sw
  118.   attr_accessor :m_dic_genoside_num
  119.   #--------------------------------------------------------------------------
  120.   # ● オブジェクト初期化
  121.   #--------------------------------------------------------------------------
  122.   alias wd_orig_initialize002 initialize
  123.   def initialize
  124.     wd_orig_initialize002
  125.     @m_dic_encount_sw = []
  126.     @m_dic_victory_sw = []
  127.     @m_dic_drop_sw = []
  128.     @m_dic_genoside_num = []
  129.   end
  130. end

  131. class Game_Troop < Game_Unit
  132.   include WD_monsterdictionary
  133.   #--------------------------------------------------------------------------
  134.   # ● 図鑑への登録(遭遇済み判定)
  135.   #--------------------------------------------------------------------------
  136.   def dictionary1
  137.     for enemy in members
  138.       m_dictionary_encount_switch_on(enemy.enemy_id) unless enemy.hidden? #遭遇済み図鑑登録
  139.     end
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● 図鑑への登録(撃破済み判定)
  143.   #--------------------------------------------------------------------------
  144.   def dictionary2
  145.     for enemy in dead_members
  146.       m_dictionary_victory_switch_on(enemy.enemy_id) unless enemy.hidden? #撃破済み図鑑登録
  147.       m_dictionary_genoside_number_add(enemy.enemy_id, 1) unless enemy.hidden? #撃破数カウント
  148.     end
  149.   end
  150. end

  151. class << BattleManager
  152.   #--------------------------------------------------------------------------
  153.   # ● 戦闘開始
  154.   #--------------------------------------------------------------------------
  155.   alias wd_orig_battle_start002 battle_start
  156.   def battle_start
  157.     wd_orig_battle_start002
  158.     $game_troop.dictionary1 #図鑑への登録(遭遇済み判定)
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ● 勝利の処理
  162.   #--------------------------------------------------------------------------
  163.   alias wd_orig_process_victory002 process_victory
  164.   def process_victory
  165.     $game_troop.dictionary2 #図鑑への登録(撃破済み判定)
  166.     wd_orig_process_victory002
  167.   end
  168. end

  169. class Game_Interpreter
  170.   #--------------------------------------------------------------------------
  171.   # ● 敵キャラの出現
  172.   #--------------------------------------------------------------------------
  173.   alias wd_orig_command_335_002 command_335
  174.   def command_335
  175.     wd_orig_command_335_002
  176.     $game_troop.dictionary1 #図鑑への登録(遭遇済み判定)
  177.   end
  178. end

  179. class Game_Enemy < Game_Battler
  180.   include WD_monsterdictionary
  181.   #--------------------------------------------------------------------------
  182.   # ● ドロップアイテムの配列作成(再定義)
  183.   #--------------------------------------------------------------------------
  184.   def make_drop_items
  185.     n = -1
  186.     enemy.drop_items.inject([]) do |r, di|
  187.       n += 1
  188.       if di.kind > 0 && rand * di.denominator < drop_item_rate
  189.         m_dictionary_drop_switch_on(@enemy_id, n)
  190.         r.push(item_object(di.kind, di.data_id))
  191.       else
  192.         r
  193.       end
  194.     end
  195.   end
  196. end

  197. #==============================================================================
  198. # ■ Scene_MonsterDictionary
  199. #------------------------------------------------------------------------------
  200. #  魔物図鑑画面の処理を行うクラスです。
  201. #==============================================================================

  202. class Scene_MonsterDictionary < Scene_ItemBase
  203.   #--------------------------------------------------------------------------
  204.   # ● 開始処理
  205.   #--------------------------------------------------------------------------
  206.   def start
  207.     super

  208.     create_status_window
  209.     create_item_window
  210.     create_perfection_window
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ● アイテムウィンドウの作成
  214.   #--------------------------------------------------------------------------
  215.   def create_item_window
  216.     wy = 0
  217.     wh = Graphics.height - 48
  218.     @item_window = Window_MonsterDictionaryList.new(Graphics.width-172-48, wy, 172+48, wh)
  219.     @item_window.viewport = @viewport
  220.     @item_window.status_window = @status_window
  221.     @item_window.set_handler(:cancel, method(:return_scene))
  222.     @item_window.update_help
  223.   end

  224.   def return_scene
  225.     $game_map.autoplay
  226.     SceneManager.return
  227.   end

  228.   #--------------------------------------------------------------------------
  229.   # ● アイテムステータスウィンドウの作成
  230.   #--------------------------------------------------------------------------
  231.   def create_status_window
  232.     wy = 0
  233.     wh = Graphics.height
  234.     @status_window = Window_MonsterDictionaryStatus.new(0, wy, Graphics.width-172-48, wh)
  235.     @status_window.viewport = @viewport
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 図鑑完成度ウィンドウの作成
  239.   #--------------------------------------------------------------------------
  240.   def create_perfection_window
  241.     wy = @item_window.y + @item_window.height
  242.     wh = 48
  243.     @perfection_window = Window_MonsterDictionaryPerfection.new(Graphics.width-172-48, wy, 172+48, wh)
  244.     @perfection_window.viewport = @viewport
  245.   end
  246. end


  247. #==============================================================================
  248. # ■ Window_MonsterDictionaryList
  249. #------------------------------------------------------------------------------
  250. #  魔物図鑑画面で、魔物の一覧を表示するウィンドウです。
  251. #==============================================================================

  252. class Window_MonsterDictionaryList < Window_Selectable
  253.   include WD_monsterdictionary
  254.   #--------------------------------------------------------------------------
  255.   # ● オブジェクト初期化
  256.   #--------------------------------------------------------------------------
  257.   def initialize(x, y, width, height)
  258.     super
  259.     @data = []
  260.     refresh
  261.     activate
  262.     select(0)
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ● 桁数の取得
  266.   #--------------------------------------------------------------------------
  267.   def col_max
  268.     return 1
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 項目数の取得
  272.   #--------------------------------------------------------------------------
  273.   def item_max
  274.     @data ? @data.size : 1
  275.   end
  276.   #--------------------------------------------------------------------------
  277.   # ● アイテムの取得
  278.   #--------------------------------------------------------------------------
  279.   def enemy
  280.     @data && index >= 0 ? @data[index] : nil
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ● アイテムリストの作成
  284.   #--------------------------------------------------------------------------
  285.   def make_item_list
  286.     @data = []
  287.     $data_enemies.each do |enemy|
  288.       if print_dictionary?(enemy)
  289.         @data.push(enemy)
  290.       end
  291.     end
  292.   end
  293.   #--------------------------------------------------------------------------
  294.   # ● 項目の描画
  295.   #--------------------------------------------------------------------------
  296.   def draw_item(index)
  297.     enemy = @data[index]
  298.     if enemy
  299.       rect = item_rect(index)
  300.       rect.width -= 4
  301.       if m_dictionary_encount_switch_on?(enemy.id)
  302.         change_color(normal_color, true)
  303.         draw_text(rect.x, rect.y, 172, line_height, enemy.name)
  304.       else
  305.         change_color(normal_color, false)
  306.         draw_text(rect.x, rect.y, 172, line_height, "无数据")
  307.       end
  308.     end
  309.   end
  310.   #--------------------------------------------------------------------------
  311.   # ● ヘルプウィンドウ更新メソッドの呼び出し
  312.   #--------------------------------------------------------------------------
  313.   def call_update_help
  314.     update_help if active
  315.   end
  316.   #--------------------------------------------------------------------------
  317.   # ● ヘルプテキスト更新
  318.   #--------------------------------------------------------------------------
  319.   def update_help
  320.     if @status_window
  321.       if m_dictionary_encount_switch_on?(enemy.id)
  322.         @status_window.set_item(enemy, @index, true)
  323.       else
  324.         @status_window.set_item(enemy, @index, false)
  325.       end
  326.     end
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # ● リフレッシュ
  330.   #--------------------------------------------------------------------------
  331.   def refresh
  332.     make_item_list
  333.     create_contents
  334.     draw_all_items
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● ステータスウィンドウの設定
  338.   #--------------------------------------------------------------------------
  339.   def status_window=(status_window)
  340.     @status_window = status_window
  341.   end
  342. end

  343. #==============================================================================
  344. # ■ Window_MonsterDictionaryPerfection
  345. #------------------------------------------------------------------------------
  346. #  魔物図鑑画面で、図鑑の完成度を表示するウィンドウです。
  347. #==============================================================================

  348. class Window_MonsterDictionaryPerfection < Window_Selectable
  349.   include WD_monsterdictionary
  350.   #--------------------------------------------------------------------------
  351.   # ● オブジェクト初期化
  352.   #--------------------------------------------------------------------------
  353.   def initialize(x, y, width, height)
  354.     super
  355.     refresh(width)
  356.   end
  357.   #--------------------------------------------------------------------------
  358.   # ● リフレッシュ
  359.   #--------------------------------------------------------------------------
  360.   def refresh(width)
  361.     contents.clear
  362.     draw_text(0, 0, width-24, line_height, "图鉴完成度: #{monster_dictionary_perfection} %", 1)
  363.   end
  364. end


  365. #==============================================================================
  366. # ■ Window_MonsterDictionaryStatus
  367. #------------------------------------------------------------------------------
  368. #  魔物図鑑画面で、エネミーの詳細を表示するウィンドウです。
  369. #==============================================================================

  370. class Window_MonsterDictionaryStatus < Window_Selectable
  371.   include WD_monsterdictionary
  372.   #--------------------------------------------------------------------------
  373.   # ● オブジェクト初期化
  374.   #--------------------------------------------------------------------------
  375.   def initialize(x, y, width, height)
  376.     super
  377.     @enemy = nil
  378.     refresh
  379.   end
  380.   #--------------------------------------------------------------------------
  381.   # ● アイテムの設定
  382.   #--------------------------------------------------------------------------
  383.   def set_item(enemy, index=-1, print=false)
  384.     return if ((@enemy == enemy) and (@index == index))
  385.     @enemy = enemy
  386.     @index = index
  387.     @print = print
  388.     refresh
  389.   end
  390.   #--------------------------------------------------------------------------
  391.   # ● アイテムオブジェクトの取得,掉落物取得
  392.   #--------------------------------------------------------------------------
  393.   def item_object(kind, data_id)
  394.     return $data_items  [data_id] if kind == 1
  395.     return $data_weapons[data_id] if kind == 2
  396.     return $data_armors [data_id] if kind == 3
  397.     return nil
  398.   end
  399.   #--------------------------------------------------------------------------
  400.   # ● リフレッシュ
  401.   #--------------------------------------------------------------------------
  402.   def refresh
  403.     contents.clear
  404.     contents.font.size = 24

  405.     if @print

  406.       if WD_monsterdictionary_layout::M_id_display
  407.         text1  = sprintf("%0#{WD_monsterdictionary_layout::M_id_display_digit}d",@index+1)
  408.         x      = WD_monsterdictionary_layout::M_id_display_x
  409.         y      = WD_monsterdictionary_layout::M_id_display_y
  410.         width  = WD_monsterdictionary_layout::M_id_display_width
  411.         height = line_height
  412.         draw_text(x, y, width, height, text1, 0)
  413.       end
  414.       if WD_monsterdictionary_layout::M_name_display
  415.         text1  = @enemy.name
  416.         x      = WD_monsterdictionary_layout::M_name_display_x
  417.         y      = WD_monsterdictionary_layout::M_name_display_y
  418.         width  = WD_monsterdictionary_layout::M_name_display_width
  419.         height = line_height
  420.         draw_text(x, y, width, height, text1, 0)
  421.       end
  422.       if WD_monsterdictionary_layout::M_pic_display
  423.         pic_name = @enemy.battler_name
  424.         pic_hue  = @enemy.battler_hue
  425.         x      = WD_monsterdictionary_layout::M_pic_display_x
  426.         y      = WD_monsterdictionary_layout::M_pic_display_y
  427.         opacity= WD_monsterdictionary_layout::M_pic_display_opacity
  428.         bitmap = Cache.battler(pic_name, pic_hue)
  429.         rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  430.         contents.blt(x - rect.width/2, y - rect.height, bitmap, rect, opacity)
  431.       end

  432.       font_size = WD_monsterdictionary_layout::C_font_size
  433.       contents.font.size = font_size
  434.       if WD_monsterdictionary_layout::M_mhp_display
  435.         text1  = Vocab::param(0)
  436.         text2  = "?"
  437.         text2  = @enemy.params[0] if m_dictionary_victory_switch_on?(@enemy.id)
  438.         x      = WD_monsterdictionary_layout::M_mhp_display_x
  439.         y      = WD_monsterdictionary_layout::M_mhp_display_y
  440.         width  = WD_monsterdictionary_layout::M_mhp_display_width
  441.         change_color(system_color)
  442.         draw_text(x, y, width, font_size, text1, 0)
  443.         change_color(normal_color)
  444.         draw_text(x, y, width, font_size, text2, 2)
  445.       end
  446.       if WD_monsterdictionary_layout::M_mmp_display
  447.         text1  = Vocab::param(1)
  448.         text2  = "?"
  449.         text2  = @enemy.params[1] if m_dictionary_victory_switch_on?(@enemy.id)
  450.         x      = WD_monsterdictionary_layout::M_mmp_display_x
  451.         y      = WD_monsterdictionary_layout::M_mmp_display_y
  452.         width  = WD_monsterdictionary_layout::M_mmp_display_width
  453.         change_color(system_color)
  454.         draw_text(x, y, width, font_size, text1, 0)
  455.         change_color(normal_color)
  456.         draw_text(x, y, width, font_size, text2, 2)
  457.       end
  458.       if WD_monsterdictionary_layout::M_atk_display
  459.         text1  = Vocab::param(2)
  460.         text2  = "?"
  461.         text2  = @enemy.params[2] if m_dictionary_victory_switch_on?(@enemy.id)
  462.         x      = WD_monsterdictionary_layout::M_atk_display_x
  463.         y      = WD_monsterdictionary_layout::M_atk_display_y
  464.         width  = WD_monsterdictionary_layout::M_atk_display_width
  465.         change_color(system_color)
  466.         draw_text(x, y, width, font_size, text1, 0)
  467.         change_color(normal_color)
  468.         draw_text(x, y, width, font_size, text2, 2)
  469.       end
  470.       if WD_monsterdictionary_layout::M_def_display
  471.         text1  = Vocab::param(3)
  472.         text2  = "?"
  473.         text2  = @enemy.params[3] if m_dictionary_victory_switch_on?(@enemy.id)
  474.         x      = WD_monsterdictionary_layout::M_def_display_x
  475.         y      = WD_monsterdictionary_layout::M_def_display_y
  476.         width  = WD_monsterdictionary_layout::M_def_display_width
  477.         change_color(system_color)
  478.         draw_text(x, y, width, font_size, text1, 0)
  479.         change_color(normal_color)
  480.         draw_text(x, y, width, font_size, text2, 2)
  481.       end
  482.       if WD_monsterdictionary_layout::M_mat_display
  483.         text1  = Vocab::param(4)
  484.         text2  = "?"
  485.         text2  = @enemy.params[4] if m_dictionary_victory_switch_on?(@enemy.id)
  486.         x      = WD_monsterdictionary_layout::M_mat_display_x
  487.         y      = WD_monsterdictionary_layout::M_mat_display_y
  488.         width  = WD_monsterdictionary_layout::M_mat_display_width
  489.         change_color(system_color)
  490.         draw_text(x, y, width, font_size, text1, 0)
  491.         change_color(normal_color)
  492.         draw_text(x, y, width, font_size, text2, 2)
  493.       end
  494.       if WD_monsterdictionary_layout::M_mdf_display
  495.         text1  = Vocab::param(5)
  496.         text2  = "?"
  497.         text2  = @enemy.params[5] if m_dictionary_victory_switch_on?(@enemy.id)
  498.         x      = WD_monsterdictionary_layout::M_mdf_display_x
  499.         y      = WD_monsterdictionary_layout::M_mdf_display_y
  500.         width  = WD_monsterdictionary_layout::M_mdf_display_width
  501.         change_color(system_color)
  502.         draw_text(x, y, width, font_size, text1, 0)
  503.         change_color(normal_color)
  504.         draw_text(x, y, width, font_size, text2, 2)
  505.       end
  506.       if WD_monsterdictionary_layout::M_agi_display
  507.         text1  = Vocab::param(6)
  508.         text2  = "?"
  509.         text2  = @enemy.params[6] if m_dictionary_victory_switch_on?(@enemy.id)
  510.         x      = WD_monsterdictionary_layout::M_agi_display_x
  511.         y      = WD_monsterdictionary_layout::M_agi_display_y
  512.         width  = WD_monsterdictionary_layout::M_agi_display_width
  513.         change_color(system_color)
  514.         draw_text(x, y, width, font_size, text1, 0)
  515.         change_color(normal_color)
  516.         draw_text(x, y, width, font_size, text2, 2)
  517.       end
  518.       if WD_monsterdictionary_layout::M_luk_display
  519.         text1  = Vocab::param(7)
  520.         text2  = "?"
  521.         text2  = @enemy.params[7] if m_dictionary_victory_switch_on?(@enemy.id)
  522.         x      = WD_monsterdictionary_layout::M_luk_display_x
  523.         y      = WD_monsterdictionary_layout::M_luk_display_y
  524.         width  = WD_monsterdictionary_layout::M_luk_display_width
  525.         change_color(system_color)
  526.         draw_text(x, y, width, font_size, text1, 0)
  527.         change_color(normal_color)
  528.         draw_text(x, y, width, font_size, text2, 2)
  529.       end
  530.       if WD_monsterdictionary_layout::M_feature_display
  531.         text1  = WD_monsterdictionary_layout::M_feature_display_text1
  532.         text2  = "?"
  533.         text2  = WD_monsterdictionary_layout::M_feature_display_text2 if m_dictionary_victory_switch_on?(@enemy.id)
  534.         x      = WD_monsterdictionary_layout::M_feature_display_x
  535.         y      = WD_monsterdictionary_layout::M_feature_display_y
  536.         width  = WD_monsterdictionary_layout::M_feature_display_width
  537.         change_color(system_color)
  538.         draw_text(x, y, width, font_size, text1, 0)
  539.         change_color(normal_color)
  540.         i = 0
  541.         if m_dictionary_victory_switch_on?(@enemy.id)
  542.           @enemy.note.scan(/<图鉴功能:(.*)>/){|matched|
  543.             i += 1
  544.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
  545.           }
  546.         end
  547.         if i == 0
  548.           self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
  549.         end
  550.       end
  551.       if WD_monsterdictionary_layout::M_exp_display
  552.         text1  = WD_monsterdictionary_layout::M_exp_display_text1
  553.         text2  = "?"
  554.         text2  = @enemy.exp if m_dictionary_victory_switch_on?(@enemy.id)
  555.         x      = WD_monsterdictionary_layout::M_exp_display_x
  556.         y      = WD_monsterdictionary_layout::M_exp_display_y
  557.         width  = WD_monsterdictionary_layout::M_exp_display_width
  558.         change_color(system_color)
  559.         draw_text(x, y, width, font_size, text1, 0)
  560.         change_color(normal_color)
  561.         draw_text(x, y, width, font_size, text2, 2)
  562.       end
  563.       if WD_monsterdictionary_layout::M_gold_display
  564.         text1  = WD_monsterdictionary_layout::M_gold_display_text1
  565.         text2  = "?"
  566.         text2  = @enemy.gold if m_dictionary_victory_switch_on?(@enemy.id)
  567.         text3  = Vocab::currency_unit
  568.         x      = WD_monsterdictionary_layout::M_gold_display_x
  569.         y      = WD_monsterdictionary_layout::M_gold_display_y
  570.         width  = WD_monsterdictionary_layout::M_gold_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_monsterdictionary_layout::M_drop_display
  581.         text1  = WD_monsterdictionary_layout::M_drop_display_text1
  582.         text2  = WD_monsterdictionary_layout::M_drop_display_text2 if m_dictionary_victory_switch_on?(@enemy.id)
  583.         x      = WD_monsterdictionary_layout::M_drop_display_x
  584.         y      = WD_monsterdictionary_layout::M_drop_display_y
  585.         width  = WD_monsterdictionary_layout::M_drop_display_width
  586.         change_color(system_color)
  587.         draw_text(x, y, width, font_size, text1, 0)
  588.         change_color(normal_color)
  589.         i = 0
  590.         @enemy.drop_items.each do |di|
  591.           if di.kind > 0
  592.             i += 1
  593.             item = item_object(di.kind, di.data_id)
  594.             n = i -1
  595.             if m_dictionary_drop_switch_on?(@enemy.id, n)
  596.               text2 = item.name
  597.               text3 = "1/#{di.denominator}"
  598.             else
  599.               text2  = "无数据"
  600.               text3  = ""
  601.             end
  602.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, text2, 0)
  603.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, text3, 2)
  604.           end
  605.         end
  606.         if i == 0
  607.           self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
  608.         end
  609.       end
  610.       if WD_monsterdictionary_layout::M_help_display
  611.         text1  = WD_monsterdictionary_layout::M_help_display_text1
  612.         text2  = "?"
  613.         text2  = WD_monsterdictionary_layout::M_help_display_text2 if m_dictionary_victory_switch_on?(@enemy.id)
  614.         x      = WD_monsterdictionary_layout::M_help_display_x
  615.         y      = WD_monsterdictionary_layout::M_help_display_y
  616.         width  = WD_monsterdictionary_layout::M_help_display_width
  617.         change_color(system_color)
  618.         draw_text(x, y, width, font_size, text1, 0)
  619.         change_color(normal_color)
  620.         i = 0
  621.         if m_dictionary_victory_switch_on?(@enemy.id)
  622.           @enemy.note.scan(/<图鉴说明:(.*)>/){|matched|
  623.             i += 1
  624.             self.contents.draw_text(x + font_size, y + font_size * i, width - font_size, font_size, matched[0], 0)
  625.           }
  626.         end
  627.         if i == 0
  628.           self.contents.draw_text(x + font_size, y + font_size, width - font_size, font_size, text2, 0)
  629.         end
  630.       end
  631.       if WD_monsterdictionary_layout::M_geno_display
  632.         text1  = WD_monsterdictionary_layout::M_geno_display_text1
  633.         text2  = "#{m_dictionary_genoside_number(@enemy.id)}"
  634.         x      = WD_monsterdictionary_layout::M_geno_display_x
  635.         y      = WD_monsterdictionary_layout::M_geno_display_y
  636.         width  = WD_monsterdictionary_layout::M_geno_display_width
  637.         change_color(system_color)
  638.         draw_text(x, y, width, font_size, text1, 0)
  639.         change_color(normal_color)
  640.         draw_text(x, y, width, font_size, text2, 2)
  641.       end

  642.     elsif @enemy != nil

  643.       if WD_monsterdictionary_layout::M_id_display
  644.         text1  = sprintf("%0#{WD_monsterdictionary_layout::M_id_display_digit}d",@index+1)
  645.         x      = WD_monsterdictionary_layout::M_id_display_x
  646.         y      = WD_monsterdictionary_layout::M_id_display_y
  647.         width  = WD_monsterdictionary_layout::M_id_display_width
  648.         height = line_height
  649.         draw_text(x, y, width, height, text1, 0)
  650.       end
  651.       if WD_monsterdictionary_layout::M_name_display
  652.         text1  = "- ???? -"
  653.         x      = WD_monsterdictionary_layout::M_name_display_x
  654.         y      = WD_monsterdictionary_layout::M_name_display_y
  655.         width  = WD_monsterdictionary_layout::M_name_display_width
  656.         height = line_height
  657.         draw_text(x, y, width, height, text1, 0)
  658.       end

  659.     end
  660.   end
  661. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
641 小时
注册时间
2015-7-29
帖子
211
4
发表于 2015-11-3 14:05:32 | 只看该作者
  1. #==============================================================================
  2. #  菜单画面
  3. #==============================================================================
  4. class Scene_Menu < Scene_MenuBase
  5.   #--------------------------------------------------------------------------
  6.   # alias 给 create_command_window 方法取个别名 尽量命名独特不容易重名
  7.   #--------------------------------------------------------------------------
  8.   alias miao_20150812_create_1 create_command_window
  9.   #--------------------------------------------------------------------------
  10.   # ● 生成指令窗口
  11.   #--------------------------------------------------------------------------
  12.   def create_command_window
  13.     miao_20150812_create_1
  14.     @command_window.set_handler(:neko_commands1,    method(:command_neko1))
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 按钮所执行的内容方法名与上面的 method() 里的符号对应
  18.   #--------------------------------------------------------------------------
  19.   def command_neko1
  20.     #通常指令内容是呼出场景
  21.     SceneManager.call(Scene_MonsterDictionary)
  22.     #但是按钮按下去的效果不一定局限于切换场景
  23.   end
  24. end
  25. #==============================================================================
  26. #  菜单画面中显示指令的窗口
  27. #==============================================================================
  28. class Window_MenuCommand < Window_Command
  29.   alias miao_20150812_aoc add_original_commands
  30.   #--------------------------------------------------------------------------
  31.   # ● 独自添加指令用
  32.   #--------------------------------------------------------------------------
  33.   def add_original_commands
  34.     miao_20150812_aoc
  35.     add_command("怪物图鉴", :neko_commands1, main_commands_enabled)#添加按钮
  36. =begin
  37.     add_command()里的3个参数依次为:
  38.                   ● name:选项的名称,在描绘选项时使用
  39.                   ● symbol:选项的符号,这是一个标志与上面set_handler里对应
  40.                   ● enabled:有效状态,当值为 false 时选项无效且用半透明绘制
  41. =end
  42.   end
  43. end
复制代码

评分

参与人数 2星屑 +210 收起 理由
taroxd + 200 认可答案
一只老牛王 + 10 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
251 小时
注册时间
2015-5-14
帖子
453
5
发表于 2015-11-3 20:08:11 | 只看该作者
↑你连了3贴,知道代码框不知道用一楼全发完吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 23:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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