天鹬大神
最近养了一只小白狐,不想让它长大,有没有Java版能用的指令让没驯服的小狐狸延长长大时间,最好是无限延长(要完整指令,可以是命名过的狐狸)

Stone_ingot
本帖最后由 Stone_ingot 于 2023-2-7 17:31 编辑

你这问题不是昨天问过吗(
更改Age标签即可
  1. /execute as @e[type=fox,distance=0..1] run data modify entity @s Age set value -114514
复制代码
站你狐狸边上输入这个

天鹬大神
Stone_ingot 发表于 2023-2-7 17:28
你这问题不是昨天问过吗(
更改Age标签即可

上次是驯服过的猫,这次是没有驯服的狐狸,而且这次要完整指令,还有,这么一个赚金粒的机会你不要吗?

开心的阿诺
天鹬大神 发表于 2023-2-7 17:31
上次是驯服过的猫,这次是没有驯服的狐狸,而且这次要完整指令,还有,这么一个赚金粒的机会你不要吗? ...

我又来力
/execute as @e[type=fox,name=名字] run data modify entity @s Age set value -114514

话说这玩意查wiki或许更值?

天鹬大神
开心的阿诺 发表于 2023-2-7 17:32
我又来力
/execute as @e[type=fox,name=名字] run data modify entity @s Age set value -114514 ...

好的,我去逝世,如果刑的话就给你金粒

天鹬大神
开心的阿诺 发表于 2023-2-7 17:32
我又来力
/execute as @e[type=fox,name=名字] run data modify entity @s Age set value -114514 ...

不行,上次的猫还是长大了,这次的狐狸不知道会不会长大

Stone_ingot
天鹬大神 发表于 2023-2-7 17:39
不行,上次的猫还是长大了,这次的狐狸不知道会不会长大

-114514的话大约是一个半小时,再调小一点即可
  1. /execute as @e[type=fox,distance=0..1] run data modify entity @s Age set value -2147483647
复制代码



开心的阿诺
天鹬大神 发表于 2023-2-7 17:39
不行,上次的猫还是长大了,这次的狐狸不知道会不会长大

value改成-2147483648(int极限)

Summer_leaves
本帖最后由 Summer_leaves 于 2023-2-7 17:48 编辑
开心的阿诺 发表于 2023-2-7 17:41
value改成-2147483648(int极限)

我终于知道昨天那个人跟我说:“在问答区一定要心态好”要是让我回答这种问题可能会疯。我只知道有一个叫time的指令能改时间。

v5霸气58
用cmdblock无限执行
  1. /execute as @e[type=fox] run data modify entity @s Age set value -2147483647
复制代码


awa

钩钩安排
完成任务

MoonCakeMC
本帖最后由 MoonCakeMC 于 2023-2-7 21:37 编辑

楼上的指令好像有BUG,成年狐狸也会强制变回小狐狸(应该吧
以及狐狸好像没有驯服一说?
修复版的:
单次执行:
  1. scoreboard objectives add age_temp dummy
复制代码

重复执行:
  1. execute as @e[type=fox] run execute store result score @s age_temp run data get entity @s Age
  2. execute as @e[type=fox,scores={age_temp=..-1}] run data modify entity @s Age set value -2147483648
复制代码

这个应该就没问题了,开着重复执行的时候生成的小狐狸即使关闭重复执行也不会长大,如果要关闭重复执行可以长大的话用下面的
  1. execute as @e[type=fox] run execute store result score @s age_temp run data get entity @s Age
  2. execute as @e[type=fox,scores={age_temp=..0}] run scoreboard players remove @s age_temp 1
  3. execute as @e[type=fox,scores={age_temp=..-1}] run execute store result entity @s Age int 1 run scoreboard players get @s age_temp
复制代码

以上均为理论性的,没有实测,但应该不会BUG
如果会数据包可以直接写成tick函数

开心的阿诺
MoonCakeMC 发表于 2023-2-7 21:28
楼上的指令好像有BUG,成年狐狸也会强制变回小狐狸(应该吧
以及狐狸好像没有驯服一说?
修复版的:

感觉如果可以用重复执行+关闭可长大的话可以换成下面的可能更优雅
  1. /execute as @e[type=fox,nbt={Age:-1}] run data modify entity @s Age set value -20
复制代码

正确性证明也很简单,因为Age要到0必定会经过-1,而且不影响Age>0(即成年)的狐狸
不过还没测试