赞 | 3 |
VIP | 38 |
好人卡 | 12 |
积分 | 13 |
经验 | 24107 |
最后登录 | 2023-10-28 |
在线时间 | 409 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1268
- 在线时间
- 409 小时
- 注册时间
- 2012-8-7
- 帖子
- 1536
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 harinlen 于 2012-9-24 20:39 编辑
今天私在填坑的时候才发现RMVA居然连个物品得失提示都没有,然后私就抑郁了。
虽然第一反应是直接抓个脚本,可惜私只找到了XP和VX的。而且需要在事件中等待3帧。而且要是物品名称过长的话还会挤在一起?!(←这啥?)
最后私自己写了一个物品得失脚本,之后才发现了Ace区xmheart已经发了一个脚本了,但貌似就是VX版本的移植版……
下面就是私的脚本了,比起前几个脚本有如下的更新:
1、宽度自适应。能够根据物品名字的宽度、金钱的宽度进行调整。(参考了各种压力的猫君的双默认字体脚本的测量函数)
2、与Vocab挂钩,直接显示在数据库中的用语处设定的名称
3、无需最后等待3帧,这个已经整合到脚本之中了。
4、窗体始终居中。
更新日志
1.02a
将临时性的布尔型变量对启用进行控制变更为使用开关。
1.01a
修正了没有将Window居中的问题。
1.00a
发布公开的测试版本
转载、使用无需保留前面的作者信息。
以上。- #==============================================================================
- # ☆ 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 = 10
- $window_tips_item = 11
- $window_tips_weapon = 12
- $window_tips_armor = 13
- #==============================================================================
- # ■ 音效设定
- #------------------------------------------------------------------------------
- # 设定对应的音效播放效果
- #==============================================================================
- $SE_Gold_Gain = "Shop" # 获得金钱声效
- $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((544 - 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, 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
复制代码 |
评分
-
查看全部评分
|