O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Problema com o XAS

Iniciado por Stella Artois, 17/04/2016 às 01:22

17/04/2016 às 01:22 Última edição: 17/04/2016 às 07:00 por King Gerar
OhaiôôôÔ
Alguém poderia me explicar o motivo:
Quando eu inicio o jogo
(que contém o XAS e um script "Reflexo na Água")
e eu ataco com o meu personagem - simplesmente apertando o botão "Z", dá o seguinte erro:
line94 NoMethodError ocurred.
undefined method visible = for nil:NilClass

Eu não entendi, sério.
O erro se originou depois que eu instalei o XAS no meu projeto.

Script:
[spoiler]module Khrono_Conf
#===============================================================================
#                                CONFIGURAÇÃO
#===============================================================================    
# Opacidade do reflexo  

  Opacidade = 90
  
# ID da região

  Regiao = 1
#===============================================================================  
#                              FIM DA CONFIGURAÇÃO
#===============================================================================
end

class Scene_Map < Scene_Base
  alias update_ update
  alias start_ start

  def start
    start_
    @spr_e = Array.new
    $game_map.events.values.each do |evento|
      @spr_e[evento.id] = Sprite.new
    end
    @spr = Sprite.new
    @spr.bitmap = Cache.character($game_player.character_name)
    @spr.visible = false
    @index_e = Array.new
    @direita_e = Array.new
    @direita2_e = Array.new
    @direita3_e = Array.new
    @esquerda_e = Array.new
    @esquerda2_e = Array.new
    @esquerda3_e = Array.new
    @cima_e = Array.new
    @baixo_e = Array.new
    @cont_r = 0
    @cont_ra = 0
    @cont_r_e = Array.new
    @cont_ra_e = Array.new
    conf_index
    conf_index_e
  end
  def conf_index_e
      $game_map.events.values.each do |evento|
        @cont_r_e[evento.id] = 0
        @cont_ra_e[evento.id] = 0
      @spr_e[evento.id].bitmap = Cache.character(evento.character_name)
      @spr_e[evento.id].visible = false
      @index_e[evento.id] = evento.character_index
      if @index_e[evento.id]<=3
      @baixo_e[evento.id] = Rect.new(32+32*3*(@index_e[evento.id]), 0, 32, 28)      
      @esquerda_e[evento.id] = Rect.new(32*3*@index_e[evento.id], 64, 32, 28)
      @esquerda2_e[evento.id] = Rect.new(32*3*@index_e[evento.id]+32, 64, 32, 28)
      @esquerda3_e[evento.id] = Rect.new(32*3*@index_e[evento.id]+64, 64, 32, 28)
      @direita_e[evento.id] = Rect.new(32*3*@index_e[evento.id], 32, 32, 28)
      @direita2_e[evento.id] = Rect.new(32*3*@index_e[evento.id]+32, 32, 32, 28)
      @direita3_e[evento.id] = Rect.new(32*3*@index_e[evento.id]+64, 32, 32, 28)
      @cima_e[evento.id] = Rect.new(32+32*3*(@index_e[evento.id]),32*3,32,28)
    else
      @baixo_e[evento.id] = Rect.new(32*4*(@index_e[evento.id]-4), 128, 32, 28)          
      @esquerda_e[evento.id] = Rect.new(32*3*(@index_e[evento.id]-4), 64*3, 32, 28)
      @esquerda2_e[evento.id] = Rect.new(32*3*(@index_e[evento.id]-4)+32, 64*3, 32, 28)
      @esquerda3_e[evento.id] = Rect.new(32*3*(@index_e[evento.id]-4)+64, 64*3, 32, 28)      
      @direita_e[evento.id] = Rect.new(32*3*(@index_e[evento.id]-4), 32*5, 32, 28)
      @direita2_e[evento.id] = Rect.new(32*3*(@index_e[evento.id]-4)+32, 32*5, 32, 28)
      @direita3_e[evento.id] = Rect.new(32*3*(@index_e[evento.id]-4)+64, 32*5, 32, 28)  
      @cima_e[evento.id] = Rect.new(32*3*(@index_e[evento.id]-4),32*7,32,28)
    end
    end
  end
  def conf_index
    index = $game_player.character_index
    if index<=3
      @baixo = Rect.new(32+32*3*(index), 0, 32, 28)      
      @esquerda = Rect.new(32*3*index, 64, 32, 28)
      @esquerda2 = Rect.new(32*3*index+32, 64, 32, 28)
      @esquerda3 = Rect.new(32*3*index+64, 64, 32, 28)
      @direita = Rect.new(32*3*index, 32, 32, 28)
      @direita2 = Rect.new(32*3*index+32, 32, 32, 28)
      @direita3 = Rect.new(32*3*index+64, 32, 32, 28)
      @cima = Rect.new(32+32*3*(index),32*3,32,28)
    else
      @baixo = Rect.new(32*4*(index-4), 128, 32, 28)          
      @esquerda = Rect.new(32*3*(index-4), 64*3, 32, 28)
      @esquerda2 = Rect.new(32*3*(index-4)+32, 64*3, 32, 28)
      @esquerda3 = Rect.new(32*3*(index-4)+64, 64*3, 32, 28)      
      @direita = Rect.new(32*3*(index-4), 32*5, 32, 28)
      @direita2 = Rect.new(32*3*(index-4)+32, 32*5, 32, 28)
      @direita3 = Rect.new(32*3*(index-4)+64, 32*5, 32, 28)  
      @cima = Rect.new(32*3*(index-4),32*7,32,28)
    end
  end
  
  def reflexo_certo_e
      $game_map.events.values.each do |event|
      if event.direction == 2
      @spr_e[event.id].src_rect = @baixo_e[event.id]
    elsif event.direction == 6
      if event.moving?
        @cont_ra_e[event.id]+=1
        if @cont_ra_e[event.id]<=18
           @spr_e[event.id].src_rect = @esquerda_e[event.id]
        elsif @cont_ra_e[event.id]>=19 && @cont_ra_e[event.id]<=27
          @spr_e[event.id].src_rect = @esquerda2_e[event.id]
        elsif @cont_ra_e[event.id]>=28 && @cont_ra_e[event.id]<=37
          @spr_e[event.id].src_rect = @esquerda3_e[event.id]
        end
      else
        @spr_e[event.id].src_rect = @esquerda_e[event.id]
        @cont_ra_e[event.id] = 0
      end
      if @cont_ra_e[event.id] == 38
        @cont_ra_e[event.id] = 0
      end
    elsif event.direction == 4
      if event.moving?
        @cont_ra_e[event.id]+=1
        if @cont_ra_e[event.id]<=18
           @spr_e[event.id].src_rect = @direita_e[event.id]
        elsif @cont_ra_e[event.id]>=19 && @cont_ra_e[event.id]<=27
          @spr_e[event.id].src_rect = @direita2_e[event.id]
        elsif @cont_ra_e[event.id]>=28 && @cont_ra_e[event.id]<=37
          @spr_e[event.id].src_rect = @direita3_e[event.id]
        end
      else
        @spr_e[event.id].src_rect = @direita_e[event.id]
        @cont_ra_e[event.id] = 0
      end
      if @cont_ra_e[event.id] == 38
        @cont_ra_e[event.id] = 0
      end
    elsif event.direction == 8
        @spr_e[event.id].src_rect = @cima_e[event.id]
      if @cont_ra_e[event.id] == 28
        @cont_ra_e[event.id] = 0
      end
    end
  end
