Project1

标题: 【VA移植修改】物品得失等级提升提示 [打印本页]

作者: xmheart    时间: 2012-1-31 22:53
标题: 【VA移植修改】物品得失等级提升提示
  1. #==============================================================================
  2. # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
  3. #==============================================================================

  4. # 注意!!!在對話後得到物品,請在對話後先用事件等待3幀,否則對話框來不及消失。

  5. # 開關定義:

  6. $noshowgold = 41                        # 不显示金钱得失

  7. $noshowitem = 42                        # 不显示物品得失

  8. $noshowweapon = 43                      # 不显示武器得失

  9. $noshowarmor = 44                       # 不显示防具得失
  10. # 以上開關,當打開的時候,獲得物品將不會提示,比如默認打開41號開關,獲得金錢不再提示

  11. # 不想提示等级升降时,就在事件命令直接选择是否显示就行了。

  12. #——聲效,可以自己改
  13. folder = "Audio/SE/"
  14. $gain_gold_se   = folder +"Shop"      # 获得金钱声效
  15. $loss_gold_se   = folder +"Blow2"     # 失去金钱声效

  16. $gain_item_se   = folder +"Item1"     # 获得物品声效
  17. $loss_item_se   = folder +"Blow2"     # 失去物品声效

  18. $gain_weapon_se = folder +"Item1"     # 获得武器声效
  19. $loss_weapon_se = folder +"Blow2"     # 失去武器声效

  20. $gain_armor_se  = folder +"Item1"     # 获得防具声效
  21. $loss_armor_se  = folder +"Blow2"     # 失去防具声效

  22. $gain_lv_se     = folder +"Item1"     # 提升等级声效
  23. $loss_lv_se     = folder +"Blow2"     # 降低等级声效

  24. # ————————————————————————————————————

  25. class Game_Interpreter
  26.   #--------------------------------------------------------------------------
  27.   # ● 增減金錢
  28.   #--------------------------------------------------------------------------
  29.   def command_125
  30.     value = operate_value(@params[0], @params[1], @params[2])
  31.     $game_party.gain_gold(value)
  32.     if $game_switches[$noshowgold]==false
  33.       show_gain_window(0, value)
  34.     end
  35.     return true
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 增減物品
  39.   #--------------------------------------------------------------------------
  40.   def command_126
  41.     value = operate_value(@params[1], @params[2], @params[3])
  42.     $game_party.gain_item($data_items[@params[0]], value)
  43.     if $game_switches[$noshowitem]==false
  44.       show_gain_window(1, value)
  45.     end
  46.     $game_map.need_refresh = true
  47.     return true
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 增減武器
  51.   #--------------------------------------------------------------------------
  52.   def command_127
  53.     value = operate_value(@params[1], @params[2], @params[3])
  54.     $game_party.gain_item($data_weapons[@params[0]], value, @params[4])
  55.     if $game_switches[$noshowweapon]==false
  56.       show_gain_window(2, value)
  57.     end
  58.     return true
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 增減防具
  62.   #--------------------------------------------------------------------------
  63.   def command_128
  64.     value = operate_value(@params[1], @params[2], @params[3])
  65.     $game_party.gain_item($data_armors[@params[0]], value, @params[4])
  66.     if $game_switches[$noshowarmor]==false
  67.       show_gain_window(3, value)
  68.     end
  69.     return true
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 等级増減
  73.   #--------------------------------------------------------------------------
  74.   def command_316
  75.     value = operate_value(@params[2], @params[3], @params[4])
  76.     iterate_actor_var(@params[0], @params[1]) do |actor|
  77.       actor.change_level(actor.level + value, @params[5])
  78.       if @params[4]
  79.         show_gain_level_window(actor,value)
  80.       end
  81.     end
  82.     return true
  83.   end
  84.   
  85.   def show_gain_window(type, value)
  86.     snstar2006_66rpg_item = $data_armors[@params[0]]
  87.     snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100)
  88.     snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
  89.     if value >= 0
  90.       gain_text = "获得"   
  91.     else
  92.       gain_text = "失去"
  93.     end
  94.    
  95.     case type
  96.     when 0
  97.       gain_type = "金钱"
  98.       if value >=0
  99.         Audio.se_play($gain_gold_se,80,100)
  100.       else
  101.         Audio.se_play("Audio/SE/"+"Item1",80,100)
  102.       end
  103.     when 1
  104.       gain_type = "物品"
  105.       string = $data_items[@params[0]]
  106.       if value >=0
  107.         Audio.se_play($gain_item_se,80,100)
  108.       else
  109.         Audio.se_play($loss_item_se,80,100)
  110.       end
  111.     when 2
  112.       gain_type = "武器"
  113.       string = $data_weapons[@params[0]]
  114.       if value >=0
  115.         Audio.se_play($gain_weapon_se,80,100)
  116.       else
  117.         Audio.se_play($loss_weapon_se,80,100)
  118.       end
  119.     when 3
  120.       gain_type = "防具"
  121.       string = $data_armors[@params[0]]
  122.       if value >=0
  123.         Audio.se_play($gain_armor_se,80,100)
  124.       else
  125.         Audio.se_play($loss_armor_se,80,100)
  126.       end
  127.     end
  128.    
  129.     snstar2006_66rpg.contents.draw_text(0,0,160,30,gain_text+gain_type+":")
  130.    
  131.     unless type == 0
  132.       snstar2006_66rpg.draw_item_name(string, 0, 30, true)
  133.       snstar2006_66rpg.contents.draw_text(0, 30, 160, 30, "×"+value.abs.to_s, 2)
  134.     else
  135.       snstar2006_66rpg.contents.draw_text(0,30,165,30,value.abs.to_s + "  "+ Vocab.currency_unit, 2)
  136.     end
  137.    
  138.     snstar2006_66rpg.opacity = 160
  139.    
  140.     for i in 0..50
  141.       Graphics.update
  142.     end
  143.    
  144.     for i in 0..10
  145.       snstar2006_66rpg.opacity -= 10
  146.       snstar2006_66rpg.contents_opacity -= 10
  147.       Graphics.update
  148.     end
  149.    
  150.     snstar2006_66rpg.dispose
  151.    
  152.   end

  153.   def show_gain_level_window(actor,value)
  154.     lvstring = Vocab::level
  155.         
  156.     snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100)
  157.     snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 30, snstar2006_66rpg.height - 30)
  158.    
  159.     if value >= 0
  160.       gain_text = "提升"
  161.       Audio.se_play($gain_lv_se,80,100)
  162.     else
  163.       gain_text = "降低"
  164.       Audio.se_play($loss_lv_se,80,100)
  165.     end
  166.    
  167.     snstar2006_66rpg.contents.draw_text(0, 0, 110, 30, actor.name)
  168.     string = lvstring+gain_text+value.abs.to_s+"级"
  169.     snstar2006_66rpg.contents.draw_text(0,30,160,30,string, 2)

  170.     snstar2006_66rpg.opacity = 160
  171.    
  172.     for i in 0..50
  173.       Graphics.update
  174.     end
  175.    
  176.     for i in 0..10
  177.       snstar2006_66rpg.opacity -= 10
  178.       snstar2006_66rpg.contents_opacity -= 10
  179.       Graphics.update
  180.     end
  181.    
  182.     snstar2006_66rpg.dispose

  183.   end
  184. end


  185. #==============================================================================
  186. # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
  187. #==============================================================================
