查看: 2306|回复: 3

[已经解决] 用了物品得失脚本打开物品栏报错

[复制链接]

爪子

梦石
0
星屑
1678
在线时间
882 小时
注册时间
2014-8-28
回帖
1058
发表于 2015-7-6 08:48:46 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
没有获得物品之前打开物品栏没有问题,
获得物品之后在打开物品栏就出现了问题。

QQ图片20150706084816.png

这是脚本,工程不太方便放
↓

[pre lang="ruby"]#==============================================================================
# 本腳本來自www.66RPG.com,使用和轉載請保留此信息
#==============================================================================

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

# 開關定義:

$noshowgold = 10                        # 不显示金钱得失

$noshowitem = 11                        # 不显示物品得失

$noshowweapon = 12                      # 不显示武器得失

$noshowarmor = 13                       # 不显示防具得失
# 以上開關,當打開的時候,獲得物品將不會提示,比如默認打開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[0], @params[1], @params[2])
    $game_party.gain_gold(value)
    if $game_switches[$noshowgold]==false
      show_gain_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[$noshowitem]==false
      show_gain_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[$noshowweapon]==false
      show_gain_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[$noshowarmor]==false
      show_gain_window(3, value)
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● 等级増減
  #--------------------------------------------------------------------------
  def command_316
    value = operate_value(@params[2], @params[3], @params[4])
    iterate_actor_var(@params[0], @params[1]) do |actor|
      actor.change_level(actor.level + value, @params[5])
      if @params[4]
        show_gain_level_window(actor,value)
      end
    end
    return true
  end
  
  def show_gain_window(type, value)
    snstar2006_66rpg_item = $data_armors[@params[0]]
    snstar2006_66rpg = Window_Base.new((640-200)/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[0]]
      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[0]]
      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[0]]
      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
   
  end

  def show_gain_level_window(actor,value)
    lvstring = Vocab::level
        
    snstar2006_66rpg = Window_Base.new((640-200)/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.dispose

  end
end


#==============================================================================
# 本腳本來自www.66RPG.com,使用和轉載請保留此信息
#==============================================================================[/pre]
个人坑《凝聚的祈愿》更新日记
网瘾少女的领域-Lofter
一时骂人一时爽,一直骂人一直爽^o^

无限の剣制

梦石
0
星屑
10450
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-7-6 10:31:35 | 显示全部楼层
试试用这个?http://taroxd.github.io/rgss/%E5 ... 8F%90%E7%A4%BA.html
如果用这个请注意这里的使用规约及说明http://taroxd.github.io/rgss/rules/
回复

使用道具 举报

梦石
4
星屑
4454
在线时间
6784 小时
注册时间
2014-1-6
回帖
4956

开拓者

发表于 2015-7-6 16:39:15 | 显示全部楼层
本帖最后由 龙和许也 于 2015-7-6 16:41 编辑

你哪里找来的?跟我的不一样啊~
  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. #==============================================================================
复制代码

点评

:P  发表于 2015-7-6 18:38
我勒个去。。。两个脚本不是一样么。。。害我折腾了半天结果一deff一模一样  发表于 2015-7-6 18:33
一定是用了不同脚本参混出的差错。  发表于 2015-7-6 16:43
还是会报错,跟1L那个一样  发表于 2015-7-6 16:41
回复

使用道具 举报

爪子

梦石
0
星屑
1678
在线时间
882 小时
注册时间
2014-8-28
回帖
1058
 楼主| 发表于 2015-7-6 16:39:44 | 显示全部楼层
VIPArcher 发表于 2015-7-6 10:31
试试用这个?http://taroxd.github.io/rgss/%E5%BE%97%E5%A4%B1%E7%89%A9%E5%93%81%E6%8F%90%E7%A4%BA.html ...

用这个会提示
1.png

点评

QAQ看来也没别的办法了  发表于 2015-7-6 20:11
那么绝对是脚本混搭出的差错了……实在不行就手打吧~=w=  发表于 2015-7-6 19:07
我插入了这个脚本啊。。就变成1L的那个样子了  发表于 2015-7-6 18:59
莫言姐姐要把这个脚本先插进去啦~http://taroxd.github.io/rgss/Taroxd%E5%9F%BA%E7%A1%80%E8%AE%BE%E7%BD%AE.html  发表于 2015-7-6 18:41
因为你没找TD触作对象QAQ  发表于 2015-7-6 18:19
个人坑《凝聚的祈愿》更新日记
网瘾少女的领域-Lofter
一时骂人一时爽,一直骂人一直爽^o^
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部