스테이터스 화면에서 C 를 누르면 자기가 적은 케릭터소개가 나옵니다 ^^
맨 밑에 스샷 있어용 ~ 자기가 수정하고 싶은곳을 수정하면 됩니다
스토리 게임 만들때 좋겟죠 ㅎㅎ/
▼▼▼▼ 스크립트 ▼▼▼▼
#==============================================================================
# ■ 캐릭터 소개 Ver.1.3.0 by Claimh
#------------------------------------------------------------------------------
# 스테이터스 화면시에 어떠한 버튼을 누르는 것으로
# 각 캐릭터의 상세 설명 화면을 표시할 수 있습니다.
# 버튼은HELP 의Input (을)를 보고, 확인해 주세요
# 표준에서는, 캐릭터의 연령, 출신지, 신장, 체중
# 그 외의 문장 설명을 대응하고 있습니다
# 이외에 추가하고 싶은 경우는, 개조해 주세요
# 출처 : 십자군의 RPG 세상
#==============================================================================
module Chara_Review
#----------------------------------------------------------------------------
# 커스터마이즈 START
#----------------------------------------------------------------------------
# 캐릭터 소개로 전환하는 버튼( 디폴트:C)
CHENGE_KEY = Input::C
#--------------------------------------------------------------------------
# 연령(액터ID 의 순서에 넣어 가 주세요)
#--------------------------------------------------------------------------
CHARA_AGE = {
# 액터ID => "나이"
1 => "??",
2 => "??",
3 => "??",
4 => "??",
5 => "??",
6 => "??",
7 => "??",
8 => "??"
}
#--------------------------------------------------------------------------
# ● 출신지
#--------------------------------------------------------------------------
CHARA_FROM = {
# 액터ID => "출신지"
1 => "??",
2 => "??",
3 => "??",
4 => "??",
5 => "??",
6 => "??",
7 => "??",
8 => "??"
}
#--------------------------------------------------------------------------
# ● 신장
#--------------------------------------------------------------------------
CHARA_H = {
# 액터ID => " 신장"
1 => "??",
2 => "??",
3 => "??",
4 => "??",
5 => "??",
6 => "??",
7 => "??",
8 => "??"
}
#--------------------------------------------------------------------------
# ● 체중
#--------------------------------------------------------------------------
CHARA_W = {
# 액터ID => " 체중"
1 => "??",
2 => "??",
3 => "??",
4 => "??",
5 => "??",
6 => "??",
7 => "??",
8 => "??"
}
#--------------------------------------------------------------------------
# ● 그 외 문장(n 을 넣으면 개행합니다)
#--------------------------------------------------------------------------
CHARA_INFO = {
# 액터ID 1
1 => "이곳에 내용 적으세요",
# 액터ID 2
2 => "이곳에 내용 적으세요",
# 액터ID 3
3 => "이곳에 내용 적으세요",
# 액터ID 4
4 => "이곳에 내용 적으세요",
# 액터ID 5
5 => "이곳에 내용 적으세요",
# 액터ID 6
6 => "이곳에 내용 적으세요",
# 액터ID 7
7 => "이곳에 내용 적으세요",
# 액터ID 8
8 => "이곳에 내용 적으세요"
}
#----------------------------------------------------------------------------
# 커스터마이즈END
#----------------------------------------------------------------------------
end
#==============================================================================
# ■ Window_Charactor
#------------------------------------------------------------------------------
# ■ 캐릭터 소개 화면
#==============================================================================
class Window_Charactor < Window_Base
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# actor : 액터
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
refresh(actor)
end
#--------------------------------------------------------------------------
# ● 리프레쉬
#--------------------------------------------------------------------------
def refresh(actor)
self.contents.clear
return if actor.nil?
draw_battler_graphics(actor, 100, 200)
self.contents.font.color = system_color
self.contents.draw_text(250, 10, 80, 32, "이름 : ")
self.contents.draw_text(250, 50, 80, 32, "나이 : ")
self.contents.draw_text(250, 90, 80, 32, "출신지 : ")
self.contents.draw_text(250, 130, 80, 32, "신장 : ")
self.contents.draw_text(250, 170, 80, 32, "체중 : ")
self.contents.font.color = normal_color
draw_actor_name(actor, 350, 10)
self.contents.draw_text(350, 50, 80, 32, Chara_Review::CHARA_AGE[actor.id])
self.contents.draw_text(350, 90, 180, 32, Chara_Review::CHARA_FROM[actor.id])
self.contents.draw_text(350, 130 , 200, 32, Chara_Review::CHARA_H[actor.id])
self.contents.draw_text(350, 170, 250, 32, Chara_Review::CHARA_W[actor.id])
draw_enter_text(50, 250, 600, 32, Chara_Review::CHARA_INFO[actor.id])
end
end
class Window_Base < Window
#--------------------------------------------------------------------------
# ● 버틀러 그래픽의 묘화
#--------------------------------------------------------------------------
def draw_battler_graphics(actor, x, y)
battler = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
w = battler.width
h = battler.height
self.contents.blt(x-w/2, y-h, battler, Rect.new(0, 0, w,h))
end
#--------------------------------------------------------------------------
# ● 개행을 인식해 표시
#--------------------------------------------------------------------------
def draw_enter_text(x, y, width, height, text)
info_box = text.split(/n/)
for i in 0...info_box.size
self.contents.draw_text( x, y+i*32, width, 32, info_box[i])
break if (y+i*32) > (self.height-32)
end
end
end
#==============================================================================
# ■ Scene_Charactor
#------------------------------------------------------------------------------
# 캐릭터 소개 화면의 처리를 실시하는 클래스입니다.
#==============================================================================
class Scene_Charactor
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# actor_index : 액터 인덱스
#--------------------------------------------------------------------------
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
end
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
def main
# 액터를 취득
@actor = $game_party.actors[@actor_index]
# 스테이터스 윈도우를 작성
@status_window = Window_Charactor.new(@actor)
# 트란지션 실행
Graphics.transition
# 메인 루프
loop do
# 게임 화면을 갱신
Graphics.update
# 입력 정보를 갱신
Input.update
# 프레임 갱신
update
# 화면이 바뀌면 루프를 중단
if $scene != self
break
end
end
# 트란지션 준비
Graphics.freeze
# 윈도우를 해방
@status_window.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
# B 버튼이 밀렸을 경우
if Input.trigger?(Input::B)
# 캔슬 SE (을)를 연주
$game_system.se_play($data_system.cancel_se)
# 메뉴 화면으로 전환해
$scene = Scene_Menu.new(3)
return
end
# R 버튼이 밀렸을 경우
if Input.trigger?(Input::R)
# 커서 SE (을)를 연주
$game_system.se_play($data_system.cursor_se)
# 다음의 액터에게
@actor_index += 1
@actor_index %= $game_party.actors.size
# 다른 캐릭터 소개 화면으로 전환해
@status_window.refresh($game_party.actors[@actor_index])
return
end
# L 버튼이 밀렸을 경우
if Input.trigger?(Input::L)
# 커서 SE (을)를 연주
$game_system.se_play($data_system.cursor_se)
# 전의 액터에게
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
# 다른 캐릭터 소개 화면으로 전환해
@status_window.refresh($game_party.actors[@actor_index])
return
end
end
end
#==============================================================================
# ■ Scene_Status
#------------------------------------------------------------------------------
# 결정 버튼으로 캐릭터 소개 화면에
#==============================================================================
class Scene_Status
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
alias update_chara update
def update
# C 버튼이 밀렸을 경우
if Input.trigger?(Chara_Review::CHENGE_KEY)
# # 결정 SE (을)를 연주
$game_system.se_play($data_system.decision_se)
# 캐릭터 소개 화면으로 전환해
$scene = Scene_Charactor.new(@actor_index)
return
end
update_chara
end
end