ambar-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mine-dev] Version 2.0 de los PNJs, ¡funcio nando!


From: turingtest
Subject: [Mine-dev] Version 2.0 de los PNJs, ¡funcio nando!
Date: Sun, 17 Aug 2003 00:41:59 +0100

Ultimas noticias: la Tutora habla!!!! Despues de desmontar por completo la 
version 1.0 del sistema de diálogos y sustituirla por el nuevo mecanismo, los 
PNJs ya son capaces de activar guiones de Operatividad. ¡Esto marcha! 8-D

Los ficheros XML antiguos ya no son válidos, así que ahora prácticamente no 
tiene conversación (hasta que pueda transformar los antiguos, con un XSL). A 
cambio, le he enseñado un par de trucos nuevos que antes no era capaz de hacer. 
;-)


Lo malo es que estoy teniendo algunos problemas serios:

- El diseño de los métodos "hablar", "gritar" y "susurrar" de la clase 
Personaje está mal hecho. El feedback "Dices: <mensaje>" se produce desde la 
clase Dialogo, y el mensaje que ve resto de jugadores ("peregrino1 dice 
<mensaje>") desde la clase Personaje. Pero como la acción de tipo "hablar" 
llama directamente a Personaje.hablar, el jugador que está hablando no ve el 
feedback de sus propios mensajes cuando habla con el PNJ. Y la clase Personaje 
no tiene acceso al método conn() de Dialogo para producir el feedback por su 
cuenta. ¿Como lo arreglo? ¿Subo lo que tengo al CVS (aunque no está presentable 
de cara al público), o buscamos primero una solución?


- El programa casca al intentar salir de la habitación en la que está la 
tutora. Y no tengo ni idea de cual puede ser la causa (me pasa desde que empecé 
a tocar la clase InterfazPNJHablante). Aqui está el volcado de la excepción:



Aug 17 00:25:27: peregrino1 el humano ejecuta:  +abajo
Aug 17 00:25:27: Excepción imprevista durante la ejecución de un comando.
Aug 17 00:25:27:  -> conexión desde 127.0.0.1
Aug 17 00:25:27:  -> comando +abajo
Aug 17 00:25:27:  -> dialogo <class 'dialogonormal.DialogoNormal'>
Aug 17 00:25:27:  -> personaje peregrino1
Aug 17 00:25:27: Traza de pila (más reciente último):
Aug 17 00:25:27:   Fichero ./interfazpj.py, línea 266 en comando_recibido()
Aug 17 00:25:27:   Fichero ./dialogonormal.py, línea 227 en comando_0()
Aug 17 00:25:27:   Fichero ./dialogonormal.py, línea 295 en ejecutar()
Aug 17 00:25:27:   Fichero ./dialogonormal.py, línea 1233 en cmd_mover()
Aug 17 00:25:27:   Fichero ./personaje.py, línea 663 en mover()
Aug 17 00:25:27:   Fichero ./sala.py, línea 868 en salir_personaje()
Aug 17 00:25:27: Excepción exceptions.KeyError: peregrino1
Aug 17 00:25:27: La conexión desde 127.0.0.1 ha liberado al personaje peregrino1
Aug 17 00:25:27: Enviando al limbo a peregrino1
Aug 17 00:25:27: Problema gordo: no se puede mantener la conexión. La tiramos...
Aug 17 00:25:27: La conexión desde 127.0.0.1 ha liberado al personaje peregrino1
Aug 17 00:25:27: Enviando al limbo a peregrino1
Traceback (most recent call last):
  File "./mine.py", line 84, in ?
    Mundo.conn_handler.run()
  File "./connection.py", line 331, in run
    conn.data_available()
  File "./connection.py", line 213, in data_available
    self.receive_callback(self)
  File "./interfazpj.py", line 305, in comando_recibido
    self.desconectar()
  File "./interfazpj.py", line 123, in desconectar
    self.liberar_personaje()
  File "./interfazpj.py", line 107, in liberar_personaje
    self.__personaje.liberar()
  File "./personaje.py", line 694, in liberar
    self.mover(Mundo.localizar_sala(Mundo.ID_SALA_LIMBO))  # se asume que el 
limbo tiene
  File "./personaje.py", line 663, in mover
    if self.__sala != None: self.__sala.salir_personaje(self)
  File "./sala.py", line 868, in salir_personaje
    del self.__personajes[personaje.id]
KeyError: peregrino1
Aug 17 00:25:27: Saliendo del programa...
Aug 17 00:25:27: Se ha caido bruscamente la conexion con 127.0.0.1
Aug 17 00:25:27: La conexión desde 127.0.0.1 ha liberado al personaje peregrino1
Aug 17 00:25:27: Enviando al limbo a peregrino1
Error in sys.exitfunc:
Traceback (most recent call last):
  File "./mine.py", line 59, in preparar_salida
    Mundo.conn_handler.close_all()
  File "./connection.py", line 337, in close_all
    conn.close(1)
  File "./connection.py", line 164, in close
    self.error_callback(self)
  File "./interfazpj.py", line 311, in error_de_conexion
    self.desconectar()
  File "./interfazpj.py", line 123, in desconectar
    self.liberar_personaje()
  File "./interfazpj.py", line 107, in liberar_personaje
    self.__personaje.liberar()
  File "./personaje.py", line 694, in liberar
    self.mover(Mundo.localizar_sala(Mundo.ID_SALA_LIMBO))  # se asume que el 
limbo tiene
  File "./personaje.py", line 663, in mover
    if self.__sala != None: self.__sala.salir_personaje(self)
  File "./sala.py", line 868, in salir_personaje
    del self.__personajes[personaje.id]
KeyError: peregrino1
address@hidden ambar]$


