Quedada del ChatBox
Conectarse

Recuperar mi contraseña

Estadísticas
Tenemos 2161 miembros registrados.
El último usuario registrado es EdénTheGame.

Nuestros miembros han publicado un total de 37841 mensajes en 4921 argumentos.
Últimos temas
» CONCURSO DE TROFEOS (Nº2)
por EdénTheGame Hoy a las 4:40 pm

» Vehiculos por agua
por heroZX Hoy a las 4:32 pm

» script Titulo animado -Modificacion-
por Felipe_9595 Hoy a las 4:27 pm

» Galeria de Dibujos
por Wecoc Hoy a las 3:32 pm

» D.R.E.A.M.S [RPGXP] [DEMO 2.0!]
por ZeroTwilight Hoy a las 3:05 pm

» Ganar dinero con el maker
por gerrtunk Hoy a las 12:57 pm

» Denme su opinión sobre este sprite
por EdénTheGame Hoy a las 12:37 pm

» Saludos gente
por EdénTheGame Hoy a las 12:27 pm

» Quisiera información ANTES de descargar VX Ace
por orochii Hoy a las 10:29 am

» [RMVX] Behemoth Battle System.
por xpertox2000 Hoy a las 3:57 am

Afiliados
Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Topic de screens
----------------------------------------
Navega con Firefox
[DESCARGA]

[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 8: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

orochii
Aventurero
Aventurero

0/3

Créditos 2764


http://orochii.xtreemhost.cc/

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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