Help - Search - Members - Calendar
Full Version: Tibuda's Item Popup Script Call
RPG RPG Revolution Forums > Scripting > Script Development and Support > RGSS
Fixxxer4153
Hello, im attempting to integrate Tibuda's Item Popup Script into my project, to save myself a lot of work doing basically the same thing with events and images. The only problem Im having is the syntax for the script call.

Here's the script:
Tibuda's Item Popup

#==============================================================================
# ** Item Popup
#------------------------------------------------------------------------------
# Tibuda
# Version 1.12
# 02.23.07
#------------------------------------------------------------------------------
# * Version History :
# 01.11.07 - Version 1.00
# 01.13.07 - Version 1.01
# - Bug fix: Bug while tryin' to unequip an item in the equipment scene
# - Added: Item number font customization
# 01.19.07 - Version 1.10
# - Added: Fading icons when losing items (optional)
# - Added: Background image (optional)
# - Added: Custom colors for each item
# - Added: You can show a icon in events
# - Added: Custom colors when calling the popup_icon
# 01.23.07 - Version 1.11
# - Bug fix: Bug while changin'g class or changin' equip in the map
# 02.23.07 - Version 1.12 (one month)
# - Bug fix: Showing icon with 0 items/gold
#------------------------------------------------------------------------------
# * Instructions
# - To show an icon call the following script:
# $game_player.popup_icon(icon_name[, number, color])
# for the player
# self.event.popup_icon(icon_name[, number, color])
# for the current event
# $game_map.events[id].popup_icon(icon_name[, number, color])
# for the the event id
# - Customizing the duration
# ICON_TIME holds the time a icon is shown
# ICON_DELAY is time a icon will wait to appear when there's a icon showing
# - Customizing the item number colors
# The NUMBER_COLOR constant is the default color for all the item types
# The GOLD_NUMBER_COLOR holds the color for the gold
# The ITEM_NUMBER_COLOR hahs hold the color for specific items.
# You can add a custom color for a item this way:
# ITEM_NUMBER_COLOR = {item_id => item_color, item_id => item_color....}
# If you want a default color for all items you can use the item_id 0
# Use WEAPON_NUMBER_COLOR for weapons and ARMOR_NUMBER_COLOR for armors
#==============================================================================

#--------------------------------------------------------------------------
# module Popup_Item
#--------------------------------------------------------------------------
module Popup_Item
# Fading icons
FADE_LOSE = false
# The time we show the icon
ICON_TIME = 40
# The time before show a new item
ICON_DELAY = 24
# Icon to show when the player gets money
GOLD_ICON = "032-Item01"
# A 32x32 background image
BACKGROUND = ""
# Font for the item number
NUMBER_FONT = "Tahoma"
NUMBER_SIZE = 12
NUMBER_COLOR = Color.new(255, 255, 255)
# Custom font color for specific items
GOLD_NUMBER_COLOR = Color.new(255, 255, 0)
ITEM_NUMBER_COLOR = {}
ARMOR_NUMBER_COLOR = {}
WEAPON_NUMBER_COLOR = {}
# True if using Trickster's Method & Class Library
TRICK_MACL = false
end

#--------------------------------------------------------------------------
# Game_Character
#--------------------------------------------------------------------------
class Game_Character
attr_accessor :popup_icons
alias popup_gm_party_init initialize
def initialize
popup_gm_party_init
@popup_icons = []
end
def popup_icon(icon_name, number = 1, color = Popup_Item::NUMBER_COLOR)
@popup_icons.push([icon_name, number, color])
end
def fade_icon(icon_name, number = 1, color = Popup_Item::NUMBER_COLOR)
popup_icon(icon_name, -number, color) if Popup_Item::FADE_LOSE
end
end
#--------------------------------------------------------------------------
# Game_Party
#--------------------------------------------------------------------------
class Game_Party
attr_accessor :ignore_icon
alias popup_gm_party_init initialize
def initialize
popup_gm_party_init
@ignore_icon = false
end
def popup_icon(icon_name, number = 1, color = Popup_Item::NUMBER_COLOR)
$game_player.popup_icon(icon_name, number, color)
end
def fade_icon(icon_name, number = 1, color = Popup_Item::NUMBER_COLOR)
$game_player.fade_icon(icon_name, number, color)
end
alias popup_gm_party_gain_gold gain_gold
def gain_gold(n)
popup_gm_party_gain_gold(n)
return if @ignore_icon || n < 1
if Popup_Item::GOLD_ICON != "" and $scene.is_a?(Scene_Map)
if Popup_Item::GOLD_NUMBER_COLOR.is_a?(Color)
color = Popup_Item::GOLD_NUMBER_COLOR
else
color = Popup_Item::NUMBER_COLOR
end
popup_icon(Popup_Item::GOLD_ICON, n, color)
end
end
alias popup_gm_party_gain_item gain_item
def gain_item(id, n)
popup_gm_party_gain_item(id, n)
return if id < 1 or id >= $data_items.size or @ignore_icon || n < 1
if $scene.is_a?(Scene_Map)
if Popup_Item::ITEM_NUMBER_COLOR[id].is_a?(Color)
color = Popup_Item::ITEM_NUMBER_COLOR[id]
elsif Popup_Item::ITEM_NUMBER_COLOR[0].is_a?(Color)
color = Popup_Item::ITEM_NUMBER_COLOR[0]
else
color = Popup_Item::NUMBER_COLOR
end
popup_icon($data_items[id].icon_name, n, color)
end
end
alias popup_gm_party_gain_weapon gain_weapon
def gain_weapon(id, n)
popup_gm_party_gain_weapon(id, n)
return if id < 1 or id >= $data_weapons.size or @ignore_icon || n < 1
if $scene.is_a?(Scene_Map)
if Popup_Item::WEAPON_NUMBER_COLOR[id].is_a?(Color)
color = Popup_Item::WEAPON_NUMBER_COLOR[id]
elsif Popup_Item::WEAPON_NUMBER_COLOR[0].is_a?(Color)
color = Popup_Item::WEAPON_NUMBER_COLOR[0]
else
color = Popup_Item::NUMBER_COLOR
end
popup_icon($data_weapons[id].icon_name, n, color)
end
end
alias popup_gm_party_gain_armor gain_armor
def gain_armor(id, n)
popup_gm_party_gain_armor(id, n)
return if id < 1 or id >= $data_armors.size or @ignore_icon || n < 1
if $scene.is_a?(Scene_Map)
if Popup_Item::ARMOR_NUMBER_COLOR[id].is_a?(Color)
color = Popup_Item::ARMOR_NUMBER_COLOR[id]
elsif Popup_Item::ARMOR_NUMBER_COLOR[0].is_a?(Color)
color = Popup_Item::ARMOR_NUMBER_COLOR[0]
else
color = Popup_Item::NUMBER_COLOR
end
popup_icon($data_armors[id].icon_name, n, color)
end
end
end
#--------------------------------------------------------------------------
# Game_Actor
#--------------------------------------------------------------------------
class Game_Actor
alias popup_gm_actor_equip equip
def equip(equip_type, id)
$game_party.ignore_icon = true
popup_gm_actor_equip(equip_type, id)
$game_party.ignore_icon = false
end
end
#--------------------------------------------------------------------------
# module RPG
#--------------------------------------------------------------------------
module RPG
#--------------------------------------------------------------------------
# RPG::Sprite
#--------------------------------------------------------------------------
class Sprite
def popup_icon(name, number = 1, color = Popup_Item::NUMBER_COLOR)
return if name == "" or name == nil
return if number.is_a?(Numeric) and number < 0 and !Popup_Item::FADE_LOSE
@icons = [] if !@icons.is_a?(Array)
icon = {}
icon["time"] = 0 - @icons.size * Popup_Item::ICON_DELAY
if number.is_a?(Numeric) and number < 0
icon["fade"] = true
number = - number
else
icon["fade"] = false
end
icon["sprite"] = RPG::Sprite.new(self.viewport)
if Popup_Item::BACKGROUND != ""
bitmap = RPG::Cache.picture(Popup_Item::BACKGROUND)
icon["sprite"].bitmap = Bitmap.new(bitmap.width, bitmap.height)
icon["sprite"].bitmap.blt(0, 0, bitmap, Rect.new(0,0,bitmap.width,bitmap.width))
else
icon["sprite"].bitmap = Bitmap.new(32,32)

end
bitmap = RPG::Cache.icon(name)
icon["sprite"].bitmap.blt(4, 4, bitmap, Rect.new(0,0,24,24))
if Popup_Item::NUMBER_SIZE > 0 and number != 1 and number != ""
icon["sprite"].bitmap.font.outline = true if Popup_Item::TRICK_MACL
icon["sprite"].bitmap.font.name = Popup_Item::NUMBER_FONT
icon["sprite"].bitmap.font.size = Popup_Item::NUMBER_SIZE
icon["sprite"].bitmap.font.color = color
icon["sprite"].bitmap.draw_text(5, 28 - Popup_Item::NUMBER_SIZE - 1, 27, Popup_Item::NUMBER_SIZE, number.to_s)
end
icon["sprite"].ox = 0
icon["sprite"].oy = 20
icon["sprite"].x = self.x
icon["sprite"].y = self.y - self.oy / 2 + 1 - icon["time"]
icon["sprite"].z = 3000
icon["sprite"].visible = false
@icons.push(icon)
end
def update_icons
return unless @icons.is_a?(Array)
return if Graphics.frame_count % 2 != 0
i = 0
while i < @icons.size
if @icons[i]["time"] > Popup_Item::ICON_TIME
@icons[i]["sprite"].bitmap.dispose
@icons[i]["sprite"].dispose
@icons.delete_at(i)
else
@icons[i]["time"] += 1
if @icons[i]["fade"]
op = [255 * (1 - @icons[i]["time"] / Popup_Item::ICON_TIME),0].max
@icons[i]["sprite"].opacity = op
@icons[i]["sprite"].update
else
@icons[i]["sprite"].y -= 1
end
@icons[i]["sprite"].visible = @icons[i]["time"] >= 0
i += 1
end
end
end
alias popup_sprite_update update
def update
popup_sprite_update
update_icons
end
end
end
#--------------------------------------------------------------------------
# Sprite_Character
#--------------------------------------------------------------------------
class Sprite_Character
alias popup_spr_char_update update
def update
popup_spr_char_update
if @character.is_a?(Game_Character)
while @character.popup_icons.size > 0
popup_icon(@character.popup_icons[0][0], @character.popup_icons[0][1],
@character.popup_icons[0][2])
@character.popup_icons.delete_at(0)
end
end
update_icons
end
end


And here's the script call it tells me to use:

$game_player.popup_icon(icon_name[, number, color])

Which ive tried to make work and still cannot. The possibility of it being an incompatibility issue seems unlikely as all im getting is a general syntax error. But ive tried it like this:

$game_player.popup_icon(Minor Life[, 5, GOLD_NUMBER_COLOR]) and...
$game_player.popup_icon(Minor Life[, 5, 0]) and...
$game_player.popup_icon('Minor Life'[, 5, GOLD_NUMBER_COLOR]) and...
$game_player.popup_icon('Minor Life'[, 5, 0]) and even...
$game_player.popup_icon(Minor_Life[, 5, GOLD_NUMBER_COLOR]) and...
$game_player.popup_icon(Minor_Life[, 5, 0]) and none of them work...

Can someone please tell me what i m doing wrong, or could it be the fact that the script call will not fit on a single line inside the script call box? I would be very grateful if someone could shed light on this issue for me. Please and thank you!
Jens of Zanicuud
The square brackets you used shouldn't be put in the script call. They only mean that parameter is not required to call the script.

Example:

$game_player.popup_icon(icon_name[, number, color])

means you can call it like this:

1.

CODE
$game_player.popup_icon(icon_name)


that is, you are passing only the incon name to the function. Number and color are set by default by ths script;

2.

CODE
$game_player.popup_icon(icon_name, number)


again, no color parameter, but this time you specify the number;

3.

CODE
$game_player.popup_icon(icon_name, number, color)


that is, you give the function each of the parameter you want to set.

I hope this can help,

Jens
Fixxxer4153
Thank you so much!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.