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 na Aldeia
Espero que seja do agrado dos senhores
De sua atiradora
Hatsurugi