Project1

标题: 脚本又冲突嘞 [打印本页]

作者: №独孤剑→    时间: 2009-8-13 09:16
标题: 脚本又冲突嘞
RM_DNF老版的,开始战斗就‘RTAB连击计数-显示部分的61行发生了Errno::Erange Result too l arge - log 10’
结果过大了,把10调小还不行

#==============================================================================
#RTAB观光游第六站,连击效果+连击计数显示 (显示部分)
#==============================================================================
# ▼▲▼ XRXS_BP19. コンボ表示+ヒットボーナス ver.3β ▼▲▼ built 201409
# by 桜雅 在土

#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class XRXS_BP19
  #
  # コンボ持続時間[単位:F](40F が 一秒)
  #
  COMBOHIT_DURATION = 100
  #
  # スキン ファイル名
  #
  SKIN_NUMBER = "SixRice_Number.png"
  SKIN_HIT    = "SixRice_HITS.png"
end
class Game_Battler
  #
  # コンボヒットによるダメージ補正力/ヒット数[単位:%]
  #
  DAMAGE_INCREASE_PER_HIT = 1
end
#==============================================================================
# --- XRXS.ナンバースプライト スキン対応!  ---
#==============================================================================
class NumberSprite
  #--------------------------------------------------------------------------
  # ○ オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(skin)
    @skin = skin
    @sprites = []
    @width  = skin.width/10
    @height = skin.height
    set_digit(4) # 基本設定値
    set(0)
  end
  #--------------------------------------------------------------------------
  # ○ 桁の設定
  #--------------------------------------------------------------------------
  def set_digit(digit)
    @sprites.each{|sprite| sprite.dispose}
    @sprites.clear
    digit.times do
      sprite = Sprite.new
      sprite.bitmap = @skin
      sprite.z = 999
      sprite.src_rect.set(0, 0, @width, @height)
      @sprites.push(sprite)
    end
  end
  #--------------------------------------------------------------------------
  # ○ 値の設定
  #--------------------------------------------------------------------------
  def set(number)
    # 例外補正
    digit = Math.log10(number)
    if digit > @sprites.size
      set_digit(digit)
    end
    # 各桁の適用
    for sprite in @sprites
      sprite.src_rect.x = number%10 * @width
      number /= 10
    end
    # ゼロ表示 上から判定し、一度でも 0 でなければそこから表示
    zero_display = false
    for sprite in @sprites.reverse
      zero_display |= (sprite.src_rect.x != 0)
      sprite.visible = zero_display
    end
  end
  #--------------------------------------------------------------------------
  # ○ 座標などの設定の経由
  #--------------------------------------------------------------------------
  def x=(n)
    @sprites.each{|sprite|
      sprite.x = n
      n -= @width
    }
  end
  def y=(n)
    @sprites.each{|sprite| sprite.y = n }
  end
  def opacity=(n)
    @sprites.each{|sprite| sprite.opacity = n }
  end
  def dispose
    @sprites.each{|sprite| sprite.dispose }
  end
end

#==============================================================================
# □ Window_ComboHit
#------------------------------------------------------------------------------
#     戦闘中にコンボ数を表示する透明なウィンドウです。
#==============================================================================
class Window_ComboHit < Window_Base
  #--------------------------------------------------------------------------
  # ○ オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    @number = NumberSprite.new(RPG::Cache.windowskin(XRXS_BP19::SKIN_NUMBER))
     super(200, 80, 200, 80)
    self.opacity = 0
    self.z = 999
    self.visible = false
    self.contents = RPG::Cache.windowskin(XRXS_BP19::SKIN_HIT).dup
    @active = false
    @show_duration = 0
    @sliding_duration = 0
  end
  #--------------------------------------------------------------------------
  # ○ クリア ほか
  #--------------------------------------------------------------------------
  def clear
    self.visible = false
  end
  def x=(n)
    super
    @number.x = n if @number != nil
  end
  def y=(n)
    super
    @number.y = n if @number != nil
  end
  def contents_opacity=(n)
    super
    @number.opacity = n if @number != nil
  end
  def dispose
    @number.dispose
    super
  end
  #--------------------------------------------------------------------------
  # ○ リフレッシュ
  #--------------------------------------------------------------------------
  def refresh(hit_combo, duration)
    # 可視化
    self.contents_opacity = 255
    self.visible = true
    # 設定
    @show_duration    = duration
    @sliding_duration = 0
    # 描写
    @number.set(hit_combo)
  end
  #--------------------------------------------------------------------------
  # ○ フレーム更新
  #--------------------------------------------------------------------------
  def update
    if @sliding_duration > 0
      @sliding_duration -= 1
      self.contents_opacity -= 32
      self.x += 1
      if @sliding_duration == 0
        self.visible = false
      end
    elsif @show_duration > 0
      @show_duration -= 1
      if @show_duration == 0
        @sliding_duration = 8
      end
    end
  end
end

咋回事情吗?
作者: 白斑病赌东道    时间: 2009-8-14 05:01
log 10。。。。要改貌似也应该改大。。。虽然还是不明白这个脚本的意思。。。。
不过对数的真数不能是0。。。。难道把0代进去计算了??。。。




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