XP 스크립트

[사용법]
이벤트ID의 지정 방법이나 테일 화상의 형식은,메세지 분출해 표시와 같습니다.
(다만 「$mes_id=-1(그 이벤트 자신)」는 비대응이 되고 있습니다)

XMS.스크립트 쉘프모양의 「메세지 표시 풀 그레이드 업」은, 확장CO-X을 사용하는 것으로
제어 문자p[]의 설정을 자동적으로$mes_id에 적용할 수 있습니다.
즉, 캐릭터 팝으로부터 이벤트 커멘드를 고쳐 쓰는 필요없음에 도입이 가능합니다.


[스크립트]
#==============================================================================
# +++ 콜라보레이션 「+분출해 표시」 ver.1.13 +++
# Script by
#    파라개  http://para.j-mx.com/
#      ×
#    앵아 재흙 http://xms.fc2web.com/
#
#------------------------------------------------------------------------------
#  거의 어떤 메세지 윈도우에 대해서도 부록 가능한 「분출해 표시」입니다.
#  또, 테일 부분만의 자동 추적 기능을 가집니다.
#==============================================================================
# 분출해 표시를 하려면 ,
# 테일용 화상 「(스킨명)-top」 「(스킨명)-under」을
# 「Graphics/Windowskins」폴더에 임포트 해 둘 필요가 있습니다.
#------------------------------------------------------------------------------
#
# [분출해 표시의 사용법]
# 이벤트 커멘드 「스크립트」로 「$mes_id」에 이벤트ID를 대입하는 것으로
# 그 이벤트나무이고가 팝 하게 됩니다.
# (기술예: $mes_id=4 )
# ID에0를 대입하면 플레이어, nil대입하면, 통상의 메세지 표시로 돌아옵니다.
# 표시 위치는 이벤트 「문장 옵션」으로 변경할 수 있습니다.
# 표시 위치에 「중앙」을 지정하면, 이벤트의 위치에 관계없이
# 화면 중앙에 표시됩니다.
#
#==============================================================================

#==============================================================================
# □ 커스터마이즈 포인트
#==============================================================================
class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # 분출해 모드시의 스킨 설정
  #--------------------------------------------------------------------------
  # 스킨명(원의 윈도우 스킨과 같은 것을 사용할 때는 「""」)
  FUKI_SKIN_NAME = "001-Blue01"
  # 윈도우 배경의 불투명도(디폴트는160)
  FUKI_OPACITY = 255
end

#==============================================================================
# ■ Window_Message
#==============================================================================
class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 메세지 종료 처리
  #--------------------------------------------------------------------------
  alias parashelf_terminate_message terminate_message
  def terminate_message
    # 귀환시키는
    parashelf_terminate_message
    # 나무이고의 소거
    del_tail
  end
  #--------------------------------------------------------------------------
  # ● 리프레쉬
  #--------------------------------------------------------------------------
  alias parashelf_refresh refresh
  def refresh
    # 귀환시키는
    parashelf_refresh
    # 나무이고의 재설정
    del_tail
    set_tail
  end
  #--------------------------------------------------------------------------
  # ● 윈도우의 위치와 불투명도의 설정
  #--------------------------------------------------------------------------
  alias parashelf_reset_window reset_window
  def reset_window
    # 귀환시키는
    parashelf_reset_window
    # 테일의 위치를 변경
    if $mes_id != nil and @tail != nil
      tale_pos = get_tale_pos
      @tail.x = tale_pos[0]
      @tail.y = tale_pos[1]
    end
  end
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  alias parashelf_update update
  def update
    # 귀환시키는
    parashelf_update
    # 분출해 테일의 갱신
    update_tail
    # 메세지 표시중의 경우
    if @contents_showing
      # 테일이 있는 경우는 포즈 싸인을 비표시
      if @tail != nil
        self.pause = false
      end
    end
    # 멧지 종료시에 스킨 설정이 돌아오지 않은 경우
    if $game_temp.message_window_showing == false and @def_skin_name != nil
      # 스킨을 되돌리는
      reset_fuki_skin
    end
  end
  #--------------------------------------------------------------------------
  # ○ 프레임 갱신 (분출해 테일)
  #--------------------------------------------------------------------------
  def update_tail
    # 분출해 모드에서는 이벤트의 움직임에 추종
    if $mes_id != nil and @tail != nil
      tale_pos = get_tale_pos
      @tail.x = tale_pos[0]
      @tail.y = tale_pos[1]
      skin = $game_system.windowskin_name
      case @message_position
      when 0  # 상
        @tail.bitmap = RPG::Cache.windowskin(skin + "-top")
      when 2  # 하
        @tail.bitmap = RPG::Cache.windowskin(skin + "-under")
      end
    end
  end
  #--------------------------------------------------------------------------
  # ○ 분출해 테일을 표시
  #--------------------------------------------------------------------------
  def set_tail
    # $mes_id 가 하늘 때와 전투중나무이고를 표시하지 않는
    if $mes_id == nil or $game_temp.in_battle
      del_tail
      # 스킨을 되돌리는
      reset_fuki_skin
    else
      # 스킨을 세트
      set_fuki_skin
      # 나무이고의 테일을 묘화
      skin = $game_system.windowskin_name
      if $game_system.message_frame == 0
        # 위치를 취득
        tale_pos = get_tale_pos
        @tail = Sprite.new
        case $game_system.message_position
        when 0  # 상
          @tail.bitmap = RPG::Cache.windowskin(skin + "-top")
          @tail.x = tale_pos[0]
          @tail.y = tale_pos[1]
          @tail.z = self.z + 1
        when 1  # 안
          @tail.dispose
          @tail = nil
        when 2  # 하
          @tail.bitmap = RPG::Cache.windowskin(skin + "-under")
          @tail.x = tale_pos[0]
          @tail.y = tale_pos[1]
          @tail.z = self.z + 1
        end
        # 엑스트라 스프라이트에 등록
        @extra_sprites = [] if @extra_sprites.nil?
        @extra_sprites.push(@tail) if @tail != nil
      end
    end
  end
  #--------------------------------------------------------------------------
  # ○ 테일의 위치를 계산
  #--------------------------------------------------------------------------
  def get_tale_pos
    character = get_character($mes_id)
    x = [[character.screen_x - 16, self.x].max, self.x + self.width - 32].min
    case $game_system.message_position
    when 0
      y = self.y + self.height - 16
    else
      y = self.y - 16
    end
    return [x, y]
  end
  #--------------------------------------------------------------------------
  # ○ 캐릭터의 취득
  #    parameter : 파라미터
  #--------------------------------------------------------------------------
  def get_character(parameter)
    # 파라미터로 분기
    case parameter
    when 0  # 플레이어
      return $game_player
    else  # 특정의 이벤트
      events = $game_map.events
      return events == nil ? nil : events[parameter]
    end
  end
  #--------------------------------------------------------------------------
  # ○ 나무이고를 파기
  #--------------------------------------------------------------------------
  def del_tail
    if @tail != nil
      @tail.dispose
      @tail = nil
    end
  end
  #--------------------------------------------------------------------------
  # ○ 스킨의 설정
  #--------------------------------------------------------------------------
  def set_fuki_skin
    # 윈도우 스킨을 변경
    if FUKI_SKIN_NAME != "" and FUKI_SKIN_NAME != $game_system.windowskin_name
      @def_skin_name = $game_system.windowskin_name
      $game_system.windowskin_name = FUKI_SKIN_NAME
      self.windowskin = RPG::Cache.windowskin($game_system.windowskin_name)
    end
    # 불투명도를 변경
    if self.back_opacity != FUKI_OPACITY
      @def_back_opacity = self.back_opacity
      self.back_opacity = FUKI_OPACITY
    end
  end
  #--------------------------------------------------------------------------
  # ○ 스킨을 되돌리는
  #--------------------------------------------------------------------------
  def reset_fuki_skin
    # 윈도우 스킨을 되돌리는
    if @def_skin_name != nil
      $game_system.windowskin_name = @def_skin_name
      self.windowskin = RPG::Cache.windowskin($game_system.windowskin_name)
      @def_skin_name = nil
    end
    # 불투명도를 되돌리는
    if @def_back_opacity != nil
      self.back_opacity = @def_back_opacity
      @def_back_opacity = nil
    end
  end
end

[출처]
http://para.j-mx.com/rgss/script/fuki_plus.html

Who's 백호

?

이상혁입니다.

http://elab.kr


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
174 기타 몬스터 도감 7 file 백호 2009.02.21 1834
173 기타 몬스터 도감 18 file 백호 2009.02.22 2667
172 기타 몬스터 게이지바 턴알 22 file 키라링 2009.01.22 4015
171 기타 모험일기 5 키라링 2009.01.18 1825
170 기타 모험 일기 스크립트 2 file 백호 2009.02.21 1433
169 기타 명령어들 6 지존!! 2010.07.24 2288
168 기타 멤버 교체 11 file 백호 2009.02.22 2525
167 기타 메세지창의 위치 변동 자동화 file 백호 2009.02.21 1138
» 기타 메세지를 분출해 표시 백호 2009.02.22 1169
165 기타 멋진...제작자 정보를 그림으로 1 백호 2009.02.22 1233
164 기타 맵처리를 가볍게 1 백호 2009.02.21 1147
163 기타 맵 이동시 로딩 그림 표시 14 file 백호 2009.02.21 2479
162 기타 말풍선 스크립트. 62 file 『동그라미』♥ 2010.02.04 4254
161 기타 말걸면그림천천히뜨기 4 file 백호 2009.02.21 1102
160 기타 만화형태 말칸 스크립트 28 file 백호 2009.02.22 3705
159 기타 마우스로 길찾기 스크립트 예제 file 백호 2009.02.21 1168
158 기타 마법반사스크립트 4 *ps인간 2009.01.26 1403
157 기타 레벨을 표시해주는 스크립트 5 백호 2009.02.22 2403
156 기타 레벨업포인트 3 백호 2009.02.22 1692
155 기타 레벨업시 전회복 by ccoa 8 백호 2009.02.22 2514
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13