Project1

标题: 如何将原本的图鉴脚本改成这种样式? [打印本页]

作者: 眼中目之瞳    时间: 2016-11-24 09:48
标题: 如何将原本的图鉴脚本改成这种样式?
本帖最后由 眼中目之瞳 于 2016-11-25 12:46 编辑

https://rpg.blue/forum.php?mod=v ... p;extra=&page=1


的敌人图鉴,在回复中出现的另一种样式,不过暂时没有放出脚本(这一暂就是……4年- -b)
怎样才能改成他的样式呢?
改了一个MP问题的文件:
Project1.rar (1.43 MB, 下载次数: 82)
魔物图鉴说明文



作者: VIPArcher    时间: 2016-11-25 11:38
本帖最后由 VIPArcher 于 2016-11-25 11:39 编辑
  1. class Window_EnemyDetail < Window_Base
  2.   alias vip20161125_initialize initialize
  3.   def initialize
  4.     vip20161125_initialize
  5.     self.x,self.width = 0,Graphics.width
  6.     create_contents; deactivate
  7.   end
  8.   #--------------------------------------------------------------------------
  9.   # ● 窗口半刷新(这个绘制的部分最好自己从新改一下坐标什么的)
  10.   #--------------------------------------------------------------------------
  11.   def partial_refresh
  12.     return unless @enemy # 无敌人时返回
  13.     rect = Rect.new(ENEMY_IMAGE_MAX_WIDTH+8, 0,
  14.       contents.width-(ENEMY_IMAGE_MAX_WIDTH+8), contents.height-line_height)
  15.     contents.clear_rect(rect)
  16.     if ENEMY_MORE_INFO && @partial
  17.       Sound.play_cursor
  18.       draw_other_info
  19.       @partial = false
  20.     else
  21.       draw_enemy_hp(ENEMY_IMAGE_MAX_WIDTH+8, 0) # 绘制敌人体力
  22.       draw_enemy_mp(ENEMY_IMAGE_MAX_WIDTH+8, line_height) # 绘制敌人魔力
  23.       2.upto(7){ |n|
  24.         draw_enemy_param(ENEMY_IMAGE_MAX_WIDTH+8, line_height*n, n) # 绘制敌人能力
  25.       }
  26.       draw_enemy_gold(ENEMY_IMAGE_MAX_WIDTH+8, line_height*8) # 绘制敌人掉落金
  27.       draw_enemy_item(ENEMY_IMAGE_MAX_WIDTH+8, line_height*9) # 绘制敌人掉落物
  28.       @partial = true
  29.     end
  30.   end
  31. end
  32. class Window_EnemyList < Window_ItemList
  33.   alias vip20161125_initialize initialize
  34.   def initialize(*args)
  35.     vip20161125_initialize(*args)
  36.     self.width = Graphics.width
  37.   end
  38.   def col_max; 4 end
  39.   #--------------------------------------------------------------------------
  40.   # ● 获取选择项目的有效状态
  41.   #--------------------------------------------------------------------------
  42.   def current_item_enabled?
  43.     $TEST || $game_party.enemy_percent(item.id) > 0
  44.   end
  45. end
  46. class Scene_List < Scene_Base
  47.   alias vip20161125_create_list_window create_list_window
  48.   def create_list_window
  49.     vip20161125_create_list_window
  50.     @list_window.set_handler(:ok, method(:on_list_ok))
  51.   end
  52.   alias vip20161125_create_detail_window create_detail_window
  53.   def create_detail_window
  54.     vip20161125_create_detail_window
  55.     @detail_window.hide
  56.   end
  57.   #打开列表确定的敌人图鉴
  58.   def on_list_ok
  59.     @list_window.deactivate
  60.     @list_window.hide
  61.     @detail_window.activate
  62.     @detail_window.show
  63.   end
  64.   #敌人图鉴内容窗口取消
  65.   def on_detail_cancel
  66.     @list_window.activate
  67.     @list_window.show
  68.     @detail_window.deactivate
  69.     @detail_window.hide
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 场景更新 (Window_EnemyDetail继承的是Window_Base所以只好覆盖了)
  73.   #--------------------------------------------------------------------------
  74.   def update
  75.     super
  76.     return unless @detail_window.active
  77.     on_list_partial_refersh if Input.trigger?(ENEMY_MORE_INFO_BUTTON)
  78.     enemy_percent_change(:left) if Input.trigger?(:LEFT)
  79.     enemy_percent_change(:right) if Input.trigger?(:RIGHT)
  80.     on_detail_cancel if Input.trigger?(:B)
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 更改敌人辨识度百分比(仅游戏测试时可用)
  84.   #--------------------------------------------------------------------------
  85.   def enemy_percent_change(sym)
  86.     return unless $TEST
  87.     return unless @detail_window.active
  88.     enemy = @detail_window.enemy
  89.     return unless enemy
  90.     $game_party.see_enemy(enemy.id, TEST_PERCENT) if sym == :right
  91.     $game_party.see_enemy(enemy.id, -TEST_PERCENT) if sym == :left
  92.     @list_window.refresh
  93.     @detail_window.enemy = enemy
  94.   end
  95. end
复制代码

你要的补丁,敌人图鉴窗口里面的信息绘制大概需要重新排版一下,我觉得你可以自己做到,努力试试吧




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1