def __init__(self, prototype, salle=None): """Constructeur du PNJ""" Personnage.__init__(self) self._nom = "" self.prototype = prototype self.salle = salle self.salle_origine = salle self.controle_par = None self.instance_connexion = None if salle: salle.pop_pnj(self) if prototype: prototype.no += 1 self.identifiant = prototype.cle + "_" + str( prototype.no) prototype.pnj.append(self) # On copie les attributs propres à l'objet # Ils sont disponibles dans le prototype, dans la variable # _attributs # C'est un dictionnaire contenant en clé le nom de l'attribut # et en valeur le constructeur de l'objet for nom, val in prototype._attributs.items(): setattr(self, nom, val.construire(self)) # On force l'écriture de la race self.race = prototype.race for stat in prototype.stats: t_stat = getattr(self.stats, "_{}".format(stat.nom)) t_stat.defaut = stat.defaut t_stat.courante = stat.defaut self.stats.restaurer() self.lier_equipement(prototype.squelette) self.genre = prototype.genre self.talents.update(prototype.talents) self.sorts.update(prototype.sorts) # Copie de l'équipement for membre, p_objet in prototype.equipement.items(): if self.equipement.squelette.a_membre(membre): objet = importeur.objet.creer_objet(p_objet) self.equipement.equiper_objet(membre, objet) # On force l'écriture du niveau self.niveau = prototype.niveau
def __init__(self): """Constructeur du joueur""" Personnage.__init__(self) self.nom_groupe = type(self).importeur.joueur.groupe_par_defaut self.compte = None self.instance_connexion = None self.connecte = False self.garder_connecte = False self.afk = "" self.retenus = {} self.distinction_visible = "" self.distinction_audible = "" self.no_tick = 1 self.alias_francais = {} self.alias_anglais = {} self.tips = importeur.information.cfg_info.tips self.creation = datetime.now() self.derniere_connexion = None self.adresse_ip = "inconnue" self.cpt_mort = 0 self.description = Description(parent=self, scriptable=False) self.description_a_valider = Description(parent=self, scriptable=False) self.description_modifiee = False self.pk = False