Project1

标题: 这个 敵のHP表示 脚本怎么在不显示血条的同时也显示状态? [打印本页]

作者: asddsa16085    时间: 2024-2-12 20:52
标题: 这个 敵のHP表示 脚本怎么在不显示血条的同时也显示状态?
本帖最后由 asddsa16085 于 2024-2-12 21:02 编辑

这个脚本是显示血条的一个脚本,自带了显示状态,他提供了一个<HIDE_HP>指令可以隐藏血条,我想配合mog的boss血条脚本一起使用,但是他在boss隐藏血条后状态也不显示了,怎么在使用<HIDE_HP>指令隐藏血条后仍旧显示状态呢?
  1. #==============================================================================
  2. # ■ 敵のHP表示
  3. #   @version 0.9 14/06/23
  4. #   @author さば缶
  5. #------------------------------------------------------------------------------
  6. #  敵キャラの状態を表示します
  7. #   表示したくないステートは、メモ欄に
  8. #   <非表示>
  9. #   と入力してください
  10. #==============================================================================
  11. module Saba
  12.   module SesUi
  13.    
  14.     # テキストカラーやHPバーカラーにシステムカラーを使う場合、true に設定します。
  15.     USE_SYSTEM_COLOR = false
  16.    
  17.     # HP表示ボックスのy座標です。
  18.     CONTAINER_Y       = 300
  19.    
  20.     # 基準点の座標を敵の上部にする場合true に設定します
  21.     # デフォルトは敵の下部の座標
  22.     # その場合、↑の CONTAINER_Y の値分だけ下に表示されます
  23.     ANCHOR_TOP = true
  24.     # これ以上、上には表示されません
  25.     MIN_POS_Y         = 60
  26.    
  27.     # HPのy座標を敵の座標にあわせて変化させる場合true
  28.     # その場合、↑の CONTAINER_Y の値分だけ敵の下に表示されます
  29.     RELATIVE_POS      = true
  30.     # これ以上、下には表示されません
  31.     MAX_POS_Y         = 320
  32.     #--------------------------------------------------------------------------
  33.     # ● テキスト関係
  34.     #--------------------------------------------------------------------------
  35.     # HPテキストを表示する場合true、表示しない場合false
  36.     SHOW_HP_TEXT      = false#true
  37.    
  38.    
  39.     # HPラベルのテキストです。
  40.     LABEL             = "HP"
  41.    
  42.     # HPラベルの色です。システムカラーを使う場合無視されます。
  43.     LABEL_COLOR  = Color.new(100, 100, 255)
  44.    
  45.     # HPラベルのフォントサイズです。
  46.     LABEL_FONT_SIZE   = 25
  47.    
  48.    
  49.     # HPの値の色です。システムカラーを使う場合無視されます。
  50.     VALUE_COLOR  = Color.new(255, 255, 255)
  51.    
  52.     # HPの値のフォントサイズです。
  53.     VALUE_FONT_SIZE   = 25
  54.    
  55.     # HPの値の基準点です。0=左揃え 1=中央揃え 2=右揃え
  56.     VALUE_ALIGN       = 1
  57.    
  58.    
  59.     # コンテナの中心からの、HPラベルのX座標の相対位置です。
  60.     TEXT_OFFSET_X  = -35
  61.    
  62.     # コンテナの中心からの、HPラベルのY座標の相対位置です。
  63.     TEXT_OFFSET_Y  = 0
  64.    
  65.     # HPラベルの横幅です。
  66.     TEXT_WIDTH     = 40
  67.    
  68.    
  69.     # コンテナの中心からの、HPの値のX座標の相対位置です。
  70.     VALUE_OFFSET_X = -5
  71.    
  72.     # コンテナの中心からの、HPの値のY座標の相対位置です。
  73.     VALUE_OFFSET_Y = 0
  74.    
  75.     # HPの値の横幅です。
  76.     VALUE_WIDTH    = 150
  77.    
  78.     #--------------------------------------------------------------------------
  79.     # ● HP MPバー関係
  80.     #--------------------------------------------------------------------------
  81.     # HPバーを表示する場合true、表示しない場合false
  82.     SHOW_HP_BAR      = true
  83.    
  84.     # MPバーを表示する場合true、表示しない場合false
  85.     SHOW_MP_BAR      = false
  86.     # 最大MPが0の敵のMPバーを表示する場合true、表示しない場合false
  87.     SHOW_MMP0_MP_BAR = false
  88.     # MPバーの座標
  89.     MP_OFFSET_Y      = 9
  90.    
  91.     # 背景に画像を使う場合 true に設定します。
  92.     # true の場合、Graphics/System/gauge_bg.png が使われます。
  93.     USE_BACKGROUND_IMAGE = true
  94.    
  95.     BACKGROUND_IMAGE_FILE = "gauge_bg"
  96.    
  97.     # 背景画像の、左端からゲージ本体までの幅です。
  98.     MARGIN_LEFT = 3
  99.    
  100.     # 背景画像の、右端からゲージ本体までの幅です。
  101.     MARGIN_RIGHT = 3
  102.    
  103.     # 背景画像の y の相対値です。
  104.     BG_OFFSET_Y = -3
  105.    
  106.     # Z深度です。この値が大きいほど、手前に表示されます。
  107.     Z_DEPTH = 98#100
  108.    
  109.     # HPバーの背景色です。システムカラーを使う場合無視されます。
  110.     BAR_BG_COLOR        = Color.new(50, 50, 50, 70)
  111.    
  112.     BAR_BORDER_COLOR    = Color.new(0, 0, 0)
  113.    
  114.     # HPバーの前景色です。システムカラーを使う場合無視されます。
  115.     BAR_FG_COLOR_1        = Color.new(200, 50, 0)
  116.    
  117.     # HPバーの前景色です。システムカラーを使う場合無視されます。
  118.     BAR_FG_COLOR_2        = Color.new(200, 50, 50)
  119.    
  120.     # MPバーの前景色です。システムカラーを使う場合無視されます。
  121.     BAR_FG_MP_COLOR_1     = Color.new(255, 0, 0)
  122.    
  123.     # MPバーの前景色です。システムカラーを使う場合無視されます。
  124.     BAR_FG_MP_COLOR_2     = Color.new(255, 200, 120)
  125.    

  126.     # コンテナの中心からの、HPバーのY座標の相対位置です。
  127.     BAR_OFFSET_Y  = 15
  128.    
  129.     # HPバーの横幅です。
  130.     BAR_WIDTH  = 80
  131.    
  132.     # HPバーの高さです。
  133.     BAR_HEIGHT  = 4
  134.    
  135.     # HPバーの最低の長さです。HPが1でも最低この長さが表示されます。
  136.     BAR_MIN_WIDTH = 2

  137.     # バーが重なっていた場合にずらす y の値です。
  138.     SHIFT_Y = -15
  139.    
  140.     #--------------------------------------------------------------------------
  141.     # ● ステート関係
  142.     #--------------------------------------------------------------------------
  143.     # ステートが2ページ以上にわたるとき、それが切り替わるフレーム数
  144.     STATE_PAGE_CHANGE_INTERVAL = 60
  145.     # ステートを表示する場合true、表示しない場合false
  146.     SHOW_STATE      = true
  147.     # ステートアイコンの最大表示数です。
  148.     MAX_NUM_STATE   = 4
  149.     # コンテナの中心からの、ステートのX座標の相対位置です。
  150.     STATE_OFFSET_X = -42
  151.     # コンテナの中心からの、ステートのY座標の相対位置です。
  152.     STATE_OFFSET_Y = -11
  153.   end
  154.   
  155.   module SesSys
  156.     # この文字列を敵のメモ欄に入れると、その敵のHPが表示されなくなります。
  157.     HIDE_HP_MARKER = "<HIDE_HP>"
  158.    
  159.     def define_note?(item, name)
  160.       return false if item == nil
  161.       return item.note.include?(HIDE_HP_MARKER)
  162.     end
  163.   end
  164. end



  165. #==============================================================================
  166. # ここから実装です。
  167. #==============================================================================
  168. $imported = {} if $imported == nil
  169. $imported["ShowEnemyStatus"] = true

  170. class Game_Temp
  171.   #--------------------------------------------------------------------------
  172.   # ● 公開インスタンス変数
  173.   #--------------------------------------------------------------------------
  174.   attr_accessor   :saba_lock_hp_view
  175.   #--------------------------------------------------------------------------
  176.   # ● オブジェクト初期化
  177.   #--------------------------------------------------------------------------
  178.   alias saba_enemyhp_initialize initialize
  179.   def initialize
  180.     saba_enemyhp_initialize
  181.     @saba_lock_hp_view = false
  182.   end
  183. end

  184. class Window_BattleLog
  185.   #--------------------------------------------------------------------------
  186.   # ● クリティカルヒットの表示
  187.   #--------------------------------------------------------------------------
  188.   alias saba_enemyhp_display_critical display_critical
  189.   def display_critical(target, item)
  190.     $game_temp.saba_lock_hp_view = true if target.result.critical
  191.     saba_enemyhp_display_critical(target, item)
  192.     $game_temp.saba_lock_hp_view = false
  193.   end
  194. end

  195. class Sprite_EnemyStatus < Sprite_Base
  196.   include Saba::SesSys
  197.   include Saba::SesUi
  198.   WLH = 24                  # 行の高さ基準値 (Window Line Height)
  199.   #--------------------------------------------------------------------------
  200.   # ● オブジェクト初期化
  201.   #     viewport : ビューポート
  202.   #--------------------------------------------------------------------------
  203.   def initialize(viewport, enemy_sprites)
  204.     super(viewport)
  205.     @enemy_sprites = enemy_sprites
  206.     @page_change_wait = 0
  207.     @page_count = 0
  208.     self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  209.     self.bitmap.font.size = 25
  210.     @windowskin = Cache.system("Window")
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ● 使用したリソースを解放します。
  214.   #--------------------------------------------------------------------------
  215.   def dispose
  216.     self.bitmap.dispose
  217.     super
  218.   end
  219.   #--------------------------------------------------------------------------
  220.   # ● ステータス情報を更新します。
  221.   #--------------------------------------------------------------------------
  222.   def update
  223.     super
  224.     return if $game_temp.saba_lock_hp_view
  225.    
  226.     if no_change?
  227.       @page_change_wait += 1
  228.       return if @page_change_wait < STATE_PAGE_CHANGE_INTERVAL
  229.       @page_change_wait = 0
  230.       @page_count += 1
  231.     else
  232.       @page_change_wait = 0
  233.     end
  234.     save_enemy_status
  235.     self.bitmap.clear
  236.     draw_status
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● ステートのページ数取得
  240.   #--------------------------------------------------------------------------
  241.   def state_page_count
  242.     n = 1
  243.     @enemy_sprites.size.times do |i|
  244.       n = [(@enemy_states[i].size + @enemy_buff_icons[i].size) / MAX_NUM_STATE, n].max
  245.     end
  246.     return n
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # ● 敵のHPに変化があったかどうかを調べます。毎回描画するのを防ぐためです。
  250.   # @return 変化があった場合 true、なかった場合 false
  251.   #--------------------------------------------------------------------------
  252.   def no_change?
  253.     return false if @enemy_hps == nil
  254.     @enemy_sprites.size.times do |i|
  255.       enemy = @enemy_sprites[i].battler
  256.       return false unless @enemy_hps[i] == enemy.hp
  257.       return false unless @enemy_mps[i] == enemy.mp
  258.       return false unless @enemy_exists[i] == enemy.exist?
  259.       return false unless @enemy_states[i] == enemy.states
  260.       return false unless @enemy_buff_icons[i] == enemy.buff_icons
  261.     end
  262.     return true
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ● 敵のHPと状態を覚えておきます。
  266.   #--------------------------------------------------------------------------
  267.   def save_enemy_status
  268.     @enemy_hps ||= []
  269.     @enemy_mps ||= []
  270.     @enemy_exists ||= []
  271.     @enemy_states ||= []
  272.     @enemy_buff_icons ||= []
  273.     @enemy_sprites.size.times do |i|
  274.       enemy = @enemy_sprites[i].battler
  275.       @enemy_hps[i] = enemy.hp
  276.       @enemy_mps[i] = enemy.mp
  277.       @enemy_exists[i] = enemy.exist?
  278.       @enemy_states[i] = enemy.states
  279.       @enemy_buff_icons[i] = enemy.buff_icons
  280.     end
  281.   end
  282.   #--------------------------------------------------------------------------
  283.   # ● ステータス情報を描画します。
  284.   #--------------------------------------------------------------------------
  285.   def draw_status
  286.     old_x = 0
  287.     can_shift = false
  288.     enemies = @enemy_sprites.clone.sort{|a, b| a.x <=> b.x}
  289.     enemies.size.times do |index|
  290.       enemy_sprite = enemies[index]
  291.       next_enemy = enemies[index + 1]
  292.       next_enemy_x = next_enemy == nil ? 1000 : next_enemy.x
  293.       enemy = enemy_sprite.battler
  294.       
  295.       if (! enemy.exist?) || enemy.dead?
  296.         old_x = enemy_sprite.x
  297.         can_shift = ! can_shift
  298.         next
  299.       end
  300.       next if define_note?(enemy.enemy, HIDE_HP_MARKER)

  301.       shift = false
  302.       if SHOW_HP_BAR || SHOW_MP_BAR
  303.         shift = draw_hp_mp_bar(enemy_sprite, old_x, next_enemy_x, can_shift)
  304.       end
  305.       if SHOW_STATE
  306.         draw_state(enemy_sprite, shift)
  307.       end
  308.       if SHOW_HP_TEXT
  309.         draw_hp_label(enemy_sprite)
  310.         draw_hp_value(enemy_sprite)
  311.       end
  312.       
  313.       old_x = enemy_sprite.x
  314.       can_shift = ! can_shift
  315.     end
  316.   end
  317.   def container_y(enemy_sprite)
  318.     if RELATIVE_POS
  319.       return [CONTAINER_Y + enemy_sprite.y, MAX_POS_Y].min
  320.     elsif ANCHOR_TOP

  321.       return [CONTAINER_Y + enemy_sprite.y - enemy_sprite.height, MIN_POS_Y].max
  322.     else
  323.       return CONTAINER_Y
  324.     end
  325.   end
  326.   #--------------------------------------------------------------------------
  327.   # ● 指定のエネミーのHPラベルを描画します。
  328.   #    Sprite enemy_sprite : HPラベルを描画するエネミースプライト
  329.   #--------------------------------------------------------------------------
  330.   def draw_hp_label(enemy_sprite)
  331.     x = enemy_sprite.x
  332.     y = container_y(enemy_sprite)
  333.     offset_x = Saba::SesUi::TEXT_OFFSET_X
  334.     offset_y = Saba::SesUi::TEXT_OFFSET_Y
  335.     x += offset_x
  336.     y += offset_y
  337.     width = Saba::SesUi::TEXT_WIDTH
  338.    
  339.     self.bitmap.font.size = Saba::SesUi::LABEL_FONT_SIZE
  340.     self.bitmap.font.color = label_color
  341.     label = Saba::SesUi::LABEL
  342.     self.bitmap.draw_text(x, y, width, WLH, label)
  343.   end
  344.   #--------------------------------------------------------------------------
  345.   # ● 指定のエネミーのHPの値を描画します。
  346.   #    Sprite enemy_sprite : HPの値を描画するエネミースプライト
  347.   #--------------------------------------------------------------------------
  348.   def draw_hp_value(enemy_sprite)
  349.     x = enemy_sprite.x
  350.     y = container_y(enemy_sprite)
  351.     offset_x = Saba::SesUi::VALUE_OFFSET_X
  352.     offset_y = Saba::SesUi::VALUE_OFFSET_Y
  353.     x += offset_x
  354.     y += offset_y
  355.     width = Saba::SesUi::VALUE_WIDTH
  356.    
  357.     self.bitmap.font.size = VALUE_FONT_SIZE
  358.     self.bitmap.font.color = value_color
  359.     enemy = enemy_sprite.battler
  360.     align = Saba::SesUi::VALUE_ALIGN
  361.     self.bitmap.draw_text(x, y, width, WLH, enemy.hp.to_s, align)
  362.   end
  363.   #--------------------------------------------------------------------------
  364.   # ● 指定のエネミーのHPとMPのバーを描画します。
  365.   #    Sprite enemy_sprite : HPのバーを描画するエネミースプライト
  366.   #--------------------------------------------------------------------------
  367.   def draw_hp_mp_bar(enemy_sprite, old_x, next_x, can_shift)
  368.     x = enemy_sprite.x
  369.     y = container_y(enemy_sprite)
  370.     width = BAR_WIDTH
  371.     offset_x = -width / 2
  372.     offset_y = BAR_OFFSET_Y
  373.       
  374.     if can_shift
  375.       if USE_BACKGROUND_IMAGE
  376.         margin = MARGIN_LEFT + MARGIN_RIGHT
  377.       else
  378.         margin = 4
  379.       end
  380.       if x + width + margin > next_x || old_x + width + margin > x
  381.         y += SHIFT_Y
  382.         shift = true
  383.       end
  384.     else
  385.       shift = false
  386.     end

  387.     x += offset_x
  388.     y += offset_y
  389.     height = BAR_HEIGHT
  390.     enemy = enemy_sprite.battler
  391.    
  392.     if SHOW_HP_BAR
  393.       draw_background(x, y, width, height)
  394.    
  395.       width = width * enemy.hp / enemy.mhp
  396.       width = BAR_MIN_WIDTH if width < BAR_MIN_WIDTH
  397.       self.bitmap.gradient_fill_rect(x, y, width, height, hp_gauge_color1, hp_gauge_color2)
  398.     end
  399.    
  400.     if SHOW_MP_BAR
  401.       if enemy.mmp == 0 && ! SHOW_MMP0_MP_BAR
  402.         return shift
  403.       end
  404.       y += MP_OFFSET_Y
  405.       width = BAR_WIDTH
  406.       draw_background(x, y, width, height)
  407.    
  408.       if enemy.mmp > 0
  409.         width = width * enemy.mp / enemy.mmp
  410.       else
  411.         width = 0
  412.       end
  413.       self.bitmap.gradient_fill_rect(x, y, width, height, mp_gauge_color1, mp_gauge_color2)
  414.     end
  415.     return shift
  416.   end
  417.   def draw_state(enemy_sprite, shift)
  418.     x = enemy_sprite.x
  419.     y = container_y(enemy_sprite)
  420.     offset_x = Saba::SesUi::STATE_OFFSET_X
  421.     offset_y = Saba::SesUi::STATE_OFFSET_Y
  422.     x += offset_x
  423.     y += offset_y
  424.     enemy_battler = enemy_sprite.battler
  425.     max_page = (enemy_battler.states.size + enemy_battler.buff_icons.size-1) / MAX_NUM_STATE + 1
  426.     max_page = [max_page, 1].max
  427.     page = @page_count % max_page
  428.     start = page * MAX_NUM_STATE
  429.     index = 0
  430.     count = 0
  431.     y += SHIFT_Y if shift
  432.     for state in enemy_battler.states
  433.       next if state.saba_invisible?
  434.       return if count == MAX_NUM_STATE
  435.       if index < start
  436.         index += 1
  437.         next
  438.       end
  439.       draw_icon(state.icon_index, x + 21 * count, y)
  440.       count += 1
  441.     end
  442.     for buff in enemy_battler.buff_icons
  443.       return if count == MAX_NUM_STATE
  444.       if index < start
  445.         index += 1
  446.         next
  447.       end
  448.       draw_icon(buff, x + 21 * count, y)
  449.       count += 1
  450.     end
  451.   end
  452.   #--------------------------------------------------------------------------
  453.   # ● アイコンの描画
  454.   #     icon_index : アイコン番号
  455.   #     x          : 描画先 X 座標
  456.   #     y          : 描画先 Y 座標
  457.   #     enabled    : 有効フラグ。false のとき半透明で描画
  458.   #--------------------------------------------------------------------------
  459.   def draw_icon(icon_index, x, y, enabled = true)
  460.     bitmap = Cache.system("Iconset")
  461.     rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  462.     self.bitmap.blt(x, y, bitmap, rect, enabled ? 255 : 128)
  463.   end
  464.   def draw_background(x, y, width, height)
  465.    
  466.     if Saba::SesUi::USE_BACKGROUND_IMAGE
  467.       margin_l = Saba::SesUi::MARGIN_LEFT
  468.       margin_r = Saba::SesUi::MARGIN_RIGHT
  469.       x -= margin_l
  470.       y += Saba::SesUi::BG_OFFSET_Y
  471.       image = Cache.system(Saba::SesUi::BACKGROUND_IMAGE_FILE)
  472.       self.bitmap.blt(x, y, image, Rect.new(0, 0, margin_l, image.height))
  473.       self.bitmap.stretch_blt(Rect.new(x + margin_l, y, width, image.height), image, Rect.new(margin_l, 0, image.width - margin_l - margin_r, image.height))
  474.       self.bitmap.blt(x + width + margin_l, y, image, Rect.new(image.width - margin_r, 0, margin_r, image.height))
  475.     else
  476.       color = Saba::SesUi::BAR_BORDER_COLOR
  477.       self.bitmap.fill_rect(x - 1, y - 1, width + 2, height + 2, color)

  478.       color = Saba::SesUi::BAR_BG_COLOR
  479.       self.bitmap.fill_rect(x, y, width, height, color)
  480.     end
  481.   end
  482.   #--------------------------------------------------------------------------
  483.   # ● HP ゲージの色 1 を返します。
  484.   #--------------------------------------------------------------------------
  485.   def hp_gauge_color1
  486.     if USE_SYSTEM_COLOR
  487.       return text_color(20)
  488.     else
  489.       return BAR_FG_COLOR_1
  490.     end
  491.   end
  492.   #--------------------------------------------------------------------------
  493.   # ● HP ゲージの色 2 を返します。
  494.   #--------------------------------------------------------------------------
  495.   def hp_gauge_color2

  496.     if USE_SYSTEM_COLOR
  497.       return text_color(21)
  498.     else
  499.       return BAR_FG_COLOR_2
  500.     end
  501.   end
  502.   #--------------------------------------------------------------------------
  503.   # ● MP ゲージの色 1 を返します。
  504.   #--------------------------------------------------------------------------
  505.   def mp_gauge_color1
  506.     if USE_SYSTEM_COLOR
  507.       return text_color(22)
  508.     else
  509.       return BAR_FG_MP_COLOR_1
  510.     end
  511.   end
  512.   #--------------------------------------------------------------------------
  513.   # ● MP ゲージの色 2 を返します。
  514.   #--------------------------------------------------------------------------
  515.   def mp_gauge_color2

  516.     if USE_SYSTEM_COLOR
  517.       return text_color(23)
  518.     else
  519.       return BAR_FG_MP_COLOR_2
  520.     end
  521.   end
  522.   #--------------------------------------------------------------------------
  523.   # ● HPラベルの文字色を返します。
  524.   #--------------------------------------------------------------------------
  525.   def label_color
  526.     if Saba::SesUi::USE_SYSTEM_COLOR
  527.       return text_color(16)
  528.     else
  529.       return Saba::SesUi::LABEL_COLOR
  530.     end
  531.   end
  532.   #--------------------------------------------------------------------------
  533.   # ● HPの値の文字色を返します。
  534.   #--------------------------------------------------------------------------
  535.   def value_color
  536.     if Saba::SesUi::USE_SYSTEM_COLOR
  537.       return text_color(0)
  538.     else
  539.       return Saba::SesUi::VALUE_COLOR
  540.     end
  541.   end
  542.   #--------------------------------------------------------------------------
  543.   # ● 文字色を返します。
  544.   #     n : 文字色番号 (0~31)
  545.   #--------------------------------------------------------------------------
  546.   def text_color(n)
  547.     x = 64 + (n % 8) * 8
  548.     y = 96 + (n / 8) * 8
  549.     return @windowskin.get_pixel(x, y)
  550.   end
  551. end


  552. #==============================================================================
  553. # Sprite_EnemyStatusを使うように設定
  554. #==============================================================================
  555. class Spriteset_Battle
  556.   #--------------------------------------------------------------------------
  557.   # ● エネミーステータススプライトを作成します。
  558.   #  createEnemies と update の間に呼ばれる必要があるため、
  559.   #  タイマー作成時に一緒に作成しています。
  560.   #--------------------------------------------------------------------------
  561.   alias create_timer_SabaEnemyStatus create_timer
  562.   def create_timer
  563.     @saba_enemyStatusSprite = Sprite_EnemyStatus.new(@saba_enemyStatusViewport, @enemy_sprites)
  564.     create_timer_SabaEnemyStatus
  565.   end
  566.   #--------------------------------------------------------------------------
  567.   # ● エネミーステータススプライトを破棄します。
  568.   #  同じくタイマー破棄時に一緒に破棄しています。
  569.   #--------------------------------------------------------------------------
  570.   alias dispose_timer_SabaEnemyStatus dispose_timer
  571.   def dispose_timer
  572.     @saba_enemyStatusSprite.dispose
  573.     dispose_timer_SabaEnemyStatus
  574.   end
  575.   #--------------------------------------------------------------------------
  576.   # ● エネミーステータスビューポートを作成します。
  577.   #--------------------------------------------------------------------------
  578.   alias create_viewports_SabaEnemyStatus create_viewports
  579.   def create_viewports
  580.     @saba_enemyStatusViewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
  581.     @saba_enemyStatusViewport.z = Saba::SesUi::Z_DEPTH
  582.     create_viewports_SabaEnemyStatus
  583.   end
  584.   #--------------------------------------------------------------------------
  585.   # ● エネミーステータスビューポートを破棄します。
  586.   #--------------------------------------------------------------------------
  587.   alias dispose_viewports_SabaEnemyStatus dispose_viewports
  588.   def dispose_viewports
  589.     dispose_viewports_SabaEnemyStatus
  590.     @saba_enemyStatusViewport.dispose
  591.   end
  592.   #--------------------------------------------------------------------------
  593.   # ● エネミーステータスを更新します。
  594.   #--------------------------------------------------------------------------
  595.   alias update_viewports_SabaEnemyStatus update_viewports
  596.   def update_viewports
  597.     update_viewports_SabaEnemyStatus
  598.     @saba_enemyStatusSprite.update
  599.   end
  600.   #--------------------------------------------------------------------------
  601.   # ● ビューポートの更新
  602.   #--------------------------------------------------------------------------
  603.   alias saba_hp_update_viewports update_viewports
  604.   def update_viewports
  605.     saba_hp_update_viewports
  606.     @saba_enemyStatusSprite.ox = $game_troop.screen.shake
  607.   end
  608. end

  609. class RPG::State
  610.   def saba_invisible?
  611.     @saba_invisible ||= self.note.include?("<非表示>")
  612.   end
  613. end
复制代码





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