Uto escribió:
Hola y bienvenido!
Para que una palabra se convierta en un enlace tienes que escribirla como tag de secuencia:
Código:
{ACTION|norte|norte}
Esto viene a querer decir que si se pinte un enlace con la palabra "norte" que a pincharlo envie una orden "norte" al parser como si el jugador la hubiera tecleado.
Es decir, tienes que poner
Código:
WRITELN "Salidas visibles: al {ACTION|norte|norte}."
Más información sobre tags de secuencia aquí:
https://github.com/Utodev/ngPAWS/wiki/Tags-de-secuenciaPor lo demás, me pierdo un poco con tu uso del flag fPuerta y la conexión, creo que me falta algo o estás usando ambas cosas para lo mismo. Te planteo otra solución por si te sirve de inspiración:
Por defecto la conexión existe (en la tabla de conexiones hay una salida al norte), pero solo podemos cruzar si hemos abierto la puerta, lo cual sucede si el flag fPuertaAbierta no es cero:
Código:
N _
AT lEntrada
ZERO fPuertaAbierta
WRITELN "La puerta al norte está cerrada."
DONE
No necesitas una respuesta especial para las salidas, porque como la localidad existe, ya saldrá listada la salida al norte. No hay que hacer más, aunque obviamente debe haber una entrada que permita abrir la puerta con un SET fPuertaAbierta en algún sitio
Hola de nuevo y mil gracias por esa tan cordial bienvenida! :3
Paso a detallar explísitamente lo que estaba buscando con mi código:
Supuestamente tengo una puerta en la cual requiero de una llave para poder abrirla, pero, no solo es abrirla, con la llave voy a desbloquearle y independientemente de si o no tengo la llave en el inventario o en cualquier otra room, abrir/cerrar mi puerta. Puesto que abrir y cerrar solo es girar el tomo

Si mi puerta está bloqueada, le avisa al jugador que necesita la llave y a parte que necesita desbloquearle. Le estoy dando ambas pistas de no tener la llave en el inventario y de estar bloqueada la puerta.
Estoy definiendo la palabra BLOQUEAR Y DESBLOQUEAR COMO VERVOS EN LA TABLA voc.

Entonces, el flag fPuerta lo uso justamente, para controlar si la puerta está abierta o cerrada y el fConex, para chequear si o no hay conexión

quizá la estoy liando mucho por la lógica y el como estoy visualizando el problema y su planteamiento.
Pero lógicamente, si yo llego a mi casa, puedo girar el tomo, pero si la llave está hechada, no puedo abrir la puerta, por lo q saco la llave de mi bolsillo, la meto a la chapa/pestillo/tomo y la giro para quitar seguro/candado... jajaja

y una ves hecho esto, ahora si giro el tomo y puedo abrirla

Bah... yo creo que igual la toy liando bastante por verlo de esta forma...

y bueno, al yo chequear por primer ves "X" si lo dejo sin la ficción, va a decirme que no ve salidas... por eso uso ese truco...

dejo aquí algo de mas código para que logren entenderme mas

.
Gracias!
codigo en tabla de respuestas.
; Creamos la sentencia fictisia para decirle al usuario que existe salida al norte.
X _
AT lEntrada
ZERO fPuerta
WRITELN "Salidas visibles: al norte."
DONE
;Condicionamos para evitar que el usuario pueda ir al norte sin que la puerta esté desbloqueada o abierta.
N _
AT lEntrada
LT 33 14
GETEXIT _voc_N fConex
EQ fConex 255
ZERO fPuerta
WRITELN "Tienes que desbloquear la puerta."
DONE
N _
AT lEntrada
ZERO fPuerta
WRITELN "La puerta está cerrada."
DONE
;Iniciaremos el proceso de las puertas, para ver si están bloqueadas, cerradas, desbloqueadas o abiertas.
;Comprobar si el jugador lleva consigo la llave
DESBLOQUEAR PUERTA
AT lEntrada
NOTCARR oLlave
WRITELN "Necesitas la llave para deslboquear la puerta."
DONE
DESBLOQUEAR PUERTA
AT lPasilloEntrada
NOTCARR oLlave
WRITELN "Necesitas la llave para deslboquear la puerta."
DONE
;Terminamos las entradas para poder desbloquear la puerta sin llave.
;Acción para bloquear la puerta.
BLOQUEAR PUERTA
AT lEntrada
GETEXIT _voc_N fConex
EQ fConex 255
NOTCARR oLlave
WRITELN "La puerta está bloqueada y necesitas la llave para desbloquearla."
DONE
BLOQUEAR PUERTA
AT lEntrada
NOTCARR oLlave
WRITELN "Necesitas la llave para bloquear la puerta."
DONE
BLOQUEAR PUERTA
AT lPasilloEntrada
NOTCARR oLlave
WRITELN "Necesitas la llave para bloquear la puerta."
DONE
;terminamos las entradas para bloquear la puerta sin la llave.
;Entradas para deslboquear puerta cuando si tenemos la llave.
DESBLOQUEAR PUERTA
AT lEntrada
CARRIED oLlave
ZERO fPuerta
GETEXIT _voc_N fConex
EQ fConex 255
SETEXIT _voc_N lPasilloEntrada
WRITELN "Introduciendo la llave la giras y desbloqueas la puerta."
DONE
;COMPROBAMOS QUE NO PUEDA DESBLOQUEAR MAS.
DESBLOQUEA PUERTA
AT lEntrada
GETEXIT _voc_N fConex
WRITELN "Intentas girar mas la llave y te das cuenta que no sede mas."
DONE
;TERMINAMOS LA ENTRADA PARA DESBLOQUEAR LA PUERTA CON LA LLAVE.
;ENTRADA PARA BLOQUEAR LA PUERTA CON LA LLAVE.
BLOQUEAR PUERTA
AT lEntrada
NOTZERO fPuerta
WRITELN "Primero tienes que cerrar la puerta."
DONE
BLOQUEAR PUERTA
AT lEntrada
CARRIED oLlave
ZERO fPuerta
GETEXIT _voc_N fConex
NOTEQ fConex 255
CLEAREXIT _voc_N
WRITELN "Giras la llave al contrario y bloqueas la puerta."
DONE
BLOQUEAR PUERTA
AT lEntrada
ZERO fPuerta
GETEXIT _voc_N fConex
EQ fConex 255
WRITELN "La puerta ya está bloqueada."
DONE
;Y FINALMENTE TERMINAMOS LAS RUTINAS DONDE CHECAMOS QUE SE BLOQUIÉ Y DESBLOQUIÉ LA PUERTA Y SI YA LO ESTABAN,QUE NO SE PERMITA MAS.
;INICIO DE LAS RUTINAS PARA ABRIR LA PUERTA UNA VES DESBLOQUEADA.
ABRIR PUERTA
AT lEntrada
GETEXIT _voc_N fConex
EQ fConex 255
ZERO fPuerta
WRITELN "Primero desbloquea la puerta."
DONE
ABRIR PUERTA
AT lEntrada
GETEXIT _voc_N fConex
NOTEQ fConex 255
ZERO fPuerta
WRITELN "Girando el tomo abres la puerta."
LET fPuerta 1
DONE
ABRIR PUERTA
AT lEntrada
GETEXIT _voc_N fConex
NOTEQ fConex 255
NOTZERO fPuerta
WRITELN "La puerta ya está abierta y no sede más."
DONE
;FINALIZA EL PROCESO PARA ABRIR LA PUERTA.
Espero con este code tengas mejor idea de lo que intento hacer
