Seite 1 von 1

WASD Packet Moving

BeitragVerfasst: Sa 30. Apr 2016, 16:23
von Ste3et_C0st
Heyho für mein Plugin FurnitureMaker möchte ich meine ArmorStands über WASD moven können ich hab nun über PacketType.Play.Client.STEER_VEHICLE die Tasten

WASD & jump ausgelsen un triggere damit ein event welches nun den ArmorStand über setVelocity verschieben soll diese function sied nun wie folgt aus:

Code: Alles auswählen
  1.    public void setVelocity(Vector v) {
  2.       int x = (int) (v.getX() * 8000.0D);
  3.       int y = (int) (v.getY() * 8000.0D);
  4.       int z = (int) (v.getZ() * 8000.0D);
  5.       PacketContainer c = new PacketContainer(PacketType.Play.Server.ENTITY_VELOCITY);
  6.       c.getIntegers().write(0, getEntityID());
  7.       c.getIntegers().write(1, x).write(2, y).write(3, z);
  8.       for (Player p : getObjID().getPlayerList()) {
  9.          try {
  10.             getManager().sendServerPacket(p, c);
  11.          } catch (Exception e) {
  12.             e.printStackTrace();
  13.          }
  14.       }
  15.    }


Alles anzeigenAber da tut sich garnichts ich bekomm weder einen error in der console noch bewegt sich mein armorstand verschiedene Test Outputs kommen an also der code scheint zu funktionieren aber dennoch bewegt sich der ArmorStand nicht ich suche nun nach einer sinvollen antwort bitte. Natürlich könnt ihr euch meine Code auch komplett anscheun github.com/Ste3et/FurnitureLib…/entity/fEntity.java#L424

Re: WASD Packet Moving

BeitragVerfasst: So 1. Mai 2016, 20:32
von Letsplaybar
hier der code worüber du gesendete Packete bewegen kannst:
Code: Alles auswählen
  1. public void move(double x, double y, double z){
  2.       PacketPlayOutRelEntityMove packet = new PacketPlayOutRelEntityMove(entityid, (byte)toFixedPointNumber(x), (byte)toFixedPointNumber(y), (byte)toFixedPointNumber(z),true);
  3.        for(Player p : Bukkit.getOnlinePlayers()){
  4.               ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
  5.            }
  6.    }
  7.    
  8.    
  9.    public void look(float yaw, float pitch){
  10.       PacketPlayOutEntityLook packet = new PacketPlayOutEntityLook(entityid, toPackedByte(yaw), toPackedByte(pitch), true);
  11.        for(Player p : Bukkit.getOnlinePlayers()){
  12.               ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
  13.            }
  14.    }
  15.    
  16.    public void head(float yaw){
  17.       try {
  18.          PacketPlayOutEntityHeadRotation packet = new PacketPlayOutEntityHeadRotation();
  19.       set(packet, "a", entityid);
  20.       set(packet, "b", toPackedByte(yaw));
  21.        for(Player p : Bukkit.getOnlinePlayers()){
  22.               ((CraftPlayer)p).getHandle().playerConnection.sendPacket(packet);
  23.            }
  24.       } catch (Exception e) {
  25.          e.printStackTrace();
  26.       }
  27.       
  28.    }


so mit diesem Code kann man dan die Kordinate von Packet entitys ändern und auch die Blickrichtung ...

Re: WASD Packet Moving

BeitragVerfasst: Mo 2. Mai 2016, 12:11
von Ste3et_C0st
Danke ich habs nun hinbekommen