首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >红石粒子不会改变颜色

红石粒子不会改变颜色
EN

Stack Overflow用户
提问于 2017-12-25 14:50:05
回答 1查看 853关注 0票数 3

我试图通过使用ProtocolLib的数据包向播放器发送彩色红石粒子。我在谷歌上搜索到,为了使它们着色,我需要使用offset参数作为RGB系统。但是,它没有按预期工作;粒子仍然是红色的或具有随机颜色(见下文),而且offset仍然用作来自给定位置的每个粒子的随机化器。我的代码:

代码语言:javascript
复制
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();}

我试图改变amount和粒子data。如果粒子data0,那么粒子是红色的,在其他情况下,直到1粒子是随机着色的。

我使用的是ProtocolLib 4.3.0和Spigo1.12.2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-25 23:43:14

我解决了我的问题,要想产生彩色的红石粒子,必须有三件事:

  1. Amount必须是0
  2. Data必须是1
  3. 红色组件(x偏移量)必须是x - 1 (因为该组件在进入数据包之前自动增加1)。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47969668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档