/[ambar]/ambar/dialogonormal.py
ViewVC logotype

Diff of /ambar/dialogonormal.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.33 by pabloruiz, Tue Aug 13 21:40:06 2002 UTC revision 1.34 by pabloruiz, Wed Aug 14 16:46:22 2002 UTC
# Line 690  class DialogoNormal(Dialogo): Line 690  class DialogoNormal(Dialogo):
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    
# Line 717  class DialogoNormal(Dialogo): Line 717  class DialogoNormal(Dialogo):
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):
# Line 765  class DialogoNormal(Dialogo): Line 775  class DialogoNormal(Dialogo):
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())

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26