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 6202
461 키입력 전체키 입력 스크립트 v4 by Cybersam 5 file 백호 2009.02.22 1948
460 키입력 Glitchfinder's Input Modules (XP/VX 공용) 2 Alkaid 2011.03.19 1952
459 이동 및 탈것 Super Simple Vehicle System Enhanced 8.0 by DerVVulfman 1 Alkaid 2010.12.12 1956
458 기타 [신기술 체험] 오투잼 스크립트 7 file 백호 2009.02.22 1959
457 전투 KGC_BattlerEffect(버틀러 효과) 2 file 백호 2009.02.22 1959
456 저장 세이브 & 로드 화면 개조 스크립트 file 백호 2009.02.21 1962
455 기타 [All RGSS] 윈도우 커서 숨기기/보이기 1 file Cheapmunk 2014.03.02 1963
454 메뉴 개별 메뉴 호출 단축키 스크립트 5 file 백호 2009.02.21 1965
453 HUD 맵 이름 뛰우기 10 WMN 2008.03.17 1966
452 상태/속성 KGC_StateIcon(스테이터스 아이콘 표시) 2 file 12345678 2010.02.03 1967
451 그래픽 MAWS: Modified Advanced Weather Script 1.2 by Agckuu Coceg 2 file Alkaid 2010.09.13 1969
450 기타 Project RGSS3 by joe5491 6 습작 2013.05.06 1970
449 저장 심플 세이브 로드(1개의 세이브 사용하기) 3 백호 2009.02.22 1972
448 메뉴 링 메뉴 Edited by Hypershadow180@rmxp.net 1 file 백호 2009.02.22 1975
447 스킬 스킬 레벨 스크립트 # 번역 진행중 6 빗자루씨 2010.02.11 1981
446 맵/타일 World Map 스크립트 1 file 백호 2009.02.21 1983
445 저장 Improved Save by gerrtunk 2 file Alkaid 2010.10.13 1983
444 장비 전투중에 장비변경 from RGSS Wiki 1 백호 2009.02.22 1988
443 기타 동료들이 기차처럼 줄줄 따라온다!? 7 file 백호 2009.02.21 1990
442 저장 렉없는 자동세이브(중복임??) 4 캉쿤 2011.09.12 1991
Board Pagination Prev 1 ... 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ... 52 Next
/ 52