En el post del día anterior pudimos ver cómo crear un Emancipation Grid de una forma sencilla, el cual nos reseteaba los portales y destruía los objetos que llevásemos si pasábamos por él, pero hay veces en los que éste elemento forma parte del puzzle y debemos poder activarlo o desactivarlo. En éste tutorial vamos a ver cómo crear un Emancipation Grid dinámico.
Emancipation Grid dinámico.
Para poder crear un Emancipation Grid dinámico hay que seguir los siguientes pasos:
- Creamos dos entidades y e asignamos la clase prop_dynamic.
- Modificamos los atributos para que quede de la siguiente forma:
World Model: models/props/fizzler_dynamic.mdl
Name: fizzlers
HoldAnimation: true
Collision: Not Solid
- Situamos las entidades pegadas a la pared y de tal forma que estén una frente a la otra.
- Creamos un muro que vaya de una entidad a otra y lo transformamos con Control+T en una entidad de la clase trigger_portal_cleanser.
- En sus propiedades ponemos:
Name: fizzler_brush
Visible: yes
- En la pestaña Flags marcamos las siguientes casillas:
Clients
NPCs
Physics Objects
- Creamos una entidad de la clase logic_relay y en la propiedad Name le asignamos el valor "relay_fizzler_enable".
- Abrimos sus atributos y en la pestaña Outputs pulsamos "Add...":
My Output Named: OnTrigger
Target Entity Named: fizzler_brush
Via this Output: Enable
My Output Named: OnTrigger
Target Entity Named: fizzlers
Via this Output: SetAnimation
Parameter: open
- Creamos una nueva entidad logic_relay y en el atributo Name le asignamos el valor "relay_fizzler_disable".
- Abrimos sus atributos y en la pestaña Outputs pulsamos "Add...":
My Output Named: OnTrigger
Target Entity Named: fizzler_brush
Via this Output: Disable
My Output Named: OnTrigger
Target Entity Named: fizzlers
Via this Output: SetAnimation
Parameter: close
Con esto tenemos creada el Emancipation Grid dinámico perfectamente, ahora vamos a crear un botón de suelo que lo active o desactive.
- Creamos una entidad de la clase prop_floor_button
- Abrimos sus propiedades y en la pestaña Outputs pulsamos "Add...":
My Output Named: OnPressed
Target Entity Named: relay_fizzler_disable
Via this Output: Trigger
My Output Named: OnUnPressed
Target Entity Named: relay_fizzler_enable
Via this Output: Trigger
Pulsa F9 para testear el mapa, prueba a ponerte encima del botón.
¿Qué clase de mapas para Portal 2 se te ocurren que usen un Emancipation Grid dinámico?