질문과 답변

Extra Form
종류 스크립트 사용

 

 출처 : http://falcaorgss.wordpress.com/    



이대로 실행하면 hp, mp, exp가 현재 몇인지 숫자가 보이는데,

숫자 없이 바만 보이도록 만들고 싶습니다.. 스크립트 제작자 님께서는 모니터링하지 않은지 몇 년이 지나셨더라고요

혹시 도움 주실 분 있으신가요?



 

 class Sprite_LifeBars < Sprite

  include PearlBars

  def initialize(viewport, character)

    super(viewport)

    @character = character

    self.bitmap = Bitmap.new(boss? ? 640 : 300, 120)

    @old_hp = battler.hp

    @old_mp = battler.mp

    @erasetimer = 180

    @state_checker = []

    @buff_checker = []

    refresh_contents

    @view = viewport

    update

  end

  

  def boss?

    return true if battler.is_a?(Game_Enemy) && battler.boss_hud

    return false

  end

  

  def battler

    return @character.battler

  end

  

  def refresh_contents

    self.bitmap.clear

    self.bitmap.font.size = 19

    @erasetimer = 180

    self.opacity = 255

    if battler.is_a?(Game_Actor)

      @old_exp = battler.exp

      @old_tp = battler.tp

      self.x = ScreenPos_X

      self.y = ScreenPos_Y

      h  = HP_BarDimentions ; m = MP_BarDimentions ; e = EX_BarDimentions

      if PearlBars::ActorsHp != ""

        @pimg = Cache.picture(PearlBars::ActorsHp)  if @pimg.nil?

        @bimg = Cache.picture(PearlBars::ActorsBack) if @bimg.nil?

        @pimp = Cache.picture(PearlBars::ActorsMp)  if @pimp.nil?

        PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@bimg,

        @pimg, battler,true)

        PearlKernel.image_mp(self.bitmap, m[0] + 4, m[1], @bimg, @pimp, battler)

        if PearlBars::ActorsExp != ""

          @piexp = Cache.picture(PearlBars::ActorsExp)  if @piexp.nil?

          PearlKernel.image_exp(self.bitmap,e[0] + 4,e[1],@bimg,@piexp, battler)

        end

      else

        hc = HP_Color ; mc = MP_Color ; ec = EX_Color

        PearlKernel.draw_hp(self.bitmap,battler, h[0], h[1], h[2], h[3],  hc)

        PearlKernel.draw_mp(self.bitmap,battler, m[0], m[1], m[2], m[3], mc)

        PearlKernel.draw_exp(self.bitmap,battler, e[0], e[1], e[2], e[3], ec)

      end

    else battler.is_a?(Game_Enemy)

      if boss?

        self.x = BeScreenPos_X

        self.y = BeScreenPos_Y

        h  = BHP_BarDimentions ; hc = BHP_Color

        if PearlBars::BossEne != ""

          @n_img = Cache.picture(PearlBars::BossEne) if @n_img.nil?

          @n_back = Cache.picture(PearlBars::BossBack) if @n_back.nil?

          PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,

          @n_img, battler,true)

        else

          PearlKernel.draw_hp(self.bitmap,battler, h[0],h[1],h[2], h[3],hc,true)

        end

      else

        self.x = NeScreenPos_X

        self.y = NeScreenPos_Y

        h  = EHP_BarDimentions ; hc = EHP_Color

        if PearlBars::NormalEne != ""

          @n_img = Cache.picture(PearlBars::NormalEne) if @n_img.nil?

          @n_back = Cache.picture(PearlBars::NormalBack) if @n_back.nil?

          PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,

          @n_img, battler,true)

        else

          PearlKernel.draw_hp(self.bitmap,battler,h[0],h[1],h[2], h[3], hc,true)

        end

      end

    end

  end

  

  def update

    super

    

    

    if battler.nil?

      dispose

      return

    end

    

    if @old_hp != battler.hp

      refresh_contents

      @old_hp = battler.hp

    end

    if @old_mp != battler.mp

      refresh_contents

      @character.actor.apply_usability if @character.is_a?(Game_Player)

      @old_mp = battler.mp

    end

    

    if battler.is_a?(Game_Actor)

      if @old_exp != battler.exp

        @old_exp = battler.exp

        refresh_contents

      end

      if @old_tp != battler.tp

        @old_tp = battler.tp

        @character.actor.apply_usability if @character.is_a?(Game_Player)

        refresh_contents

      end

      

    elsif battler.is_a?(Game_Enemy)

      if boss?

        dispose if battler.dead?

      else

        if @erasetimer > 0

          @erasetimer -= 1 

          self.opacity -= 10 if @erasetimer <= 25

          @states.opacity = self.opacity if !@states.nil?

          dispose if @erasetimer == 0

        end

      end

      update_enemy_status_icons

    end

  end

  

  # 적 상태 아이콘 엔진

  def update_enemy_status_icons

    display_status? ? create_states_icons : dispose_state_icons

    4.times.each {|i| refresh_states_icons if 

    @state_checker[i] != battler.state_icons[i]}

    2.times.each {|i| refresh_states_icons if 

    @buff_checker[i] != battler.buff_icons[i]}

  end

  

  def display_status?

    return true if !battler.state_icons.empty?

    return true if !battler.buff_icons.empty?

    return false

  end

  

  def create_states_icons

    return if disposed?

    return if !@states.nil?

    @states = ::Sprite.new(@view)

    @states.bitmap = Bitmap.new(144, 24)

    @n_back.nil? ? y_plus = BHP_BarDimentions[3] : y_plus = @n_back.height

    pos = [BeScreenPos_X, BeScreenPos_Y, y_plus] if  boss?

    pos = [NeScreenPos_X, NeScreenPos_Y, y_plus] if !boss?

    @states.x = pos[0] + 10

    @states.y = pos[1] + pos[2] + 24

    @states.zoom_x = 0.8

    @states.zoom_y = 0.8

    refresh_states_icons

  end

  

  def dispose_state_icons

    return if @states.nil?

    @states.bitmap.dispose

    @states.dispose

    @states = nil

  end

  

  def refresh_states_icons

    4.times.each {|i| @state_checker[i] = battler.state_icons[i]}

    2.times.each {|i| @buff_checker[i] = battler.buff_icons[i]}

    return if @states.nil?

    @states.bitmap.clear

    x = 0

    battler.state_icons.each {|icon| draw_icon(icon, x, 0) ; x += 24

    break if x == 96}

    count = 0

    battler.buff_icons.each {|icon| draw_icon(icon, x, 0) ; x += 24 ; count += 1

    break if count == 2}

  end

  

  def draw_icon(icon_index, x, y, enabled = true)

    bit = Cache.system("Iconset")

    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)

    @states.bitmap.blt(x, y, bit, rect, enabled ? 255 : 150)

  end

  

  def dispose

    self.bitmap.dispose

    dispose_state_icons

    super

  end

end


 

 

 

 

 

■ 질문전 필독!
  • 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
  • 하나의 게시물에는 하나의 질문만 합니다.
  • 제목은 질문의 핵심 내용으로 작성합니다.
  • 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
  • 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
  • 답변받은 게시물은 삭제하지 않습니다.
  • 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
    • 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!

※ 미준수시 사전경고 없이 게시물을 삭제합니다.


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12446
기타 RMVXA 메시지 출력 부분 x좌표를 변경하고싶어요! file 당고당고 2020.08.07 44
기타 기타 캐릭터가 게임 창을 넘어가서 바탕화면으로도 갈 수 있는 연출 방법 2 off_limit 2020.08.04 236
기타 RMVX 캐릭터 대신 방어해주는법 4 걍사람 2022.01.10 225
기타 RMVX 공격 메세지 바꾸는법 2 걍사람 2022.01.08 182
기타 기타 vx ace에서 플에이어가 직접 커스터마이징 할수 있는 기능이 있을까요? file 묘윤 2023.04.08 40
기타 RMMV 전투에서 싸우는 아군을 5명 이상으로 하고싶습니다아. 2 레기우스州 2020.08.09 60
기타 RMMV 특정스탯이 되면 죽은것으로 처리하고 싶습니다. 2 JDG 2020.08.18 50
기타 RMMV 직접 만든 애니메이션 적용시 배율에 따른 화질 문제 file 깡토 2020.08.18 95
기타 RMMV 상태이상 발동 확률을 변수나 캐릭터 능력치 등으로 결정하고 싶습니다. 레기우스州 2020.08.27 36
기타 RMVXA 해상도 크기 조절 후 메뉴창이 어딘가 이상합니다... file 건소금 2020.11.06 264
기타 RMMV mv 기본 게임 창? 변경방법 file .-. 2020.11.04 552
기타 RMMV 컷신스킵 3 무명시절 2020.08.30 88
기타 RMMV mv로 밤효과내는방법이 없을까요 2 회늑 2020.08.30 135
기타 RMMV 제발 도와주세요 진짜 급합니다 파일을 불러올 수가 없습니다 1 초보노인 2020.09.06 134
기타 기타 도트 배경이 투명 적용이 안됩니다 5 순수매실주 2020.09.17 171
기타 RMMV 플랫포머 낙사 구현)이거 어떻게 만들엇는지 아시는 분? 무명시절 2020.10.31 246
기타 RMMV 데미지 바닥의 판정을 명확히 하는 법있을까요? 무명시절 2020.11.22 69
기타 RMVXA 아이콘을 직접 만들어 보고싶습니다 겜만들고싶다앙 2020.11.22 68
기타 RMMV 특정 스탯이 되면 캐릭터의 SV이미지가 변하고 움직임도 멈추게 하고 싶어요. 레기우스州 2020.09.29 105
기타 RMVXA 추리겜을 만들려고하는데 어떻게 말을 계속 하게할수 있을까요? dodo&LPG 2021.08.26 81
Board Pagination Prev 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 83 Next
/ 83