Python + Minecraft + ? = Bots

Statut
N'est pas ouverte pour d'autres réponses.

Skyroyk

Aventurier
31 Janvier 2019
4
0
1
59
Bonsoir,
Je cherche à programmer un robot en Python pour Minecraft. Il pourrait bouger, miner ... mais en envoyant des données comme un vrai joueur ; flèche droite, clic gauche ...
)
Du coup, qu'est ce qu'il faut comme mods et import pour 1) Récupérer les informations ; x, y, z joueur, vie, ... voire même x1, y1, z1 joueur 1 (sur un serveur) et 2) Renvoyer ses informations au jeu (Avancer (Z), Frapper(Clic)) ...

Merci d'avance


[EDIT : Je ne sais pas du tout si ce topic va dans cette section (Outils). Mais j'en ai pas trouvé qui correspondait vraiment ...]
 
Dernière édition:

Skyroyk

Aventurier
31 Janvier 2019
4
0
1
59
EDIT : Si vous n'avez pas en Python, est-ce-que vous avez en C++ ? Pour récupérer infos joueurs (x, y, z, vie, ...) en C++ ?
Merci d'avance
 

DiscowZombie

Développeur
Staff
Modérateur
Support
2 Mars 2017
2 659
1
931
298
Alsace
www.discowzombie.fr
Salut,

enfaite ta question s'apparente à recréer un client Minecraft quoi... C'est à mon avis extrêmement compliqué et il faut aller très en profondeur dans la compréhension du jeu, notamment pour envoyé tout un tas d'informations au jeu.

Ce qui semble plus modeste à développer c'est un espèce de programme en surcouche qui réalise les actions à ta place. Par exemple, si ce programme simule l'appuie sur avancer lorsque ton jeu est lancé, le personnage bougera. Ici c'est beaucoup plus simple à développer vu que tu n'as pas a te soucier des mécaniques de jeu, juste à faire jouer le programme à ta place.
 

Skyroyk

Aventurier
31 Janvier 2019
4
0
1
59
Merci, c'est que je voulais faire. Mais le problème, c'est que pour faire jouer le robot à ma place, il faut que j'ai certaine informations, comme la vie, la position, ...
Et du coup, ma question : Comment en C++ ou en Python, récuperer ces informations ? Parce que le robot ne va jouer au hasard, il va vite tomber, être bloqu ...
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 530
24
2 247
347
27
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

D'une manière ou d'une autre ces informations sont envoyé au client (notamment lorsque l'on fait F3).
Il est possible de tout faire via des packets. Mais comme l'a dit @DiscowZombie c'est long et complexe...

Tu peux faire ça en Python, C++ ou autre. Tant qu'il peut récupérer une connexion ça devrait être bon. Mais tu va devoir regarder chaque packet, le comprendre et renvoyer le packet adéquat.
Bref, ça va être long...

Tu peux peut-être nous dire ce que tu souhaites faire au final ? Faire un joueur NPC sur un serveur c'est plus simple de passer par un plugin. Si tu n'as pas accès au serveur, un mod semble la meilleur solution. Tu as directement accès aux informations "décompressée" (en tout cas pas dans les packets mais directement dans les bonnes variables).

Bref, pour pouvoir plus d'aider on a besoin de comprendre pourquoi tu as besoin de faire ça je pense...


Cordialement,
Detobel36
 

Skyroyk

Aventurier
31 Janvier 2019
4
0
1
59
Merci pour vos réponses.

Ce que je veux faire, c'est un robot, qui jouerai à ma place, en ayant comme informations :
En Solo : Vie, Position (x, y, z et caméra), Blocs autour de lui, Inventaire ...
En Multi : Vie, Position, Position autres joueurs, Inventaire

Je me doute que savoir les blocs autour du robots va être difficile, alors si vous avez juste la solution pour les autres joueurs (En multi), ça me suffit.

Le programme récupère ces informations (je ne sais pas où elles sont (dans un fichier .txt ?)) et lance un programme (en Python ou en C++) qui va définir la conduite à suivre. (En agissant comme un joueur : pour ça, je peux à partir du Python ou C++, lancer un vbs qui va simuler la frappe de touche, et pas agir directement dans le jeu, donc comme un vrai joueur))

Et du coup, ce que je cherche, c'est savoir l'emplacement / comment récupérer, les informations : Vie, Position ...

Elles sont dans un fichier ?

Merci d'avance
 

Detobel36

Créateur de plugins (PhoenixRebirth)
Support
17 Août 2012
10 530
24
2 247
347
27
Bruxelles - Belgique
www.phoenix-rebirth.fr
Salut,

Elles sont dans un fichier ?
Non, dans des packets...

Je pense que tu rêves un peu... Comme @DiscowZombie & moi te l'avons dit, pour faire ça le mieux c'est d'utiliser un mod.

Certains mods font déjà certaines action à la place du joueur. Il s'agit de mod "cheat" qui tape par exemple à ta place les joueurs autour de toi.
Mais en Python ou C++ ça va être un long et gros développement... Cela voudrait dire que tu as un programmes qui fait l'intermédiaire entre ton client et le serveur. Outre le fait que ce soit long à mettre en place, tu va devoir l'adapter à chaque version.
Bref, soit tu es bien calé en développement, tu as pleins de temps (vu le type de question que tu pose je ne pense pas que tu comprennes bien le fonctionnement) et dans ce cas la tu peux faire un programme C++ ou Python qui va analyser les packets.
Soit tu te rabats sur un Mod en Java (directement intégré au jeu).


Cordialement,
Detobel36
 

Plaigon

Architecte en herbe
31 Juillet 2013
101
9
130
Salut, si malgré tout tu es contraint de n'utiliser que du C++ ou du Python, tu pourrais créer un mod qui te communiquerait les informations par Socket via un port COM. Ou dans le pire des cas lire directement la mémoire vive de mc pour récupérer les valeurs dont tu as besoin.
Sinon ton code C++/Python pourrait être adapté pour etre lu en Java, et ainsi tout faire fonctionner dans un seul mod, comme l'ont suggéré mes 2 VDD =)
 

ErikTel

Aventurier
8 Janvier 2020
1
0
1
22
Salutation messieurs, Skyroyk si tu recherche encore comment créer un bot minecraft de ce type je te conseille de te pencher sur ce site
http://minerl.io/ il te permet de créer un bot en python grâce a des librairie faites par eux. Ils proposent même un concours de création de bot.


Bonne lecture
 
Statut
N'est pas ouverte pour d'autres réponses.