이벤트에서 스크립트로 Window_ItemAcquired.new(갯수, 타입, ID)로 화면 상단에 아이템 입수창을 띄우는 스크립트입니다.
#==============================================================================
# ** Window_ItemAcquired
#------------------------------------------------------------------------------
# This window displays a message when the player acquires an item.
# Script version 1.1 written by SiliconHero (09/22/2005)
#
# To use this in an event, use the Script command and type the following:
# Window_ItemAcquired.new(quantity, type, index)
# quantity = the number of items that have been found
# type = the type of item that is found (1 = item, 2 = weapon, 3 = armor)
# index = the item index (see the database)
#
# 1.1 (9/22/2005) - Window fades out when the "C" button is pressed.
# 1.0 (9/18/2005) - First version of the script.
#
# Special thanks to MagicMagor and Huitzilopoctli from RMXP.net for
# ideas and help.
#==============================================================================
class Window_ItemAcquired < Window_Base
def initialize(quantity, type, index)
super(0, 0, 640, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@quantity = quantity
@type = type
@index = index
self.pause = false
self.back_opacity = 127
self.contents.font.color = normal_color
# Process the item type
# type: 1 = item, 2 = weapon, 3 = armor
case @type
when 1
item = $data_items[@index]
when 2
item = $data_weapons[@index]
when 3
item = $data_armors[@index]
end
# Piece together the item acquisition string
# If more than one item is found, add the quantity to the message string
if @quantity > 1 then
text = "Acquired " + item.name + " ×" + @quantity.to_s + "!"
else
text = "Acquired " + item.name + "!"
end
# Play Item Acquired SE
Audio.se_play("Audio/SE/056-Right02.ogg", 100, 100)
self.pause = true
# draw the window
while not Input.trigger?(Input::C)
Input.update
Graphics.update
self.contents.clear
self.contents.draw_text(4, 0, self.width - 40, 32, text, 1)
end
# Fade out the window
while self.opacity > 0
self.opacity -= 24
Graphics.update
end
self.dispose
end
end
**주의: C버튼으로 창을 사라지게 만들기 때문에 이벤트에 아이템 입수 후 스위치가 설정되지 않았다면 C버튼(또는 거기에 해당하는 키)을 누를때마다 창이 뜹니다.(즉, 무한......)
**이 스크립트는 아이템 입수창만 띄우므로 이벤트에서 별도로 아이템 입수를 지정해야 합니다. 만일 스크립트로 아이템창을 띄우면서 바로 아이템을 추가하고 싶다면
case @type
when 1
item = $data_items[@index]
when 2
item = $data_weapons[@index]
when 3
item = $data_armors[@index]
end
이 부분을
case @type
when 1
item = $data_items[@index]
$game_party.gain_item(@index,@quantity) #
when 2
item = $data_weapons[@index]
$game_party.gain_weapon(@index,@quantity) #
when 3
item = $data_armors[@index]
$game_party.gain_armor(@index,@quantity) #
end
이렇게 수정하면 됩니다.
#==============================================================================
# ** Window_ItemAcquired
#------------------------------------------------------------------------------
# This window displays a message when the player acquires an item.
# Script version 1.1 written by SiliconHero (09/22/2005)
#
# To use this in an event, use the Script command and type the following:
# Window_ItemAcquired.new(quantity, type, index)
# quantity = the number of items that have been found
# type = the type of item that is found (1 = item, 2 = weapon, 3 = armor)
# index = the item index (see the database)
#
# 1.1 (9/22/2005) - Window fades out when the "C" button is pressed.
# 1.0 (9/18/2005) - First version of the script.
#
# Special thanks to MagicMagor and Huitzilopoctli from RMXP.net for
# ideas and help.
#==============================================================================
class Window_ItemAcquired < Window_Base
def initialize(quantity, type, index)
super(0, 0, 640, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@quantity = quantity
@type = type
@index = index
self.pause = false
self.back_opacity = 127
self.contents.font.color = normal_color
# Process the item type
# type: 1 = item, 2 = weapon, 3 = armor
case @type
when 1
item = $data_items[@index]
when 2
item = $data_weapons[@index]
when 3
item = $data_armors[@index]
end
# Piece together the item acquisition string
# If more than one item is found, add the quantity to the message string
if @quantity > 1 then
text = "Acquired " + item.name + " ×" + @quantity.to_s + "!"
else
text = "Acquired " + item.name + "!"
end
# Play Item Acquired SE
Audio.se_play("Audio/SE/056-Right02.ogg", 100, 100)
self.pause = true
# draw the window
while not Input.trigger?(Input::C)
Input.update
Graphics.update
self.contents.clear
self.contents.draw_text(4, 0, self.width - 40, 32, text, 1)
end
# Fade out the window
while self.opacity > 0
self.opacity -= 24
Graphics.update
end
self.dispose
end
end
**주의: C버튼으로 창을 사라지게 만들기 때문에 이벤트에 아이템 입수 후 스위치가 설정되지 않았다면 C버튼(또는 거기에 해당하는 키)을 누를때마다 창이 뜹니다.(즉, 무한......)
**이 스크립트는 아이템 입수창만 띄우므로 이벤트에서 별도로 아이템 입수를 지정해야 합니다. 만일 스크립트로 아이템창을 띄우면서 바로 아이템을 추가하고 싶다면
case @type
when 1
item = $data_items[@index]
when 2
item = $data_weapons[@index]
when 3
item = $data_armors[@index]
end
이 부분을
case @type
when 1
item = $data_items[@index]
$game_party.gain_item(@index,@quantity) #
when 2
item = $data_weapons[@index]
$game_party.gain_weapon(@index,@quantity) #
when 3
item = $data_armors[@index]
$game_party.gain_armor(@index,@quantity) #
end
이렇게 수정하면 됩니다.