A little Message from the Author

Hello Everyone! Listed below are some valuable scripts that you can use in your rpg games. Note that I did not made this scripts. They are simply scripts that are distributed in the internet that I had gathered here. Please give credits to the author of this scripts if you intend to use them in your rpg maker project. Hope you enjoy making your game!

Click the Title of the script to view the script's content.

_______________________________________________RPG Maker VX Scripts Collections________________________________________

Item Pop-up Script


This script enables an item pop-up whenever you open a treasure chest, receive a new item and etc. It automatically uses the icon pictures that you have in the graphics.

Start copying here:

#==============================================================================
# Chest Item Pop-Up
#==============================================================================
# Author : OriginalWij
# Edited By : Mac Malone (Dr. ?)
# Version : 3.0 - Dr. ? Edit v1.1
#==============================================================================

#==============================================================================
# v1.0
# - Initial release
# v1.1
# - Added description window
# v1.2
# - Bug fix and added forgotten aliases
# v1.3
# - Added option to only popup once for many of the same item
# v2.0
# - Reworked name popup window (won't show "1 x" if only one item)
# - Reworked gold display (more efficient)
# - Added option to turn popup sound on/off
# - Added option to turn popup text on/off
# - Added icon to name popup and the ability to turn it on/off
# - Added adjustable X & Y coordinates for name popup window
# - Added "call" feature - with and without adding the item to inventory
# - Added option to wait for button or time for popup name window
# - Added options to define button and time for popup name window wait
# - Added option to enable/disable the "close window" sound
# - Added options to define "close window" sound
# v2.1
# - Fixed moving event bug
# - Added option to have popup always active
# - Added option for overlay graphic
# - Added auto-adjust name window location, depending on actor X/Y
# v2.2
# - Several minor (non-bug) display fixes
# - Removed overlay option due to compatibility problems
# - Optimized script
# v3.0
# - Bugfix for when called from a common event
# - Reworked main popup scene for new X/Y determination
# - Added option for 2nd window cancellation button
# - Added option to center the text window or auto-move to not cover the player
# - Added option to popup items & gold after battle
# v3.0 - Dr. ? Edit
# - Added sound groups
# - Added ME compadibiltiy
# - Added Chest_Popup.new2 command
# - Added option to show or not show gold
# - Added option to show popup above event
# - Added Chest_Popup.new3 command
# - Added Popup_Data class (Incompadible with old save files)
# v3.0 - Dr. ? Edit v1.1
# - Bugfix for $popup.show_above_event
#==============================================================================

#==============================================================================
# To use:
#
# Normal Mode : turn on the switch (designated below) BEFORE
# each gold/item addition
# Automatic Mode : turn on the switch (designated below) if you DON'T want
# popups and then turn the switch off when done
#
# To call manually:
#
# (useful if using a break-limits script and popping-up 100+ of one item)
#
# $scene = Chest_Popup.new(type, amount, index, add = false, x = pX, y = pY, sound_group = nil)
# type : 0 :gold, 1 :items, 2 :weapons, 3 :armor
# amount : number of items "gaining"
# index : item ID
# add : adds item(s) shown into inventory if true (default = false)
# x : custom X coordinate to pop-up at (default = player X)
# y : custom Y coordinate to pop-up at (default = player Y)
# sound_group : play different sounds; an array containing [SI, VI, PI] look
# : at PLAY_P_SOUND for more. (default = nil) - Dr.? Edit
#==============================================================================

#==============================================================================
# NOTE: when adding multiple (different) items in an event, insert a WAIT(1)
# between them (insert the WAIT(1) even if in AUTOMATIC mode)
#==============================================================================
# NOTE: the switch turns itself off after each "add item/gold" event command
# UNLESS in automatic mode (you MUST turn it off MANUALLY in auto-mode)
#==============================================================================
# NOTE: insert a WAIT(7) between a text message and adding items in events
# (allows time for the message window to close)
#==============================================================================

