Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Прогресс бар LVL

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2020
Сообщения
66
Реакции
11
Всем привет.
Добавил в своего бота LVL систему, через пару строк уравнения
Для вычисления повышения уровня вот такая
lvl_up = int(experience ** (1 / 4))

Ну и код для получения цифр из базы данных
Python:
Expand Collapse Copy
experience = cursor.execute("SELECT exp FROM users WHERE id = {}".format(member.id)).fetchone()[0]
level = cursor.execute("SELECT lvl FROM users WHERE id = {}".format(member.id)).fetchone()[0]


И так как я состаю в некоторых серверах где часто общаюсь, то вижу ботов с LVL системой, где при написание команды "rank" и высвечивается картинка с их NAME LVL EXP | BAR. Мне бы хотелось повторить именно момент вот такой:
"До повышение осталось: 127exp | [██████████░░ 95%]"

Сначала пытался сам додумывать, но понял, что не получается, поэтому полез в интернет, но тоже ничего не нашёл пошёл на github, там нашёл пару ботов с lvl системой, но ничего так и не нашёл. Надеюсь тут разъяснят как сделать такую штучку, если нужны какие то другие части кода, то скину.
 
Всем привет.
Добавил в своего бота LVL систему, через пару строк уравнения
Для вычисления повышения уровня вот такая
lvl_up = int(experience ** (1 / 4))

Ну и код для получения цифр из базы данных
Python:
Expand Collapse Copy
experience = cursor.execute("SELECT exp FROM users WHERE id = {}".format(member.id)).fetchone()[0]
level = cursor.execute("SELECT lvl FROM users WHERE id = {}".format(member.id)).fetchone()[0]


И так как я состаю в некоторых серверах где часто общаюсь, то вижу ботов с LVL системой, где при написание команды "rank" и высвечивается картинка с их NAME LVL EXP | BAR. Мне бы хотелось повторить именно момент вот такой:
"До повышение осталось: 127exp | [██████████░░ 95%]"

Сначала пытался сам додумывать, но понял, что не получается, поэтому полез в интернет, но тоже ничего не нашёл пошёл на github, там нашёл пару ботов с lvl системой, но ничего так и не нашёл. Надеюсь тут разъяснят как сделать такую штучку, если нужны какие то другие части кода, то скину.

Псевдокод:
Expand Collapse Copy
import math
# Возможно не работает, с телефона хреново пишется
bar_num = 10
per_bar = 100 / bar_num
filled_bars = math.floor((cur_exp / max_exp * 100) / per_bar)
blank_bars = bar_num - filled_bars

# Дальше напсевдокодить не смогу, с телефона сижу
 
Псевдокод:
Expand Collapse Copy
import math
# Возможно не работает, с телефона хреново пишется
bar_num = 10
per_bar = 100 / bar_num
filled_bars = math.floor((cur_exp / max_exp * 100) / per_bar)
blank_bars = bar_num - filled_bars

# Дальше напсевдокодить не смогу, с телефона сижу
cur_exp - EXP сейчас, которое в базе данных.
max_exp - его как получить?
 
cur_exp = db_exp - cur_lvl_exp
max_exp = next_lvl_exp - cur_lvl_exp
Python:
Expand Collapse Copy
    cursor.execute("""CREATE TABLE IF NOT EXISTS users (
        name TEXT,
        id INT,
        cash BIGINT,
        rep INT,
        mrep INT,
        exp BIGINT,
        lvl INT,
        server_id INT
    )""")

Сейчас реал прям, не пойму именно.
db_exp - EXP которое сейчас у пользователя
cur_lvl_exp - LVL котоый сейчас у пользователя?
next_lvl_exp - Тут я вообще не понял
 
Python:
Expand Collapse Copy
    cursor.execute("""CREATE TABLE IF NOT EXISTS users (
        name TEXT,
        id INT,
        cash BIGINT,
        rep INT,
        mrep INT,
        exp BIGINT,
        lvl INT,
        server_id INT
    )""")

Сейчас реал прям, не пойму именно.
db_exp - EXP которое сейчас у пользователя
cur_lvl_exp - LVL котоый сейчас у пользователя?
next_lvl_exp - Тут я вообще не понял
db_exp - верно (пример 50 опыта)
cur_lvl_exp - опыт который нужен для текущего уровня ( к примеру 1 левел - 0)
next_level_exp - опыт который нужен для следующего уровня ( к примеру 2 левел - 100 )
 
Всем привет.
Добавил в своего бота LVL систему, через пару строк уравнения
Для вычисления повышения уровня вот такая
lvl_up = int(experience ** (1 / 4))

Ну и код для получения цифр из базы данных
Python:
Expand Collapse Copy
experience = cursor.execute("SELECT exp FROM users WHERE id = {}".format(member.id)).fetchone()[0]
level = cursor.execute("SELECT lvl FROM users WHERE id = {}".format(member.id)).fetchone()[0]


И так как я состаю в некоторых серверах где часто общаюсь, то вижу ботов с LVL системой, где при написание команды "rank" и высвечивается картинка с их NAME LVL EXP | BAR. Мне бы хотелось повторить именно момент вот такой:
"До повышение осталось: 127exp | [██████████░░ 95%]"

Сначала пытался сам додумывать, но понял, что не получается, поэтому полез в интернет, но тоже ничего не нашёл пошёл на github, там нашёл пару ботов с lvl системой, но ничего так и не нашёл. Надеюсь тут разъяснят как сделать такую штучку, если нужны какие то другие части кода, то скину.
Запомни. НИКОГДА НЕ ВЫЗЫВАЙ НАПРЯМУЮ SQL КОМАНДЫ
 
db_exp - верно (пример 50 опыта)
cur_lvl_exp - опыт который нужен для текущего уровня ( к примеру 1 левел - 0)
next_level_exp - опыт который нужен для следующего уровня ( к примеру 2 левел - 100 )
Ааа все понял.
Запомни. НИКОГДА НЕ ВЫЗЫВАЙ НАПРЯМУЮ SQL КОМАНДЫ
Буду рад если объяснишь почему
 
Буду рад если объяснишь почему
Найдется умник, который сможет сделать SQL иньекцию, а дальше осталось только догадываться что может сделать человек с полным доступом к твоей базе данных
 
Найдется умник, который сможет сделать SQL иньекцию, а дальше осталось только догадываться что может сделать человек с полным доступом к твоей базе данных
Понял. Возьму на заметку
 
Понял. Возьму на заметку
Есть отличная библиотека sqlalchemy. Её используют как базу для ORM в популярном Django, в интернете есть целая куча гайдов по sqlalchemy ORM.
С помощью этого тебе не нужно будет писать sql запрос вручную, она связывает базы данных с концепциями ООП языка
 
Найдется умник, который сможет сделать SQL иньекцию, а дальше осталось только догадываться что может сделать человек с полным доступом к твоей базе данных
Расскажи как ты будешь делать скл инъекцию через дс бота
 
Назад
Сверху Снизу