赞 | 0 |
VIP | 40 |
好人卡 | 24 |
积分 | 1 |
经验 | 23627 |
最后登录 | 2020-8-25 |
在线时间 | 869 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 869 小时
- 注册时间
- 2009-3-13
- 帖子
- 782
|
尝试给出【菜单超过8人无法滚动】的解决方案
以以下脚本覆盖原Window_MenuStatus- #==============================================================================
- # ■ Window_MenuStatus
- #------------------------------------------------------------------------------
- # 显示菜单画面和同伴状态的窗口。
- #==============================================================================
- class Window_MenuStatus < Window_Selectable
- attr_accessor :pending_index
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # x : 窗口 X 座标
- # y : 窗口 Y 座标
- #--------------------------------------------------------------------------
- def initialize(x, y)
- super(x, y, 480, Graphics.height)
- @pending_index = -1
- refresh
- self.active = false
- self.index = -1
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- @item_max = $game_party.members.size
- create_contents
- i = 0
- for actor in $game_party.members
- x = 16
- y = actor.index * 48 + 2
- if i == @pending_index
- self.contents.fill_rect(0,y,480,48,Cache.system("Window").get_pixel(80,80))
- end
- draw_actor_name(actor, x+14, y)
- draw_actor_graphic(actor, x, y + 40)
- draw_actor_class(actor, x+14, y+24)
- draw_actor_level(actor, 304, y)
- draw_actor_state(actor, x+64, y)
- draw_actor_hp(actor, x + 64, y + WLH)
- draw_actor_mp(actor, x + 190, y + WLH)
- draw_actor_exp(actor, x + 316, y + WLH)
- i += 1
- @tmp_bmp = self.contents.clone
- end
- end
- def create_contents
- self.contents.dispose
- self.contents = Bitmap.new(width - 32, @item_max * 90)
- end
- #--------------------------------------------------------------------------
- # ● 更新光标
- #--------------------------------------------------------------------------
- def update_cursor
- if @index < 0 # 无光标
- self.cursor_rect.empty
- elsif @index < @item_max # 一般
- @_n = @_n.to_i
- #---------------------------------------------
- #认真的学-向下翻页
- #---------------------------------------------
- if @index * 48+@_n > Graphics.height-96
- create_contents
- @_n = Graphics.height-96-@index * 48
- if @item_max *48 + 96 + @_n < self.height
- self.contents.blt(0,Graphics.height - @tmp_bmp.height,@tmp_bmp,@tmp_bmp.rect)
- @_n = Graphics.height - @tmp_bmp.height
- else
- self.contents.blt(0,@_n,@tmp_bmp,@tmp_bmp.rect)
- end
- self.cursor_rect.set(0,@index * 48 + @_n, contents.width, 48)
- #---------------------------------------------
- #认真的学-向上翻页
- #---------------------------------------------
- elsif @index * 48+@_n < 0
- create_contents
- @_n += -(@index * 48+@_n)
- if @_n > 0
- self.contents.blt(0,0,@tmp_bmp,@tmp_bmp.rect)
- @_n = 0
- else
- self.contents.blt(0,@_n,@tmp_bmp,@tmp_bmp.rect)
- end
- self.cursor_rect.set(0,@index * 48 + @_n, contents.width, 48)
- #---------------------------------------------
- #原版设置
- #---------------------------------------------
- else
- self.cursor_rect.set(0,@index * 48 + @_n, contents.width, 48)
- end
- elsif @index >= 100 # 使用本身
- self.cursor_rect.set(0, (@index - 100) * 48, contents.width, 48)
- else # 全体
- self.cursor_rect.set(0, 0, contents.width, @item_max * 48)
- end
- end
- end
复制代码 尝试给出【战斗人数过多】的解决方案思路
在战斗前备份队员名单,后使除前四名队员外的队员离队。
战斗结束后,根据名单再将离队队员加入。
注意,队员加入时不得初始化。
另外,菜单中角色较长的称号与血条会重合,建议调整一下称号或者血条的显示。 |
|