请问MV中如何实现得失物品提示?
比如这样的,这个是VA的脚本,MV是否有类似的?#==============================================================================# 本腳本來自www.66RPG.com,使用和轉載請保留此信息#============================================================================== # 注意!!!在對話後得到物品,請在對話後先用事件等待3幀,否則對話框來不及消失。# 開關定義:$noshowgold = 41 # 不显示金钱得失$noshowitem = 42 # 不显示物品得失$noshowweapon = 43 # 不显示武器得失$noshowarmor = 44 # 不显示防具得失# 以上開關,當打開的時候,獲得物品將不會提示,比如默認打開41號開關,獲得金錢不再提示# 不想提示等级升降时,就在事件命令直接选择是否显示就行了。#——聲效,可以自己改folder = "Audio/SE/"$gain_gold_se = folder +"Shop" # 获得金钱声效$loss_gold_se = folder +"Blow2" # 失去金钱声效$gain_item_se = folder +"Item1" # 获得物品声效$loss_item_se = folder +"Blow2" # 失去物品声效$gain_weapon_se = folder +"Item1" # 获得武器声效$loss_weapon_se = folder +"Blow2" # 失去武器声效$gain_armor_se= folder +"Item1" # 获得防具声效$loss_armor_se= folder +"Blow2" # 失去防具声效$gain_lv_se = folder +"Item1" # 提升等级声效$loss_lv_se = folder +"Blow2" # 降低等级声效# ————————————————————————————————————class Game_Interpreter#--------------------------------------------------------------------------# ● 增減金錢#--------------------------------------------------------------------------def command_125 value = operate_value(@params, @params, @params) $game_party.gain_gold(value) if $game_switches[$noshowgold]==false show_gain_window(0, value) end return trueend#--------------------------------------------------------------------------# ● 增減物品#--------------------------------------------------------------------------def command_126 value = operate_value(@params, @params, @params) $game_party.gain_item($data_items[@params], value) if $game_switches[$noshowitem]==false show_gain_window(1, value) end $game_map.need_refresh = true return trueend#--------------------------------------------------------------------------# ● 增減武器#--------------------------------------------------------------------------def command_127 value = operate_value(@params, @params, @params) $game_party.gain_item($data_weapons[@params], value, @params) if $game_switches[$noshowweapon]==false show_gain_window(2, value) end return trueend#--------------------------------------------------------------------------# ● 增減防具#--------------------------------------------------------------------------def command_128 value = operate_value(@params, @params, @params) $game_party.gain_item($data_armors[@params], value, @params) if $game_switches[$noshowarmor]==false show_gain_window(3, value) end return trueend#--------------------------------------------------------------------------# ● 等级増減#--------------------------------------------------------------------------def command_316 value = operate_value(@params, @params, @params) iterate_actor_var(@params, @params) do |actor| actor.change_level(actor.level + value, @params) if @params show_gain_level_window(actor,value) end end return trueend def show_gain_window(type, value) snstar2006_66rpg_item = $data_armors[@params] snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100) snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32) if value >= 0 gain_text = "获得" else gain_text = "失去" end case type when 0 gain_type = "金钱" if value >=0 Audio.se_play($gain_gold_se,80,100) else Audio.se_play("Audio/SE/"+"Item1",80,100) end when 1 gain_type = "物品" string = $data_items[@params] if value >=0 Audio.se_play($gain_item_se,80,100) else Audio.se_play($loss_item_se,80,100) end when 2 gain_type = "武器" string = $data_weapons[@params] if value >=0 Audio.se_play($gain_weapon_se,80,100) else Audio.se_play($loss_weapon_se,80,100) end when 3 gain_type = "防具" string = $data_armors[@params] if value >=0 Audio.se_play($gain_armor_se,80,100) else Audio.se_play($loss_armor_se,80,100) end end snstar2006_66rpg.contents.draw_text(0,0,160,30,gain_text+gain_type+":") unless type == 0 snstar2006_66rpg.draw_item_name(string, 0, 30, true) snstar2006_66rpg.contents.draw_text(0, 30, 160, 30, "×"+value.abs.to_s, 2) else snstar2006_66rpg.contents.draw_text(0,30,165,30,value.abs.to_s + ""+ Vocab.currency_unit, 2) end snstar2006_66rpg.opacity = 160 for i in 0..50 Graphics.update end for i in 0..10 snstar2006_66rpg.opacity -= 10 snstar2006_66rpg.contents_opacity -= 10 Graphics.update end snstar2006_66rpg.dispose enddef show_gain_level_window(actor,value) lvstring = Vocab::level snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100) snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 30, snstar2006_66rpg.height - 30) if value >= 0 gain_text = "提升" Audio.se_play($gain_lv_se,80,100) else gain_text = "降低" Audio.se_play($loss_lv_se,80,100) end snstar2006_66rpg.contents.draw_text(0, 0, 110, 30, actor.name) string = lvstring+gain_text+value.abs.to_s+"级" snstar2006_66rpg.contents.draw_text(0,30,160,30,string, 2) snstar2006_66rpg.opacity = 160 for i in 0..50 Graphics.update end for i in 0..10 snstar2006_66rpg.opacity -= 10 snstar2006_66rpg.contents_opacity -= 10 Graphics.update end snstar2006_66rpg.disposeendend#==============================================================================# 本腳本來自www.66RPG.com,使用和轉載請保留此信息#==============================================================================复制代码
本帖来自P1论坛作者ycz,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=405763若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]