Les Voltigeurs d'URU LIVE
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
ETB Pokémon Fable Nébuleuse : où ...
Voir le deal

Déterminer le sexe d'un avatar

Aller en bas

Déterminer le sexe d'un avatar Empty Déterminer le sexe d'un avatar

Message  V@-Michel Ven 5 Oct - 22:59

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 :

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)

cheers
V@-Michel
V@-Michel
Admin
Admin

Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum