设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1658|回复: 22
打印 上一主题 下一主题

[已经解决] 请问如何设置让脚本在某角色存在时触发

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2017-1-18
帖子
50
跳转到指定楼层
1
发表于 2017-1-20 19:50:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我导入了血量显示脚本,想让该脚本在某角色存在时才会显示敌人血量,我该怎么做?
翻墙翻到的,希望大佬们能看懂日文= =

#__END__
#==============================================================================
# ■ 敵のHP表示
#   @version 0.8 13/08/08
#   @author さば缶
#------------------------------------------------------------------------------
#  敵キャラの状態を表示します
#==============================================================================
module Saba
  module SesUi
   
    # テキストカラーやHPバーカラーにシステムカラーを使う場合、true に設定します。
    USE_SYSTEM_COLOR = true
   
    # HP表示ボックスのy座標です。
    CONTAINER_Y       = 300 #275
   
    # 基準点の座標を敵の上部にする場合true に設定します
    # デフォルトは敵の下部の座標
    # その場合、↑の CONTAINER_Y の値分だけ下に表示されます
    ANCHOR_TOP = false
    # これ以上、上には表示されません
    MIN_POS_Y         = 60
   
    # HPのy座標を敵の座標にあわせて変化させる場合true
    # その場合、↑の CONTAINER_Y の値分だけ敵の下に表示されます
    RELATIVE_POS      = false
    # これ以上、下には表示されません
    MAX_POS_Y         = 300 #275
   
    #--------------------------------------------------------------------------
    # ● テキスト関係
    #--------------------------------------------------------------------------
    # HPテキストを表示する場合true、表示しない場合false
    SHOW_HP_TEXT      = true
   
   
    # HPラベルのテキストです。
    LABEL             = "HP"
   
    # HPラベルの色です。システムカラーを使う場合無視されます。
    LABEL_COLOR  = Color.new(180, 180, 255)
   
    # HPラベルのフォントサイズです。
    LABEL_FONT_SIZE   = 22
   
   
    # HPの値の色です。システムカラーを使う場合無視されます。
    VALUE_COLOR  = Color.new(255, 255, 255)
   
    # HPの値のフォントサイズです。
    VALUE_FONT_SIZE   = 22
   
    # HPの値の基準点です。0=左揃え 1=中央揃え 2=右揃え
    VALUE_ALIGN       = 1
   
   
    # コンテナの中心からの、HPラベルのX座標の相対位置です。
    TEXT_OFFSET_X  = -35
   
    # コンテナの中心からの、HPラベルのY座標の相対位置です。
    TEXT_OFFSET_Y  = 0
   
    # HPラベルの横幅です。
    TEXT_WIDTH     = 40
   
   
    # コンテナの中心からの、HPの値のX座標の相対位置です。
    VALUE_OFFSET_X = -5
   
    # コンテナの中心からの、HPの値のY座標の相対位置です。
    VALUE_OFFSET_Y = 0
   
    # HPの値の横幅です。
    VALUE_WIDTH    = 40
   
    #--------------------------------------------------------------------------
    # ● HP MPバー関係
    #--------------------------------------------------------------------------
    # HPバーを表示する場合true、表示しない場合false
    SHOW_HP_BAR      = true
   
    # MPバーを表示する場合true、表示しない場合false
    SHOW_MP_BAR      = false
    # 最大MPが0の敵のMPバーを表示する場合true、表示しない場合false
    SHOW_MMP0_MP_BAR = false
    # MPバーの座標
    MP_OFFSET_Y      = 9
   
    # 背景に画像を使う場合 true に設定します。
    # true の場合、Graphics/System/gauge_bg.png が使われます。
    USE_BACKGROUND_IMAGE = true
   
    BACKGROUND_IMAGE_FILE = "gauge_bg"
   
    # 背景画像の、左端からゲージ本体までの幅です。
    MARGIN_LEFT = 3
   
    # 背景画像の、右端からゲージ本体までの幅です。
    MARGIN_RIGHT = 3
   
    # 背景画像の y の相対値です。
    BG_OFFSET_Y = -3
   
    # Z深度です。この値が大きいほど、手前に表示されます。
    Z_DEPTH = 10
   
    # HPバーの背景色です。システムカラーを使う場合無視されます。
    BAR_BG_COLOR        = Color.new(50, 50, 50, 70)
   
    BAR_BORDER_COLOR    = Color.new(0, 0, 0)
   
    # HPバーの前景色です。システムカラーを使う場合無視されます。
    BAR_FG_COLOR_1        = Color.new(155, 110, 30)
   
    # HPバーの前景色です。システムカラーを使う場合無視されます。
    BAR_FG_COLOR_2        = Color.new(255, 200, 120)
   
    # MPバーの前景色です。システムカラーを使う場合無視されます。
    BAR_FG_MP_COLOR_1     = Color.new(155, 110, 30)
   
    # MPバーの前景色です。システムカラーを使う場合無視されます。
    BAR_FG_MP_COLOR_2     = Color.new(255, 200, 120)
   

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

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



#==============================================================================
# ここから実装です。
#==============================================================================
$imported = {} if $imported == nil
$imported["ShowEnemyStatus"] = true

class Game_Temp
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor   :saba_lock_hp_view
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias saba_enemyhp_initialize initialize
  def initialize
    saba_enemyhp_initialize
    @saba_lock_hp_view = false
  end
end

class Window_BattleLog
  #--------------------------------------------------------------------------
  # ● クリティカルヒットの表示
  #--------------------------------------------------------------------------
  alias saba_enemyhp_display_critical display_critical
  def display_critical(target, item)
    $game_temp.saba_lock_hp_view = true if target.result.critical
    saba_enemyhp_display_critical(target, item)
    $game_temp.saba_lock_hp_view = false
  end
end

