Réaliser un robot (une idée d'Annabelle...)
5 participants
Page 2 sur 2
Page 2 sur 2 • 1, 2
Re: Réaliser un robot (une idée d'Annabelle...)
Lyrositeur a écrit:Moi je sais déjà comment faire alors...
Je pense bien que tu le sais puisque Lyrobot utilise probablement un script similaire et que, en outre, tu n'as pas de mauvaises intentions dans le jeu.
De toute façon, tout hacker mal intentionné le trouvera de lui-même ...
J'ai donc développé la méthode dans le post suivant : https://voltigeurs.forum-canada.net/t394-utiliser-un-robot-pour-envoyer-un-avatar-vers-un-autre-age-que-celui-ou-il-se-trouve#2249
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Réaliser un robot (une idée d'Annabelle...)
Les dernières nouvelles de MagicBot au 13 septembre 2012.
MagicBot se porte bien, merci à vous tous pour votre soutien.
Hier, quelqu'un m'a dit que il ne comprenait pas pourquoi il y avait plus de monde à la fun house city que dans la cité publique.
Je lui ai répondu que c'était à cause de la présence de deux robots : LyroBot et MagicBot qui procuraient plus de fun dans le jeu.
En outre, comme avec MagicBot il est possible de visiter le "Great Tree" du Watcher's pub, cela attire du monde.
Dernière nouveauté : le premier jeu interactif avec MagicBot.
Il suffit de lui envoyer magicgame1 et vous pouvez jouer, car le robot vous envoie une note explicative, une course de marqueurs et une première photo. J'ai déjà expliqué. Tous les détail ici : https://voltigeurs.forum-canada.net/t395-premier-jeu-de-marqueurs-utilisant-le-robot-magicbot#2262
D'autres nouvelles commandes sont apparues :
run [x] pour courir sur une passerelle magique. C'est comme walk [x] mais plus rapide !
down [x] pour descendre sur une échelle magique. C'est l'inverse de climb [x].
back [x] pour marcher à reculons. C'est l'inverse de walk [x]
Je rappelle que [x] est un chiffre qui indique le nombre de fois que la commande se réalise.
Enfin, la commande goto [x] [y] [z] qui déplace votre avatar dans les 3 directions en une fois et le maintient en apesanteur pour qu'il ne tombe pas.
Utilisez la commande land pour vous poser.
Afin de maintenir une homogénéité avec Lyrobot et pour que ce soit plus rapide à taper en cas de chute vers le Relto, la commande onbot a été dédoublée par w, comme pour Lyrobot (abréviation de warp). Donc en cas de panique, avant de rejoindre votre relto envoyez à MagicBot ou Lyrobot : w et vous reviendrez à leur emplacement respectif.
Point de vue programmation.
Comme vous l'imaginez, la programmation d'un robot demande beaucoup de réflexion
Maintenant, au lieu de modifier directement le fichier xKI.py, j'utilise une fonction que j'ai placée dans un module MagicBot.py.
Dans xKI.py j'ai juste 2 ajoutes : dans l'en-tête : import MagicBot et dans le corps du module, dans la section onRtChat l'appel de ma fonction :
MagicBot.Messagerecu (ptplayer, message, Rflag).
De cette façon, je ne "pollue" plus le xKI qui, au fur et à mesure d'ajoutes de nouvelles commandes, devenait volumineux et difficile d'éditer. Cela me permet également de tester si le module est opérationnel ou possède des erreurs de syntaxe (cela arrive vite de se tromper en tapant une minuscule à la place d'une majuscule ).
Remarquez que seulement 3 paramètres me sont nécessaires pour gérer le robot :
ptplayer est le ptKey de l'avatar qui envoie un message au robot.
grâce à cela je peux obtenir tous les renseignements de cet avatar : son nom, son KI et son sceneObject qui me seront utiles pour qu'il réalise les actions.
message est le message que le robot reçoit dans le chat. C'est grâce à ce message que le robot va savoir s'il s'agit d'un mot-clef qu'il comprend et qu'il doit interpréter pour réaliser une action.
Rflag est un paramètre très important car il détermine si le message reçu par le robot est destiné à lui seul où s'il est général, pour tout le monde. Ce drapeau est obtenu dans le xKI par cflags.flags.
Il s'agit d'une valeur entière dont voici la signification de celles qui sont intéressantes:
0 : message provenant d'un avatar qui s'adresse à tout le monde. Ce sont les messages de couleur standart mauve dans le chat.
1 : message provenant d'un avatar qui parle en privé à un autre avatar dans le même âge. La couleur de l'en-tête est jaune dans le chat.
9 : pareil au 1 mais les deux avatars sont dans un âge différent.
8 : message provenant d'un avatar qui l'a envoyé à tous ses amis "buddies"
40 : message provenant d'un avatar qui l'a envoyé à tous ses voisins "Neighboors"
16 : message provenant du programme. Il est de couleur standart et sans nom d'avatar devant le message. Il s'agit d'un message d'information du programme comme par exemple "l'avatar untel a rejoint l'âge".
Donc, ce qui m'intéresse c'est que le robot n'interprète que les messages qui lui sont envoyés en privé: le 1 et le 9. Les autres sont ignorés, sinon ce serait un véritable casse-tête pour la gestion des commandes ! En effet, imaginez une instruction du style :
if "bonjour" in message :
Si on ne s'occupait pas de savoir si ce message est destiné en privé au robot, chaque fois que le mot "bonjour" serait envoyé dans le chat, le robot l'interprèterait comme une commande et donc y répondrait !
Le drapeau 1 servira donc à interpréter un message privé pronenant d'un avatar présent dans le même âge que le robot. Ceci est important si vous ne désirez pas que certaines actions se réalisent dans un autre âge que celui du robot. Imaginez l'apparition de Yeesha dans la ville publique ! INTERDIT !
Le drapeau 9 est utile si l'on veut que un avatar qui ne se trouve pas dans le même âge que le robot puisse le rejoindre. Donc, je l'utilise dans cet but, soit pour amener un avatar dans le même âge que mon robot lorsqu'il lui envoie le mot meet ou link ou lier, soit pour envoyer un avatar dans un autre âge publique comme Ae'gura, Kirel, le Watcher'spub ou encore le Relto de Phil et ce, où qu'il soit.
Qu'en est-il des messages que le robot envoie dans le chat ?
Les mêmes drapeaux peuvent être utilisés. Pour ma part, j'ai choisi d'utiliser un autre drapeau : le 3.
Le drapeau 3 est interprété par le xKI comme étant un message provenant d'un administrateur. Et, de ce fait, l'entête du message dans le chat sera de couleur rouge. Cela permet de distinguer directement la provenance du message et attire l'attention des autres joueurs du même âge. Si j'utilise le drapeau 0, le message sera de la même couleur mauve que le chat normal. En utilisant le drapeau 1 ce sera un message privé avec en-tête de couleur jaune. Avec le drapeau 2 ou 8 il sera de couleur cyan car interprété comme provenant de buddies et en utilisant le 40, il sera interprété comme étant d'un voisin et aura la couleur fushia. D'autre part, j'utilise parfois le drapeau 16 afin d'envoyer un message système sans savoir qu'il provient du robot pour informer que tel ou tel avatar a rejoint l'âge où se trouve le robot.
Vous comprenez maintenant toute l'importance de ces drapeaux.
Mais pour l'envoi de messages par le robot, les drapeaux ne sont pas suffisants. Il faut encore savoir à qui on doit les adresser. Je vous rappelle que la commande qui envoie un message sur le chat est la commande:
Plasma.PtSendRTChat(fromPlayer,toPlayerList,message,flags)
fromPlayer est le ptPlayer de l'avatar qui envoie le message. J' utilise PtGetLocalPlayer() pour dire qu'il s'agit du robot lui-même qui envoie le message. Dans le chat cela apparaîtra dans l'en-tête du message sous cette forme : "from MagicBot :"
Cet en-tête aura la couleur déterminée par le quatrième paramètre flags qui est le drapeau que je viens de vous expliquer ci-dessus.
message est le texte du message envoyé dans le chat par le robot.
le second paramètre toPlayerList est le paramètre qui va dire à qui le message s'adresse.
Il s'agit d'une liste de ptPlayer.
Si cette liste est vide [], le message va s'adresser à tout le monde présent dans l'âge du robot.
Si on veut répondre uniquement au joueur qui a envoyé la commande au robot, on ne mettra que son ptPlayer dans cette liste. Il s'agit du premier paramètre ptplayer de ma fonction Messagerecu. Et cela me suffit.
Donc, imaginons que Mouski soit dans le même âge que MagicBot et qu'il lui envoie, en chat privé (Rflag 1), le message : walk 10
Le xKI vas réaliser la commande : Messagerecu (ptplayer de Mouski, "walk 10", 1)
Ma fonction va interpréter la commande walk 10 qui ordonne à l'avatar Mouski de marcher 10 fois. En outre, par politesse, le robot renvoie à Mouski le message : "Tu avances de 10 pas ! " grâce à la commande:
Plasma.PtSendRTChat( PtGetLocalPlayer() ,[ptplayer],"Tu avances de 10 pas !",3)
Je rappelle que 3 est le drapeau administrateur qui fera en sorte que Mouski verra dans son chat :
From MagicBot : Tu avances de 10 pas !
Voici, pour terminer, les commandes que MagicBot comprend à ce jour :
Pour le rejoindre dans l'âge où il se trouve : meet (ou link ou lier)
Pour aller sur le robot dans le même âge : onbot (ou w ou surmoi ou sur moi)
Pour recevoir une note d'aide : help (ou aide)
Pour obtenir les lucioles : bugs on
Pour les enlever : bugs off
Pour avoir un flash rouge à l'endroit où l'on se trouve : flash
(le flash ne suit pas l'avatar et il change de place si un autre l'appelle)
Pour placer Zandi à côté de soi : zandi on (ou andi on car le z est difficile à taper en première position)
Pour l'enlever : zandi off ou (andi off)
Pour l'animer : zandi [animation] (où [animation] est une animation valide habituellment utilisée dans le chat mais sans le"/" (laugh, bow, ...)
Pour aller à un endroit particulier de la ville :
Opera house : oh
Tokotah roof : tr
Ferry gate : fg
Dakotah roof : dr
Kahlo roof : kr
Library roof : lr
Kadish gallery : kg
Museum : mu
Ferry roof : fr
Concert hall : ch
Palace roof : pr
Pour aller dans l'un de ces âges publiques où que vous soyiez :
Ae'gura : to city
Kirel : to kirel
Watcher's Pub : to pub
Phil's Relto : to phil
Pour voler sur un Bahro:
autours de l'Arche durant 2 minutes : ba
dans la ville durant +/- 30 sec : b1 ou b2 ou b3 ou b4 ou b5 ou b6
Pour monter sur une échelle magique : climb [x] (où [x] est un nombre de fois)
Pour descendre sur une échelle magique : down [x]
Pour monter un escalier magique : stairs [x]
Pour marcher sur une passerelle magique: walk [x]
Pour marcher à reculons sur une passerelle magique: back [x]
Pour courir sur une passerelle magique : run [x]
Pour flotter : float [x] (où [x] est l'altitude positive ou négative) (*)
Pour atterrir et reprendre le contrôle de l'avatar: land
Pour tourner sur sois-même de [x] degrés: turn [x] (où [x] = 0 à +/-180 ) (*)
(*) parfois, en tapant ces commandes float ou turn, l'avatar revient à son dernier point "stable" car le programme ne peut pas savoir où se situe l'avatar lorsqu'il est en apesanteur (physics.disable() pour ceux qui savent de quoi je veux parler). Je cherche à trouver une solution à ce problème. Si vous avez une idée...
Pour voir les livres de Ahnonay, Ercana, Teledahn, Garrison et Kadish dans la bibliothèque: books lib
(attention seuls les 3 premiers sont utilisables)
Pour placer les barricades dans la ville: bc on
pour les enlever: bc off
Pour visiter le Great Tree dans la ville : visit gt (vous revez une photo vous montrant l'endroit où rejoindre le pub en utilisant la commande walk 3)
Pour jouer au jeu de marqueurs de la ville avec MagicBot: magicgame1 (Vous recevrez la course de marqueurs, une première photo et une note explicative pour jouer)
A jour au 13 septembre 2012.
Prochaine étape : Réaliser des commandes pour Er'cana et y placer le robot afin de faire découvrir les coins cachés de cet âge.
Je le placerai dans son Er'cana privé ou celui de la Fun House si j'obtiens l'autorisation des propriétaires et le GUID de cet âge.
MagicBot se porte bien, merci à vous tous pour votre soutien.
Hier, quelqu'un m'a dit que il ne comprenait pas pourquoi il y avait plus de monde à la fun house city que dans la cité publique.
Je lui ai répondu que c'était à cause de la présence de deux robots : LyroBot et MagicBot qui procuraient plus de fun dans le jeu.
En outre, comme avec MagicBot il est possible de visiter le "Great Tree" du Watcher's pub, cela attire du monde.
Dernière nouveauté : le premier jeu interactif avec MagicBot.
Il suffit de lui envoyer magicgame1 et vous pouvez jouer, car le robot vous envoie une note explicative, une course de marqueurs et une première photo. J'ai déjà expliqué. Tous les détail ici : https://voltigeurs.forum-canada.net/t395-premier-jeu-de-marqueurs-utilisant-le-robot-magicbot#2262
D'autres nouvelles commandes sont apparues :
run [x] pour courir sur une passerelle magique. C'est comme walk [x] mais plus rapide !
down [x] pour descendre sur une échelle magique. C'est l'inverse de climb [x].
back [x] pour marcher à reculons. C'est l'inverse de walk [x]
Je rappelle que [x] est un chiffre qui indique le nombre de fois que la commande se réalise.
Enfin, la commande goto [x] [y] [z] qui déplace votre avatar dans les 3 directions en une fois et le maintient en apesanteur pour qu'il ne tombe pas.
Utilisez la commande land pour vous poser.
Afin de maintenir une homogénéité avec Lyrobot et pour que ce soit plus rapide à taper en cas de chute vers le Relto, la commande onbot a été dédoublée par w, comme pour Lyrobot (abréviation de warp). Donc en cas de panique, avant de rejoindre votre relto envoyez à MagicBot ou Lyrobot : w et vous reviendrez à leur emplacement respectif.
Point de vue programmation.
Comme vous l'imaginez, la programmation d'un robot demande beaucoup de réflexion
Maintenant, au lieu de modifier directement le fichier xKI.py, j'utilise une fonction que j'ai placée dans un module MagicBot.py.
Dans xKI.py j'ai juste 2 ajoutes : dans l'en-tête : import MagicBot et dans le corps du module, dans la section onRtChat l'appel de ma fonction :
MagicBot.Messagerecu (ptplayer, message, Rflag).
De cette façon, je ne "pollue" plus le xKI qui, au fur et à mesure d'ajoutes de nouvelles commandes, devenait volumineux et difficile d'éditer. Cela me permet également de tester si le module est opérationnel ou possède des erreurs de syntaxe (cela arrive vite de se tromper en tapant une minuscule à la place d'une majuscule ).
Remarquez que seulement 3 paramètres me sont nécessaires pour gérer le robot :
ptplayer est le ptKey de l'avatar qui envoie un message au robot.
grâce à cela je peux obtenir tous les renseignements de cet avatar : son nom, son KI et son sceneObject qui me seront utiles pour qu'il réalise les actions.
message est le message que le robot reçoit dans le chat. C'est grâce à ce message que le robot va savoir s'il s'agit d'un mot-clef qu'il comprend et qu'il doit interpréter pour réaliser une action.
Rflag est un paramètre très important car il détermine si le message reçu par le robot est destiné à lui seul où s'il est général, pour tout le monde. Ce drapeau est obtenu dans le xKI par cflags.flags.
Il s'agit d'une valeur entière dont voici la signification de celles qui sont intéressantes:
0 : message provenant d'un avatar qui s'adresse à tout le monde. Ce sont les messages de couleur standart mauve dans le chat.
1 : message provenant d'un avatar qui parle en privé à un autre avatar dans le même âge. La couleur de l'en-tête est jaune dans le chat.
9 : pareil au 1 mais les deux avatars sont dans un âge différent.
8 : message provenant d'un avatar qui l'a envoyé à tous ses amis "buddies"
40 : message provenant d'un avatar qui l'a envoyé à tous ses voisins "Neighboors"
16 : message provenant du programme. Il est de couleur standart et sans nom d'avatar devant le message. Il s'agit d'un message d'information du programme comme par exemple "l'avatar untel a rejoint l'âge".
Donc, ce qui m'intéresse c'est que le robot n'interprète que les messages qui lui sont envoyés en privé: le 1 et le 9. Les autres sont ignorés, sinon ce serait un véritable casse-tête pour la gestion des commandes ! En effet, imaginez une instruction du style :
if "bonjour" in message :
Si on ne s'occupait pas de savoir si ce message est destiné en privé au robot, chaque fois que le mot "bonjour" serait envoyé dans le chat, le robot l'interprèterait comme une commande et donc y répondrait !
Le drapeau 1 servira donc à interpréter un message privé pronenant d'un avatar présent dans le même âge que le robot. Ceci est important si vous ne désirez pas que certaines actions se réalisent dans un autre âge que celui du robot. Imaginez l'apparition de Yeesha dans la ville publique ! INTERDIT !
Le drapeau 9 est utile si l'on veut que un avatar qui ne se trouve pas dans le même âge que le robot puisse le rejoindre. Donc, je l'utilise dans cet but, soit pour amener un avatar dans le même âge que mon robot lorsqu'il lui envoie le mot meet ou link ou lier, soit pour envoyer un avatar dans un autre âge publique comme Ae'gura, Kirel, le Watcher'spub ou encore le Relto de Phil et ce, où qu'il soit.
Qu'en est-il des messages que le robot envoie dans le chat ?
Les mêmes drapeaux peuvent être utilisés. Pour ma part, j'ai choisi d'utiliser un autre drapeau : le 3.
Le drapeau 3 est interprété par le xKI comme étant un message provenant d'un administrateur. Et, de ce fait, l'entête du message dans le chat sera de couleur rouge. Cela permet de distinguer directement la provenance du message et attire l'attention des autres joueurs du même âge. Si j'utilise le drapeau 0, le message sera de la même couleur mauve que le chat normal. En utilisant le drapeau 1 ce sera un message privé avec en-tête de couleur jaune. Avec le drapeau 2 ou 8 il sera de couleur cyan car interprété comme provenant de buddies et en utilisant le 40, il sera interprété comme étant d'un voisin et aura la couleur fushia. D'autre part, j'utilise parfois le drapeau 16 afin d'envoyer un message système sans savoir qu'il provient du robot pour informer que tel ou tel avatar a rejoint l'âge où se trouve le robot.
Vous comprenez maintenant toute l'importance de ces drapeaux.
Mais pour l'envoi de messages par le robot, les drapeaux ne sont pas suffisants. Il faut encore savoir à qui on doit les adresser. Je vous rappelle que la commande qui envoie un message sur le chat est la commande:
Plasma.PtSendRTChat(fromPlayer,toPlayerList,message,flags)
fromPlayer est le ptPlayer de l'avatar qui envoie le message. J' utilise PtGetLocalPlayer() pour dire qu'il s'agit du robot lui-même qui envoie le message. Dans le chat cela apparaîtra dans l'en-tête du message sous cette forme : "from MagicBot :"
Cet en-tête aura la couleur déterminée par le quatrième paramètre flags qui est le drapeau que je viens de vous expliquer ci-dessus.
message est le texte du message envoyé dans le chat par le robot.
le second paramètre toPlayerList est le paramètre qui va dire à qui le message s'adresse.
Il s'agit d'une liste de ptPlayer.
Si cette liste est vide [], le message va s'adresser à tout le monde présent dans l'âge du robot.
Si on veut répondre uniquement au joueur qui a envoyé la commande au robot, on ne mettra que son ptPlayer dans cette liste. Il s'agit du premier paramètre ptplayer de ma fonction Messagerecu. Et cela me suffit.
Donc, imaginons que Mouski soit dans le même âge que MagicBot et qu'il lui envoie, en chat privé (Rflag 1), le message : walk 10
Le xKI vas réaliser la commande : Messagerecu (ptplayer de Mouski, "walk 10", 1)
Ma fonction va interpréter la commande walk 10 qui ordonne à l'avatar Mouski de marcher 10 fois. En outre, par politesse, le robot renvoie à Mouski le message : "Tu avances de 10 pas ! " grâce à la commande:
Plasma.PtSendRTChat( PtGetLocalPlayer() ,[ptplayer],"Tu avances de 10 pas !",3)
Je rappelle que 3 est le drapeau administrateur qui fera en sorte que Mouski verra dans son chat :
From MagicBot : Tu avances de 10 pas !
Voici, pour terminer, les commandes que MagicBot comprend à ce jour :
Pour le rejoindre dans l'âge où il se trouve : meet (ou link ou lier)
Pour aller sur le robot dans le même âge : onbot (ou w ou surmoi ou sur moi)
Pour recevoir une note d'aide : help (ou aide)
Pour obtenir les lucioles : bugs on
Pour les enlever : bugs off
Pour avoir un flash rouge à l'endroit où l'on se trouve : flash
(le flash ne suit pas l'avatar et il change de place si un autre l'appelle)
Pour placer Zandi à côté de soi : zandi on (ou andi on car le z est difficile à taper en première position)
Pour l'enlever : zandi off ou (andi off)
Pour l'animer : zandi [animation] (où [animation] est une animation valide habituellment utilisée dans le chat mais sans le"/" (laugh, bow, ...)
Pour aller à un endroit particulier de la ville :
Opera house : oh
Tokotah roof : tr
Ferry gate : fg
Dakotah roof : dr
Kahlo roof : kr
Library roof : lr
Kadish gallery : kg
Museum : mu
Ferry roof : fr
Concert hall : ch
Palace roof : pr
Pour aller dans l'un de ces âges publiques où que vous soyiez :
Ae'gura : to city
Kirel : to kirel
Watcher's Pub : to pub
Phil's Relto : to phil
Pour voler sur un Bahro:
autours de l'Arche durant 2 minutes : ba
dans la ville durant +/- 30 sec : b1 ou b2 ou b3 ou b4 ou b5 ou b6
Pour monter sur une échelle magique : climb [x] (où [x] est un nombre de fois)
Pour descendre sur une échelle magique : down [x]
Pour monter un escalier magique : stairs [x]
Pour marcher sur une passerelle magique: walk [x]
Pour marcher à reculons sur une passerelle magique: back [x]
Pour courir sur une passerelle magique : run [x]
Pour flotter : float [x] (où [x] est l'altitude positive ou négative) (*)
Pour atterrir et reprendre le contrôle de l'avatar: land
Pour tourner sur sois-même de [x] degrés: turn [x] (où [x] = 0 à +/-180 ) (*)
(*) parfois, en tapant ces commandes float ou turn, l'avatar revient à son dernier point "stable" car le programme ne peut pas savoir où se situe l'avatar lorsqu'il est en apesanteur (physics.disable() pour ceux qui savent de quoi je veux parler). Je cherche à trouver une solution à ce problème. Si vous avez une idée...
Pour voir les livres de Ahnonay, Ercana, Teledahn, Garrison et Kadish dans la bibliothèque: books lib
(attention seuls les 3 premiers sont utilisables)
Pour placer les barricades dans la ville: bc on
pour les enlever: bc off
Pour visiter le Great Tree dans la ville : visit gt (vous revez une photo vous montrant l'endroit où rejoindre le pub en utilisant la commande walk 3)
Pour jouer au jeu de marqueurs de la ville avec MagicBot: magicgame1 (Vous recevrez la course de marqueurs, une première photo et une note explicative pour jouer)
A jour au 13 septembre 2012.
Prochaine étape : Réaliser des commandes pour Er'cana et y placer le robot afin de faire découvrir les coins cachés de cet âge.
Je le placerai dans son Er'cana privé ou celui de la Fun House si j'obtiens l'autorisation des propriétaires et le GUID de cet âge.
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Réaliser un robot (une idée d'Annabelle...)
Michel,
Pour le turn et le float, le robot connait la position x,y,z de l'avatar cependant. Il pourrait utiliser cette position afin de le faire tourner sur lui-même.
Dans ce cas, les coordonnées ne changent pas mais l'avatar effectue simplement une rotation.
Dans le cas du float, une seule coordonnée est modifiée, la hauteur.
Est-ce que ça fait sens ?
Mouski
Pour le turn et le float, le robot connait la position x,y,z de l'avatar cependant. Il pourrait utiliser cette position afin de le faire tourner sur lui-même.
Dans ce cas, les coordonnées ne changent pas mais l'avatar effectue simplement une rotation.
Dans le cas du float, une seule coordonnée est modifiée, la hauteur.
Est-ce que ça fait sens ?
Mouski
V@-Mouski- Admin
- Messages : 256
Date d'inscription : 15/05/2010
Age : 65
Localisation : Québec
Re: Réaliser un robot (une idée d'Annabelle...)
C'est exactement la manière dont on procède Mouski.
Voici la fonction qui permet de flotter à une certaine hauteur.
On définit une matrice relative à l'objet avatar.
Cette matrice détermine la position relative de l'avatar par rapport au centre de l'âge.
Ensuite, on la déplace avec la fonction translate ici uniquement avec le troisième paramètre qui est la hauteur. X et Y restent inchangés (valeur 0).
Ensuite on déplace l"avatar sur cette matrice.
Alors pourquoi, lorsque j'envoie l'animation run ou walk, puis que je souhaite modifier la hauteur avec cette fonction, l'avatar retourne a la position qu'il occupait avant le déplacement ?
On dirait que ce n'est pas la fonction qui est en cause mais que lorsque je lance l'animation walk ou run, le programme ne tiens pas compte de ce déplacement. Je vais donc vérifier du côté des animations walk et run. A mon avis c'est là qu'est le problème.
Voici la fonction qui permet de flotter à une certaine hauteur.
- Code:
def AvatarFlotte(nom = "moi", hauteur = 5, etat = 1):
avatar = SCOAvatar(nom)
avatar.physics.netForce(1)
if etat == 1:
matrix = avatar.getLocalToWorld()
matrix.translate(ptVector3(0, 0, float(hauteur)))
avatar.netForce(1)
avatar.physics.warp(matrix)
avatar.physics.disable()
else :
avatar.physics.enable(1)
On définit une matrice relative à l'objet avatar.
Cette matrice détermine la position relative de l'avatar par rapport au centre de l'âge.
Ensuite, on la déplace avec la fonction translate ici uniquement avec le troisième paramètre qui est la hauteur. X et Y restent inchangés (valeur 0).
Ensuite on déplace l"avatar sur cette matrice.
Alors pourquoi, lorsque j'envoie l'animation run ou walk, puis que je souhaite modifier la hauteur avec cette fonction, l'avatar retourne a la position qu'il occupait avant le déplacement ?
On dirait que ce n'est pas la fonction qui est en cause mais que lorsque je lance l'animation walk ou run, le programme ne tiens pas compte de ce déplacement. Je vais donc vérifier du côté des animations walk et run. A mon avis c'est là qu'est le problème.
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Réaliser un robot (une idée d'Annabelle...)
Tu as créé un monstre
Dommage que je ne vienne plus en caverne... Peut-être la semaine prochaine, je vais voir. Je m'informe aux forums à chaque jour par contre.
Merci pour avoir inclus mon nom dans le titre du thread. J'imaginais plus un robot basique. Maintenant l'idée même d'en fabriquer un si j'ai le temps un jour m'effraie. Je suis contente que MagicBot se développe ainsi par contre, pas de jalousie.
Pour la partie: "les gens sont plus à la Fun House qu'en ville publique...", oui en effet, j'ai remarqué durant l'été un changement important dans les habitudes des explorateurs. LyroBot était le facteur principal de ce changement. Les gens ont investi la Fun House en grand nombre. Ton robot est dans l'air du temps, tu profites de ce phénomène. Les évènements à la Fun House n'ont plus réellement leur place, les évènements privés plus ou moins, les gens peuvent concevoir leur "réalité" sur mesure grâce aux robots.
L'avantage c'est que ça rend des serveurs comme TOC MOUL caduques . D'ailleurs... il ne fait que survivre ces derniers mois. Les gens choisiront le serveur MOULa pour leur temps en caverne. À mon retour en caverne, je vais travailler sur un projet perso d'envergure qui rendra vraiment TOC MOUL d'une... inutilité
Continue à développer ce monstre ... euh... MagicBot, la communauté apprécie
Dommage que je ne vienne plus en caverne... Peut-être la semaine prochaine, je vais voir. Je m'informe aux forums à chaque jour par contre.
Merci pour avoir inclus mon nom dans le titre du thread. J'imaginais plus un robot basique. Maintenant l'idée même d'en fabriquer un si j'ai le temps un jour m'effraie. Je suis contente que MagicBot se développe ainsi par contre, pas de jalousie.
Pour la partie: "les gens sont plus à la Fun House qu'en ville publique...", oui en effet, j'ai remarqué durant l'été un changement important dans les habitudes des explorateurs. LyroBot était le facteur principal de ce changement. Les gens ont investi la Fun House en grand nombre. Ton robot est dans l'air du temps, tu profites de ce phénomène. Les évènements à la Fun House n'ont plus réellement leur place, les évènements privés plus ou moins, les gens peuvent concevoir leur "réalité" sur mesure grâce aux robots.
L'avantage c'est que ça rend des serveurs comme TOC MOUL caduques . D'ailleurs... il ne fait que survivre ces derniers mois. Les gens choisiront le serveur MOULa pour leur temps en caverne. À mon retour en caverne, je vais travailler sur un projet perso d'envergure qui rendra vraiment TOC MOUL d'une... inutilité
Continue à développer ce monstre ... euh... MagicBot, la communauté apprécie
V@-Annabelle- Modérateur
- Messages : 340
Date d'inscription : 14/05/2010
Localisation : Canada
Re: Réaliser un robot (une idée d'Annabelle...)
Avec effroi je constate que Lyrobot est en train de rouiller par inactivité et manque d'innovation ! Je vais essayer de programmer quelques nouveautés cette fin de semaine, pour rester compétitif dans un monde où les intelligences artificielles prolifèrent.
Re: Réaliser un robot (une idée d'Annabelle...)
Merci de ces encouragements.
Avec Lyrobot et MagicBot, la caverne ne reste jamais bien longtemps vide ! Et c'est tant mieux...
Il s'est établit une bonne synergie entre les deux.
J'ai réussi à éviter toute redondance entre les deux robots. En tout cas du côté MagicBot, plus rien ne vient perturber les messages de Lyrobot, ayant tout simplement fait ignorer ses messages par MagiBot:D .
J'espère que de ton côté, Magic ne perturbe plus Lyro. Si ce n'est pas le cas, n'hésite pas à me le dire...
Magic etant plus présent à l'heure europeenne, bien qu'il m'arrive de devoir laisser brancher mon pc toute la nuit pour les anglophones...
Le premier jeu magicgame1 obtient un franc succès surtout que tout le monde désire voir le cadeau de fin !
10 marqueurs a retrouver dans la ville avec des photos et en toute interactivité avec MagicBot, sans mon intervention ...c'est le pied !
Maintenant je vais m'attaquer à Er'cana...
Avec Lyrobot et MagicBot, la caverne ne reste jamais bien longtemps vide ! Et c'est tant mieux...
Il s'est établit une bonne synergie entre les deux.
J'ai réussi à éviter toute redondance entre les deux robots. En tout cas du côté MagicBot, plus rien ne vient perturber les messages de Lyrobot, ayant tout simplement fait ignorer ses messages par MagiBot:D .
J'espère que de ton côté, Magic ne perturbe plus Lyro. Si ce n'est pas le cas, n'hésite pas à me le dire...
Magic etant plus présent à l'heure europeenne, bien qu'il m'arrive de devoir laisser brancher mon pc toute la nuit pour les anglophones...
Le premier jeu magicgame1 obtient un franc succès surtout que tout le monde désire voir le cadeau de fin !
10 marqueurs a retrouver dans la ville avec des photos et en toute interactivité avec MagicBot, sans mon intervention ...c'est le pied !
Maintenant je vais m'attaquer à Er'cana...
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Réaliser un robot (une idée d'Annabelle...)
Alors pourquoi, lorsque j'envoie l'animation run ou walk, puis que je souhaite modifier la hauteur avec cette fonction, l'avatar retourne a la position qu'il occupait avant le déplacement ?
On dirait que ce n'est pas la fonction qui est en cause mais que lorsque je lance l'animation walk ou run, le programme ne tiens pas compte de ce déplacement. Je vais donc vérifier du côté des animations walk et run. A mon avis c'est là qu'est le problème.
C'est bien ce que je pensais. Tout se passe à merveille avec les déplacements de l'avatar mais dès qu'on réalise un run ou un walk ou un back ou stairs ou climb, là les choses se compliquent car si après cela on veut réaliser un turn ou float le programme ne sait plus situer l'avar qui s'est "déplacé" avec les commandes précédentes et donc revient à la dernière position connue puis effectue à cet endroit sa rotation ou sa lévitation.
En fait les déplacements que l'on aperçoit à l'écran ne sont que visuels et non "réels" ce ne sont que des animations que tout un chacun réalise dans le chat avec /clap par exemple ou /dance.
Il faudra probablement que je supprime les walk et run tout du moins en mode flotaison (donc physics.disable()) et les remplacer par des vrais déplacements mais moins jolis car il s'agit d'un simple "glissement" de l'avatar et non d'une marche réelle .
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Réaliser un robot (une idée d'Annabelle...)
Je ne crois pas que ce serait une bonne idée Michel.
Essaie plutôt de configurer une commande comme le Xwarp x y z tel que Lyrositor a créée.
Le glissement de l'avatar n'est pas réel, tu en conviendras.
Essaie plutôt de configurer une commande comme le Xwarp x y z tel que Lyrositor a créée.
Le glissement de l'avatar n'est pas réel, tu en conviendras.
V@-Mouski- Admin
- Messages : 256
Date d'inscription : 15/05/2010
Age : 65
Localisation : Québec
Re: Réaliser un robot (une idée d'Annabelle...)
Essaie plutôt de configurer une commande comme le Xwarp x y z tel que Lyrositor a créée.
Cette commande existe déjà. Avec MagicBot c'est Goto x y z. La différence avec Xwarp c'est que l'avatar reste en apesanteur après le déplacement ce qui lui évite de tomber . Pour atterrir : Land.
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Réaliser un robot (une idée d'Annabelle...)
Ah, MagicBot faisait cela ? Je viens juste d'introduire cette fonctionnalité dans Lyrobot. Cependant, pour descendre, c'est la même commande que pour récupérer une taille normale : normal.V@-Michel a écrit:La différence avec Xwarp c'est que l'avatar reste en apesanteur après le déplacement ce qui lui évite de tomber .
Re: Réaliser un robot (une idée d'Annabelle...)
Ah, MagicBot faisait cela ? Je viens juste d'introduire cette fonctionnalité dans Lyrobot. Cependant, pour descendre, c'est la même commande que pour récupérer une taille normale : normal.
Il m'est venu une idée. Etant donné l'évolution presque quotidienne de nos robots et avec l'annonce d'autres en préparation de la part d'autres membres, j'ai ouvert une rubrique spéciale robots dans Plclient de manière à informer des commandes de chaque robot et leur actualité respective.
Je vais déjà y inclure un forum Lyrobot et un autre MagicBot. Il te sera ainsi possible d' ajouter les nouvelles commandes de Lyrobot ainsi que son actualité. Je te laisse le soin d'introduire Lyrobot comme il se doit puisque c'est, à ma connaissance, le premier robot qui réalise des actions sur demande. Il y a eu Babelbot il y a quelques temps déjà mais qui avait comme seul objectif de tenir une conversation. Je ne sais pas s'il est toujours en fonction...
Cette rubrique est également ouverte aux futurs robots
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Un robot pour Annabelle
Je relance le sujet puisque j'aimerais avoir un robot fonctionnel d'ici quelques jours... pour un truc "simple" .
Les gens doivent être en mesure de se lier à mon robot. Mon robot, à la liaison, doit être en mesure de loader l'âge modifié aux avatars qui arrivent.. Ensuite, elle aura un répertoire de lieux où les gens pourront se téléporter.
Ensuite elle doit être indépendante des commandes externes de mixologie. C'est un bon début et je m'en tiendrai à cela.
Cela dit, j'ai rien pigé aux commandes et aux scripts que vous utilisez. xKI? c'est pas déjà là par défaut? Et pis comment rendre des commandes de chat compréhensibles pour déclencher un script?
C'est pour un évènement prochain qui impliquera de la magie. Vos robots seront les bienvenus mais je vous demanderais de supprimer la possibilité de faire de la mixologie. Déjà la mienne sera suffisante.
Et faudra m'expliquer aussi comment exclure les robots de mes scripts car ça non plus je sais pas y faire.
Merci
Les gens doivent être en mesure de se lier à mon robot. Mon robot, à la liaison, doit être en mesure de loader l'âge modifié aux avatars qui arrivent.. Ensuite, elle aura un répertoire de lieux où les gens pourront se téléporter.
Ensuite elle doit être indépendante des commandes externes de mixologie. C'est un bon début et je m'en tiendrai à cela.
Cela dit, j'ai rien pigé aux commandes et aux scripts que vous utilisez. xKI? c'est pas déjà là par défaut? Et pis comment rendre des commandes de chat compréhensibles pour déclencher un script?
C'est pour un évènement prochain qui impliquera de la magie. Vos robots seront les bienvenus mais je vous demanderais de supprimer la possibilité de faire de la mixologie. Déjà la mienne sera suffisante.
Et faudra m'expliquer aussi comment exclure les robots de mes scripts car ça non plus je sais pas y faire.
Merci
V@-Annabelle- Modérateur
- Messages : 340
Date d'inscription : 14/05/2010
Localisation : Canada
Re: Réaliser un robot (une idée d'Annabelle...)
Bonjour Annabelle.
Je vais sans doute être le premier à répondre à ta demande.
Si je comprends bien, tu désires créer un robot en partant de zéro.
Etant donné le nombre de fichiers à créer ou à modififier, comme expliqué dans tous les articles qui traitent de ce sujet, il me faudrait des heures et des heures d'explications. Et, actuellement je n'ai pas le temps.
Toutefois voici les étapes à réaliser.
1. Tu te crées un avatar robot qui doit avoir un KI complet et avoir les âges dans lesquels il doit évoluer et accueillir les joueurs qui se relieront à lui.
2. Tu réalises un module python dans lequel tu vas inclure toutes les classes et fonctions nécessaires à ton jeu. Il est possible que certaines fonctions existent déjà dans des modules que tu possèdes. Pas besoin de les refaire alors. Il te suffira de placer en tête du module robot des commandes from...import.
3. Tu réalises un module python robot qui va traiter les messages qui lui seront envoyés en chat privé par les joueurs.
C'est le module principal qui va également permettre aux joueurs de se relier à ton robot par une commande "link" ou "meet" et qui va mettre en place les éventuels changements opérés dans l'âge (mixologie ou suppression d'objets).
C'est dans ce module que tu vas envoyé les joueurs dans des endroits différents ainsi que notes d'aides, photos, jeux de marqueurs...
4. Tu modifies le xKI.py afin que le robot traite les messages qui lui sont envoyés grâce au module précédent.
5. Tu crées un nouveau xDialogStartUp.py qui va réaliser la liaison de ton robot à l'âge d'accueil (GUID et spawnpoints nécessaires).
6. Enfin, tu peux te créer un fichier batch (sous Windows) afin de lancer automatiquement le robot avec son compte et mot de passe et utiliser le bon xDialogStartUp.py.
Comme tu le vois c'est un travail énorme.
Alors il faut y aller progressivement. Regarde déjà tous les sujets qui traitent de la mise en place d'un robot dans ce forum.
Dis-nous ce que tu as déjà réalisé afin de t'aider là où ça "coince".
Je vais sans doute être le premier à répondre à ta demande.
Si je comprends bien, tu désires créer un robot en partant de zéro.
Etant donné le nombre de fichiers à créer ou à modififier, comme expliqué dans tous les articles qui traitent de ce sujet, il me faudrait des heures et des heures d'explications. Et, actuellement je n'ai pas le temps.
Toutefois voici les étapes à réaliser.
1. Tu te crées un avatar robot qui doit avoir un KI complet et avoir les âges dans lesquels il doit évoluer et accueillir les joueurs qui se relieront à lui.
2. Tu réalises un module python dans lequel tu vas inclure toutes les classes et fonctions nécessaires à ton jeu. Il est possible que certaines fonctions existent déjà dans des modules que tu possèdes. Pas besoin de les refaire alors. Il te suffira de placer en tête du module robot des commandes from...import.
3. Tu réalises un module python robot qui va traiter les messages qui lui seront envoyés en chat privé par les joueurs.
C'est le module principal qui va également permettre aux joueurs de se relier à ton robot par une commande "link" ou "meet" et qui va mettre en place les éventuels changements opérés dans l'âge (mixologie ou suppression d'objets).
C'est dans ce module que tu vas envoyé les joueurs dans des endroits différents ainsi que notes d'aides, photos, jeux de marqueurs...
4. Tu modifies le xKI.py afin que le robot traite les messages qui lui sont envoyés grâce au module précédent.
5. Tu crées un nouveau xDialogStartUp.py qui va réaliser la liaison de ton robot à l'âge d'accueil (GUID et spawnpoints nécessaires).
6. Enfin, tu peux te créer un fichier batch (sous Windows) afin de lancer automatiquement le robot avec son compte et mot de passe et utiliser le bon xDialogStartUp.py.
Comme tu le vois c'est un travail énorme.
Alors il faut y aller progressivement. Regarde déjà tous les sujets qui traitent de la mise en place d'un robot dans ce forum.
Dis-nous ce que tu as déjà réalisé afin de t'aider là où ça "coince".
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Réaliser un robot (une idée d'Annabelle...)
Misère... J'ai rien fait encore, ça me semble difficile
V@-Annabelle- Modérateur
- Messages : 340
Date d'inscription : 14/05/2010
Localisation : Canada
Re: Réaliser un robot (une idée d'Annabelle...)
Après en avoir discuté avec Mirphak hier, je pense qu'il va te concocter un robot ce weekend. Ce sera en effet plus rapide que te tout te laisser faire.
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Re: Réaliser un robot (une idée d'Annabelle...)
C'est très aimable de sa part
En fait, vous comprendrez que mon évènement m'a poussée à le faire car bien qu'un de vos robots pourrait faire l'affaire, s'il plante et que vous êtes endormis, alors je suis cuite...
Une fois la base faite, je pourrai développer des trucs plus poussés éventuellement.
J'ai pleins de chouettes idées en tête.
En fait, vous comprendrez que mon évènement m'a poussée à le faire car bien qu'un de vos robots pourrait faire l'affaire, s'il plante et que vous êtes endormis, alors je suis cuite...
Une fois la base faite, je pourrai développer des trucs plus poussés éventuellement.
J'ai pleins de chouettes idées en tête.
V@-Annabelle- Modérateur
- Messages : 340
Date d'inscription : 14/05/2010
Localisation : Canada
Re: Réaliser un robot (une idée d'Annabelle...)
Effectivement cela aurait pu se faire, mais comme tu le dis il vaut mieux que tu en aies le contrôle total pour l'évènement mais également pour les réalisations futures.
cela m'aurait bien plu de le faire mais je suis tellement occupé avec Gahreesen et Magicgame8 que je n'ai vraiment pas le temps.
En outre t'expliquer en détatil tout ce qu'il faut faire prendrait plus de temps que de t'en faire un tout prêt.
Il faudra néanmoins que tu saisisse bien toutes les commandes dans chaque fichier si tu veux garder le contrôle de ce que tu veux réaliser par la suite
cela m'aurait bien plu de le faire mais je suis tellement occupé avec Gahreesen et Magicgame8 que je n'ai vraiment pas le temps.
En outre t'expliquer en détatil tout ce qu'il faut faire prendrait plus de temps que de t'en faire un tout prêt.
Il faudra néanmoins que tu saisisse bien toutes les commandes dans chaque fichier si tu veux garder le contrôle de ce que tu veux réaliser par la suite
V@-Michel- Admin
- Messages : 1172
Date d'inscription : 13/05/2010
Age : 69
Localisation : Belgique
Page 2 sur 2 • 1, 2
Sujets similaires
» Réaliser plus facilement les combos en ralentissant son ordi.
» Realiser plus facilement des combos en ralentissant son PC : méthode 2
» Réaliser plus facilement des combos en utilisant les Lags du jeu.
» Le fabuleux trésor
» Realiser plus facilement des combos en ralentissant son PC : méthode 2
» Réaliser plus facilement des combos en utilisant les Lags du jeu.
» Le fabuleux trésor
Page 2 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum