Armas estáticas

De LiTHiUM

Tutorial Avanzado #3 (GoldSrc)
Título completo: Creación de Armas Estáticas (ametralladoras, lanzacohetes, láser, etc.)
Requisitos: Se supone un manejo intermedio del WorldCraft/Hammer y las entidades del HL/CS, y conocimiento de las herramientas PakExplorer y SprView

Tabla de contenidos

Introducción

En este tutorial vamos a aprender cómo hacer armas estáticas para el Half-Life. Todas funcionan correctamente en el HL, peeeero costará mas hacerlas funcionar en nuestro CS... :(

Comenzamos por describir el proceso de creación de cada tipo de arma, y luego diremos en que mapa se puede usar.


Creando el arma

Lo primero es crear el arma. Podemos hacerla nosotros mismos, con mucha paciencia, podemos ir a una web de prefabricados o también podemos destripar un mapa oficial que tenga armas y cogerlas... ^^'

Una vez tenemos el arma del estilo que queramos, la colocamos donde nos apetezca (sobre un trípode, barandilla, muro, en un búnker, etc.) y pondremos justo en su centro un sólido con la textura "ORIGIN" (como hacíamos para crear las puertas rotatorias) que será el centro sobre el que gire el arma. ¡Ojo!, sin este centro, el arma no se moverá.

¡Recuerda que el arma obligatoriamente tiene que estar apuntando hacia el Este (en la vista de planta)!
Luego cuando lo transformemos todo en "func_tank" ya configuraremos su posición especificando los grados...

Ahora vamos a ver como se debe configurar cada tipo de arma:


Haciendo una ametralladora

Transformamos el arma con forma de ametralladora (junto con su origen) en "func_tank". Entonces editamos sus propiedades:

  • "Name" (Nombre): Le pondremos el nombre que queramos, por ejemplo "ametralladora1".
  • "Target" (Objetivo): Aquí irá el nombre de una entidad "ambient_generic" que usaremos para recrear el efecto del sonido del arma al disparar.
  • "Yaw Rate" (Ratio de movimiento lateral): En este campo especificaremos la velocidad del movimiento lateral del arma. Para dar sensación de velocidad, recomendamos un valor de 600.
  • "Yaw Range" (Rango de movimiento lateral): Este es el rango de grados que permitiremos que gire el arma a derecha e izquierda. Podremos poner 90(grados) para que gire un poco (si está clavada en un bunker, por ejemplo) o 180 (grados) para que gire de derecha a izquierda (si está en una torre de vigilancia). Podemos darle también un valor de 360 (grados) para que de la vuelta completamente pero esto no queda realista...
  • "Pitch Rate" (Ratio del grado de inclinación): En este campo especificaremos la velocidad del movimiento vertical del arma. Para dar sensación de velocidad, recomendamos de nuevo un valor de 600.
  • "Pitch Range" (Rango del grado de inclinación): Este es el rango de grados que permitiremos que gire el arma a derecha e izquierda. Podremos poner 90 (grados) para que gire un poco, 180 (grados) para que gire de arriba a abajo, pero no más, pues no sería realista.
  • "Barrel Length" (Longitud del cañon): Aquí irá la distancia de el centro del sólido origen hasta el extremo del cañón. Deberemos calcularla nosotros, y hacerlo bien, pues el motor del HL se guiará de esta medición para colocar la salida de la bala y el efecto de la luz del cañón.
  • "Barrel Horizontal" (Cañon horizontal): Aquí irá la distancia horizontal (eje y) de el centro del sólido origen hasta el extremo del cañón. Deberemos calcularla nosotros, como antes y hacerlo bien de nuevo.
  • "Barrel Vertical"' (Cañon vertical): Aquí irá la distancia vertical (eje z) de el centro del sólido origen hasta el extremo del cañón. Deberemos calcularla nosotros, otra vez y por supuesto hacerlo bien... ;)
  • "Flash Sprite" (Sprite que simula el flash de fuego del cañón): En este campo introduciremos la ruta del sprite que queramos para simular el efecto de flash de fuego que sale del cañón de una ametralladora al disparar. Por ejemplo podemos poner "sprite/muzzleflash3.spr" (recuerda que los sprites muzzleflash2.spr y muzzleflash3.spr son distintos en el CS, son mas realistas).
  • "Sprite Scale" (Escala del sprite): Aquí pondremos un valor para aumentar o reducir el tamaño del sprite a nuestro gusto. Lo normal es que pongamos 1, que es el tamaño original.
  • "Rate of Fire" (Ratio de fuego): Esto es, el número de balas por segundo que dispara el arma. Recuerda que la pistola de los Terroristas en modo normal dispara 1 bala y en modo "burst"(ráfaga) dispara 3. Un MP5 puede disparar unas 5.
  • "Damage per Bullet" (Daño por cada bala): Pues eso, es el daño que hace cada bala. Pondremos un valor no muy elevado, para que sea realista. De 5 a 10.
  • "Firing Persistance" (Persistencia de los disparos): Este campo está orientado mas a los mapas para un sólo jugador, pues indica que las ametralladoras que estan controladas por los grunts no empiecen a disparar o acaben de hacerlo automáticamente, sino con un retardo, para darle realismo y posibilidades de escape al jugador.
  • "Bullet Accuracy" (Precisión de los disparos): Podemos elegir la precisión de los disparos. Irá desde "perfect shot" (disparo perfecto) hasta "extra-large cone" (cono muy amplio), las balas toman una trayectoria mas abierta, con lo que es mas difícil que nos den :)
  • "Bullets" (Balas): Aquí podremos elegir el tipo de balas que dispararemos con nuestra ametralladora.

Ahora, entramos en la solapa de "Flags" y activamos la opción "Controllable". Con esto haremos que la pueda usar cualquier jugador.

¡Para ver los sprites que puedes usar, utiliza el programa SprView! Lo tienes en la sección de Herramientas.


Controles y sonido

Primero crearemos los controles de la ametralladora. Creamos un sólido, justo detrás de la ametralladora, con la textura "AAATRIGGER" y la transformamos en "func_tankcontrols". Entonces entramos en sus propiedades y en el campo "Tank entity name" ponemos el nombre que le dimos anteriormente a la ametralladora, que era "ametralladora1".

Ahora, para darle mas realismo, pondremos una entidad "ambient_generic". El nombre de esta entidad debe coincidir con el que hayamos puesto en el campo "Target" de la nueva entidad-ametralladora, por ejemplo "bumbum" :) En "Path/filename of the WAV" pondremos un sonido de arma que nos guste.

  • Si el mapa es para el HL buscaremos con el PakExplorer dentro del archivo pak0.pak de la carpeta "valve". Están dentro de "valve/sound/weapons/".
  • Si el mapa es para el CS, podremos buscar en el .pak o sencillamente irnos a la carpeta del CS, en "cstrike/sound/weapons/".

Yo por ejemplo he usado el sonido de la Colt sin silenciador. Debería quedar en el campo del "ambient_generic" esto: "weapons/m4a1_unsil-1.wav".

Ahora nos vamos a la solapa "Flags" y activamos "Medium Radious" (radio mediano de audición del sonido), "It NOT looped" (el sonido no hace un bucle infinito, se para) y "Start Silent" (al principio no suena, hasta que lo activemos).

Tendríamos algo semejante a esto:

¿Y si queremos un lanzacohetes?

Si la ametralladora estática te parece poca cosa, entonces puedes crear... ¡¡¡un lanzacohetes estático!!!

Se hace de igual modo, pero en vez de esociar al sólido la "func_tank", asociaremos la "func_tankrocket". La configuración de las propiedades, el movimiento y el sonido se hace de forma exctamente igual. Para darle un mayor realismo debemos configurar el sonido y del movimiento del arma diferente al "func_tank" anterior.

Debido a algún tipo de bug en el módulo MP.DLL del Counter-Strike, al intentar usar el lanzacohetes obtendremos un maravilloso error y saldremos al escritorio. Se supone que si se puede usar, ya que viene este arma en las especificaiones del FGD... :?

Entonces, el lanzacohetes lo usaremos únicamente en el Half-Life. Nuestro nuevo lanzacohetes podría quedar así:


Aumentar


¿Y si preferimos un mortero?

Naaah...un lanzacohetes no es nada comparado con un buen mortero. Además de hacer trizas lo que se le ponga por medio...¡¡¡hace temblar la tierra!!!

Lo único que no me gusta del todo del mortero es que los proyectiles son invisibles... :(

Bueno, hacemos lo mismo, creamos un sólido que se parezca algo a un mortero (¿alguien no sabe cómo es un mortero? :)), y luego lo asociamos a la función "func_tankmortar". Configuraremos las propiedades genereles, que son como las del "func_tank", a nuestro gusto, y además tendremos una nueva propiedad:

  • "Explosion Magnitude" (Magnitud de la explosión): Aquí introduciremos un valor que será la magnitud de la explosión provocada por cada disparo del mortero.

Aparte del sonido, deberemos situar una entidad "env_shake" que simulará el temblor que produce el impacto de la bomba lanzada por un mortero. Lo que haremos será entrar en las propiedades de la "env_shake" y darle en el campo "Name" el mismo nombre que hemos puesto en la variable "Target" de la "func_tankmortar". Las otras 4 propiedades de esta nueva entidad las configuraremos a nuestro gusto.

¡Recuerda que el nombre que le has dado a la entidad "env_shake" debe ser también el nombre de la entidad "ambient_generic"!

Una vez acabado nuestro devastador mortero, tendríamos algo parecido a esto:


Aumentar


¿Y por qué no un arma láser?

Podemos tabmién hacer una especie de arma láser... un arma extraña, experimental que bla, bla... 8)

Este arma se hace de una forma bastante parecida a las otras. Primero hacemos el sólido-arma futurista y lo hacemos "func_tanklaser". Además de configurar las propiedades comunes a las demás armas, nos encontramos con una llamada "env_laser Entity", donde deberemos poner un nombre. Este campo funcionará de forma parecida al campo "Target", pero en vez de activar el sonido, activará la entidad "env_laser" que debemos poner al lado del arma. Esta entidad será la encargada de generar ese rayo láser tan chulo...

Después entramos en las propiedades de la entidad "env_laser" y en el campo "Name" ponemos el nombre que pusimos en el campo "env_laser Entity" de la "func_tanklaser". En el campo "Target of laser" escribiremos el nombre de la "func_tanklaser". En "Beam color" elegiremos el color del rayo láser. Ahora entramos en la solapa de "Flags" y activamos las opciones "End Sparks" para que salten chispas cuando el rayo choca con algo, y "Decal End" para que aparezcan marcas de quemado por donde pase . Los demás parámetros los ajustaremos a nuestro gusto...

Para darle un poquito mas de realismo, ha colocado una entidad "ambient_generic", con un radio de sonido pequeño, para simular que el arma láser genere un zumbido aunque no se use... ;)

Y nuestro láser experimental podría quedar así:


Aumentar


Mapas de ejemplo

Si quieres bajarte los 4 mapas (ametralladora, lanzacohetes, mortero y láser) creados para este tutorial, haz click aquí.



Tutorial, imágenes y mapas por vEK, 8 de noviembre de 2000.
Herramientas personales