青蛙的名单
我想要写一个隔一段时间讲有意愿(Willing)的村民转化为准备繁殖的村民(InLove)
打算使用函数实现
timer.mcfunction

scoreboard objectives add timer dummy
scoreboard players add @s timer 1
function sheng if @s[score_timer_min=2400]
scoreboard players reset @s[score_timer_min=2400] timer



sheng.mcfunction

execute as @e[type=villager,nbt={Willing:1b}] run data merge entity @s {InLove:600}

随后我要把这两个文件放在哪里,怎样才能触发?
(如果内容有错,也请指出)
版本1.13.2

dsdgwsfs
我还以为是数学。。

⊙v⊙
本帖最后由 ⊙v⊙ 于 2019-3-10 02:31 编辑

先是存放位置,存放在这个位置下
.minecraft\saves\<存档名字>\datapacks\<数据包名字>\data\<命名空间>\functions
命名空间英文字母小写,这里假设你的命名空间为test,那么

.minecraft\saves\<存档名字>\datapacks\<数据包名字>\data\test\functions\timer.mcfunction
.minecraft\saves\<存档名字>\datapacks\<数据包名字>\data\test\functions\sheng.mcfunction

  1. #run once
  2. scoreboard objectives add timer dummy
复制代码
而这个只需要执行一次,你自己在聊天框里执行一次就好




  1. #test:timer
  2. #(?)@s > @e[type=minecraft:villager]
  3. #(?)@s > @e[type=minecraft:villager,nbt={Willing:1b}]
  4. scoreboard players add @s timer 1
  5. execute if score @s timer matches 2400.. run function test:sheng
复制代码

  1. #test:sheng
  2. execute if entity @s[nbt={Willing:1b}] run data merge entity @s {InLove:600}
  3. scoreboard players reset @s timer
复制代码


游戏里执行以下
execute as @e[type=minecraft:villager] run function test:timer



Ruainbow_
将这俩放入数据包中。
[存档名称/datapacks/data/命名空间/functions/]
举个例子:[New_World/datapacks/data/villager_breeding/functions/]
放进[functions]文件夹里就行了

然后再创建一个函数,随便命名,比如[loop.mcfunction],里面写上
execute as @e[type=villager] run function timer

然后在[New_World/datapacks/data/villager_breeding/tags/functions/]创建一个文件,命名为[tick.json]
里面这样写
  1. {
  2.      "values":[
  3.               "villager_breeding"
  4.      ]
  5. }
复制代码



另外你的命令中
[function sheng if @s[score_timer_min=2400]]
是错误的,这是1.12的格式
应该改为
execute if entity @s[scores={timer=2400..}] run function villager_breeding:sheng
这里的villager_breeding是命名空间名称,如果不用这个名字的话可以改掉

野生之Puni
我也以为是数学。。

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