Project1

标题: 得失物品提示VX版脚本 (增加等级升降提示) [打印本页]

作者: 雪流星    时间: 2008-1-31 08:14
标题: 得失物品提示VX版脚本 (增加等级升降提示)
得失物品提示VX版脚本

改自RMXP的得失物品脚本

默认用对话的方式…==”实在受不了
就把这个脚本改了改

多谢IamI大大的提醒
已修改提示後物品消失的BUG

增加等级升降提示


  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.   #--------------------------------------------------------------------------
  75.   def command_316
  76.     value = operate_value(@params[1], @params[2], @params[3])
  77.     iterate_actor_id(@params[0]) do |actor|
  78.       actor.change_level(actor.level + value, false)
  79.       if @params[4]
  80.         show_gain_level_window(actor,value)
  81.       end
  82.     end
  83.     return true
  84.   end

  85.   
  86.   def show_gain_window(type, value)
  87.     snstar2006_66rpg_item = $data_armors[@params[0]]
  88.     snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100)
  89.     snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
  90.     if value >= 0
  91.       gain_text = "獲得"   
  92.     else
  93.       gain_text = "失去"
  94.     end
  95.    
  96.     case type
  97.     when 0
  98.       gain_type = "金錢"
  99.       if value >=0
  100.         Audio.se_play($gain_gold_se,80,100)
  101.       else
  102.         Audio.se_play("Audio/SE/"+"Item1",80,100)
  103.       end
  104.     when 1
  105.       gain_type = "物品"
  106.       string = $data_items[@params[0]]
  107.       if value >=0
  108.         Audio.se_play($gain_item_se,80,100)
  109.       else
  110.         Audio.se_play($loss_item_se,80,100)
  111.       end
  112.     when 2
  113.       gain_type = "武器"
  114.       string = $data_weapons[@params[0]]
  115.       if value >=0
  116.         Audio.se_play($gain_weapon_se,80,100)
  117.       else
  118.         Audio.se_play($loss_weapon_se,80,100)
  119.       end
  120.     when 3
  121.       gain_type = "防具"
  122.       string = $data_armors[@params[0]]
  123.       if value >=0
  124.         Audio.se_play($gain_armor_se,80,100)
  125.       else
  126.         Audio.se_play($loss_armor_se,80,100)
  127.       end
  128.     end
  129.    
  130.     snstar2006_66rpg.contents.draw_text(0,0,160,32,gain_text+gain_type+":")
  131.    
  132.     unless type == 0
  133.       snstar2006_66rpg.draw_item_name(string, 28, 32, true)
  134.       snstar2006_66rpg.contents.draw_text(0, 32, 150, 32, "×"+value.abs.to_s, 2)
  135.     else
  136.       snstar2006_66rpg.contents.draw_text(32,32,240,32,value.abs.to_s + "  "+ Vocab::gold)
  137.     end
  138.    
  139.     snstar2006_66rpg.opacity = 160
  140.    
  141.     for i in 0..30
  142.       Graphics.update
  143.     end
  144.    
  145.     for i in 0..10
  146.       snstar2006_66rpg.opacity -= 30
  147.       snstar2006_66rpg.contents_opacity -= 30
  148.       Graphics.update
  149.     end
  150.    
  151.     snstar2006_66rpg.dispose
  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 - 32, snstar2006_66rpg.height - 32)
  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.    
  168.     snstar2006_66rpg.contents.draw_text(0, 0, 108, 32, actor.name)
  169.     string = lvstring+gain_text+value.abs.to_s+"级"
  170.     snstar2006_66rpg.contents.draw_text(32,32,160,32,string)

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

  184.   end
  185. end



  186. #==============================================================================
  187. # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
  188. #==============================================================================

复制代码

作者: 圣痕    时间: 2008-1-31 08:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: 5693744    时间: 2008-1-31 15:16
66不是弄了个么?这个不一样的?
作者: 雪流星    时间: 2008-1-31 16:08
修改了之前的音效播放功能


以下引用5693744于2008-1-31 7:16:41的发言:

66不是弄了个么?这个不一样的?


