¡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 3995 miembros registrados.
El último usuario registrado es Vash-W17.

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

[XP] Area Support

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Area Support

Mensaje por Wecoc el 2016-09-25, 14:32

Éste script añade áreas a RPG maker XP similares a las de VX/Ace/MV. Además permite asignar áreas que siempre sean pasables o no pasables (ver script Area Support de la demo).

Para asignar las áreas debéis abrir el juego en modo Debug y pulsar F8. Se activará la opción de ir poniendo las áreas directamente a lo largo del mapa mediante el ratón. Para cambiar el índice del área pulsad Q/W (o AvPag/RePag) y usad las flechas de dirección para scrollear a lo largo del mapa. Los cambios se irán guardando a tiempo real.

No las confundáis con los terrenos, van completamente a parte y los terrenos siguen siendo funcionales.

Créditos: Wecoc (Area Support), Glitchfinder (Key & Mouse Support)

Demo:

Area Support 1.1.zip

Screen:

Spoiler:

Compatibilidad:

No usar con Mostrar terrenos en mapa.

Si en vuestro juego estáis usando otro script de Mouse, podéis quitar el Key y Mouse de Glitchfinder y usar el que ya estéis usando (habrá que adaptar los métodos en el script Setup Mode)

A parte de eso no se encontraron otros problemas de compatibilidad.
No modifica los archivos de guardado.

Llamadas de script:

Para comprobar el área de una coordenada concreta del mapa actual usad:

$game_map.area(X, Y)

Por ejemplo, para obtener el área en la que se encuentra el personaje:

x = $game_player.x
y = $game_player.y
$game_map.area(x, y)

O el área en la que se encuentra el evento de ID: 1

x = $game_map.events[1].x
y = $game_map.events[1].y
$game_map.area(x, y)

Para definir mediante evento el área en una posición concreta del mapa usad:

$game_map.set_area(X, Y, AREA_ID)

Otros:

Aunque solo es un pequeño scriptlet, fue inspirado por el sistema MV Grid-Free Doodads de Yanfly, y se podría ampliar para lograr algo similar en RPG maker XP.
El problema es que hacer eso es mucho trabajo y no puedo yo solo xD Pero si álguien se anima quizá podamos llevarlo a cabo :D


Última edición por Wecoc el 2016-10-01, 16:07, editado 2 veces
avatar
Wecoc
Administrador
Administrador



Créditos 9041

Gracias : 453

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Area Support

Mensaje por Ledai el 2016-09-25, 15:34

No conozco el MV, ¿El uso de las áreas, se parecen al de los terrenos? Se pueden usar condiciones? O algo así??
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 2336

Gracias : 168

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

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Area Support

Mensaje por Wecoc el 2016-09-25, 15:42

La diferencia entre áreas y terrenos es que los terrenos van por id de tile (se asignan en la base de datos) mientras que las áreas van por coordenada en el mapa. A parte de eso son básicamente lo mismo.

La ventaja de que vayan por coordenada es que son como otra capa extra, y puede servir para más control en la pasabilidad y esas cosas.

Mira el apartado Llamadas de Script, en las condiciones y efectos sería similar aunque la versión de una línea:

Ejemplos:

Código:
> Condición: Script: $game_map.area($game_player.x, $game_player.y) == 1
>> # Hacer algo
> Fin

Código:
> Condición: Script: $game_map.area($game_map.events[1].x, $game_map.events[1].y) == 17
>> # Hacer algo
> Fin

Extra:
Se ha implementado un atajo nuevo.

Los ejemplos de antes ahora también se pueden poner así.

Código:
> Condición: Script: $game_player.area == 1
>> # Hacer algo
> Fin

Código:
> Condición: Script: $game_map.events[1].area == 17
>> # Hacer algo
> Fin


Última edición por Wecoc el 2016-09-26, 12:15, editado 1 vez
avatar
Wecoc
Administrador
Administrador



Créditos 9041

Gracias : 453

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Area Support

Mensaje por ICF-Soft el 2016-09-26, 09:19

Se ve bien poder utilizar áreas/regiones en el XP. Una de las cosas que se deberían extrapolar.
avatar
ICF-Soft
Novato
Novato

0/3

Créditos 152

Gracias : 30

http://icfsoft.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Area Support

Mensaje por orochii el 2016-09-27, 00:51

Cada vez que veo cosas como esto (o el RGSS3 en XP), me pregunto porqué entracerebro en lugar del RPG Maker MV (VXAce móvil) no hizo más bien un XP Ace.

Obviamente entiendo que el tilemap de XP es demasiado awsum para el rendimiento (?). Pero... sería perfecto si andara a 60. "orz

(De hecho el XPAce me anda a 60, quiza porque el tilemap de KK20 está muy bien optimizado).
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6357

Gracias : 323

http://ragnarokrproject.com/

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Area Support

Mensaje por Wecoc el 2016-10-01, 16:09

Actualizado a versión 1.1

Funciona todo igual, solo que va un poco más rápido y permite guardar sin salir en caso de que no te gusten los cambios que has hecho. A parte de eso se añadió un atajo para obtener el área en la que se encuentra el jugador o un evento (ver post principal).

_________________________________________________________________________

Añado aquí una utilidad extra para las Areas.

En el script principal puse la opción de hacer areas pasables y no pasables, pero eso afecta a todos los eventos y al personaje por igual. Para hacer restricciones de area para un evento concreto o para el personaje, usad el siguiente script:

Código:
#==============================================================================
# ** Event Area Restrictions
#==============================================================================

class Game_Character
  
  attr_accessor :passable_areas
  attr_accessor :no_passable_areas
  
  alias areas_pass_ini initialize unless $@
  def initialize(*args)
    areas_pass_ini(*args)
    @passable_areas = {}
    @no_passable_areas = {}
    @passable_areas.default = false
    @no_passable_areas.default = false
    if self.is_a?(Game_Player)
      # @passable_areas[3] = true
      # @no_passable_areas[4] = true
    elsif self.is_a?(Game_Event)
      # @passable_areas[5] = true
      # @no_passable_areas[6] = true
    end
  end
  
  def set_passable(area, value=true)
    if value == true
      @passable_areas[area] = true
      @no_passable_areas[area] = false
    else
      @passable_areas[area] = false
    end
    return true
  end
  
  def set_no_passable(area, value=true)
    if value == true
      @no_passable_areas[area] = true
      @passable_areas[area] = false
    else
      @no_passable_areas[area] = false
    end
    return true
  end
  
  def clear_passable(area)
    set_passable(area, false)
  end
  
  def clear_no_passable(area)
    set_no_passable(area, false)
  end
  
  alias areas_pass? passable? unless $@
  def passable?(x, y, d)
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    return false if @no_passable_areas[self.area] == true
    return false if @no_passable_areas[$game_map.area(new_x, new_y)] == true
    return false unless $game_map.valid?(new_x, new_y)
    return true if @passable_areas[$game_map.area(new_x, new_y)] == true
    areas_pass?(x, y, d)
  end
end

Para asignar a un evento o al personaje una área pasable:

$game_map.events[ID de evento].set_passable(ID de area)
$game_player[ID de evento].set_passable(ID de area)


Para asignar a un evento o al personaje una área no pasable:

$game_map.events[ID de evento].set_no_passable(ID de area)
$game_player[ID de evento].set_no_passable(ID de area)


Para quitar un área pasable del evento o personaje:

$game_map.events[ID de evento].clear_passable(ID de area)
$game_player[ID de evento].clear_passable(ID de area)


Para quitar un área no pasable del evento o personaje:

$game_map.events[ID de evento].clear_no_passable(ID de area)
$game_player[ID de evento].clear_no_passable(ID de area)


Para definir áreas pasables/no pasables por defecto al personaje o a todos los eventos, podéis ir al def initialize, al principio del script, y mirar las anotaciones. Os servirán de referencia.
avatar
Wecoc
Administrador
Administrador



Créditos 9041

Gracias : 453

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Area Support

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

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