PortalPortal  InícioInício  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  Conectar-se  

Compartilhe|

Item PopUp

Ver o tópico anterior Ver o tópico seguinte Ir em baixo
AutorMensagem
Douglanilo
avatar
Mestre
Mestre

Masculino Postagens : 959
Data de inscrição : 02/04/2009


Ver perfil do usuário http://www.twevergrand.com
MensagemAssunto: Item PopUp Dom Maio 17, 2009 10:35 pm

Item PopUp
Tibuda

Descrição
-script usado para mostrar ao mogador quando se ganha um ou mais iténs ou
quantias de dinheiro. Mostra sempre os iténs e dinheiro que forem sendo
adicionados. Os itens são representados por seus respectivos ícones e o Dinheiro por um ícone que você pode escolher.

Instruções:
-Posicione este script sobre o Main.
-Para Chamar o Icon quando quizer simplesmente faça um Call da seguinte maneira;
para o Jogador:
Código:
$game_player.popup_icon(icon_name[, number, color])

Para o Evento em que está o Comando:
Código:
self.event.popup_icon(icon_name[, number, color])

Para um outro Evento:

Código:
$game_map.events[id].popup_icon(icon_name[, number, color])

-ICON_TIME é o Tempo que um Ícone fica exposto.
-ICON_DELAY é o Tempo que um Ícone esperará para aparecer quando
um Ícone já está sendo Mostrado.
-NUMBER_COLOR é a cor do número nos Ícones.
-GOLD_COLOR é a cor do número para Dinheiro.
-ITEM_COLOR são cores para Itens especiais. Todos os Outros Itens terão a Cor de Número na NUMBER_COLOR.
Para adicionar uma cor especial para um Item faça o Seguinte:
Código:
ITEM_NUMBER_COLOR = {item_id => item_color, item_id => item_color....}
Continue repetindo estes comandos para listar as cores Especiais.

Use WEAPON_NUMBER_COLOR para Armas e ARMOR_NUMBER_COLOR para
Armaduras.


Também, deve-se adicionar uma imagem, com o nome: Coin3 na pasta: Graphics/Icons

ScreenShots:



script
Código:
=begin
┌──────────────────────────────────────┐
│●        Item PopUp  1.10            │
│                                      │
│            Criado por                │
│                                      │
│              Tibuda                  │
│                                      │
│        Traduzido por [ kbrito ]      │
└──────────────────────────────────────┘

[b]Descrição e Uso:[/b]
-script usado para Mostrar ao Jogador quando ganhou um Item
 ou Dinheiro.
 Mostra sempre os Itens e dinheiro que forem sendo adicionados.
 Os Itens são representados por seus Respectivos Ícones e
 o Dinheiro por um Ícone que vc pode escolher aqui.
 [b]
Instruções:[/b]
-Posicione este script sobre o Main.

-Para Chamar o Icon quando quizer simplesmente faça um
 Call da seguinte maneira:
 para o Jogador:
 $game_player.popup_icon(icon_name[, number, color])
 
 Para o Evento em que está o Comando:
 self.event.popup_icon(icon_name[, number, color])
 
 Para um outro Evento:
 $game_map.events[id].popup_icon(icon_name[, number, color])
 
-ICON_TIME é o Tempo que um Ícone fica exposto.

-ICON_DELAY é o Tempo que um Ícone esperará para aparecer quando
 um Ícone já está sendo Mostrado.
 
-NUMBER_COLOR é a cor do número nos Ícones.

-GOLD_COLOR é a cor do número para Dinheiro.

-ITEM_COLOR são cores para Itens especiais. Todos os Outros Itens
 terão a Cor de Número na NUMBER_COLOR.
 Para adicionar uma cor especial para um Item faça o Seguinte:
 
 ITEM_NUMBER_COLOR = {item_id => item_color, item_id => item_color....}
 
 Continue repetindo estes comandos para listar as cores Especiais.
 
 Use WEAPON_NUMBER_COLOR para Armas e ARMOR_NUMBER_COLOR para
 Armaduras.

=end

#--------------------------------------------------------------------------
# module Popup_Item
#--------------------------------------------------------------------------
module Popup_Item
  # Deixe true para ligar o efeito de Fade nos ícones.
  FADE_LOSE    = false
 
  ICON_TIME    = 40
 
  ICON_DELAY  = 24
 
  # Altere aqui o ícone de Dinheiro.
  GOLD_ICON    = "Coin3"
 
  # Insira o Nome de uma imagem de 32x32 para Background do ícone.
  BACKGROUND  = ""
 
  # Edite a Fonte aqui.
  NUMBER_FONT  = "Tahoma"
 
  NUMBER_SIZE  = 12
 
  NUMBER_COLOR = Color.new(255, 255, 255)
 
  # Cores de Número customizadas.
  # Deixe como está se vc não pretende usar este recurso.
  GOLD_NUMBER_COLOR  = Color.new(255, 255, 0)
  ITEM_NUMBER_COLOR  = {}
  ARMOR_NUMBER_COLOR  = {}
  WEAPON_NUMBER_COLOR = {}
 
  # Deixe true se vc utilizar o "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)
    @fade_icons.push([icon_name, number, color])
  end
end
#--------------------------------------------------------------------------
# Game_Party
#--------------------------------------------------------------------------
class Game_Party
  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)
    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
    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
    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
    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
#--------------------------------------------------------------------------
# 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
          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[/i]

Créditos e Agradecimentos
Tibuda - Criador do script
Kabrito - Traduzir os comentários e instruções.
Douglanilo - Postagem na Ever Grand

_________________________________________
Voltar ao Topo Ir em baixo

Item PopUp

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
The World of EverGrand :: Programação em Linguagens :: Ruby Game Scripting System :: Scripts :: RPG Maker XP-