你说的是以前那个脚本吗?

这个是VX用的,以前的那个脚本在VX用了会出错

还是66也弄了一个VX版的?


作者: 5693744    时间: 2008-2-2 10:56
以下引用snstar2006于2008-1-31 8:08:18的发言:

还是66也弄了一个VX版的?



是的啊- -很早就弄了的....
作者: 慕羽凰    时间: 2008-2-2 18:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: IamI    时间: 2008-2-2 18:49
对话框闪完,增减物品就没了= =
作者推敲过这句话吗?
$game_party.gain_item(@params[0], value)

这个过程的原型是
  def gain_item(item, n, include_equip = false)
他的第一句话就是:
    number = item_number(item)

参数item是物品类型,不是数值类型,所以,脚本执行失败,(没出错不代表不存在错误)增减的物品全部没了。
作者: clamp135    时间: 2008-2-2 20:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-2-4 14:49
以下引用IamI于2008-2-2 10:49:59的发言:

参数item是物品类型,不是数值类型,所以,脚本执行失败,(没出错不代表不存在错误)增减的物品全部没了。


多谢指教
{/gg}没注意到XP与VX脚本的不同

修改好了
作者: 思妍    时间: 2008-2-5 05:52
75行发生了NoMethodError.underined method '[]'for nil:NiClass
-----------啥意思?
俺脚本盲{/gg}

我这边好像增加防具全都会出现这种现象。
作者: 雪流星    时间: 2008-2-5 09:35
增加等级升降提示
作者: Magic    时间: 2008-2-9 19:56
赞一个  好东西
作者: 鸭狐    时间: 2008-2-9 21:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: hjkk    时间: 2008-2-10 04:16
插入在哪?
作者: 火鸡三毛老大    时间: 2008-2-10 09:38
顶..最近刚用VX
作者: oceary    时间: 2008-2-14 07:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-2-14 10:22
以下引用hjkk于2008-2-9 20:16:21的发言:
插入在哪?

直接插在main前面就行了


以下引用鸭狐于2008-2-9 13:57:14的发言:
是全部覆盖还是选择覆盖?

不用覆蓋

以下引用oceary于2008-2-13 23:36:43的发言:
用右键快速建立的宝箱事件里自动生成的话还是显示?

會,因為用右鍵快速建立的事件也還是事件
不過要把系統自動生成的對話刪掉



作者: davidksjs    时间: 2008-2-19 13:24
貌似物品提示框闪的太快了没有看见什么东西就关闭了,请问如何可以把显示的时间变的长一些.
作者: 雪流星    时间: 2008-2-21 15:45
162行
for i in 0..30
这个数字是调整窗口停留的时间,越大就越久

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

这几个数值自己改一改
看你要多快多慢
作者: 御灵    时间: 2008-8-8 02:48
http://rpg.blue/web/htm/news1137.htm
vip+2
作者: ㄆ相    时间: 2008-8-23 19:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-8-23 20:01
请不要灌水+挖坟

main就是最下面的脚本

作者: zh99998    时间: 2008-8-28 14:36
我来挖下坟{/pz}
能不能当弹出提示框的时候游戏不暂停
http://rpg.blue/viewthread.php?tid=101013&ntime=2008%2D8%2D28+6%3A30%3A13
还有那个升级提示似乎无效,需要开关?还是BUG?
作者: 冯桐桐    时间: 2009-1-25 00:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2009-1-25 04:43
以下引用冯桐桐于2009-1-24 16:53:58的发言:
各位这个脚本插在哪里啊~?我新手..不会u

先去看看新手教学
作者: 怪蜀黍    时间: 2009-5-5 05:19
好东西啊!解决了一大难题!{/qiang} [LINE]1,#dddddd[/LINE]版主对此帖的评论:『挖坟+灌水』,积分『-10』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: shileiye    时间: 2009-5-7 16:59
有个问题·程序循环使游戏暂停·物品获取多了滞留时间就长了·
作者: 桑田百合    时间: 2009-7-7 10:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: mcow    时间: 2009-7-14 00:20
拿走了,谢谢~~




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