질문과 답변

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 12448
기본툴 사용법 RMMV MV 입문자 이벤트 관련 질문입니다. 4 근거괴 2020.07.02 169
게임 배포 RMVXA RPGVXAce가 없으면 실행이 안된대요 1 뮹입니다 2020.07.01 162
기본툴 사용법 RMMV 스프라이트 규격을 넘어가면 1 가온누리오 2020.06.30 118
스크립트 사용 RMVXA 랜덤으로 타이틀 화면이 바뀌는 vxace 스크립트 있나요? 싸코 2020.06.28 137
플러그인 추천 RMMV 게임 속에서 그림 그리는 플러그인 있나요? file 호구랑 2020.06.28 154
기타 RMMV 리소스팩 적용 1 뿔님 2020.06.28 131
기타 RMMV 슈퍼마리오 처럼 횡스크롤 액션 게임을 만들려고 하는데.... 2 JDG 2020.06.28 157
플러그인 추천 RMMV 화면을 돌리거나 뒤집고 싶습니다. JDG 2020.06.27 109
스크립트 작성 RMVXA Ace에서 게임 파일이름과 아이콘 변경방법을 알고싶습니다. 1 file 홍홍이1 2020.06.21 151
플러그인 추천 RMMV 스타폭스 방식의 슈팅게임을 만들고 싶어요. 2 JDG 2020.06.21 210
플러그인 사용 RMMV RPG MV 대화창 크기 2 file 나나블랑 2020.06.17 614
기본툴 사용법 RMVXA Extract 메모장 번역하는데 특정문자들 어떻게 고정하나요? 1 file griffe 2020.06.17 125
기타 RMMV 처음으로 TDDP로 맵핑 할 생각인데. 맵을 PNG 하는 방법이 있나요? 2 file 호구랑 2020.06.15 155
이벤트 작성 RMVXA 하루에 할 수 있는 활동에 제약을 주고싶어요 3 테티 2020.06.14 134
이벤트 작성 RMMV 주석(노트)를 인게임에서 수정하는 방법 4 무명시절 2020.06.14 223
플러그인 추천 RMMV 2P를 만들고 싶어요. 4 레기우스州 2020.06.12 176
플러그인 추천 RMMV 메뉴를 열면 이미지를 띄우는 플러그인이 있을까요? 2 file 동생 2020.06.11 319
이벤트 작성 RMVXA 특정 이벤트때 물체가 움직이게 하고 싶습니다 3 노드러브 2020.06.10 68
이벤트 작성 RMMV se정지가 동작하지않아요 파닥이 2020.06.08 61
라이선스 사이트 이용 RPG XP 통합맵칩이라고 아주 옛날에 아방스님이 올리신거 저작권에 대한 질문입니다. 오클트 2020.06.07 200
Board Pagination Prev 1 ... 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 516 Next
/ 516