질문과 답변

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 특정 타일셋까지 물체를 이동시켜서 이벤트 발생 시키는 법 3 김상원N 2016.07.10 129
액션 전투 RMVXA 특정 키를 눌렀을 때 조준점이 만들어져서 키보드 또는 마우스로 움직이고 조준할 수 있게 하려면 어떻게해야할까요 2 무명유실 2019.10.25 151
RMVXA 특정 좌표에서 아이템 사용시 이벤트 발생이 나오려면? 11 카온 2012.12.24 914
RMVXA 특정 조건에서 일부 스크립트를 잠시 사용하지 않게 하는 방법이 있나요? 1 DisCat 2017.06.29 90
이벤트 작성 RMVXA 특정 조건 달성시 게임 폴더에 메모장 추가하기 5 무해 2022.01.26 252
RMVXA 특정 장소에서 인카운트 변경 2 레비엔 2012.09.23 1388
RMVXA 특정 장소로 달려가는 이벤트를 많이 만들고 싶습니다 1 커세어리버 2014.11.24 273
RMVXA 특정 장비를 착용했을때 내성 무효 이런 기능은 어떻게 집어넣나요? 4 AccelHacker 2016.11.17 128
RMVXA 특정 장비는 해제불가능하게 만들기 2 Arees 2017.02.20 115
RMVXA 특정 이벤트의 좌표 알아내는 법. 1 불새우 2015.09.27 180
RMVXA 특정 이벤트에서 셧다운(게임 강제종료) 후에 다시 게임을 키고 시작했을 때 게임 내용의 변화 주기 2 동네Dn 2018.02.24 546
RMVXA 특정 이벤트를 보면 조작키가 안 먹힙니다.... 4 니야 2017.04.29 97
이벤트 작성 RMVXA 특정 이벤트때 물체가 움직이게 하고 싶습니다 3 노드러브 2020.06.10 68
스크립트 작성 RMVXA 특정 위치 위에 있을 때 방향키나 기타 특정 키를 입력받았을때 정해진 기능이 실행되게 하려고 합니다. 1 무명유실 2019.12.09 68
이벤트 작성 RMVXA 특정 아이템을 일정량 소지해야 사용할 수 있는 스킬을 구현하고 싶습니다. 2 AAAA. 2023.10.07 30
RMVXA 특정 아이템을 선택하면 이벤트가 실행되게 하고싶습니다. 2 휠체어운전기사 2016.06.13 132
RMVXA 특정 아이템끼리 모아놓기 2 길라잡이 2015.06.21 143
RMVXA 특정 아이탬을 가지고 있으면 대쉬 기능 가능하게 하는 법 5 707 2018.06.25 160
RMVXA 특정 시간, 복수변수, 스위치 조건에 발동하는 이벤트. 4 레스트 2012.11.01 1296
RMVXA 특정 스탯을 안보이게 하고 싶어요 1 file GOETSU 2016.09.09 197
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