690 |
self.conn().send("Describir sucesos del entorno: " + |
self.conn().send("Describir sucesos del entorno: " + |
691 |
color(31) + '+[ent]orno <texto>' + finl) |
color(31) + '+[ent]orno <texto>' + finl) |
692 |
self.conn().send("Entablar una conversación con un PNJ: " + |
self.conn().send("Entablar una conversación con un PNJ: " + |
693 |
color(31) + '+decir [pnj] <texto>' + finl) |
color(31) + '+decir <pnj> <texto>' + finl) |
694 |
self.conn().send("Preguntar al PNJ por un tema: " + |
self.conn().send("Preguntar al PNJ por un tema: " + |
695 |
color(31) + '+[p]reguntar por <texto>' + finl) |
color(31) + '+[p]reguntar <pnj> <texto>' + finl) |
696 |
|
|
697 |
elif args[0] == "ataque": |
elif args[0] == "ataque": |
698 |
|
|
717 |
|
|
718 |
def cmd_recapitular(self, argumentos): |
def cmd_recapitular(self, argumentos): |
719 |
pnjs = filter(lambda p: isinstance(p, PersonajeNoJugador), self.__personaje.sala.personajes.values()) |
pnjs = filter(lambda p: isinstance(p, PersonajeNoJugador), self.__personaje.sala.personajes.values()) |
720 |
if len(pnjs) != 1: |
|
721 |
|
pnjs_ids = [] |
722 |
|
for pnj in pnjs: pnjs_ids.append(pnj.id.split('%')[0]) |
723 |
|
|
724 |
|
try: |
725 |
|
if argumentos[0] in pnjs_ids: |
726 |
|
pnj = pnjs[pnjs_ids.index(argumentos[0])] |
727 |
|
argumentos = argumentos[1:] |
728 |
|
else: |
729 |
|
self.conn().send("No conoces nadie llamado %s\n" % argumentos[0]) |
730 |
|
return |
731 |
|
except: |
732 |
self.conn().send("¿De qué personaje quieres recordar la conversación?\n") |
self.conn().send("¿De qué personaje quieres recordar la conversación?\n") |
733 |
return |
return |
|
pnj = pnjs[0] |
|
734 |
|
|
735 |
from interfazpnjhablante import InterfazPNJHablante |
from interfazpnjhablante import InterfazPNJHablante |
736 |
if not isinstance(pnj.controlador, InterfazPNJHablante): |
if not isinstance(pnj.controlador, InterfazPNJHablante): |
775 |
return |
return |
776 |
|
|
777 |
def cmd_hablar_pnj(self, comando, argumentos): |
def cmd_hablar_pnj(self, comando, argumentos): |
778 |
|
|
779 |
|
if len(argumentos) < 2: |
780 |
|
self.conn().send("Debes decir o preguntar a alguien por algo.") |
781 |
|
return |
782 |
|
|
783 |
pnjs = filter(lambda p: isinstance(p, PersonajeNoJugador), self.__personaje.sala.personajes.values()) |
pnjs = filter(lambda p: isinstance(p, PersonajeNoJugador), self.__personaje.sala.personajes.values()) |
784 |
if len(pnjs) != 1: |
pnjs_ids = [] |
785 |
self.conn().send("¿Con quién quieres hablar?\n") |
for pnj in pnjs: pnjs_ids.append(pnj.id.split('%')[0]) |
786 |
|
|
787 |
|
if argumentos[0] in pnjs_ids: |
788 |
|
pnj = pnjs[pnjs_ids.index(argumentos[0])] |
789 |
|
argumentos = argumentos[1:] |
790 |
|
else: |
791 |
|
self.conn().send("No has indicado correctamente con quién deseas hablar\n") |
792 |
return |
return |
793 |
pnj = pnjs[0] |
|
|
|
|
794 |
from interfazpnjhablante import InterfazPNJHablante |
from interfazpnjhablante import InterfazPNJHablante |
795 |
if not isinstance(pnj.controlador, InterfazPNJHablante): |
if not isinstance(pnj.controlador, InterfazPNJHablante): |
796 |
self.conn().send(pnj.id + " no responde.\n") |
self.conn().send(pnj.id + " no responde.\n") |
797 |
return |
return |
|
|
|
|
if len(argumentos) == 0: |
|
|
return |
|
798 |
|
|
799 |
try: |
try: |
|
if comando == "preguntar" and argumentos[0] == "por": |
|
|
argumentos = argumentos[1:] |
|
800 |
pnj.controlador.conversa_personaje(self.__personaje, comando, string.join(argumentos, ' ')) |
pnj.controlador.conversa_personaje(self.__personaje, comando, string.join(argumentos, ' ')) |
801 |
except Exception: |
except Exception: |
802 |
# Conviene protegerse contra errores en carga de salas. No es bueno que por |
# Conviene protegerse contra errores en carga de pnjs. No es bueno que por |
803 |
# un fichero de sala mal escrito pete el servidor entero o te eche de la |
# un fichero de pnj mal escrito pete el servidor entero o te eche de la |
804 |
# conexión. |
# conexión. |
805 |
escribir( "Ha saltado una excepcion al intentar " + comando) |
escribir( "Ha saltado una excepcion al intentar " + comando) |
806 |
escribir_excepcion() |
escribir_excepcion() |
807 |
if self.conn().is_open: |
if self.conn().is_open: |
808 |
self.conn().send("Ha habido un error interno del programa referente a esta conversación.") |
self.conn().send("Ha habido un error interno del programa referente a esta conversación.") |
809 |
self.conn().send("No puedes hacer esta pregunta. Por favor, habla con algun administrador de Mine.") |
self.conn().send("No puedes hacer esta pregunta. Por favor, habla con algun administrador de Mine. Puedes escribir a mine_ste@yahoogroups.com.") |
810 |
return |
return |
811 |
|
|
812 |
pnjs = filter(lambda p: p.__module__ == "personajenojugador", self.__personaje.sala.personajes.values()) |
pnjs = filter(lambda p: p.__module__ == "personajenojugador", self.__personaje.sala.personajes.values()) |