赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 781 |
最后登录 | 2013-1-14 |
在线时间 | 39 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 39 小时
- 注册时间
- 2012-12-14
- 帖子
- 35
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 LabLamb 于 2012-12-23 10:05 编辑
- #encoding:utf-8
- #==============================================================================
- # ■ Window_Status
- #------------------------------------------------------------------------------
- # 状态画面中,显示角色基本信息的窗口。
- #==============================================================================
- class Window_Status < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 初始化对象
- #--------------------------------------------------------------------------
- def initialize(actor)
- super(0, 0, Graphics.width, Graphics.height)
- [url=home.php?mod=space&uid=95897]@actor[/url] = actor
- refresh
- activate
- end
- #--------------------------------------------------------------------------
- # ● 设置角色
- #--------------------------------------------------------------------------
- def actor=(actor)
- return if [url=home.php?mod=space&uid=95897]@actor[/url] == actor
- [url=home.php?mod=space&uid=95897]@actor[/url] = actor
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- # draw_block1 (line_height * 0)
- # draw_horz_line(line_height * 1)
- draw_block2 (line_height * 0)
- draw_horz_line(line_height * 4)
- # draw_block3 (line_height * 7)
- # draw_horz_line(line_height * 13)
- # draw_block4 (line_height * 14)
- end
- #--------------------------------------------------------------------------
- # ● 绘制区域 1
- #--------------------------------------------------------------------------
- # def draw_block1(y)
- # draw_actor_name(@actor, 4, y)
- # draw_actor_class(@actor, 128, y)
- # draw_actor_nickname(@actor, 288, y)
- # end
- #--------------------------------------------------------------------------
- # ● 绘制区域 2
- #--------------------------------------------------------------------------
- def draw_block2(y)
- draw_actor_face(@actor, 8, y)
- draw_basic_info(136, y)
- # draw_exp_info(304, y)
- end
- #--------------------------------------------------------------------------
- # ● 绘制区域 3
- #--------------------------------------------------------------------------
- # def draw_block3(y)
- # draw_parameters(32, y)
- # draw_equipments(288, y)
- # end
- #--------------------------------------------------------------------------
- # ● 绘制区域 4
- #--------------------------------------------------------------------------
- # def draw_block4(y)
- # draw_description(4, y)
- # end
- #--------------------------------------------------------------------------
- # ● 绘制水平线
- #--------------------------------------------------------------------------
- def draw_horz_line(y)
- line_y = y + line_height / 2 - 1
- contents.fill_rect(0, line_y, contents_width, 2, line_color)
- end
- #--------------------------------------------------------------------------
- # ● 获取水平线的颜色
- #--------------------------------------------------------------------------
- def line_color
- color = normal_color
- color.alpha = 48
- color
- end
- #--------------------------------------------------------------------------
- # ● 绘制基本信息
- #--------------------------------------------------------------------------
- def draw_basic_info(x, y)
- draw_actor_name(@actor, x-2, line_height - 24)
- draw_actor_class(@actor, x-2, line_height)
- draw_actor_icons(@actor, x, y + line_height * 0)
- draw_actor_hp(@actor, x, y + line_height * 2)
- draw_actor_mp(@actor, x, y + line_height * 3)
- draw_parameters(200, y)
- draw_equipments(420, y)
- end
- #--------------------------------------------------------------------------
- # ● 绘制能力值
- #--------------------------------------------------------------------------
- # def draw_parameters(x, y)
- # 6.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
- # end
- #--------------------------------------------------------------------------
- # ● 绘制经验值信息
- #--------------------------------------------------------------------------
- # def draw_exp_info(x, y)
- # s1 = @actor.max_level? ? "-------" : @actor.exp
- # s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
- # s_next = sprintf(Vocab::ExpNext, Vocab::level)
- # change_color(system_color)
- # draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
- # draw_text(x, y + line_height * 2, 180, line_height, s_next)
- # change_color(normal_color)
- # draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
- # draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
- # end
- #--------------------------------------------------------------------------
- # ● 绘制装备
- #--------------------------------------------------------------------------
- def draw_equipments(x, y)
- @actor.equips.each_with_index do |item, i|
- draw_item_name(item, x, y + line_height * i)
- end
- end
- #--------------------------------------------------------------------------
- # ● 绘制说明
- #--------------------------------------------------------------------------
- # def draw_description(x, y)
- # draw_text_ex(x, y, @actor.description)
- # end
- end
复制代码- #==============================================================================
- # ■ Window_Base
- #------------------------------------------------------------------------------
- # ゲーム中の全てのウィンドウのスーパークラスです。
- #==============================================================================
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # ● 能力値の描画
- #--------------------------------------------------------------------------
- alias dont_draw_m_draw_actor_param draw_actor_param
- def draw_actor_param(actor, x, y, param_id)
- # 当属性ID是4和5(代表魔攻和魔防)时不进行处理
- return if [4,5,7].include?(param_id)
- dont_draw_m_draw_actor_param(actor,x,y,param_id)
- end
- end
- #==============================================================================
- # ■ Window_EquipStatus
- #------------------------------------------------------------------------------
- # 装備画面で、アクターの能力値変化を表示するウィンドウです。
- #==============================================================================
- class Window_EquipStatus < Window_Base
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- draw_actor_name(@actor, 4, 0) if @actor
- # 执行属性ID为2,3,6,7的属性的绘制
- [0,1,4,5].each_with_index{|i,ii| draw_item(0, line_height * (1 + ii), 2 + i) } # 这里的2+i 表示属性ID
- end
- end
- #==============================================================================
- # ■ Window_Status
- #------------------------------------------------------------------------------
- # ステータス画面で表示する、フル仕様のステータスウィンドウです。
- #==============================================================================
- class Window_Status < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 能力値の描画
- #--------------------------------------------------------------------------
- def draw_parameters(x, y)
- # 同上
- [0,1,4,5].each_with_index do |i,ii|
- draw_actor_param(@actor, x, y + line_height * ii, i + 2)
- end
- end
- end
复制代码 以上第一段是經我自己改造的內置角色狀態視窗,
第二段是版友@feizhaodan 替我編寫,用以刪除狀態中的「魔攻」、「魔防」及「幸運」目前樣子是:
我想問如何更改以下幾項:
一、屬性 <--> 數值 之間的距離,在圖中可見,因為屬性名字跟數值距離太大,導致顯示得非常怪異,文字重疊等等。
二、裝備的Y間距。基本上問題跟(一)一樣,由於裝備類型有五件,所以間距應該是這一個角色的狀態Y除以5,可是我不知道怎樣改寫內置的腳本。
三、讓這個介面同時顯視四個角色。在圖中可見,紫色男角只佔用了視窗的四分一(應該差不多),我是想把整個隊伍(一頁顯示四人)放進去,我有想過將預設主選單中的隊伍狀態直接搬運,可是實行起來不斷彈出Error而我又不知道如何解決。
由於我接觸了RMVA不久,所以麻煩各位寫腳本的高手可以指點一下,謝謝。 |
|