조회 수 542 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
#주의사항
#스윗치의 ID는 게임상에서 이벤트 만들때 쓰이는 "스위치의 조작"의 "스위치 번호"에 해당합니다.
#저 같은 경우 15번 스위치가 게임 시작시 제일 먼저 on하도록 만들었기 때문에 스윗치의 ID가 15입니다.
#◆◇◆◇◆-----XRXS54. 맵상에서 간이 윈도우 표시 ver1. 0 -----◇◆◇◆◇
# by 각궁
# 「디폴트 기능 & 사양」
# ·WIN_2 = true. (이)라고 해도, 스윗치가 ON로 한편, 엑터가 존재하지 않으면
#  윈도우는 표시되지 않습니다. 이 3 요소가 갖추어졌을 때에 윈도우를 표시합니다.
# ·반대로 이 요소가 하나에서도 빠지면(자) 윈도우는 자동적으로 비표시가 됩니다.
# ·트크르 개시시는 스윗치는 OFF이므로, ON로 하지 않으면 표시되지 않습니다.
#------------------------------------------------------------------
# 커스터마이즈(customize) 포인트
#(*존재하지 않는 스윗치를 지정하시면(자) 에러가 됩니다. )
#----------------------------------------------------------------
WIN_1 = true # 엑터 1용 윈도우를 표시한다면 true, 하지 않으면 false.
SWITVH_1 = 15 # 엑터 1용 윈도우의 표시/비표시에 대응하는 스윗치의 ID.
#스위치에 관한 설명은 위를 참고해 주세요.
OPACITY_1 = 50 # 엑터 1용 윈도우의 투명도(0으로 가까울 정도 투명)
X_1 = 0 # 엑터 1용 윈도우의 X좌표
Y_1 = 384 # 엑터 1용 윈도우의 Y좌표

WIN_2 = true # 엑터 2용 윈도우를 표시한다면 true, 하지 않으면 false.
SWITVH_2 = 15 # 엑터 2용 윈도우의 표시/비표시에 대응하는 스윗치의 ID.
#스위치에 관한 설명은 위를 참고해 주세요.
OPACITY_2 = 50 # 엑터 2용 윈도우의 투명도(0으로 가까울 정도 투명)
X_2 = 160 # 엑터 2용 윈도우의 X좌표
Y_2 = 384 # 엑터 2용 윈도우의 Y좌표

WIN_3 = true # 엑터 3용 윈도우를 표시한다면 true, 하지 않으면 false.
SWITVH_3 = 15 # 엑터 3용 윈도우의 표시/비표시에 대응하는 스윗치의 ID.
#스위치에 관한 설명은 위를 참고해 주세요.
OPACITY_3 = 50 # 엑터 3용 윈도우의 투명도(0으로 가까울 정도 투명)
X_3 = 320 # 엑터 3용 윈도우의 X좌표
Y_3 = 384 # 엑터 3용 윈도우의 Y좌표

WIN_4 = true # 엑터 4용 윈도우를 표시한다면 true, 하지 않으면 false.
SWITVH_4 = 15 # 엑터 4용 윈도우의 표시/비표시에 대응하는 스윗치의 ID.
#스위치에 관한 설명은 위를 참고해 주세요.
OPACITY_4 = 100 # 엑터 4용 윈도우의 투명도(0으로 가까울 정도 투명)
X_4 = 480 # 엑터 4용 윈도우의 X좌표
Y_4 = 384 # 엑터 4용 윈도우의 Y좌표

SET_SP = [true, true, true, true] # 각 윈도우의 SP표시 설정. false로 비표시.
OPTION = 16
# 「메세지 윈도우 표시시는 간이 윈도우를 소거한다」
#  (이)라고 하는 기능의 ON/OFF에 대응하는 스윗치의 ID.
#=========================================================================
# ■ Scene_Map
#=========================================================================
class Scene_Map
#---------------------------------------------------------------------
# ● 프레임 갱신
#---------------------------------------------------------------------
alias main_tokimiya main
def main
# 간이 윈도우 1을 작성
@simple_window1 = Window_MapStatus.new(X_1, Y_1, 0)
@simple_window1.opacity = OPACITY_1
@simple_window1.visible = $game_Switches[SWITVH_1]
unless $game_party.actors.size > 0
@simple_window1.visible = false
end
# 간이 윈도우 2를 작성
@simple_window2 = Window_MapStatus.new(X_2, Y_2, 1)
@simple_window2.opacity = OPACITY_2
@simple_window2.visible = $game_Switches[SWITVH_2]
unless $game_party.actors.size > 1
@simple_window2.visible = false
end
# 간이 윈도우 3을 작성
@simple_window3 = Window_MapStatus.new(X_3, Y_3, 2)
@simple_window3.opacity = OPACITY_3
@simple_window3.visible = $game_Switches[SWITVH_3]
unless $game_party.actors.size > 2
@simple_window3.visible = false
end
# 간이 윈도우 4를 작성
@simple_window4 = Window_MapStatus.new(X_4, Y_4, 3)
@simple_window4.opacity = OPACITY_4
@simple_window4.visible = $game_Switches[SWITVH_4]
unless $game_party.actors.size > 3
@simple_window4.visible = false
end

