Project1

标题: 得失物品对话框一闪而过,如何能够延长显示时间? [打印本页]

作者: murphyR    时间: 2013-10-8 18:11
标题: 得失物品对话框一闪而过,如何能够延长显示时间?
本帖最后由 murphyR 于 2013-10-8 18:34 编辑

使用protosssony大神的整合脚本,得失物品弹出的对话框消失速度太快,不知该调整哪条脚本的哪条语句可以更改对话框显示时间?“得失物品”脚本中目测没有找到更改显示时间的项……谢谢大家!
@protosssony
附上得失物品脚本

#==============================================================================
# 本腳本來自www.66RPG.com,使用和轉載請保留此信息
# protosssonny修改版
#==============================================================================

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

# 開關定義:

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

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

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

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

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

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

$gain_item_se   = folder +"Recovery"  # 获得物品声效
$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])
    if @params[1] == 0
      $game_party.gain_reini($base_weapons[@params[0]], value.abs, @params[4])
    else
      $game_party.weapon_armor_lose_reini($base_weapons[@params[0]], value.abs, @params[4])
    end
    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])
    if @params[1] == 0
      $game_party.gain_reini($base_armors[@params[0]], value.abs, @params[4])
    else
      $game_party.weapon_armor_lose_reini($base_armors[@params[0]], value.abs, @params[4])
    end
    if $game_switches[$noshowarmor]==false
      show_gain_window(3, value)
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● 等级増減
  #--------------------------------------------------------------------------
  def command_316
    value = operate_value(@params[1], @params[2], @params[3])
    iterate_actor_id(@params[0]) do |actor|
      actor.change_level(actor.level + value, false)
      if @params[4]
        show_gain_level_window(actor,value)
      end
    end
    return true
  end

  
  def show_gain_window(type, value, string=nil)
    snstar2006_66rpg_item = $data_armors[@params[0]] if string == nil and type != 0
    snstar2006_66rpg = Window_Base.new((544-250)/2,142,250,132)
    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/"+"Shop",80,100)
      end
    when 1
      gain_type = "物品"
      string = $data_items[@params[0]] if string == nil
      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 = $base_weapons[@params[0]] if string == nil
      if value >=0
        Audio.se_play($gain_weapon_se,80,100)
      else
        Audio.se_play($loss_weapon_se,80,100)
      end
    when 3
      unless @params[0] == PA::CRYSTAL
        gain_type = "防具"
      else
        gain_type = "了"
      end  
      string = $base_armors[@params[0]] if string == nil
      if value >=0
        Audio.se_play($gain_armor_se,80,100)
      else
        Audio.se_play($loss_armor_se,80,100)
      end
    when 4
      gain_type = "防具"  
      string = $base_armors[@params[0]] if string == nil
      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,32,gain_text+gain_type+":")
   
    unless type == 0
      snstar2006_66rpg.draw_item_name(string, 28, 32, true)
      snstar2006_66rpg.contents.draw_text(0, 64, 150, 32, "×"+value.abs.to_s, 2)
    else
      snstar2006_66rpg.contents.draw_text(32,32,240,32,value.abs.to_s + "  "+ Vocab::gold)
    end
   
    snstar2006_66rpg.opacity = 160
   
    for i in 0..30
      Graphics.update
    end
   
    for i in 0..10
      snstar2006_66rpg.opacity -= 30
      snstar2006_66rpg.contents_opacity -= 30
      Graphics.update
    end
   
    snstar2006_66rpg.dispose
  end

  def show_gain_level_window(actor,value)
    lvstring = Vocab::level
        
    snstar2006_66rpg = Window_Base.new(58,128,200,100)
    snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
    if value >= 0
      gain_text = "提升"
      Audio.se_play($gain_lv_se,100,100)
    else
      gain_text = "降低"
      Audio.se_play($loss_lv_se,100,100)
    end
   
   
    snstar2006_66rpg.contents.draw_text(0, 0, 108, 32, actor.name)
    string = lvstring+gain_text+value.abs.to_s+"级"
    snstar2006_66rpg.contents.draw_text(32,32,160,32,string)

    snstar2006_66rpg.opacity = 160
  
    snstar2006_66rpg.dispose

  end
end
作者: 八云紫    时间: 2013-10-8 18:14
  1. for i in 0..30
  2.       Graphics.update
  3.     end
复制代码
这里的 30 就是.

然后是脚本请用脚本框. 好看的多
作者: murphyR    时间: 2013-10-8 18:26
八云紫 发表于 2013-10-8 18:14
这里的 30 就是.

然后是脚本请用脚本框. 好看的多

额额额 更改成0..60之后出现下列错误提示:

165行    snstar2006_66rpg.contents.draw_text(0,0,160,32,gain_text+gain_type+":")

TypeError:cannot convert nil into string...
作者: 八云紫    时间: 2013-10-8 18:29
murphyR 发表于 2013-10-8 18:26
额额额 更改成0..60之后出现下列错误提示:

165行    snstar2006_66rpg.contents.draw_text(0,0,160,32, ...

一定是你修改的时候弄错了什么地方了.

只修改 30 这个数字的话, 是不会有什么问题的.

作者: murphyR    时间: 2013-10-8 18:34
八云紫 发表于 2013-10-8 18:29
一定是你修改的时候弄错了什么地方了.

只修改 30 这个数字的话, 是不会有什么问题的.

额额额 我刚刚重新拷了一下脚本就好了…………多谢多谢!!!话说我现在不能评分是吧……也想给亲加个经验挖~~~~




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