CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 29 Jun 2017 11:58

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 5 mensajes ] 
Autor Mensaje
NotaPublicado: 14 Nov 2016 16:01 
Desconectado
Aventurero
Aventurero

Registrado: 13 Nov 2016 01:39
Mensajes: 4
Hola! ;)

Es mi primer publicación en el foro y bueno... tengo apenas nada con ngPaws!
Espero no ser muy terco con mis preguntas ;)

Estoy apenas aprendiendo y pues, inicié con lo de las puertas...
Tengo 2 localidades,
La inicial en la que creamos la llave para desbloquear y abrir mi puerta...

El asunto es:
Al estar la puerta bloqueada y/o cerrada, no puedo ir en este caso a la dirección "NORTE" q es ha donde tengo mi GETEXIT cuando creo mi conect...
Estoy haciendo lo siguiente para que cuando el jugador quiera ver las salidas pueda mirar que hay una al "NORTE"...


CODIGO:

; 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
DONE

El problema que estoy presentando aquí es el siguiente...
A la hora de ejecutar la aventura por medio del navegador web, siendo que cuano el usuario pincha "X" o "SALIDAS" este arroja fictíciamente: Salidas visibles: al norte.

Nota: cuando realmente existe la salida... la palabra "NORTE" queda como un enlace o también conocido como hipervínculo; siendo que podemos pinchar sobre ese enlace y nos manda al cuadrito de texto, en el cual se escriben las respuestas/indicaciones del jugador...

A la hora de yo crear la ficticia... no logro que se vea dicha palabrita como enlace/hipervínculo. Será posible esto?
Y de ser posible, como puedo hacerlo?

Muchas gracias y espero no haber sido Mario Moreno "Cantinflas" con mi explicación! ;)

Que tengan buen día/tarde/noche/madrugada! :D :3


Arriba
 Perfil  
 
NotaPublicado: 14 Nov 2016 17:46 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4606
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-secuencia

Por 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

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 14 Nov 2016 18:18 
Desconectado
Aventurero
Aventurero

Registrado: 13 Nov 2016 01:39
Mensajes: 4
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-secuencia

Por 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 :D
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 :)


Arriba
 Perfil  
 
NotaPublicado: 14 Nov 2016 19:23 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4606
Sí, ahora lo entiendo, la aproximación que haces es la que hacen los programadores de lengua inglesa, porque tienen el LOCK/UNLOCK y el OPEN/CLOSE. En español, al menos por aquí, si alguien te pide que abras una puerta y tienes la llave no hace falta que te diga "desbloquea la puerta y ábrela", te dicen solo "ábrela".

Por otro lado usar la palabra "desbloquear" para una puerta es también muy raro por aquí, solo consideramos que una puerta está bloqueada si hay algo anómalo que impide abrirla (como un armario pesado tras la puerta, o un derrumbe). Para el "locked" nosotros decimos "cerrada con llave", por lo que sería más lógico una orden "abre la puerta con llave" que "desbloquea la puerta", aunque por lo indicado en el primer párrafo esperaríamos que al ejecutar esa orden la puerta se desbloquee y luego se abra, de una vez.

En fin, en otros países puede ser diferente, quizá alguien pueda añadir más detalles. Obviamente, si el plan es crear una aventura para que usuarios angloparlantes aprendan español, puede no ser tan mala idea.

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
NotaPublicado: 16 Nov 2016 18:17 
Desconectado
Aventurero
Aventurero

Registrado: 13 Nov 2016 01:39
Mensajes: 4
Muchas gracias por lo de los Tags de secuencia ;)

les he hechado un vistaso y ahora si mi truco ficticio de salidas visibles... está genial! ;)

Re mil Gracias! :3

Buen día/tarde/noche/madrugada! :)


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 5 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM