本帖最后由 和煦樱 于 2023-2-5 13:28 编辑
复制代码
我这边通过Snowball类生成了一个雪球,然后将它发射出去
然后再发射出去之后接了下面这段代码
- new BukkitRunnable() {
- @SuppressWarnings("deprecation")
- @Override
- public void run() {
- if (snowBall.isDead()) {
- this.cancel();
- } else {
- snowBall.getWorld().spigot().playEffect(snowBall.getLocation(), Effect.FLAME, 0, 0, (float)0, (float)0.4, (float)0, (float)0.1, 5, 1);
- }
- }
- }.runTaskTimerAsynchronously(this, 0, 2L);
就是每2ticks会再雪球当前的坐标生成一次粒子效果,实现法术的特效
但是!!这个粒子特效只被生成了一次,这个是怎么回事.. 我尝试让玩家每2ticks周围生成一次粒子效果都没问题,但让投掷物每2ticks生成一次粒子却不行
如果你是 1.7.10 以上的版本,请使用 World#spawnParticleWorld#spawnParticle 的方法,例如下面这串代码进行调用
复制代码
请注意: FLAME 这个粒子设置时需要将 extra 参数设置为 0 才不会出现因速度过快而导致粒子不成形
如果还是不行, 可以看一看这个视频 Bilibili视频
如果还是不行, 建议寄! 或者你可以加群问一问: 914085636
- world.spawnParticle(Particle.FLAME, snowBall.getLocation(), 1, 0, 0, 0, 0);
请注意: FLAME 这个粒子设置时需要将 extra 参数设置为 0 才不会出现因速度过快而导致粒子不成形
如果还是不行, 可以看一看这个视频 Bilibili视频
602723113 发表于 2023-2-7 11:28
如果你是 1.7.10 以上的版本,请使用 World#spawnParticleWorld#spawnParticle 的方法,例如下面这串代码进 ...
我当时用的是Spigot.playEffect只能触发一次粒子,后来直接用1710_R4底层的写法发粒子效果才可以...感谢莫老看我的帖子

虽然看不懂,但我大受震撼