Erro no Script Battle Motion (MOG)

7 Respostas   484 Visualizações

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

HammerStrike

  • Veterano
  • *
  • Posts: 333
  • Ouros: 280
  • "Quando vou terminar?quando estiver pronto!"
  • Equipamentos "Manejar espadas está lhe dando calos nas mãos? Uma bela luva pode ser uma boa saída, além de prover um manejo melhor das lâminas." "O norte sempre me surpreende, e este escudo não foi uma exceção. Em uma de minhas viagens lá vi ele, muito bonito e resistente, claro que não poderia deixar de trazer um." "Um dos melhores trabalhos dos povos das terras da noite é esse metal, que na escuridão mais gelada aquece o corpo que protege."
Tópico criado em: 05/05/2017 às 14:22 - Última modificação por Revali em 05/05/2017 às 15:55

Estou com um problema no script do MOG de Battle Motion, toda vez  que o personagem (jogador) vai atacar ocorre o erro.

Eu utilizo juntamente com os scripts do MOG os Yanfly, Victor Engine e Galv's, se alguém puder dar uma dica de como resolver fico agradecido.

A linha 1510  do erro está em negrito destacada:
  #--------------------------------------------------------------------------
  # ● Set Bact Angle M
  #--------------------------------------------------------------------------     
  def set_bact_angle_m
      @battler_dir = [self.mirror,@battler.bact_sprite[0]] if @battler.bact_data[0] == 1 
      return if @battler.bact_data[6] and [2,4].include?(@battler.bact_sprite[5])
      if @battler.bact_data[7] >= 0 ; else
         self.angle = @battler.bact_data[0] == 2 ? 350 : 5
         self.mirror = true if @battler.is_a?(Game_Enemy) and MOG_BATTLER_MOTION::BATTLER_MIRROR_DIRECTION
         @battler.bact_sprite[0] = 4 unless [2,8].include?( @battler.bact_sprite[0])
      end
  end
1 Bit Estúdio

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 1: 05/05/2017 às 14:35 - Última modificação por Kyo Panda em 05/05/2017 às 14:37

Tente colocar antes da linha em negrito:

Código: [Selecionar]
return if !@battler.bact_sprite || !@battler.bact_data

HammerStrike

  • Veterano
  • *
  • Posts: 333
  • Ouros: 280
  • "Quando vou terminar?quando estiver pronto!"
  • Equipamentos "Manejar espadas está lhe dando calos nas mãos? Uma bela luva pode ser uma boa saída, além de prover um manejo melhor das lâminas." "O norte sempre me surpreende, e este escudo não foi uma exceção. Em uma de minhas viagens lá vi ele, muito bonito e resistente, claro que não poderia deixar de trazer um." "Um dos melhores trabalhos dos povos das terras da noite é esse metal, que na escuridão mais gelada aquece o corpo que protege."
Resposta 2: 05/05/2017 às 14:47

O Personagem agora atacou, mais na hora de voltar aconteceu outro erro na linha 1473.
#--------------------------------------------------------------------------
  # ● End Bact Move
  #--------------------------------------------------------------------------     
  def end_bact_move(np)   
      self.angle = 0 unless @battler.dead?
      @battler.screen_x = np[0] ; @battler.screen_y = np[1]
      if @battler.motion_damage[1] > 0
         @battler.motion_damage = [0,0] ; update_motion_damage               
      end 
      if @pre_set != nil
         @pre_set[0] = self.x ; @pre_set[1] = self.y
         end_action if @battler.bact_data[0] == 2
         self.angle = 0
      end   
      @move_wait_d = (@battler.bact_data[6] or @battler.bact_data[0] == 2) ? 10 : 1
      @battler.bact_sprite[3] = 0 if $imported[:mog_sprite_actor]
      if @battler.bact_data[0] == 1
         @battler.bact_action[0] = true
      elsif @battler.bact_data[0] == 2
         @battler.bact_action_clear
         self.mirror = @battler_dir[0]
         @battler.bact_sprite[0] = @battler_dir[1]
         @battler_dir = [false,4]
         @battler.bact_sprite_need_refresh = true if @battler.is_a?(Game_Actor)
      end         
  end
1 Bit Estúdio

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 3: 05/05/2017 às 14:50

Troque a linha por:

Código: [Selecionar]
@battler.bact_sprite[0] = @battler_dir[1] if @battler.bact_sprite

HammerStrike

  • Veterano
  • *
  • Posts: 333
  • Ouros: 280
  • "Quando vou terminar?quando estiver pronto!"
  • Equipamentos "Manejar espadas está lhe dando calos nas mãos? Uma bela luva pode ser uma boa saída, além de prover um manejo melhor das lâminas." "O norte sempre me surpreende, e este escudo não foi uma exceção. Em uma de minhas viagens lá vi ele, muito bonito e resistente, claro que não poderia deixar de trazer um." "Um dos melhores trabalhos dos povos das terras da noite é esse metal, que na escuridão mais gelada aquece o corpo que protege."
Resposta 4: 05/05/2017 às 14:58

Agora o erro foi na linha 1475

         @battler.bact_sprite_need_refresh = true if @battler.is_a?(Game_Actor)

O script em questão é esse:
Spoiler
[close]
1 Bit Estúdio

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 5: 05/05/2017 às 15:06

Eu precisaria saber qual a mensagem de erro dada. E o script em spoiler não está completo. :sera:

HammerStrike

  • Veterano
  • *
  • Posts: 333
  • Ouros: 280
  • "Quando vou terminar?quando estiver pronto!"
  • Equipamentos "Manejar espadas está lhe dando calos nas mãos? Uma bela luva pode ser uma boa saída, além de prover um manejo melhor das lâminas." "O norte sempre me surpreende, e este escudo não foi uma exceção. Em uma de minhas viagens lá vi ele, muito bonito e resistente, claro que não poderia deixar de trazer um." "Um dos melhores trabalhos dos povos das terras da noite é esse metal, que na escuridão mais gelada aquece o corpo que protege."
Resposta 6: 05/05/2017 às 15:25

A imagem do erro atual

Outro erro que está acontecendo (depois que mudei a linha de codigo) é que o personagem não anda até o inimigo para bater, ele aparece direto ao lado do monstro. Vou deixar aqui um link com os 3 scripts relacionados, BattleMotion, Battle Camera e Yanfly Visual Battle que é o script de batalha que uso.
Spoiler
[close]
1 Bit Estúdio

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 7: 09/05/2017 às 09:58

Eu tentei acertar os pontos nos scripts, mas não há jeito:  eles sobrescrevem as mesmas funções para realizar coisas diferentes. O jeito é se ater a um autor e ver o que ele tem de scripts de batalha, já que é comum programar de forma que não haja conflitos entre seus próprios códigos.