¿Como hacer esto en Doom builder?

Iniciado por [Xer]Vichonix, Octubre 02, 2011, 11:32:48 PM

Tema anterior - Siguiente tema

[Xer]Vichonix

buenas, estoy haciendo un nuevo wad, y lo que quiero es, por ejemplo que al coger un health bonus, o llaves (ya sean estas rojas, verdes, calaveras o normales) te den algo como dinero, o creditos, que despues  puedas comprar armas o cosas, osea, algo que mediante un script los vuelva "dinero" y puedas comprar cosas no se si me explico, gracias.

Rieper_47

para serte sincero, no tengo puta idea  :¡doh!:
Solo se que para eso, se necesita un Script
Hace tiempo vi un posteo similar a este, solo que preguntaban como hacer para que las puertas te exijan ciertos Creditos para abrirla y que al matar a cierto monstruo te dan ciertos creditos, no se si te sirva eso para que al menos te des una idea

[Xer]Vichonix

si, bueno es bastante parecido a lo que quiero ojala alguien postee el script o algo y me ayude, gracias  ;)

Rieper_47

#3
Bueno pues este es un ejemplo con un IF.

#include "zcommon.acs"

Int Creditos=0;

Script 1 (Void)
{
If(Creditos == 0)
{
SetHudSize(640, 400, 0);
Setfont("dbigfont");
Hudmessage (s:"Necesitas 100 creditos";
HUDMSG_FADEOUT, 0, CR_YELLOW, 320.4, 190.0, 2.0, 2.0);
}

If(Creditos == 100)
{
SetHudSize(640, 400, 0);
Setfont("dbigfont");
Hudmessage (s:"Adelante Puedes pasar";
HUDMSG_FADEOUT, 0, CR_YELLOW, 320.4, 190.0, 2.0, 2.0);
Door_Open(2,40);
Floor_LowerToLowest(1,40);
}
}


Script 2 Open
{
While(Thingcount(T_Cacodemon,666)>0)
{
Delay(70);
}
SetHudSize(640, 400, 0);
Setfont("dbigfont");
Hudmessage (s:"Has Obtenido 100 creditos";
HUDMSG_FADEOUT, 0, CR_YELLOW, 320.4, 190.0, 2.0, 2.0);
Creditos = 100;
}


cuando presionas el boton aparece el mensaje necesitas 100 creditos
cuando matas al caco te aparece otro mensaje has obtenido 100 creditos
y ya puedes abrir la puerta y algo extra el boton desaparece.

aqui te dejo el mapa con el ejemplo por si lo quieres descargar:

http://www.megaupload.com/?d=3T38O4O6

Ahora he estado intentando hacer lo que tu pides pero de otra manera, cosa que al matar a un enemigo recibes cierta cantidad de creditos y una arma cuesta cierta cantidad de creditos igualmente, asi que al hacer el script hice algo parecido a esto:

If(Creditos == 100)
{
Giveinventory (Shotgun,1);
SetHudSize(640, 400, 0);
Setfont("dbigfont");
Hudmessage (s:"Has comprado una escopeta";
HUDMSG_FADEOUT, 0, CR_YELLOW, 320.4, 190.0, 2.0, 2.0);
}
}


Hay con eso puedes hacerte una idea y practicarlo, modificando el script

[Xer]Vichonix

#4
Muchisimas gracias! pero una pregunta, que le tengo que agregar al script para que los creditos sean algo asi acumulables? por ejemplo, que se acumulen 100 y despues mates a otro caco y sean 200 o a un IMP y sean 50 etc, y al final que te resten los creditos, por ejemplo, al tener los 100 tengas que escoger entre 2 puertas, cada una cuesta 100 creditos y al abir alguna te quita 100.

Saludos y espero tu respuesta, gracias!  :D

a y algo para que se van la cantidad de creditos en una esquina si es posible

Rieper_47

He tratado de hacer lo que tu dices, pero no he encontrado un script que te ayude en eso  ???
Tal vez lo hay y esta fuera de mi conocimiento, espero que alguien mas en el foro te ayude,
no obstante he estado pensando en un script que "Tal Vez" (y lo escribo en comillas porque no lo he probado) pueda hacer una de las cosas que pedistes, que se te acumulen los creditos, pero solo hasta hay he quedado, mi idea es hacer un script (Como los anteriores) en que le añades a todos los monstruos una cierta cantidad de creditos que te dan al matarlos

Script 2 (void)
{
While(Thingcount(T_imp,666)>0)
{
Delay(70);
}
Creditos = 10;
}
Script 3 (void)
{
While(Thingcount(T_Demon,667)>0)
{
Delay(70);
}
Creditos = 20;
}
etc.....


Aun no lo he probado, pero dudo que resulte devido a una cosa
While(Thingcount(T_imp,666)>0)
Por eso, devido a que dice que no tiene que quedar ningun imp para ganar creditos, aun busco la manera que te los den al matarlos de inmediato, o sea, que cada uno te de los creditos...Seguire tratamdo y luego te aviso, a menos que otro te ayude

doomero

los scripts anteriores estan bien te recomiendo que uses custom inventories, son mas eficaces, puedes poner un acs dentro del decorate del custominventory en el estado "pickup", luego un script que chequea inventorios algo asi como un

if (checkinventory("inventorio") == 100 )
{

aqui pones el evento que quieras

}

if (checkinventory("inventorio") < 100 )
{
otro evento que sea opuesto al primero
}

if (checkinventory("inventorio") >100 )
{

otro evento extra al primero

}


y asi......


en el estado pickup pones una cs execute


pickup:
tnt1 a 1 acs_execute(xxx,0)
stop


en acs:


script xxxx (void)
{
giveinventory("inventorio", "valor que quieras");
}


ejemplo:

script xxxx (void)
{
giveinventory("inventorio", 1);
}


[Lukasxd]

Debes tener 54 en skills de doom builder para efectuar esta operacion.
:O -> https://sh33p.neocities.org/<-
Cualquier comentario(mío) generado en este sitio es pura ficción y no representa mi punto de vista.

[Xer]Vichonix

Bueno chicos, gracias por sus respuestas, la verdad es que tuve que hacer un tipo de mezclas de lo que me dijeron ustedes dos en cuanto a scripts y le añadí cosas mas detalladas, se me hizo mas difícil pero resulto tal y como quería, saludos!