Panda_Artist

Humble RPG Fan
Veteran
Joined
Dec 22, 2018
Messages
256
Reaction score
15
First Language
Portuguese
Primarily Uses
RMVXA
Good morning / afternoon / evening, everyone.

I am in need of your assistance once again.

How hard would it be to code a script that plays a note-tagged animation on the affected battler when this battler has recovered from a state. I.E when the state is removed?

Is this possible to achieve?

Any help would be appreciated.
 

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,184
Reaction score
838
First Language
Hungarian
Primarily Uses
RMVXA
This will either work or not depending on the battle system you use:
Can also conflict with custom battle logs.
 

Panda_Artist

Humble RPG Fan
Veteran
Joined
Dec 22, 2018
Messages
256
Reaction score
15
First Language
Portuguese
Primarily Uses
RMVXA
My hero/heroine

I'm using the Default Battle System with W.Coulliard's FF Log along with Akea's Battle Popup






This so far seems to work perfectly, thank you so much for this, it does as it's intended and I wasn't going to use it for anything super complex anyway.

If I encounter any issues I will surely let you know.


UPDATE:


When a battler has more than 25 skills on his list (wierd isn't it??) I get this error

29.11.2020_22.22.51_REC.png

the Pop Up script is this own, which gives me battle popup numbers... It's in portuguese but I hope you can make it out with the programming


Here it is:

Ruby:
#=======================================================
#        Akea Advanced Battle Pop-up
# Author: Raizen
# Community: http://www.centrorpg.com/
# Compatibility: RMVXAce
#
#=======================================================
# Instruções e Funcionalidades:
# O script adiciona a função de pop-up de estados/dano/buffs,
# O script permite TOTAL configuração das animações
# =========================Don't Modify==============================
$included ||= Hash.new
$included[:akea_battlepopup] = true
module Akea_BattlePop
# =========================Don't Modify==============================

# Instancias de imagens abertas, coloque quantas achar necessário, isso
# significa o máximo de imagens de pop-up que serão exibidas simultaneamente
Instances = 4

# Mostrar o Log?
Show_log = false

# Tamanho total da imagem [largura, altura]
Popup_Size = [100, 50]

# Espaço entre os números por imagens SE utilizar numeração por imagens
Popup_Spacing = 14

# Tempo entre um pop-up e outro
# (Time_Pop = 60 é igual a 1 segundo)
Time_Pop = 30
BattlePop = []

# Mostrar ganho de experiência e gold ao derrotar inimigos?
Show_Gold_Exp = false
# Nomenclatura de gold
Gold = " G"
# Nomenclatura de Exp
Exp = " EXP"

# Pop-up que subirá caso se recupere de um estado
Recover_Name = ''
# Estados que não serão considerados como "recuperado"
States_No_Pop = ['']

# Aqui será configurado o padrão de Battle Pop-ups,
# LEIA ATENTAMENTE, é possível adicionar TUDO por imagens,
# mas deve se atentar a alguns pontos.
# 6 palavras estão RESERVADAS,
# num_dmg é para a numeração de dano CASO queira utilizar
# num_rec é para a numeração de recuperação CASO queira utilizar
# num_mp_dmg é para a numeração de dano mágico CASO queira utilizar
# num_mp_rec é para a numeração de recuperação de mana CASO queira utilizar
# num_tp_dmg é para a numeração de dano TP CASO queira utilizar
# num_tp_rec é para a numeração de recuperação de TP CASO queira utilizar

# Todos seguem o seguinte padrão
# 'num_dmg' => ['nome_da_imagem', id_do_Pop],
# id_do_pop segue o padrão configurado abaixo, você pode optar por usar
# uma imagem no lugar de 'nome_da_imagem' só colocar o gráfico na pasta
# Graphics/Akea
# Se optar por usar o desenho padrão do RPG Maker, basta colocar '' no
# lugar do nome da imagem.
# Para os outros que não sejam a numeração coloque
# 'texto' => ['nome_da_imagem', id_do_Pop],
# Por exemplo o estado envenenado

#Ex: 'Envenenado' => ['Poison', 9],
# O exemplo acima faria toda vez que o texto for Envenenado(o nome do estado),
# ele chamaria a configuração do pop-up 9 e a imagem seria a "Poison.png"
BattlePic = {
'num_dmg' => ['', 0],
'num_rec' => ['', 1],
'num_mp_dmg' => ['', 2],
'num_mp_rec' => ['', 3],
'num_tp_dmg' => ['', 2],
'num_tp_rec' => ['', 3],
'evaded' => ['', 5],
'Envenenado' => ['', 9],
}

#--------------------------------------------------------------------------
# * BattlePop[id] -> Pode adicionar quantas achar necessário
#--------------------------------------------------------------------------
# Instruções, aqui é configurado TODOS os movimentos de pop-ups e suas
# configurações, PRESTE bastante atenção na configuração.

#:base_set aqui não é necessário modificar:
#:movement => aqui é configurado TODOS os movimentos do pop-up, os
# movimentos são sequenciais e configurados da seguinte maneira.
# [movimento em x, movimento em y, opacidade]
# sendo que o primeiro é em relação a posição do ALVO do pop-up

# Pode adicionar quando quiser, separados por vírgulas

# :color => [R, G, B] sendo 255 o valor máximo
# :font => nome da fonte('' usa a fonte padrão do RPG Maker)
# :size => tamanho da fonte
# :bold => true/false
# :italic => true/false
# :text => texto do pop-up, fará efeito em algumas situações apenas


#--------------------------------------------------------------------------
# * BattlePop[0] => Pop up padrão de dano
#--------------------------------------------------------------------------
BattlePop[0] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [255, 255, 255],
:font => '',
:size => 32,
:bold => true,
:italic => false,
:text => '',
}
#--------------------------------------------------------------------------
# * BattlePop[1] => Pop up padrão de recuperação de vida
#--------------------------------------------------------------------------
BattlePop[1] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [0, 255, 0],
:font => '',
:size => 32,
:bold => true,
:italic => false,
:text => '',
}
#--------------------------------------------------------------------------
# * BattlePop[2] => Pop up padrão de dano(mana)
#--------------------------------------------------------------------------
BattlePop[2] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [251, 191, 255],
:font => '',
:size => 32,
:bold => true,
:italic => false,
:text => 'MP',
}
#--------------------------------------------------------------------------
# * BattlePop[3] => Pop up padrão de recuperação de mana
#--------------------------------------------------------------------------
BattlePop[3] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [0, 255, 255],
:font => '',
:size => 32,
:bold => true,
:italic => false,
:text => '',
}
#--------------------------------------------------------------------------
# * BattlePop[0] => Pop up padrão de erro(miss)
#--------------------------------------------------------------------------
BattlePop[4] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [255, 255, 255],
:font => '',
:size => 32,
:bold => false,
:italic => false,
:text => 'Miss',
}
#--------------------------------------------------------------------------
# * BattlePop[0] => Pop up padrão de desvio(evade)
#--------------------------------------------------------------------------
BattlePop[5] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [255, 255, 255],
:font => '',
:size => 32,
:bold => false,
:italic => false,
:text => 'Miss',
}
#--------------------------------------------------------------------------
# * BattlePop[0] => Pop up padrão para os estados
#--------------------------------------------------------------------------
BattlePop[6] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [255, 0, 255],
:font => '',
:size => 32,
:bold => false,
:italic => false,
:text => '',
}
#--------------------------------------------------------------------------
# * BattlePop[0] => Pop up padrão de experiencia
#--------------------------------------------------------------------------
BattlePop[7] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [54, 128, 255],
:font => '',
:size => 24,
:bold => false,
:italic => false,
:text => 'exp',
}
#--------------------------------------------------------------------------
# * BattlePop[0] => Pop up padrão de gold
#--------------------------------------------------------------------------
BattlePop[8] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [204, 204, 0],
:font => '',
:size => 24,
:bold => false,
:italic => false,
:text => 'gold',
}
#--------------------------------------------------------------------------
# * BattlePop[0] => Pop up customizado de envenenamento
#--------------------------------------------------------------------------
BattlePop[9] = {
:base_set => 'subject',
:movement => [[-10, -50, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 255], [0, -1, 255],
[0, -1, 255], [0, -1, 255], [0, -1, 200], [0, -1, 150], [0, -1, 50],
[0, -1, 0]],
:color => [20, 255, 30],
:font => '',
:size => 24,
:bold => false,
:italic => false,
:text => 'Poison',
}
end
#==============================================================================
#------------------------------------------------------------------------------
#  AQUI COMEÇA O SCRIPT
#------------------------------------------------------------------------------
#==============================================================================
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de batalha.
#==============================================================================

class Scene_Battle < Scene_Base
alias :akea_abp_start :start
alias :akea_abp_update_basic :update_basic
alias :akea_abp_terminate :terminate
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    akea_abp_start
    create_popup_sprites
  end
  #--------------------------------------------------------------------------
  # * Atualização do pop_up
  #--------------------------------------------------------------------------
  def update_akea_popup
    for n in 0...@abp_sprite_movement.size
      next if @abp_sprite_movement[n].empty?
      update_abp_movement(n)
    end
  end
  #--------------------------------------------------------------------------
  # * Atualização do movimento do pop-up
  #--------------------------------------------------------------------------
  def update_abp_movement(n)
    @abp_sprite[n].x += @abp_sprite_movement[n].first[0]
    @abp_sprite[n].y += @abp_sprite_movement[n].first[1]
    @abp_sprite[n].opacity = @abp_sprite_movement[n].first[2]
    @abp_sprite_movement[n].shift
  end
  #--------------------------------------------------------------------------
  # * Atualização geral da tela
  #--------------------------------------------------------------------------
  def update_basic
    update_akea_popup
    akea_abp_update_basic
  end
  #--------------------------------------------------------------------------
  # * Criação da tela de pop-ups
  #--------------------------------------------------------------------------
  def create_popup_sprites
    @abp_sprite = Array.new
    @abp_sprite_movement = Array.new(Akea_BattlePop::Instances, [])
    @abp_instance = 0
    for n in 0...Akea_BattlePop::Instances
      @abp_sprite[n] = Sprite.new
      @abp_sprite[n].bitmap = Bitmap.new(Akea_BattlePop::Popup_Size[0], Akea_BattlePop::Popup_Size[1])
    end
  end
  #--------------------------------------------------------------------------
  # * Rotacionar as instancias
  #--------------------------------------------------------------------------
  def rotate_abp_instances
    if @abp_instance < Akea_BattlePop::Instances - 1
      @abp_instance += 1
    else
      @abp_instance = 0
    end
    return @abp_instance
  end
  #--------------------------------------------------------------------------
  # * Desenhar a imagem de pop-up
  #--------------------------------------------------------------------------
  def draw_akea_popup(id, text, subject = false, type = '')
    n = rotate_abp_instances
    @abp_sprite[n].bitmap.dispose
    @abp_sprite[n].bitmap = Bitmap.new(Akea_BattlePop::Popup_Size[0], Akea_BattlePop::Popup_Size[1])
    text = text.to_s if type == '' || Akea_BattlePop::BattlePic[type][0] == ''
    if type != ''
      id = Akea_BattlePop::BattlePic[type][1] if Akea_BattlePop::BattlePic[type]
    end
    if text.is_a?(Integer)
      var = Cache.akea(Akea_BattlePop::BattlePic[type][0])
      hp = text
      spacing_num = 0
      hp_array = []
      until hp == 0
        rest = hp % 10
        hp = hp/10
        hp_array.unshift(rest)
      end
      for i in 0...hp_array.size
        @abp_sprite[n].bitmap.rect.set((@abp_sprite[n].bitmap.width*hp_array[i])/10, 0, @abp_sprite[n].bitmap.width/10, @abp_sprite[n].bitmap.height)
        rect = Rect.new((@abp_sprite[n].bitmap.width*hp_array[i])/10, 0, @abp_sprite[n].bitmap.width/10, @abp_sprite[n].bitmap.height)
        @abp_sprite[n].bitmap.blt(spacing_num, 0, var, rect, 255)
        spacing_num += Akea_BattlePop::Popup_Spacing
      end
    elsif Akea_BattlePop::BattlePic[text] && Akea_BattlePop::BattlePic[text][0] != ''
      @abp_sprite[n].bitmap = Cache.akea(Akea_BattlePop::BattlePic[text][0])
    else
      if Akea_BattlePop::BattlePic[text]
        id = Akea_BattlePop::BattlePic[text][1]
      end
      if Akea_BattlePop::BattlePop[id][:font] == ''
        @abp_sprite[n].bitmap.font.name = Font.default_name
      else
        @abp_sprite[n].bitmap.font.name = Akea_BattlePop::BattlePop[id][:font]
      end
      @abp_sprite[n].bitmap.font.color.set(*Akea_BattlePop::BattlePop[id][:color])
      @abp_sprite[n].bitmap.font.size = Akea_BattlePop::BattlePop[id][:size]
      @abp_sprite[n].bitmap.font.bold = Akea_BattlePop::BattlePop[id][:bold]
      @abp_sprite[n].bitmap.font.italic = Akea_BattlePop::BattlePop[id][:italic]
      @abp_sprite[n].bitmap.draw_text(0, 0, Akea_BattlePop::Popup_Size[0], Akea_BattlePop::Popup_Size[1], text)
    end
    @abp_sprite_movement[n] = Akea_BattlePop::BattlePop[id][:movement].dup
    @abp_sprite[n].x = subject.screen_x
    @abp_sprite[n].y = subject.screen_y
  end
  #--------------------------------------------------------------------------
  # * Retorna o tipo de popup
  #--------------------------------------------------------------------------
  def get_abp_type(target, item = nil, text = '', id = false)
    if text != ''
      id ? draw_akea_popup(id, text, target) : draw_akea_popup(6, text, target)
    elsif target.result.hp_damage > 0
      value = target.result.hp_damage
      draw_akea_popup(0, value.to_i, target, 'num_dmg')
      target.perform_damage_effect
      Sound.play_actor_damage
    elsif target.result.hp_damage < 0
      value = target.result.hp_damage
      draw_akea_popup(1, value.to_i.abs, target, 'num_rec')
      Sound.play_recovery
    elsif target.result.mp_damage > 0
      value = target.result.mp_damage
      draw_akea_popup(2, value.to_i, target, 'num_mp_dmg')
    elsif target.result.mp_damage < 0
      value = target.result.mp_damage
      draw_akea_popup(3, value.to_i.abs, target, 'num_mp_rec')
      Sound.play_recovery
    elsif target.result.tp_damage > 0
      value = target.result.tp_damage
      draw_akea_popup(2, value.to_i, target, 'num_tp_dmg')
    elsif target.result.tp_damage < 0
      value = target.result.tp_damage
      draw_akea_popup(3, value.to_i.abs, target, 'num_tp_rec')
      Sound.play_recovery
    elsif target.result.missed
      value = Akea_BattlePop::BattlePop[4][:text]
      draw_akea_popup(4, value, target)
      Sound.play_miss
    elsif target.result.evaded
      value = Akea_BattlePop::BattlePop[5][:text]
      draw_akea_popup(5, value, target)
      Sound.play_evasion
    end
  end
  #--------------------------------------------------------------------------
  # * Dispoe as imagens
  #--------------------------------------------------------------------------
  def dispose_akea_popup
    @abp_sprite.each{|sprt| sprt.bitmap.dispose; sprt.dispose}
  end
  #--------------------------------------------------------------------------
  # * Finalização de Scene
  #--------------------------------------------------------------------------
  def terminate
    dispose_akea_popup
    akea_abp_terminate
  end
end


#==============================================================================
# ** Window_BattleLog
#------------------------------------------------------------------------------
#  Esta janela exibe o progresso da luta. Não exibe o quadro da
# janela, é tratado como uma janela por conveniência.
#==============================================================================

class Window_BattleLog < Window_Selectable
alias :akea_abp_display_use_item :display_use_item
alias :akea_abp_display_action_results :display_action_results
alias :akea_abp_display_damage :display_damage
alias :akea_abp_display_added_states :display_added_states
alias :akea_abp_display_removed_states :display_removed_states
alias :akea_abp_display_buffs :display_buffs
alias :akea_abp_display_critical :display_critical
alias :akea_abp_display_failure :display_failure
  #--------------------------------------------------------------------------
  # * Exibição de uso de habilidade/item
  #     subject : lutador
  #     item    : habilidade/item
  #--------------------------------------------------------------------------
  def display_use_item(subject, item)
    akea_abp_display_use_item(subject, item)
  end
  #--------------------------------------------------------------------------
  # * Exibição de dano
  #     target : alvo
  #     item   : habilidade/item
  #--------------------------------------------------------------------------
  def display_damage(target, item)
    SceneManager.scene.get_abp_type(target, item)
    unless Akea_BattlePop::Show_log
      @num_wait += 1
      @get_all_pop_wait = (Akea_BattlePop::BattlePop[0][:movement].size - Akea_BattlePop::Time_Pop)
      @method_wait.call(Akea_BattlePop::Time_Pop) if @method_wait
      return
    end
    akea_abp_display_damage(target, item)
  end
  #--------------------------------------------------------------------------
  # * Exibição de resultados da ação
  #     target : alvo
  #     item   : habilidade/item
  #--------------------------------------------------------------------------
  def display_action_results(target, item)
    @get_all_pop_wait = 0
    akea_abp_display_action_results(target, item)
    @num_wait += 1
    @method_wait.call(@get_all_pop_wait)
  end
  #--------------------------------------------------------------------------
  # * Exibição de estados adicionados
  #     target : alvo
  #--------------------------------------------------------------------------
  def display_added_states(target)
    target.result.added_state_objects.each do |state|
      target.perform_collapse_effect if state.id == target.death_state_id
      SceneManager.scene.get_abp_type(target, nil, state.name)
      @method_wait.call(Akea_BattlePop::Time_Pop)
      @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
      if Akea_BattlePop::Show_Gold_Exp && target.enemy? && state.id == target.death_state_id
        SceneManager.scene.get_abp_type(target, nil, target.gold.to_s + Akea_BattlePop::Gold, 8)
        @method_wait.call(Akea_BattlePop::Time_Pop)
        @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
        SceneManager.scene.get_abp_type(target, nil, target.exp.to_s + Akea_BattlePop::Exp, 7)
        @method_wait.call(Akea_BattlePop::Time_Pop)
        @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
      end
    end
    akea_abp_display_added_states(target) if Akea_BattlePop::Show_log
  end
  #--------------------------------------------------------------------------
  # * Exibição de estados removidos
  #     target : alvo
  #--------------------------------------------------------------------------
  def display_removed_states(target)
    target.result.removed_state_objects.each do |state|
      next if Akea_BattlePop::States_No_Pop.include?(state.name)
      SceneManager.scene.get_abp_type(target, nil, Akea_BattlePop::Recover_Name)
      @method_wait.call(Akea_BattlePop::Time_Pop)
      @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
    end
    akea_abp_display_removed_states(target) if Akea_BattlePop::Show_log
  end
  #--------------------------------------------------------------------------
  # * Exibição de fortalecimentos/enfraquecimentos(individual)
  #     target : alvo
  #     buffs  : lista de enfraquicimentos/fortalecimentos
  #     fmt    : mensagem
  #--------------------------------------------------------------------------
  def display_buffs(target, buffs, fmt)
    buffs.each do |param_id|
      SceneManager.scene.get_abp_type(target, nil, Vocab::param(param_id))
      @method_wait.call(Akea_BattlePop::Time_Pop)
      @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
    end
    akea_abp_display_buffs(target, buffs, fmt) if Akea_BattlePop::Show_log
  end
  #--------------------------------------------------------------------------
  # * Exibição de acerto crítico
  #     target : alvo
  #     item   : habilidade/item
  #--------------------------------------------------------------------------
  def display_critical(target, item)
    if target.result.critical
      text = target.actor? ? Vocab::CriticalToActor : Vocab::CriticalToEnemy
      SceneManager.scene.get_abp_type(target, item, text)
      @method_wait.call(Akea_BattlePop::Time_Pop)
      @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
    end
    akea_abp_display_critical(target, item) if Akea_BattlePop::Show_log
  end
  #--------------------------------------------------------------------------
  # * Exibição de falha
  #     target : alvo
  #     item   : habilidade/item
  #--------------------------------------------------------------------------
  def display_failure(target, item)
    if target.result.hit? && !target.result.success
      SceneManager.scene.get_abp_type(target, item, Vocab::ActionFailure)
      @method_wait.call(Akea_BattlePop::Time_Pop)
      @get_all_pop_wait = (Akea_BattlePop::BattlePop[6][:movement].size - Akea_BattlePop::Time_Pop)
    end
    akea_abp_display_failure(target, item) if Akea_BattlePop::Show_log
  end
end
#==============================================================================
# ** Cache
#------------------------------------------------------------------------------
#  Este modulo carrega cada gráfico, cria um objeto de Bitmap e retém ele.
# Para acelerar o carregamento e preservar memória, este módulo matém o
# objeto de Bitmap em uma Hash interna, permitindo que retorne objetos
# pré-existentes quando mesmo Bitmap é requerido novamente.
#==============================================================================


module Cache
  #--------------------------------------------------------------------------
  # * Carregamento dos gráficos de animação
  #     filename : nome do arquivo
  #     hue      : informações da alteração de tonalidade
  #--------------------------------------------------------------------------
  def self.akea(filename)
    load_bitmap("Graphics/Akea/", filename)
  end
end


I disabled this script, thinking it was the problem. But then I got this other error.

29.11.2020_22.21.27_REC.png

It happens the same way, when an actor's skill list exceeds 25 skills.... very strange...

I wonder what the issue is...? Sorry for the inconvenience.
 
Last edited:

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,184
Reaction score
838
First Language
Hungarian
Primarily Uses
RMVXA
The 1st error only happens with my script installed?
If so, try to put this line right above the error line in that popup script:
Code:
return unless @abp_sprite_movement
But I can't see any reason why would my script alone cause anything like this, it does nothing with the skills, nor does it change the update method called in my script in any way.

I can see that there is a compatibility issue with that script though, because it uses the same method in the log window I overwrote.
I updated my script to account for this. Make sure that my script is placed below Raizen's Popup script from now on.

The 2nd error you got is definitely not caused by my script. It says @spriteset in Scene_Battle is not defined, which it should be (since it's a default variable in that class and it is created before the log window), unless you somehow deleted it or another custom script disabled it for some reason.
 

Panda_Artist

Humble RPG Fan
Veteran
Joined
Dec 22, 2018
Messages
256
Reaction score
15
First Language
Portuguese
Primarily Uses
RMVXA
It is so strange... ir works just fine as long as I don't initiate a battle with an actor with more than exactly 25 skills or more... then I get the scene_battle error... there has to be some script here that is causing the issue and i don't know what is...


UPDATE: Somehow I got it to work by disabling a certain script. I will let you know if I encounter any more issues.
 

Latest Threads

Latest Posts

Latest Profile Posts

Barthdry wrote on tln143's profile.
Hello tln143 Welcome to the RPG Maker Forum. We wish you enjoy and make good rpg games
Barthdry wrote on 00cassiesmells's profile.
Hello 00casiemells Welcome to the RPG Maker Forum. We wish you enjoy and make good rpg games
Remember guys: Drink water and workout is important too! Don't stay too much time on the PC working! :D
Ami
--- Quest For Female ---

Guild Leader: Ladies,you got a Job for today. You have to Battle with Marauder,only Female must to this Job.
F.Magic Knight: So,only Female can do this?
Heroine: I can't wait for this!
Gunner Lady: Well,i can use the Seduction Skill to them,It's effective for Male Target
F.Knight: You always use that?
RPG Maker MZ just crashed, please tell me I didn't just lose 4 hours of progress.

Forum statistics

Threads
109,034
Messages
1,041,471
Members
141,517
Latest member
Nilero
Top