Récupérer la liste des potes (buddies)
Page 1 sur 1
Récupérer la liste des potes (buddies)
Voici deux petits scripts fort utiles aux développeurs de robots.
Ils permettent de récupérer la liste des copains (buddies en anglais) afin, par exemple, de leur envoyer à eux et eux seuls un message ou une note.
La première (BudList()) retourne une liste de type "NodeReflist" et la seconde (PtBudList()) une liste de "PtPlayers".
Je vais ensuite vous expliquer pourquoi ces deux types différents.
Avec la première, il nous est possible de récupérer quelques informations utiles concernant un joueur : son nom, son #KI, l'âge dans lequel il est actuellement et le GUID de cet âge.
Voici une fonction qui l'expoite :
Pour le robot, c'est surtout PtBudList() qui sera intéressante car il répond aux avatars avec la fonction Plasma :
PtSendRTChat(PtGetLocalPlayer(),Plist, message,Flag)
PtGetLocalPlayer() retourne le PtPlayer du robot
Plist est une liste de PtPlayers à qui est destiné le message
message est le message à envoyer sous forme de texte (string)
Flag est le drapeau qui indique comment sera formaté le message, comme je vous l'ai déjà expliqué dans un autre sujet.
Donc, si mon robot utilise :
PtSendRTChat(PtGetLocalPlayer(),PtBudList(),"Ceci est mon message",10)
Tous ses buddies recevront le message "Ceci est mon message" dont la couleur du texte sera blanche et l'en-tête ("From Magicbot:") de couleur cyan .
Dernière chose.
Si vous remplacez dans la fonction BudList(): ptVault().getBuddyListFolder() par ptVault().getPeopleIKnowAboutFolder() ,vous récupèrerez la liste des contacts récents à la place des copains.
Ils permettent de récupérer la liste des copains (buddies en anglais) afin, par exemple, de leur envoyer à eux et eux seuls un message ou une note.
La première (BudList()) retourne une liste de type "NodeReflist" et la seconde (PtBudList()) une liste de "PtPlayers".
Je vais ensuite vous expliquer pourquoi ces deux types différents.
- Code:
def BudList():
"""Retourne la liste des buddies"""
buddies = ptVault().getBuddyListFolder()
budlist = buddies.getChildNodeRefList()
return budlist
def PtBudList():
"""Retourne la liste des buddies sous forme de ptplayers"""
ListeBuds = BudList()
PtBudsListe=[]
for bud in ListeBuds:
buddy = bud.getChild().upcastToPlayerInfoNode()
ptbuddy = ptPlayer(buddy.playerGetName(),buddy.playerGetID())
PtBudsListe.append (ptbuddy)
return PtBudsListe
Avec la première, il nous est possible de récupérer quelques informations utiles concernant un joueur : son nom, son #KI, l'âge dans lequel il est actuellement et le GUID de cet âge.
Voici une fonction qui l'expoite :
- Code:
def Refonebud(nombud):
budliste = BudList()
"""Donne les infos sur un buddy et retourne le playerinfonode de ce buddy"""
agebud = 'pas present'
GUIDagebud = ''
for bud in budliste:
buddy = bud.getChild().upcastToPlayerInfoNode()
if buddy.playerGetName() == nombud:
idbud = buddy.playerGetID()
present = buddy.playerIsOnline()
if present == 1:
agebud = buddy.playerGetAgeInstanceName()
GUIDagebud = buddy.playerGetAgeGuid()
print "%d %s %s %s" %(idbud,nombud,agebud,GUIDagebud)
return buddy
print "%s n'est pas un buddy"%(nombud)
return None
Pour le robot, c'est surtout PtBudList() qui sera intéressante car il répond aux avatars avec la fonction Plasma :
PtSendRTChat(PtGetLocalPlayer(),Plist, message,Flag)
PtGetLocalPlayer() retourne le PtPlayer du robot
Plist est une liste de PtPlayers à qui est destiné le message
message est le message à envoyer sous forme de texte (string)
Flag est le drapeau qui indique comment sera formaté le message, comme je vous l'ai déjà expliqué dans un autre sujet.
Donc, si mon robot utilise :
PtSendRTChat(PtGetLocalPlayer(),PtBudList(),"Ceci est mon message",10)
Tous ses buddies recevront le message "Ceci est mon message" dont la couleur du texte sera blanche et l'en-tête ("From Magicbot:") de couleur cyan .
Dernière chose.
Si vous remplacez dans la fonction BudList(): ptVault().getBuddyListFolder() par ptVault().getPeopleIKnowAboutFolder() ,vous récupèrerez la liste des contacts récents à la place des copains.
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Sujets similaires
» Liste des racourcis clavier du client
» Liste des commandes de la console Plasma
» Le coin d'Annabelle
» Liste et prix des éléments disponibles à la boutique
» Liste des commandes de la console Plasma
» Le coin d'Annabelle
» Liste et prix des éléments disponibles à la boutique
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum