Picture Over Event do Dax

3 Respostas   217 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Nick Rock

  • *
  • Posts: 37
  • Ouros: 3
Tópico criado em: 19/12/2014 às 01:29

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

Código: [Selecionar]
#==============================================================================
# • 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

Raizen

  • Administrador
  • *
  • Posts: 3224
  • Ouros: 3192
  • Medalhas Vencedor do Protótipo Premiado Participante notável do evento "A Estação das Luzes do Norte" Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!
Resposta 1: 19/12/2014 às 15:32

Ah não tem essa função no script pelo que to vendo kk xD

mas isso deveria sumir todas as imagens que tem >_>

Código: [Selecionar]
RPG::PoE.dispose
E se quer uma especifica, eu fiz uma funçãozinha, não garanto que funcione pois não tem como eu testar agora :P

Só colocar abaixo do script e utilizar desse modo no chamar script

tirar(id) sendo id a ordem da imagem que você colocou para aparecer xD
Código: [Selecionar]
#==============================================================================
module RPG::PoE
  extend self
  #----------------------------------------------------------------------------
  # • Tirar
  #----------------------------------------------------------------------------
  def tirar(id)
    return if @poe.is_a?(NilClass)
    @poe[id].dispose unless @poe[id].nil?
  end
end

#==============================================================================
# • Game_Interpreter
#==============================================================================
class Game_Interpreter
  def tirar(id)
    RPG::PoE.tirar(id)
  end
end

Nick Rock

  • *
  • Posts: 37
  • Ouros: 3
Resposta 2: 19/12/2014 às 20:44

Uai, id é o que?
Por que no script original, id seria o id do evento em que a imagem aparece (mas eu mudei evento pra personagem)
Mas vou textar obrigado !
Só não sei se vou usar esse script mais, pois ele precisa do Dax Core e quando eu usso esse core aí as animations do meu jogo bugam (até postei isso aí na seção de suporte hahahha)

Kvothe

  • *
  • Posts: 652
  • Ouros: 1423
  • Maker Geral
Resposta 3: 19/12/2014 às 21:47

 Eita, carma que nóis arruma kkk.. Esse script está desatualizado, tenho o atualizado aqui, irei postar no site, quando postar lhe mando uma MP com o script corrigido. Sobre o Core, estou atualizado ele, pra corrigir algumas coisas assim, poderia me dizer que scripts tu usa em seu projeto?