复制代码
之前直接把VX的搬到VA用,结果有1个地方出错,而且等级提升那里没效果,我见没有人正式发布一下我就发一下吧。。。。暂时没什么问题
作者: 2825136    时间: 2012-1-31 23:04
本帖最后由 2825136 于 2012-1-31 23:09 编辑


提升显示的是什么等级啊?是物品的还是人物的?
另:谢谢
这个框里的颜色要在哪里改?


──2825136于2012-1-31 23:07补充以上内容’’
作者: xmheart    时间: 2012-1-31 23:16
本帖最后由 xmheart 于 2012-1-31 23:16 编辑

等级是人物等级。。。。颜色。。。你是不是有用那个[PSO]物品颜色描绘的脚本?
作者: 2825136    时间: 2012-1-31 23:29
本帖最后由 2825136 于 2012-1-31 23:31 编辑
xmheart 发表于 2012-1-31 23:16
等级是人物等级。。。。颜色。。。你是不是有用那个物品颜色描绘的脚本? ...


是的,不是字的颜色,是底图的颜色,我其它框的颜色是默认蓝,只有这一个框颜色变了。怎么有冲突吗?
作者: xmheart    时间: 2012-1-31 23:36
应该是这个框的透明度设置影响的。
你查找    snstar2006_66rpg.opacity = 160 后面那个数字是改变透明度的

作者: V5の小Su    时间: 2012-1-31 23:45
看起来不如VX版的舒服。总感觉怪怪的。应该再把提示的方框再改大一点,或者提示时可以有一些像渐变一样的特效就好了。

作者: xmheart    时间: 2012-1-31 23:50
我自己调整了一下坐标,现在看着舒服多了,不过我是用了分辨率放大到800*600的

未命名.jpg (85.25 KB, 下载次数: 48)

未命名.jpg

作者: xuzhengchi    时间: 2012-2-1 10:50
xmheart 发表于 2012-1-31 23:50
我自己调整了一下坐标,现在看着舒服多了,不过我是用了分辨率放大到800*600的 ...

LZ用的是什么字体?这个框的透明度是多少才能调出这种暗色的背景?还有怎么使这个框不自动消失(要自己点取消或者确定才会消失)?
作者: xmheart    时间: 2012-2-1 14:44
字体在http://font.knowsky.com/这里一大堆,你可以选择自己想要哪种适合你制作的游戏风格。我这个颜色是调数据库-系统-窗口颜色的。这个脚本没有设置自己点确定才消失窗口,只能设置消失时间


