赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 29377 |
最后登录 | 2013-8-7 |
在线时间 | 1 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 1 小时
- 注册时间
- 2008-8-3
- 帖子
- 976
|
以下引用木葬枫于2008-8-24 15:55:02的发言:
能和你写过的豪华菜单兼容吗?
谢谢,其实我原来的意思是同样的武器,有星的比较高级,所以只用到三颗星星而已。
谢谢啦·······
[本贴由作者于 2008-8-24 15:58:33 最后编辑]
刚才尝试改了一下,貌似兼容了。。。。。。
冲突原因是新菜单脚本◎ Window_Menu_Command华丽地调用了draw_icon,而刚好星星脚本为了显示物品数量在图标右下方改了这个函数
其实只要加两个字母就行= =
就是把 装备分级显示星星 脚本里面第51行改成
Ndraw_icon(item, x, y, enabled, draw_num) #N就是NEW。。。
再把64行改成
def Ndraw_icon(item, x, y, enabled = true, draw_num = true) #N就是NEW。。。
整个脚本变这样:(不包括 读取备注栏指定字段)
- #==============================================================================
- # 装备分级显示星星 by 沉影不器
- # -----------------------------------------------------------------------------
- # 在各装备对应备注栏里书写: level = 数字(数字大了星星太多影响美观)
- #==============================================================================
- # ■ RPG
- #==============================================================================
- module RPG
- class Weapon < BaseItem
- def level
- self.read_note('level').to_i
- end
- end
- class Armor < BaseItem
- def level
- self.read_note('level').to_i
- end
- end
- end
- #==============================================================================
- # ■ Window_Base
- #==============================================================================
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # ○ 描绘等级图标
- # rect : 描绘目标区域
- # level : 装备等级
- # enabled : 有效标志。false 为半透明显示
- #--------------------------------------------------------------------------
- def draw_level_icon(rect, level, enabled = true)
- # 无等级时返回
- return if level == 0
- bitmap = Cache.system("Star")
- bit_rect = Rect.new(0, 0, 24, 24)
- for i in 0...level
- x = rect.x + rect.width - 16 * i
- y = rect.y
- self.contents.blt(x - 16, y, bitmap, bit_rect, enabled ? 255 : 128)
- end
- end
- #--------------------------------------------------------------------------
- # ● 描绘物品名
- # item : 物品 (可以是特技、武器、防具)
- # x : 描绘目标 X 坐标
- # y : 描绘目标 Y 坐标
- # enabled : 有效标志。false 为描绘为半透明
- #--------------------------------------------------------------------------
- def draw_item_name(item, x, y, enabled = true, draw_num = true)
- if item != nil
- Ndraw_icon(item, x, y, enabled, draw_num) #N就是NEW。。。
- self.contents.font.color = normal_color
- self.contents.font.color.alpha = enabled ? 255 : 128
- self.contents.draw_text(x + 32, y, 172, WLH, item.name)
- end
- end
- #--------------------------------------------------------------------------
- # ● 描绘图标
- # item : 物品 (可以是特技、武器、防具)
- # x : 描绘目标 X 坐标
- # y : 描绘目标 Y 坐标
- # enabled : 有效标志。false 为半透明显示
- #--------------------------------------------------------------------------
- def Ndraw_icon(item, x, y, enabled = true, draw_num = true) #N就是NEW。。。
- icon_index = item.icon_index
- bitmap = Cache.system("Iconset")
- rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
- self.contents.blt(x, y, bitmap, rect, enabled ? 255 : 128)
- return unless draw_num
- # 开始描绘物品数量
- number = $game_party.item_number(item)
- rect = Rect.new(x, y+13, 24, 24-13)
- self.contents.font.size = 13
- self.contents.font.color = normal_color
- self.contents.font.color.alpha = enabled ? 255 : 128
- self.contents.draw_text(rect, sprintf("%2d", number), 2)
- self.contents.font.size = Font.default_size
- end
- end
- #==============================================================================
- # ■ Window_Item
- #==============================================================================
- class Window_Item < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 描绘项目
- # index : 项目编号
- #--------------------------------------------------------------------------
- def draw_item(index)
- rect = item_rect(index)
- self.contents.clear_rect(rect)
- item = @data[index]
- if item != nil
- enabled = enable?(item)
- rect.width -= 4
- draw_item_name(item, rect.x, rect.y, enabled)
- return unless item.is_a?(RPG::Weapon)|item.is_a?(RPG::Armor)
- draw_level_icon(rect, item.level, enabled)
- end
- end
- end
- #==============================================================================
- # ■ Window_Equip
- #==============================================================================
- class Window_Equip < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- @data = []
- for item in @actor.equips do @data.push(item) end
- @item_max = @data.size
- self.contents.font.color = system_color
- if @actor.two_swords_style
- self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon1)
- self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::weapon2)
- else
- self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon)
- self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::armor1)
- end
- self.contents.draw_text(4, WLH * 2, 92, WLH, Vocab::armor2)
- self.contents.draw_text(4, WLH * 3, 92, WLH, Vocab::armor3)
- self.contents.draw_text(4, WLH * 4, 92, WLH, Vocab::armor4)
-
- draw_item_name(@data[0], 92, WLH * 0, true, false)
- rect = Rect.new(58, 0, 240-32, WLH) #58原为92
- draw_level_icon(rect, @data[0].level, true) unless @data[0] == nil
-
- draw_item_name(@data[1], 92, WLH * 1, true, false)
- rect.y += WLH
- draw_level_icon(rect, @data[1].level, true) unless @data[1] == nil
-
- draw_item_name(@data[2], 92, WLH * 2, true, false)
- rect.y += WLH
- draw_level_icon(rect, @data[2].level, true) unless @data[2] == nil
-
- draw_item_name(@data[3], 92, WLH * 3, true, false)
- rect.y += WLH
- draw_level_icon(rect, @data[3].level, true) unless @data[3] == nil
-
- draw_item_name(@data[4], 92, WLH * 4, true, false)
- rect.y += WLH
- draw_level_icon(rect, @data[4].level, true) unless @data[4] == nil
- draw_actor_face(@actor, 278, 16, size = 96)
- end
- end
- #==============================================================================
- # ■ Window_Skill
- #==============================================================================
- class Window_Skill < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 描绘项目
- # index : 项目编号
- #--------------------------------------------------------------------------
- def draw_item(index)
- rect = item_rect(index)
- self.contents.clear_rect(rect)
- skill = @data[index]
- if skill != nil
- rect.width -= 4
- enabled = @actor.skill_can_use?(skill)
- draw_item_name(skill, rect.x, rect.y, enabled, false)
- self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
- end
- end
- end
复制代码
备注栏读取字段脚本不变:
(个人觉得新菜单样式脚本的兼容性还是很强的)
这样星星就可以显示在新菜单中了!不过由于新菜单空间关系,星星显示的数量要更少了。。。
还有个余留问题,就是在装备菜单中,点击人物后进行装备的时候,原来右边显示的人物头像貌似被星星覆盖了。。。。而且星星位置偏出了光标覆盖范围,影响美观。。。
----------------------------------------------------------------
刚又改了下,128行改成
rect = Rect.new(58, 0, 240-32, WLH) #58原为92
并在145行后面一行写
draw_actor_face(@actor, 278, 16, size = 96)
(上面脚本也已改)
星星不会超出光标了,人物头像也有了
|
|