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

Project1

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

[已经解决] 有没有跟sideview兼容的怪物显血脚本?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
138
在线时间
304 小时
注册时间
2014-4-11
帖子
419
跳转到指定楼层
1
发表于 2014-8-8 12:54:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
……RT 求一个这样的脚本
试了几个都是无效的

点评

你选的是哪一个?  发表于 2014-8-10 08:35
你要先説用過那些顕血脚本  发表于 2014-8-9 14:00
人生是一场漫长的自杀。

Lv2.观梦者

梦石
0
星屑
250
在线时间
233 小时
注册时间
2013-8-2
帖子
587
2
发表于 2014-8-9 13:54:02 | 只看该作者
@taroxd ,,,taroxd脚本存放处有https://rpg.blue/thread-365971-1-1.html

点评

已解决 谢了  发表于 2014-8-10 00:58
有冲突?还是你没有插那个置顶的脚本,,,,  发表于 2014-8-9 14:55
= = 全部报错 哦漏  发表于 2014-8-9 14:47
我没试过,不过不兼容吧?  发表于 2014-8-9 13:56
我忘了,我要怎么遗忘。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22973
在线时间
8639 小时
注册时间
2011-12-31
帖子
3367
3
发表于 2014-8-9 14:09:33 | 只看该作者
本帖最后由 tseyik 于 2014-8-9 14:52 编辑



gauge_bg.png導入到Graphics\System

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

点评

已解决,谢了  发表于 2014-8-10 00:56
無効,我測試過的,看圖  发表于 2014-8-9 14:49
这个测试无效……图我存了的。  发表于 2014-8-9 14:43

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
99
在线时间
900 小时
注册时间
2012-11-13
帖子
893
4
发表于 2014-8-9 14:20:37 | 只看该作者
本帖最后由 3106345123 于 2014-8-9 15:03 编辑

@battler
  1. #==============================================================================
  2. # F08 - 战斗敌人显示血条·改 - By芙蕾娅
  3. #    对应横板战斗版本
  4. #------------------------------------------------------------------------------
  5. #  ★ - 新增  ☆ - 修改  ■ - 删除 ● - 无变更
  6. #==============================================================================
  7. module Freya
  8.   # 隐藏HP的文本
  9.   HideGaugeText = "Hide_Gauge"
  10.   # 血条颜色
  11.   EnemyHPGaugeColor1 = Color.new(64,128,96)
  12.   EnemyHPGaugeColor2 = Color.new(96,192,160)
  13. end
  14. #==============================================================================
  15. # ■ Sprite_Battler_HP
  16. #------------------------------------------------------------------------------
  17. #  显示战斗者的生命在战斗者的精灵下面。
  18. #==============================================================================
  19. class Sprite_Battler_HP < Sprite
  20.   #--------------------------------------------------------------------------
  21.   # ● 初始化对象
  22.   #--------------------------------------------------------------------------
  23.   def initialize(viewport,battler)
  24.     super(viewport)
  25.     [url=home.php?mod=space&uid=133701]@battler[/url] = battler
  26.     @last_hp = 0
  27.     create_bitmap
  28.     update
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 释放
  32.   #--------------------------------------------------------------------------
  33.   def dispose
  34.     self.bitmap.dispose
  35.     super
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 生成位图
  39.   #--------------------------------------------------------------------------
  40.   def create_bitmap
  41.     @last_hp = @battler.hp
  42.     bw = 96
  43.     bh = 6
  44.     self.bitmap = Bitmap.new(bw, bh)
  45.     self.bitmap.fill_rect(0, 0, bw, bh, Color.new(32,32,64))
  46.     if Freya::Gauge_Type.nil? or Freya::Gauge_Type == 0
  47.       hp = ((bw) * @battler.hp_rate).to_i
  48.       self.bitmap.gradient_fill_rect(0, 0, hp, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  49.     elsif Freya::Gauge_Type == 1
  50.       hp = ((width - 2) * @battler.hp_rate).to_i
  51.       self.bitmap.gradient_fill_rect(1, 1, hp, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  52.     elsif Freya::Gauge_Type == 2
  53.       hp = ((width) * @battler.hp_rate).to_i
  54.       self.bitmap.gradient_fill_rect(0, 0, hp / 2, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  55.       self.bitmap.gradient_fill_rect(hp / 2, 0, hp / 2, bh, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
  56.     elsif Freya::Gauge_Type == 3
  57.       hp = ((width - 2) * @battler.hp_rate).to_i
  58.       self.bitmap.gradient_fill_rect(1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  59.       self.bitmap.gradient_fill_rect((hp / 2) + 1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
  60.     end
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 更新画面
  64.   #--------------------------------------------------------------------------
  65.   def update
  66.     super
  67.     unless self.bitmap.nil?
  68.       self.z = @battler.sv.z + 20
  69.       create_bitmap if @last_hp != @battler.hp
  70.       hide = $data_enemies[@battler.enemy_id].note.include?(Freya::HideGaugeText)
  71.       if @battler.hp == 0 or hide
  72.         self.opacity = 0
  73.       elsif @battler.hp > 0 && !hide
  74.         self.opacity = 255
  75.       end
  76.     end
  77.   end
  78. end

  79. #==============================================================================
  80. # ■ Sprite_Battler
  81. #------------------------------------------------------------------------------
  82. #  显示战斗者的精灵。根据 Game_Battler 类的实例自动变化。
  83. #==============================================================================
  84. class Sprite_Battler < Sprite_Base
  85.   #--------------------------------------------------------------------------
  86.   # ☆ 初始化对象
  87.   #--------------------------------------------------------------------------
  88.   alias initialize_freya_enemy_hp initialize
  89.   def initialize(viewport, battler = nil)
  90.     initialize_freya_enemy_hp(viewport, battler)
  91.     if @battler.is_a?(Game_Enemy)
  92.       @hp_gauge = Sprite_Battler_HP.new(viewport, battler)
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ☆ 释放
  97.   #--------------------------------------------------------------------------
  98.   alias dispose_freya_enemy_hp dispose
  99.   def dispose
  100.     dispose_freya_enemy_hp
  101.     unless @hp_gauge.nil?
  102.       @hp_gauge.dispose
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ☆ 更新画面
  107.   #--------------------------------------------------------------------------
  108.   alias update_freya_enemy_hp update
  109.   def update
  110.     update_freya_enemy_hp
  111.     @hp_gauge.update unless @hp_gauge.nil?
  112.   end
  113.   alias update_freya_position update_position
  114.   def update_position
  115.     update_freya_position
  116.     @hp_gauge.x = self.x - 48 unless @hp_gauge.nil?
  117.     @hp_gauge.y = self.y unless @hp_gauge.nil?
  118.   end
  119. end
复制代码

点评

已解决 谢了。  发表于 2014-8-10 00:57
把25行改成 @battler = battler  发表于 2014-8-9 14:51
此乃论坛卖萌所致  发表于 2014-8-9 14:50
25行报错  发表于 2014-8-9 14:43

评分

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

查看全部评分

废弃
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 13:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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