Mundo Maker
¡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 4064 miembros registrados.
El último usuario registrado es cesarseb233.

Nuestros miembros han publicado un total de 84116 mensajes en 11982 argumentos.

[RMXP] Encounter Zones ;D (para nosotros que no nos funca el script)

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP] Encounter Zones ;D (para nosotros que no nos funca el script)

Mensaje por orochii el Vie Nov 27, 2009 2:24 am

Weeenas. Ahi voy con otro tutorial de engine. Ésta vez pues como dice el texto de ahi arribita, ese que dice "[RMXP] blablabla", les traigo cómo hacer las inches zonas, o al menos como lo voy haciendo con mi Dawn of Dragon xDD (parte de la idea ya la habìa hecho en el AupstyBAS como add-on (el sistema de combate semiactivo de vista desde arriba o algo así, donde usabas al tipejo ese de Slayers).
Pero bueno vamos a los lápices y borradores que necesitarás, osea el material que debes tener presente en tu cabeza.
(No se claven lápices en la cabeza porque eso no ayuda, empeora las cosas).
-Manejo de variables, interruptores y los cyfs (condiciones-efectos).
-Alguna experiencia media con los engines (no es nada user friendly éste engine :S).
-Una taza de cafè porque va para largo.

¡PRIMERO! HAGAMOS UNA ZONA
'Amos a hacer primero... una zona como dice el título... ajem...
Primero hay que considerar que al menos en éste engine no haré uso de los encuentros de mapa default del Maker, ojalá los genios del Enterbrain hubieran hecho comando para cambiar encuentros pero bueeh... como siempre las cosas del 2k3 se les pasan perdiendo. Para iniciar un encuentro enemigo necesitamos dos cosas: saber cuándo el jugador ha dado un paso y llevar alguna forma de cálculo para los pasos (puede ser porcentaje de posibilidad al moverse o número de pasos <aleatorio o "fixed">).
Vamos por lo primero, hacemos ésto:
Código:

<>Operaciones de variable [oldX] = PersonajeX
<>Operaciones de variable [oldY] = PersonajeY
<>Comenzar ciclo
  <>Esperar 1 frame {éste RMXP y sus crashes raros, ojalá alguien lo pruebe sin él porque a mi no me funciona si està ausente xDD procesos paralelos odiosos :S}
  <>Operaciones de variable [tmpX] = PersonajeX
  <>Operaciones de variable [tmpY] = PersonajeY
  <>Condiciones y efectos: Var.[tmpX] diferente <!=> Var.[oldX]
    <>Operaciones de interruptor[move] ON
    <>
  :Excepción
    <>Condiciones y efectos: Var.[tmpY] diferente <!=> Var.[oldY]
      <>Operaciones de interruptor[move] ON
      <>
    :Fin
    <>
  :Fin
  <>Condiciones y efectos: Interruptor [move] ON
    <>Operaciones de variable [oldX] = PersonajeX
    <>Operaciones de variable [oldY] = PersonajeY
    <>Comentario: Aquí irá el código activado cuando el personaje se mueva (sin necesidad de recibir una tecla
                        :  u otra u otra, simplemente si el jugador cambia de posición en el mapa. Incluso si salta.
    <>Operaciones de interruptor[move] OFF
    <>
  :Fin
  <>
:Fin de ciclo
Con eso recibimos el movimiento del jugador. Para poder encender y apagar la zona podemos añadir un interruptor al evento (como para si es una escena y el sprite se mueve, no querremos que... pase algo mal).
La segunda parte es más simple, con agregar en ligar del comentario algo como ésto para pasos:
Código:

<>Operacion de variable [pasos] + 1
<>Operacion de variable [pasos_necesarios] = Aleatorio [24...26] {podemos reciclar tmpX aquí}
<>Condiciones y efectos Var.[pasos] == Var.[pasos_necesarios]
  <>Operacion de variable [pasos_necesarios] = Aleatorio [0...2] {reciclando de nuevo...}
  <>Condiciones y efectos: Var.[pasos_necesarios] = 0
    <>Combatir: Chango*666
    <>
  :Excepción
    <>Combatir: Momonga*2, Chango
    <>
  :Fin
  <>Operacion de variable [pasos] = 0
  <>
:Fin
<>
O también (si simplemente tiramos un número y lo comparamos con algunos parámetros):
Código:

<>Operaciones de variable [tmpX] = Aleatorio [0...255] {reciclando de nuevo, usé 255 como ejemplo, siempre me ha gustado el 2^8, como para paleta de colores}
<>Condiciones y efectos: Var[tmpX] <= 22
  <>Combatir: Momonga*4
:Fin
Con eso tenemos lista la zona, fácil ¿no? Para agregar/quitar grupos de enemigos creo que se nota que es sencillo, simplemente agregamos un condiciones y efectos en esos apartados y ponemos un valor deseado (alguno para comparar con el aleatorio ese)
Ejemplo para el 1:
Código:

  <>Condiciones y efectos: Var.[pasos_necesarios] = 0 {o la variable que hayas usado}
    <>Combatir: Chango*666
    <>
  :Excepción
    <>Condiciones y efectos: Var.[pasos_necesarios] = 1 {o la variable que hayas usado}
      <>Combatir: Momonga*2, Chango
      <>
    :Excepción
      <>Combatir: T.Rex*8
      <> 
    <>
  :Fin
Ejemplo para el 2:
Código:

<>Condiciones y efectos: Var[tmpX] <= 22
  <>Combatir: Momonga*4
:Excepción
  <>Condiciones y efectos: Var[tmpX] <= 15
    <>Combatir: Momonga*2
  :Fin
:Fin
Hasta ahì hicimos las zonas uff... que sueño. Lo demás es simple. Revisamos las coordenadas del pesonaje y creamos un rango de la siguiente forma, en otro evento (que manejará cual zona debe estar activa):
Código:

<>Operaciones de variable [oldX] = PersonajeX
<>Operaciones de variable [oldY] = PersonajeY
<>Operaciones de variable [zona] = 0
<>Condiciones y efectos: Var.[oldX] <= 22 {mientras estemos en X mayores a 22}
  <>Condiciones y efectos: Var.[oldX] >= 30 {pero menores a 30}
    <>Condiciones y efectos: Var.[oldY] <= 2 {Y mayores a 2}
      <>Condiciones y efectos: Var.[oldY] >= 23 {y menores a 23}
        <>Operaciones de variable [zona] = 1
        <>
      :Fin
    :Fin
  :Fin
:Fin
<>Esperar 1 frame
¡Eso es todo! facil ¿no?

¡¡¡TAREA!!!
-Pues... hay una sección del código que debe ser optimizado para usarse correctamente con el manejador de zonas. Esa es la pràctica del engine ;) (bueno fue que se me olvidó, pero en parte también porque así se podría usar esa parte del engine como encuentros personalizados, como el engine nació en el RM2k3 para mi SBP).

Saludos, espero que no se me haya quedado nada, suerte,
Orochii Zouveleki
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6359

Gracias : 325

http://ragnarokrproject.com/

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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