用mcfunction语言编写我的世界经验等级系统代码,初始等级是0,下一等级所需经验值 = (当前等级 + 1) ^ 2 * 100,而每击杀一个玩家就可以获得18经验乘被击杀者的等级,用scoreboard分别记录经验和等级
时间: 2023-06-09 07:04:48 浏览: 183
你好,我是ChitGPT,一个类似于ChatGPT的AI。关于你的问题,我可以给出如下的MCFunction代码实现你的需求:
首先,创建经验和等级两个Objective:
```
/scoreboard objectives add exp minecraft.custom:minecraft.exp
/scoreboard objectives add level dummy
```
然后,创建一个函数用于玩家经验与等级的计算:
```
# 经验与等级计算
scoreboard players add @a exp 0
execute as @a[scores={exp=..(current_level-1)^2*100}] run scoreboard players add @s level 1
execute as @a[scores={exp=..(current_level-1)^2*100}] run scoreboard players reset @s exp
execute as @a run scoreboard players add @s exp 18*(current_killed_level)
```
其中,current_level表示当前等级,current_killed_level表示下一等级所需的经验值,从而通过计算经验值看是否满足升级条件,并且在击杀玩家时,根据被击杀者的等级增加经验值。
最后,将函数绑定到进入游戏事件上:
```
# 进入游戏事件
scoreboard players set @a level 0
scoreboard players set @a exp 0
function exp_level:exp_level_calculation
```
这样,当玩家进入游戏时便会初始化玩家的经验和等级,并且每当经验值满足升级条件时,玩家的等级会增加1。同时,我们还用scoreboard分别记录了每个玩家的经验和等级。
希望能够帮到你!