RPGVX Ace 스크립트

Rpg Vx Ace 에서 이벤트 이름 팝업

by 빙냥이 posted Jan 17, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

↑위의 링크로 들어가시면 바로 보이므로 복붙하시면 됩니다만.....

아래에 설명문과 폰트 설정, 변수명부분만 한글화한걸 올렸습니다.

참고로 폰트 모양은 시스템 기본 설정 폰트를 따라갑니다.










#==============================================================================
# ★ RGSS3_이벤트위에 이름 띄우기 Ver1.1
#==============================================================================
=begin

제작자:tomoaky
web 사이트:ひきも記 (http://hikimoki.sakura.ne.jp/)

이벤트 이름, 또는이벤트 페이지 실행내용 상단에 주석으로 다음과 같이 씁니다.
<namepop [띄우고 싶은 문자]>
그럼 이벤트 위에 해당 글자가 표시됩니다.

이벤트 이름에 표시했을경우, 이벤트 모든 페이지에 적용됩니다.
주석에 표시했을경우, 해당 페이지만 표시되지만 우선도가 더 높아 주석의 이름이 표시됩니다.

문자를 지우려면 <namepop none> 을 사용하면 됩니다.

2011.12.16  Ver1.1
  글꼴 테두리 불투명도를 지정 가능하게 수정

2011.12.15  Ver1.0
  공개/배포
 
=end

#==============================================================================
# □ 설정하목
#==============================================================================
module TMNPOP
  FONT_SIZE = 14          # 글꼴의 사이즈
  FONT_OUT_ALPHA = 255    # 글꼴의 테두리 불투명도
end

#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character
  #--------------------------------------------------------------------------
  # ● 변수
  #--------------------------------------------------------------------------
  attr_accessor :namepop                  # 팝업 텍스트
  #--------------------------------------------------------------------------
end

#==============================================================================
# ■ Game_Event
#==============================================================================
class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # ● イベントページの設定をセットアップ
  #--------------------------------------------------------------------------
  alias tmnpop_game_event_setup_page_settings setup_page_settings
  def setup_page_settings
    tmnpop_game_event_setup_page_settings
    if @list
      @namepop = $1 if /<namepops*(S+?)>/i =~ @event.name
      @list.each do |list|
        if list.code == 108 || list.code == 408
          @namepop = $1 if /<namepops*(S+?)>/i =~ list.parameters[0]
        else
          break
        end
      end
    end
  end
end

#==============================================================================
# ■ Sprite_Character
#==============================================================================
class Sprite_Character < Sprite_Base
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias tmnpop_sprite_character_dispose dispose
  def dispose
    dispose_namepop
    tmnpop_sprite_character_dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias tmnpop_sprite_character_update update
  def update
    tmnpop_sprite_character_update
    update_namepop
    if @character.namepop != @namepop
      @namepop = @character.namepop
      start_namepop
    end
  end
  #--------------------------------------------------------------------------
  # ○ namepopの開始
  #--------------------------------------------------------------------------
  def start_namepop
    dispose_namepop
    return if @namepop == "none" || @namepop == nil
    @namepop_sprite = ::Sprite.new(viewport)
    h = TMNPOP::FONT_SIZE + 4
    @namepop_sprite.bitmap = Bitmap.new(h * 10, h)
    @namepop_sprite.bitmap.font.size = TMNPOP::FONT_SIZE
    @namepop_sprite.bitmap.font.out_color.alpha = TMNPOP::FONT_OUT_ALPHA
    @namepop_sprite.bitmap.draw_text(0, 0, h * 10, h, @namepop, 1)
    @namepop_sprite.ox = h * 5
    @namepop_sprite.oy = h
    update_namepop
  end
  #--------------------------------------------------------------------------
  # ○ namepopの更新
  #--------------------------------------------------------------------------
  def update_namepop
    if @namepop_sprite
      @namepop_sprite.x = x
      @namepop_sprite.y = y - height
      @namepop_sprite.z = z + 200
    end
  end
  #--------------------------------------------------------------------------
  # ○ namepopの解放
  #--------------------------------------------------------------------------
  def dispose_namepop
    if @namepop_sprite
      @namepop_sprite.bitmap.dispose
      @namepop_sprite.dispose
      @namepop_sprite = nil
    end
  end
end