#-----------------------------------------------------------------------------
# Popup Controls
#-----------------------------------------------------------------------------
# Automatic popup mode
# (true = ALWAYS popup UNLESS $game_switches[POPUP_SWITCH] is on)
AUTO_POPUP = true
# Switch to activate/deactivate popups
# (activate if AUTO_POPUP = false) (deactivate if AUTO_POPUP = true)
POPUP_SWITCH = 2
# Popup gold
GOLD_POP = true
# "Gold" icon index
# (if GOLD_POPUP = true)
GOLD_ICON = 205
# Only popup once (if many of the same item)
ONLY_SHOW_ONE = true
# Popup gold/items gained in battle (pops-up after battle)
BATTLE_POP = false
# Battle reward prefix text for popup text window
# (if BATTLE_POP = true)
BATTLE_REWARD = 'Battle Reward: '
# Show the Popup icon above the event which gave you the item.
SHOW_ABOVE_EVENT = true

#-----------------------------------------------------------------------------
# Sound Groups (Dr. ?)
#-----------------------------------------------------------------------------
# With this edit you can play multiple sounds depending on what you pick up.
# You can also play custom sounds when an important item is gained.
#
# Defining your Sounds, Volumes, and Pitches:
# ===========================================
# To set up your volumes, pitchs, and sound files you put a new pitch, volume,
# and or sound into the 3 constants below (P_SND, P_SND_V, P_SND_P).
#
# Sounds:
# -------
# For sounds you can either play a SE or a ME.
# To add a new sound simply add new index to P_SND like so:
#
# old:
# P_SND = ['Audio/SE/Chime2']
# new:
# P_SND = ['Audio/SE/Chime2', 'Audio/SE/Item1'] # Added a new SE called Item1
#
# Volumes:
# --------
# To add a new volume add a new index to P_SND_V like so:
#
# old:
# P_SND_V = [100]
# new:
# P_SND_V = [100, 80] # Added a volume with a percentage of 80. The precentage can be 0 - 100
#
# Pitchs:
# -------
# Same as with volumes except you add it to P_SND_P. The precentage can be 0 - 150.
# Examples: [150] # Pitch of 150
#
# Defining your Sound Groups:
# ===========================
# A sound group is an array cosisting of a Sound Index (SI), a Volume Index (VI),
# and a Pitch Index (PI). So the format is: [SI, VI, PI]. A sound index is the
# index of one of your defined sounds, a volume index is the index of one of
# your defined volumes, and a pitch index is the index of one of your defined
# pitchs. Here are some examples (Using the values above):
#
# [0, 0, 0] # This would be the SE, Chime2, with a volume of 100 and a pitch of 150.
# [1, 1, 0] # This would be the SE, Item1, with a volume of 80 and a pitch of 150.
#
# I hope you understood that.
#
# Using Sound Groups:
# ===================
# There are two ways to use sound groups. The GOLD_SOUND, WEAPON_SOUND, etc.
# constants and via Chest_Popup.new or Chest_Popup.new2 commands.
#
# GOLD_SOUND, ITEM_SOUND, WEAPON_SOUND, etc.:
# -------------------------------------------
# To use a sound group in these constants simply write: GOLD_SOUND = [0, 0, 0]
# or whatever your sound group is. These constants mean what sounds will play
# when gold is gained, when a weapon is gained, etc. It should be evident, but
# it does tell you what each one is beside the constant definition. Examples:
#
# GOLD_SOUND = [0, 0, 0] # This would play the SE, Chime2, with a volume of 100
# and a pitch of 150 when gold is gained.
# ITEM_SOUND = [1, 1, 0] # This would play the SE, Item1, witha volume of 80
# and a pitch of 150 when an item is gained.
#
# Chest_Popup.new and Chest_Popup.new2 Commands:
# ----------------------------------------------
# Use this to make special music play when you get a special item.
#
# Example:
# Let's say we get a very special item (Like a crystal) and we want it to
# popup and play the ME Fanfare1 with the defualt volume and pitch (100, 150).
# So here is what we would do. We would first add that ME into P_SND like so:
#
# P_SND = ['Audio/SE/Chime2', 'Audio/SE/Item1', 'Audio/ME/Fanfare1']
#
# Then we would make our event with Quick Event Creation > Treasure Chest,
# select our chest character set and choose our crystal item from the drop-down.
# Then we open up the event. We delete the second to last event on the first
# page, the one that adds the a item. Then We replace it with a script event.
# If the index of the crystal was 8 it would look like this:
#
# $scene=Chest_Popup.new(1,1,8,true,nil,nil,[2,0,0]) # See the 8 in this command?
# That is the index of the item in the database.
#
# Note: This WON'T fit one just one line, and I'm not sure if that's going to
# be a problem or not. If you want the command to fit on one line you could
# ethier use the new2 command or do this:
#
# sg = [2,0,0] # sound group
# t = true # add value
# $scene=Chest_Popup.new(1,1,8,t,nil,nil,sg)
#
# This would end up taking 3 lines but all of the commands would fit on one
# line.
#
# After that, click OK and you are done.
#
# About New2:
# -----------
# The Chest_Popup.new2 is a command made just for the sound group purpose. It
# shortens the new command by rearrganing it and removing the x, y settings.
# In the example above the new2 command would have made the script look like
# this:
#
# $scene = Chest_Popup.new2(1, 1, 10, [2,0,0])
#
# Thus, it would fit on one line. The syntax for this command is:
#
# $scene = Chest_Popup.new2(type, amount, index, sound_group=nil, add=true)
#
# Each of them have the same meaning the same as their counterparts in the
# Chest_Popup.new command explained at the top of this script, with the
# exception of the defualt of add now being true.
#
# Notes:
# ======
# PLAY_P_SND must be true for any of this to work.
#
#-----------------------------------------------------------------------------
# Play sound on popup?
PLAY_P_SND = true
#######################################################
# 3 options below are valid ONLY if PLAY_P_SND = true #
#######################################################
# Sound to play upon popup
# Can be a list of sounds, volumes, and pitchs, but must be surrounded in []
P_SND = ['Audio/SE/Chime2', 'Audio/SE/Item1', 'Audio/ME/Fanfare1']
P_SND_V = [100]
P_SND_P = [150]

