Bienvenidos al Clan [SS] Shinigami-strike... Mas que una comunidad, Una Familia!!!
   
 
  Guia completa para hacer mapas con valve hammer editor
Acá les alcanzo este mui buen tuto p/hacer mapas en el Counter-Strike




Bueno Primero descargamos el programa Valve Hammer Editor v3.5
A continuación paso a Explicar...

INTRODUCCIÓN:

El Valve Hammer Editor era antes conocido con el nombre de Worldcraft. Este es el editor original desarrollado por Valve (empresa creadora del Half-Life). Este editor se caracteriza por ser muy práctico, fácil e intuitivo para aprender. Más adelante en el tutorial te vamos a enseñar paso a paso como utilizar todas las herramientas, técnicas, efectos, etc., que brinda el engine de Half-Life (de ahora en adelante HL).
Si recién te inicias en esto del mapping para HL te recomendamos que tengas en mente algunos puntos importantes. Para empezar te recomendamos que te bajes la última versión del editor. La versión de 2.1 del Worldcraft que viene en el CD de HL sirve perfectamente, pero tiene bugs que fueron arreglados y probablemente te ahorres problemas a la hora de mappear.
Otra cosa importante que cabe destacar es la limitación del engine en cuestión. El HL tiene un motor gráfico (engine) muy limitado, así que las ideas para tus mapas las tenés que hacer pensando en el engine en si y no en el lugar que querés mappear.
Para que se entienda mejor: No pienses en mapas extremadamente detallados.


1) CONFIGURACIÓN Y PUESTA A PUNTO:

La configuración del VHE no es algo difícil, pero tampoco es algo muy entretenido. Solo toma unos minutos y sin esto no podemos empezar a mappear.

Vamos a empezar; una vez instalado el programa lo corremos y nos encontramos con esta 1ra ventana:



En este mensaje aparece la primera vez que ejecutamos el VHE y nos informa que el mismo no posee configuración alguna y nos ofrece una ayuda incluida en el programa.

A esta ventana vamos a decirle que no queremos ayuda ya que nosotros estamos para ayudarte.

Lo próximo que vemos es esta ventana con varias solapas:



En la solapa General vemos varias configuraciones, algunas son muy comunes. Nosotros vamos a enfocarnos en la opción Undo Levels. Esto indica la cantidad de veces que se pueden Deshacer las cosas que hayamos hecho en el mapa. Si tenés una buena PC, con bastante memoria te recomendamos que dejes ese valor en 50, por otro lado, si tenés una PC un poco vieja te recomendamos que pongas como valor 10 o 5.

El resto de las opciones las dejamos como están.

Ahora nos dirigimos a la solapa Game Configurations, allí veremos esta ventana:



Esta es una de las partes más importantes. Lo primero que vamos a hacer es crear un set de configuración para la modificación del HL que vamos a usar. Para ello hacemos clic en el botón Edit y veremos lo siguiente:



Luego hacemos clic en Add para agregar la configuración. Nos va a aparecer una ventana en donde nos pide el Game's Name (Nombre del juego), ahí escribimos HL. Este nombre es relativo, es solo para nosotros y no afecta en nada la configuración del juego. Pero podríamos usarlo cómodamente para distinguir las distintos modificaciones (de ahora en adelante mods) del HL, por ejemplo, si estuviésemos configurando el Counter-Strike utilizaríamos ese nombre para identificar el set de configuraciones.

Una vez que terminamos de agregar la configuración Half-Life hacemos clic en Close y volvemos a la pantalla anterior. Vamos a ver que ahora tenemos en la lista de Configurations el juego que recién creamos.

Vamos a pasar al casillero de Game Data files. Acá es donde se diferencian realmente los mods. Cada mod tiene un set de entidades, las entidades son las propiedades que puede tener un mapa. Estas entidades se almacenan en un archivo con extensión .FGD. Para cada mod que mappemos vamos a necesitar este archivo.

En nuestra sección de utilidades tenemos preparado un Pack de FGDs el cual tiene las últimas versiones de los mods más conocidos.

Una vez que tenemos estos archivos hacemos clic en Add y seleccionamos el .FGD correspondiente al HL. Una vez hecho esto vamos a ver que el VHE agregó una ruta al archivo solicitado y además, lleno automáticamente los campos de:

Texture Format: WAD3 (Half-Life / TFC), esto indica el tipo de texturas que utiliza el HL, el cual vamos a detallar más adelante.

Map Type: Half-Life / TFC, esto indica el tipo de mod que soporta ese .FGD. En este caso, se puede utilizar perfectamente para hacer un mapa de HL y/o Team Fortress Classic (TFC).

Default PointEntity Class: Esta es la lista de entidades que se pueden agregar solas sin estar asignadas a ningún otro objeto (sólidos = brushes).

Default SolidEntity Class: Por otro lado, esta es la lista de entidades que si o si tienen que estar asignadas a sólidos.

El resto de los casilleros los dejamos como están, solo son útiles si usamos el mismo VHE para compilar los mapas (más adelante explicaremos que es la compilación).

Ahora pasamos a la solapa de Textures y nos vamos a encontrar con lo siguiente



Aquí es donde vamos a agregar las texturas. Pero primero vamos a explicar que son las texturas. Las texturas son imágenes en 2D las cuales son aplicadas a las caras los sólidos que vamos a crear cuando mappemos. Las texturas se almacenan en archivos WAD.

Volviendo a la ventana en cuestión, hacemos clic en Add WAD y buscamos la carpeta del HL. Ahí buscamos una sub-carpeta de nombre Valve, ahí encontramos algunos wads, de los cuales solo vamos a utilizar halflife.wad. Ya estamos listos para empezar a mappear, pero antes nos queda un tema que explicarte: La compilación.

Esto es algo imprescindible para la creación de mapas. Para empezar vamos a decirte que hay un pack de herramientas llamadas Zoner Half-Life Tools (de ahora en adelante ZHLT). Estas traen varios archivos ejecutables, los cuales solo vamos a usar los siguientes: hlbsp.exe, hlcsg.exe, hlvis.exe, hlrad.exe.

Cada una de estas es un paso de compilación en donde, tomando el mapa que creamos, le agrega las luces, sombras, sonidos, texturas, etc., y convierte el archivo final en .BSP. Más adelante te vamos a explicar cuando y como compilar tu mapa.


2) EL ENTORNO VHE:

Ahora vamos a ver el entorno donde vamos a trabajar, y todas las emocionantes cosas que tiene el VHE para ayudarte a crear mapas.

Una vez cerrada la ventana de configuraciones vas a ver una pantalla vacía como esta:



Los recuadros grises son los botones de la barra de herramientas que se van a habilitar cuando creemos un mapa nuevo u abramos uno existente.


Ahora hace click en el menú File -> New



Cada uno de esos recuadros negros son los tipos de vista: en la esquina izquierda superior tenemos la vista en 3D que puede ser ajustada por líneas (3D wireframe), sólidos rellenos (3D flat), y sólidos texturados (3D textured), después arriba a la derecha tenemos la vista TOP en donde veremos todo desde arriba, en la parte inferior a la izquierda tenemos la vista FRONT (frente) de nuestro mapa, y a la derecha tenemos la vista SIDE (desde un costado).

Vos podes ajustar cada uno de los cuadros a gusto, nosotros preferimos dejarlos en el modo que esta y utilizamos en el modo 3D la vista de texturas.

Nosotros vamos a crear los sólidos y agregaremos entidades en los recuadros de: TOP, FRONT y SIDE, según nos sea más cómodo, ya que todos son vistas diferentes de lo mismo.

Pero antes de empezar creando nuestro mapa, vamos a ver un poco que tenemos en la barra de herramientas:

Selection Tool [Shit+S]
Esta opción sirve para seleccionar objetosEste botón lo vamos a utilizar para seleccionar objetos en cualquiera de los 4 espacios que tenemos. Al seleccionarlos aparecen 8 puntos alrededor del sólido en donde podemos agrandarlo o achicarlo según la necesidad, al segundo clic sobre el objeto seleccionado aparecen 4 círculos que nos dejan rotar el sólido, y al tercer clic tenemos la posibilidad de deformar el objeto.

Magnify [Shit+G]
Esta opción sirve para hacer zoom.Esta opción es muy fácil de usar, sirve para acercar o alejar cualquiera de los 4 cuadros de trabajo. Con el clic izquierdo se acerca y con el derecho se aleja. Aunque es más fácil si tenés un mouse con rueda de scroll, ya que realiza la misma tarea.

Camera [Shit+C]
Esta opción sirve como cámara para navegar en la vista 3D.Esta es la opción de cámara, con ella nos podemos mover en todas direcciones en el cuadro de vistas en 3D. Una sugerencia, presionando la letra Z podemos navegar la vista en 3D como si estuviéramos en el juego.

Entity Tool [Shit+E]
Esta opción sirve para aplicar entidades.Este simple iconito sirve para aplicar entidades, para agregarlas seleccionen esta opción y hagan click, en la vista 3D, en alguna pared cercana a donde la quieren, y después muevanla en cualquiera de las vistas 2D a donde la quieran.Recordá que también se pueden agregar entidades a los sólidos, pero no se realiza con esta opción, eso te lo vamos a explicar más adelante.

Block Tool [Shit+B]
Esta opción sirve para crear sólidos.Esta es la opción principal, sin ella no podrías ir muy lejos, sirve para crear los sólidos, para que te des una idea los sólidos son bloques, de diferentes formas y tamaños, que sirven para hacer las paredes, pisos, techos, cielo, ventanas, todo lo que existe en el mapa al fin y al cabo. Podés cambiar el tipo de sólido, abajo a la derecha en la pantalla hay dos menús de, uno dice primitives, y otro dice Object. Donde dice Object figuran todos los tipos de sólidos que hay para poder crear: Cubos, triángulos, cilindros, conos, o arcos.Con esta herramienta también poder crear los famosos Prefabs (Los prefabs son objetos prediseñados por otras personas para facilitarnos el trabajo, en nuestra sección de prefabs vas a encontrar varios para bajar y también algunos links).Volviendo al tema anterior, en el VHE vienen muchos Prefabs, solo tenés que abrir el menú de Primitives y seleccionar cualquiera de los que figuran.

Toggle Texture Aplication [Shit+A]
Esta opción sirve para aplicar texturas a los sólidos cara por cara.Esta aplicación es muy especial, ya que es la que le da vida a los sólidos. Mediante esta vas a poder aplicar texturas correctamente, para ello contamos con un montón de opciones las cuales listamos acá abajo:

Scale x/y: Podes cambiar la escala de la textura así como achatarla o estirarla.

Shift x/y:
Esta opción te permite ubicar una textura con respecto a X e Y.

Rotation: Te sirve para rotar una textura.

Justify: Hay 6 botones para jugar acá: L (Izquierda), R (Derecha), Fit (Se adapta a la cara), T (Arriba), B (Abajo), C (Centro).

Treat as One: Cuando seleccionas muchas caras esta opción te permite que se las tomen como una sola cara.

Aling World to Face: Estas opciones son un poco difíciles de explicar, World sirve para ubicar texturas basándose en el mapa completo, y Face sirve para ubicar texturas basándose en la cara del sólido.

Texture Group: Sirve para seleccionar o todos los wads, o cada uno por separado.

Current Texture: Muestra el nombre de la textura que tenemos seleccionada en ese momento.

Hide Mask: Sirve para ocultar la selección roja que aparece al seleccionar algo.

Apply: Sirve para aplicar todos los cambios que hicimos.

Browse: Sirve para buscar en los archivos wads las texturas.

Replace: Seleccionando esta opción el programa va a tomar la textura seleccionada y la va a reemplazar con la textura que elijamos, pero también va a cambiar todas las texturas con el mismo nombre en el resto del mapa.

Apply Current Texture
Esta opción sirve para aplicar texturas en todas las caras de un sólido a la vez.Esta opción sirve para aplicar texturas también, pero tiene una cosa en particular, para aplicarlas de este modo tenés que seleccionar un sólido y al hacer click en este botón se van a aplicar las texturas de todas las caras a la vez, siguiendo la textura que tenemos seleccionada.

Apply Decals [Shit+D]
Esta opción sirve para aplicar decals.Este botoncito te da la posibilidad de que apliques los famosos Decals.Los Decals son texturas que están superpuestas a las texturas, una de las más famosas es el bomb target, en el gráfico que indica donde hay que poner la bomba..., los tiros en las paredes son también Decals, las grietas, etc.

Clipping Tool [Shit+X]
Esta opción sirve para cortar objetos.Este botón sirve para cortar a gusto los sólidos. Para usarla tenés que seleccionar el sólido primero, luego apretar este botón.Ahora que lo tenés listo para cortar simplemente has 2 veces click en puntos diferentes y vas a ver que te aparecen 2 círculos unidos por una línea blanca, esta línea es por donde vamos a cortar al objeto, así que movela a gusto para cortar el sólido.Vas a ver que una parte del sólido queda con líneas entrecortadas rojas y la otra con líneas gruesas blancas, bueno, la parte de líneas blancas es la que va a quedar, lo demás va a desaparecer.

Vertex Tool [Shit+V] Esta opción sirve para modificar un sólido moviendo sus puntas.Con esta herramienta podes mover los vértices de un sólido a gusto para formar objetos complejos.Al hacer click van a aparecer los vértices y aristas del objeto, que podes mover a gusto.

Path Tool [Shit+P]
Esta opción sirve para crear rutas/caminos de los personajes del juego.Esta herramienta es muy especial y dudo que lleguemos a usarla. Sirve para marcar el camino que van a seguir los personajes en el modo single player (un solo jugador) del HL. Para utilizarla, tenés que mantener la tecla SHIT presionada y vas haciendo click marcando el camino que van a seguir los personajes.Esta opción es muy avanzada y hay que tener altos conocimientos sobre mapping y aplicación de AI (inteligencia artificial) para poder utilizarla.


3) LA 1º HABITACIÓN:

Lo primero que vamos a hacer es crear un mapa nuevo. Para ello nos dirigimos a File -> New.

Antes de crear la habitación lo normal es seleccionar una textura general, ya que la que esta seleccionada por defecto (AAATrigger) es la que se suele usar para las entidades (como detectores de aperturas de puertas, escaleras, etc.), de todas formas podes cambiar en cualquier momento las texturas de la habitación con la herramienta de texturas.

En el cuadro de dialogo Textures, hace click en el botón Browse. Así se abre el explorador de texturas. Una vez en el explorador de texturas, en la parte de abajo en el cuadro Filter, escribí por ejemplo WALL (pared). El filtro de textura reduce la lista de texturas a únicamente las que contengan la cadena de texto que escribimos en su nombre. Seguramente vas a ver unas cuantas texturas, selecciona la que mas te guste.

Una aclaración: No es necesario usar el filtro si no quieres, simplemente úsalo cuando sepas o tengas una idea de lo que buscas.

Ahora, para hacer las paredes, como dijimos en el tutorial anterior, vamos a utilizar la herramienta Block. Para que sea más fácil cambiar el tamaño de los sólidos vamos a achicar el tamaño de la grilla.

Para achicar o agrandar el tamaño de la grilla utiliza estos dos Botones de la barra de herramientas:

La Barra de Estado:

1- Este casillero nos informa si es un sólido y número de caras tiene, por el contrario, si hubiésemos convertido el bloque en una entidad, en ese espacio nos informaría que entidad habíamos usado.

2- Este casillero posee una @ a su izquierda y este nos informa las coordenadas de cada sólido en el mapa.

3- Este casillero tiene 3 valores: xx w, xx l, xx h. Estos indican las unidades de ancho, profundidad y alto (en su respectivo orden).

4- Este casillero nos provee información sobre el zoom que estamos usando.

5- Este casillero nos informa sobre el tamaño de grilla en el cual estamos trabajando.



Armando las Paredes, pisos y Techos:

Ahora, para empezar a construir la habitación, vamos a utilizar la herramienta Block, vamos a ir a la vista TOP y vamos a crear un rectángulo de 32w 256l 256h unidades.

Una vez creado, vamos a ubicarlo a la izquierda del eje Y (Línea verde azulada vertical). Si hicimos este paso bien nos va a quedar algo así:


Repitiendo el paso anterior, vamos a crear 3 sólidos mas formando 4 paredes. El resultado lo podemos ver en la siguiente imagen:



Siempre es bueno alinear a la cuadricula nuestro mapa, es decir, siempre que podamos, hay que basar nuestras habitaciones siguiendo las de los ejes X e Y o grises claras. Solo si es necesario deberíamos a achicar la cuadricula al máximo. Lo recomendable siempre es trabajar con una grilla de 16 unidades.

Alineando los sólidos a la cuadricula, nos ayuda fácilmente a ubicar las texturas sin necesidad de configurar su tamaño o posición.

Ahora que tenemos las paredes, vamos a crear el techo y el piso. De la misma manera que hicimos antes con las paredes vamos a crear un sólido de 256w 256l 32h unidades en medio de las cuatro paredes en la vista TOP.

Con el sólido seleccionado nos dirigimos a la vista SIDE y lo movemos verticalmente hasta los bordes inferiores de las paredes, y quedaría algo así:



Ya tenemos el piso, ahora vamos a crear el techo. Para ello, en lugar de crear un sólido nuevo, te vamos a enseñar un atajo que te va a facilitar un poco el trabajo. Posiciónate en la vista SIDE y con la tecla SHIFT presionada has click en el sólido del piso y arrástralo hasta los bordes superiores de las paredes.



Aplicación de Texturas:

Vamos a darle un poco de estilo al cuarto, para empezar vamos a cambiar las texturas del piso. Para ello vamos al explorador de texturas y en el filtro ponemos FLR y elegimos un piso que nos guste. Una vez que lo tenemos seleccionado, vamos a la vista 3D y presionando la letra Z vamos a navegar al interior de nuestra habitación. Volvemos a presionar la tecla Z para desactivar el navegador y seleccionamos el sólido del piso.

Con el sólido y la textura deseada seleccionada hacemos click en la herramienta Apply Current Texture. Al usar esta opción, todas las caras del sólido en cuestión se van a cambiar por la textura que elegimos. El resultado seria más o menos así:



Volvemos a navegar la vista 3D, para visualizar el techo. Nuevamente vamos al explorador de texturas, y en el filtro ingresamos el criterio CEI, esto nos muestra varios tipos de cielos razos. Elegimos uno que mas nos guste y lo seleccionamos.

Seleccionamos el sólido del techo y volvemos a utilizar la herramienta Apply Current Texture. Finalmente ya tenemos las paredes, piso y techo bien definidos.



Definiendo el punto de partida:

Pero esto no termina acá. Todo nivel para jugarlo necesita un punto de salida para el jugador. Esto se hace colocando una entidad info_player_start en el mapa.

Para hacer esto, vamos a utilizar la herramienta Entity. Una vez seleccionada, nos dirigimos al menú de la derecha y abajo de todo veremos la opción de Objects. Ahí debajo hay un menú desplegable en el cual figuran todas las entidades que no requieren ningún sólido para funcionar. Nosotros vamos a utilizar la entidad info_player_start, así que la buscamos en la lista y la seleccionamos.

Ahora nos vamos a la vista 3D y hacemos click en el sólido del piso (siempre con la herramienta Entity seleccionada).

Si se fijan bien, el programa nos agregó un cubo verde claro en medio del sólido del piso como se ve en la imagen:



Si nos fijamos bien, en las vistas SIDE y FRONT vemos que mitad del info_player_start esta dentro del mapa y la otra mitad fuera. Esto no debe quedar así por dos motivos.

El primer motivo y algo que tenés que aprender antes de empezar a mappear es que todas las entidades que estén del lado negro, es decir, fuera del mapa van a generar un error conocido con el nombre de LEAK.

El mapa siempre tiene que estar sellado, y no se puede dejar ni una sola unidad de espaciado. Todos los sólidos que dan al exterior deben estar juntos si o si.

El segundo motivo es que el info_player_start esta pegado al piso. Esto va a traer problemas cuando compilemos ya que cuando el jugador haga el worldspawn (ingrese al mapa) va a quedar trabado ya que tiene sus pies pegados al piso.

Para solucionar este tema, vamos a mover la entidad hacia arriba, de modo tal que quede a unas 3-6 unidades por sobre el piso. De esta manera nos aseguramos que no haya trabas cuando el jugador ingrese al mapa.



La iluminación:

Si compilamos el mapa así como está vamos a ver todo oscuro. Lo que nos queda por hacer es agregar luz. Para ello, vamos a agregar una entidad Light. Nuevamente usamos la herramienta Entity, volvemos al menú Objects y en este caso elegimos la entidad Light.

Acto siguiente agregamos la entidad (por ejemplo) a una de las paredes y la movemos al centro del cuarto utilizando las vistas 2D.

Esta iluminación es solo una base, en los próximos tutoriales vamos a detallar más este tema.


4) PUERTAS:

Siguiendo con el mapa del tutorial anterior, vamos a crear una puerta. Para más comodidad mové las entidades info_player_start y light a un costado, pero solo para sacar las screens, no hace falta que vos los muevas en tu mapa.

Lo primero es crear el agujero en la pared del tamaño de una puerta, el tamaño predeterminado de una puerta es de 64 x 16 x 96 unidades, claro que esto depende en realidad de lo que uno quiera.



Dividiendo la Pared:

Teniendo la habitación anterior iluminada y todo, vamos a dividir una de las paredes en tres partes para insertar la puerta. Para ello vamos a utilizar la herramienta Clipping Tool.

Seleccionamos la pared que nos interesa, hacemos doble click en la herramienta Clipping Tool y trazamos una línea como muestra la imagen:



Luego presionamos ENTER y el sólido se va a haber cortado. Si por alguna razón un pedazo del sólido desapareció es que usamos mal la herramienta. La herramienta Clipping Tool tiene 3 posiciones, las 2 primeras hacen que el lado izquierdo o derecho desaparezca luego de hacer un corte, y la 3er posición deja los los pedazos de sólido sin eliminarlos.

Si hicimos esto bien nos tiene que haber quedado como la imagen inferior, y como paso siguiente vamos a trazar nuevamente una línea también como se ve en la imagen:



Nuevamente presionamos enter y vamos a ver que la pared se dividió en tres sólidos. Ahora vamos a cambiar un poco el tamaño para que el hueco de la puerta no nos quede tan grande. Las dos paredes de las puntas tienen que ser de 96 x 64 x 256 unidades y la del medio 64 x 64 x 256 unidades. El resultado es el siguiente:



Lo que vamos a hacer ahora es crear el lugar para colocar la puerta. Vamos a achicar el sólido del medio, para eso lo seleccionamos y en la vista SIDE o FRONT (depende que pared hayamos cortado) vamos a reducirlo a un cubo de 64 x 64 x 160 unidades como se ve en la siguiente imagen:



Creando la Puerta:

Ahora vamos a crear la puerta que va a ir en ese espacio. Para que tenga aspecto de puerta vamos a ir al Explorador de Texturas y en el filtro vamos a poner c1a0b_dr4b, seleccionamos esa textura y pasamos a crear el sólido de la puerta. Creamos uno que tenga 64 x 16 x 96 unidades y lo colocamos de manera que encaje con el agujero de las mismas proporciones como se ve en la imagen inferior:



Alineando las Texturas:

Bueno, al menos ocupamos el espacio, pero eso no parece una puerta. Para ello vamos a tener que alinear la textura. Utilizando la herramienta Texture Aplication [Shift+A] vamos a hacer click en la cara del sólido de la puerta que se ve en la screen anterior. En la ventana de aplicación de texturas presionamos el botón Fit y vemos como se corrigió la textura, también podemos hacer lo mismo con la cara contraria y lograremos el mismo efecto.

Nuevamente, esto no termina acá. Lo único que tenemos es el sólido de la puerta, pero no se va a comportar como tal hasta que le asignemos la entidad correspondiente.



Definiendo la Puerta:

Lo primero que vamos a hacer es seleccionar la puerta y presionamos [Crtl+T]. Ese es el cuadro de diálogo de las entidades asignadas a sólidos, es decir, que van junto con un sólido. En el menú desplegable buscamos la entidad func_door.



Generalmente con los parámetros por defecto la puerta ya funciona, pero se puede personalizar a gusto manejando sus propiedades, que son las siguientes:

Speed: es la velocidad a la que se abre/cierra la puerta. El valor por defecto es 100.
Move Sound: selecciona de la lista el sonido que emite la puerta cuando se abre.
Stop Sound: selecciona de la lista el sonido que emite la puerta cuando se termina de cerrar.
Delay before Close: es el tiempo que tarda la puerta en cerrarse. El valor por defecto es 4 (se mide en segundos) y para que la puerta se quede abierta pone el valor es -1.
Lip: Las puertas de este tipo suben, bajan o van de un lado a otro desde su base hasta su punta. Para que se vea más claramente, la puerta se mete por completo dentro de la pared. Asignándole un valor a este casillero va a dejar un borde. Recomiendo que usen valores del 1-3.
Damage inflicted when blocked: sirve para hacerle daño a quien se ubique en su trayectoria, Se debe poner la cantidad de daño que le hace al jugador.
Locked Sound: sonido que emite la puerta si esta trabada o si es trabada.
Unlocked Sound: sonido que emite la puerta si esta destrabada o si es destrabada.
Yaw: esta última propiedad define el ángulo en que la puerta se va a mover. Por defecto la puerta se mueve a la derecha, pero si cambiamos el ángulo esta se mueve en cualquier posición que elijamos.

Para concluir, tendríamos que cerrar el mapa, para que no haya agujeros que den al exterior. Para ello vamos a tener que cubrir con un sólido el hueco que hay en el piso. Además de esto, hay que cubrir el hueco que queda detrás de la puerta, ya que la puerta es una entidad y no impide que el interior esté expuesto al exterior.
Si hicimos esto bien nos va a quedar algo así:




5) ESCALERAS:

Hacer escaleras es una de las cosas más fáciles de hacer, es un procedimiento rápido y sencillo. El tipo de escaleras que vamos a diseñar son las verticales, así que para empezar te aconsejamos que uses el explorador de texturas y busques la textura ladder1.



El tamaño estándar de las escaleras de este tipo es de 32 x 4 x (la altura que vos quieras) unidades. Para obtener el resultado como en la imagen vamos a crear un sólido de 32 x 4 x 128 unidades, siempre con la textura ladder1 seleccionada.



Utilizando las herramientas de alineación de texturas que aprendimos en tutoriales anteriores, vamos a alinearla correctamente para que se vea como en la imagen.

Para que la escalera se vea más real, podemos cambiar la textura de sus laterales. Seleccionamos las caras y buscamos la textura generic99c (siempre y cuando la textura de la escalera sea roja, sino podemos probar con otro color) la aplicamos y quizá no noten mucha diferencia en la ventana del VHE, pero cuando estén en el juego si se va a notar.

Algo interesante que remarcar es que si en las propiedades de texturas dejamos la escala en 1.00 y la alineación en 0.00, y además el sólido está alineado a la cuadricula como se muestra en la imagen, la textura va a estar alineada perfectamente y no hay necesidad de re-alinearla.

Esto se aplica a todas las texturas con los tamaños: 16, 32, 64, 128, 256, 512 (pixeles a lo ancho o a lo largo) y dependiendo del tamaño de sólido. Por eso te aconsejamos que siempre trates de alinear los sólidos a la cuadricula, eso te va a ahorrar mucho trabajo.

Si dejamos esto así, el color azul se va a ver negro en el juego. Para hacer que sea transparente, vamos a convertir ese sólido con la entidad func_wall. Para ello presionamos [Ctrl+T] y en la lista de entidades seleccionamos la antes mencionada.

Una vez hecho esto vamos a cambiar algunas de las propiedades. En Render Mode vamos a elegir el valor Solid, y en Fx Ammount vamos a introducir el valor 255.

Con esto la escalera ya está lista, pero solo visualmente. Ahora tenemos que agregarle una sentencia que le diga al juego que se puede subir por esa escalera.

Para ello, vamos a crear un sólido idéntico al anterior, con la textura aaatrigger y vamos a posicionarlo junto al mismo. Para una vista más clara echale un vistazo a la imagen aquí debajo:



Lo único que nos falta es asignarle la entidad que funcionara como escalera al sólido que creamos recientemente. Para ello repetimos el paso anterior con [Ctrl+T], pero esta vez en el menú elegimos la entidad func_ladder. Y eso es todo.


6) INTERRUPTORES:

Un interruptor tiene varias utilidades, pero todas se resumen a una básica: activar y/o desactivar ciertas acciones, como encender una luz, o abrir una puerta. En este tutorial te vamos a enseñar a utilizar un botón para cerrar una puerta.

Utilizando la habitación que creamos en el tutorial de puertas vamos a convertirla para que pueda ser abierta o cerrada mediante un botón.

En el engine de HL las texturas botones se representan como:



Lo que vamos a hacer ahora es convertir el sólido del botón a la entidad, presionando [Ctrl+T] y seleccionando la entidad func_button.

Ahora vamos configurar el botón y la puerta para que cuando activemos el botón se abra la puerta. Para esto vamos a abrir las propiedades del botón.



Lo primero que vamos a hacer es ir a la solapa Flags y vamos a tildar la opción Don't Move. Eso va a evitar que el botón se desplace a un costado cuando lo presionemos.

Lo segundo que vamos a hacer es volver a la solapa Class Info y ubicamos la propiedad Target o Targetted Object (dependiendo que versión del FGD tengamos) e introducimos en el casillero la palabra puerta.

Ahora vamos a la ventana de propiedades de la puerta y en la propiedad Name ingresamos nuevamente la palabra puerta. Sin salir de la ventana de propiedades de la entidad func_door vamos a la solapa Flags y tildamos el casillero que dice Toggle.

Ahora vamos con las explicaciones. El casillero Target / Targetted Object le indica al botón que tiene que desactivar o activar cualquier entidad que tenga el nombre que pusimos, en nuestro caso, va a activar o desactivar todas las entidades que tengan por nombre la palabra puerta.

En las propiedades del func_door está más que claro por que pusimos en Name la palabra puerta. Por otro lado, la opción Toggle en la solapa flags le está diciendo a la puerta que no se abra cuando alguien pasa por ella, sino que espere a que alguna sentencia (en este caso el botón) la abra o la cierre.


7) ASCENSORES:

Lo primero que vamos a hacer es construir el ascensor. En este tutorial hemos creado una habitación especial, donde hay una planta baja y un 1er piso



En nuestro caso pusimos la plataforma al ras del piso en la planta baja, ya que nosotros queremos que el primer viaje del ascensor sea hacia arriba, de otro modo, el ascensor estaría en el primer piso si quisiéramos que baje.

Tengan en cuenta que el ascensor está compuesto por la plataforma y por la columna que lo eleva:



Moviéndolo:

Los ascensores se pueden activar de dos maneras: por proximidad o mediante la acción de un botón.

Accionado por proximidad:
Seleccionamos el ascensor y la columna, y transformarlos en entidad func_plat. En sus propiedades, y seleccionamos la opción Travel altitude (can be negative), esta es la distancia que nuestro ascensor va a subir o a bajar. Este valor se haya expresado en unidades y para nuestro ascensor vamos a escoger el valor 128 (unidades), ya que esa es la diferencia de altura entre la planta baja y el 1er piso. En caso de que quisiéramos que baje solo nos queda por agregar un valor negativo de las unidades.


Accionado por botones:
Es similar a lo anterior, pero en las propiedades de la entidad func_plat, tenemos que introducir un nombre en el campo Name, por ejemplo ascensor. Ahora vamos a la solapa Flags y activamos la opción Toggle o Triggerable (Activable por medio de botones. El nombre varía según que versión del FGD tengamos).

Ahora tenemos que crear el botón que servirá para moverlo de una posición a otra y configuramos a nuestro gusto las propiedades del func_button. Empezamos con Delay before reset (wait) (es el tiempo que tarda el botón en volver a ser usable) e ingresamos el valor 2; Delay before trigger (delay) (es el tiempo que pasa desde que pulsamos el botón hasta que se activa el evento, el ascensor en este caso), también usamos el valor 2. Ahora en la solapa de Flags activamos Don't move (el botón cambia del estado inactivo al activo cuando es usado sin moverse). Cada vez que sea usado va a activar los eventos, como mover el ascensor.

Lo último que nos queda por hacer es duplicar el botón y situarlo en la planta alta. En el mapa ejemplo vas a encontrar el ascensor activable mediante el botón.


CIELOS:

Hacer el cielo de un mapa es realmente fácil y simple. Para hacer los lugares al aire libre tenés que imaginarte que son habitaciones, como las que vinimos haciendo hasta recién, pero que en el techo, en lugar de tener una textura de techo, tiene la textura sky.

Con la siguiente imagen vamos a aclarar un poco las cosas:



Lo único que hay que hacer es cerrar la "habitación" con la textura sky y ya está.

Cuando corramos el juego, la textura sky va a ser reemplazada por el cielo. Ahora lo que vamos a hacer es definir que cielo vamos a querer que aparezca. Para ello vamos al menú Map -> Map Propierties, y nos deberíamos encontrar con la siguiente ventana:ç



En el casillero de enviroment map (cl_skyname) vamos a introducir el nombre de algún cielo existente, por ejemplo: trainyard. Los cielos se encuentran en la carpeta C:SierraHalf-Lifevalvegfxenv. Como podemos ver los cielos están en formato .tga y si prestamos atención hay 6 archivos que corresponden a cada tipo de cielo:


+0nombre (Textura apagada)
+Anombre (Textura encendida)

Aunque podemos utilizar cualquier textura y el botón va a funcionar, lo ideal para que parezca más realista, es utilizar las texturas con las características arriba mencionadas.

A un lado de la puerta vamos a crear un sólido de unas 16 x 2 x 24 unidades y vamos a decorarlo con la textura +0~lab1_gad3. En la imagen podemos tener una vista más clara del botón y su posición con respecto al info_player_start y a la puerta:

Code:
nombre_de_cielobk.tga
nombre_de_cielodn.tga
nombre_de_cieloft.tga
nombre_de_cielolf.tga
nombre_de_cielort.tga
nombre_de_cieloup.tga


Cada una de esas 6 imágenes pertenece a una cara de un cubo el cual forma el cielo (Back, Down, Front, Left, Right, Up)

Volviendo al VHE, en el casillero enviroment map (cl_skyname) vamos a ingresar solamente el nombre_de_cielo. Cerramos la ventana y lo único que nos queda por hacer es darle luz al mapa.


Agregando el Sol:

Como en el tutorial de la 1er habitación, si no agregamos alguna entidad que genere luz, el mapa va a estar a oscuras. En este caso, en lugar de usar la entidad light, vamos a utilizar la entidad light_enviroment.

Esta entidad se coloca una sola vez por mapa y va a emitir luz cada vez que haya una textura sky.

Seleccionamos la herramienta Entity Tool [Shift+T] y en el menú desplegable de Objects (abajo a la derecha) seleccionamos la entidad light_enviroment y la agregamos al mapa.

No importa la ubicación de la entidad, ya que el tipo de luz y dirección de la misma se configura desde su ventana de propiedades.

Dentro de la ventana de propiedades vamos a la propiedad Pitch, esta indica el ángulo de inclinación de los rayos del sol. Por defecto los rayos del sol en HL son desde arriba hacia abajo, por ende, para que parezca real vamos a tener que ingresar un valor negativo. En nuestro caso, vamos a utilizar el valor -60.

Ahora solamente nos queda configurar el ángulo en que los rayos van a caer sobre nuestro mapa, y eso lo hacemos con la opción Yaw o Angle (según la versión del VHE que uses), en nuestro caso vamos a dejarlo como está, esta opción es si queremos algo en especial, sino déjenlo como está.


9) HUMO, FUEGO Y VAPOR:

vapor y Humo:

Antes que nada tenes que tener claro donde querés el vapor en tu mapa. Nosotros vamos a simular una tubería rota.

Para simular el vapor vamos a usar varias entidades env_sprite (voy a usar 6 para mi vapor) en fila, hacia donde quieras que vaya el vapor. Las colocamos mas juntas cerca de la ruptura de la tubería y las vamos espaciando mas según nos vamos alejando de ella. Por ahora solo crea una sola entidad env_sprite, más adelante, cuando este todo listo te vamos a pedir que dupliques las veces que quieras la entidad, así con configurar una sola entidad, duplicándola, vamos a ahorrarnos mucho tiempo y trabajo.

Vamos a configurar las características básicas de la entidad env_sprite. En sus propiedades ingresamos en el campo Render Mode el valor Additive. Luego en la propiedad Sprite Name ingresamos sprites/smokepuff.spr que es el siguiente sprite:

Ahora si querés que se inicie automáticamente seguí con el Paso 1, pero si lo que querés es que sea activable/desactivable dirigite al Paso 2.

Paso 1:
Entra en las propiedades de la entidad env_sprite hacé click en la solapa Flags activa la opción Start On.

Paso 2:
Dale a la entidad env_sprite un nombre en el campo Name dentro de sus propiedades. Por ejemplo: vapor.

Ahora duplicamos (Presionamos la tecla Shift mientras arrastramos la entidad) tantas entidades env_sprite como queramos y las ubicamos como mas nos guste (El vapor, según las leyes de la física, es mas liviano que el oxigeno y tiende a subir. Tené eso en cuenta).

Para darle realismo, modificamos en las propiedades la escala de cada env_sprite. Empezamos por el que está mas pegado a la tubería, le damos un valor, por ejemplo, de 0.3. Acordate que los valores son: tamaño reducido (número menor que 1), tamaño original (1) y aumentado (número mayor que 1). Empezando por 0.3 dale valores a los 6 env_sprite hasta el mas alejado, que va a tener un valor de 1.

Para darle aún más realismo, también vamos a cambiar los valores del campo Framerate de cada env_sprite. Asi evitamos que la animación de cada uno sea igual que la de los demás, consiguiendo unos movimientos aleatorios mas próximos a los del auténtico vapor. Empezamos de nuevo por el que está mas pegado a la tubería. Nosotros dimos a los env_sprite valores de 10, 14, 18, 22, 26 y 30, pero podes ajustarlo a tu gusto, claro está.

Para ir terminando los efectos visuales tenemos que modificar los valores de transparencia de cada env_sprite, ya que cuanto mas alejado esté de la tubería, mas transparente va a ser el vapor, hasta que desaparezca. Entonces en el campo FX Amount ponemos un valor bajo, como 80 al más cercano a la tubería (esto lo hace transparente, podes elegir un numero entre 0 =invisible, y 255 = totalmente opaco).

Vamos a ir reduciendo el valor de los env_sprite. Para que te des una idea, el último env_sprite tiene un valor de 15. O sea que los valores de los env_sprite fueron desde 80 con el primero a 15 con el último.


Agregando Detalles:

Para que el realismo sea total, como siempre, vamos a poner una entidad sonora: ambient_generic (vamos a explicar esta entidad más adelante) y elegimos un sonido de vapor (dentro del PAK del Half-Life tenemos el sonido ambience/steamjet1.wav).

Entonces le damos las propiedades que queramos, como Start Silent (que comience en silencio, por si luego lo vamos a activar con un botón o sentencia) y Small Radius, esto nos indica que el radio de alcance del sonido es chico, ya que la fuga de vapor es chica.

Por último nos queda cambiar la propiedad Name, ingresando el nombre: vapor.
Esto es más o menos como va quedando:



También podemos hacer que el vapor dañe al jugador, para ello vamos a crear un sólido con la textura aaatrigger, lo ponemos alrededor del vapor y entonces lo transformamos [Ctrl+T] en una entidad trigger_hurt. Configuramos sus propiedades: en el casillero Name ponemos el mismo nombre que las entidades env_sprite, en nuestro ejemplo habíamos usado el nombre: vapor. Damage ingresamos la cantidad de daño que queremos que le haga al personaje cuando se acerque, por ejemplo 5. Y para que el daño que cause sea por quemadura, en el campo Damage Type seleccionamos Burn.

Ahora, si vamos a hacer que el vapor se pueda activar (lo que implica que el daño también se active), tenemos que darle a esta entidad (trigger_husrt) un valor de Start Off en sus Flags.


Interactuando con el Vapor:

Ahora hay varias posibilidades. Podemos hacer que el vapor esté siempre ahí, que aparezca y desaparezca rápidamente, o hacer que aparezca y desaparezca de forma progresiva:

Para que permanezca en su mismo estado, ponemos los env_sprite con la propiedad de Start On, en la entidad ambient_generic desactivamos la opción Start Silent, y en la entidad trigger_hurt desactivamos la opción Start Off.

Para hacer que aparezca y desaparezca rápidamente, dejamos las propiedades como las vinimos configurando y nos aseguramos que todas las entidades tengan el mismo Name: vapor. Para que cuando activemos el botón se activen todas las entidades al mismo tiempo.

También podemos usar además del botón, una entidad multi_manager (capaz de manejar hasta 16 eventos) y activar cada entidad con un retardo que estipulemos (en segundos). Entonces damos a cada env_sprite, al ambient_generic y trigger_hurt nombres diferentes.

Ahora viene lo difícil: Entramos en las propiedades del multi_manager y activamos el modo SmartEdit. Ahora vemos que tenemos un botón de Add para añadir parámetros a la entidad multi_manager. Lo presionamos y metemos en el campo Key el nombre de cada entidad, y en Value el valor en segundos del retardo. Nosotros usamos un valor mas pequeño para el env_sprite que está mas cerca de la tubería que para el mas alejado. Quedan estos valores para los env_sprite: 0.5, 0.75, 1, 1.25, 1.5 y 1.75.

Y para la entidad ambient_generic y la trigger_hurt, le puse 0.5.

Ahora tenemos que darle un nombre al multi_manager para que pueda ser activado con un botón como ya vimos en tutoriales anteriores, o podemos crear un sólido con la textura aaatrigger y asignarle la entidad trigger_multiple o trigger_once. (el primero repite su accionar cada vez que un jugador lo atraviesa, el trigger_once realiza su accionar solamente una vez que el jugador pasa). Su configuración es muy parecida a la del botón, solo tenemos que ingresar el nombre de la entidad multi_manager en el casillero Target.


Fuego:

Ahora para crear el fuego, vamos a simular una fogata, pero vos podés ubicarlo donde más te plazca.

Empezamos poniendo una entidad env_sprite sobre los pedazos de madera que vamos a quemar. En las propiedades, en Sprite Name escribimos el nombre de algún sprite de fuego, en este caso vamos a usar el sprites/flame.spr que es precisamente una llamarada.

Después en la propiedad Render mode elegimos la opción Additive. En Render FX pone 150. Lo que sigue es arreglar la escala y los demás valores que crean convenientes para su fuego. Nosotros pusimos una escala de 0.5.



Calor:

Ahora vamos a hacer que al acercarnos nos queme (esto es similar a la quemadura creada por el vapor).

Para que el fuego cause daño a quien se acerque, vamos a crear un sólido con la textura aaatrigger, lo ponemos alrededor del fuego y entonces lo transformamos en una entidad trigger_hurt. Configuramos sus propiedades: en Damage ponemos la cantidad de daño que queremos que le haga al personaje cuando se acerque, por ejemplo 5. Y para que el daño que cause sea por quemadura, en el campo Damage Type seleccionamos Burn.


Detalles:

Bueno, para que quede la ilusión del fuego completa, haría falta añadirle sonido y luz. Esto es muy sencillo, agregamos un ambient_generic y utilizamos algún sonido de llamarada dentro del .PAK de HL y para complementar el sonido, agregamos una entidad light y en la propiedad Appearance elegimos alguna de estas: Candel A, Candle B o Candle C.


10) LÍQUIDOS:

Antes que nada vamos a aclarar que hay 3 tipos de líquidos: estáticos, animados y realistas.

Líquidos estáticos:
Este es el mas fácil de crear. Sólo necesitas una textura que comience por el carácter de exclamación ! (como !waterblue, !lavax, !toxicgrn1, !radio, etc.).
Ahora haces un sólido con ella y ya tenes tu fluido listo para servir.

Lo único malo de hacerlo de este modo es que no puedes hacer que el fluido tenga movimiento superficial (oleaje), ni transparencia.


Liquido animado:
Este es el modo mas extendido de crear líquidos, porque podemos hacer que tenga oleaje, que sea transparente y que se pueda mover (hacer que suba o baje)

Se hace en un principio como antes: seleccionamos una textura de liquido, creamos un sólido con la textura elegida y lo transformamos [Ctrl+T] en una entidad func_water.

Entramos en sus propiedades y las configuramos como más nos guste. Antes de nada estableceremos los valores de Render Mode en Texture, y FX Amount en, por ejemplo, 150.

Ahora vamos a las 2 últimas propiedades. En la penúltima propiedad, llamada Contents pondremos Water (agua), ya que si elegimos Slime (cieno) o Lava vamos a morir al instante. Ahora, si queremos oleaje, nos vamos a la última opción llamada Wave Height (altura del oleaje) y le ponemos la altura que queramos, les recomiendo nos sobrepasar un valor de 5 por que las olas son enormes y no se ven nada reales.

Nota: Para hacer que dañe al jugador, crea un sólido con la textura aaatrigger del mismo tamaño que el sólido del agua y conviértelo en una entidad trigger_hurt. Entonces establecemos sus propiedades a gusto, por ejemplo en Damage (daño) ponemos un valor de 10 (acordate que si pones 100 te mata en un segundo) y en Damage Type (tipo de daño) ponemos Chemical (químico).


Liquido realista:
La idea es hacer una zona con líquidos que tengan la capacidad de desplazar al jugador, como si lo llevara la corriente...

Primero comenzamos por la textura, que ya no va a poder ser como las otras, sino que va a tener que ser una con scroll (movimiento) como por ejemplo scrolltoxic. Hacemos un sólido con ella, que va a ser nuestro líquido. Entonces en vez de hacerlo func_water como antes, lo hacemos func_conveyor (cinta transportadora)

Entonces entramos en sus propiedades y ponemos en Conveyor Speed (velocidad de transporte/arrastre) un valor de 20.

También, muy importante, tenemos que establecer el ángulo que va a ser hacia donde nos arrastre el agua (para editar el ángulo, entra a propiedades, mira arriba a la derecha). Desde la vista TOP vemos el ángulo que queremos, como quiero que me lleve hacia la derecha, pongo 0º. Acordate de también ponerle el mismo valor al ángulo de la textura, para que quede realista. Si querés que te lleve hacia la izquierda pone 180°, arriba (según la vista TOP) 90° y abajo (según la vista TOP) 270°, pero si querés que te levante o te baje al lado del circulo negro tenés un botón que si lo presionas se abre un menú que donde están las opciones "up" (arriba) y "down" (abajo).

Después vamos a la solapa Flags y seleccionamos las dos opciones, No Push y Not Solid.

Ahora hacemos un sólido exactamente con el mismo tamaño del de antes, pero esta vez si va a ser func_water. Entonces entramos a sus propiedades y la hacemos invisible, porque solo queremos de ella sus propiedades de líquido, nada mas. Para hacer esto, vamos como siempre, dentro de sus propiedades, a Render Mode y le damos el valor de Texture, y en FX Amount ponemos 0.

Para finalizar hacemos otro sólido con una entidad asignada, pero esta vez será trigger_push. Lo situamos exactamente como los otros dos, para que coincidan los tres. Entramos en sus propiedades y establecemos el valor de la velocidad de empuje.


11) VIDRIOS:

En este tutorial te vamos a enseñar a crear varios tipos de vidrios, tenemos los que se rompen, los polarizados de uno o ambos lados y los que no se rompen.


Vidrios rompibles:
Estos son los básicos. Simplemente crea un sólido con una textura de vidrio (todas las texturas de vidrio contienen la palabra glass en su nombre así que ya sabes como filtrarlos con el VHE). Después de que lo creamos lo convertimos en una entidad func_breakable (Función Rompible) y entra en sus propiedades, las que vamos a configurar a gusto, yo solo te digo para que sirve cada cosa.

Target on Break: Si querés que algo se active/desactive cuando el vidrio sea roto pone el nombre del objeto que querés activar/desactivar en este casillero..
Strenght: Esta es la dureza del vidrio, lo normal para un vidrio no sobrepasa casi nunca los 50 o como un extremo máximo 100, a menos que sea un vidrio como el techo de una zona, en cuyo caso debería ser un vidrio fuerte, ya que en la realidad un vidrio así tendría que soportar mucho peso, de si mismo, como de factores climáticos como lluvia, granizo, nieve, etc.
Material Type: Acá pone si o si glass, para que cuando se rompa se vean pedazos de vidrio y suene como un vidrio roto, ya que si elegís otro, como metal, cuando rompas el vidrio van a salir pedazos de metal en lugar de vidrio.
Gibs directions: Este es un detalle que dirige el movimiento de los pedazos rotos. Si elegís Random van a salir hacia cualquier lado cuando rompas el vidrio, pero si pones Relative to Attack, el movimiento va a ser relativo al ataque. Por ejemplo, si la bala ingreso por la cara izquierda del vidrio, los pedazos van a salir eyectados de izquierda a derecha. Obviamente, este último es el modo más real y por lo tanto queda mejor, así que sugerimos uses Relative to Attack en lugar de Random, salvo que quieras recrear una situación especial.
Render Mode: Utilizamos la opción Texture.
FX Amount: Esto define la transparencia del vidrio, va de 0 a 255, 0 invisible y 255 opaco, recomiendo para vidrios entre 75 y 180.
Ahora si entramos a la solapa Flags vamos a ver 3 características que nos interesan: Only Trigger (solo puede ser roto mediante otra entidad), Touch (se rompe cuando hacemos contacto con el vidrio, supongo no lo he usado) y Pressure (se rompe por presión, es decir, cuando algún objeto cae sobre el mismo, o cuando caminamos sobre su superficie).


Vidrios no rompibles:
Hacer un vidrio no rompible es exactamente igual, pero con la entidad func_wall y no tenés las siguientes propiedades: Target on Break, Strenght, Material Type ni Gibs Directions. Esta entidad no tiene Flags. Asi que las únicas propiedades que tenés que modificar son Render Mode y FX Amount.


Vidrios polarizados de un solo lado:
Empecemos por tener creado un vidrio con la entidad func_wall común y corriente, ahora abrimos la herramienta de Aplicación de Texturas [Shift+A] y a una de las caras del vidrio le aplicamos la textura {blue (ese color azul se vuelve transparente cuando utilizamos una entidad y la configuramos correctamente).



Ahora vamos a crear un vidrio idéntico al anterior. Vamos a utilizar una textura más oscura para el vidrio que va a ser polarizado. Luego los juntamos perfectamente de modo tal que sus caras azules estén pegadas completamente. En la screen debajo están separadas pero solo para que vean como ubicamos los vidrios con respecto a las texturas:



Pues bien, convertimos el vidrio polarizado en una entidad func_wall y en sus propiedades Render Mode ponemos Texture y en FX Amount ponemos 180.

El vidrio que resta también lo convertimos a la entidad func_wall pero en sus propiedad Render Mode ponemos Texture y en Fx Amount ponemos 70.


12) SONIDOS:

Antes que nada, vamos a elegir un sonido que nos guste y quede bien para la parte que vamos ambientar. En nuestro tutorial, escogimos el sonido Drips.wav que se encuentra en el pak0.pak del Half-Life, exactamente en ambience/Drips.wav.

Ahora, para hacer que el sonido suene en nuestro mapa debemos agregar una entidad, en este caso la misma es ambient_generic. De esta forma, en la vista 3D vamos a ver el siguiente icono:



Ahora vamos a configurar la entidad en cuestión, para ello, abrimos sus propiedades, y vemos lo siguiente:



En el casillero de Path/filename.wav of WAV ponemos, como dijimos antes, ambience/Drips.wav y ya el sonido debería funcionar perfectamente haciendo un loop (sonido que se repite) infinitamente.

Para no quedarnos solo en los límites del sonido, te vamos a explicar el resto de las entidades más importantes:

Volume (10 = Loudest): Esta propiedad habla por si sola, y mediante esta, vamos a poder cambiar el volumen del sonido.

Dynamic Presets: Esta propiedad es muy interesante, ya que si tenemos un sonido de una voz, cambiando esta propiedad, el HL va a aplicar filtros sobre el sonido y lo va a simular la opción que hayamos elegido (Por ej: la voz en off "robótica" de HL, se hace con esta opción).

Fade in time (0-100): Esto mide el tiempo en segundos, del efecto Fade In (Comienzo del sonido, subiendo el volumen).

Fade out time (0-100): Esto mide el tiempo en segundos, pero en este caso, del efecto Fade Out (Fin del sonido, bajando el volumen).

Las demás propiedades son todos efectos/filtros adicionales para agregar a nuestro clip de audio. Por otro lado, la entidad ambient_generic tiene los siguientes flags:

Play Everywhere: Tildando esta opción, vas a lograr que el sonido se escuche en todo el mapa.

Small / Medium / Large Radius: Si no utilizamos la opción anterior, esta nos ayuda a establecer el radio del sonido.

Start Silent: Tildando esta opción, el sonido no se reproduce. Esto es ideal para que el sonido sea activado por una sentencia (trigger o por un botón).

Is not Looped: Como dijimos antes, un Loop hace que el sonido se repita infinitamente, si tildamos esta opción, el sonido solo se va a reproducir una sola vez.


13) LLUVIA:

Lo primero que vamos a hacer es bajarte el sprite de lluvia y descomprímelo en la carpeta valve/sprites. Lo siguiente que vamos a hacer es crear un entorno en donde ubicar la lluvia. Como podemos ver en la imagen de aquí abajo, vemos que las entidades están ubicadas en un lugar a cielo abierto, por razones obvias:



Ahora vamos a crear un punto en donde va a empezar a moverse la gota (inicio) y otro en donde va a finalizar (fin) este movimiento.

Vamos a ubicar una entidad info_Target en donde queremos que comience el movimiento de la gota. Para hacer que luzca más real, nos deberíamos situarlo cerca del cielo. Además vamos a ubicar otra emtidad info_Target cerca al piso en donde va a terminar el movimiento de la gota. Lo próximo que nos queda por hacer es cambiar el nombre de estas entidades como describimos aquí debajo:

Code:
info_target (inicial): gota1ini
info_target (final): gota1fin


Ahora estamos creando solo una gota, pero si querés hacer más reemplaza el número 1 por cada gota que crees porej: gota2ini, gota3ini; gota2fin, gota3fin.

Esto es un trabajo no muy agradable, aunque le dan un toque profesional a tus mapas. La alternativa: RainMaker, un programa que genera estas 3 entidades automáticamente y nos ahorran mucho trabajo.



Ahora que ya definimos los nombres de las gotas, vamos a crear la entidad que define el sprite y el movimiento. Para ello vamos a crear una entidad env_beam por cada gota (no importa donde los hayamos creado) y cambiamos sus propiedades de la siguiente manera:

Start Entity: gota#ini (donde # es el número correspondiente a cada gota).

End Entity: gota#fin (idem anterior).

Beam Color (R G B): ponemos el valor 255 255 255, de otra forma, las gotas serían invisibles.

Radius: 512.

Life (seconds, 0=infinite): ponemos el valor 0.

Width of Beam: esto define el ancho del sprite, nosotros vamos a usar un valor de 20.

Sprite Name: ponemos el nombre del sprite (estrella.spr) y la carpeta. En este caso es sprite/rain.spr.

Texture Scroll: esto define la velocidad de movimiento, y es importante que pongamos un valor negativo; sino, la lluvia va a dirigirse hacia arriba. Nosotros vamos a usar un valor de -20 o -30.

En la solapa Flags tildamos Start On (esto habilita la lluvia desde que ingresamos al mapa), y finalmente Shade Start.

Ahora que ya tenés las 3 entidades que forman cada gota, podés duplicarlas para ahorrar tiempo, pero ten mucho cuidado: no hay que olvidar cambiar los nombres de cada entidad, en consecuencia, las gotas van a caer en un mismo lugar y puede suceder otro tipo de error desconocido.

Nota: Hay mods como Spirit of Half-Life o la versión del Counter-Strike 1.6, las cuales tienen entidades propias de lluvias ya programadas, es decir, con solo agregar una sola entidad, ya tenemos lluvia en todo el mapa.


14) OBJETOS DESTRUCTIBLES:

En este tutorial es muy sencillo y te vamos a enseñar como crear sólidos que se destruyen cuando los disparamos se destruyen.

Vamos a empezar creando un sólido de 8 x 64 x 48 unidades con la textura glassblue1 situándolo como si fuese una ventana como se ve en la imagen:



Lo siguiente que vamos a hacer es convertir [Ctrl+T] ese sólido a la entidad func_breakable. Esta entidad nos va a permitir romper en pedazos cualquier sólido que deseemos, ya sea disparándole o mediante una sentencia (trigger o un botón).



Ahora vamos a conocer un poco las propiedades:

Target on Break: Si necesitamos que cuando se destruya el sólido, se active una secuencia, en este casillero ponemos su nombre, en nuestro ejemplo dejamos este casillero vació.

Strengh: Esta propiedad mide la dureza del sólido. Para nuestro ejemplo lo vamos a dejar en 1.

Material Type: Si desplegamos este menú vamos a ver varias opciones. Cada una de esas categorías define los gibs (astillas/pedazos) del objeto que rompamos. En nuestro caso, vamos a dejar la opción por defecto: Glass.

Gibs Direction: Esta propiedad define hacia que lado van a salir despedidos los gibs. Te recomendamos usar la opción Relative to Attack, ya que luce más realista, ya que toma en cuenta el lado en que disparamos.

Delay befor Fire: Este valor en segundos sirve en el caso que necesitemos que el sólido se destruya luego de X cantidad de segundos luego de disparado. Nosotros lo vamos a dejar en 0.

Gib Model: Si no nos gusta ninguna de las categorías de materiales de gibs, en este casillero podemos definir un modelo propio.

Luego tenemos propiedades como Render Mode y Fx Amount, las cuales ya vimos como funcionan y en este caso es exactamente igual.

Ahora, para concluir con la configuración de la entidad func_breakable vamos a ver sus flags:

Only Trigger: este flag nos sirve si queremos evitar que el sólido se rompa al dispararse. En este caso, solo se va a romper cuando alguna sentencia lo active por su nombre.

Touch: tildando esta opción, vamos a poder romper el sólido en cuestión con sólo pasar a través de el, sin necesidad de dispararle.

Pressure: con este flag tildado, el sólido se va a romper cuando algo haga fuerza sobre el mismo. Por ejemplo: cuando pisamos el sólido, o otro sólido ejerce presión sobre el.

Con esto concluimos el tutorial de objetos destructibles. En el mapa de ejemplo incluimos un ejemplo con dos sólidos rompibles: uno de vidrio y otro de metal. Las únicas diferencias radican en 2 o 3 propiedades.

15) HACER AUTOS:

Lo primero es diseñar el vehículo, una vez hecho esto, crea justo en el medio del vehículo un nuevo sólido (un cubo por ejemplo), con la textura "Origin" (que para sintetizar le voy a decir "cuborigin", y agrupalo con el vehículo. Este sólido con al textura "Origin" va a determinar el centro de gravedad del vehículo, lo que va a hacer saber al Half-Life que ese sólido se puede mover en todas las direcciones.



Shinigami-strike... Comenten...

Hora del día
 

El reloj (Para los venezolanos) tiene un retrazo de 30 minutos... sumele 30 minutos ala hora que sale... y esa es la hora dei dia ;)...
Server NORMAL-Clan [SL]
 
Como ya todos querian....

Ya tenemos nuestro primer server.

Mod normal..

Directorio IP: 190.77.30.206:27015

Encuentra ams informacion sobre este server en la seccion Servers de nuestro clan...

By: shinigami-strike
Torneos de CS
 
Ya muy pronto estaremos organizando torneos para el cs 1.6 el ganador se llevara 1 de los 5 premios que les ofreceremos ya les estaremos informando... esten atentos las inscripciones ban a ser por aqui por el foro bye... ya si quieren saver mas informacion sobre los torneos que se efectuaran en este clan comunicate con: shinigami-strike@hotmail.com asta luego que tengan un feliz dia!!!
Pagina de nuestros hermanos
 
Este link es la pagina de nuestra otra web... (no nuestra sino de nuestros hermanos) pero ya somos una comunidad unida... entra a www.legendari.es.tl hai podras tambien encotnrar mas info sobre nuestra comunidad...
Se abrieron las reclutaciones!!
 
Si como lo oyes ya estamos reclutando... Para mas informacion busca en la parte izquierda de la pantalla reclutaciones para nuestro clan... hai dejas tus datos y agregas al msn dicho... y ya seras miembro y te estaremos comunicando todo lo que ocurre...
 
Registrate gratis y disfruta de nuestros servicios gratuitos y comparte con nosotros tu felicidad... ATT: shinigami-strike Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis