• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Npc bewegen lassen

mor15€

Kuhfänger
Registriert
13 September 2018
Beiträge
64
Diamanten
300
Hallo,
wie im titel schon steht will ich ein npc bewegen lassen doch irgenwie bewegt er sich immer zu einer anderen postion als angegeben
Hier mein code:
Java:
    public void moveToLoc(Location loc, boolean onGround) {
        short deltaX = (short) ((getLocation().getX()* 32 -  loc.getX()*32) *128);
        short deltaY = (short) ((getLocation().getY()* 32 -  loc.getY()*32) *128);
        short deltaZ = (short) ((getLocation().getZ()* 32 -  loc.getZ()*32) *128);
        PacketPlayOutRelEntityMove packet = new PacketPlayOutRelEntityMove(entityId, deltaX, deltaY, deltaZ, true);

        
        
    
        
        sendPacket(packet, players);

    }



Danke im Vorraus
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
In der Beschreibung des Paketes steht, dass der maximale Wertebereich +/- 8 Blöcke bei jeder Koordinate beträgt. Zudem ist es immer relativ zu den Koordinaten die der Client kennt.
Das Verschicken des Paketes bewegt den NPC aber nicht wirklich, ich würde dir also empfehlen, einfach teleport() zu verwenden in kleineren Abständen.
 

mor15€

Kuhfänger
Registriert
13 September 2018
Beiträge
64
Diamanten
300
Ok danke ich habe jz aber noch eine frage ist es möglich eine methode zuschreiben die den Skin vom NPC zu einem Spieler Skin ändert?
Mein code der nicht geht wie immer lol xD :
Code:
public void changeSkin(Player p) {
        byte[] encodedData = Base64.encodeBase64(String.format("{textures:{SKIN:{url:\"%s\"}}}", "https://minotar.net/skin/" + p.getName() +".png").getBytes());
        gameprofile.getProperties().put("textures", new Property("textures", new String(encodedData)));
        reload();
    }
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Für solche Spieler-NPCs würde ich dir fertige Plugins empfehlen. Ich denke da insbesondere an Citizens mit Denizen kombiniert.

Man kann den NPCs Skins geben, aber nur von gültigen Spielerprofilen. Du musst also eine Anfrage an die Mojang-Server stellen und ein signiertes Spielerprofil abfragen. Der Client stellt diese Skins nur dar, wenn dieser signiert ist und der Zeitpunkt des Signierens weniger als 24 Stunden in der Vergangenheit liegt.
(Zudem wird der Skin nur von den Mojang-Servern geladen, andere URLs sind also nicht möglich. Dies ist aber nur bei Spielerköpfen relevant, da diese nicht signiert sein müssen.)

Siehe dazu auch: https://wiki.vg/Mojang_API#UUID_-.3E_Profile_.2B_Skin.2FCape
 
Oben