NGLE Manual

 

Manual del NGLE

Scripts para reemplazar los triggers switch, key y pickup

Por  Leonvdn
Traducido por Pemon

En este tutorial voy a indicar como crear un evento con un switch, key o pickup sin necesidad de usar los triggers. En variedad de ocasiones esto nos puede venir bien.

• Enfocar con una cámara a Lara mientras realiza la acción con un switch, key o pickup

• Tener interruptores uno encima del otro (quizás 2 jump switches con una configuración tipo ascensor)

• Mover un interruptor a otro lugar donde sirva para una nueva situación

• Una manera de activar múltiples triggers especiales

Aunque son muchas las posibilidades voy a mostrar una posible configuración. Lara acciona un interruptor y cae al suelo. Como en el nivel del TR5, el Coliseo (Colosseum) donde Lara debe actuar rápido después de activar el switch.

Lo que necesitas son los objetos switch y el falling block (Ambos se pueden encontrar en  JOBY2.TR4 wad)

PASO 1


• Para empezar construye un cuarto básico, coloca el objeto Falling_block a 4 clicks por encima del suelo y cambia su OCB a 1

• Coloca un trigger Dummy en el sector del suelo justo debajo del falling block.



• Ahora coloca el interruptor en el mismo sector (también a 4 clicks)

• Coloca a Lara donde quieras

• Toma nota del número de cuarto.
(en mi caso es Room 0. A mí me sirve de ayuda usar un archivo de notas para apuntarlo)

PASO 2

• Estando todavía en el editor, abre la ventana del panel de los triggers

• En el campo “type” selecciona CONDITION, en el campo Parameter <&> desplázate hacia abajo y selecciona MultEnvCondition script command in (E)way

• En el campo (E)xtra: desplázate hacia abajo y selecciona In AND way. (All ENV conditions have to be true)

• En el campo: Object to trigger <#> selecciona, MultEnvCondition= 1

• Ahora debería verse así:

Pulsa el botón Export Script Trigger; deberías obtener lo siguiente…

; Exporting: CONDITION(16:62) for PARAMETER(1)
; <#> : MultEnvCondition= 1
; <&> : Multiple condition of <#>MultEnvCondition script command in (E)way
; (E) : In AND way. (All ENV conditions have to be true)
; Values to add in script command: $8000, 1, $10


• No necesitas nada más que: $8000, 1, $10 así que cópialo a tu archivo de notas.

• Coloca una coma al final y pega los mismos datos excepto que el 1 del centro lo cambies por un 2.

• Debe quedar así: $8000, 1, $10, $8000, 2, $10

• Volveremos a esto dentro de un minuto, cierra la ventana de los triggers.

PASO 3

Lo siguiente que necesitas saber es cuál es la animación que Lara usa cuando activa el interruptor, hay varias formas de hacerlo, una es poner en tu script la línea Diagnostic=ENABLED y ver cuál es el número que aparece cuando Lara lo activa. Yo encuentro de bastante ayuda mirar en el tutorial de Fluen’s Lara’s animations
Lara's animations

• De acuerdo con este tutorial el número que buscamos es el 063

• Vuelve de nuevo a la ventana de los triggers, y selecciona en el campo type: CONDITION

• En el campo Timer desplázate hasta la opción: Lara. (Animación) Lara está realizando la <#>animación

Lara. (Animation) Lara is performing <#>animation

• En el campo Object to trigger <#>: selecciona la Animación= 63

• Pulsa el botón Export script trigger y copia el valor del final

• Debe ser así: $8000, 63, $1E cópialo a tu archivo de notas


PASO 4

• De nuevo selecciona tu objeto falling block

• Abre la ventana de los triggers

• En el campo Type selecciona: ACTION y en el del Timer: desplázate hasta:  

Trigger. (Moveable) Activar <#>Objeto con (E) Valor de tiempo

Trigger (Moveable) Activate <#>Object with (E)Timer value

• Si lo has hecho correctamente tu falling block debe aparecer en el campo Object to trigger <#>

• De Nuevo pulsa el botón Export script trigger y copia el código del final a tu archivo de notas, debe ser algo así como $5000, 1107, $2B

• (el número del centro será diferente de acuerdo con el object ID de tu falling_block, así que no te preocupes si es diferente al tuyo)

• Hemos terminado con respecto al NGLE puedes compilar tu nivel (aún no es necesario jugarlo)


PASO 5

• Abre tu NG Center y en el nivel que vayas a usar introduce las siguientes líneas en el script...

;--------------------------------------
;FALLING BLOCK SET UP (CONFIGURACION DEL FALLING BLOCK)

;LARA IS IN ROOM... (LARA ESTA EN EL CUARTO…)
MultEnvCondition=1,

;LARA AT THE END OF HER ANIMATION (LARA AL FINAL DE SU ANIMACION)
MultEnvCondition=2,

;CONDITIONS FOR GLOBAL TRIGGER (CONDICION PARA EL GLOBAL TRIGGER)
Triggergroup=1,

;TRIGGERED BY GLOBAL TRIGGER (ACTIVADO POR EL GLOBAL TRIGGER)
TriggerGroup=2,

GlobalTrigger=1,
;--------------------------------------


• Vamos a ver todo esto uno por uno

• Después de MultEnvCondition=1, introduce ENV_ROOM_IS, 0, IGNORE , reemplaza el 0 con el número del cuarto que pusiste anteriormente.

• Esta línea le dice al juego que tiene que comprobar si Lara está en el cuarto que acabamos de crear.

• Después de MultEnvCondition=2, introduce ENV_ANIM_COMPLETE, IGNORE, IGNORE, esto hace activar los triggers configurados en la última frame de la animación.

• Después de Triggergroup=1, introduce todos los códigos que tomastes para los pasos  2 y 3 separados por comas, debe verse algo así...
Triggergroup=1, $8000, 1, $10, $8000, 2, $10, $8000, 63, $1E

• Después de Triggergroup=2, introduce el código del paso 4 que debe quedar algo así...
Triggergroup=2, $5000, 1107, $2B

• Después de GlobalTrigger=1, introduce IGNORE, GT_CONDITION_GROUP, IGNORE, 1, 2, IGNORE

• El GT_CONDITION GROUP le dice al juego que compruebe si todos las condiciones del triggergroup 1 son verdaderos.

• El 1, 2 apunta a los ID’s del triggergroup, de forma que el juego se pregunta si todas las condiciones del triggergroup 1 son verdaderas y de serlo, activará el triggergroup 2.

• Ahora debe verse algo parecido a lo de abajo

;--------------------------------------
;FALLING BLOCK SET UP (CONFIGURACION DEL FALLING BLOCK)

;LARA IS IN ROOM...
(LARA ESTA EN EL CUARTO…)
MultEnvCondition=1, ENV_ROOM_IS, 0, IGNORE

;LARA AT THE END OF HER ANIMATION (LARA AL FINAL DE SU ANIMACION)
MultEnvCondition=2, ENV_ANIM_COMPLETE, IGNORE, IGNORE

;CONDITIONS FOR GLOBAL TRIGGER (CONDICION PARA EL GLOBAL TRIGGER)
Triggergroup=1, $8000, 1, $10, $8000, 2, $10, $8000, 63, $1E

;TRIGGERED BY GLOBAL TRIGGER (ACTIVADO POR EL GLOBAL TRIGGER)
TriggerGroup=2, $5000, 1107, $2B

GlobalTrigger=1, IGNORE, GT_CONDITION_GROUP, IGNORE, 1, 2, IGNORE
;--------------------------------------


Ahora, si todo a ido bien ya puedes compilar tu script y probarlo en el juego. Activa el interruptor y Lara caerá del falling block :D


NOTAS

Esta es solo una de muchas posibles configuraciones; puedes exportar cualquiera de los triggers ACTION y FLIPEFFECT que quieras y ponerlas en tu triggergroup 2, cualquier trigger que normalmente pondrías bajo el trigger del switch las puedes encontrar aquí y exportarla, recuerda ponerlas todas en una sola línea en tu script y separadas por comas. El límite es interminable.

Cualquier cosa después del signo; es ignorado en el juego, así que las líneas que he empleado en mi script tales como (;TRIGGERED BY GLOBAL TRIGGER) pueden ser eliminadas o renombradas de la manera que quieras, solo me sirven como información para ayudarme a seguir la pista y comprender lo que estoy haciendo.

El único inconveniente, es que si existen en el mismo cuarto otros interruptores con el  mismo slot, también activan el mismo globaltrigger, para evitarlo existen varios trucos,
• Coloca la configuración en un cuarto pequeño fuera de otros interruptores
• Usar diferentes tipos de interruptores (que usen otros números de animación)
• Con la última versión del NGLE puedes colocar la animación que Lara usa, de manera que puedes copiar la animación del interruptor en un slot vacío en Wadmerger y usar esa.

Esta clase de configuración también funciona con puzzles y objetos a recoger pero las opciones son algo más limitadas ya que los objetos puzzle_hole normalmente usan la misma animación, así que solo uno por cuarto es lo recomendable. Con la animaciones de recogida de objetos, tienes alguna selección dependiendo del OCB del objeto.

Interruptores como el que yo he usado no pueden ser desactivados sin un trigger estándar del interruptor y por ello no puede ser usado más de una vez. Es muy probable que puedas resolverlo usando los nuevos OCB’s de los interruptores o usando un trigger Action en el juego para forzar que el interruptor vuelva a su posición original.

Para mover un interruptor y darle una nueva finalidad puedes usar un trigger ACTION para moverlo a otro cuarto donde Lara activará un GLOBALTRIGGER diferente.

Espero que este tutorial sirva para alguien :D, Me doy cuenta que quizás sea algo tedioso, lo fue para mí pero con algo de práctica es un trabajo de 2 minutos, como muchas otras cosas, actualmente con el NGLE es más fácil de lo que parece.

Unos cuantos tutoriales que pueden tener relevancia para la configuración de este tutorial.


Flipeffects
Basic script editing
NGLE global triggers
NGLE multiple condition triggers
Script and triggergroup commands
NGLE moving objects

Back to Top