Registrarse

[RPG - Otros] Bug en evento de bloqueo

Estado
Cerrado para nuevas respuestas.

AsInfinity

Usuario de platino
¡Muy buenas a todos!
Hoy vengo con una problema que me topé mientras revisaba mi fan game.
Hice un evento de bloqueo, el cual es el siguiente:



Todo funciona normal. El problema es que luego de realizar el evento, guardo el juego, lo cierro y lo vuelvo a abrir; el resultado es que el evento se ubica en el lugar como si no hubiera retrocedido los pasos respectivos.

Un vídeo de muestra:



No entiendo por qué sucede... Gracias por la ayuda de antemano, y gracias al usuario que me comunicó del error.
 

kurugane

Tan antiguo como las Rocas.
Bueno, hazlo con un interruptor global, que sea activado en algun momento, y que haga que los eventos, en este caso invisibles, cuando los pises hagan que ese tipo te muestre eso, tomate el ejemplo de el Lab del prof oak, en el essentials de base, veras unos recuadros invisibles entre sus libros, y si los abres veras que se activan al pisarlos SI esta activo cierto interruptor, pues aplica la misma ley, una vez pase lo que tenga que pasar, Desactivas ese interruptor. Espero que te sirva xd
 

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
Por lo que he visto pbNoticePlayer llama a Kernel.pbMoveTowardPlayer para el mover el evento, lo que hace que llame también a $PokemonMap.addMovedEvent que actualiza la posición del evento. Diría que no es un bug y que está hecho así por alguna razón.
Puedes duplicar la función y hacer una que no llame a addMovedEvent:

Código:
def pbNoticePlayer[B][U]2[/U][/B](event)
  if !pbFacingEachOther(event,$game_player)
     pbExclaim(event)
  end
  pbTurnTowardEvent($game_player,event)
  Kernel.pbMoveTowardPlayer[B][U]2[/U][/B](event)
end

def Kernel.pbMoveTowardPlayer[B][U]2[/U][/B](event)
  maxsize=[$game_map.width,$game_map.height].max
  return if !pbEventCanReachPlayer?(event,$game_player,maxsize)
  loop do
    x=event.x
    y=event.y
    event.move_toward_player
    break if event.x==x && event.y==y
    while event.moving?
      Graphics.update
      Input.update
      pbUpdateSceneMap
    end
  end
  [B][U]#[/U][/B]$PokemonMap.addMovedEvent(event.id) if $PokemonMap
end
Como siempre he puesto los cambios en los scripts originales en negrita y subrayados, ahora simplemente utiliza pbNoticePlayer2 en donde no te interesa que se guarde la posición.
 
Estado
Cerrado para nuevas respuestas.
Arriba