- 注册时间
- 2004-5-16
- 最后登录
- 2024-11-13
超级版主
传说中的Bunny坑神~!
 
- 积分
- 244543

|
注意,本脚本修改依然保留一个影响视觉的BUG,即在战斗中使用到物品时部分文字会重叠.应该是帮助窗口未消除导致重叠所致.不知如何处理,望高手指教.
在很久很久以前...某D发的脚本,都是靠观察原版的脚本然后修改的...所以...管杀不管埋...=v=
那个不完美版的物品图标脚本,其实说白了,原理是简单到不行...原来默认的物品图标是和物品名写在一起的,因此图标的位置就限制在32X32那么一个小方格里面了.这个做法则是把图片丢到了帮助窗口里,然后任意调整大小位置来显示你所想要的图标.
至于出现问题的原因...更简单.RGSS里定义的帮助窗口总共只有一个却身兼数职,显示提示,显示状态,显示物品,显示特技...真是皆杀的...只要一不小心改了其中一个,后面的全得跟着改.
所以...解决办法就是...要么在一个个出现帮助窗口的地方定义每个窗口的大小...
要么为物品界面独立设计一个帮助窗口...然后再看看其他地方有什么可修改的.
很遗憾的说其实两者工作量可能差不多...所以我还是挑了第二种.
首先...依然是光荣伟大的WINDOW_BASE的修改...增加一个单独显示物品图标的功能.
#--------------------------------------------------------------------------
# ● 描绘物品名[这是修改的部分]
# item : 物品
# x : 描画目标 X 坐标
# y : 描画目标 Y 坐标
#--------------------------------------------------------------------------
def draw_item_name(item, x, y)
if item == nil
return
end
self.contents.font.color = normal_color
self.contents.draw_text(x + 28, y, 212, 32, item.name)
end
end
#-------------------------------------------------
# ● 自定义物品图片[这是增加的部分]
#-------------------------------------------------
def draw_item_picture(item,x,y)
if item==nil
return
end
bitmap = RPG::Cache.icon(item.icon_name)
self.contents.blt(x+10, y, bitmap, Rect.new(0, 0, 76, 101))
end
--------------------------某D路还很长分隔线----------------------------------------
接下来,把WINDOW_HELP整个复制下来,然后新建一个脚本贴上.这个新的帮助窗口,就给它起名叫Window_Help_Item好了.反正是新的窗口,可以随便修改.这里我们要做的就是再定义一个函数,用来在这个窗口里显示物品图片.
class Window_Help_Item < Window_Base #修改这个类的名字
#--------------------------------------------------------------------------
# ● 初始化对像[这是修改的地方,修改窗口大小]
#--------------------------------------------------------------------------
def initialize
super(0, 0, 640, 132)
self.contents = Bitmap.new(width - 32, height - 32)
if $game_temp.in_battle
self.back_opacity = 160
end
end
#--------------------------------------------------------------------------
# ● 设置文本[左对齐,并为物品图片预留空位]
# text : 窗口显示的字符串
# align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
#--------------------------------------------------------------------------
def set_text(text, align = 0)
# 如果文本和对齐方式的至少一方与上次的不同
if text != @text or align != @align
# 再描绘文本
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(0+106, 33, self.width - 40, 32, text, align)
@text = text
@align = align
@actor = nil
end
self.visible = true
end
#-------------------------------------------------
# ● 显示物品图片[这是增加的地方]
# item : 要显示图片的物品
#--------------------------------------------------------------------------
def set_picture(item)
if item != @item
draw_item_picture(item,0,0)
@item= nil
end
self.visible = true
end
--------------------------某D万里长征走完第一步分隔线----------------------------------------
接下来,一如既往的修改物品界面,装备界面和商店界面.这里给出的是针对100X100图标的相对坐标.
物品界面需要修改的东西...1是物品窗口的大小,
二是在刷新的时候,在帮助窗口里增加显示图标的功能.
class Window_Item < Window_Selectable
#--------------------------------------------------------------------------
# ● 初始化对像(修改,改变物品窗口大小和位置)
#--------------------------------------------------------------------------
def initialize
super(0, 132, 640, 348)
@column_max = 2
refresh
self.index = 0
# 战斗中的情况下将窗口移至中央并将其半透明化
if $game_temp.in_battle
self.y = 132
self.height = 188
self.back_opacity = 160
end
end
#--------------------------------------------------------------------------
# ● 刷新帮助文本(添加,增加一行显示图标)
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(self.item == nil ? "" : self.item.description)
@help_window.set_picture(self.item) #这行是增加的
end
然后我们转移到Scene_Item这一部分来.
这里关联的帮助窗口还是原版的那个...
所以,把这里使用的帮助窗口改为自定义的.
class Scene_Item
#--------------------------------------------------------------------------
# ● 主处理
#--------------------------------------------------------------------------
def main
# 生成帮助窗口、物品窗口
@help_window = Window_Help_Item.new #这里,就是定义使用帮助窗口的地方...
@item_window = Window_Item.new
# 关联帮助窗口
@item_window.help_window = @help_window
# 生成目标窗口 (设置为不可见・不活动)....以下省略....
[此贴子已经被作者于2005-6-1 11:42:54编辑过] |
|