BRUSHES DESTRUCTIBLES

Con este tutorial podrás añadír a tu mapa brushes destructibles o por lo menos darán la impresión de destruirse. Para este tutorial crearé una pared destructible, pero esta técnica es aplicable a puertas, cristales etc.

PARTE 1 (paredes)
He creado la pared con la apariencia que tendrá antes de ser destruida, luego con el brush seleccionado hego click derecho en la ventana 2D en ¨Script > brushmodel¨.

Luego presiona ¨N¨ para el menú ¨Entity¨ y le asignamos estos valores:

Key: script_exploder
Value: 01 ----------> Sólo para identificarlo, puede ser cualquier número.



Oculto o muevo este brush a algún otro lado.

Luego en el mismo lugar he creado un muro roto, esta es la apariencia que tendrá el muro despues de haber sido destruido.



Selecciono todas la piezas y con click derecho en la venana 2D hago click en ¨script > brushmodel¨.

Presiono ¨N¨ para el menú ¨Entity¨ y le asigno estos valores:

Key: script_exploder
Value: 01

Key: targetname
value: exploder



Ahora vuelvo atraer el muro que he creado en un princípio y creo un brush con la textura ¨trigger¨ que cubre toda el área de los brushes destructibles. hago click derecho en la ventana 2D y selecciono ¨trigger > Damage¨.

Con el brush ¨trigger¨ aun seleccionado presiono ¨N¨ y asigno estos valores:

Key: script_exploder
Value: 01

Ahora observa que en el menú ¨Entity¨ hay varias casillas, estas definen que tipo de daño debe recibír el brush para destruirse a sí que dependiendo lo que hayas creado, puedes activar o desactivar algunas de ellas.



Funciones:

PISTOL_NO ---------> No se destruye con disparios de pistola
RIFLE_NO -----------> No se destruye con disparios de rifles
PROJ_NO ------------> No se destruye con granadas ni proyectíles
EXPLOSION_NO ---> No se destruye con explosiones
SPLASH_NO --------> No se destruye con explosiones cercanas
MELEE_NO----------> No se destruye con ataques cuerpo a cuerpo

Puedes salvar en este punto y compilar para ver el resultado.

PARTE 2 (Efectos adicionales)
Si has seguido la primera parte del tutorial y has logrado crear un muro destructible, entonces añadiremos a este un poco de efectos especiales.

Lo primero es abrir el editor de efectos, esto nos ayudará a visualizar el efecto antes de aplicarlo. Puedes abrirlo a través del Compile tools ¨Launch Effects Editor¨.



Una vez ahí, en ¨Abrir/open¨ buscamos en ¨raw > fx¨, ahí encontraremos las carpetas que contienen los distintos efectos que puedes usar en los mapas.



EN el FX editor podrás ver una animación en tiempo real de los efectos y una vez sepas cual te interesa solo tendrás que anotar el nombre y añadirlo a tu archivo ¨nombredetumapa_fx¨. Para este caso he abierto en ¨breakables > exp_wall_cinderblock_96.fx¨ y he hecho click en ¨play¨.



Ya sabemo que efecto queremos a sí que cerramos el FX editor.

A hora en Radiant cerca del brush destructible has click derecho en la ventana 2D en ¨Script > model¨, se abrirá la ventana del navegador y la ventana de ¨Entities¨, cierra el navegador y veras que quedará sólo pequeño cubo rojo.



A este le asignamos estos valores:

Key Script_exploder
Value 01

Key model
Value fx <--- Convierte el cubo rojo en un ¨FX¨

Key scrip_fxid
Value exp_wall_cinderblock_96 <--- Efecto que usaremos



Ahora haremos que los fragmentos del efecto salten en una dirección. Con click derecho en la ventana 2D buscamos un ¨script > origin¨ y lo colocamos en la dirección que queremos que salten las partículas de la explosión.



Selecciona el ¨FX¨ en rojo y luego el ¨script origin¨ (EL orden es importante) y presiona ¨W¨. Ahora hay una línea que une los dos objetos además de una pequeña flecha que indica la dirección del efecto.



En el archivo ¨mp_nombredetumapa_fx¨, añade la siguiente linea:

level._effect[ " exp_wall_cinderblock_96" ] = loadfx( " breakables/ exp_wall_cinderblock_96" );



Y finalmente al ¨Zone File¨ añadimos:

fx,breakables/exp_wall_cinderblock_96

Listo, Ahora compila para ver los resultados

Nota: Es importante a cada paso revisar que todo esté correctamente escrito para evitar errores.

PARTE 3 (Cristales)
Como en un principio creamos el brush antes y después de romperse.

Para el cristal normal he usado la textura ¨com_glass_clear¨, lo he convertido a ¨script brush model¨ y le he asignado estos valores:

Key: script_exploder
Value: 2 <---- Número diferente al que usamos para el muro



Y para el cristal roto la textura ¨com_glass_shattered_inside¨, seleccionamos todos los fragmentos, los convertimos a ¨script brush model¨ y les asignamos este valor:

Key: script_exploder
Value: 2

Key:targetname
value: exploder



El ¨script model FX¨ tendrá los siguientes valores:

Key: script_exploder
Value: 2

Key Script_fxid
Value car_glass_med <--- Efecto



Hacemos el brush con la textura ¨Trigger¨ que cubra toda el área de los brushes destructibles. hacemos click derecho en la ventana 2D, seleccionamos ¨trigger > Damage¨, presionamos ¨N¨ para el menú de ¨Entities¨, activamos y/o desactivamos las casillas correspondientes y le asignamos estos valores:

Key: script_exploder
Value: 2

Key: taretname
Value: glass_trig <----- Para el sonido A tu archivo ¨mp_nombredelmapa_fx.gsc¨ añade la siguiente linea:

level._effect[ "car_glass_med" ] = loadfx( "props/car_glass_med" );

Al ¨Zone File¨añade la siguiente línea:

fx,props/car_glass_med

SONIDO PARA EL CRISTAL
Como entenderás hay varias formas de añadir sonido, en este caso necesitamos un sonido que se active sólo cuando el cristal se rompe. En la carpeta raw > maps> mp, creamos un archivo de texto de nombre¨_glassfx.gsc¨ y dentro pega este código:

main()
{
thread glass();
}
glass()
{
trig=getent("glass_trig","targetname");
trig waittill( "trigger" );
trig playsound ("glass_break" );

}

O Puedes descargarlo aquí

En el archivo ¨mp_nombredetumapa.gsc¨ añade:

maps\mp\_glassfx.gsc::main();

Y finalmente en tu ¨Zone File¨ añade las siguientes líneas:

rawfile,maps/mp/_glassfx.gsc.gsc
Fx,props/car_glass_med

Compila y verifica los resultados.