Decorate y nueva munición

Iniciado por Karnizero, Marzo 22, 2007, 09:39:02 PM

Tema anterior - Siguiente tema

Karnizero

Bueno, es una duda muy simple que se me ocurrió, pero que necesito resolver con un cierto grado de urgencia.

He creado un arma para el Doom, pero ésta usa un tipo diferente de munición (osea, que no usa ni balas, ni plasma ni misiles ni cartuchos de escopeta), entonces la duda es: ¿cómo le indico al ZDoom, desde el fichero DECORATE, que cada vez que el jugador pase por encima del sprite de las nuevas balas, le añada diez unidades de esas balas al arma en cuestión?
Por ejemplo, tenemos un arma de clavos, y cada vez que el jugador pasa por encima de un sprite con forma de clavo, se le añaden 50 clavos para dicha arma.

Me fijé que en muchos mods han añadido una nueva munición, por ejemplo en el ZBloodpak, que tenemos "maná" para poder usar el libro de resucitar enemigos, sin embargo, no consigo saber cómo lo hicieron.

¿Alguien me podría ayudar?

====

Y otra pregunta, mucho más fácil de resolver:
¿Cómo indico en el fichero DECORATE que cada vez que, por ejemplo, un Ciberdemonio muera, éste deje un paquete de cohetes en el suelo?

Eso es todo.
Muchas gracias por la ayuda.

leo durandal


Aluqah

Primera

Justamente ahora estoy haciendo mi primer arma (que ya funciona) así que no soy muy experto, pero, aparentemente, debes agregar esto en el código de tu arma:

weapon.ammotype "MiPackdeBalas"  //Definido más abajo...
weapon.ammouse 1       //Cantidad que dispara cada vez
weapon.ammogive 20        //Las balas que da cuando la recoges del suelo


y luego, aparte, el código de la munición en sí. Por ejemplo:


actor MiPackdeBalas : Ammo 20666
{
 radius 20
 height 26
 inventory.pickupmessage "Picked up some bullets"
 inventory.icon "MOCOA0"
 inventory.amount 1
 inventory.maxamount 100
 ammo.backpackamount 4
 ammo.backpackmaxamount 200
 states
 {
 Spawn:
   MOPA A -1      //El srpite de tus balas
   stop
 }
}



Segunda

Agregas:

dropitem rocketammo

EDITADO

Perdón, eso último es para que deje 1 cohete, para una caja:
dropitem rocketbox

Karnizero

Cita de: "Aluqah"Primera

Justamente ahora estoy haciendo mi primer arma (que ya funciona) así que no soy muy experto, pero, aparentemente, debes agregar esto en el código de tu arma:

weapon.ammotype "MiPackdeBalas"  //Definido más abajo...
weapon.ammouse 1       //Cantidad que dispara cada vez
weapon.ammogive 20        //Las balas que da cuando la recoges del suelo


y luego, aparte, el código de la munición en sí. Por ejemplo:


actor MiPackdeBalas : Ammo 20666
{
 radius 20
 height 26
 inventory.pickupmessage "Picked up some bullets"
 inventory.icon "MOCOA0"
 inventory.amount 1
 inventory.maxamount 100
 ammo.backpackamount 4
 ammo.backpackmaxamount 200
 states
 {
 Spawn:
   MOPA A -1      //El srpite de tus balas
   stop
 }
}



Segunda

Agregas:

dropitem rocketammo

EDITADO

Perdón, eso último es para que deje 1 cohete, para una caja:
dropitem rocketbox

Muchas gracias por la ayuda.
Ahora ya si que me quedó del todo claro.

Sigfried

Yo cree para el Doom la ballesta de Heretic. Las balas, tal como te dijo Aluqah, son un script aparte (va dentro del mismo script DECORATE pero eso otro ACTOR). Y, como te mostro, tenes que definir eso en el script del arma, y mas abajo creas el ACTOR que corresponde a las municiones, el primer Spawn es el sprite de la bala en el suelo, y los otros de la bala al ser disparada.

No lo he esplicado muy bien, pero como ya te lo dijo Aluqah, es asi como tienes que hacer.[/code]
AS~

Karnizero

Aprovecho este mismo hilo para hacer otra preguntilla:

¿Es posible ejecutar los scripts ACS que hice para el DoomBuilder, desde el fichero Decorate?

Es decir, necesito un comando que, desde el fichero Decorate, me ejecute un script ACS del mapa.

[Gath]

para hacer eso, tienes que poner una linea con la accion 80 (script execute)

Karnizero

Cita de: "[Gath"]para hacer eso, tienes que poner una linea con la accion 80 (script execute)

¿Dónde y cómo pongo dicha línea?
No me sirve que sea desde el "Thing Action" del objeto en el DoomBuilder, tiene que ser desde el propio dump Decorate.

Es decir, una línea de código en el Decorate, como lo siguiente:

ACS_ExecuteScript () [entre paréntesis van los argumentos necesarios]

El problema que yo tengo es que quiero crear un enemigo, que al matarlo, y tras un lapso de tiempo, cree otro enemigo igual a él.
Hasta aquí todo funciona correctamente, pero al crear la copia del enemigo muerto, esta copia NO ejecuta el script ACS para que se cree otra vez otra copia.

No sé si me expliqué bien, pero la cosa quedaría solucionada, si en vez de llamar al Script desde el DoomBuilder, lo llamamos desde el propio ACTOR en el Decorate.

Karnizero

Perdón por el doble post, pero ya he solucionado el problema.

Gracias a todos por la ayuda prestada. :D

Sarge

Cita de: "leo durandal"no se como



:plas:  :plas:  :plas:
Lolalolololololoiloloalolalol.