# Which sound to play from P_SND at certain occasions.
# SI = Sound Index, VI = Volume Index, PI = Pitch Index
# SI VI PI
GOLD_SOUND = [1, 0, 0] # Sound to play if gold
ITEM_SOUND = [0, 0, 0] # Sound to play if item
ARMOR_SOUND = [1, 0, 0] # Sound to play if armour
WEAPON_SOUND = [1, 0, 0] # Sound to play if weapon
DEFAULT_SOUND = [0, 0, 0] # Sound to play if all others are nil

# Play "close window" sound?
# Sound Groups do not currently work with this sound.
PLAY_C_SND = false
#######################################################
# 3 options below are valid ONLY if PLAY_C_SND = true #
#######################################################
# Sound to play upon popup close
C_SND = 'Audio/SE/Cancel'
C_SND_V = 80
C_SND_P = 100

#-----------------------------------------------------------------------------
# Popup Text Controls
#-----------------------------------------------------------------------------
# Show popup text?
SHOW_POPUP_TEXT = true
##############################################################
# ALL options below are valid ONLY if SHOW_POPUP_TEXT = true #
##############################################################
# Show icon with popup text?
SHOW_POPUP_TEXT_ICON = true
# Auto adjust window if over player
TEXT_WINDOW_MOVE = true
# Popup text window Y coordinate
TEXT_WINDOW_Y = 180
# Popup text window X coordinate offset
# 0 (Zero) : centered in the window
# negative integer : offset left (centered)
# positive integer : offset right (centered)
TEXT_WINDOW_X_OFFSET = 0
# Wait for button to close? (false = wait for time)
WAIT_FOR_BUTTON = false
# Buttons to wait for
# (if WAIT_FOR_BUTTON = true)
# (Set both to the same button to check for only one)
BUTTON_TO_WAIT_FOR1 = Input::C
BUTTON_TO_WAIT_FOR2 = Input::B
# Frames to wait
# (if WAIT_FOR_BUTTON = false)
WAIT_FOR_TIME = 40

#==============================================================================
# Popup_Data
# - Added by Dr.?
#==============================================================================

class Popup_Data

attr_accessor :gold_pop, :only_show_one, :show_above_event, :battle_pop, :play_p_snd, :play_c_snd,
:c_snd, :c_snd_v, :c_snd_p, :show_popup_text, :show_popup_text_icon, :text_window_move,
:text_window_y, :text_window_x_offset, :wait_for_button, :wait_for_time

def initialize
create_popup_data
end

def create_popup_data
@gold_pop = GOLD_POP
@only_show_one = ONLY_SHOW_ONE
@battle_pop = BATTLE_POP
@show_above_event = SHOW_ABOVE_EVENT
@play_p_snd = PLAY_P_SND
@play_c_snd = PLAY_C_SND
@c_snd = C_SND
@c_snd_v = C_SND_V
@c_snd_p = C_SND_P
@show_popup_text = SHOW_POPUP_TEXT
@show_popup_text_icon = SHOW_POPUP_TEXT_ICON
@text_window_move = TEXT_WINDOW_MOVE
@text_window_y = TEXT_WINDOW_Y
@text_window_x_offset = TEXT_WINDOW_X_OFFSET
@wait_for_button = WAIT_FOR_BUTTON
@wait_for_time = WAIT_FOR_TIME
end

end

$popup = Popup_Data.new

#==============================================================================
# Scene_File
# - Added by Dr.?
#==============================================================================


#==============================================================================
# Game_System
#==============================================================================

class Game_System
#--------------------------------------------------------------------------
# Public Instance Variables (Added)
#--------------------------------------------------------------------------
attr_accessor :battle_pop # holds items to popup after battle
attr_accessor :battle_pop_gold # holds gold to popup after battle
attr_accessor :pop_event # holds the event if SHOW_ABOVE_EVENT=true
#--------------------------------------------------------------------------
# Initialize (Mod)
#--------------------------------------------------------------------------
alias chest_pop_gs_initialize initialize unless $@
def initialize
chest_pop_gs_initialize
@battle_pop = nil
@battle_pop_gold = 0
@pop_event = nil # Add by Dr. ?
end
#--------------------------------------------------------------------------
# Get Battle Pop (New)
#--------------------------------------------------------------------------
def battle_pop
return @battle_pop
end
#--------------------------------------------------------------------------
# Set Battle Pop (New)
#--------------------------------------------------------------------------
def battle_pop=(items)
@battle_pop = items
end
#--------------------------------------------------------------------------
# Get Battle Pop Gold (New)
#--------------------------------------------------------------------------
def battle_pop_gold
return @battle_pop_gold
end
#--------------------------------------------------------------------------
# Set Battle Pop Gold (New)
#--------------------------------------------------------------------------
def battle_pop_gold=(gold)
@battle_pop_gold = gold
end

end

#==============================================================================
# Game_Interpreter
#==============================================================================

class Game_Interpreter
#--------------------------------------------------------------------------
# Change Gold (Mod)
#--------------------------------------------------------------------------
alias chest_pop_command_125 command_125 unless $@
def command_125
value = operate_value(@params[0], @params[1], @params[2])
# Pop-up
event = $game_map.events[@event_id]
$game_system.pop_event = event
if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[0] == 0 and $popup.gold_pop
if !$popup.show_above_event
$scene = Chest_Popup.new(0, value, 1)
elsif !@event_id.nil?
$scene = Chest_Popup.new(0, value, 1, false, event.screen_x, event.screen_y)
end
end
chest_pop_command_125
end
#--------------------------------------------------------------------------
# Change Items (Mod)
#--------------------------------------------------------------------------
alias chest_pop_command_126 command_126 unless $@
def command_126
value = operate_value(@params[1], @params[2], @params[3])
# Pop-up
event = $game_map.events[@event_id]
$game_system.pop_event = event
if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0
if !$popup.show_above_event
$scene = Chest_Popup.new(1, value, @params[0])
elsif !@event_id.nil?
$scene = Chest_Popup.new(1, value, @params[0], false, event.screen_x, event.screen_y)
end
end
chest_pop_command_126
end
#--------------------------------------------------------------------------
# Change Weapons (Mod)
#--------------------------------------------------------------------------
alias chest_pop_command_127 command_127 unless $@
def command_127
value = operate_value(@params[1], @params[2], @params[3])
# Pop-up
event = $game_map.events[@event_id]
$game_system.pop_event = event
if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0
if !$popup.show_above_event
$scene = Chest_Popup.new(2, value, @params[0])
elsif !@event_id.nil?
$scene = Chest_Popup.new(2, value, @params[0], false, event.screen_x, event.screen_y)
end
end
chest_pop_command_127
end
#--------------------------------------------------------------------------
# Change Armor (Mod)
#--------------------------------------------------------------------------
alias chest_pop_command_128 command_128 unless $@
def command_128
value = operate_value(@params[1], @params[2], @params[3])
# Pop-up
event = $game_map.events[@event_id]
$game_system.pop_event = event
if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0
if !$popup.show_above_event
$scene = Chest_Popup.new(3, value, @params[0])
elsif !@event_id.nil?
$scene = Chest_Popup.new(3, value, @params[0], false, event.screen_x, event.screen_y)
end
end
chest_pop_command_128
end
end

#==============================================================================
# Item Popup Window (New)
#==============================================================================

class Item_Popup_Window < Window_Base
#--------------------------------------------------------------------------
# Initialize
#--------------------------------------------------------------------------
def initialize(x, y)
super(0, 0, 544, 416)
self.opacity = 0
# Adjust X/Y to proper origin
@x, @y = x - 27, y - 60
end
#--------------------------------------------------------------------------
# Pop-Up
#--------------------------------------------------------------------------
def pop_up(icon_index, x_offset, y_offset)
self.contents.clear
# Draw pop-up icon
draw_icon(icon_index, @x + x_offset, @y + y_offset, true)
end
end

#==============================================================================
# Name window (New)
#==============================================================================

class Name_Window < Window_Base
#--------------------------------------------------------------------------
# Initialize
#--------------------------------------------------------------------------
def initialize(x, y, desc, no_desc, index, gold = false, icon = 0)
super(x, y, 56, WLH + 32)
# Adjust window to content's size and center
icon_x = self.contents.text_size(index).width + 6
width = self.contents.text_size(desc).width
self.width = width + 32
self.x = ((544 - self.width) / 2) + $popup.text_window_x_offset
create_contents
# Draw pop-up text
ix = no_desc ? 0 : icon_x
item_check = $game_system.battle_pop
gold_check = $game_system.battle_pop_gold
if $popup.battle_pop and (item_check != nil or gold_check > 0) # If battle reward
ix += self.contents.text_size(BATTLE_REWARD).width + 2
end
tx = gold ? 4 : 0
draw_icon(icon, ix, 0) if $popup.show_popup_text_icon and !gold
self.contents.draw_text(tx, 0, width, WLH, desc, 0)
draw_icon(GOLD_ICON, width - 24, 0, true) if gold
end
end

#==============================================================================
# Scene_Base
#==============================================================================

class Scene_Base
#--------------------------------------------------------------------------
# Initialize (New)
#--------------------------------------------------------------------------
def initialize
@disable_blur = false
end
#--------------------------------------------------------------------------
# Disable blur (New)
#--------------------------------------------------------------------------
def disable_blur=(enabled)
@disable_blur = enabled
end
#--------------------------------------------------------------------------
# Create Snapshot for Using as Background of Another Screen (Rewrite)
#--------------------------------------------------------------------------
def snapshot_for_background
$game_temp.background_bitmap.dispose
$game_temp.background_bitmap = Graphics.snap_to_bitmap
# Don't blur if disabled
$game_temp.background_bitmap.blur unless @disable_blur # changed
end
end

#==============================================================================
# Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# Start (Mod)
#--------------------------------------------------------------------------
alias chest_pop_start start unless $@
def start
chest_pop_start
# Popup battle rewards
if $popup.battle_pop
if $game_system.battle_pop_gold > 0 # gold
gold = $game_system.battle_pop_gold
$game_system.battle_pop_gold = 0
$scene = Chest_Popup.new(0, gold, 0, true)
elsif $game_system.battle_pop != nil # items
item = $game_system.battle_pop.shift
if item == nil
$game_system.battle_pop = nil
else
type = 1 if item.is_a?(RPG::Item)
type = 2 if item.is_a?(RPG::Weapon)
type = 3 if item.is_a?(RPG::Armor)
$scene = Chest_Popup.new(type, 1, item.id, true)
end
end
end
end
end