main_tokimiya # 구메소드의 호출

# 간이 윈도우의 해방
@simple_window1.dispose
@simple_window2.dispose
@simple_window3.dispose
@simple_window4.dispose
end

#---------------------------------------------------------------------
# ● 프레임 갱신
#---------------------------------------------------------------------
alias update_tokimiya update
def update
update_tokimiya # 구메소드의 호출
# 이전의 파라미터와 상위가 있으면, 내용을 갱신한다.
#
# 윈도우 1의 갱신.
if WIN_1 == true and $game_party.actors.size > 0
# 데이터의 갱신
actor = $game_party.actors[0]
factor_1 = @simple_window1.before_1[0] != actor.name
factor_2 = @simple_window1.before_1[1] != actor.hp
factor_3 = @simple_window1.before_1[2] != actor.sp
if factor_1 or factor_2 or factor_3
@simple_window1.before_1[0] = actor.name
@simple_window1.before_1[1] = actor.hp
@simple_window1.before_1[2] = actor.sp
@simple_window1.refresh(0)
end
# 비표시 기능의 실행
if @message_window.visible == true and $game_Switches[OPTION] == true
@simple_window1.before_1[3] = false
@simple_window1.visible = false
elsif @simple_window1.before_1[3] != $game_Switches[SWITVH_1]
@simple_window1.before_1[3] = $game_Switches[SWITVH_1]
@simple_window1.visible = $game_Switches[SWITVH_1]
end
end

# 윈도우 2의 갱신.
if WIN_2 == true and $game_party.actors.size > 1
# 데이터의 갱신
actor = $game_party.actors[1]
factor_1 = @simple_window2.before_2[0] != actor.name
factor_2 = @simple_window2.before_2[1] != actor.hp
factor_3 = @simple_window2.before_2[2] != actor.sp
if factor_1 or factor_2 or factor_3
@simple_window2.before_2[0] = actor.name
@simple_window2.before_2[1] = actor.hp
@simple_window2.before_2[2] = actor.sp
@simple_window2.refresh(1)
# 윈도우를 강제적으로 생성
@simple_window2.before_2[3] = true
@simple_window2.visible = true
end
# 비표시 기능의 실행
if @message_window.visible == true and $game_Switches[OPTION] == true
@simple_window2.before_2[3] = false
@simple_window2.visible = false
elsif @simple_window2.before_2[3] != $game_Switches[SWITVH_2]
@simple_window2.before_2[3] = $game_Switches[SWITVH_2]
@simple_window2.visible = $game_Switches[SWITVH_2]
end
# 엑터가 존재하지 않는데 윈도우가 표시된 채로의 경우.
elsif @simple_window2.visible == true and @simple_window2.before_2 != nil
# 윈도우를 소거.
@simple_window2.before_2[3] = false
@simple_window2.visible = false
end

# 윈도우 3의 갱신.
if WIN_3 == true and $game_party.actors.size > 2
# 데이터의 갱신
actor = $game_party.actors[2]
factor_1 = @simple_window3.before_3[0] != actor.name
factor_2 = @simple_window3.before_3[1] != actor.hp
factor_3 = @simple_window3.before_3[2] != actor.sp
if factor_1 or factor_2 or factor_3
@simple_window3.before_3[0] = actor.name
@simple_window3.before_3[1] = actor.hp
@simple_window3.before_3[2] = actor.sp
@simple_window3.refresh(2)
# 윈도우를 강제적으로 생성
@simple_window3.before_3[3] = true
@simple_window3.visible = true
end
# 비표시 기능의 실행
if @message_window.visible == true and $game_Switches[OPTION] == true
@simple_window3.before_3[3] = false
@simple_window3.visible = false
elsif @simple_window3.before_3[3] != $game_Switches[SWITVH_3]
@simple_window3.before_3[3] = $game_Switches[SWITVH_3]
@simple_window3.visible = $game_Switches[SWITVH_3]
end
# 엑터가 존재하지 않는데 윈도우가 표시된 채로의 경우.
elsif @simple_window3.visible == true and @simple_window3.before_3 != nil
# 윈도우를 소거.
@simple_window3.before_3[3] = false
@simple_window3.visible = false
end

