Project1

标题: RTAB连击部分脚本错误 [打印本页]

作者: 莳绱主锍    时间: 2009-1-20 01:14
标题: RTAB连击部分脚本错误
战斗时会错误,载图:



脚本,摘自热血物语RM-ROCKK
  1. #==============================================================================
  2. #RTAB观光游第六站,连击效果+连击计数显示 (显示部分)
  3. #==============================================================================
  4. # ▼▲▼ XRXS_BP19. コンボ表示+ヒットボーナス ver.3β ▼▲▼ built 201409
  5. # by 桜雅 在土

  6. #==============================================================================
  7. # □ カスタマイズポイント
  8. #==============================================================================
  9. class XRXS_BP19
  10.   #
  11.   # コンボ持続時間[単位:F](40F が 一秒)
  12.   #
  13.   COMBOHIT_DURATION = 100
  14.   #
  15.   # スキン ファイル名
  16.   #
  17.   SKIN_NUMBER = "SixRice_Number.png"
  18.   SKIN_HIT    = "SixRice_HITS.png"
  19. end
  20. class Game_Battler
  21.   #
  22.   # コンボヒットによるダメージ補正力/ヒット数[単位:%]
  23.   #
  24.   DAMAGE_INCREASE_PER_HIT = 1
  25. end
  26. #==============================================================================
  27. # --- XRXS.ナンバースプライト スキン対応!  ---
  28. #==============================================================================
  29. class NumberSprite
  30.   #--------------------------------------------------------------------------
  31.   # ○ オブジェクト初期化
  32.   #--------------------------------------------------------------------------
  33.   def initialize(skin)
  34.     @skin = skin
  35.     @sprites = []
  36.     @width  = skin.width/10
  37.     @height = skin.height
  38.     set_digit(4) # 基本設定値
  39.     set(0)
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ○ 桁の設定
  43.   #--------------------------------------------------------------------------
  44.   def set_digit(digit)
  45.     @sprites.each{|sprite| sprite.dispose}
  46.     @sprites.clear
  47.     digit.times do
  48.       sprite = Sprite.new
  49.       sprite.bitmap = @skin
  50.       sprite.z = 999
  51.       sprite.src_rect.set(0, 0, @width, @height)
  52.       @sprites.push(sprite)
  53.     end
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ○ 値の設定
  57.   #--------------------------------------------------------------------------
  58.   def set(number)
  59.     # 例外補正
  60.     digit = Math.log10(number)
  61.     if digit > @sprites.size
  62.       set_digit(digit)
  63.     end
  64.     # 各桁の適用
  65.     for sprite in @sprites
  66.       sprite.src_rect.x = number%10 * @width
  67.       number /= 10
  68.     end
  69.     # ゼロ表示 上から判定し、一度でも 0 でなければそこから表示
  70.     zero_display = false
  71.     for sprite in @sprites.reverse
  72.       zero_display |= (sprite.src_rect.x != 0)
  73.       sprite.visible = zero_display
  74.     end
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ○ 座標などの設定の経由
  78.   #--------------------------------------------------------------------------
  79.   def x=(n)
  80.     @sprites.each{|sprite|
  81.       sprite.x = n
  82.       n -= @width
  83.     }
  84.   end
  85.   def y=(n)
  86.     @sprites.each{|sprite| sprite.y = n }
  87.   end
  88.   def opacity=(n)
  89.     @sprites.each{|sprite| sprite.opacity = n }
  90.   end
  91.   def dispose
  92.     @sprites.each{|sprite| sprite.dispose }
  93.   end
  94. end

  95. #==============================================================================
  96. # □ Window_ComboHit
  97. #------------------------------------------------------------------------------
  98. #     戦闘中にコンボ数を表示する透明なウィンドウです。
  99. #==============================================================================
  100. class Window_ComboHit < Window_Base
  101.   #--------------------------------------------------------------------------
  102.   # ○ オブジェクト初期化
  103.   #--------------------------------------------------------------------------
  104.   def initialize
  105.     @number = NumberSprite.new(RPG::Cache.windowskin(XRXS_BP19::SKIN_NUMBER))
  106.      super(200, 80, 200, 80)
  107.     self.opacity = 0
  108.     self.z = 999
  109.     self.visible = false
  110.     self.contents = RPG::Cache.windowskin(XRXS_BP19::SKIN_HIT).dup
  111.     @active = false
  112.     @show_duration = 0
  113.     @sliding_duration = 0
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ○ クリア ほか
  117.   #--------------------------------------------------------------------------
  118.   def clear
  119.     self.visible = false
  120.   end
  121.   def x=(n)
  122.     super
  123.     @number.x = n if @number != nil
  124.   end
  125.   def y=(n)
  126.     super
  127.     @number.y = n if @number != nil
  128.   end
  129.   def contents_opacity=(n)
  130.     super
  131.     @number.opacity = n if @number != nil
  132.   end
  133.   def dispose
  134.     @number.dispose
  135.     super
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ○ リフレッシュ
  139.   #--------------------------------------------------------------------------
  140.   def refresh(hit_combo, duration)
  141.     # 可視化
  142.     self.contents_opacity = 255
  143.     self.visible = true
  144.     # 設定
  145.     @show_duration    = duration
  146.     @sliding_duration = 0
  147.     # 描写
  148.     @number.set(hit_combo)
  149.   end
  150.   #--------------------------------------------------------------------------
  151.   # ○ フレーム更新
  152.   #--------------------------------------------------------------------------
  153.   def update
  154.     if @sliding_duration > 0
  155.       @sliding_duration -= 1
  156.       self.contents_opacity -= 32
  157.       self.x += 1
  158.       if @sliding_duration == 0
  159.         self.visible = false
  160.       end
  161.     elsif @show_duration > 0
  162.       @show_duration -= 1
  163.       if @show_duration == 0
  164.         @sliding_duration = 8
  165.       end
  166.     end
  167.   end
  168. end
复制代码

作者: 静·界    时间: 2009-1-20 01:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 莳绱主锍    时间: 2009-1-20 04:05
这就是6饭的啊,我从热血物语RM那移到别的游戏就不行了




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