2017-12-25 7 views
3

Ich versuche, farbige Redstone-Partikel per ProtoLib über Pakete an den Player zu senden. Ich habe gegoogelt, um sie farbig zu machen, brauche ich die offset Parameter als das RGB-System. Es hat jedoch nicht wie vorgesehen funktioniert; Teilchen sind immer noch rot oder haben eine zufällige Farbe (siehe unten), und offset wird immer noch als Randomisierer für jedes Teilchen von der gegebenen Stelle verwendet. Mein Code:Redstone-Partikel ändern ihre Farbe nicht

PacketContainer packet = new PacketContainer(PacketType.Play.Server.WORLD_PARTICLES); 
packet.getModifier().writeDefaults(); 
packet.getParticles().write(0, Particle.REDSTONE); 
float x = (float) loc.getX(); 
float y = (float) loc.getY() + 3; 
float z = (float) loc.getZ(); 
float red = 0; 
float green = 0; 
float blue = 1; 
packet.getFloat().write(0, x).write(1, y).write(2, z); // Location 
packet.getFloat().write(3, red).write(4, green).write(5, blue); // Offset 
packet.getFloat().write(6, 0F); // Particle data ? 
packet.getIntegers().write(0, 1); // Amount 

ProtocolManager manager = ProtocolLibrary.getProtocolManager(); 
try { 
    for (Player player : getters) manager.sendServerPacket(player, packet); 
} catch (Exception ex) {ex.printStackTrace();} 

Ich versuchte amount und Partikel data zu ändern. Wenn Partikel data0 ist, dann sind Partikel rot, in anderen Fällen sind bis zu 1 Partikel zufällig gefärbt.
Ich verwende ProtocolLib 4.3.0 und 1.12.2 Spigot

Antwort

3

ich mein Problem gelöst, um laichen farbigen wahre redstone Teilchen muss es 3 Dinge:

  1. Amount müssen 0
  2. Data muss 1
  3. Rote Komponente (x Offset) muss x - 1 sein (weil diese Komponente automatisch um 1 erhöht wird, bevor sie in das Paket drängt)
+0

Denken Sie daran, Ihre Antwort als die richtige zu akzeptieren! – Kerooker