iMoonDay
本帖最后由 iMoonDay 于 2023-1-29 09:42 编辑

我需要做一个以玩家为中心的球体动态粒子效果,并且得保证所有粒子到玩家的距离一致为15格且可调,粒子效果用happy_villager,各粒子之间的间距需可调,不要所有粒子同时出现,不要用穷举,版本为1.19.3,用在数据包内

DJH666
本帖最后由 DJH666 于 2023-1-30 01:40 编辑
  1. tp @s ~ ~ ~ ~2 ~
  2. #若需调整粒子间距,请将上方指令中的2调大

  3. particle minecraft:happy_villager ^ ^ ^15 0 0 0 0 1 force
  4. #如果要更改球体半径,修改'^ ^ ^'后面的的数字就行,两个都要更改
  5. particle minecraft:happy_villager ^ ^ ^-15 0 0 0 0 1 force

  6. scoreboard players add @s a 2
  7. #若需调整粒子间距,请将上方指令中的2调大

  8. execute as @s[scores={a=360..}] run tp @s ~ ~ ~ ~ ~2
  9. #若需调整粒子间距,请将上方指令中的2调大

  10. execute as @s[scores={a=360..}] run scoreboard players reset @s a

  11. execute as @s at @s run function 【函数名】
  12. #请将【函数名】替换为此函数的名称
复制代码
以上指令写成一个函数
创建一个名称为"a"的计分板

只需在玩家处召唤一个盔甲架,然后以盔甲架为目标(即as盔甲架)运行就可以。

如果要成品数据包也行,我明天应该就能做出来。


iMoonDay
DJH666 发表于 2023-1-30 01:18
以上指令写成一个函数
创建一个名称为"a"的计分板

我得判定玩家手上有指定物品才显示粒子效果,你这好像是无限循环了

iMoonDay
DJH666 发表于 2023-1-30 01:18
以上指令写成一个函数
创建一个名称为"a"的计分板

我刚刚加进去试了一下,循环太多,游戏崩了,不知道是不是我搞错了

DJH666
本帖最后由 DJH666 于 2023-2-2 18:05 编辑
iMoonDay 发表于 2023-2-2 05:58
我刚刚加进去试了一下,循环太多,游戏崩了,不知道是不是我搞错了

  1. tp @s ~ ~ ~ ~3 ~0.02
  2. #若想调节粒子间距,请调节上方数字。
  3. #但是具体调节方式我还没研究清楚,比较麻烦。

  4. particle minecraft:happy_villager ^ ^ ^15 0 0 0 0 1 force
  5. 若想更改球体大小,请调节上方‘^ ^ ^’后的数字

  6. scoreboard players add @s a 2
  7. #这两条指令确保函数在显示一个完整球体后停止循环,请确保上方指令的数字与最上方指令最后方的数字的小数点最后一位相同。
  8. execute as @s at @s if entity @s[scores={a=..18000}] run function 【此函数名】
  9. #上方指令的数字中,180后的0的数量应该与最上方指令小数点后的位数相等
复制代码

这个循环少,但是粒子比较难调节。
用/schedule每隔10tick执行一次就可以

  1. execute as 【盔甲架】 at @s run tp @s ~ ~ ~ 90 -90

  2. scoreboard players reset @e a

  3. execute as 【盔甲架】 at @s run function 【粒子函数名】

  4. schedule function 【此函数名】 10t
复制代码
再加一个这个函数,运行一次就可以循环了。
对于手持物品的判定也好加,改第二个函数就行。


iMoonDay
DJH666 发表于 2023-2-2 17:43
这个循环少,但是粒子比较难调节。
用/schedule每隔10tick执行一次就可以

这个虽然能用但是如果两个或以上同时在显示粒子效果的玩家站在一起就只能显示最后一个,前面的只会一闪而过,不知道是你函数的问题还是我其他函数的问题

DJH666
iMoonDay 发表于 2023-2-2 20:53
这个虽然能用但是如果两个或以上同时在显示粒子效果的玩家站在一起就只能显示最后一个,前面的只会一闪而 ...

emm...可能是只有一个盔甲架的原因?
或者可能是粒子效果显示的太多,把粒子函数最上面的指令的数字改成6和0.1试试

iMoonDay
DJH666 发表于 2023-2-2 21:05
emm...可能是只有一个盔甲架的原因?
或者可能是粒子效果显示的太多,把粒子函数最上面的指令的数字改成6 ...

盔甲架倒是没问题,我是直接在各自位置生成盔甲架。
这数字改完粒子更多了,一个都显示不完全

iMoonDay
DJH666 发表于 2023-2-2 21:05
emm...可能是只有一个盔甲架的原因?
或者可能是粒子效果显示的太多,把粒子函数最上面的指令的数字改成6 ...

话说粒子太多能不能改成动态的呢,就是以上下为原点向中间扩散粒子,不用一次性全部显示完

DJH666
iMoonDay 发表于 2023-2-2 21:18
盔甲架倒是没问题,我是直接在各自位置生成盔甲架。
这数字改完粒子更多了,一个都显示不完全 ...

emm...其实粒子是少了,但是需要再改一下第三行指令,把2改成10就行。
还有,动态的我是真的不会...

第一页 上一页 下一页 最后一页