Segue abaixo um script feito pelo Dax que consiste em mostrar uma imagem em cima da cabeça de um evento, e é ativado por "chamar script".
Ele funciona tudo certo, só não sei como apagar a imagem ! Alguem pode ajudar?
Não encontrei nenhuma demo desse script.
Obs: Dei uma alterada no script para a imagem aparecer em cima do herói, apenas substituindo $game_map.events[id] por $game_player . É por isso que tem uma variável "id" perdida ai pelo script hahahah
#==============================================================================
# • Picture Over Event
#==============================================================================
# Autor: Dax
# Versão: 1.2
# Site: www.dax-soft.weebly.com
# Requerimento: Dax Core
#==============================================================================
# • Descrição:
#------------------------------------------------------------------------------
# Permite que você ponha uma imagem por cima da cabeça de um evento.
# Deixando ela parada ou animada.
#==============================================================================
# • Como usar: NO COMANDO CHAMAR SCRIPTS
#------------------------------------------------------------------------------
# poe(id, name, animation, [x, y])
# * id : ID do evento!
# * name : Nome da imagem que deve estar na pasta Pictures;
# * animation : Sê irá ter uma pequena animação. true - sim | false - não.
# Por padrão já vem definido como não, então se quiser não precisa definir.
# * x : Posição X adicional.
# * y : Posição Y adicional.
# Por padrão já vem definido, então não precisa definir.
#==============================================================================
Dax.register(:picture_over_event, "Dax", 1.2, "05/03/14")
#==============================================================================
# • Rpg::PoE
#==============================================================================
module RPG::PoE
extend self
#----------------------------------------------------------------------------
# • Variável.
#----------------------------------------------------------------------------
@poe ||= []
#----------------------------------------------------------------------------
# • Criar.
#----------------------------------------------------------------------------
def draw(id, name, animation, add)
return if @poe[id.__id__]
@poe[id.__id__] = Sprite_PoE.new("P: #{name}", id, animation, add)
end
#----------------------------------------------------------------------------
# • Renovar.
#----------------------------------------------------------------------------
def dispose
return if @poe.is_a?(NilClass)
@poe.each { |i| i.dispose unless i.nil? }
end
#----------------------------------------------------------------------------
# • Atualizar.
#----------------------------------------------------------------------------
def update
return if @poe.nil?
@poe.each { |i| i.update unless i.nil? or i.disposed?}
end
end
#==============================================================================
# • Sprite.
#==============================================================================
class Sprite_PoE < Sprite
#----------------------------------------------------------------------------
# • Inicialização dos objetos.
#----------------------------------------------------------------------------
def initialize(name, id, animation, add)
super(name)
@id = id
@add = add || [0, 0]
@animation = animation || false
@y_active = true
@y = 0
self.x = ($game_player.screen_x - (self.width / 2)) + @add[0]
self.y = ($game_player.screen_y - 56) + @add[1]
end
#----------------------------------------------------------------------------
# • Renovação dos objetos.
#----------------------------------------------------------------------------
def dispose
self.visible = false
end
#----------------------------------------------------------------------------
# • Atualização dos objetos.
#----------------------------------------------------------------------------
def update
self.visible = true
self.x = ($game_player.screen_x - (self.width / 2)) + @add[0]
unless @animation
self.y = ($game_player.screen_y - 56) + @add[1]
else
if @y_active
@y += 1
self.y = ($game_player.screen_y - 56) + @add[1] + @y
@y_active = false if @y > 5
else
@y -= 1
self.y = ($game_player.screen_y - 56) + @add[1] + @y
@y_active = @y < -5
end
end
end
end
#==============================================================================
# • Game_Interpreter
#==============================================================================
class Game_Interpreter
#----------------------------------------------------------------------------
# • Desenhar imagem.
#----------------------------------------------------------------------------
def poe(id, name, animation=nil, add=nil)
RPG::PoE.draw(id, name, animation, add)
end
end
#==============================================================================
# • Scene_Map
#==============================================================================
class Scene_Map < Scene_Base
#----------------------------------------------------------------------------
# • Renovação dos objetos.
#----------------------------------------------------------------------------
alias :poe_terminate :terminate
def terminate
poe_terminate
RPG::PoE.dispose
end
#----------------------------------------------------------------------------
# • Atualização dos objetos.
#----------------------------------------------------------------------------
alias :poe_update :update
def update
poe_update
RPG::PoE.update
end
end