class Sprite_EnemyStatus < Sprite_Base
  include Saba::SesSys
  include Saba::SesUi
  WLH = 24                  # 行の高さ基準値 (Window Line Height)
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     viewport : ビューポート
  #--------------------------------------------------------------------------
  def initialize(viewport, enemy_sprites)
    super(viewport)
    @enemy_sprites = enemy_sprites
    @page_change_wait = 0
    @page_count = 0
    self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
    self.bitmap.font.size = 25
    @windowskin = Cache.system("Window")
  end
  #--------------------------------------------------------------------------
  # ● 使用したリソースを解放します。
  #--------------------------------------------------------------------------
  def dispose
    self.bitmap.dispose
    super
  end
  #--------------------------------------------------------------------------
  # ● ステータス情報を更新します。
  #--------------------------------------------------------------------------
  def update
    super
    return if $game_temp.saba_lock_hp_view
   
    if no_change?
      @page_change_wait += 1
      return if @page_change_wait < STATE_PAGE_CHANGE_INTERVAL
      @page_change_wait = 0
      @page_count += 1
    else
      @page_change_wait = 0
    end
    save_enemy_status
    self.bitmap.clear
    draw_status
  end
  #--------------------------------------------------------------------------
  # ● ステートのページ数取得
  #--------------------------------------------------------------------------
  def state_page_count
    n = 1
    @enemy_sprites.size.times do |i|
      n = [(@enemy_states.size + @enemy_buff_icons.size) / MAX_NUM_STATE, n].max
    end
    return n
  end
  #--------------------------------------------------------------------------
  # ● 敵のHPに変化があったかどうかを調べます。毎回描画するのを防ぐためです。
  # @return 変化があった場合 true、なかった場合 false
  #--------------------------------------------------------------------------
  def no_change?
    return false if @enemy_hps == nil
    @enemy_sprites.size.times do |i|
      enemy = @enemy_sprites.battler
      return false unless @enemy_hps == enemy.hp
      return false unless @enemy_mps == enemy.mp
      return false unless @enemy_exists == enemy.exist?
      return false unless @enemy_states == enemy.states
      return false unless @enemy_buff_icons == enemy.buff_icons
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● 敵のHPと状態を覚えておきます。
  #--------------------------------------------------------------------------
  def save_enemy_status
    @enemy_hps ||= []
    @enemy_mps ||= []
    @enemy_exists ||= []
    @enemy_states ||= []
    @enemy_buff_icons ||= []
    @enemy_sprites.size.times do |i|
      enemy = @enemy_sprites.battler
      @enemy_hps = enemy.hp
      @enemy_mps = enemy.mp
      @enemy_exists = enemy.exist?
      @enemy_states = enemy.states
      @enemy_buff_icons = enemy.buff_icons
    end
  end
  #--------------------------------------------------------------------------
  # ● ステータス情報を描画します。
  #--------------------------------------------------------------------------
  def draw_status
    old_x = 0
    can_shift = false
    enemies = @enemy_sprites.clone.sort{|a, b| a.x <=> b.x}
    enemies.size.times do |index|
      enemy_sprite = enemies[index]
      next_enemy = enemies[index + 1]
      next_enemy_x = next_enemy == nil ? 1000 : next_enemy.x
      enemy = enemy_sprite.battler
      
      if (! enemy.exist?) || enemy.dead?
        old_x = enemy_sprite.x
        can_shift = ! can_shift
        next
      end
      next if define_note?(enemy.enemy, HIDE_HP_MARKER)

      shift = false
      if SHOW_HP_BAR || SHOW_MP_BAR
        shift = draw_hp_mp_bar(enemy_sprite, old_x, next_enemy_x, can_shift)
      end
      if SHOW_STATE
        draw_state(enemy_sprite, shift)
      end
      if SHOW_HP_TEXT
        draw_hp_label(enemy_sprite)
        draw_hp_value(enemy_sprite)
      end
      
      old_x = enemy_sprite.x
      can_shift = ! can_shift
    end
  end
  def container_y(enemy_sprite)
    if RELATIVE_POS
      return [CONTAINER_Y + enemy_sprite.y, MAX_POS_Y].min
    elsif ANCHOR_TOP

      return [CONTAINER_Y + enemy_sprite.y - enemy_sprite.height, MIN_POS_Y].max
    else
      return CONTAINER_Y
    end
  end
  #--------------------------------------------------------------------------
  # ● 指定のエネミーのHPラベルを描画します。
  #    Sprite enemy_sprite : HPラベルを描画するエネミースプライト
  #--------------------------------------------------------------------------
  def draw_hp_label(enemy_sprite)
    x = enemy_sprite.x
    y = container_y(enemy_sprite)
    offset_x = Saba::SesUi::TEXT_OFFSET_X
    offset_y = Saba::SesUi::TEXT_OFFSET_Y
    x += offset_x
    y += offset_y
    width = Saba::SesUi::TEXT_WIDTH
   
    self.bitmap.font.size = Saba::SesUi::LABEL_FONT_SIZE
    self.bitmap.font.color = label_color
    label = Saba::SesUi::LABEL
    self.bitmap.draw_text(x, y, width, WLH, label)
  end
  #--------------------------------------------------------------------------
  # ● 指定のエネミーのHPの値を描画します。
  #    Sprite enemy_sprite : HPの値を描画するエネミースプライト
  #--------------------------------------------------------------------------
  def draw_hp_value(enemy_sprite)
    x = enemy_sprite.x
    y = container_y(enemy_sprite)
    offset_x = Saba::SesUi::VALUE_OFFSET_X
    offset_y = Saba::SesUi::VALUE_OFFSET_Y
    x += offset_x
    y += offset_y
    width = Saba::SesUi::VALUE_WIDTH
   
    self.bitmap.font.size = VALUE_FONT_SIZE
    self.bitmap.font.color = value_color
    enemy = enemy_sprite.battler
    align = Saba::SesUi::VALUE_ALIGN
    self.bitmap.draw_text(x, y, width, WLH, enemy.hp.to_s, align)
  end
  #--------------------------------------------------------------------------
  # ● 指定のエネミーのHPとMPのバーを描画します。
  #    Sprite enemy_sprite : HPのバーを描画するエネミースプライト
  #--------------------------------------------------------------------------
  def draw_hp_mp_bar(enemy_sprite, old_x, next_x, can_shift)
    x = enemy_sprite.x
    y = container_y(enemy_sprite)
    width = BAR_WIDTH
    offset_x = -width / 2
    offset_y = BAR_OFFSET_Y
      
    if can_shift
      if USE_BACKGROUND_IMAGE
        margin = MARGIN_LEFT + MARGIN_RIGHT
      else
        margin = 4
      end
      if x + width + margin > next_x || old_x + width + margin > x
        y += SHIFT_Y
        shift = true
      end
    else
      shift = false
    end

    x += offset_x
    y += offset_y
    height = BAR_HEIGHT
    enemy = enemy_sprite.battler
   
    if SHOW_HP_BAR
      draw_background(x, y, width, height)
   
      width = width * enemy.hp / enemy.mhp
      width = BAR_MIN_WIDTH if width < BAR_MIN_WIDTH
      self.bitmap.gradient_fill_rect(x, y, width, height, hp_gauge_color1, hp_gauge_color2)
    end
   
    if SHOW_MP_BAR
      if enemy.mmp == 0 && ! SHOW_MMP0_MP_BAR
        return shift
      end
      y += MP_OFFSET_Y
      width = BAR_WIDTH
      draw_background(x, y, width, height)
   
      if enemy.mmp > 0
        width = width * enemy.mp / enemy.mmp
      else
        width = 0
      end
      self.bitmap.gradient_fill_rect(x, y, width, height, mp_gauge_color1, mp_gauge_color2)
    end
    return shift
  end
  def draw_state(enemy_sprite, shift)
    x = enemy_sprite.x
    y = container_y(enemy_sprite)
    offset_x = Saba::SesUi::STATE_OFFSET_X
    offset_y = Saba::SesUi::STATE_OFFSET_Y
    x += offset_x
    y += offset_y
    enemy_battler = enemy_sprite.battler
    max_page = (enemy_battler.states.size + enemy_battler.buff_icons.size-1) / MAX_NUM_STATE + 1
    max_page = [max_page, 1].max
    page = @page_count % max_page
    start = page * MAX_NUM_STATE
    index = 0
    count = 0
    y += SHIFT_Y if shift
    for state in enemy_battler.states
      return if count == MAX_NUM_STATE
      if index < start
        index += 1
        next
      end
      draw_icon(state.icon_index, x + 21 * count, y)
      count += 1
    end
    for buff in enemy_battler.buff_icons
      return if count == MAX_NUM_STATE
      if index < start
        index += 1
        next
      end
      draw_icon(buff, x + 21 * count, y)
      count += 1
    end
  end
  #--------------------------------------------------------------------------
  # ● アイコンの描画
  #     icon_index : アイコン番号
  #     x          : 描画先 X 座標
  #     y          : 描画先 Y 座標
  #     enabled    : 有効フラグ。false のとき半透明で描画
  #--------------------------------------------------------------------------
  def draw_icon(icon_index, x, y, enabled = true)
    bitmap = Cache.system("Iconset")
    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
    self.bitmap.blt(x, y, bitmap, rect, enabled ? 255 : 128)
  end
  def draw_background(x, y, width, height)
   
    if Saba::SesUi::USE_BACKGROUND_IMAGE
      margin_l = Saba::SesUi::MARGIN_LEFT
      margin_r = Saba::SesUi::MARGIN_RIGHT
      x -= margin_l
      y += Saba::SesUi::BG_OFFSET_Y
      image = Cache.system(Saba::SesUi::BACKGROUND_IMAGE_FILE)
      self.bitmap.blt(x, y, image, Rect.new(0, 0, margin_l, image.height))
      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))
      self.bitmap.blt(x + width + margin_l, y, image, Rect.new(image.width - margin_r, 0, margin_r, image.height))
    else
      color = Saba::SesUi::BAR_BORDER_COLOR
      self.bitmap.fill_rect(x - 1, y - 1, width + 2, height + 2, color)

      color = Saba::SesUi::BAR_BG_COLOR
      self.bitmap.fill_rect(x, y, width, height, color)
    end
  end
  #--------------------------------------------------------------------------
  # ● HP ゲージの色 1 を返します。
  #--------------------------------------------------------------------------
  def hp_gauge_color1
    if USE_SYSTEM_COLOR
      return text_color(20)
    else
      return BAR_FG_COLOR_1
    end
  end
  #--------------------------------------------------------------------------
  # ● HP ゲージの色 2 を返します。
  #--------------------------------------------------------------------------
  def hp_gauge_color2

    if USE_SYSTEM_COLOR
      return text_color(21)
    else
      return BAR_FG_COLOR_2
    end
  end
  #--------------------------------------------------------------------------
  # ● MP ゲージの色 1 を返します。
  #--------------------------------------------------------------------------
  def mp_gauge_color1
    if USE_SYSTEM_COLOR
      return text_color(22)
    else
      return BAR_FG_MP_COLOR_1
    end
  end
  #--------------------------------------------------------------------------
  # ● MP ゲージの色 2 を返します。
  #--------------------------------------------------------------------------
  def mp_gauge_color2

    if USE_SYSTEM_COLOR
      return text_color(23)
    else
      return BAR_FG_MP_COLOR_2
    end
  end
  #--------------------------------------------------------------------------
  # ● HPラベルの文字色を返します。
  #--------------------------------------------------------------------------
  def label_color
    if Saba::SesUi::USE_SYSTEM_COLOR
      return text_color(16)
    else
      return Saba::SesUi::LABEL_COLOR
    end
  end
  #--------------------------------------------------------------------------
  # ● HPの値の文字色を返します。
  #--------------------------------------------------------------------------
  def value_color
    if Saba::SesUi::USE_SYSTEM_COLOR
      return text_color(0)
    else
      return Saba::SesUi::VALUE_COLOR
    end
  end
  #--------------------------------------------------------------------------
  # ● 文字色を返します。
  #     n : 文字色番号 (0~31)
  #--------------------------------------------------------------------------
  def text_color(n)
    x = 64 + (n % 8) * 8
    y = 96 + (n / 8) * 8
    return @windowskin.get_pixel(x, y)
  end
