Mee6 испытывает клонирование системы lvl в NodeJS (статическое значение?)

#node.js #discord #discord.js

#node.js #Discord #discord.js

Вопрос:

Я пытался воспроизвести алгоритм работы известного Discord Discord бота Mee6 в NodeJS (OG-бот на Python), но каждая попытка ставила меня в тупик из-за статических значений.

 function XPValue(min, max) {
   return Math.floor(Math.random() * (max - min   1))   min;
}
XPValue(15, 25) // This Randomizes as normal
const curLevel = Math.floor(0.5 * Math.sqrt(XPValue(15, 25))); //When put it here it becomes a static number and never changes
 

Я не понимаю, как я могу рандомизировать XP, как я на самом деле хочу, чтобы это было сделано с помощью XPValue функции, даже если она прошла через то, что function она сохраняет статическое значение 2

Комментарии:

1. Вы хотите сказать, что хотите, чтобы число изменилось после того, как оно было рассчитано?

2. Да, я пытаюсь получить случайное значение XP для передачи игроку в зависимости от выполнения рассматриваемого скрипта. @Львица 100

3. Я все еще не думаю, что понимаю. Если вы просто хотите сгенерировать случайное число, тогда что происходит не так? Получаете ли вы один и тот же номер всякий раз, когда запускаете функцию?

4. У меня был друг на plexidev, который помог мне в этом вопросе, собираюсь опубликовать ответ 🙂 Спасибо за помощь @Lioness100

Ответ №1:

проблема заключалась в том, что после присвоения переменной она не изменяла значение за выполнение, где, поскольку использование getter исправило эту проблему:

 const Experience = {
    get random() {
        var rand = Math.floor(Math.random() * 15);
        return rand   (25 - 15);
    }
};
 

Кредиты Зелаку (PlexiDev)