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
841 기타 Complete Climate and Time System 1.2 by ForeverZer0 1 Alkaid 2010.09.17 1310
840 액터 Actor Customization 6.0.2 by Synthesize 4 file Alkaid 2010.09.17 1912
839 그래픽 MAWS: Modified Advanced Weather Script 1.2 by Agckuu Coceg 2 file Alkaid 2010.09.13 1969
838 메뉴 L's Custom Menu #3: 1인용 메뉴 Revision 1 3 Alkaid 2010.09.12 2360
837 저장 Advanced Save Menu 편집한 것. (SDK2용) Alkaid 2010.09.11 1219
836 HUD MOG_Active_Hud 3 file Bera 2010.09.11 2468
835 HUD MOG_C_HUD. 6 file Bera 2010.09.11 2329
834 액터 크리쳐 합체, 'SW_CreatureMix(for_rmxp)' by SiotWarrior 21 file 시옷전사 2010.09.11 2778
833 메뉴 L's Custom Menu #4: 'Compact' (SDK 2.x 필수) Alkaid 2010.09.11 1755
832 전투 Minkoff's Animated Battlers - Enhanced 13.2 by DerVVulfman Alkaid 2010.09.10 1687
831 전투 CTB by Charlie Fleed 3.1 - FF10 스타일의 전투시스템 6 Alkaid 2010.09.10 2975
830 전투 Mr. Mo's ABS 5.5 13 Alkaid 2010.09.10 3459
829 전투 DerVVulfman's addons for Mr.Mo's ABS file Alkaid 2010.09.10 1645
828 메시지 Hermes(Hermes Extends RPGXP Message System) 0.3d by derula Alkaid 2010.09.10 2024
827 아이템 Categorized Items Menu 1.3 by albertfish 1 file Alkaid 2010.09.09 1795
826 기타 간단한 Scene_Base Alkaid 2010.09.09 1390
825 메뉴 Ring menu edit (Non-SDK ver.) Alkaid 2010.09.08 1538
824 메뉴 Ring menu edit for SDK2 (Original by Hypershadow180) file Alkaid 2010.09.08 1374
823 메시지 Universal Message System 1.8.0 by ccoa 1 file Alkaid 2010.09.08 2184
822 그래픽 Weather Script(버전 불명) by ccoa 1 file Alkaid 2010.09.08 1571
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52