end


#==============================================================================
# Sprite_EnemyStatusを使うように設定
#==============================================================================
class Spriteset_Battle
  #--------------------------------------------------------------------------
  # ● エネミーステータススプライトを作成します。
  #  createEnemies と update の間に呼ばれる必要があるため、
  #  タイマー作成時に一緒に作成しています。
  #--------------------------------------------------------------------------
  alias create_timer_SabaEnemyStatus create_timer
  def create_timer
    @saba_enemyStatusSprite = Sprite_EnemyStatus.new(@saba_enemyStatusViewport, @enemy_sprites)
    create_timer_SabaEnemyStatus
  end
  #--------------------------------------------------------------------------
  # ● エネミーステータススプライトを破棄します。
  #  同じくタイマー破棄時に一緒に破棄しています。
  #--------------------------------------------------------------------------
  alias dispose_timer_SabaEnemyStatus dispose_timer
  def dispose_timer
    @saba_enemyStatusSprite.dispose
    dispose_timer_SabaEnemyStatus
  end
  #--------------------------------------------------------------------------
  # ● エネミーステータスビューポートを作成します。
  #--------------------------------------------------------------------------
  alias create_viewports_SabaEnemyStatus create_viewports
  def create_viewports
    @saba_enemyStatusViewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
    @saba_enemyStatusViewport.z = Saba::SesUi::Z_DEPTH
    create_viewports_SabaEnemyStatus
  end
  #--------------------------------------------------------------------------
  # ● エネミーステータスビューポートを破棄します。
  #--------------------------------------------------------------------------
  alias dispose_viewports_SabaEnemyStatus dispose_viewports
  def dispose_viewports
    dispose_viewports_SabaEnemyStatus
    @saba_enemyStatusViewport.dispose
  end
  #--------------------------------------------------------------------------
  # ● エネミーステータスを更新します。
  #--------------------------------------------------------------------------
  alias update_viewports_SabaEnemyStatus update_viewports
  def update_viewports
    update_viewports_SabaEnemyStatus
    @saba_enemyStatusSprite.update
  end
  #--------------------------------------------------------------------------
  # ● ビューポートの更新
  #--------------------------------------------------------------------------
  alias saba_hp_update_viewports update_viewports
  def update_viewports
    saba_hp_update_viewports
    @saba_enemyStatusSprite.ox = $game_troop.screen.shake
  end
end

评分

参与人数 1星屑 +5000 收起 理由
RaidenInfinity + 5000 补回经验

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
377 小时
注册时间
2015-12-5
帖子
12
2
发表于 2017-1-21 02:08:53 | 只看该作者
  在敌人的备注栏里写上这个→<HIDE_HP>
就可以使敌人的血条表示消失。
不过,这个好像没有楼主所需要的设定呢....
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

3
发表于 2017-1-21 03:27:13 | 只看该作者
本帖最后由 QQ蚊子湯 于 2017-1-21 03:36 编辑

增加一個設定

#某個角色存在時不顯示血量

輸入該角色的ID編號

然後

1.你用錯代碼框了

2.你這腳本複製下來也不能用

3.你這腳本需要附件才能使用,然而沒附件

4.哼,人家才不會為了你改的呢

5.神馬?效果相反了你可以學著修修看吶!

我才不會跟你說只要改161和162行就好了呢!

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 敵のHP表示
  3. #   @version 0.8 13/08/08
  4. #   @author さば缶
  5. #------------------------------------------------------------------------------
  6. #  敵キャラの状態を表示します
  7. #==============================================================================
  8. module Saba
  9.   module SesUi
  10.     #某個角色存在時不顯示血量
  11.     KYARAKUTA_KANNKEI = 1
  12.     # テキストカラーやHPバーカラーにシステムカラーを使う場合、true に設定します。
  13.     USE_SYSTEM_COLOR = true
  14.  
  15.     # HP表示ボックスのy座標です。
  16.     CONTAINER_Y       = 265
  17.  
  18.     # 基準点の座標を敵の上部にする場合true に設定します
  19.     # デフォルトは敵の下部の座標
  20.     # その場合、↑の CONTAINER_Y の値分だけ下に表示されます
  21.     ANCHOR_TOP = false
  22.     # これ以上、上には表示されません
  23.     MIN_POS_Y         = 60
  24.  
  25.     # HPのy座標を敵の座標にあわせて変化させる場合true
  26.     # その場合、↑の CONTAINER_Y の値分だけ敵の下に表示されます
  27.     RELATIVE_POS      = false
  28.     # これ以上、下には表示されません
  29.     MAX_POS_Y         = 270
  30.  
  31.     #--------------------------------------------------------------------------
  32.     # ● テキスト関係
  33.     #--------------------------------------------------------------------------
  34.     # HPテキストを表示する場合true、表示しない場合false
  35.     SHOW_HP_TEXT      = false
  36.  
  37.  
  38.     # HPラベルのテキストです。
  39.     LABEL             = "HP"
  40.  
  41.     # HPラベルの色です。システムカラーを使う場合無視されます。
  42.     LABEL_COLOR  = Color.new(180, 180, 255)
  43.  
  44.     # HPラベルのフォントサイズです。
  45.     LABEL_FONT_SIZE   = 25
  46.  
  47.  
  48.     # HPの値の色です。システムカラーを使う場合無視されます。
  49.     VALUE_COLOR  = Color.new(255, 255, 255)
  50.  
  51.     # HPの値のフォントサイズです。
  52.     VALUE_FONT_SIZE   = 25
  53.  
  54.     # HPの値の基準点です。0=左揃え 1=中央揃え 2=右揃え
  55.     VALUE_ALIGN       = 1
  56.  
  57.  
  58.     # コンテナの中心からの、HPラベルのX座標の相対位置です。
  59.     TEXT_OFFSET_X  = -35
  60.  
  61.     # コンテナの中心からの、HPラベルのY座標の相対位置です。
  62.     TEXT_OFFSET_Y  = 0
  63.  
  64.     # HPラベルの横幅です。
  65.     TEXT_WIDTH     = 40
  66.  
  67.  
  68.     # コンテナの中心からの、HPの値のX座標の相対位置です。
  69.     VALUE_OFFSET_X = -5
  70.  
  71.     # コンテナの中心からの、HPの値のY座標の相対位置です。
  72.     VALUE_OFFSET_Y = 0
  73.  
  74.     # HPの値の横幅です。
  75.     VALUE_WIDTH    = 40
  76.  
  77.     #--------------------------------------------------------------------------
  78.     # ● HP MPバー関係
  79.     #--------------------------------------------------------------------------
  80.     # HPバーを表示する場合true、表示しない場合false
  81.     SHOW_HP_BAR      = true
  82.  
  83.     # MPバーを表示する場合true、表示しない場合false
  84.     SHOW_MP_BAR      = false
  85.     # 最大MPが0の敵のMPバーを表示する場合true、表示しない場合false
  86.     SHOW_MMP0_MP_BAR = false
  87.     # MPバーの座標
  88.     MP_OFFSET_Y      = 9
  89.  
  90.     # 背景に画像を使う場合 true に設定します。
  91.     # true の場合、Graphics/System/gauge_bg.png が使われます。
  92.     USE_BACKGROUND_IMAGE = true
  93.  
  94.     BACKGROUND_IMAGE_FILE = "gauge_bg"
  95.  
  96.     # 背景画像の、左端からゲージ本体までの幅です。
  97.     MARGIN_LEFT = 3
  98.  
  99.     # 背景画像の、右端からゲージ本体までの幅です。
  100.     MARGIN_RIGHT = 3
  101.  
  102.     # 背景画像の y の相対値です。
  103.     BG_OFFSET_Y = -3
  104.  
  105.     # Z深度です。この値が大きいほど、手前に表示されます。
  106.     Z_DEPTH = 10
  107.  
  108.     # HPバーの背景色です。システムカラーを使う場合無視されます。
  109.     BAR_BG_COLOR        = Color.new(50, 50, 50, 70)
  110.  
  111.     BAR_BORDER_COLOR    = Color.new(0, 0, 0)
  112.  
  113.     # HPバーの前景色です。システムカラーを使う場合無視されます。
  114.     BAR_FG_COLOR_1        = Color.new(155, 110, 30)
  115.  
  116.     # HPバーの前景色です。システムカラーを使う場合無視されます。
  117.     BAR_FG_COLOR_2        = Color.new(255, 200, 120)
  118.  
  119.     # MPバーの前景色です。システムカラーを使う場合無視されます。
  120.     BAR_FG_MP_COLOR_1     = Color.new(155, 110, 30)
  121.  
  122.     # MPバーの前景色です。システムカラーを使う場合無視されます。
  123.     BAR_FG_MP_COLOR_2     = Color.new(255, 200, 120)
  124.  
  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.  
  138.     # バーが重なっていた場合にずらす y の値です。
  139.     SHIFT_Y = -15
  140.  
  141.     #--------------------------------------------------------------------------
  142.     # ● ステート関係
  143.     #--------------------------------------------------------------------------
  144.     # ステートが2ページ以上にわたるとき、それが切り替わるフレーム数
  145.     STATE_PAGE_CHANGE_INTERVAL = 60
  146.     # ステートを表示する場合true、表示しない場合false
  147.     SHOW_STATE      = true
  148.     # ステートアイコンの最大表示数です。
  149.     MAX_NUM_STATE   = 4
  150.     # コンテナの中心からの、ステートのX座標の相対位置です。
  151.     STATE_OFFSET_X = -42
  152.     # コンテナの中心からの、ステートのY座標の相対位置です。
  153.     STATE_OFFSET_Y = -11
  154.   end
  155.  
  156.   module SesSys
  157.     # この文字列を敵のメモ欄に入れると、その敵のHPが表示されなくなります。
  158.     HIDE_HP_MARKER = "<HIDE_HP>"
  159.     def define_note?(item, name)
  160.       return false if item == nil
  161.       return true if $game_party.include?(SesUi::KYARAKUTA_KANNKEI)
  162.       return item.note.include?(HIDE_HP_MARKER)
  163.     end
  164.   end
  165. end
  166.  
  167.  
  168.  
  169. #==============================================================================
  170. # ここから実装です。
  171. #==============================================================================
  172. $imported = {} if $imported == nil
  173. $imported["ShowEnemyStatus"] = true
  174.  
  175. class Game_Temp
  176.   #--------------------------------------------------------------------------
  177.   # ● 公開インスタンス変数
  178.   #--------------------------------------------------------------------------
  179.   attr_accessor   :saba_lock_hp_view
  180.   #--------------------------------------------------------------------------
  181.   # ● オブジェクト初期化
  182.   #--------------------------------------------------------------------------
  183.   alias saba_enemyhp_initialize initialize
  184.   def initialize
  185.     saba_enemyhp_initialize
  186.     @saba_lock_hp_view = false
  187.   end
  188. end
  189.  
  190. class Window_BattleLog
  191.   #--------------------------------------------------------------------------
  192.   # ● クリティカルヒットの表示
  193.   #--------------------------------------------------------------------------
  194.   alias saba_enemyhp_display_critical display_critical
  195.   def display_critical(target, item)
  196.     $game_temp.saba_lock_hp_view = true if target.result.critical
  197.     saba_enemyhp_display_critical(target, item)
  198.     $game_temp.saba_lock_hp_view = false
  199.   end
  200. end
  201.  
  202. class Sprite_EnemyStatus < Sprite_Base
  203.   include Saba::SesSys
  204.   include Saba::SesUi
  205.   WLH = 24                  # 行の高さ基準値 (Window Line Height)
  206.   #--------------------------------------------------------------------------
  207.   # ● オブジェクト初期化
  208.   #     viewport : ビューポート
  209.   #--------------------------------------------------------------------------
  210.   def initialize(viewport, enemy_sprites)
  211.     super(viewport)
  212.     @enemy_sprites = enemy_sprites
  213.     @page_change_wait = 0
  214.     @page_count = 0
  215.     self.bitmap = Bitmap.new(Graphics.width, Graphics.height)
  216.     self.bitmap.font.size = 25
  217.     @windowskin = Cache.system("Window")
  218.   end
  219.   #--------------------------------------------------------------------------
  220.   # ● 使用したリソースを解放します。
  221.   #--------------------------------------------------------------------------
  222.   def dispose
  223.     self.bitmap.dispose
  224.     super
  225.   end
  226.   #--------------------------------------------------------------------------
  227.   # ● ステータス情報を更新します。
  228.   #--------------------------------------------------------------------------
  229.   def update
  230.     super
  231.     return if $game_temp.saba_lock_hp_view
  232.  
  233.     if no_change?
  234.       @page_change_wait += 1
  235.       return if @page_change_wait < STATE_PAGE_CHANGE_INTERVAL
  236.       @page_change_wait = 0
  237.       @page_count += 1
  238.     else
  239.       @page_change_wait = 0
  240.     end
  241.     save_enemy_status
  242.     self.bitmap.clear
  243.     draw_status
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● ステートのページ数取得
  247.   #--------------------------------------------------------------------------
  248.   def state_page_count
  249.     n = 1
  250.     @enemy_sprites.size.times do |i|
  251.       n = [(@enemy_states[i].size + @enemy_buff_icons[i].size) / MAX_NUM_STATE, n].max
  252.     end
  253.     return n
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● 敵のHPに変化があったかどうかを調べます。毎回描画するのを防ぐためです。
  257.   # [url=home.php?mod=space&uid=352621]@return[/url] 変化があった場合 true、なかった場合 false
  258.   #--------------------------------------------------------------------------
  259.   def no_change?
  260.     return false if @enemy_hps == nil
  261.     @enemy_sprites.size.times do |i|
  262.       enemy = @enemy_sprites[i].battler
  263.       return false unless @enemy_hps[i] == enemy.hp
  264.       return false unless @enemy_mps[i] == enemy.mp
  265.       return false unless @enemy_exists[i] == enemy.exist?
  266.       return false unless @enemy_states[i] == enemy.states
  267.       return false unless @enemy_buff_icons[i] == enemy.buff_icons
  268.     end
  269.     return true
  270.   end
  271.   #--------------------------------------------------------------------------
  272.   # ● 敵のHPと状態を覚えておきます。
  273.   #--------------------------------------------------------------------------
  274.   def save_enemy_status
  275.     @enemy_hps ||= []
  276.     @enemy_mps ||= []
  277.     @enemy_exists ||= []
  278.     @enemy_states ||= []
  279.     @enemy_buff_icons ||= []
  280.     @enemy_sprites.size.times do |i|
  281.       enemy = @enemy_sprites[i].battler
  282.       @enemy_hps[i] = enemy.hp
  283.       @enemy_mps[i] = enemy.mp
  284.       @enemy_exists[i] = enemy.exist?
  285.       @enemy_states[i] = enemy.states
  286.       @enemy_buff_icons[i] = enemy.buff_icons
  287.     end
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ● ステータス情報を描画します。
  291.   #--------------------------------------------------------------------------
  292.   def draw_status
  293.     old_x = 0
  294.     can_shift = false
  295.     enemies = @enemy_sprites.clone.sort{|a, b| a.x <=> b.x}
  296.     enemies.size.times do |index|
  297.       enemy_sprite = enemies[index]
  298.       next_enemy = enemies[index + 1]
  299.       next_enemy_x = next_enemy == nil ? 1000 : next_enemy.x
  300.       enemy = enemy_sprite.battler
  301.  
  302.       if (! enemy.exist?) || enemy.dead?
  303.         old_x = enemy_sprite.x
  304.         can_shift = ! can_shift
  305.         next
  306.       end
  307.       next if define_note?(enemy.enemy, HIDE_HP_MARKER)
  308.  
  309.       shift = false
  310.       if SHOW_HP_BAR || SHOW_MP_BAR
  311.         shift = draw_hp_mp_bar(enemy_sprite, old_x, next_enemy_x, can_shift)
  312.       end
  313.       if SHOW_STATE
  314.         draw_state(enemy_sprite, shift)
  315.       end
  316.       if SHOW_HP_TEXT
  317.         draw_hp_label(enemy_sprite)
  318.         draw_hp_value(enemy_sprite)
  319.       end
  320.  
  321.       old_x = enemy_sprite.x
  322.       can_shift = ! can_shift
  323.     end
  324.   end
  325.   def container_y(enemy_sprite)
  326.     if RELATIVE_POS
  327.       return [CONTAINER_Y + enemy_sprite.y, MAX_POS_Y].min
  328.     elsif ANCHOR_TOP
  329.  
  330.       return [CONTAINER_Y + enemy_sprite.y - enemy_sprite.height, MIN_POS_Y].max
  331.     else
  332.       return CONTAINER_Y
  333.     end
  334.   end
  335.   #--------------------------------------------------------------------------
  336.   # ● 指定のエネミーのHPラベルを描画します。
  337.   #    Sprite enemy_sprite : HPラベルを描画するエネミースプライト
  338.   #--------------------------------------------------------------------------
  339.   def draw_hp_label(enemy_sprite)
  340.     x = enemy_sprite.x
  341.     y = container_y(enemy_sprite)
  342.     offset_x = Saba::SesUi::TEXT_OFFSET_X
  343.     offset_y = Saba::SesUi::TEXT_OFFSET_Y
  344.     x += offset_x
  345.     y += offset_y
  346.     width = Saba::SesUi::TEXT_WIDTH
  347.  
  348.     self.bitmap.font.size = Saba::SesUi::LABEL_FONT_SIZE
  349.     self.bitmap.font.color = label_color
  350.     label = Saba::SesUi::LABEL
  351.     self.bitmap.draw_text(x, y, width, WLH, label)
  352.   end
  353.   #--------------------------------------------------------------------------
  354.   # ● 指定のエネミーのHPの値を描画します。
  355.   #    Sprite enemy_sprite : HPの値を描画するエネミースプライト
  356.   #--------------------------------------------------------------------------
  357.   def draw_hp_value(enemy_sprite)
  358.     x = enemy_sprite.x
  359.     y = container_y(enemy_sprite)
  360.     offset_x = Saba::SesUi::VALUE_OFFSET_X
  361.     offset_y = Saba::SesUi::VALUE_OFFSET_Y
  362.     x += offset_x
  363.     y += offset_y
  364.     width = Saba::SesUi::VALUE_WIDTH
  365.  
  366.     self.bitmap.font.size = VALUE_FONT_SIZE
  367.     self.bitmap.font.color = value_color
  368.     enemy = enemy_sprite.battler
  369.     align = Saba::SesUi::VALUE_ALIGN
  370.     self.bitmap.draw_text(x, y, width, WLH, enemy.hp.to_s, align)
  371.   end
  372.   #--------------------------------------------------------------------------
  373.   # ● 指定のエネミーのHPとMPのバーを描画します。
  374.   #    Sprite enemy_sprite : HPのバーを描画するエネミースプライト
  375.   #--------------------------------------------------------------------------
  376.   def draw_hp_mp_bar(enemy_sprite, old_x, next_x, can_shift)
  377.     x = enemy_sprite.x
  378.     y = container_y(enemy_sprite)
  379.     width = BAR_WIDTH
  380.     offset_x = -width / 2
  381.     offset_y = BAR_OFFSET_Y
  382.  
  383.     if can_shift
  384.       if USE_BACKGROUND_IMAGE
  385.         margin = MARGIN_LEFT + MARGIN_RIGHT
  386.       else
  387.         margin = 4
  388.       end
  389.       if x + width + margin > next_x || old_x + width + margin > x
  390.         y += SHIFT_Y
  391.         shift = true
  392.       end
  393.     else
  394.       shift = false
  395.     end
  396.  
  397.     x += offset_x
  398.     y += offset_y
  399.     height = BAR_HEIGHT
  400.     enemy = enemy_sprite.battler
  401.  
  402.     if SHOW_HP_BAR
  403.       draw_background(x, y, width, height)
  404.  
  405.       width = width * enemy.hp / enemy.mhp
  406.       width = BAR_MIN_WIDTH if width < BAR_MIN_WIDTH
  407.       self.bitmap.gradient_fill_rect(x, y, width, height, hp_gauge_color1, hp_gauge_color2)
  408.     end
  409.  
  410.     if SHOW_MP_BAR
  411.       if enemy.mmp == 0 && ! SHOW_MMP0_MP_BAR
  412.         return shift
  413.       end
  414.       y += MP_OFFSET_Y
  415.       width = BAR_WIDTH
  416.       draw_background(x, y, width, height)
  417.  
  418.       if enemy.mmp > 0
  419.         width = width * enemy.mp / enemy.mmp
  420.       else
  421.         width = 0
  422.       end
  423.       self.bitmap.gradient_fill_rect(x, y, width, height, mp_gauge_color1, mp_gauge_color2)
  424.     end
  425.     return shift
  426.   end
  427.   def draw_state(enemy_sprite, shift)
  428.     x = enemy_sprite.x
  429.     y = container_y(enemy_sprite)
  430.     offset_x = Saba::SesUi::STATE_OFFSET_X
  431.     offset_y = Saba::SesUi::STATE_OFFSET_Y
  432.     x += offset_x
  433.     y += offset_y
  434.     enemy_battler = enemy_sprite.battler
  435.     max_page = (enemy_battler.states.size + enemy_battler.buff_icons.size-1) / MAX_NUM_STATE + 1
  436.     max_page = [max_page, 1].max
  437.     page = @page_count % max_page
  438.     start = page * MAX_NUM_STATE
  439.     index = 0
  440.     count = 0
  441.     y += SHIFT_Y if shift
  442.     for state in enemy_battler.states
  443.       return if count == MAX_NUM_STATE
  444.       if index < start
  445.         index += 1
  446.         next
  447.       end
  448.       draw_icon(state.icon_index, x + 21 * count, y)
  449.       count += 1
  450.     end
  451.     for buff in enemy_battler.buff_icons
  452.       return if count == MAX_NUM_STATE
  453.       if index < start
  454.         index += 1
  455.         next
  456.       end
  457.       draw_icon(buff, x + 21 * count, y)
  458.       count += 1
  459.     end
  460.   end
  461.   #--------------------------------------------------------------------------
  462.   # ● アイコンの描画
  463.   #     icon_index : アイコン番号
  464.   #     x          : 描画先 X 座標
  465.   #     y          : 描画先 Y 座標
  466.   #     enabled    : 有効フラグ。false のとき半透明で描画
  467.   #--------------------------------------------------------------------------
  468.   def draw_icon(icon_index, x, y, enabled = true)
  469.     bitmap = Cache.system("Iconset")
  470.     rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
  471.     self.bitmap.blt(x, y, bitmap, rect, enabled ? 255 : 128)
  472.   end
  473.   def draw_background(x, y, width, height)
  474.  
  475.     if Saba::SesUi::USE_BACKGROUND_IMAGE
  476.       margin_l = Saba::SesUi::MARGIN_LEFT
  477.       margin_r = Saba::SesUi::MARGIN_RIGHT
  478.       x -= margin_l
  479.       y += Saba::SesUi::BG_OFFSET_Y
  480.       image = Cache.system(Saba::SesUi::BACKGROUND_IMAGE_FILE)
  481.       self.bitmap.blt(x, y, image, Rect.new(0, 0, margin_l, image.height))
  482.       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))
  483.       self.bitmap.blt(x + width + margin_l, y, image, Rect.new(image.width - margin_r, 0, margin_r, image.height))
  484.     else
  485.       color = Saba::SesUi::BAR_BORDER_COLOR
  486.       self.bitmap.fill_rect(x - 1, y - 1, width + 2, height + 2, color)
  487.  
  488.       color = Saba::SesUi::BAR_BG_COLOR
  489.       self.bitmap.fill_rect(x, y, width, height, color)
  490.     end
  491.   end
  492.   #--------------------------------------------------------------------------
  493.   # ● HP ゲージの色 1 を返します。
  494.   #--------------------------------------------------------------------------
  495.   def hp_gauge_color1
  496.     if USE_SYSTEM_COLOR
  497.       return text_color(20)
  498.     else
  499.       return BAR_FG_COLOR_1
  500.     end
  501.   end
  502.   #--------------------------------------------------------------------------
  503.   # ● HP ゲージの色 2 を返します。
  504.   #--------------------------------------------------------------------------
  505.   def hp_gauge_color2
  506.  
  507.     if USE_SYSTEM_COLOR
  508.       return text_color(21)
  509.     else
  510.       return BAR_FG_COLOR_2
  511.     end
  512.   end
  513.   #--------------------------------------------------------------------------
  514.   # ● MP ゲージの色 1 を返します。
  515.   #--------------------------------------------------------------------------
  516.   def mp_gauge_color1
  517.     if USE_SYSTEM_COLOR
  518.       return text_color(22)
  519.     else
  520.       return BAR_FG_MP_COLOR_1
  521.     end
  522.   end
  523.   #--------------------------------------------------------------------------
  524.   # ● MP ゲージの色 2 を返します。
  525.   #--------------------------------------------------------------------------
  526.   def mp_gauge_color2
  527.  
  528.     if USE_SYSTEM_COLOR
  529.       return text_color(23)
  530.     else
  531.       return BAR_FG_MP_COLOR_2
  532.     end
  533.   end
  534.   #--------------------------------------------------------------------------
  535.   # ● HPラベルの文字色を返します。
  536.   #--------------------------------------------------------------------------
  537.   def label_color
  538.     if Saba::SesUi::USE_SYSTEM_COLOR
  539.       return text_color(16)
  540.     else
  541.       return Saba::SesUi::LABEL_COLOR
  542.     end
  543.   end
  544.   #--------------------------------------------------------------------------
  545.   # ● HPの値の文字色を返します。
  546.   #--------------------------------------------------------------------------
  547.   def value_color
  548.     if Saba::SesUi::USE_SYSTEM_COLOR
  549.       return text_color(0)
  550.     else
  551.       return Saba::SesUi::VALUE_COLOR
  552.     end
  553.   end
  554.   #--------------------------------------------------------------------------
  555.   # ● 文字色を返します。
  556.   #     n : 文字色番号 (0~31)
  557.   #--------------------------------------------------------------------------
  558.   def text_color(n)
  559.     x = 64 + (n % 8) * 8
  560.     y = 96 + (n / 8) * 8
  561.     return @windowskin.get_pixel(x, y)
  562.   end
  563. end
  564.  
  565.  
  566. #==============================================================================
  567. # Sprite_EnemyStatusを使うように設定
  568. #==============================================================================
  569. class Spriteset_Battle
  570.   #--------------------------------------------------------------------------
  571.   # ● エネミーステータススプライトを作成します。
  572.   #  createEnemies と update の間に呼ばれる必要があるため、
  573.   #  タイマー作成時に一緒に作成しています。
  574.   #--------------------------------------------------------------------------
  575.   alias create_timer_SabaEnemyStatus create_timer
  576.   def create_timer
  577.     @saba_enemyStatusSprite = Sprite_EnemyStatus.new(@saba_enemyStatusViewport, @enemy_sprites)
  578.     create_timer_SabaEnemyStatus
  579.   end
  580.   #--------------------------------------------------------------------------
  581.   # ● エネミーステータススプライトを破棄します。
  582.   #  同じくタイマー破棄時に一緒に破棄しています。
  583.   #--------------------------------------------------------------------------
  584.   alias dispose_timer_SabaEnemyStatus dispose_timer
  585.   def dispose_timer
  586.     @saba_enemyStatusSprite.dispose
  587.     dispose_timer_SabaEnemyStatus
  588.   end
  589.   #--------------------------------------------------------------------------
  590.   # ● エネミーステータスビューポートを作成します。
  591.   #--------------------------------------------------------------------------
  592.   alias create_viewports_SabaEnemyStatus create_viewports
  593.   def create_viewports
  594.     @saba_enemyStatusViewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
  595.     @saba_enemyStatusViewport.z = Saba::SesUi::Z_DEPTH
  596.     create_viewports_SabaEnemyStatus
  597.   end
  598.   #--------------------------------------------------------------------------
  599.   # ● エネミーステータスビューポートを破棄します。
  600.   #--------------------------------------------------------------------------
  601.   alias dispose_viewports_SabaEnemyStatus dispose_viewports
  602.   def dispose_viewports
  603.     dispose_viewports_SabaEnemyStatus
  604.     @saba_enemyStatusViewport.dispose
  605.   end
  606.   #--------------------------------------------------------------------------
  607.   # ● エネミーステータスを更新します。
  608.   #--------------------------------------------------------------------------
  609.   alias update_viewports_SabaEnemyStatus update_viewports
  610.   def update_viewports
  611.     update_viewports_SabaEnemyStatus
  612.     @saba_enemyStatusSprite.update
  613.   end
  614.   #--------------------------------------------------------------------------
  615.   # ● ビューポートの更新
  616.   #--------------------------------------------------------------------------
  617.   alias saba_hp_update_viewports update_viewports
  618.   def update_viewports
  619.     saba_hp_update_viewports
  620.     @saba_enemyStatusSprite.ox = $game_troop.screen.shake
  621.   end
  622. end
  623. class Fixnum < Integer
  624.   alias_method :id, :to_int
  625. end
  626.   class Game_Party < Game_Unit
  627.   def include?(actor)
  628.     @actors.include?(actor.id)
  629.   end
  630. end

评分

参与人数 1星屑 +15 收起 理由
魔法丶小肉包 + 15 哼,人家才不會塞肉包给你的呢~.

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2017-1-18
帖子
50
4
 楼主| 发表于 2017-1-21 13:07:26 | 只看该作者
QQ蚊子湯 发表于 2017-1-21 03:27
增加一個設定

#某個角色存在時不顯示血量

感谢大佬,但是代码框是啥?还有我这个脚本复制下来使用成功了啊= =修改161和162....完全看不懂(捂脸
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

5
发表于 2017-1-21 14:05:30 | 只看该作者
我說的是你主樓給的代碼我不能用 ,而且沒附件,我是去搜尋回來的

所以這兩行怎麼改你也去搜尋一下吧!

点评

可能是你誤改忘記了,你再重弄一次  发表于 2017-1-23 14:00
啊咧,我是直接粘贴的  发表于 2017-1-23 13:50
你血條會跑到中間是因為你誤改了Y軸跟我木有關係!  发表于 2017-1-23 12:38
大佬别傲娇了,快告诉我改什么qwq  发表于 2017-1-23 12:04
大寫HIDE_HP_MARKER是常數,改他的名字是木有用滴!  发表于 2017-1-23 11:59

评分

参与人数 1星屑 +20 收起 理由
Mr.Jin + 20

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
帖子
649

开拓者

6
发表于 2017-1-23 12:34:46 | 只看该作者
draw_status裡面定義了顯示資訊
其中調用了define_note?這方法
用在判定是否要顯示血條

define_note?這邊的定義則是依照輸入的判定來傳回true/false




点评

完美  发表于 2017-1-23 14:29
所以弄好了嗎...  发表于 2017-1-23 14:29
爱你,大佬,别说话,吻我(づ ̄3 ̄)づ╭❤~,亲一个~  发表于 2017-1-23 14:24
麻煩SHOW_HP_TEXT自己改成true,那是設定區的東西  发表于 2017-1-23 14:22
管你说什么,大佬我爱你(づ ̄3 ̄)づ╭❤~  发表于 2017-1-23 14:19

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 认可答案

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 03:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表