CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 22 Jul 2018 10:15

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 12 mensajes ] 
Autor Mensaje
NotaPublicado: 07 Ene 2011 12:04 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Una razón para que esta línea interrumpa el desarrollo del juego.

if(!equals(verb,"0"))

La contraria no lo hace.
if(equals(verb,"0"))

La línea se utiliza sólo para comprobar que en el menú de los créditos el usuario solo introduce números del 0 al 6.
No es que se interrumpa, lo cierto es que hace algo pero es como si entrara en un bucle sin fin, no muestra error se le oye trabajar, pero no se imprime nada en pantalla.

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 12:06 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5300
Ubicación: Coruña
Con la línea solo, malamente lo podré saber... supongo que lo culpable será lo que esté dentro del if.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 12:12 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Con la línea solo, malamente lo podré saber... supongo que lo culpable será lo que esté dentro del if.


Sí, tienes razón, el caso es que tampoco es nada del otro mundo...
El if está en una localidad.

Citar:
if(!equals(verb,"0"))
{
mobile("guerrero").write("La aventura ha terminado, puedes volverla a jugar o cerrar esta ventana desde el menú 'Archivo' de AGE. \n");
mobile("guerrero").write("Elige la opción deseada.\n\n\n");
mobile("guerrero").writeStory("1: Puntuación ¿has ganado?\n");
mobile("guerrero").writeStory("2: Un poco de historia.\n");
mobile("guerrero").writeStory("3: Un poco sobre AGE.\n");
mobile("guerrero").writeStory("4: Créditos.\n");
mobile("guerrero").writeStory("5: Curiosidades.\n");
mobile("guerrero").writeStory("6: Un poco sobre la autora.\n");
}

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 12:20 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5300
Ubicación: Coruña
Es muy raro, ¿supongo que al menos ese menú se te muestra antes de quedarse colgado?

No sé, igual necesito el código de toda la localidad, porque no creo que el error esté en ese fragmento. Tiene que ser algo que viene de otro lado ya que ese código es inofensivo.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 12:22 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Es que además veo que lo de menos es que sea un 0, o que sea cualquier otro verbo.
Lo hace siempre que en ese if pongo el ! delante del equals, no lo hace en ningún otro.
Y he probado llevando la localidad a un mundo base y no da problemas... no tengo ni idea de qué puede provocarlo.

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 12:23 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Es muy raro, ¿supongo que al menos ese menú se te muestra antes de quedarse colgado?

No sé, igual necesito el código de toda la localidad, porque no creo que el error esté en ese fragmento. Tiene que ser algo que viene de otro lado ya que ese código es inofensivo.


No, no se llega a mostrar, simplemente es como si no pudiera entrar a la localidad.

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 12:24 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5300
Ubicación: Coruña
jenesis escribió:
No, no se llega a mostrar, simplemente es como si no pudiera entrar a la localidad.

Pero ese código no es para entrar en una localidad, ¿no? No sé qué relación tiene con entrar en una localidad... lo dicho, creo que lo mejor será que me digas exactamente qué método es, en qué objeto, y el código completo.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 12:32 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
jenesis escribió:
No, no se llega a mostrar, simplemente es como si no pudiera entrar a la localidad.

Pero ese código no es para entrar en una localidad, ¿no? No sé qué relación tiene con entrar en una localidad... lo dicho, creo que lo mejor será que me digas exactamente qué método es, en qué objeto, y el código completo.



Esa localidad es la que se muestra después del fin, no está enlazada con ninguna, y si la enlazo al intentar entrar, el input se pone rojo y no responde a la orden mirar.

En el caso de que lo haga entre "escenas" el contador de los turnos se pone a sumar y se activa la siguiente escena sin que hayan pasado el número de turnos requerido, así que casi te tendría que mandar todo el código de la aventura. xDD

Voy a mirar unas cosas y te cuento...

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 12:35 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5300
Ubicación: Coruña
Tendrás un evento onEnter para la localidad que tiene un bucle infinito, o bien tendrás algún update con bucle infinito en alguna parte, o bien un update que pone una propiedad a un mismo valor y vuelve a saltar siempre, o bien habrás puesto la propiedad "state" del jugador a un valor alto, o algo así...

Desde luego lo que te puedo asegurar es que el problema no es del if, ni de poner ! delante de equals. Eso es una comparación normal y no puede tener ningún efecto "mágico" :D

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 14:58 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al final lo he hecho de otra manera.
De todos modos si quieres verlo tal como era, puedes mirar en la copia que tienes del proyecto. Es la localidad final y todo sucede si en el primer if(equals... pones la negación, con cualquier verbo que utilices. Yo intentaba descartar a todos los verbos menos los números del 1 al 6, pero al final he encontrado otro modo más práctico de hacerlo.

saludos
Jenesis

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 15:19 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5300
Ubicación: Coruña
Hmm... supongo que el código no era tal como tú me acabas de decir, porque entonces para cualquier verbo que no fuese "0" se ejecutaría el primer if, que no es lo que quieres...

Viendo cómo estaba el código, aunque no sé exactamente cómo lo tenías cuando te daba el error, sospecho que seguramente lo que te pasaba es que entrabas en un bucle de forceCommand.

O sea, en ese método tienes varios forceCommand("mirar"), seguramente tenías los ifs puestos de tal manera que forzabas ese comando, entonces el comando entraba por el parseCommand y se iba por una rama del if que lo volvía a forzar, y así hasta el infinito.

De todas formas, si ya está arreglado, pues es igual.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 07 Ene 2011 16:05 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Hmm... supongo que el código no era tal como tú me acabas de decir, porque entonces para cualquier verbo que no fuese "0" se ejecutaría el primer if, que no es lo que quieres..


No, no era tan simple, lo que ocurre es que como el fenómeno se da con cualquier verbo que niegues en ese bloque al principio, con decirte que probaras eso valía.

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 12 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