pregunta para doom in hexen format
Ir a página 1, 2  Siguiente
 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Diseño DooM -> Edición de mapas
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Vie May 18, 2007 2:32 am    Título del mensaje: pregunta para doom in hexen format Responder citando

bueno Adriel, como ya te abia dicho anteriormente, (ase unos meses), estoy reeditando mi mapa solo que esta bes sera especificamente en hexen format, y ya me salieron barios inpedimento para seguir con el, y uno de ellos es este:
¿como le ago o que accion nesesito ponerle a una linea para que al oprimirla vaje un sector, pero que para poder oprimir esa linea nesesite una yave?.
¿es posible eso?. por que intente poniendole una de las acciones que tiene la seccion plataform, pero no encontre la que explique arriva.

_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Vie May 18, 2007 4:08 pm    Título del mensaje: Responder citando

Hola.

Desafortunadamente no hay una accion que haga lo que necesitas. Pero para eso esta el uso de scripts y se puede hacer de la siguiente manera.

Explicacion.

En la linea que activara la plataforma deberas poner la accion 80 - H Script Execute

El unico parametro es el Script Number. Para el ejemplo es el script numero 1 asi que le pones de valor 1.

Ahora en el menu del doombuilder nos vamos a Scripts y escribimos el siguiente codigo.

Código:

#include "zcommon.acs"

script 1 (void)
{
   if (CheckInventory("YellowCard"))
   {
      Floor_RaiseByValue(1,20,100);
      Delay(35*3); //Nos esperamos 3 segndos antes de que baje
      Floor_LowertoLowest(1,20);
   }
   else
   {
      Print(s:"\cf Necesitas la llave amarilla para subir");
   }
}


Si no habias hecho un script antes te explico desde el principio.

La primera linea va siempre al inicio de los scripts. (#include)

Creamos el script numero 1

Usamos las siguientes funciones.

CheckInventory - Que nos sirve para saber que items ya tenemos, para las otras llaves es "RedCard" y "BlueCard"

Floor_RaiseByValue(1,20,100) - Este sube el sector, los parametros son (tag,speed,height). El tag es el del sector que subira, y height es cuanto subira. En el ejemplo el sector subira una altura de 100.

Floor_LowertoLowest(1,20) - Con esta funcion bajamos el sector, solo dos parametros (tag, speed)

Eso es todo. Si tenemos la llave entonces la plataforma sube. Yo le agrege un "else" (caso contrario) para que el jugador sepa por que no funciona la plataforma, ayuda mucho.

Para eso use la funcion Print

Espero te sirva y sea lo que necesitas, para mayor informacion sobre las funciones utilizadas puedes consultar la wiki de zdoom http://www.zdoom.org/wiki/index.php?title=Main_Page

Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Vie May 18, 2007 10:43 pm    Título del mensaje: Responder citando

aber, lo boy a probar aber como queda y despues te abiso.
_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Lun May 21, 2007 1:10 am    Título del mensaje: Responder citando

¿oye? y ¿como le ago para agregar otro script?,
me quedo bien el codigo que me diste, pero ¿como creo otro sript, para ponerle otra llave?,
ya que le di en "compile" y entonses borre el numero 1 y cree otro con el numero 2, solo que al probar el wad, solo funciona el scipt 2 (el ultimo que ise), y me pone en otra linea, que no puede leer el scipt 1.
¿como agrego un segundo script?
ah y otra cosa, ¿es posible crear una accion igual a la anterior, solo que el sector baje solo cuando tengas las tres llaves? o ¿ya es demasiado?

_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Lun May 21, 2007 4:43 am    Título del mensaje: Responder citando

Puedes poner todos los scripts que desees y van de la siguiente manera:

Código:

#include "zcommon.acs"

script 1 (void)
{

}

script 2 (void)
{

}

script 3 (void)
{

}


Y asi sucesivamente.

Sobre tu pregunta de las tres llaves, si se puede.

Bueno por lo visto no tienes bases en programación pero no te preocupes que no es complicado. Si te fijas en el ejemplo el if es un condicional, si se cumple la condición se ejecuta la acción. Dentro se ese if puedes poner infinidad de condiciones por lo tanto lo que pides quedaria así:

Código:

if (CheckInventory("YellowCard") && CheckInventory("BlueCard") && CheckInventory("RedCard"))
{
//Aqui se ejecuta algo si se cumple la condición de arriba como por ejemplo subir un elevador o abrir una puerta.
}
else
{
//Si no se cumple la condición aqui podremos ejecutar otra cosa como un mensaje al jugador.
}


En las condicionales los simbolos && significan y en la cual el condicional se cumple si todas las condiciones son verdaderas.

Tambien puedes usar los simbolos || que significan o en la cual el condicional se cumple si al menos una condicion es verdadera.

Como en las tablas de verdad.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Mie May 23, 2007 1:32 am    Título del mensaje: Responder citando

muchas grasias Adriel, todo lo que me as puesto a funcionado a la perfeccion, ahora la pregunta por exelencia, creo y espero que es mi ultima pregunta, mira, quiero crear un teletransportador comun y corriente, solo que quiero que la linea este desactivada, y al pasar sobre ella, no pase nada, y que se active presionatdo un "SWITCHSESESES".
¿es posible o ya me fregue?

_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Vie May 25, 2007 3:45 pm    Título del mensaje: Responder citando

Eso lo puedes hacer con dos scripts usando una "bandera" de referencia.

La bandera es una variable de control para saber cuando se podra activar el teleportador.

Código:


#include "zcommon.acs"

int bandera = 0;

script 1 (void)
{
bandera = 1;
}

script 2 (void)
{
   if (bandera == 1)
   {
     Teleport (tid, tag, nosourcefog);
   }
}



El primer script es el switch y el segundo el teleportador.

La bandera al inicio del juego vale 0, por lo tanto no podremos pasar por el teleportador hasta que dicha variable valga 1, entonces lo unico que hay que hacer el cambiar el valor a 1 con un script en el switch.

En Teleport (tid, tag, nosourcefog); pon los valores correctos para teleportar al personaje.

Como podras ver, el ACS al ser programacion hace que casi nada sea imposible en ZDoom.

Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Sab May 26, 2007 11:22 pm    Título del mensaje: Responder citando

mira, ya me esta quedando poco a poco, pero pense que ya no te molestaria pero ¿que crees? tengo otra pregunta.
¿existe la posibilidad de que un switch aga dos funciones?
por ejemplo:
que active el teletransportador y tambien active un thing
¿se puede?
ah, deberias fundar una escuela donde des cursos de porgramacion de scripts para Zdoom, estaria chido
_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Dom May 27, 2007 2:59 am    Título del mensaje: Responder citando

Si se puede, pudes poner todos los if que quieras en un solo script. Por ejemplo en el ultimo script que te puse, despues de activar el teleportador abajo puedes poner mas sentencias if para validar otras acciones.

Saludos.

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




Registrado: 26 Mar 2007
Mensajes: 15

MensajePublicado: Sab Jun 02, 2007 3:36 pm    Título del mensaje: Responder citando

En realidad lo del teleporter es mucho mas sencillo. No hacen falta las variables. Simplemente le pones a las lineas del teleporter la accion Line Identification, con un Line ID del valor que quieras, en este caso sera 1. Sera el tag de la linea. Luego en la linea correspondiente al switch que quieres que active el teleporter le pones la accion 80 Script Execute. En arg1 le pones el numero de script, yo lo hare con script 1.

Y tienes que poner esto:

#include "zcommon.acs"

script 1 (void) { //Sera Void porque tendra un activador
SetLineSpecial(1,70,0,1,0,0,0); //*
print (s:"El teleporter fue activado");
}

*El 1 corresponde al Tag de la linea.
El 70 corresponde a la accion de Teleportar.
Y el tercer 1, corresponde al Arg2 de la accion, es decir, TargetSectorTag. Es el tag que debera llevar el sector en el que pondras el Teleport Destination. No se si me explico.

La accion SetLineSpecial a mi me fue muy util en los mapas que estoy haciendo. Puede convertir lineas de una accion a otra con solo activar un script, con lo cual se pueden lograr efectos muy parecidos a los de Quake2 y Unreal.
_________________
http://www.surfjunky.com/?r=gpena Hace click y ayudame!

http://www.freerapidaccount.com/free/?r=321619 Hace click aca y ayudame!

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Vie Jun 08, 2007 12:50 am    Título del mensaje: Responder citando

mi querido ADRIEL, en estos momentos me encuentro trabajando, pero ocupo este pequeño tiempo de libertad para escribir esto, ¿hay alguna funcion para cambiar de cansion de fondo al pisar una linea?
ah y no me deja aderir mas funciones a una sola linea, me marca un error, ¿sera que lo estoy asiendo mal?
besos.

_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Vie Jun 08, 2007 5:09 am    Título del mensaje: Responder citando

La música la cambias así:

SetMusic("MUSICA", 0);

Donde música es el nombre de la canción como por ejemplo "D_RUNNIN" que es el midi del nivel 1.

ejemplo:

Código:

Script 1 (void)
{
   SetMusic("MUSICA", 0);
}


Lo segundo no entiendo muy bien cual es el problema.

Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Vie Jun 08, 2007 8:07 pm    Título del mensaje: Responder citando

a mira, que bonito, quedo a la perfeccion y justo como lo queria, muchas grasias. pero aver, ¿como le adieres a este script otra funcion? digamos, un teleport.
yo le ise asi, ya ves que tu me digiste que con && o || servia como "Y" y "O", yo le intente asi.


Código:
Script 1 (void)
{
   SetMusic("MUSICA", 0); && Teleport("tag aqui")
}


pero me marca un error al compilarlo, y por mas que le insisto y le intento, no me sale y siempre me dice, ¡NO, NO MUJER, NO, A LA MIERDA!
y entonses me pongo a llorar, y el se pone a reir, y como que ya no me esta gustando, ayudame, helpme place.

_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Vie Jun 08, 2007 9:32 pm    Título del mensaje: Responder citando

Ya entendi.

Los && y || solo se usan para comparar condiciones en los if

Código:

if (a==1 && b==1)


Para meter mas funciones en un mismo script tan solo escribe cada funcion linea por linea

Código:

Script 1 (void)
{
   SetMusic("MUSICA", 0);
   Teleport("tag aqui");
}



Nota - Cada vez que termines de escribir una funcion debes ponerle el caracter ";"

Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
darkphobos
Mapeador



Registrado: 11 May 2007
Mensajes: 41

MensajePublicado: Vie Jun 08, 2007 11:33 pm    Título del mensaje: YA HE MIRADO MUCHO DE SCRIPTS Responder citando

Pero como puedo obtener todos los comandos del ZCommons.acs

Y busquemos lo del decorate, yo cuando tengainformacion les comento.

GRACIAS


-------
Mensaje editado por RicarDooM.
Motivo: Incumplimiento del apartado 3 en las normas del foro
Ver normas


Volver arriba
Ver perfil del usuario Enviar mensaje privado
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Sab Jun 09, 2007 1:16 am    Título del mensaje: Responder citando

En la wiki de zdoom (en ingles) puedes encontrar documentación sobre las funciones.

http://www.zdoom.org/wiki/index.php?title=ACS

En caso de que tengas sobre como utilizarlas puedes preguntarlo en esta página.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Sab Jun 09, 2007 1:56 am    Título del mensaje: Responder citando

RicarDooM escribió:
Código:

Script 1 (void)
{
   SetMusic("MUSICA", 0);
   Teleport("tag aqui");
}


eso tambien lo intente y me marca un error al compilarlo, si quieres capturo una imagen con el error o lo gravo en video para que veas que no te estoy mintiendo.

ah y lo del cambio de musica si me salio, pero puse el numero 1:
"SetMusic("MUSICA", aqui);
¿es nesesario poner aqui un numero? o mas bien ¿ese espasio es para un tag o para que?
fijate ¿eh? le puse 1 sin saber para que era. Smile Smile

_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Sab Jun 09, 2007 3:48 am    Título del mensaje: Responder citando

De hecho ese valor en la función SetMusic no se usa, puedes ponerle lo que quieras aunque lo normal es poner 0.

Sobre el error seria bueno que publicaras una imágen y así saber que ocurre.

Una del error y otra para ver lo que llevas escrito (solo en caso de que el mensaje de error tape el código)

Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Liliana
Mapeador



Registrado: 04 Oct 2006
Mensajes: 61

MensajePublicado: Lun Jun 11, 2007 12:23 am    Título del mensaje: Responder citando

pues la verdad siempre que boy a probar un script, ago un pequeño mapa de prueva y hay lo pruvo, ya despues lo agrego a mi mapa.


_________________
2Da Entrevista a Jumentor
(clik en imagen)


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor MSN Messenger
RicarDooM
Administrador



Registrado: 06 Sep 2006
Mensajes: 443
Ubicación: México

MensajePublicado: Lun Jun 11, 2007 2:28 am    Título del mensaje: Responder citando

Te falto poner la libreria.

Lo siguiente siempre debe ir en la primer linea de tu código.

Código:

#include "zcommon.acs"


Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo 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
Ir a página 1, 2  Siguiente
Página 1 de 2

 
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.