FX / FUEGO & HUMO

Lo primero que debes hacer es en Radiant, determinar en que lugar vas a aplicar el efécto, un vehículo, un crater o algún edifício.

Para este ejemplo he usado un Tanque que he llamado con Click derecho en la ventana 2d> Misc> Model en la carpeta raw> xmodel.


Como en todos los programas de 3D el Radiant también usa coordenadas X,Y,Z. parece complicado pero es tan simple como que ¨x,y¨ son horizontal y vertical mientras que ¨z¨ es la altura.

Cambia la ventana 2D a vista ¨desde arriba¨ presionando control+tab y coloca el ratón en el centro del objeto o lugar donde se producirá el efécto. en la parte inferíor de la ventana están dos de las coordenadas que necesitas (X,Y) anota estos números en algún lugar.


Ahora cambia a vista laterál y colóca el ratón a la altura que crees adecuada para el efécto según el objeto, yo he elegido el espacio entre el cerpo del blindado y la torre.

Ahora toma nota de la cifra de ¨Z¨.

Hemos terminado con e Radiant, cierra y ahora en el archivo mp_nombredetumapa.gsc que creaste en raw> maps > mp, añade este par de lineas:


sabiendo que debes cambiar ¨mp_multiplayer_test1_fx¨ por ¨mp_nombredetumapa_fx¨

maps\mp\mp_nombredetumapa_fx::main();
maps\createfx\mp_nombredetumapa_fx::main();

En la misma carpeta donde está el archivo mp_nombredetumapa.gsc crea otro archivo de texto con el mismo nombre pero añadiendo ¨_fx¨ al final.

mp_nombredetumapa_fx.gsc


arbrelo y añade este texto:

main()
{
level._effect[ "fire" ] = loadfx("fire/tank_fire_turret_abrams");
level._effect[ "smoke" ] = loadfx("smoke/thin_black_smoke_M");

/#
if ( getdvar( "clientSideEffects" ) != "1" )
maps\createfx\mp_smoketest_fx::main();
#/

}


Este archivo es para cargar el efécto.
Nota que a la izquierda he destacado el nombre asignado al efécto y a la derecha la carpeta y el nombre real del efécto.

Ahora dentro de la carpeta raw> maps crea otra carpeta llamada createfx y dentro coloca una copia de tu archivo ¨mp_nombredemimapa_fx¨, abrelo, borra todo el texto y añade estos datos en su lugar:

main()
{

ent = maps\mp\_utility::createOneshotEffect( "fire/tank_fire_turret_abrams");
ent.v[ "origin" ] = ( 120, -576, 112 );
ent.v[ "angles" ] = ( 270, 0, 0 );
ent.v[ "fxid" ] = "fire";
ent.v[ "delay" ] = -3;

ent = maps\mp\_utility::createOneshotEffect( "smoke/thin_black_smoke_M");
ent.v[ "origin" ] = ( 192, -576, 80 );
ent.v[ "angles" ] = ( 270, 0, 0 );
ent.v[ "fxid" ] = "smoke";
ent.v[ "delay" ] = -3;

}

Este archivo es para indicar donde exactamente debe estar situado el efécto.
Ahora reeplaza los números que he destacado en amarillo por los numeros que tienes anotados inicialmente (X,Y,Z).


Ahora busca en la carpeta ¨zone_source¨ tu archivo ¨mp_nombredetumapa.csv¨ abrelo con algun editor de texto y añade las siguientes lineas:

rawfile maps/mp/mp_nombredetumapa_fx.gsc
rawfile maps/createfx/mp_nombredetumapa_fx.gsc
fx,fire/tank_fire_turret_abrams
fx,smoke/thin_black_smoke_M



Salva y cierra.

Finalmente haz tus pasos de compilación, Compile BSP, Compile Reflections, build Fast File, Run Selected map.

Es posible que cuando intentes cargar a el mapa via ¨run selected map¨ te dé un error, si sucede, cierra la ventana, haz click en ¨Update zone file¨ y añade en la columna de la derecha las mismas lineas que añadiste en el archivo .csv:

rawfile maps/mp/mp_nombredetumapa_fx.gsc
rawfile maps/createfx/mp_nombredetumapa_fx.gsc
fx,fire/tank_fire_turret_abrams
fx,smoke/thin_black_smoke_M

click ¨save¨ y crea tu Fast File de nuevo, carga tu mapa y
Cuando te libres de los errorers, podrás ver el resultado


En la carpeta raw > FX están todo los eféctos que puedes usar, solo tienes que copiar el nombre y añadir lineas adicionales a los archivos ¨_fx¨ que haz creado en raw> maps> mp, añadir la posición en el archivo ¨_fx¨ de la carpeta ¨createfx¨ y actualizar el ¨Zone File¨. para un ejemplo más claro abre el archivo ¨mp_blacklot_fx¨ verás como tiene varias lineas para ¨llamár¨ distintos eféctos.