Y al volver a iniciar Mine y crear un nuevo personaje peregrino, me da este 
otro error, y hay que borrar el directorio /salas para que todo vuelva a 
funcionar:


Aug 17 00:27:54: Conectado nuevo cliente desde 127.0.0.1.
Aug 17 00:27:56: Creando un personaje...
Aug 17 00:27:58: El nombre que ha elegido el jugador es: peregrino1
Aug 17 00:27:58: Excepción imprevista durante la ejecución de un comando.
Aug 17 00:27:58:  -> conexión desde 127.0.0.1
Aug 17 00:27:58:  -> comando peregrino
Aug 17 00:27:58:  -> dialogo <class 'dialogocrear.DialogoCrear'>
Aug 17 00:27:58: Traza de pila (más reciente último):
Aug 17 00:27:58:   Fichero ./interfazpj.py, línea 266 en comando_recibido()
Aug 17 00:27:58:   Fichero ./dialogocrear.py, línea 239 en comando_1()
Aug 17 00:27:58:   Fichero ./dialogocrear.py, línea 1161 en estado_20()
Aug 17 00:27:58:   Fichero ./mundo.py, línea 144 en localizar_sala()
Aug 17 00:27:58:   Fichero ./sala.py, línea 105 en cargar()
Aug 17 00:27:58:   Fichero ./cronomine.py, línea 150 en __setstate__()
Aug 17 00:27:58:   Fichero ./fechahoramine.py, línea 211 en __cmp__()
Aug 17 00:27:58: Excepción exceptions.AttributeError: 'NoneType' object has no 
attribute '_FechaHoraMine__segundos_totales'
Exception exceptions.AttributeError: "'PersonajeJugador' object has no 
attribute '_Personaje__controlador'" in <bound method PersonajeJugador.__del__ 
of <personajejugador.PersonajeJugador object at 0x82c17d4>> ignored




--------------------------------------
Este mensaje supera el Test de Turing.

-- 
__________________________________________________________
Sign-up for your own personalized E-mail at Mail.com
http://www.mail.com/?sr=signup

CareerBuilder.com has over 400,000 jobs. Be smarter about your job search
http://corp.mail.com/careers





reply via email to

[Prev in Thread] Current Thread [Next in Thread]