#==============================================================================
# ☆ HAR - 得失物品脚本 (v1.01a)
# 日期:2012/09/23
#==============================================================================
# -- 作者: Harinlen
# -- 等级: 普通级
# -- 依赖关系: 无
# -- 适用范围: RPG Maker VX Ace
# -- 不兼容脚本: 暂无
#==============================================================================
# ☆ 声明
# 此脚本参考了[PS0]双默认脚本的长度测量函数。
#==============================================================================
# ☆ 脚本使用说明
# 此脚本无需额外代码即可使用,使用事件调用增减金钱、增减武器、增减防具和增减物品的
# 时候会显示一个对话框显示得失物品情况。
#
# ☆ 脚本的启用
# 修改对应等号后面对应的数值为对应的开关序号,在事件中直接对开关进行判定即可:
#
# $window_tips_gold = 10 #金钱窗口提示的开关
# $window_tips_item = 11 #物品窗口提示的开关
# $window_tips_weapon = 12 #武器窗口提示的开关
# $window_tips_armor = 13 #防具窗口提示的开关
#
# ☆ 脚本的自定义
# 请修改下方的音效设定部分,将对应的音效更改成自己想要的音效即可。
# 音效名的获取请使用媒体库进行查看。只能使用SE中的音效。
#==============================================================================
#==============================================================================
# ■ 提示开关定义
#------------------------------------------------------------------------------
# 用于定义是否显示Window
#==============================================================================
$window_tips_gold = 2
$window_tips_item = 3
$window_tips_weapon = 4
$window_tips_armor = 5
#==============================================================================
# ■ 音效设定
#------------------------------------------------------------------------------
# 设定对应的音效播放效果
#==============================================================================
$SE_Gold_Gain = "Shop,10" # 获得金钱声效
$SE_Gold_Loss = "Blow2" # 失去金钱声效
$SE_Item_Gain = "Item1" # 获得物品声效
$SE_Item_Loss = "Blow2" # 失去物品声效
$SE_Weapon_Gain = "Item1" # 获得武器声效
$SE_Weapon_Loss = "Blow2" # 失去武器声效
$SE_Armor_Gain = "Item1" # 获得防具声效
$SE_Armor_Loss = "Blow2" # 失去防具声效
#==============================================================================
# ■ Window_Tips
#------------------------------------------------------------------------------
# 显示增减物品、金钱和装备的窗口
#==============================================================================
class Window_Tips < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize(x = 170, y = 128, width = 300, height = 96)
super
end
#--------------------------------------------------------------------------
# ● 增强绘制物品名称
#--------------------------------------------------------------------------
def adv_draw_item_name(item, x, y)
return unless item
draw_icon(item.icon_index, x, y, true)
change_color(normal_color, true)
draw_text(x + 24, y, width, line_height, item.name)
end
end
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 增减金钱
#--------------------------------------------------------------------------
def command_125
value = operate_value(@params[0], @params[1], @params[2])
$game_party.gain_gold(value)
if $game_switches[$window_tips_gold] == true
show_tips_window(0, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 增减物品
#--------------------------------------------------------------------------
def command_126
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_items[@params[0]], value)
if $game_switches[$window_tips_item] == true
show_tips_window(1, value)
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# ● 增减武器
#--------------------------------------------------------------------------
def command_127
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_weapons[@params[0]], value, @params[4])
if $game_switches[$window_tips_weapon] == true
show_tips_window(2, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 增减防具
#--------------------------------------------------------------------------
def command_128
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_armors[@params[0]], value, @params[4])
if $game_switches[$window_tips_armor] == true
show_tips_window(3, value)
end
return true
end
#--------------------------------------------------------------------------
# ● 显示增减提示窗口
#--------------------------------------------------------------------------
def show_tips_window(type, value)
case type
when 0
item_type = Vocab::currency_unit
if value >= 0
Audio.se_play("Audio/SE/" + $SE_Gold_Gain, 100, 100)
else
Audio.se_play("Audio/SE/" + "Item1", 100, 100)
end
when 1
item_type = Vocab::item
processed_items = $data_items[@params[0]]
if value >= 0
Audio.se_play("Audio/SE/" + $SE_Item_Gain, 100, 100)
else
Audio.se_play("Audio/SE/" + $SE_Item_Loss, 100, 100)
end
when 2
item_type = Vocab::weapon
processed_items = $data_weapons[@params[0]]
if value >= 0
Audio.se_play("Audio/SE/" + $SE_Weapon_Gain, 100, 100)
else
Audio.se_play("Audio/SE/" + $SE_Weapon_Loss, 100, 100)
end
when 3
item_type = Vocab::armor
processed_items = $data_armors[@params[0]]
if value >= 0
Audio.se_play("Audio/SE/" + $SE_Armor_Gain, 100, 100)
else
Audio.se_play("Audio/SE/" + $SE_Armor_Loss, 100, 100)
end
end
if value >= 0
tips_processed_text = "获得"
else
tips_processed_text = "失去"
end
if type != 0
text_value = "×" + value.abs.to_s
bitmap = Bitmap.new(100, 100)
itemwidth = bitmap.text_size(processed_items.name).width + 95
valuewidth = bitmap.text_size(text_value).width
itempop_window = Window_Tips.new((640 - itemwidth - valuewidth) / 2, 128, itemwidth + valuewidth, 88)
itempop_window.contents = Bitmap.new(itempop_window.width - 32, itempop_window.height - 32)
itempop_window.contents.draw_text(0, 0, 160, 32, tips_processed_text + item_type+":")
itempop_window.adv_draw_item_name(processed_items, 28, 32)
itempop_window.contents.draw_text(0, 30, itemwidth, 32, "×" + value.abs.to_s, 2)
else
text_value = value.abs.to_s + " " + Vocab::currency_unit
bitmap = Bitmap.new(100, 100)
textwidth = bitmap.text_size(text_value).width + 95
itempop_window = Window_Tips.new(170+50, 128, textwidth, 88)
itempop_window.contents = Bitmap.new(itempop_window.width - 32, itempop_window.height - 32)
itempop_window.contents.draw_text(0, 0, 160, 32, tips_processed_text + item_type+":")
itempop_window.contents.draw_text(32, 32, 240, 32, value.abs.to_s + " " + Vocab::currency_unit)
end
for i in 0..60
Graphics.update
end
for i in 0..10
itempop_window.opacity -= 30
itempop_window.contents_opacity -= 30
Graphics.update
end
itempop_window.dispose
for i in 0..3
Graphics.update
end
end
end