Avec l'aide de DeepLearning, j'ai créé un logiciel qui lit les phrases liées au jeu tout en jouant à Micra.
↓ Un tel gars
Puisqu'il est difficile de les combiner en un seul article, je vais le diviser en plusieurs articles. Cette section décrit le ** partie applicative ** </ font>.
Utilisez Minecraft pour déterminer s'il y a des zombies à proximité. S'il y a un zombie, affichez le texte lié au zombie.
(Pour l'endroit où préparer le texte lui-même, allez à un autre article)
Minecraft a un mod créé par des bénévoles. Avec les mods, vous avez beaucoup de liberté pour modifier votre jeu.
Avec MCreator, vous pouvez démarrer la production de mod tout de suite. Pour des changements simples, vous n'avez même pas besoin d'écrire du code.
Le mod Minecraft est écrit en Java.
--Java Je ne sais pas grand-chose.
Raspberry Jam Mod(mcpi) Vous pouvez utiliser Minecraft à partir de Python. Vous pouvez faire beaucoup de choses. Cependant, la partie pour obtenir des informations sur le jeu est délicate.
Jetez un œil au code dans mcpi. Il semble qu'ils communiquent via Socket communication. Il semble que vous puissiez spécifier le port et aller à l'école.
--Le côté Python Modifie la classe Connection de mcpi
--Le côté Java écrit en poussant
Enfin, implémentation du mod. J'ai utilisé MCreator 1.9.1.
La création d'un nouvel espace de travail avec MCreator crée un modèle de mod.
Vous pouvez créer de nouvelles commandes avec l'interface graphique. Créez une commande vide.
Ecrire dans la fonction ʻexecuteProcedure` de quelque chose comme hogehogeCommandExecuted.
Emballage de ce que vous voulez faire dans une autre fonction. --Préparer le socket --Continuer à acquérir / envoyer / recevoir des données
--Lors de l'exécution d'une commande, exécutez la fonction créée dans un autre processus.
Minecraft mc = Minecraft.getMinecraft()
WorldClient world = mc.world;
List<Entity> entities = world.getEntities(Entity.class, (entity)->!entity.isInvisible());
Vous pouvez désormais obtenir des monstres ennemis et animaux non transparents dans le monde.
Entity player = world.getEntityByID(mc.player.getEntityId());
Ensuite, prenez un exemple du joueur.
String minecraftData;
for (Entity e: entities) {
if (e.getDistance(player) < 8.0f) {
minecraftData += e.getName() + ",";
}
}
Vous pouvez trouver la distance entre Entity avec getDistance
.
Obtenez le nom d'une entité à proximité avec getName
et ajoutez-le à la chaîne d'envoi.
Mettez des lettres dans le chat dans Minecraft.
MinecraftServer mcserv;
mcserv.getPlayerList().sendMessage(new TextComponentString("hogehoge"));
Les spécifications de la bibliothèque diffèrent légèrement selon la version. La source de la bibliothèque peut également être trouvée sur MCreator. Si vous le comprenez, vous pouvez le lire directement.
Étant donné que les instructions relatives à quel objet sont séparées à l'avance, sélectionnez-les au hasard en fonction des données du mod. J'ai mis le premier mot de la phrase dans le modèle de génération et j'ai essayé de générer la phrase. Voir un autre article pour plus de détails.
Le simple fait de l'afficher n'est pas de bon goût. J'ai essayé de parler lentement. Facile, je l'ai fait comme ça (Windows).
subprocess.call("start C:\hoge\softalk\SofTalk.exe /R: /W: "+"Le texte que vous souhaitez lire", shell=True)
Les mods Minecraft sont célèbres, donc je pensais qu'il y avait beaucoup d'articles de commentaires, mais ce n'était pas le cas.
Construire un environnement qui n'utilise pas MCreator est gênant et n'a pas été fait. Je pense que ce n'est pas pratique d'essayer de le coder étroitement, donc je veux faire quelque chose à ce sujet.
Minecraft a beaucoup de potentiel, j'espère donc que tout le monde l'essaiera.
Recommended Posts