Navigation

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

    Modifier la rotation de la tête

    Sans suite
    1.7.10
    2
    4
    859
    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.

        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.

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

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB