Project1
标题:
支持单张图标脚本和物品颜色脚本冲突
[打印本页]
作者:
小空弟
时间:
2008-12-28 01:01
标题:
支持单张图标脚本和物品颜色脚本冲突
RT 支持单张图标脚本如果放在物品文字颜色脚本之上就不能显示单张图标了。
同样的,把支持单张图标脚本放在下面的话物品颜色就没有了。
哪位老大能整合一下? [LINE]1,#dddddd[/LINE]
此贴于 2008-12-30 13:25:59 被版主八云紫提醒,请楼主看到后对本贴做出回应。
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
雪流星
时间:
2008-12-28 04:44
沒有用alias的緣故
順便重寫了一下:
class Window_Base
def draw_icon2(icon_file, x, y, enabled = true)
bitmap = Cache.load_bitmap("Graphics/Icons/", icon_file)
rect = Rect.new(0, 0, 24, 24)
self.contents.blt(x, y, bitmap, rect, enabled ? 255 : 128)
end
alias draw_item_name_color_and_icon draw_item_name
def draw_item_name(item, x, y, enabled = true)
draw_item_name_color_and_icon(item, x, y, enabled)
if item != nil
if item.get_icon
draw_icon2(item.get_icon.to_s, x, y, enabled)
else
draw_icon(item.icon_index, x, y, enabled)
end
self.contents.font.color = item.get_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x + 24, y, 172, WLH, item.name)
end
end
end
class RPG::BaseItem
def get_icon
self.note.split(/[\r\n]+/).each { |line|
return $1 if line =~ /\[ICON (.*)\]/i
}
return nil
end
def get_color
self.note.split(/[\r\n]+/).each { |line|
if line =~ /\[(?:color) H([\da-f]{2})([\da-f]{2})([\da-f]{2})\]/i
return Color.new($1.to_i(16), $2.to_i(16), $3.to_i(16) )
elsif line =~ /\[(?:color) (\d*)\]/
w = Window_Base.new(0, 0, 64, 64)
w.opacity = 0
return w.text_color($1.to_i)
else return Color.new(255, 255, 255)
end
}
end
end
复制代码
用法:
在註釋裡面填寫
[icon 文件名] 繪製單張圖標
[color
H
rrggbb] 物品名稱用 RRGGBB 色繪製,注意前面要加 H 代表是16進制碼
[color N] 物品名稱用windowskin的第 N 號顏色繪製
顏色填寫錯誤時,默認使用白色
作者:
小空弟
时间:
2008-12-28 05:35
楼上的脚本有错误
显示can't convert array into color
作者:
雪流星
时间:
2008-12-28 05:42
第幾行
還有,你是怎麼設定的...
作者:
小空弟
时间:
2008-12-29 16:55
我就是用的你的用法。今天不在家里没法测试了。等明天回去再看一遍
作者:
小空弟
时间:
2008-12-31 04:23
你的脚本 Line16 TypeError Occured
can't convert array into color
作者:
雪流星
时间:
2008-12-31 07:10
class Window_Base
def draw_icon2(icon_file, x, y, enabled = true)
bitmap = Cache.load_bitmap("Graphics/Icons/", icon_file)
rect = Rect.new(0, 0, 24, 24)
self.contents.blt(x, y, bitmap, rect, enabled ? 255 : 128)
end
alias draw_item_name_color_and_icon draw_item_name
def draw_item_name(item, x, y, enabled = true)
draw_item_name_color_and_icon(item, x, y, enabled)
if item != nil
if item.get_icon
draw_icon2(item.get_icon.to_s, x, y, enabled)
else
draw_icon(item.icon_index, x, y, enabled)
end
self.contents.font.color = item.get_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x + 24, y, 172, WLH, item.name)
end
end
end
class RPG::BaseItem
def get_icon
self.note.split(/[\r\n]+/).each { |line|
return $1 if line =~ /\[ICON (.*)\]/i
}
return nil
end
def get_color
self.note.split(/[\r\n]+/).each { |line|
if line =~ /\[(?:color) H([\da-f]{2})([\da-f]{2})([\da-f]{2})\]/i
return Color.new($1.to_i(16), $2.to_i(16), $3.to_i(16) )
elsif line =~ /\[(?:color) (\d*)\]/
w = Window_Base.new(0, 0, 64, 64)
w.opacity = 0
return w.text_color($1.to_i)
else return Color.new(255, 255, 255)
end
}
return Color.new(255, 255, 255)
end
end
复制代码
[LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
小空弟
时间:
2009-1-1 00:43
正确了,建议版主把这个脚本放到发布区吧。这个方法看起来可以解决很多冲突的脚本
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1