Templo RPG Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

1RGSS3_Popup Icon Ver.1.2 Empty RGSS3_Popup Icon Ver.1.2 17/8/2012, 17:25

Hatsurugi

Hatsurugi
Diva
Diva
Introdução


Este Script faz com que ícones sejam exibidos ao receber itens, sobre eventos e sobre o jogador.

Caracteristicas


- Mostra ícone do item ao recebe-lo.

- Exibe ícones sobre eventos selecionados por chamar Script

- Exibe ícones sobre o player


Screenshot


Spoiler:


Como Usar


Para mostar o icone use o seguinte comando no "Chamar Script"
pop_icon(event_id, icon_id, duration)

event_id é o Id do evento que ira sofrer a ação
icon_id é o index do icon a ser usado。
se o "event_id" for "0" será tratado como o evento que o invocou
-1 é o player
duration é a duração do evento ( em frames)

EX:)pop_icon(-1, 17, 300)
Isso ira exibir um icone no player por 5 segundos.

Um pop_icon Não será exibido seguido do outro
Use delete_icon com espera de alguns frames
para evibir pop_icon Seguidos。

EX)delete_icon(-1)
Para revover o icone do personagem

Script


Código:
#==============================================================================
# ★ RGSS3_Popup Icon Ver1.2
#==============================================================================
=begin

Autor:tomoaky
website: Hikimoki (http://hikimoki.sakura.ne.jp/)

Mostra icone do item ao abrir baus ou coletar itens.
Mostra um icone sobre um evento ou Player.

Para mostar o icone use o seguinte comando no "Chamar Script"
  pop_icon(event_id, icon_id, duration)
 
  event_id é o Id do evento que ira sofrer a ação
  icon_id é o index do icon a ser usado。
  se o "event_id" for "0" será tratado como o evento que o invocou
  -1 é o player
  duration é a duração do evento ( em frames)
 
  EX:)pop_icon(-1, 17, 300)
  Isso ira exibir um icone no player por 5 segundos.
 
  Um pop_icon Não será exibido seguido do outro
  Use delete_icon com espera de alguns frames
  para evibir pop_icon Seguidos。
 
  EX)delete_icon(-1)
  Para revover o icone do personagem
 
Variavéis usadas (padrão do Script) 
  0006
 
2012.01.19  Ver1.2
 ・Adicionado o comando delete_icon.
 ・Erro de popup corrigido.
 
2011.12.21  Ver1.11
 ・Corrigido o erro de exibição no evento demasiado "0"
 
2011.12.17  Ver1.1
 ・Adicionado tempo de exibição

2011.12.15  Ver1.0
  Publicação.
 
=end

#==============================================================================
# □ Configuração.
#==============================================================================
module TMICPOP
  GRAVITY = 24              # Gravidade de acordo com o Icone
  SPEED  = -320            # Velocidade
 
  VN_TARGET = 6            # Variavel de atribuição do icone.
end

#==============================================================================
# □ コマンド
#==============================================================================
module TMICPOP
module Commands
  #--------------------------------------------------------------------------
  # ○ アイコンポップの開始
  #--------------------------------------------------------------------------
  def pop_icon(event_id, icon_id, duration = 120)
    target = get_character(event_id)
    return unless target
    target.icpop_id = icon_id
    target.icpop_duration = duration
  end
  #--------------------------------------------------------------------------
  # ○ アイコンポップの削除
  #--------------------------------------------------------------------------
  def delete_icon(event_id)
    target = get_character(event_id)
    return unless target
    target.icpop_delete_flag = true
  end
end
end # module TMICPOP

#==============================================================================
# ■ Game_CharacterBase
#==============================================================================
class Game_CharacterBase
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :icpop_id                # アイコンポップ ID
  attr_accessor :icpop_duration          # アイコンポップ 表示時間
  attr_accessor :icpop_delete_flag        # アイコンポップ 削除フラグ
  #--------------------------------------------------------------------------
  # ● 公開メンバ変数の初期化
  #--------------------------------------------------------------------------
  alias tmicpop_game_characterbase_init_public_members init_public_members
  def init_public_members
    tmicpop_game_characterbase_init_public_members
    @icpop_id = 0
    @icpop_duration = 0
    @icpop_delete_flag = false
  end
end

#==============================================================================
# ■ Sprite_Character
#==============================================================================
class Sprite_Character
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    character : Game_Character
  #--------------------------------------------------------------------------
  alias tmicpop_sprite_character_initialize initialize
  def initialize(viewport, character = nil)
    @icpop_duration = 0
    tmicpop_sprite_character_initialize(viewport, character)
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias tmicpop_sprite_character_dispose dispose
  def dispose
    dispose_icpop
    tmicpop_sprite_character_dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias tmicpop_sprite_character_update update
  def update
    update_icpop
    tmicpop_sprite_character_update
  end
  #--------------------------------------------------------------------------
  # ● 新しいエフェクトの設定
  #--------------------------------------------------------------------------
  alias tmicpop_sprite_character_setup_new_effect setup_new_effect
  def setup_new_effect
    tmicpop_sprite_character_setup_new_effect
    if !@icpop_sprite && @character.icpop_id > 0
      @icpop_id = @character.icpop_id
      @character.icpop_id = 0
      start_icpop
    end
  end
  #--------------------------------------------------------------------------
  # ○ アイコンポップ表示の開始
  #--------------------------------------------------------------------------
  def start_icpop
    dispose_icpop
    @icpop_duration = @icpop_duration_max = @character.icpop_duration
    @icpop_sprite = ::Sprite.new(viewport)
    @icpop_sprite.bitmap = Cache.system("IconSet")
    @icpop_sprite.src_rect.set(@icpop_id % 16 * 24, @icpop_id / 16 * 24, 24, 24)
    @icpop_sprite.ox = 12
    @icpop_sprite.oy = 24
    @icpop_y_plus = 0
    @icpop_y_speed = TMICPOP::SPEED
    update_icpop
  end
  #--------------------------------------------------------------------------
  # ○ アイコンポップの解放
  #--------------------------------------------------------------------------
  def dispose_icpop
    @character.icpop_delete_flag = false
    if @icpop_sprite
      @icpop_sprite.dispose
      @icpop_sprite = nil
    end
  end
  #--------------------------------------------------------------------------
  # ○ アイコンポップの更新
  #--------------------------------------------------------------------------
  def update_icpop
    if @icpop_duration > 0
      @icpop_duration -= 1
      if @character.icpop_delete_flag
        @icpop_duration = 0
        dispose_icpop
      elsif @icpop_duration > 0
        @icpop_sprite.x = x
        @icpop_y_plus += @icpop_y_speed
        @icpop_y_speed += TMICPOP::GRAVITY
        if @icpop_y_plus > 0
          @icpop_y_plus = 0 - @icpop_y_plus
          @icpop_y_speed = 0 - @icpop_y_speed / 2
        end
        @icpop_sprite.y = y - height + (@icpop_y_plus / 256)
        @icpop_sprite.z = z + 200
        @icpop_sprite.opacity = (@icpop_duration < 16 ? @icpop_duration * 16 :
          (@icpop_duration_max - @icpop_duration) * 32)
      else
        dispose_icpop
        @character.icpop_id = 0
      end
    end
  end
end

#==============================================================================
# ■ Game_Event
#==============================================================================
class Game_Event
  include TMICPOP::Commands
  #--------------------------------------------------------------------------
  # ○ キャラクターの取得
  #    param : -1 ならプレイヤー、0 ならこのイベント、それ以外はイベント ID
  #--------------------------------------------------------------------------
  def get_character(param)
    if param < 0
      $game_player
    else
      $game_map.events[param > 0 ? param : @id]
    end
  end
end

#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
  include TMICPOP::Commands
  #--------------------------------------------------------------------------
  # ● アイテムの増減
  #--------------------------------------------------------------------------
  alias tmicpop_game_interpreter_command_126 command_126
  def command_126
    tmicpop_game_interpreter_command_126
    value = operate_value(@params[1], @params[2], @params[3])
    if value > 0
      if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
        item = $data_items[@params[0]]
        pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 武器の増減
  #--------------------------------------------------------------------------
  alias tmicpop_game_interpreter_command_127 command_127
  def command_127
    tmicpop_game_interpreter_command_127
    value = operate_value(@params[1], @params[2], @params[3])
    if value > 0
      if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
        item = $data_weapons[@params[0]]
        pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 防具の増減
  #--------------------------------------------------------------------------
  alias tmicpop_game_interpreter_command_128 command_128
  def command_128
    tmicpop_game_interpreter_command_128
    value = operate_value(@params[1], @params[2], @params[3])
    if value > 0
      if $game_variables[TMICPOP::VN_TARGET] >= -1 && !$game_party.in_battle
        item = $data_armors[@params[0]]
        pop_icon($game_variables[TMICPOP::VN_TARGET], item.icon_index)
      end
    end
  end
end


Creditos
[/color]

- A Tomoaky por Criar o Script

- A Hatsurugi por traduzir e postar no Templo.

Espero que seja do agrado dos senhores

De sua atiradora

Hatsurugi

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Tópicos semelhantes

-

» [Dúvida] Como troca icon

Permissões neste sub-fórum
Não podes responder a tópicos