• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Modifier la rotation de la tête

    Sans suite
    1.7.10
    2
    4
    941
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Lycoon
      Lycoon last edited by

      Bonjour, j’aimerais suite à une commande, orienter la tête d’un NPC joueur (donc de type biped). J’ai pensé à utiliser GLRotate mais setRotationYawHead semble beaucoup plus convenu. Bref, je l’utilise server-side dans l’exécution de ma commande et voilà :

      :::

      [17:14:29] [Server thread/ERROR] [net.minecraft.command.CommandHandler]: Couldn’t process command: ‘npc create Magasin 100’
      java.lang.NoSuchMethodError: net.minecraft.entity.EntityCreature.setRotationYawHead(F)V
      at com.lycoon.lemnoslife.commands.CommandeNPC.spawnNPC(CommandeNPC.java:93) ~[CommandeNPC.class:?]
      at com.lycoon.lemnoslife.commands.CommandeNPC.processCommand(CommandeNPC.java:80) ~[CommandeNPC.class:?]
      at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:96) [CommandHandler.class:?]
      at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:788) [NetHandlerPlayServer.class:?]
      at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:764) [NetHandlerPlayServer.class:?]
      at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:47) [C01PacketChatMessage.class:?]
      at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:68) [C01PacketChatMessage.class:?]
      at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
      at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) [NetworkSystem.class:?]
      at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) [MinecraftServer.class:?]
      at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:349) [DedicatedServer.class:?]
      at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) [MinecraftServer.class:?]
      at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
      at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
      :::

      Puis voici comment je fais spawn mon EntityCreature :

      
      if(type.matches("Magasin")){
         EntityNPCMagasin npc = new EntityNPCMagasin(world);
         spawnNPC(npc);
      }
      
      
      
      public void spawnNPC(EntityCreature npc){
         npc.setPositionAndRotation(player.posX, player.posY, player.posZ, 0, 0);
         npc.setRotationYawHead(rotation);
         npc.setCustomNameTag(type);
      
         world.spawnEntityInWorld(npc);
         player.addChatMessage(new ChatComponentText("NPC " +type+ " créé avec succès !").setChatStyle(vert));
      }
      
      
      1 Reply Last reply Reply Quote 0
      • AymericRed
        AymericRed last edited by

        Salut, c’est une méthode cliente only donc tu dois obligatoirement l’utiliser côté client, ou alors la recréer toi-même dans ton entité et synchroniser la valeur de cette variable pour la rotation.

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

        1 Reply Last reply Reply Quote 0
        • Lycoon
          Lycoon last edited by

          @‘AymericRed’:

          Salut, c’est une méthode cliente only donc tu dois obligatoirement l’utiliser côté client, ou alors la recréer toi-même dans ton entité et synchroniser la valeur de cette variable pour la rotation.

          Donc je la c/c dans ma classe d´entité custom je vois, mais pour la sync ? Comment configures-tu le packet, je dois faire un sendToAll ? Seuls les joueurs connectés auront le NPC dans le bon sens…

          1 Reply Last reply Reply Quote 0
          • AymericRed
            AymericRed last edited by

            Non il faudrait plutôt utiliser les DataWatcher (fais une recherche ou regarde les classes vanilla), tu set une valeur (côté serveur) et le jeu s’occupera de sync avec tout le monde.

            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

            1 Reply Last reply Reply Quote 0
            • 1 / 1
            • First post
              Last post
            Design by Woryk
            Contact / Mentions Légales

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB