ZacharyAlexa
如题,版本1.12.2
我想要玩家第一次进入游戏领取物品,然后不能领取第二次,怎么做?

Peanutz_OwO
本帖最后由 Peanutz_OwO 于 2020-8-13 20:00 编辑

使用函数。
创建 kit 命名空间,再在游戏中创建名为 ifNotNewer 的 dummy 记分项。在函数 tick 中写这条命令,用于判断是否是新玩家:
  1. execute @a[score_ifNotNewer=0] ~ ~ ~ function kit:newer
复制代码
然后在函数 newer 中写这些命令:
  1. give @s ...
  2. ... // 一系列 /give 物品
  3. scoreboard players set @s ifNotNewer 1
复制代码
最后在游戏中输入 /gamerule gameLoopFunction kit:tick 。


ZacharyAlexa
Peanutz_OwO 发表于 2020-8-13 18:50
使用函数。
创建命名空间为 kit 的数据包,再创建名为 new 的记分项。在标签函数 tick 中写这条命令,用于 ...

有没有更简单的?

Peanutz_OwO
本帖最后由 Peanutz_OwO 于 2020-8-13 19:29 编辑

原版的话……没想到更简单的方式。

ZacharyAlexa
Peanutz_OwO 发表于 2020-8-13 19:20
原版的话……没想到更简单的方式。(等会儿这是 1.13+ 的命令格式,我改一下) ...

我想尝试玩家第一次进入给分数或者tag,但是不知道怎么搞

Peanutz_OwO
老鼠吃奶酪 发表于 2020-8-13 19:25
我想尝试玩家第一次进入给分数或者tag,但是不知道怎么搞

用 /tag 差不多,关键是如何判断第一次进入,我能想到的就记分板和标签:以所有 ifNewer 分数不高于 0 或不带有 notNewer 标签的玩家为执行者执行 /give @s 命令并设定 ifNewer 分数为 1 或添加 notNewer 标签。

ZacharyAlexa
Peanutz_OwO 发表于 2020-8-13 19:32
用 /tag 差不多,关键是如何判断第一次进入,我能想到的就记分板和标签:以所有 ifNewer 分数不高于 0 或 ...

听不懂,列一下详细的指令

Peanutz_OwO
本帖最后由 Peanutz_OwO 于 2020-8-13 20:00 编辑
老鼠吃奶酪 发表于 2020-8-13 19:46
听不懂,列一下详细的指令

就像这样:
创建 kit 命名空间。在函数 tick 中写这条命令,用于判断是否是新玩家:
  1. execute @a[tag=!notNewer] ~ ~ ~ function kit:newer
复制代码
然后在函数 newer 中写这些命令:
  1. give @s ...
  2. ... // 一系列 /give 物品
  3. scoreboard players tag @s add notNewer
复制代码
最后在游戏中输入 /gamerule gameLoopFunction kit:tick 。

ZacharyAlexa
Peanutz_OwO 发表于 2020-8-13 19:54
就像这样:
创建 kit 命名空间。在函数 tick 中写这条命令,用于判断是否是新玩家:
然后在函数 newer 中 ...

不会函数,能帮我做一下吗。
需要给的有
钻石稿*1
泥土*1
牛排*16

Peanutz_OwO
本帖最后由 Peanutz_OwO 于 2020-8-13 20:12 编辑
老鼠吃奶酪 发表于 2020-8-13 19:57
不会函数,能帮我做一下吗。
需要给的有
钻石稿*1

喏:https://cowtransfer.com/s/c18499757a664e
解压到 <存档名>\data\functions 里就可以了。
别忘了在游戏中输入 /gamerule gameLoopFunction kit:tick 。


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