¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3396 miembros registrados.
El último usuario registrado es Discorded.

Nuestros miembros han publicado un total de 79807 mensajes en 11256 argumentos.
Navega con Google Chrome
[DESCARGA]

Pequeño error de prioridad??

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Pequeño error de prioridad??

Mensaje por Ledai el 2015-02-10, 17:08

Bueno, pues estoy usando este edit, que hizo orochi, para añadir las ocho direcciones a mi personaje, pero en sí tiene un pequeño error de prioridad a la hora de pasar diagonalmente de detrás a adelante de algún tile que lo tapa, pues parece que el jugador se "salte" las paredes o lo que sea:

orochii escribió:Mmmm... sino puedes modificar el script default y agregar las líneas necesarias, es sencillo y en buena teoría no debería dar problemas.

Busca ésta parte:
Código:
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      # Move player in the direction the directional button is being pressed
      case Input.dir4
      when 2
        move_down
      when 4
        move_left
      when 6
        move_right
      when 8
        move_up
      end
    end
Como verás, esa parte es un "case" que sólo incluye 4 direcciones. ¡Anda, vamos a agregarle las otras 4! (?).
Código:
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      # Move player in the direction the directional button is being pressed
      case Input.dir8
      when 1 # Abajo-izquierda
        move_lower_left
      when 2 # Abajo
        move_down
      when 3 # Abajo-derecha
        move_lower_right
      when 4 # Izquierda
        move_left
      when 6 # Derecha
        move_right
      when 7 # Arriba-izquierda
        move_upper_left
      when 8 # Arriba
        move_up
      when 9 # Arriba-derecha
        move_upper_right
      end
    end

Y ya. ¡Conste! Eso sí, que éste código sólo agrega el movimiento, no agrega gráficos en 8 direcciones. Para eso hay que modificar otras partes. Pero en fin, no sé si quieres hacerle el doble de gráficos a tus personajes. Y es más complicado de hacer :V.

Salut!

El problema está al andar diagonalmente tras algún tiles con prioridad superior de 0, que al cruzarlo, la prioridad del personaje pega un salto, y parece que se salte las cosas por un momento... (si no se me entiende subiré un pequeño vídeo de lo que digo)

No es un error peligroso, es meramente gráfico, pero supongo que tiene un sencillo arreglo, así que os lo comento, por si alguien sabe cómo arreglarlo...

Chao...

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por MarstonMuere el 2015-02-11, 21:33

Lo mas probable es que sea un error de tipo gráfico, ya que por lo que comentas con las otras 4 poses no te ocurre. ¿Has probado a bajar un poco los pixeles de las poses diagonales? Intenta poner una imagen del error, a ver si vemos la solcuión xD

MarstonMuere
Iniciado
Iniciado

0/3

Créditos 25

Gracias : 5

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por Ledai el 2015-02-11, 21:59

En realidad no hay gráfico de las poses diagonales, tan solo el efecto de movimiento y sí, el error es gráfico.
Para ver el error sería necesario un vídeo o probarlo directamente...
Pero bueno, es sencillo, con el edit puesto arriba añadido a un proyecto, solo hay que pasar diagonalmente tras un tile con prioridad al de al lado...

Tal que hasí: siendo X el personaje y H el objeto con prioridad...
Pasas en diagonal de un punto a otro y gráficamente sobrepasa al gráfico del objeto H

OOOXOOO
OOOHOOO

OOOOOOO
OOOHXOO

Es que ahora mismo no puedo hacer el vídeo...

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por MarstonMuere el 2015-02-11, 22:31

Lo he probado y si, parece que el error es de prioridad dentro del Game_Map o el Game_Character. A ver si por ahí puedes encontrar alguna solución...Si consigo algo ya te lo digo! Un saludo!

MarstonMuere
Iniciado
Iniciado

0/3

Créditos 25

Gracias : 5

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por Metalero el 2015-02-12, 00:22

A ver, proba con esto:

Código:

#==============================================================================
# ** Game_Character (part 1)
#------------------------------------------------------------------------------
#  This class deals with characters. It's used as a superclass for the
#  Game_Player and Game_Event classes.
#==============================================================================

class Game_Character
  #--------------------------------------------------------------------------
  # * Get Screen Z-Coordinates
  #    height : character height
  #--------------------------------------------------------------------------
  def screen_z(height = 0)
    # If display flag on closest surface is ON
    if @always_on_top
      # 999, unconditional
      return 999
    end
    # Get screen coordinates from real coordinates and map display position
    z = (@real_y - $game_map.display_y) / 4 + 1#+ 32
    # If tile
    if @tile_id > 0
      # Add tile priority * 32
      return z + $game_map.priorities[@tile_id] * 32
    # If character
    else
      # If height exceeds 32, then add 31
      return z + ((height > 32) ? 31 : 0)
    end
  end
end

Arriba de main.
Al problema que describis lo arregla, pero habria que ver si no se rompe otra cosa.

_________________

Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por Ledai el 2015-02-12, 12:12

Pues la verdad es que arregla la mitad del problema XDD

Y es verdad porque ahora, medio chara no hace lo que hacía: es decir, la parte superior del chara queda bien, pero los pies del chara son lo que mantienen el mismo error anterior... XDD

En general se nota menos, pero queda más raro ver saltar unos pies de la nada XDDD

PD: Y no he notado que rompa nada más... estaré pendiente.

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por Metalero el 2015-02-12, 15:06

Estas usando un chara normal, o un chara grande?

Necesitaria que tomes algunos screenshots, o un video donde se vea el problema, ya que con lo que probé yo, no vi nada de lo que comentas.

_________________

Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por Ledai el 2015-02-12, 16:16

Mira, yo uso un chara estándar (ejemplo Alexis) y de objeto uso cualquiera más alto que él, (ejemplo una columna de las del rtp):



Según se mira es un detalle mínimo, pero si tiene arreglo, me gustaría dárselo. Muchas gracias por vuestra paciencia ^_^

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por orochii el 2015-02-15, 18:15

Prueba poniéndole a esas partes donde se corta el chara una prioridad de *1 en lugar de cero. Y si es necesario puedes usar de 2 en adelante para las secciones más altas. Eso sí, habrán problemas con charas grandes, porque podrían quedar cortados junto a la pared.

La otra solución es no dejar que se traspasen esos tiles así, lo que implica hacer algunos cambios al movimiento en diagonal (agregar algunos "if passable?" por ahí y allá). Y eso también arregla una cierta cosilla que entorpece un poco el movimiento en diagonal :VV (digamos que te quieres mover hacia arriba-derecha, y está obstruído hacia arriba, pero tienes espacio hacia la derecha, el chara se detiene como si la pared tuviera pegamento xD, en lugar de simplemente moverse "fluidamente" (?) hacia la derecha --no sé, es algo que a mí me molesta xD).

Emmm salut!

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por Ledai el 2015-02-15, 20:06

Ya que es un Edit tullo, podrías hacer el arreglo que mencionas??
Yo también he notado eso de las paredes con pegamento XDD y sí, es "molestillo" crees que sería factible corregir las dos cosas de un tiro?

Metalero: Resulta que sí se cargaba otra cosa... pues ahora tapan al chara otros tiles que no deberían XDD

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por orochii el 2015-02-16, 13:05

Mira, prueba este arreglo y ve si te gusta (y si te sirve xD...), hace eso que dije. Arregla lo de que no traspase las paredes, y no te pega a la pared con pegamento (?) xD. Es código que saqué de mi Dreki, así que dime si no te da errores (en Dreki funciona pero diay, no sé si me olvidé algún otro código en otro lugar para otra cosa .-.), CREO que no debería darlos pero... ya know, cuando uno hace tantos edits sobre lo default es difícil saber qué sirve a los demás :'D.

Código:
=begin
Diagonal movement fix - Orochii Zouveleki
=========================================
Cambia algunas cosas en el funcionamiento del movimiento diagonal. Pensado
para usarse junto con movimiento en 8 direcciones, lo cual es otro "fix"
rápido aparte.
La mejor forma de saber qué hace es tener movimiento diagonal, moverse contra
paredes, y observar xDD.

Úsese bajo CC0:
- No son necesarios créditos
- Puede usarse en comercial y no comercial.
- ¡Ni siquiera tienen que acordarse de mí! (?).
=end

class Game_Character
  #--------------------------------------------------------------------------
  # * Move Lower Left
  #--------------------------------------------------------------------------
  def move_lower_left(direct=false)
    # If no direction fix
    unless @direction_fix
      # Face down is facing right or up
      @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)
    end
    if direct
      turn_left
    end
    # When a down to left or a left to down course is passable
    if passable?(@x, @y, 2) or passable?(@x, @y, 4) or direct
      if (passable?(@x - 1, @y, 2) and passable?(@x, @y + 1, 4)) or direct
        return unless passable?(@x-1,@y+1,0)
        # Update coordinates
        @x -= 1
        @y += 1
        # Increase steps
        increase_steps
        @move_start = true
      else
        move_left if passable?(@x, @y, 4)
        move_down if passable?(@x, @y, 2)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move Lower Right
  #--------------------------------------------------------------------------
  def move_lower_right(direct=false)
    # If no direction fix
    unless @direction_fix
      # Face right if facing left, and face down if facing up
      @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
    end
    if direct
      turn_right
    end
    # When a down to right or a right to down course is passable
    if passable?(@x, @y, 2) or passable?(@x, @y, 6) or direct
      if (passable?(@x, @y + 1, 6) and passable?(@x + 1, @y, 2)) or direct
        return unless passable?(@x+1,@y+1,0)
        # Update coordinates
        @x += 1
        @y += 1
        # Increase steps
        increase_steps
        @move_start = true
      else
        move_right if passable?(@x, @y, 6)
        move_down if passable?(@x, @y, 2)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move Upper Left
  #--------------------------------------------------------------------------
  def move_upper_left(direct=false)
    # If no direction fix
    unless @direction_fix
      # Face left if facing right, and face up if facing down
      @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
    end
    if direct
      turn_left
    end
    # When an up to left or a left to up course is passable
    if passable?(@x, @y, 8) or passable?(@x, @y, 4) or direct
      if (passable?(@x, @y - 1, 4) and passable?(@x - 1, @y, 8)) or direct
        return unless passable?(@x-1,@y-1,0)
        # Update coordinates
        @x -= 1
        @y -= 1
        # Increase steps
        increase_steps
        @move_start = true
      else
        move_left if passable?(@x, @y, 4)
        move_up if passable?(@x, @y, 8)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move Upper Right
  #--------------------------------------------------------------------------
  def move_upper_right(direct=false)
    # If no direction fix
    unless @direction_fix
      # Face right if facing left, and face up if facing down
      @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
    end
    if direct
      turn_right
    end
    # When an up to right or a right to up course is passable
    if passable?(@x, @y, 8) or passable?(@x, @y, 6) or direct
      if (passable?(@x, @y - 1, 6) and passable?(@x + 1, @y, 8)) or direct
        return unless passable?(@x+1,@y-1,0)
        # Update coordinates
        @x += 1
        @y -= 1
        # Increase steps
        increase_steps
        @move_start = true
      else
        move_right if passable?(@x, @y, 6)
        move_up if passable?(@x, @y, 8)
      end
    end
  end
end

Salut!

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por Ledai el 2015-02-18, 18:04

Mira, ya lo probé y no, no da error, soluciona lo del "pegamento" pero no he visto que arregle lo del paso de las paredes... no sé si es cosa mía o se te pasó XDD

De todos modos gracias, me viene muy bien para el paso pegamento (?)

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Pequeño error de prioridad??

Mensaje por Contenido patrocinado Hoy a las 05:01


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

Permisos de este foro:
No puedes responder a temas en este foro.