end

  def reflexo_certo
    if $game_player.direction == 2
      @spr.src_rect = @baixo
    elsif $game_player.direction == 6
      if $game_player.moving? || $game_player.dash?
        @cont_ra+=1
        if @cont_ra<=8
           @spr.src_rect = @esquerda
        elsif @cont_ra>=9 && @cont_ra<=17
          @spr.src_rect = @esquerda2
        elsif @cont_ra>=18 && @cont_ra<=27
          @spr.src_rect = @esquerda3
        end
      else
        @spr.src_rect = @esquerda
        @cont_ra = 0
      end
      if @cont_ra == 28
        @cont_ra = 0
      end
    elsif $game_player.direction == 4
      if $game_player.moving? || $game_player.dash? && $game_player.moving?
        @cont_ra+=1
        if @cont_ra<=8
           @spr.src_rect = @direita
        elsif @cont_ra>=9 && @cont_ra<=17
          @spr.src_rect = @direita2
        elsif @cont_ra>=18 && @cont_ra<=27
          @spr.src_rect = @direita3
        end
      else
        @spr.src_rect = @direita
        @cont_ra = 0
      end
      if @cont_ra == 28
        @cont_ra = 0
      end
    elsif $game_player.direction == 8
        @spr.src_rect = @cima
      if @cont_ra == 28
        @cont_ra = 0
      end
    end
  end
  
  def update
    update_
    $game_map.events.values.each do |evento|
      case evento.region_id
      when 0
        @spr_e[evento.id].visible = false
        @cont_r_e[evento.id] = 0  
      when Khrono_Conf::Regiao
        @cont_r_e[evento.id]+=1
        reflexo_certo_e
        @spr_e[evento.id].x = evento.screen_x+16
        @spr_e[evento.id].y = evento.screen_y+40
        @spr_e[evento.id].opacity = Khrono_Conf::Opacidade
        @spr_e[evento.id].angle = 180
        if @cont_r_e[evento.id]>=33
        @spr_e[evento.id].visible = true
        @spr_e[evento.id].mirror = true
        end
      end
    end
    case $game_player.region_id
    when 0
      @spr.visible = false
      @cont_r = 0
    when Khrono_Conf::Regiao
      @cont_r+=1
      reflexo_certo
      @spr.opacity = Khrono_Conf::Opacidade
      @spr.x = $game_player.screen_x + 16
      @spr.y = $game_player.screen_y + 40
      @spr.angle = 180
      if @cont_r>=13
      @spr.visible = true
      @spr.mirror = true
      end
    end
  end
  def update_transfer_player
    if $game_player.transfer?
      conf_index_e
      perform_transfer
      start
    end
  end
end
[/spoiler]


Tenho alguns palpites como,
A opacidade do reflexo afeta o evento de ataque.

~Desculpem a minha ignorância.
:noface: