XP 스크립트

http://www.dubealex.com/asylum/index.php?showtopic=9786

특정 버튼을 눌렀을 때 NPC 머리 위에 NPC 정보창이 뜨게 하는 것입니다. 

 
 


#==============================================================================
# ** NPC Details Window
#------------------------------------------------------------------------------
# SephirothSpawn
# 2006-07-11
# Version 1
#------------------------------------------------------------------------------
# * Instructions
#
# ~ Give NPC Comment Line with : NPC Details
# The Following Lines in the Comment Box will apear exactly as is
#
# ~ NPC Button
# Check_NPCDetails_Button = Input::Constant
#==============================================================================

#------------------------------------------------------------------------------
# * SDK Log Script-x
#------------------------------------------------------------------------------
SDK.log('NPC Details Window', 'SephirothSpawn', 1, '2006-07-11')

#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state('NPC Details Window')

#==============================================================================
# ** Game_Player
#==============================================================================

class Game_Player
#--------------------------------------------------------------------------
# * Check NPC Details Button
#--------------------------------------------------------------------------
Check_NPCDetails_Button = Input::A
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_npcdetails_gmplyr_update update
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Original Update
seph_npcdetails_gmplyr_update
# If NPC Details Button is Pressed
if Input.trigger?(Check_NPCDetails_Button)
# Gets NPC Desired Location
new_x = x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
new_y = y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
# Checks All Events
for event in $game_map.events.values
# If Event is In Front Of Player
if event.x == new_x && event.y == new_y
# Checks All Event's Event Commands
for event_command in event.list
# If Comment Command
if event_command.code == 108
# If Comment Contains 'NPC Details'
if event_command.parameters[0].include?('NPC Details')
# Gathers NPC Details
details = []
index = event.list.index(event_command)
for i in index...event.list.size
if event.list[i].code == 408
details << event.list[i].parameters[0]
end
end
# Creates NPC Window
$scene.seph_start_npcdetails_window(event.id, details)
break
end
end
end
end
end
end
end
end

#==============================================================================
# ** Game_Event
#==============================================================================

class Game_Event
attr_reader :event
end

#==============================================================================
# ** Window_NPCDetails
#==============================================================================

class Window_NPCDetails < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(event_id, details)
x = [[0, $game_map.events[event_id].screen_x - 160].max, 320].min
y = [[0, $game_map.events[event_id].screen_y - 224].max, 320].min
super(x, y, 320, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 160
refresh(event_id, details)
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh(event_id, details)
self.contents.clear
# Draws Event Name
name = $game_map.events[event_id].event.name
self.contents.font.color = system_color
self.contents.draw_text(0, 0, contents.width, 32, name, 1)
# Draws Details
self.contents.font.color = normal_color
for i in 0...details.size
self.contents.draw_text(4, i * 32 + 32, contents.width, 32, details[i])
end
end
end

#==============================================================================
# ** Scene_Map
#==============================================================================

class Scene_Map
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias seph_npcdetails_scnmap_update update
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# If NPC Details Window Exist
unless @npc_details_window.nil?
seph_update_npcdetails
return
end
# Original Update Processing
seph_npcdetails_scnmap_update
end
#--------------------------------------------------------------------------
# * Frame Update : Npc Details
#--------------------------------------------------------------------------
def seph_update_npcdetails
# Update Map Details
$game_map.update
$game_system.map_interpreter.update
$game_system.update
$game_screen.update
@spriteset.update
@message_window.update
# If B Button Or C Button is Pressed
if Input.trigger?(Input::A) || Input.trigger?(Input::C)
# Dispose NPC Details Window
@npc_details_window.dispose
@npc_details_window = nil
end
end
#--------------------------------------------------------------------------
# * Start NPC Details Window
#--------------------------------------------------------------------------
def seph_start_npcdetails_window(event_id, details)
@npc_details_window = Window_NPCDetails.new(event_id, details)
end
end

#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end


NPC 정보는 이벤트 명령->주석에서 NPC Details (정보) 식으로 달면 되는 모양.

Who's 백호

?

이상혁입니다.

http://elab.kr

Atachment
첨부 '2'
Comment '1'
  • ?
    용호작무 2009.08.23 05:05

    favorite move : leg sweep........유머용으로 괜찮겠네요;


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 7317
821 메시지 Hermes(Hermes Extends RPGXP Message System) 0.4 by derula 1 Alkaid 2011.02.27 3082
820 스킬 스킬창 업그레이드? ps인간 2009.01.23 3072
819 메시지 한글자씩 뜨는 스크립트 6 백호 2009.02.21 3062
818 전투 심플액알 더더 수정(스위치, 변수) 17 file 백호 2009.02.21 3059
817 타이틀/게임오버 게임오버 화면 에서 커맨드 윈도우 스크립트 12 file 백호 2009.02.21 3051
816 메뉴 제가 쓰고있는 메뉴 13 file 백호 2009.02.21 3050
815 키입력 AInput Module 3.10 by vgvgf (전체키, 마우스 입력) 6 file Alkaid 2010.09.01 3048
814 메뉴 링 메뉴 소지금,플레이시간 추가 버젼 17 Neowitch* 2008.04.20 3047
813 전투 GTBS 1.4 스크립트 9 아방스 2009.02.05 3035
812 아이템 아이템획득스크립트 ps인간 2009.01.23 3019
811 그래픽 WhiteFlute - BitmapEX 4 file JACKY 2012.12.10 3011
810 전투 횡스크롤형식의 스크립트 7 백호 2009.02.21 3009
809 이동 및 탈것 캐릭터 이동 프레임? 증가 스크립트 9 백호 2009.02.21 3007
808 HUD 맵이름 넣기(bs님의 강의랑 다르게 스크립트로) 16 file 아방스 2007.11.09 3007
807 맵/타일 World Map version 1.2 11 백호 2009.02.22 2999
806 아이템 [신기술 체험] 인벤토리 8 file 백호 2009.02.22 2990
805 전투 CTB by Charlie Fleed 3.1 - FF10 스타일의 전투시스템 6 Alkaid 2010.09.10 2987
804 메뉴 메뉴 단축키 스크립트 14 백호 2009.02.22 2972
803 HUD 맵 이름을 표시해주는 스크립트입니다. 25 임희성 2011.02.12 2968
802 메뉴 Mog-메뉴업그레이드? ps인간 2009.01.23 2967
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