#==============================================================================
# Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# Display Gained Experience and Gold (Rewrite)
#--------------------------------------------------------------------------
def display_exp_and_gold
# Save gold to popup after battle
$game_system.battle_pop_gold = $game_troop.gold_total if $popup.battle_pop # added
exp = $game_troop.exp_total
gold = $popup.battle_pop && $popup.gold_pop ? 0 : $game_troop.gold_total # changed
$game_party.gain_gold(gold) unless $popup.battle_pop # changed
text = sprintf(Vocab::Victory, $game_party.name)
$game_message.texts.push('\|' + text)
if exp > 0
text = sprintf(Vocab::ObtainExp, exp)
$game_message.texts.push('\.' + text)
end
if gold > 0
text = sprintf(Vocab::ObtainGold, gold, Vocab::gold)
$game_message.texts.push('\.' + text)
end
wait_for_message
end
#--------------------------------------------------------------------------
# Display Gained Drop Items (Mod)
#--------------------------------------------------------------------------
alias chest_pop_display_drop_items display_drop_items unless $@
def display_drop_items
# Save items to popup after battle
$game_system.battle_pop = $game_troop.make_drop_items if $popup.battle_pop
return if $popup.battle_pop
chest_pop_display_drop_items
end
end

#==============================================================================
# Chest_Popup (New)
#==============================================================================

