질문과 답변

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 12391
RMVXA 윈도우 스킨 투명도 조절 2 에뎀이 2014.02.12 1638
RMVXA vx ace 스크립트 간단한 개조 부탁해요 1 히류 2012.10.15 1637
RMVXA 파일암호화 관련 질문드립니다. 4 l미누리l 2016.08.12 1637
RMVXA 폰트적용법 4 HunnJee 2013.01.08 1635
RMVXA RPG 만들기 VX Ace 아오오니처럼 '닿는 것으로 죽는' 상황은 어떻게 만드나요? 4 대악당 2013.08.17 1635
RMVXA 매끄럽게 이동시키기 2 xzrjs 2012.09.26 1632
RMVXA rpg만들기 vx ace를 깔고 한글화 패치 관련 6 킹랍토르 2013.06.02 1621
RMVXA 전투 시작할때와 전투 중 커맨드를 좀 바꾸고 싶습니다 1 이스피나 2012.09.29 1613
RMVXA RPG 만들기 VX Ace, 이벤트 종료 후 캐릭터 사라지게 하려면 어떻게 해야합니까? 8 대악당 2013.08.17 1611
RMVXA rpg vx ace 머리위에 체력,마나 표시하는 게이지바 스크립트없나요? 1 file 인삼보이 2013.06.09 1610
RMVXA 캐릭터 이름을 입력할 때 스크립트 변경 2 file leon13a 2014.10.22 1610
RMVXA 메세지 출력 시 글자의 테두리 제거방법 4 file 위니코 2013.11.01 1607
RMVXA [rpg vx ace]선택지 위치 조정하는 법좀요.... 2 조각조각 2014.01.14 1604
RMVXA 그림표시 좌표질문 5 file 쑤수 2017.01.07 1601
RMVXA vxa 폰트변경 4 파닥이 2014.01.17 1598
RMVXA 타일셋 교체후 이동 불가. 8 최실장 2012.11.23 1597
RMVXA ACE에서 멤버 파티변경시 특정멤버는 고정하게하는 방법은 없나요? 2 님믹 2012.10.06 1594
RMVXA 이벤트가 혼자서 맵을 넘어게가 하려면? 3 file 제이니 2012.07.28 1591
RMVXA 캐릭터 그래픽 4 file 혲이 2013.12.22 1591
RMVXA ace 사이드뷰 스크립트 2 file 현사이 2012.09.01 1581
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 149 Next
/ 149