‘‘

根据雪流星大的话,

for i in 0..30
这个数字是调整窗口停留的时间,越大就越久

snstar2006_66rpg.opacity -= 30
snstar2006_66rpg.contents_opacity -= 30
这两个数字最好一样,调整的是窗口消失的频率,越大就越快


──xmheart于2012-2-2 19:30补充以上内容’’
作者: 月下耶鲁夫    时间: 2012-2-4 18:40
非常好用,大大的赞一个
作者: 姬文翔    时间: 2012-2-20 07:39
@xmheart我想问一下脚本调用的音效支持什么格式的音频文件啊?……我用MIDI貌似完全听不出有效果
作者: 562305484    时间: 2012-3-5 11:51
好东西收下谢谢
作者: diandiangel    时间: 2012-3-6 17:50
我想问一下,如果只想在物品得到时候显示,物品失去时不显示,怎么改,我不太会弄,请指教
作者: 红白机    时间: 2012-3-17 20:00
只是地图等物品提示吗?战斗结束后的物品能有提示吗
作者: Mr丶木头    时间: 2012-3-17 22:29
红白机 发表于 2012-3-17 20:00
只是地图等物品提示吗?战斗结束后的物品能有提示吗

战斗应该没有提示把,  
作者: 冰舞蝶恋    时间: 2012-3-21 12:08
咿。要是再把物品和贵重物品区分开就好了~


‘‘──冰舞蝶恋于2012-3-21 12:21补充以下内容

为什么我用了居然没反应- -。。莫非是冲突了。。
’’
作者: 非能    时间: 2012-5-12 14:54
啦啦啦。我发现一个问题呃。。如果字体大了肿么半撒?
作者: 漫步烟雨    时间: 2012-7-24 01:13
获得装备不现实提示 哦~
作者: gametl8r    时间: 2012-7-29 09:18
請問一下
我使用後蠻喜歡這個腳本的
可是物品名稱太長好像就會變像這樣

不知道要從哪調整
大大能教我一下嗎?
謝謝
作者: 1035041075    时间: 2012-8-3 12:10
很好用
作者: ♂雨    时间: 2012-8-9 12:39
本帖最后由 ♂雨 于 2012-8-9 12:40 编辑

LZ,我的框框怎么这么小,能告诉我出错在哪吗?
作者: 1035041075    时间: 2012-8-15 11:23
gametl8r 发表于 2012-7-29 09:18
請問一下
我使用後蠻喜歡這個腳本的
可是物品名稱太長好像就會變像這樣

第101 改大点,我改了这么大 snstar2006_66rpg = Window_Base.new((640-500)/2,128,350,100)
作者: 布里蓝    时间: 2012-8-18 13:48
想问下怎么延长提示出现时间
作者: ′芙兰朵露    时间: 2012-9-17 07:27
想知道如何改下这个框...如果改的话。脚本要改变么
作者: shenkf    时间: 2013-2-18 09:03
标题:
本帖最后由 shenkf 于 2013-2-18 09:05 编辑

好用,谢谢了~!!!,自己在改改看,换换颜色什么的,之前找的一直有冲突~!
作者: 诺粞    时间: 2013-4-23 19:17
框不够大,显示不完
作者: Baby丶小CC    时间: 2013-4-29 07:44
  1.       gain_text = "获得"   
  2.     else
  3.       gain_text = "失去"
  4.     end
  5.    
  6.     case type
  7. 这行
  8.     when 0
  9.       gain_type = "金钱"
  10.       if value >=0
  11.         Audio.se_play($gain_gold_se,80,100)
  12.       else
  13.         Audio.se_play("Audio/SE/"+"Item1",80,100)
  14.       end
  15.     when 1
  16.       gain_type = "物品"
  17.       string = $data_items[@params[0]]
  18.       if value >=0
  19.         Audio.se_play($gain_item_se,80,100)
  20.       else
  21.         Audio.se_play($loss_item_se,80,100)
  22.       end
  23.     when 2
  24.       gain_type = "武器"
  25.       string = $data_weapons[@params[0]]
  26.       if value >=0
  27.         Audio.se_play($gain_weapon_se,80,100)
  28.       else
  29.         Audio.se_play($loss_weapon_se,80,100)
  30.       end
  31.     when 3
  32.       gain_type = "防具"
复制代码

作者: 屈风    时间: 2013-10-9 09:23
可惜战斗中不能触发音效...
作者: taroxd    时间: 2013-11-23 20:24
本帖最后由 taroxd 于 2013-12-14 21:08 编辑

我只想说,代码太不美观了吧…… 要自己弄的时候改的累啊……

有个方法叫做 Graphics.wait(duration) 来着
作者: 我是女神会发光    时间: 2014-4-21 21:52
{:7_304:}{:7_304:}{:7_304:}非常不错 谢谢分享




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1