Asignarle un tipo de daño personalizado a las armas

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Diseño DooM -> Edición de mapas
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Charon




Registrado: 24 May 2009
Mensajes: 212
Ubicación: Limansk

MensajePublicado: Dom May 04, 2014 2:40 am    Título del mensaje: Asignarle un tipo de daño personalizado a las armas Responder citando

Teniendo en cuenta que se extendió el plazo para la entrega de mapas, voy a mostrar y explicar una función que estoy utilizando de manera extendida, para alentar un poco a todo aquel que quiera modificar su mapa más en profundidad.

Lo que hay que hacer es sencillo:

Primero hay que crear un puff nuevo. ¿Qué es un puff? Es el humo que sale cuando la bala choca contra un sólido no sangrante y que imprime el decal de bala en la pared, o bien spawnea el actor de sangrado en caso de chocar contra un actor que sangre.

Por alguna razón, al hacer un inheritance desde el BulletPuff original, la linea que imprime el decal en la pared no se mantiene, por lo que debemos declararla en cada puff personalizado.

Código:
ACTOR ShellPuff : BulletPuff

{

Damagetype ShellDamage
Decal "BulletChip"

}




Luego debemos asignarle el puff al arma con el que queremos hacer un daño personalizado:

Código:

ACTOR SuperShotgunD : SuperShotgun Replaces SuperShotgun

{


// Propiedades y flags del actor


   states
   {
    Fire:
    SHT2 A 3
    SHT2 A 0 A_FireBullets (11.2, 7.1, 20, 5, "ShellPuff")  // Estas tres lineas sustituyen al "A_FireShotgun2"
    SHT2 A 0 A_PlaySound ("weapons/sshotf", CHAN_WEAPON)  // Estas tres lineas sustituyen al "A_FireShotgun2"
    SHT2 A 7 A_GunFlash  // Estas tres lineas sustituyen al "A_FireShotgun2"
    SHT2 B 7
    SHT2 C 7 A_CheckReload
    SHT2 D 7 A_OpenShotgun2
    SHT2 E 7
    SHT2 F 7 A_LoadShotgun2
    SHT2 G 6
    SHT2 H 6 A_CloseShotgun2
    SHT2 A 5 A_ReFire
    Goto Ready
   }    
}


Hay que tener en cuenta que cada arma personalizada hay que agregarla a un slot en el lump KEYCONF.

Después, en cada uno de los enemigos que se le quiera asignar la muerte, se le agrega el estado "death" personalizado:

Código:
Actor Marica : Zombieman 31666
{

// Propiedades y flags del actor

states {

Death.Shelldamage:

// Código de muerte especial

          }

}



Y eso es todo. De ésta forma vamos a poder crear diferentes tipos de muertes para cada arma.

Con algo de ingenio se pueden hacer cosas muy interesantes con éste tipo de código, sobre todo si lo combinamos con ACS.

Saludos!
_________________

Hexagon 1970 Dev

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
el5emendechucky




Registrado: 25 Sep 2007
Mensajes: 490

MensajePublicado: Dom May 04, 2014 4:38 am    Título del mensaje: Responder citando

gracias! tenia este problema de no saber darle un tipo especial de daño a las armas que usan balas para que cada una causara una animacion de muerte diferente en las victimas.

nunca se me habria ocurrido usar los puff.
_________________


Volver arriba
Ver perfil del usuario Enviar mensaje privado
Charon




Registrado: 24 May 2009
Mensajes: 212
Ubicación: Limansk

MensajePublicado: Dom May 04, 2014 6:46 am    Título del mensaje: Responder citando

Yo tuve la idea en un principio de hacerlo mediante un proyectil muy rápido y con un skin vacío, para simular una bala (Bueno, al fin y al cabo una bala es un proyectil), y pude implementarlo así a la primera, pero luego merodeando por la wiki de ZDoom me encontré con el tema de los puffs y me pareció más sencillo y práctico.
_________________

Hexagon 1970 Dev

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Diseño DooM -> Edición de mapas Todas las horas están en GMT + 2 Horas
Página 1 de 1

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas


Powered by phpBB

Todos los contenidos de esta página, salvo que conste un autor o licencia diferente, están licenciados bajo la Licencia Creative Commons
DOOM y DOOM II son marcas registradas de id Software, Inc.