XP 스크립트



# ▼▲▼ XRXS20. 맵명 표시 윈도우 ver.2 ▼▲▼ built100108
# by 앵아 재흙

#==============================================================================
# □ 커스터마이즈 포인트
#==============================================================================
module XRXS20
#
# 제외하는 맵ID (맵의 머리의 것 . 을 회피하고 싶은 경우)
#
EXCLUSIVE_MAPS = []
#
# 윈도우범위
#
WINDOW_FRAME = true # 표시
WINDOW_SKIN = "" # 개별 윈도우 스킨("" : 종래)
WINDOW_WIDTH_FIX = 0 # 가로폭 고정(0:고정하지 않고 자동)
WINDOW_HEIGHT = 24 # 세로폭
#
# 폰트
#
FONT_NAME = "굴림"
FONT_COLOR = Color.new(255, 255, 0, 255)
FONT_SIZE = 18
#
# [표시 위치] (0:좌상 ,1:우상 ,2:좌하 ,3:우하)
#
POSITION = 1
#
# [표시 시간]
#
TIME_FADEIN = 16 # 용명
TIME_STOP = 64 # 표시 정지
TIME_FADEOUT = 24 # 페이드아웃
end
#--------------------------------------------------------------------------
# 텍스트 모형
#--------------------------------------------------------------------------
class Window_Map_Name < Window_Base
def text_model(text)
return "" + text + ""
end
end
#
#[기능]
# 맵명의 선두에 피리어드 「.」이 있으면(자) 맵명을 표시하지 않습니다.
#
#==============================================================================
# □ XRXS. 맵 나토리 이득 기구
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ○ 맵명을 취득
#--------------------------------------------------------------------------
def name
$data_mapinfos = load_data("Data/MapInfos.rxdata") if $data_mapinfos.nil?
$data_mapinfos[@map_id].name
end
end

#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ● 공개 인스턴스 변수
#--------------------------------------------------------------------------
attr_accessor :xrxs20_fade_duration
end
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 공개 인스턴스 변수
#--------------------------------------------------------------------------
attr_reader :map_id
end
#==============================================================================
# □ Window_Map_Name_Space
#==============================================================================
class Window_Map_Name_Space < Window_Base
#--------------------------------------------------------------------------
# ○ 오브젝트 초기화
#--------------------------------------------------------------------------
def initialize(x, y, w, h)
super(x-16, y-16, w+32, h+32)
self.opacity = 0
self.visible = false
@align = 1
end
#--------------------------------------------------------------------------
# ○ 문자를 설정
#--------------------------------------------------------------------------
def set_text(text)
# 묘화폭을 계산
if XRXS20::WINDOW_WIDTH_FIX == 0
bitmap = Bitmap.new(1,1)
bitmap.font.name = XRXS20::FONT_NAME
bitmap.font.size = XRXS20::FONT_SIZE
width = bitmap.text_size(text).width + 25
bitmap.dispose
else
width = XRXS20::WINDOW_WIDTH_FIX
end
# 컨텐츠 영역을 작성
if self.contents != nil
self.contents.dispose
end
self.width = width + 32
self.contents = Bitmap.new(width, self.height - 32)
self.contents.font.name = XRXS20::FONT_NAME
self.contents.font.color = XRXS20::FONT_COLOR
self.contents.font.size = XRXS20::FONT_SIZE
self.contents.font.bold = true
if text.nil?
return
end
# 문자의 묘화
x = 12
y = 0
width -= 6
height = self.contents.height
text_color = self.contents.font.color.dup
self.contents.font.color = Color.new( 0, 0, 0, 192)
self.contents.draw_text(x+2, y+2, width, height, text, @align)
self.contents.font.color = Color.new( 64, 64, 64, 192)
self.contents.draw_text(x-1, y-1, width, height, text, @align)
self.contents.draw_text(x+1, y-1, width, height, text, @align)
self.contents.draw_text(x-1, y+1, width, height, text, @align)
self.contents.draw_text(x+1, y+1, width, height, text, @align)
self.contents.font.color = text_color
self.contents.draw_text(x, y, width, height, text, @align)
end
end
#==============================================================================
# □ Window_Map_Name
#------------------------------------------------------------------------------
#  맵명을 표시하는 윈도우입니다.
#==============================================================================
class Window_Map_Name < Window_Base
#--------------------------------------------------------------------------
# ○ 공개 인스턴스 변수
#--------------------------------------------------------------------------
attr_accessor :text
#--------------------------------------------------------------------------
# ○ 오브젝트 초기
#--------------------------------------------------------------------------
def initialize
y = XRXS20::POSITION >= 2 ? 440 : 8
w = 64
h = XRXS20::WINDOW_HEIGHT
super(-w, y, w, h)
self.opacity = 0
self.visible = false
if XRXS20::WINDOW_SKIN != ""
# 스킨의 검색
skin = (RPG::Cache.windowskin(XRXS20::WINDOW_SKIN) rescue nil)
# 스킨의 설정 (스킨이 발견되었을 경우)
self.windowskin = skin unless skin.nil?
end
@space = Window_Map_Name_Space.new(self.x, self.y, self.width, self.height)
end
#--------------------------------------------------------------------------
# ○ 텍스트 설정
# text : 윈도우에 표시하는 캐릭터 라인
#--------------------------------------------------------------------------
def set_text(text)
if text.nil? or text.empty? or text =~ /^./
@showing_time = -1
@text = ""
@space.set_text(@text)
$game_temp.xrxs20_fade_duration = -1
else
# 설정
@text = text_model(text)
# 묘사
@space.set_text(@text)
if XRXS20::WINDOW_WIDTH_FIX == 0
self.width = @space.width - 16
else
self.width = XRXS20::WINDOW_WIDTH_FIX
end
case XRXS20::POSITION % 2
when 0
@x_indent = 4
when 1
@x_indent = 632 - self.width
end
end
self.visible = false
@space.visible = false
# 위치의 갱신
fade_relocation
end
#--------------------------------------------------------------------------
# ○ 페이드 시간에 의한 위치의 갱신
#--------------------------------------------------------------------------
def fade_relocation
# 페이드 시간의 설정
if $game_temp.xrxs20_fade_duration.nil?
$game_temp.xrxs20_fade_duration = (XRXS20::TIME_FADEIN + XRXS20::TIME_STOP + XRXS20::TIME_FADEOUT)
end
#
# 용명
#
d = $game_temp.xrxs20_fade_duration - (XRXS20::TIME_STOP + XRXS20::TIME_FADEOUT)
if d > 0
self.visible = XRXS20::WINDOW_FRAME
@space.visible = true
amount = ((XRXS20::TIME_FADEIN - d) * 255.0 / XRXS20::TIME_FADEIN).ceil
@space.contents_opacity = amount
self.opacity = [amount*5/8, 160].min
self.x = @x_indent - d
@space.x = self.x - 16
$game_temp.xrxs20_fade_duration -= 1
#
# 통상 표시
#
elsif ($game_temp.xrxs20_fade_duration > XRXS20::TIME_FADEOUT) or
($game_temp.xrxs20_fade_duration == 0 and XRXS20::TIME_FADEOUT == 0)
self.visible = XRXS20::WINDOW_FRAME
@space.visible = true
@space.contents_opacity = 255
self.opacity = 160
self.x = @x_indent
@space.x = self.x - 16
if $game_temp.xrxs20_fade_duration > 0
$game_temp.xrxs20_fade_duration -= 1
end
#
# 페이드아웃
#
elsif $game_temp.xrxs20_fade_duration > 0
self.visible = XRXS20::WINDOW_FRAME
@space.visible = true
amount = ($game_temp.xrxs20_fade_duration * 255.0 / XRXS20::TIME_FADEOUT).ceil
@space.contents_opacity = amount
self.opacity = amount * 5/8
self.x = (@x_indent + XRXS20::TIME_FADEOUT) - $game_temp.xrxs20_fade_duration
@space.x = self.x - 16
$game_temp.xrxs20_fade_duration -= 1
if $game_temp.xrxs20_fade_duration == 0
self.visible = false
@space.visible = false
end
end
end
#--------------------------------------------------------------------------
# ○ 프레임 갱신 [오버라이드(override)]
#--------------------------------------------------------------------------
def update
fade_relocation
super
end
#--------------------------------------------------------------------------
# ○ 해방 [오버라이드(override)]
#--------------------------------------------------------------------------
def dispose
@space.dispose
super
end
#--------------------------------------------------------------------------
# ○ 가시 상태 [오버라이드(override)]
#--------------------------------------------------------------------------
def visible=(b)
@space.visible = b unless @space.nil?
super
end
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
alias xrxs20_main main
def main
# 지명 윈도우를 작성
@map_name_window = Window_Map_Name.new
# 지명 윈도우의 갱신
name = XRXS20::EXCLUSIVE_MAPS.include?($game_map.map_id) ? nil : $game_map.name
@map_name_window.set_text(name)
# 되돌리는
xrxs20_main
# 지명 윈도우를 해방
@map_name_window.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
alias xrxs20_update update
def update
# 지명 윈도우의 갱신
@map_name_window.update
# 귀환시키는
xrxs20_update
end
#--------------------------------------------------------------------------
# ● 플레이어의 장소 이동
#--------------------------------------------------------------------------
alias xrxs20_transfer_player transfer_player
def transfer_player
# 지명 윈도우의 불가시화
@map_name_window.visible = false
# 귀환시키는
xrxs20_transfer_player
# 페이드 시간의 클리어
$game_temp.xrxs20_fade_duration = nil
# 지명 윈도우의 갱신
name = XRXS20::EXCLUSIVE_MAPS.include?($game_map.map_id) ? nil : $game_map.name
@map_name_window.set_text(name)
end
end

















그다지 바뀐건 없지만
바뀐 것을 명시하자면,

1. 나오는 글자 뒤의 스킨을 지정할수 있습니다.
2. 일부 맵의 이름이 나오지 않게 설정할수도 있습니다.
==>방법 : 맵명을 입력할때 .를 앞에 쳐놓고 입력하면 됩니다.
3. 맵 이름을 아이디로도 나오지 않게 설정할수 있습니다.<-- .를 계속 치는 노가다를 줄일수 있습니다.
4. 나오는 시간, 위치가 수정가능합니다.
5. 기타 기능 수정.



출처: http://xms.rdy.jp/x/XRXS20.htm
에 있는 스크립트를 네이버를 이용. 한글화 하였습니다.

Who's 백호

?

이상혁입니다.

http://elab.kr

Atachment
첨부 '1'
Comment '31'
  • profile
    ⌒_⌒ 2009.02.28 17:55
    감사합니다.~~!
  • ?
    상원 2009.02.28 18:25
    회피하고 싶은 맵설정이 안돼는데요,,,
  • ?
    루페 2009.09.06 19:23
    감사합니다~ 근데 정말로 안뜨게 하는것은 안되네요.. 왜그럴가요
  • ?
    오라테친구 2009.09.07 19:01

    감사 합니다!그런데...... 게임 오프닝 같은데서 어떻게 해야지 그맵이름 표시뜨는걸

    없앴을 있는지?

  • ?
    따배 2009.09.14 03:16

    # 제외하는 맵ID (맵의 머리의 것 . 을 회피하고 싶은 경우)
    #
    EXCLUSIVE_MAPS = [001,002]
    #

    제외할때 '폴더이름'을 넣는것이 아니라 맵의 'ID'를 넣어야 합니다.

  • ?
    마을이장 2009.12.04 13:45

    좋네요~~잘 쓰겠습니다~~^^

  • ?
    sooyeong7 2010.01.01 18:02

    감사합니다. ㅎㅎ

  • ?
    우왕궅키 2010.01.06 10:05

    ㄳ합니다.

     

  • ?
    윤아™ 2010.01.06 17:39

    ㄳ합니다.!!!!

  • ?
    룰랄루루 2010.01.11 20:19

    잘쓰겠습니다~ ㄳㄳ

  • ?
    라크리모사 2010.01.17 02:25

    감사합니다~~

  • ?
    만득이 2010.01.21 21:17

    감사합니다...

  • ?
    rpgxp배우미 2010.02.22 15:46

    잘스겠습니다

  • ?
    rpgxp배우미 2010.02.22 15:56

    ; 이걸 쓰니까

    기존에 바꿔둔 스크립트가 다오류뜨네요 ;;

  • ?
    rpgxp배우미 2010.02.22 16:01

    결국에는 이스크립트 다삭제했네요 ㅠ...

  • ?
    종이씨 2010.02.26 14:04

    ㅎㄱ

  • ?
    빠다싸만코 2010.04.20 21:43

    전보다 더 좋아졌네

    암튼 감사요.

  • ?
    [C]극상러브 2010.04.30 20:27

    잘쓰셔서

    감사합니다.

  • ?
    펜슬 2010.07.29 08:01

    대단하네요.

  • ?
    Nemi 2010.08.23 13:01

    감사합니다;!

  • ?
    류휀 2010.11.25 03:29

    잘 되네요~ 감사^^

  • ?
    King of The Dragon 2010.12.25 16:51

    감사합니다.

    잘쓰겠습니다.

  • ?
    이가인 2011.01.30 03:30

    우월한자료 감사합니다

  • ?
    사운드™ 2011.02.04 17:59

    잘받아갑니다 ^^

  • ?
    캣츠아이 2011.02.16 20:16

    내가 원하던건 계속 뜨는건데, ..... 어떻게 방법좀...

  • ?
    3pc_SYcW 2011.03.02 00:27

    # ▼▲▼ XRXS20. 맵명 표시 윈도우 ver.2 ▼▲▼ built100108
    # by 앵아 재흙

    #==============================================================================
    # □ 커스터마이즈 포인트
    #==============================================================================
    module XRXS20
    #
    # 제외하는 맵ID (맵의 머리의 것 . 을 회피하고 싶은 경우)
    #
    EXCLUSIVE_MAPS = []
    #
    # 윈도우범위
    #
    WINDOW_FRAME = true # 표시
    WINDOW_SKIN = "" # 개별 윈도우 스킨("" : 종래)
    WINDOW_WIDTH_FIX = 0 # 가로폭 고정(0:고정하지 않고 자동)
    WINDOW_HEIGHT = 24 # 세로폭
    #
    # 폰트
    #
    FONT_NAME = "굴림"
    FONT_COLOR = Color.new(255, 255, 0, 255)
    FONT_SIZE = 18
    #
    # [표시 위치] (0:좌상 ,1:우상 ,2:좌하 ,3:우하)
    #
    POSITION = 1
    #
    # [표시 시간]
    #
    TIME_FADEIN = 16 # 용명
    TIME_STOP = 64 # 표시 정지
    TIME_FADEOUT = 24 # 페이드아웃

    여기서 Time_stop = 64를 겁나 크게해주셈 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 그럼 ㅇㅁㅇ 님이 그게임 그맵에서 몇달은 있어야 그 맵표시 꺼지는 거 보실수 있을듯

  • ?
    사운드™ 2011.04.02 15:11

    감사합니다

  • ?
    홈버스트집사 2011.07.18 14:36

    감사합니다

  • ?
    465456545 2011.09.04 11:50

    감사합니다

  • ?
    신이치 2011.10.02 12:08

    좌표 위치 맘대로 바꾸는법 알려주세요

     

  • ?
    LK 2012.01.16 19:36

    감사합니다!


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 5727
34 HUD 주인공,NPC이름 머리 나타내기 49 file 송긔 2010.11.28 5938
33 HUD [게이지바]2.0버젼「체력,마나,경험치,직업,캐릭터,레벨,돈,맵이름」(HelloCoa2Ver2.0) 67 file 코아 코스튬 2010.10.23 5473
32 HUD [맵이동시 맵이름을 표시] 심플한 디자인 36 file 제로스S2 2009.08.05 4949
31 HUD [게이지바]3.0버젼「현재시간, 플레이시간, 걸음수, 윈도우 이동 추가」(HelloCoa2Ver3.0) 63 file 코아 코스튬 2010.10.30 4868
» HUD 새로운방법의 맵이름 표시 31 file 백호 2009.02.21 4602
29 HUD HP과 SP 바 19 Man... 2008.11.04 4515
28 HUD 캐릭터 아래 SP,HP표시해주는 스크립트 33 file 김!제스! 2010.08.04 4214
27 HUD 맵 이름 표시와 미니맵을 같이하자 8 file 뮤리온。 2011.10.08 4108
26 HUD 이름띄우기스크립트 - [ID홍길동] 이 아닌 [홍길동]으로 표기하기 27 블루레스 2009.11.06 4015
25 HUD [VX 가능] 이벤트 이름 띄우기 41 file 독도2005 2009.08.22 3857
24 HUD xp대화창에 얼굴, 이름 넣기!! [방법두 있음] 3 백호 2009.02.21 3516
23 HUD 맵이름스크립트 52 file 이안 2010.01.17 3516
22 HUD 맵이름표시 ps인간 2009.01.23 3437
21 HUD 시트르산의 나침반 스크립트 19 file 시트르산 2011.01.23 3143
20 HUD 넷플레이 HUD표시 2 file 백호 2009.02.22 3083
19 HUD 강화 나침반 스크립트 (원본 by 허걱) 16 file 더블제이 2010.08.16 3066
18 HUD HP/SP 상태를 표시해주는 간이 윈도우 3 file 백호 2009.02.21 3050
17 HUD 맵이름 넣기(bs님의 강의랑 다르게 스크립트로) 16 file 아방스 2007.11.09 2974
16 HUD 맵 이름을 표시해주는 스크립트입니다. 25 임희성 2011.02.12 2882
15 HUD 맵이름 스크립트 1 file 긔염둥이♥ 2012.05.19 2840
Board Pagination Prev 1 2 Next
/ 2