Déterminer le sexe d'un avatar
Page 1 sur 1
Déterminer le sexe d'un avatar
Un robot qui répond à certains mots qu'on lui envoie c'est bien, mais personnaliser le message en fonction du sexe de l'avatar à qui il s'adresse c'est encore mieux !
Prenons un exemple.
Un avatar envoie à un robot masculin la commande qui le fait rejoindre le robot où qu'il se trouve.
Au début, j'avais mis comme phrase envoyée par le robot à l'avatar :
"Félicitation %s, je suis impressionné que tu m'aies retrouvé !" %(nplayer)
Mais j'ai voulu être moins impersonnel et comme le robot est de type masculin, selon qu'il va voir tomber sur lui un garçon ou une fille, sa réponse sera différente.
S'il s'agit d'un garçon, sa réponse sera : "J'aurais préféré qu'une fille me saute dessus %s!Hahaha!" %(nplayer)
S'il s'agit d'une fille, sa réponse sera : "J'adore qu'une fille vienne dans mes bras!Je t'embrasse %s" %(nplayer)
Pour celles et ceux qui ne le savent pas encore %s dans une phrase remplace un "string" que l'on place en variable après les guillemets, dans notre cas : %(nplayer) où nplayer est le nom de l'avatar.
Mais comment déterminer le sexe d'un avatar ?
Tout simplement avec la fonction Plasma : getAvatarClothingGroup()
Cette fonction retourne 0 si le groupe auquel appartiennent les habits de l'avatar est du genre masculin et 1 s'il est du genre féminin.
Et, comme il n'est pas possible qu'un garçon mettent des vêtements féminins et vise-versa, le tour est joué !
Pratiquement comment procéder ?
Etant donné que cette fonction me sert pour que les robots répondent automatiquement, j'ai créé une fonction que j'ai appelé
Civilites (nomavatar,langue)
Avec deux paramètres : nomavatar qui est le nom de l'avatar dont on veut connaître le sexe et langue qui me permet de choisir si le robot va répondre en français ou en anglais.
Cette fonction va retourner une liste de mots que vous pouvez agrémenter selon vos propres besoins.
Voici le code :
Remarquez l'utilisation de ma fonction SCOAvatar(nomavatar) que j'ai déjà expliqué dans un autre sujet et qui me retourne le sceneobject de l'avatar nécessaire pour utiliser la fonction getAvatarClothingGroup().
Reprenons notre exemple du dessus.
Imaginons que Yodawave envoie au robot la commande M qui va l'amener sur le robot (abreviation de sur moi) (c'est la commande w en anglais). Comme le robot sait que M est une commande française, la langue de Yodawave est le français et donc, il lui répondra en français
également.
Le robot lance la procédure listegenre = Civilites ("Yodawave","fr").
Celle-ci va déterminer que Yodawave est habillé en garçon et qu'il est donc un homme (en tout cas dans le jeu, lol)
En retour listegenre prendra donc la valeur de la liste genrem = ["un homme","Monsieur","un garcon","masculin","il","le"].
Dans la procédure d'analyse des messages reçus par le robot, il y aura une instruction du genre :
if listegenre[0] == "un homme":
message ="J'aurais préféré qu'une fille me saute dessus %s!Hahaha!" %(nplayer)
else:
message ="J'adore qu'une fille vienne dans mes bras!Je t'embrasse %s" %(nplayer)
Prenons un exemple.
Un avatar envoie à un robot masculin la commande qui le fait rejoindre le robot où qu'il se trouve.
Au début, j'avais mis comme phrase envoyée par le robot à l'avatar :
"Félicitation %s, je suis impressionné que tu m'aies retrouvé !" %(nplayer)
Mais j'ai voulu être moins impersonnel et comme le robot est de type masculin, selon qu'il va voir tomber sur lui un garçon ou une fille, sa réponse sera différente.
S'il s'agit d'un garçon, sa réponse sera : "J'aurais préféré qu'une fille me saute dessus %s!Hahaha!" %(nplayer)
S'il s'agit d'une fille, sa réponse sera : "J'adore qu'une fille vienne dans mes bras!Je t'embrasse %s" %(nplayer)
Pour celles et ceux qui ne le savent pas encore %s dans une phrase remplace un "string" que l'on place en variable après les guillemets, dans notre cas : %(nplayer) où nplayer est le nom de l'avatar.
Mais comment déterminer le sexe d'un avatar ?
Tout simplement avec la fonction Plasma : getAvatarClothingGroup()
Cette fonction retourne 0 si le groupe auquel appartiennent les habits de l'avatar est du genre masculin et 1 s'il est du genre féminin.
Et, comme il n'est pas possible qu'un garçon mettent des vêtements féminins et vise-versa, le tour est joué !
Pratiquement comment procéder ?
Etant donné que cette fonction me sert pour que les robots répondent automatiquement, j'ai créé une fonction que j'ai appelé
Civilites (nomavatar,langue)
Avec deux paramètres : nomavatar qui est le nom de l'avatar dont on veut connaître le sexe et langue qui me permet de choisir si le robot va répondre en français ou en anglais.
Cette fonction va retourner une liste de mots que vous pouvez agrémenter selon vos propres besoins.
Voici le code :
- Code:
def Civilites (nomavatar,langue="en"):
"""Retourne une liste genre en fonction du sexe et de la langue de l'avatar"""
scoplayer = SCOAvatar(nomavatar)
avatar = scoplayer.avatar
groupe = avatar.getAvatarClothingGroup()
genre = []
gender = []
genrem = ["un homme","Monsieur","un garcon","masculin","il","le"]
genref = ["une femme","Mademoiselle","une fille","feminin","elle","la"]
genderm = ["a man","Mister","a boy","male","he","him"]
genderf = ["a woman","Miss","a girl","feminine","she","her"]
if groupe == 0:
genre = genrem
gender = genderm
else :
genre = genref
gender = genderf
if langue.lower() == "en":
return gender
else :
return genre
Remarquez l'utilisation de ma fonction SCOAvatar(nomavatar) que j'ai déjà expliqué dans un autre sujet et qui me retourne le sceneobject de l'avatar nécessaire pour utiliser la fonction getAvatarClothingGroup().
Reprenons notre exemple du dessus.
Imaginons que Yodawave envoie au robot la commande M qui va l'amener sur le robot (abreviation de sur moi) (c'est la commande w en anglais). Comme le robot sait que M est une commande française, la langue de Yodawave est le français et donc, il lui répondra en français
également.
Le robot lance la procédure listegenre = Civilites ("Yodawave","fr").
Celle-ci va déterminer que Yodawave est habillé en garçon et qu'il est donc un homme (en tout cas dans le jeu, lol)
En retour listegenre prendra donc la valeur de la liste genrem = ["un homme","Monsieur","un garcon","masculin","il","le"].
Dans la procédure d'analyse des messages reçus par le robot, il y aura une instruction du genre :
if listegenre[0] == "un homme":
message ="J'aurais préféré qu'une fille me saute dessus %s!Hahaha!" %(nplayer)
else:
message ="J'adore qu'une fille vienne dans mes bras!Je t'embrasse %s" %(nplayer)
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Sujets similaires
» Liste des commandes de la console Plasma
» Déplacer son avatar sur un objet d'une prp chargée
» Comment envoyer une note à un avatar
» Téléporter un avatar dont le nom est inclu dans un dictionnaire
» Utiliser un robot pour envoyer un avatar vers un autre âge que celui où il se trouve
» Déplacer son avatar sur un objet d'une prp chargée
» Comment envoyer une note à un avatar
» Téléporter un avatar dont le nom est inclu dans un dictionnaire
» Utiliser un robot pour envoyer un avatar vers un autre âge que celui où il se trouve
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum