¡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
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Tutorial Interactivo [Uso de interruptores]
por Ledai Hoy a las 16:58

» Necesito Script
por Elian84 Hoy a las 04:44

» Holaaa a tod@s!!!
por chronoMxx Hoy a las 03:41

» [AYUDA]Hootshot de moghunter
por Rudy_kinneas Hoy a las 01:06

» El poder oculto (Segunda entrega)
por alex1633 Ayer a las 23:18

» Hola mucho gusto
por Hk Diamond Ayer a las 13:49

» SoraDeathss se presenta!
por chronoMxx Ayer a las 07:50

» {AYUDA}Blizz-ABS Script
por chronoMxx Ayer a las 06:45

» las cosas como son...
por Bleuw Ayer a las 04:18

» Busco artistas graficos para proyecto serio
por Rudy_kinneas 2016-12-02, 20:52

Afiliados
Estadísticas
Tenemos 3381 miembros registrados.
El último usuario registrado es Hk Diamond.

Nuestros miembros han publicado un total de 79767 mensajes en 11247 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

Wecoc
Administrador
Administrador



Créditos 8263

Gracias : 372

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í??

Ledai
Aventurero
Aventurero

0/3

Créditos 1366

Gracias : 125

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

Wecoc
Administrador
Administrador



Créditos 8263

Gracias : 372

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.

ICF-Soft
Novato
Novato

0/3

Créditos 110

Gracias : 24

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).

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.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.

Wecoc
Administrador
Administrador



Créditos 8263

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Area Support

Mensaje por Contenido patrocinado Hoy a las 20:17


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.