Project1

标题: VX横版战斗系统里怎么显示敌人血条气条和HP,MP值 [打印本页]

作者: smh862768894    时间: 2012-6-2 02:37
标题: VX横版战斗系统里怎么显示敌人血条气条和HP,MP值

就像这样,还有我方人物排列纵向对齐
{:2_263:} 求救啊!dsu_plus_rewardpost_czw
作者: 食人族幽灵    时间: 2012-6-6 20:41
反正敌人血条基本都对横版有冲突……
作者: 第一统帅    时间: 2012-6-7 13:14
直接在此站搜索……建议用RMXP.你要的脚本RMXP都有。
作者: acn00269    时间: 2012-6-7 19:14
本帖最后由 acn00269 于 2012-6-7 19:21 编辑

为帮到LZ 我不惜把游戏都破解了
下面就发上显 示敌人HP,MP的脚本
  1. #先声明一下,这属于一时胡写的,可能没有沉影的好,大家勿喷

  2. class Spriteset_Battle
  3. #Sideview 2 的1331行有定义
  4. =begin
  5.   #--------------------------------------------------------------------------
  6.   # ● 生成敌人活动块
  7.   #--------------------------------------------------------------------------
  8.   def create_enemies
  9.     @enemy_sprites = []
  10.     @enemy_hpbar_sprites = []
  11.     for enemy in $game_troop.members.reverse
  12.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  13.       @enemy_hpbar_sprites.push(Sprite_Hpbar.new(@viewport1, enemy))
  14.     end
  15.   end
  16. =end  
  17.   #--------------------------------------------------------------------------
  18.   # ● 刷新敌人活动块
  19.   #--------------------------------------------------------------------------
  20.   def update_enemies
  21.     for sprite in @enemy_sprites + @enemy_hpbar_sprites
  22.       sprite.update
  23.     end
  24.   end  
  25.   #--------------------------------------------------------------------------
  26.   # ● 释放敌人活动块
  27.   #--------------------------------------------------------------------------
  28.   def dispose_enemies
  29.     for sprite in @enemy_sprites + @enemy_hpbar_sprites
  30.       sprite.dispose
  31.     end
  32.   end
  33. end
  34. #==============================================================================
  35. # ■ Sprite_Sprite_Hpbar
  36. #------------------------------------------------------------------------------
  37. #  血条显示
  38. #==============================================================================

  39. class Sprite_Hpbar < Sprite_Base
  40.   #--------------------------------------------------------------------------
  41.   # ● 定量
  42.   #--------------------------------------------------------------------------
  43.    #--------------------------------------------------------------------------
  44.    # ● 定义实例变量
  45.   #--------------------------------------------------------------------------
  46.   attr_accessor :battler
  47.    #--------------------------------------------------------------------------
  48.    # ● 初始化对像
  49.   #     viewport : 视口
  50.   #     battler  : 战斗者 (Game_Battler)
  51.    #--------------------------------------------------------------------------
  52.   def initialize(viewport, battler = nil)
  53.     super(viewport)
  54.     @battler = battler
  55.     @name = @battler.name
  56.     @hp = @battler.hp
  57.     @mp = @battler.mp
  58.     self.bitmap = Bitmap.new(100,50)
  59.     self.bitmap.font.size = 12
  60.     self.bitmap.font.color = @battler.hp <= @battler.maxhp / 4 ? text_color(17) : text_color(24)
  61.     self.bitmap.draw_text(0,22,100,20,@battler.hp ,2)
  62.     self.bitmap.font.color = text_color(23)
  63.     self.bitmap.draw_text(0,31,100,20,@battler.mp ,2)
  64.     draw_enemy_hp_gauge(@battler, 0, 15, 50)
  65.     draw_enemy_mp_gauge(@battler, 0, 23, 50)
  66.     self.x = @battler.screen_x - 45
  67.     self.y = @battler.screen_y - self.bitmap.height / 2 - 5
  68.     self.z = @battler.screen_z + 5000
  69.   end
  70.    #--------------------------------------------------------------------------
  71.    # 获取文字色
  72.    #     n : 文字色编号 (0~31)
  73.    #--------------------------------------------------------------------------  
  74.   def text_color(n)
  75.     windowskin = Cache.system("Window")
  76.     x = 64 + (n % 8) * 8
  77.     y = 96 + (n / 8) * 8
  78.     return windowskin.get_pixel(x, y)
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # HP矩形的描画
  82.   #     actor : 角色
  83.   #     x     : 描画目标 X 坐标
  84.   #     y     : 描画目标 Y 坐标
  85.   #     width : 宽
  86.   #--------------------------------------------------------------------------  
  87.   def draw_enemy_hp_gauge(enemy, x, y, width = 432)
  88.     gw = width * @hp / enemy.maxhp
  89.     gc1 = text_color(28)
  90.     gc2 = text_color(24)
  91.     self.bitmap.fill_rect(x+15, y + 24 - 8, width, 6, text_color(19))
  92.     self.bitmap.gradient_fill_rect(x+15, y + 24 - 8, gw, 6, gc1, gc2)
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # MP矩形的描画
  96.   #     actor : 角色
  97.   #     x     : 描画目标 X 坐标
  98.   #     y     : 描画目标 Y 坐标
  99.   #     width : 宽
  100.   #--------------------------------------------------------------------------  
  101.   def draw_enemy_mp_gauge(enemy, x, y, width = 432)
  102.     if enemy.maxmp > 0
  103.       gw = width * @mp / enemy.maxmp
  104.     else
  105.       gw = 0
  106.     end  
  107.     gc1 = text_color(1)
  108.     gc2 = text_color(23)
  109.     self.bitmap.fill_rect(x+15, y + 24 - 8, width, 6, text_color(19))
  110.     self.bitmap.gradient_fill_rect(x+15, y + 24 - 8, gw, 6, gc1, gc2)
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 释放
  114.   #--------------------------------------------------------------------------
  115.   def dispose
  116.     if self.bitmap != nil
  117.       self.bitmap.dispose
  118.     end
  119.     super
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● 刷新画面
  123.   #--------------------------------------------------------------------------
  124.   def update
  125.     super
  126.     if @battler == nil
  127.       self.bitmap = nil
  128.     else
  129.       update_battler_bitmap
  130.     end
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # 刷新位图数据
  134.   #--------------------------------------------------------------------------
  135.   def update_battler_bitmap
  136.     if @battler.dead? or @battler.hidden
  137.        self.opacity = 0
  138.      end
  139.     if [email protected]? and [email protected] and self.opacity == 0
  140.        self.opacity = 255
  141.     end      
  142.     if @hp != @battler.hp or @mp != @battler.mp or @name != @battler.name
  143.        @name = @battler.name
  144.        @hp = @battler.hp
  145.        @mp = @battler.mp
  146.        self.bitmap.clear
  147.        self.bitmap.font.color = @battler.hp <= @battler.maxhp / 4 ? text_color(17) : text_color(24)
  148.        self.bitmap.draw_text(0,24,100,20,@battler.hp ,2)
  149.        self.bitmap.font.color = text_color(23)
  150.        self.bitmap.draw_text(0,34,100,20,@battler.mp ,2)
  151.        draw_enemy_hp_gauge(@battler, 0, 15, 50)
  152.        draw_enemy_mp_gauge(@battler, 0, 25, 50)
  153.     end
  154.   end
  155. end
复制代码
为尊重作者 我就只发这一个脚本
作者: smh862768894    时间: 2012-6-8 12:26
灰肠感谢各位朋友们!!
作者: sd592078335    时间: 2012-6-10 08:34
本帖最后由 sd592078335 于 2012-6-10 08:35 编辑

额.........破解游戏....这你也敢说..




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