赞 | 8 |
VIP | 0 |
好人卡 | 3 |
积分 | 6 |
经验 | 8536 |
最后登录 | 2024-11-7 |
在线时间 | 165 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 642
- 在线时间
- 165 小时
- 注册时间
- 2012-4-18
- 帖子
- 264
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 salvareless 于 2013-10-29 18:39 编辑
本脚本已经将菜单窗口,商店窗口的货币金银铜化(图标化),以及获得物品无视窗口的金银铜化(文字化)。有序很多年没碰过编程了,代码有些冗余,资深脚本大神和程序员请见谅,如能出手优化,感激不尽。
使用本脚本请务必认真阅读脚本头部说明。
另外,由于各人需要,本脚本还包括两种特殊货币的显示。这两种货币是背包中的物品,(这个脚本中有说明)如果不希望特殊货币在背包中显示需要另行使用武平种类扩展脚本,将特殊货币对应的物品设为一类扩展的物品,并修该脚本,让其在背包窗口中不显示那种扩展物品。举个例子:我用物品种类扩展脚本来设置两种扩展的物品:任务品和货币。但是我修改脚本的绘制指令部分,让其只在背包窗口中显示任务品这个指令而不显示货币指令,则对应的货币类型的物品也就不会在包包中显示,但是你的包包中确实有这个东西。
一下附上脚本:
#encoding:utf-8 #============================================================================== # 货币金银铜模式 #本脚本有永月极圣(Salvareless)编写,转载使用请保留 #本脚本包含游戏内置游戏币的金银铜化,以及两种自定义特殊货币的显示 #本脚本包含商店界面的货币金银铜化。 #!!!!!!!!!! #请务必认真阅读脚本下方的脚本说明,根据自己需要选择脚本功能,谢谢。 #!!!!!!!!!! #============================================================================== =begin 注意事项: 1·本脚本仅适用于横向指令菜单,若非横向菜单,请解除“定义状态窗口高度”部分的屏蔽。 2·凡是只用过数据库破限脚本需要将破限脚本第631行,即: #-------------------------------------------------------------------------- # draw_currency_value #-------------------------------------------------------------------------- 部分中的text = value.group替换为:text = value PS.此条只是用于下一条的使用者。 3·凡是使用了“Yanfly Engine Ace - Event Window v1.01”的物品得失提示脚本 请用脚本尾部屏蔽区内容替换其脚本的“ def event_window_make_gold_text(value)”部分 4·如果不需要扩充特殊货币可以屏蔽特殊货币区段。 5·如果使用特殊货币区段,为求完美效果,还需要物品分类脚本。添加“货币”物品分类, 并将其设置为不显示的分类,另外再将用作货币的物品设置为“货币”分类。即达到完美效果。 6·虽然对不起大学编程老师,但是真的很久没碰编程了,技术有限, 如果你是程序员,请顺手帮忙优化冗余部分。 7·由于上一条所说的,使用脚本时,需自行替换每一处“draw_icon(142, ××, ××,)” 图标绘制语句中的第一个数值,即图标ID。 8·如果只需要商店货物价格金银铜化,请屏蔽或删除商店部分以外的区域。 =end =begin #-------------------------------------------------------------------------- # ● 菜单界面定义状态窗口高度 #-------------------------------------------------------------------------- class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # ● 获取窗口的高度 #-------------------------------------------------------------------------- def window_height Graphics.height - line_height * 2 end end =end #-------------------------------------------------------------------------- # ● 菜单界面定义金币显示窗口 #-------------------------------------------------------------------------- class Window_Gold < Window_Base #-------------------------------------------------------------------------- # ● 重新定义金币窗口的宽度 #-------------------------------------------------------------------------- def window_width return Graphics.width end #-------------------------------------------------------------------------- # ● 刷新,菜单界面金银铜模式主体 #-------------------------------------------------------------------------- def refresh contents.clear #开始金银铜模式 if value > 9999 #持有钱币是否达到金币级 values = value/100 #计算中间变量 draw_currency_value(value % 100, "" , 4, 0, contents.width - 18) #绘制铜币数量 draw_currency_value(values % 100, "" , 4, 0, contents.width - 58) #绘制银币数量 draw_currency_value(values/100, "" , 4, 0, contents.width - 98) #绘制金币数量 draw_icon(142, contents.width - 20, 0,) #绘制铜币图标(142为铜币图标ID) draw_icon(141, contents.width - 60, 0,) #绘制银币图标(141为银币图标ID) draw_icon(140, contents.width - 100, 0,) #绘制金币图标(140为金币图标ID) elsif value > 99 #持有钱币是否达到银币级 draw_currency_value(value % 100, "", 4, 0, contents.width - 18) #绘制铜币数量 draw_currency_value(value/100, "", 4, 0, contents.width - 58) #绘制银币数量 draw_icon(142, contents.width - 20, 0,) #绘制铜币图标 draw_icon(141, contents.width - 60, 0,) #绘制银币图标 else draw_currency_value(value, "", 4, 0, contents.width - 18) #绘制铜币数量 draw_icon(142, contents.width - 20, 0,) #绘制铜币图标 end #结束金银铜模式 #开始物品货币区 #格式如下 #draw_currency_value(自定义变量名, "" , 4, 0, contents.width - 423) #draw_icon(图标ID, contents.width - 425, 0,) #第一种 draw_currency_value(value1, "" , 4, 0, contents.width - 423) #绘制特殊货币一的数量 draw_icon(138, contents.width - 425, 0,) #绘制特殊货币一的图标 #第二种 draw_currency_value(value2, "" , 4, 0, contents.width - 323) #绘制特殊货币二的数量 draw_icon(139, contents.width - 325, 0,) #绘制特殊货币二的图标 #结束物品货币区 end #-------------------------------------------------------------------------- # ● 定义特殊货币(物品货币) # 格式如下 # def 自定义变量名 # $game_party.item_number($data_items[物品ID]) # end #-------------------------------------------------------------------------- #第一种 def value1 $game_party.item_number($data_items[83]) end #第二种 def value2 $game_party.item_number($data_items[84]) end end #-------------------------------------------------------------------------- # ● 商店窗口部分开始 #-------------------------------------------------------------------------- class Window_ShopCommand < Window_HorzCommand #-------------------------------------------------------------------------- # ● 获取窗口的宽度 #-------------------------------------------------------------------------- def window_width return Graphics.width end end # ● 持有数窗口调整 class Window_ShopStatus < Window_Base def draw_possession(x, y) rect = Rect.new(x, y, contents.width - 4 - x, line_height) change_color(system_color) draw_text(rect, Vocab::Possession) rect = Rect.new(x + 10, y + line_height, contents.width - 4 - x, line_height) change_color(normal_color) draw_text(rect, $game_party.item_number(@item)) end end #-------------------------------------------------------------------------- # ● 商店金银铜化 #-------------------------------------------------------------------------- #----出售列表部分---- class Window_ShopBuy < Window_Selectable #-------------------------------------------------------------------------- # ● 获取窗口的宽度 #-------------------------------------------------------------------------- def window_width return 430 end #-------------------------------------------------------------------------- # ● 绘制项目 #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] rect = item_rect(index) draw_item_name(item, rect.x, rect.y, enable?(item)) rect.width -= 4 #开始金银铜模式 value = price(item) if value > 9999 valuex = value / 100 #金币级运算中间变量 valueg = valuex / 100 #金币数量 values = valuex % 100 #银币数量 valuec = value % 100 #铜币数量 draw_currency_value(valuec, "" , 4, rect.y, contents.width - 18) #绘制铜币数量 draw_currency_value(values, "" , 4, rect.y, contents.width - 58) #绘制银币数量 draw_currency_value(valueg, "" , 4, rect.y, contents.width - 98) #绘制金币数量 draw_icon(142, contents.width - 20, rect.y,) #绘制铜币图标 draw_icon(141, contents.width - 60, rect.y,) #绘制银币图标 draw_icon(140, contents.width - 100, rect.y,) #绘制金币图标 elsif value > 99 values = value / 100 #银币数量 valuec = value % 100 #铜币数量 draw_currency_value(values, "" , 4, rect.y, contents.width - 58) #绘制铜币数量 draw_currency_value(valuec, "" , 4, rect.y, contents.width - 18) #绘制银币数量 draw_icon(142, contents.width - 20, rect.y,) #绘制铜币图标 draw_icon(141, contents.width - 60, rect.y,) #绘制银币图标 else draw_currency_value(value, "" , 4, rect.y, contents.width - 18) #绘制铜币数量 draw_icon(142, contents.width - 20, rect.y,) #绘制铜币图标 end #结束金银铜模式 end end #----显示总价部分---- class Window_ShopNumber < Window_Selectable #-------------------------------------------------------------------------- # ● 获取窗口的宽度 #-------------------------------------------------------------------------- def window_width return 430 end #-------------------------------------------------------------------------- # ● 绘制总价 #-------------------------------------------------------------------------- def draw_total_price width = contents_width value = @price * @number if value > 9999 valuex = value / 100 #金币级运算中间变量 valueg = valuex / 100 #金币数量 values = valuex % 100 #银币数量 valuec = value % 100 #铜币数量 draw_currency_value(valueg, "", 4, price_y, width - 98) #绘制金币数量 draw_currency_value(values, "", 4, price_y, width - 58) #绘制银币数量 draw_currency_value(valuec, "", 4, price_y, width - 18) #绘制铜币数量 draw_icon(142, contents.width - 20, price_y,) #绘制铜币图标 draw_icon(141, contents.width - 60, price_y,) #绘制银币图标 draw_icon(140, contents.width - 100, price_y,) #绘制金币图标 elsif value > 99 values = value / 100 #银币数量 valuec = value % 100 #铜币数量 draw_currency_value(values, "", 4, price_y, width - 58) #绘制银币数量 draw_currency_value(valuec, "", 4, price_y, width - 18) #绘制铜币数量 draw_icon(142, contents.width - 20, price_y,) #绘制铜币图标 draw_icon(141, contents.width - 60, price_y,) #绘制银币图标 else draw_currency_value(value, "", 4, price_y, width - 18) #绘制铜币数量 draw_icon(142, contents.width - 20, price_y,) #绘制铜币图标 end end end #-------------------------------------------------------------------------- #商店部分结束 #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ● 金币窗口修正 #-------------------------------------------------------------------------- class Scene_Shop < Scene_MenuBase #-------------------------------------------------------------------------- # ● 生成金钱窗口 #-------------------------------------------------------------------------- def create_gold_window @gold_window = Window_Gold.new @gold_window.viewport = @viewport @gold_window.x = Graphics.width - @gold_window.width @gold_window.y = Graphics.height - @gold_window.height end end =begin #-------------------------------------------------------------------------- # ● 屏蔽部分(请根据脚本头部提示使用此屏蔽区)得失金币提示金银铜模式 #-------------------------------------------------------------------------- def event_window_make_gold_text(value) return unless SceneManager.scene_is?(Scene_Map) return if Switch.hide_event_window if value > 0 text = YEA::EVENT_WINDOW::FOUND_TEXT elsif value < 0 text = YEA::EVENT_WINDOW::LOST_TEXT value = 0 - value #失去金币转化为正值 else; return end #开始金银铜模式 if value > 9999 valuex = value / 100 #金币级运算中间变量 valueg = valuex / 100 #金币数量 values = valuex % 100 #银币数量 valuec = value % 100 #铜币数量 valuep = valueg.abs.group + "金" + values.abs.group + "银" + valuec.abs.group text += sprintf("%s%s", valuep, "铜") elsif value > 99 values = value / 100 #银币数量 valuec = value % 100 #铜币数量 valuep = values.abs.group + "银" + valuec.abs.group text += sprintf("%s%s", valuep, "铜") else #原始代码区开始 text += sprintf("%s%s", value.abs.group, "铜") #原始代码区结束 end #结束金银铜模式 event_window_add_text(text) end #-------------------------------------------------------------------------- # ● 屏蔽部分(请根据脚本头部提示使用此屏蔽区)得失金币提示金银铜模式 #-------------------------------------------------------------------------- =end
#encoding:utf-8
#==============================================================================
# 货币金银铜模式
#本脚本有永月极圣(Salvareless)编写,转载使用请保留
#本脚本包含游戏内置游戏币的金银铜化,以及两种自定义特殊货币的显示
#本脚本包含商店界面的货币金银铜化。
#!!!!!!!!!!
#请务必认真阅读脚本下方的脚本说明,根据自己需要选择脚本功能,谢谢。
#!!!!!!!!!!
#==============================================================================
=begin
注意事项:
1·本脚本仅适用于横向指令菜单,若非横向菜单,请解除“定义状态窗口高度”部分的屏蔽。
2·凡是只用过数据库破限脚本需要将破限脚本第631行,即:
#--------------------------------------------------------------------------
# draw_currency_value
#--------------------------------------------------------------------------
部分中的text = value.group替换为:text = value
PS.此条只是用于下一条的使用者。
3·凡是使用了“Yanfly Engine Ace - Event Window v1.01”的物品得失提示脚本
请用脚本尾部屏蔽区内容替换其脚本的“ def event_window_make_gold_text(value)”部分
4·如果不需要扩充特殊货币可以屏蔽特殊货币区段。
5·如果使用特殊货币区段,为求完美效果,还需要物品分类脚本。添加“货币”物品分类,
并将其设置为不显示的分类,另外再将用作货币的物品设置为“货币”分类。即达到完美效果。
6·虽然对不起大学编程老师,但是真的很久没碰编程了,技术有限,
如果你是程序员,请顺手帮忙优化冗余部分。
7·由于上一条所说的,使用脚本时,需自行替换每一处“draw_icon(142, ××, ××,)”
图标绘制语句中的第一个数值,即图标ID。
8·如果只需要商店货物价格金银铜化,请屏蔽或删除商店部分以外的区域。
=end
=begin
#--------------------------------------------------------------------------
# ● 菜单界面定义状态窗口高度
#--------------------------------------------------------------------------
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ● 获取窗口的高度
#--------------------------------------------------------------------------
def window_height
Graphics.height - line_height * 2
end
end
=end
#--------------------------------------------------------------------------
# ● 菜单界面定义金币显示窗口
#--------------------------------------------------------------------------
class Window_Gold < Window_Base
#--------------------------------------------------------------------------
# ● 重新定义金币窗口的宽度
#--------------------------------------------------------------------------
def window_width
return Graphics.width
end
#--------------------------------------------------------------------------
# ● 刷新,菜单界面金银铜模式主体
#--------------------------------------------------------------------------
def refresh
contents.clear
#开始金银铜模式
if value > 9999 #持有钱币是否达到金币级
values = value/100 #计算中间变量
draw_currency_value(value % 100, "" , 4, 0, contents.width - 18) #绘制铜币数量
draw_currency_value(values % 100, "" , 4, 0, contents.width - 58) #绘制银币数量
draw_currency_value(values/100, "" , 4, 0, contents.width - 98) #绘制金币数量
draw_icon(142, contents.width - 20, 0,) #绘制铜币图标(142为铜币图标ID)
draw_icon(141, contents.width - 60, 0,) #绘制银币图标(141为银币图标ID)
draw_icon(140, contents.width - 100, 0,) #绘制金币图标(140为金币图标ID)
elsif value > 99 #持有钱币是否达到银币级
draw_currency_value(value % 100, "", 4, 0, contents.width - 18) #绘制铜币数量
draw_currency_value(value/100, "", 4, 0, contents.width - 58) #绘制银币数量
draw_icon(142, contents.width - 20, 0,) #绘制铜币图标
draw_icon(141, contents.width - 60, 0,) #绘制银币图标
else
draw_currency_value(value, "", 4, 0, contents.width - 18) #绘制铜币数量
draw_icon(142, contents.width - 20, 0,) #绘制铜币图标
end
#结束金银铜模式
#开始物品货币区
#格式如下
#draw_currency_value(自定义变量名, "" , 4, 0, contents.width - 423)
#draw_icon(图标ID, contents.width - 425, 0,)
#第一种
draw_currency_value(value1, "" , 4, 0, contents.width - 423) #绘制特殊货币一的数量
draw_icon(138, contents.width - 425, 0,) #绘制特殊货币一的图标
#第二种
draw_currency_value(value2, "" , 4, 0, contents.width - 323) #绘制特殊货币二的数量
draw_icon(139, contents.width - 325, 0,) #绘制特殊货币二的图标
#结束物品货币区
end
#--------------------------------------------------------------------------
# ● 定义特殊货币(物品货币)
# 格式如下
# def 自定义变量名
# $game_party.item_number($data_items[物品ID])
# end
#--------------------------------------------------------------------------
#第一种
def value1
$game_party.item_number($data_items[83])
end
#第二种
def value2
$game_party.item_number($data_items[84])
end
end
#--------------------------------------------------------------------------
# ● 商店窗口部分开始
#--------------------------------------------------------------------------
class Window_ShopCommand < Window_HorzCommand
#--------------------------------------------------------------------------
# ● 获取窗口的宽度
#--------------------------------------------------------------------------
def window_width
return Graphics.width
end
end
# ● 持有数窗口调整
class Window_ShopStatus < Window_Base
def draw_possession(x, y)
rect = Rect.new(x, y, contents.width - 4 - x, line_height)
change_color(system_color)
draw_text(rect, Vocab::Possession)
rect = Rect.new(x + 10, y + line_height, contents.width - 4 - x, line_height)
change_color(normal_color)
draw_text(rect, $game_party.item_number(@item))
end
end
#--------------------------------------------------------------------------
# ● 商店金银铜化
#--------------------------------------------------------------------------
#----出售列表部分----
class Window_ShopBuy < Window_Selectable
#--------------------------------------------------------------------------
# ● 获取窗口的宽度
#--------------------------------------------------------------------------
def window_width
return 430
end
#--------------------------------------------------------------------------
# ● 绘制项目
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
rect = item_rect(index)
draw_item_name(item, rect.x, rect.y, enable?(item))
rect.width -= 4
#开始金银铜模式
value = price(item)
if value > 9999
valuex = value / 100 #金币级运算中间变量
valueg = valuex / 100 #金币数量
values = valuex % 100 #银币数量
valuec = value % 100 #铜币数量
draw_currency_value(valuec, "" , 4, rect.y, contents.width - 18) #绘制铜币数量
draw_currency_value(values, "" , 4, rect.y, contents.width - 58) #绘制银币数量
draw_currency_value(valueg, "" , 4, rect.y, contents.width - 98) #绘制金币数量
draw_icon(142, contents.width - 20, rect.y,) #绘制铜币图标
draw_icon(141, contents.width - 60, rect.y,) #绘制银币图标
draw_icon(140, contents.width - 100, rect.y,) #绘制金币图标
elsif value > 99
values = value / 100 #银币数量
valuec = value % 100 #铜币数量
draw_currency_value(values, "" , 4, rect.y, contents.width - 58) #绘制铜币数量
draw_currency_value(valuec, "" , 4, rect.y, contents.width - 18) #绘制银币数量
draw_icon(142, contents.width - 20, rect.y,) #绘制铜币图标
draw_icon(141, contents.width - 60, rect.y,) #绘制银币图标
else
draw_currency_value(value, "" , 4, rect.y, contents.width - 18) #绘制铜币数量
draw_icon(142, contents.width - 20, rect.y,) #绘制铜币图标
end
#结束金银铜模式
end
end
#----显示总价部分----
class Window_ShopNumber < Window_Selectable
#--------------------------------------------------------------------------
# ● 获取窗口的宽度
#--------------------------------------------------------------------------
def window_width
return 430
end
#--------------------------------------------------------------------------
# ● 绘制总价
#--------------------------------------------------------------------------
def draw_total_price
width = contents_width
value = @price * @number
if value > 9999
valuex = value / 100 #金币级运算中间变量
valueg = valuex / 100 #金币数量
values = valuex % 100 #银币数量
valuec = value % 100 #铜币数量
draw_currency_value(valueg, "", 4, price_y, width - 98) #绘制金币数量
draw_currency_value(values, "", 4, price_y, width - 58) #绘制银币数量
draw_currency_value(valuec, "", 4, price_y, width - 18) #绘制铜币数量
draw_icon(142, contents.width - 20, price_y,) #绘制铜币图标
draw_icon(141, contents.width - 60, price_y,) #绘制银币图标
draw_icon(140, contents.width - 100, price_y,) #绘制金币图标
elsif value > 99
values = value / 100 #银币数量
valuec = value % 100 #铜币数量
draw_currency_value(values, "", 4, price_y, width - 58) #绘制银币数量
draw_currency_value(valuec, "", 4, price_y, width - 18) #绘制铜币数量
draw_icon(142, contents.width - 20, price_y,) #绘制铜币图标
draw_icon(141, contents.width - 60, price_y,) #绘制银币图标
else
draw_currency_value(value, "", 4, price_y, width - 18) #绘制铜币数量
draw_icon(142, contents.width - 20, price_y,) #绘制铜币图标
end
end
end
#--------------------------------------------------------------------------
#商店部分结束
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# ● 金币窗口修正
#--------------------------------------------------------------------------
class Scene_Shop < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 生成金钱窗口
#--------------------------------------------------------------------------
def create_gold_window
@gold_window = Window_Gold.new
@gold_window.viewport = @viewport
@gold_window.x = Graphics.width - @gold_window.width
@gold_window.y = Graphics.height - @gold_window.height
end
end
=begin
#--------------------------------------------------------------------------
# ● 屏蔽部分(请根据脚本头部提示使用此屏蔽区)得失金币提示金银铜模式
#--------------------------------------------------------------------------
def event_window_make_gold_text(value)
return unless SceneManager.scene_is?(Scene_Map)
return if Switch.hide_event_window
if value > 0
text = YEA::EVENT_WINDOW::FOUND_TEXT
elsif value < 0
text = YEA::EVENT_WINDOW::LOST_TEXT
value = 0 - value #失去金币转化为正值
else; return
end
#开始金银铜模式
if value > 9999
valuex = value / 100 #金币级运算中间变量
valueg = valuex / 100 #金币数量
values = valuex % 100 #银币数量
valuec = value % 100 #铜币数量
valuep = valueg.abs.group + "金" + values.abs.group + "银" + valuec.abs.group
text += sprintf("%s%s", valuep, "铜")
elsif value > 99
values = value / 100 #银币数量
valuec = value % 100 #铜币数量
valuep = values.abs.group + "银" + valuec.abs.group
text += sprintf("%s%s", valuep, "铜")
else
#原始代码区开始
text += sprintf("%s%s", value.abs.group, "铜")
#原始代码区结束
end
#结束金银铜模式
event_window_add_text(text)
end
#--------------------------------------------------------------------------
# ● 屏蔽部分(请根据脚本头部提示使用此屏蔽区)得失金币提示金银铜模式
#--------------------------------------------------------------------------
=end
|
评分
-
查看全部评分
|