# 윈도우 4의 갱신.
if WIN_4 == true and $game_party.actors.size > 3
# 데이터의 갱신
actor = $game_party.actors[3]
factor_1 = @simple_window4.before_4[0] != actor.name
factor_2 = @simple_window4.before_4[1] != actor.hp
factor_3 = @simple_window4.before_4[2] != actor.sp
if factor_1 or factor_2 or factor_3
@simple_window4.before_4[0] = actor.name
@simple_window4.before_4[1] = actor.hp
@simple_window4.before_4[2] = actor.sp
@simple_window4.refresh(3)
# 윈도우를 강제적으로 생성
@simple_window4.before_4[3] = true
@simple_window4. visible = true
end
# 비표시 기능의 실행
if @message_window.visible == true and $game_Switches[OPTION] == true
@simple_window4.before_4[3] = false
@simple_window4.visible = false
elsif @simple_window4.before_4[3] != $game_Switches[SWITVH_4]
@simple_window4.before_4[3] = $game_Switches[SWITVH_4]
@simple_window4.visible = $game_Switches[SWITVH_4]
end
# 엑터가 존재하지 않는데 윈도우가 표시된 채로의 경우.
elsif @simple_window4.visible == true and @simple_window4.before_4 != nil
# 윈도우를 소거.
@simple_window4.before_4[3] = false
@simple_window4.visible = false
end
end
end



#=========================================================================
# ■ Window_MapStatus
#=========================================================================
class Window_MapStatus < Window_Base
#--------------------------------------------------------------------------
# ○공개 인스턴스 변수
#--------------------------------------------------------------------------
attr_accessor :before_1 # 갱신전의 윈도우 1의 파라미터
attr_accessor :before_2 # 갱신전의 윈도우 2의 파라미터
attr_accessor :before_3 # 갱신전의 윈도우 3의 파라미터
attr_accessor :before_4 # 갱신전의 윈도우 4의 파라미터
#---------------------------------------------------------------------
# ● 프레임 갱신
#---------------------------------------------------------------------
def initialize(x, y, id)
super(x, y, 160,96)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 18
@before_1=[]
@before_2=[]
@before_3=[]
@before_4=[]
# 현단계의 엑터의 파라미터와 가시 상태를 기억.
data
# 항목의 묘화.
refresh(id)
end
#--------------------------------------------------------------------------
# ● 항목의 묘화
#--------------------------------------------------------------------------
def data
# 엑터 1의 기억(다만, 파티가 1명 이상의 경우)
if $game_party.actors.size > 0
actor = $game_party.actors[0]
@before_1 = [actor.name, actor.hp, actor.sp, true]
end
# 엑터 2의 기억(다만, 파티가 2명 이상의 경우)
if $game_party.actors.size > 1
actor = $game_party.actors[1]
@before_2 = [actor.name, actor.hp, actor.sp, true]
end
# 엑터 3의 기억(다만, 파티가 3명 이상의 경우)
if $game_party.actors.size > 2
actor = $game_party.actors[2]
@before_3 = [actor.name, actor.hp, actor.sp, true]
end
# 엑터 3의 기억(다만, 파티가 4명 이상의 경우)
if $game_party.actors.size > 3
actor = $game_party.actors[3]
@before_4 = [actor.name, actor.hp, actor.sp, true]
end
end
#--------------------------------------------------------------------------
# ● 항목의 묘화
#--------------------------------------------------------------------------
def refresh(id)
# 재묘화를 위해서(때문에) 일단 내용을 파기 한다
self.contents.clear
# 대응하는 엑터가 없으면, 아무것도하지 않고 종료한다.
actor = $game_party.actors[id]
if actor == nil
return
end
# 이름의 묘화
draw_actor_name(actor, 0, -5)
# HP의 묘화
if SET_SP[id]
draw_actor_hp_custom(actor, 0, 18)
else
draw_actor_hp_custom(actor, 0, 28)
end
# SP의 묘화
if SET_SP[id]
draw_actor_sp_custom(actor, 0, 36)
end
end

#--------------------------------------------------------------------------
# ● HP 의 묘화
# actor : 엑터
# x : 묘화처 X 좌표
# y : 묘화처 Y 좌표
# width : 묘화처의 폭
#--------------------------------------------------------------------------
def draw_actor_hp_custom(actor, x, y, width = 144)
# 캐릭터 라인 "HP" 를 묘화
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
# MaxHP 를 묘화 하는 스페이스가 있을까 계산
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
# HP 를 묘화
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(hp_x - 12, y, 48, 32, actor.hp.to_s, 2)
# MaxHP 를 묘화
if flag
self.contents.font.color = normal_color
self.contents.draw_text(hp_x + 48 - 12, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60 - 12, y, 48, 32, actor.maxhp.to_s)
end
end
#--------------------------------------------------------------------------
# ● SP 의 묘화
# actor : 엑터
# x : 묘화처 X 좌표
# y : 묘화처 Y 좌표
# width : 묘화처의 폭
#--------------------------------------------------------------------------
def draw_actor_sp_custom(actor, x, y, width = 144)
# 캐릭터 라인 "SP" 를 묘화
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
# MaxSP 를 묘화 하는 스페이스가 있을까 계산
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
# SP 를 묘화
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(sp_x - 12, y, 48, 32, actor.sp.to_s, 2)
# MaxSP 를 묘화
if flag
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 48 - 12, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60 - 12, y, 48, 32, actor.maxsp.to_s)
end
end
end

몇번을 해봤는데 계속 에러가 나더군요... 혹시 수정할 부분이란게 에러와 연관된 것입니까???
으음.. 이건가 싶어서 가져왔는데 제대로 안되서 아무리 살펴봐도 모르겠네요..

  @simple_window1.visible = $game_Switches[SWITVH_1]

이부분에서 부터 걸리다니.. 으음.. 암만생각해도 이상하다는..
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
8748 혹시 이 스크립트 인가요?? メIllusion。 2005.06.04 338
» 혹시 이 스크립트 인가요?? 보물사냥꾼 2005.06.05 542
8746 혹시 윈도우10에서 RPG2003 해상도를 조절할 수 있을까요? 1 file xuckerx 2019.03.25 722
8745 혹시 시작한 직후에 바로 검은화면이 나오게 하는방법이 없나요? 2 CheeseRush 2014.02.03 416
8744 혹시 공홈에서 RPG만들기 구매하시고 환불 해보신 경험 있으신분 계신가요? 2 목마른사슴 2015.10.23 239
8743 혹시 게임 만들수 있나요? 2 팥빙수 2014.07.04 763
8742 혹시 xp용 몬스터 시체 그림 있는곳이 없을까요??? RM닉네임 2005.06.04 207
8741 혹시 xp용 몬스터 시체 그림 있는곳이 없을까요??? 내마음블루 2005.06.03 286
8740 혹시 Anima overtimeeffect 플러그인 써보신분 있으신가요? 6 최다킬 2016.01.02 1311
8739 혹시 2 EMFOR 2013.09.22 618
8738 형어디있냐고좀알려주세요. 3 카우맨 2014.05.31 364
8737 형어디있냐고라는게임올려주실분pc로가능한거여 10 BJ엔더X 2014.06.16 635
8736 형 어디있냐고ㅅㅂ질문좀. . . 4 어린새싹 2014.03.09 403
8735 형 어디있냐고 축구... 2 둻궑숵 2014.02.14 678
8734 형 어디있냐고 있나요ㅠㅠ? 4 둻궑숵 2014.02.13 835
8733 형 어디있냐고 게임을 하고 싶은데... 13 형어있 2014.01.24 1710
8732 현재까지 나온 알툴중에 가장 좋은 툴은? 다이노Boy 2005.11.30 297
8731 현재 저는 게임 출시 직전 치명적인 버그에 걸렸습니다.좀 도와주세요. 5 file RPG란무엇인가? 2017.03.29 800
8730 현재 연재률이 가장 높은 유저가 누구인가요? 『덩키동크』 2006.11.24 144
8729 현재 연재률이 가장 높은 유저가 누구인가요? 마엘 2006.11.18 350
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)