class Chest_Popup < Scene_Base
#--------------------------------------------------------------------------
# Initialize
#--------------------------------------------------------------------------
def initialize(type, amount, index, add = false, x = nil, y = nil, sound_group = nil)
x = $game_player.screen_x if x == nil
y = $game_player.screen_y if y == nil
$game_switches[POPUP_SWITCH] = !AUTO_POPUP
$scene.disable_blur = true
@x, @y, @amount = x, y, amount
@gold = @no_desc = false
case type
when 0 # Gold
$game_party.gain_gold(amount) if add
@icon = GOLD_ICON
@desc_amount = ''
@desc = @amount.to_s
@amount = 1
@gold = true
@sound = GOLD_SOUND
when 1 # Items
$game_party.gain_item($data_items[index], amount) if add
@icon = $data_items[index].icon_index
@desc_amount = @amount.to_s + ' x'
@desc_amount = '' if @amount == 1
@no_desc = true if @amount == 1
@desc = $data_items[index].name
@amount = 1 if $popup.only_show_one
@sound = ITEM_SOUND
when 2 # Weapons
$game_party.gain_item($data_weapons[index], amount) if add
@icon = $data_weapons[index].icon_index
@desc_amount = @amount.to_s + ' x'
@desc_amount = '' if @amount == 1
@no_desc = true if @amount == 1
@desc = $data_weapons[index].name
@amount = 1 if $popup.only_show_one
@sound = WEAPON_SOUND
when 3 # Armors
$game_party.gain_item($data_armors[index], amount) if add
@icon = $data_armors[index].icon_index
@desc_amount = @amount.to_s + ' x'
@desc_amount = '' if @amount == 1
@no_desc = true if @amount == 1
@desc = $data_armors[index].name
@amount = 1 if $popup.only_show_one
@sound = ARMOR_SOUND
end
# Check sound_group
@sound = sound_group if !sound_group.nil?
# Set index
@index = @desc_amount
# Add description to text
if @gold
@desc = @desc + ' '
else
if $popup.show_popup_text_icon
@desc = @desc_amount + ' ' + @desc
else
@desc = @desc_amount + ' ' + @desc if @desc_amount != ''
end
end
# If battle reward
item_check = $game_system.battle_pop
gold_check = $game_system.battle_pop_gold
if $popup.battle_pop and (item_check != nil or gold_check > 0)
@desc = BATTLE_REWARD + @desc
end
end
#--------------------------------------------------------------------------
# New2
# - Added by Dr.?
# - This is mostly used for controling sound groups
#--------------------------------------------------------------------------
def self.new2(type, amount, index, sound_group = nil, add = true)
return Chest_Popup.new(type, amount, index, add, nil, nil, sound_group)
end
#--------------------------------------------------------------------------
# New3
# - Added by Dr.?
# - This is mostly used for making the icon pop-up over an event
#--------------------------------------------------------------------------
def self.new3(type, amount, index, event, add = false, sound_group = nil)
event = $game_map.events[event] if event.is_a?(Integer)
return Chest_Popup.new(type, amount, index, add, event.screen_x, event.screen_y, sound_group)
end
#--------------------------------------------------------------------------
# Start
#--------------------------------------------------------------------------
def start
create_background
# Create pop-up window
@popup_window = Item_Popup_Window.new(@x, @y)
end
#--------------------------------------------------------------------------
# Terminate
#--------------------------------------------------------------------------
def terminate
# Dispose windows
@popup_window.dispose
@menuback_sprite.dispose
@name_window.dispose if $popup.show_popup_text
end
#--------------------------------------------------------------------------
# Return Scene
#--------------------------------------------------------------------------
def return_scene
# Turn off blur and pop-up switch
$scene.disable_blur = false
$game_switches[POPUP_SWITCH] = false
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------
def update
super
# Update pop-up window
@popup_window.update
@menuback_sprite.update
# Do the actual popping-up
do_popup
end
#--------------------------------------------------------------------------
# Update Basic
#--------------------------------------------------------------------------
def update_basic
Graphics.update
Input.update
end
#--------------------------------------------------------------------------
# Wait
#--------------------------------------------------------------------------
def wait(duration)
# Wait for DURATION frames
for i in 0..duration
update_basic
end
end
#--------------------------------------------------------------------------
# Wait for close
#--------------------------------------------------------------------------
def wait_for_close
count = 0
loop do
update_basic
count += 1
# Close if button 1 pressed
break if Input.trigger?(BUTTON_TO_WAIT_FOR1) and $popup.wait_for_button
# Close if button 2 pressed
break if Input.trigger?(BUTTON_TO_WAIT_FOR2) and $popup.wait_for_button
# Close if time elapsed
break if count >= $popup.wait_for_time and !$popup.wait_for_button
end
end
#--------------------------------------------------------------------------
# Create Background
#--------------------------------------------------------------------------
def create_background
# Create modified background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.update
end
#--------------------------------------------------------------------------
# Show Name
#--------------------------------------------------------------------------
def show_name
x = 272
y = $popup.text_window_y
py = $game_player.screen_y - 32
cy = (py - y).abs
# Offset Y if text box is above player's position
if cy < 128 and $popup.text_window_move
y = py < y ? y + (y / 2) : y - (y / 2)
end
# Create Window
@name_window = Name_Window.new(x, y, @desc, @no_desc, @index, @gold, @icon)
# Wait for button(s) or time
wait_for_close
# Play sound
Audio.se_play($popup.c_snd, $popup.c_snd_v, $popup.c_snd_p) if $popup.wait_for_button and $popup.play_c_snd
end
#--------------------------------------------------------------------------
# Do Pop-Up
#--------------------------------------------------------------------------
def do_popup
# Set sound index - Dr.?
@sound = DEFAULT_SOUND if @sound.nil?
# Pop-up icon(s)
for i in 1..@amount
# Support for ME added - Dr.?
if P_SND[@sound[0]].include?("/SE/")
Audio.se_play(P_SND[@sound[0]], P_SND_V[@sound[1]], P_SND_P[@sound[2]]) if $popup.play_p_snd
elsif P_SND[@sound[0]].include?("/ME/")
Audio.me_play(P_SND[@sound[0]], P_SND_V[@sound[1]], P_SND_P[@sound[2]]) if $popup.play_p_snd
end
for i in 0..4
@popup_window.pop_up(@icon, 0, i * -4)
@popup_window.update
wait(2)
end
wait(5) if i != @amount and !$popup.only_show_one
end
wait(5)
# Pop-up text
show_name if $popup.show_popup_text
# Exit
return_scene
end

end