RPG Maker Forums

This script drops items on screen when an enemy dies, or treasure events or other such things. I use it in an ABS for enemies that drop items, but the items stay on screen forever, and as far as I can tell, they don't erase at any point. I am not a scripter, but I looked through the code and it seems to say something about erasing the event or disappearing it with a timer. Something like that. 

#===============================================================================
# * Falcao Pearl ABS script shelf # 8
#
# Item and gold pop up v 1.0
# This is just an add on for the Pearl ABS system, it run as standalone mode too
#
# Website: http://falcaorgss.wordpress.com/
# Foro: www.makerpalace.com
#===============================================================================
#
# * Installation
# This work as plug and play, copy and paste the script above main
#
# * Usage
# There is no special references, when you earn an item or gold, then pop appear
# Edit the module below for convenience
#-------------------------------------------------------------------------------


module PearlItemPop
 
  # Position X of the pop up object
  Pos_X = 10
 
  # Position Y of the pop up object
  Pos_Y = 320
 
  # Icon displayed when earning gold
  GoldIcon = 245
 
  # Se sound played when gaining items (set nil if you dont want to play sound)
  ItemSe = "Item3"
 
  # Se sound played when gaining gold (set nil if you dont want to play sound)
  GoldSe = "Shop"
 
end


class Game_Party < Game_Unit
  alias falcaopearl_itempop_gain gain_item
  def gain_item(item, amount, include_equip = false)
    if !item_container(item.class).nil? && SceneManager.scene_is?(Scene_Map)
      if amount > 0
        $game_system.item_object = [item, amount]
        RPG::SE.new(PearlItemPop::ItemSe, 80).play rescue nil
      end
    end
    falcaopearl_itempop_gain(item, amount, include_equip = false)
  end
 
  alias falcaopearl_itempop_gold gain_gold
  def gain_gold(amount)
    if SceneManager.scene_is?(Scene_Map)
      $game_system.item_object = [nil, amount]
      RPG::SE.new(PearlItemPop::GoldSe, 80).play rescue nil
    end
    falcaopearl_itempop_gold(amount)
  end
end


class Game_System
  attr_accessor :item_object
end


class Spriteset_Map
 
  alias falcaopearl_itempop_create create_pictures
  def create_pictures
    create_itempop_sprites
    falcaopearl_itempop_create
  end
 
  def create_itempop_sprites
    @item_object = $game_system.item_object
    @item_sprite = Sprite_PopItem.new(@viewport2, @item_object) if
    not @item_object.nil?
  end
 
  alias falcaopearl_itempop_update update
  def update
    if !@item_sprite.nil?
      unless @item_sprite.disposed?
        @item_sprite.update
      else
        @item_sprite.dispose
        @item_object = nil
        $game_system.item_object = nil
        @item_sprite = nil
      end
    end
    if @item_object != $game_system.item_object
      @item_sprite.dispose if !@item_sprite.nil?
      @item_sprite = nil
      @item_sprite = Sprite_PopItem.new(@viewport2, $game_system.item_object)
      @item_object = $game_system.item_object
    end
    falcaopearl_itempop_update
  end
 
  alias falcaopearl_itempop_dispose dispose
  def dispose
    @item_sprite.dispose unless @item_sprite.nil?
    falcaopearl_itempop_dispose
  end
end


 
class Sprite_PopItem < Sprite
  def initialize(viewport, item)
    super(viewport)
    @item = item[0]
    @num = item[1]
    set_bitmap
    self.x = PearlItemPop::pos_X
    self.y = PearlItemPop::pos_Y
    @erasetimer = 120
    update
  end
 
  def update
    super
    if @erasetimer > 0
      @erasetimer -= 1
      self.opacity -= 10 if @erasetimer <= 25
      dispose if @erasetimer == 0
    end
  end
 
  def dispose
    self.bitmap.dispose
    super
  end
 
  def set_bitmap
    @item.nil? ? operand = Vocab::currency_unit : operand = @item.name
    string = operand + ' X' + @num.to_s
    self.bitmap = Bitmap.new(26 + string.length * 9, 28)
    self.bitmap.fill_rect(0, 0, self.bitmap.width, 28, Color.new(0, 0, 0, 100))
    self.bitmap.font.size = 20
    bitmap = Cache.system("Iconset")
    icon = @item.nil? ? PearlItemPop::GoldIcon : @item.icon_index
    rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
    self.bitmap.blt(4, 0, bitmap, rect)
    self.bitmap.draw_text(28, 0, 250, 32, string)
  end
end



#===============================================================================
# * Falcao Pearl ABS script shelf # 8
#
# Item and gold pop up v 1.0
# This is just an add on for the Pearl ABS system, it run as standalone mode too
#
# Website: http://falcaorgss.wordpress.com/
# Foro: www.makerpalace.com
#===============================================================================
#
# * Installation
# This work as plug and play, copy and paste the script above main
#
# * Usage
# There is no special references, when you earn an item or gold, then pop appear
# Edit the module below for convenience
#-------------------------------------------------------------------------------

module PearlItemPop

# Position X of the pop up object
Pos_X = 10

# Position Y of the pop up object
Pos_Y = 320

# Icon displayed when earning gold
GoldIcon = 245

# Se sound played when gaining items (set nil if you dont want to play sound)
ItemSe = "Item3"

# Se sound played when gaining gold (set nil if you dont want to play sound)
GoldSe = "Shop"

end

class Game_Party < Game_Unit
alias falcaopearl_itempop_gain gain_item
def gain_item(item, amount, include_equip = false)
if !item_container(item.class).nil? && SceneManager.scene_is?(Scene_Map)
if amount > 0
$game_system.item_object = [item, amount]
RPG::SE.new(PearlItemPop::ItemSe, 80).play rescue nil
end
end
falcaopearl_itempop_gain(item, amount, include_equip = false)
end

alias falcaopearl_itempop_gold gain_gold
def gain_gold(amount)
if SceneManager.scene_is?(Scene_Map)
$game_system.item_object = [nil, amount]
RPG::SE.new(PearlItemPop::GoldSe, 80).play rescue nil
end
falcaopearl_itempop_gold(amount)
end
end

class Game_System
attr_accessor :item_object
end

class Spriteset_Map

alias falcaopearl_itempop_create create_pictures
def create_pictures
create_itempop_sprites
falcaopearl_itempop_create
end

def create_itempop_sprites
@item_object = $game_system.item_object
@item_sprite = Sprite_PopItem.new(@viewport2, @item_object) if
not @item_object.nil?
end

alias falcaopearl_itempop_update update
def update
if !@item_sprite.nil?
unless @item_sprite.disposed?
@item_sprite.update
else
@item_sprite.dispose
@item_object = nil
$game_system.item_object = nil
@item_sprite = nil
end
end
if @item_object != $game_system.item_object
@item_sprite.dispose if !@item_sprite.nil?
@item_sprite = nil
@item_sprite = Sprite_PopItem.new(@viewport2, $game_system.item_object)
@item_object = $game_system.item_object
end
falcaopearl_itempop_update
end

alias falcaopearl_itempop_dispose dispose
def dispose
@item_sprite.dispose unless @item_sprite.nil?
falcaopearl_itempop_dispose
end
end


class Sprite_PopItem < Sprite
def initialize(viewport, item)
super(viewport)
@item = item[0]
@num = item[1]
set_bitmap
self.x = PearlItemPop::pos_X
self.y = PearlItemPop::pos_Y
@erasetimer = 120
update
end

def update
super
if @erasetimer > 0
@erasetimer -= 1
self.opacity -= 10 if @erasetimer <= 25
dispose if @erasetimer == 0
end
end

def dispose
self.bitmap.dispose
super
end

def set_bitmap
@item.nil? ? operand = Vocab::currency_unit : operand = @item.name
string = operand + ' X' + @num.to_s
self.bitmap = Bitmap.new(26 + string.length * 9, 28)
self.bitmap.fill_rect(0, 0, self.bitmap.width, 28, Color.new(0, 0, 0, 100))
self.bitmap.font.size = 20
bitmap = Cache.system("Iconset")
icon = @item.nil? ? PearlItemPop::GoldIcon : @item.icon_index
rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
self.bitmap.blt(4, 0, bitmap, rect)
self.bitmap.draw_text(28, 0, 250, 32, string)
end
end

Any help is greatly appreciated! Thank you!

Latest Threads

Latest Profile Posts

Don't forget, aspiring writers: Personality isn't what your characters do, it is WHY they do it.
Hello! I would like to know if there are any pluggings or any way to customize how battles look?
I was thinking that when you start the battle for it to appear the eyes of your characters and opponents sorta like Ace Attorney.
Sadly I don't know how that would be possible so I would be needing help! If you can help me in any way I would really apreciate it!
The biggest debate we need to complete on which is better, Waffles or Pancakes?
rux
How is it going? :D
Day 9 of giveaways! 8 prizes today :D

Forum statistics

Threads
106,049
Messages
1,018,546
Members
137,835
Latest member
yetisteven
Top