t1546542
本帖最后由 t1546542 于 2020-2-2 23:22 编辑

版本:1.14.4
让玩家在蹲下的时候,清除此玩家背包内的纸,并记录到expuse2这个计分板上
问题是怎么让玩家增加expuse2分数的经验
最好能把expuse2这个分数乘以倍率
求大佬解答
@Chelove_C60 @SPGoding

xmdhs
本帖最后由 xmdhs 于 2020-2-3 00:26 编辑

先创建记分板
scoreboard objectives add expuse2 dummy
scoreboard objectives add sneak_time minecraft.custom:minecraft.sneak_time
scoreboard players set #1 expuse2 1

整一个函数,里面写
  1. execute as @a[scores={sneak_time=1..}] run clear @s paper
  2. execute as @a[scores={sneak_time=1..}] run scoreboard players add @s expuse2 1
  3. execute as @a[scores={sneak_time=1..}] run scoreboard players remove @s sneak_time 1
复制代码


然后,再整一个函数
  1. xp add @s[scores={expuse2=0..}] 1 points
  2. scoreboard players operation @s@s[scores={expuse2=0..}] expuse2 -= #1 expuse2
  3. execute if score @s expuse2 matches 0.. run function 本函数名
复制代码


如果你的 expuse2 数值是和清理了多少纸有关的话,就把第一个函数改成
  1. execute as @a[scores={sneak_time=1..}] store result score @s expuse2 run clear @s paper  
  2. execute as @a[scores={sneak_time=1..}] run scoreboard players remove @s sneak_time 1
复制代码


倍率的话,很简单了吧,改下 xp 给的经验即可

t1546542
本帖最后由 t1546542 于 2020-2-3 00:49 编辑
xmdhs 发表于 2020-2-3 00:06
先创建记分板
scoreboard objectives add expuse2 dummy
scoreboard objectives add sneak_time minecraft. ...

看到你的这个突然有了灵感
1.手动聊天栏
scoreboard objectives add expuse minecraft.custom:minecraft.sneak_time
2.循环保持开启
xp add @a[scores={expuse=0..},nbt={SelectedItem:{id:"minecraft:paper",tag:{display:{Name:"[{\"text\":\"1exp\",\"color\":\"light_purple\",\"italic\":\"false\"}]"}}}}] 1 points
3.(连锁跟2.循环后面)
execute as @a[scores={expuse=0..},nbt={SelectedItem:{id:"minecraft:paper",tag:{display:{Name:"[{\"text\":\"1exp\",\"color\":\"light_purple\",\"italic\":\"false\"}]"}}}}] run clear @s paper{display:{Name:"[{\"text\":\"1exp\",\"color\":\"light_purple\",\"italic\":\"false\"}]"}} 1
4.(连锁跟3.连锁后面)
scoreboard players reset @a expuse











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