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 6204
94 기타 말걸면그림천천히뜨기 4 file 백호 2009.02.21 1102
93 기타 말풍선 스크립트. 62 file 『동그라미』♥ 2010.02.04 4254
92 기타 맵 이동시 로딩 그림 표시 14 file 백호 2009.02.21 2479
91 기타 맵처리를 가볍게 1 백호 2009.02.21 1147
90 기타 멋진...제작자 정보를 그림으로 1 백호 2009.02.22 1233
89 기타 메세지를 분출해 표시 백호 2009.02.22 1169
88 기타 메세지창의 위치 변동 자동화 file 백호 2009.02.21 1138
87 기타 멤버 교체 11 file 백호 2009.02.22 2529
86 기타 명령어들 6 지존!! 2010.07.24 2288
85 기타 모험 일기 스크립트 2 file 백호 2009.02.21 1434
84 기타 모험일기 5 키라링 2009.01.18 1825
83 기타 몬스터 게이지바 턴알 22 file 키라링 2009.01.22 4017
82 기타 몬스터 도감 7 file 백호 2009.02.21 1834
81 기타 몬스터 도감 18 file 백호 2009.02.22 2669
80 기타 몬스터도감 - 개량형 ? 7 file 백호 2009.02.22 2884
79 기타 무기 개조 스크립트 file 백호 2009.02.21 1248
78 기타 무기 회피율, 방어구 공격력 지정 스크립트 6 백호 2009.02.22 1248
77 기타 무기& 방어구 레벨제한 스크립트 23 file 백호 2009.02.21 1880
76 기타 발소리 스크립트 4 file 백호 2009.02.21 1614
75 기타 밤/낮 변화 시스템 스크립트 4 file 백호 2009.02.21 1770
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13