CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 17 Oct 2017 12:47

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 5 mensajes ] 
Autor Mensaje
NotaPublicado: 24 Jun 2015 06:37 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Antes de seguir, pregunto si es correcto el uso de los condactos sharp colon y bloques de código que estoy haciendo. Prefiero despejarme dudas ahora y no más adelante que estaría todo más liado.

Tengo un proceso al que llego al examinar una parte del cuerpo de un personaje. Cuando se llega a este proceso ya he confirmado que está el personaje y que queremos examinar o las manos, el cuello... etc.
Por ejemplo tecleando:
>>ex cuello de PERSONAJE.

Llegaría a un proceso con el siguiente código:
El flag 51 tendría la parte del cuerpo y fAux el personaje.

Código:
; La víctima
_ _
 eq fAux pVictima

  ; El cuello
 eq# 51 oCuello
 {
 write "Examinas el cuello de la víctima."
 onotzero# pVictima aVicForense ;El forense aún no ha examinado el cadáver
 writeln "Para un análisis más preciso mejor esperar el resultado de la autopsia."
 ozero# pVictima aVicForense ;El forense ya ha examinado la víctima
 writeln "El forense ya ha examinado la víctima. CREAR RESPUESTA"
 }
 ; Las manos
 eq# 51 oManos
 writeln "Examinas las manos de la víctima"
 ; La cabeza
 eq# 51 oCabeza
 {
 write "Examinas la cabeza de la víctima"
 onotzero# pVictima aVicForense
 write " Aunque es mejor esperar el resultado de la autopsia."
 newline
 }

 ; Los ojos
 eq# 51 oOjos
 writeln "Reflejan la falta de vida."
 done

; AURELIO
_ _
 eq fAux pAurelio
 pnjdice pAurelio "Ejem... ¿jefe que mira?" 0
 done

; EL DOCTOR COROLO
_ _
 eq fAux pCorolo
 pnjdice pCorolo "Perdone inspector, resulta incómodo que me mire así." 0
 done                 


Funcionar, me funciona como quiero, pero no sé si más adelante podría tener alguna pega. He estado revisando algún que otro fuente disponible en superglus y no he visto su uso, de ahí mis dudas.

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
NotaPublicado: 24 Jun 2015 08:50 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
El uso es correcto, aunque solo veo que uses los sharp, no los colon.

Sin embargo, por claridad del código, te recomiendo que cuando pones un sharp que solo tiene un condacto detrás (es decir, cuando no necesitas llaves), lo indentes un poco o lo pongas detrás, es decir, en lugar de:

Código:
XXXX
EQ# 51 oOjos
WRITELN "Reflejan la falta de vida."
XXXX


Código:
XXXX
EQ# 51 oOjos
  WRITELN "Reflejan la falta de vida."
XXXX


o

Código:
XXXX
EQ# 51 oOjos WRITELN "Reflejan la falta de vida."
XXXX


De esa manera se ve claro lo que se ejecuta si se cumple el eq#.

Por cierto, no hay ejemplos en Superglús porque esto es una novedad de ngPAWS, y como las dos única aventuras publicadas para ngPAWS (McArra's Quest y Rudolphine) son conversiones de Superglús, probablemente no lo usan.

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


Arriba
 Perfil  
 
NotaPublicado: 25 May 2016 19:21 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Tengo el código que funciona ok:

Código:
subir cuerda
 at 19
 eq fCondionSpolier 1
 writeln "Te agarras a la cuerda con fuezas..."
 bzero# fTonterias tonteria4
 {
     writeln "¡Venga Wally que tú puedes!"     
     bset fTonterias tonteria4
 }
 ; Aquí pasamos a localidad 28
 anykey
 goto 28
 desc
 done       


Pero claro la "tontería" que imprime está bien la imprima sólo una vez, el resto de veces, para no cansar al jugador se debe cambiar de localidad directamente.
Debo poner ANYKEY para que se vea el mensaje antes de que la descripción de la siguiente localidad me lo machaque. Pero también es un poco pesado, tener que pulsar tecla cada vez que subamos por la cuerda.
Puse ANYKEY dentro del bloque de código:

Código:
subir cuerda
 at 19
 eq fCondionSpolier 1
 writeln "Te agarras a la cuerda con fuezas..."
 bzero# fTonterias tonteria4
 {
     writeln "¡Venga Wally que tú puedes!"     
     bset fTonterias tonteria4
     anykey
 }
 ; Aquí pasamos a localidad 28
 goto 28
 desc
 done   


Pero este segundo no funciona. Al meter ANYKEY dentro del bloque, pasa directamente a la localidad 28, sin imprimir la "tontería".
¿cómo hacer que al pasar a la otra localidad no me machaque un mensaje anterior?

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
NotaPublicado: 25 May 2016 22:46 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
El uso que haces es correcto, pero lamentablemente ANYKEY y todos los condactos que esperan una tecla, o un click de ratón, son un poco peculiares, y no funcionan dentro de un bloque.

En cualquier caso, para este problema en concreto, y dado que necesitas el ANYKEY, se puede hacer una aproximación más clásica a tu problema (que es más fea, pero es efectiva desde los 80):

Código:
subir cuerda
 at 19
 eq fCondionSpolier 1
 writeln "Te agarras a la cuerda con fuezas..."
 bzero fTonterias tonteria4
 writeln "¡Venga Wally que tú puedes!"     
  bset fTonterias tonteria4
  anykey

subir cuerd
 at 19
 eq fCondionSpolier 1
 goto 28
 desc


Nota: detrás de un desc, no hace falta done, el desc ya hace el "done" :-)

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


Arriba
 Perfil  
 
NotaPublicado: 26 May 2016 03:51 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Bua me obcequé en el código inicial que pasé y no veía la solución de "toa la vida"

Lo que pasa es que tengo que poner el código de la siguiente forma:

Código:
subir cuerda
 at 19
 eq fCondicionSpoiler 1
 writeln "Te agarras a la cuerda con fuezas..."
 bzero fTonterias tonteria4
 writeln "¡Venga Wally que tú puedes!"
 bset fTonterias tonteria4
 anykey
 goto 28
 desc
 
 ;Aquí pasamos a localidad 28
subir cuerda
 at 19
 eq fCondicionSpoiler 1
 goto 28
 desc       


Ya que la primera vez, cuando no ha dicho aún la "tontería", si no añado depués de anykey las instrucciones "goto 28 / desc" no me cambia de localidad, es decir, no continua por la tabla de respuesta sin haber un "done".

He probado la siguiente. Primero en el .js de la aventura para verlo todo bien he comentado clearTextWindow();

Código:
function descriptionLoop()
{
   describe_location_flag = false;
   //clearTextWindow();
.....


Luego en ngPaws:

Código:
subir cuerda
 at 19
 eq fCondicionSpoiler 1
 writeln "Te agarras a la cuerda con fuezas..."
 bzero fTonterias tonteria4
 writeln "¡Venga Wally que tú puedes!"
 bset fTonterias tonteria4
 writeln "Aquí"
 print 33
 newline
 print 34
 newline

 ;Aquí pasamos a localidad 28
subir cuerda
 writeln "Aquí 2"
 at 19
 eq fCondicionSpoiler 1
 goto 28
 desc       


Me resulta:

Spoiler: Mostrar
> subir cuerda
Te agarras a la cuerda con fuezas...
¡Venga Wally que tú puedes!
Aquí
10 > EL VERBO SUBIR
81 > LA CUERDA
Aquí 2
Has subido hasta la copa de uno de los árboles. Desde aquí ves de cerca el un gran nido asentado en una de las ramas del otro árbol.
> bajar
Das un saltito y ....
Aterrizas al pie del árbol.
Pulsa una tecla para continuar.
Un enorme agujero en el suelo marcado como “old faithful”, y dos enormes árboles llenan esta zona de la jungla. El sonido de un gran ave retumba en el cielo.
> subir cuerda
Te agarras a la cuerda con fuezas...
Aquí 2
Has subido hasta la copa de uno de los árboles. Desde aquí ves de cerca un gran nido asentado en una de las ramas del otro árbol.


Todo perfecto, pero al añadir el ANYKEY

Código:
subir cuerda
 at 19
 eq fCondicionSpoiler 1
 writeln "Te agarras a la cuerda con fuezas..."
 bzero fTonterias tonteria4
 writeln "¡Venga Wally que tú puedes!"
 bset fTonterias tonteria4
 anykey
 writeln "Aquí"
 print 33
 newline
 print 34
 newline

 ;Aquí pasamos a localidad 28
subir cuerda
 writeln "Aquí 2"
 at 19
 eq fCondicionSpoiler 1
 goto 28
 desc     


Spoiler: Mostrar
> subir cuerda
Te agarras a la cueda con fuezas...
¡Venga Wally que tú puedes!
Pulsa una tecla para continuar.
Aquí
10
81 --- HASTA AQUÍ HE LLEGADO
> subir cuerda --- HE TENIDO QUE TECLEAR DE NUEVO EL COMANDO
Te agarras a la cuerda con fuezas...
Aquí 2
Has subido hasta la copa de uno de los árboles. Desde aquí ves de cerca un gran nido asentado en una de las ramas del otro árbol.


Ha continuado por la tabla de respuestas después de ANYKEY, pero se para justo en la instrucción print 34 / newline.

Bueno todo este rollo lo comento a modo informativo, por si te es útil para algo. Con el cógio que he puesto al incio ya me funciona correcto.

_________________
Te quiero... lo siento Yoda sólo tenemos café.


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 4 invitados


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:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM