gpt4 book ai didi

javascript - 调平系统进度条

转载 作者:行者123 更新时间:2023-12-01 00:51:47 24 4
gpt4 key购买 nike

所以这是两个问题合二为一,但基本上我正在为我的 Discord 机器人 (Discord.js) 制作一个排名/分级系统,并且我在下一级别的进度条方面遇到问题。这是我到目前为止所得到的:

        const x = "□";
let progressBarArr = [x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x];

let currentLevel = Math.ceil(result.allocatedExp/1000)*1000;
if (currentLevel < 1000) currentLevel = 1000;

let progressBar = "["+progressBarArr.fill("=", Math.ceil(result.allocatedExp/currentLevel)*35).join('')+"]"

每获得 1,000 XP,您就可以升级,所以假设用户的 XP 是1234,他们将达到 1 级,并达到 2 级的 23%。我只需要在进度条类型样式。我现在的代码可以工作,但前提是它们的 XP 低于 1k,否则条形图总是满的。

我的另一个问题对于大多数人来说很可能是微不足道的,但我被它难住了,假设一个用户有 15k xp,我如何从 15000 中得到 15 来表示他们是 15 级?

谢谢!

最佳答案

只需使用Math.floor(xp/1000)即可获取玩家当前的等级。

对于进度条,使用模 1000 来检查玩家在最后 1000 和下 1000 之间的距离,并将结果乘以 35 来计算出要显示的 = 数量:

const showBar = xp => {
const currentLevel = Math.floor(xp / 1000);
const progress = (xp % 1000) / 1000;
const progressOutOf35 = Math.round(progress * 35);

const x = "□";
const barStr = `[${'='.repeat(progressOutOf35)}${'□'.repeat(35 - progressOutOf35)}]`;
console.log(barStr + ', currntly at level ' + currentLevel);
};

showBar(1500);
showBar(3900);
showBar(15000);

关于javascript - 调平系统进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com