[Pearl ABS Liquid V3] Bug de animação

3 Respostas   517 Visualizações

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

Driko

Tópico criado em: 09/08/2015 às 10:52 - Última modificação por Driko em 11/08/2015 às 13:22

Olá galera! Tudo certo?   :ok:

Então, queria pedir ajuda para um possível solução para um bug em um ABS, é o seguinte:
Ao executar a imagem de animação, o char deveria ser apagado, porém a animação é executada por cima do char...



Desde já agradeço, deixarei o sistema com a animação já pronta, e as linhas do script onde creio eu que esteja o bug.

AQUI O SISTEMA:
Pearl ABS Liquid V3

AQUI O SCRIPT:
Código: [Selecionar]
#===============================================================================
# * Falcao Pearl ABS script shelf # 5
#
# This script handles all sprites of Pearl ABS engine
#===============================================================================

# Anime action enguine
class Anime_Obj < Game_Character
  attr_accessor :draw_it, :destroy_it, :item, :user, :original_speed
  attr_reader   :custom_graphic
  def initialize(user, item)
    super()
    PearlKernel.load_item(item)
    @draw_it = false
    @destroy_it = false
    @item = item
    @user = user
    @custom_graphic = false
    graphic = PearlKernel.user_graphic
    if graphic.split(" ").include?('custom')
      graphic = graphic.sub("custom ","")
      @custom_graphic = true
      user.transparent = true
      user.using_custom_g = true
    end
    @character_name = graphic
    moveto(@user.x, @user.y)
    set_direction(@user.direction)
    @original_speed = PearlKernel.user_animespeed
   
    #patch
    PearlKernel.check_iconset(@item, "User Iconset = ", self)
    @character_name = "" if @user_iconset != nil
  end
end

# Sprite character added battlers as enemies and the anime sprites fit
class Sprite_Character < Sprite_Base
  alias falcaopearl_update_position update_position
  def update_position
    if !@character.battler.nil? and @character.battler.is_a?(
      Game_Enemy) and @character.battler.breath_enable
      apply_breath_effect(@character)
    end
    self.zoom_x = @character.zoomfx_x
    self.zoom_y = @character.zoomfx_y
    self.angle = @character.angle_fx
    falcaopearl_update_position
    update_anime_object_pos
  end
 
  # anime object position and action
  def update_anime_object_pos
    if @character.is_a?(Anime_Obj)
      if @character.custom_graphic
        add = 0
      else
        @ch == 128 ? add = 48 : add = (@ch / 2) / 2
      end
      self.x = @character.user.screen_x
      self.y = @character.user.screen_y + add
      self.z = @character.user.screen_z if @character.user.using_custom_g
      @character.direction = @character.user.direction
      if @character.user.anime_speed == 0
        if @character.custom_graphic
          @character.user.transparent = false
          @character.user.using_custom_g = false
        end
        @character.destroy_it = true
      end
      if @character.user.making_spiral
        @character.direction == 8 ? @character.pattern=1 : @character.pattern=2
        return
      end
      a= @character.user.anime_speed.to_f/@character.original_speed.to_f * 100.0
      case a
      when 80..100 ; @character.pattern = 0
      when 60..80  ; @character.pattern = 1
      when 25..60  ; @character.pattern = 2
      end
    end
  end
 
  # Enemy battler graphics engine
  alias falcaopearl_battler_bitmap set_character_bitmap
  def set_character_bitmap
    if battler_graphic?
      self.bitmap= Cache.battler(@character_name,@character.battler.battler_hue)
      self.ox = self.bitmap.width / 2
      self.oy = self.bitmap.height
      return
    end
    falcaopearl_battler_bitmap
  end
 
  def battler_graphic?
    if !@character.battler.nil? and @character.battler.is_a?(
      Game_Enemy) and @character.battler.battler_graphic
      return false if @character.page.nil?
      @character_name = @character.battler.battler_name
      return true
    end
    return false
  end
 
  alias falcaopearl_battler_graphic update_src_rect
  def update_src_rect
    return if battler_graphic?
    falcaopearl_battler_graphic
  end
 
  # breath effect
  def apply_breath_effect(char)
    return if @character.is_a?(Game_Event) and @character.erased
    char.zoomfx_x -= 0.0023 if !char.zfx_bol
    char.zoomfx_y -= 0.0023 if !char.zfx_bol
    char.zoomfx_x += 0.0023 if  char.zfx_bol
    char.zoomfx_y += 0.0023 if  char.zfx_bol
    char.zfx_bol = true if char.zoomfx_x <= 0.93
    char.zfx_bol = false if char.zoomfx_x >= 1.0
  end
end

hategum rpg

Resposta 1: 09/08/2015 às 19:38 - Última modificação por hategum rpg em 11/08/2015 às 12:36

já tive problemas com isso também, resolvi com a prioridade da animação. La no bloco de notas.

Deve colocar o gráfico do char como custom. exemplo

User Graphic = custom $Arqueiroatirando[FR10]_Skill
User Anime Speed = 62
Tool Cooldown = 20
Tool Graphic = nil
Tool Index = 0
Tool Size = 2
Tool Distance = 1
Tool Effect Delay = 10
Tool Destroy Delay = 20
Tool Speed = 5
Tool Cast Time = 0
Tool Cast Animation = 0
Tool Blow Power = 1
Tool Piercing = true
Tool Animation When = end
Tool Animation Repeat = false
Tool Special = nil
Tool Target = false
Tool Invoke Skill = 0
Tool Guard Rate = 0
Tool Knockdown Rate = 40
Tool Sound Se = nil
Tool Cooldown Display = false
Tool Item Cost = 0
Tool Short Jump = false
Tool Through = true
Tool Priority = 0
Tool Hit Shake = false
Tool Self Damage = false
Tool Combo Tool = weapon, 3, 35, jump
Um cara desenvolvendo um jogo de RPG...
"  Faça o melhor que puder em tudo, simples assim."                    
                              - Hategum RPG.

Driko

Resposta 2: 11/08/2015 às 13:21

Caramba, lá no fórum gringo a possível solução do próprio criador não resolveu...
Enfim, funcionou de forma melhor. Obrigado, fico te devendo essa!  :ok:

Makers

Resposta 3: 11/08/2015 às 19:48

Tópico resolvido, :lock:
Prazer, Terror dos Modinha