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

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

Ну и код для получения цифр из базы данных
Python:
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 системой, но ничего так и не нашёл. Надеюсь тут разъяснят как сделать такую штучку, если нужны какие то другие части кода, то скину.
 
Начинающий
Статус
Оффлайн
Регистрация
1 Янв 2020
Сообщения
91
Реакции[?]
19
Поинты[?]
3K
Всем привет.
Добавил в своего бота LVL систему, через пару строк уравнения
Для вычисления повышения уровня вот такая
lvl_up = int(experience ** (1 / 4))

Ну и код для получения цифр из базы данных
Python:
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 системой, но ничего так и не нашёл. Надеюсь тут разъяснят как сделать такую штучку, если нужны какие то другие части кода, то скину.
Псевдокод:
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

# Дальше напсевдокодить не смогу, с телефона сижу
 
Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2020
Сообщения
66
Реакции[?]
11
Поинты[?]
0
Псевдокод:
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 - его как получить?
 
Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2020
Сообщения
66
Реакции[?]
11
Поинты[?]
0
cur_exp = db_exp - cur_lvl_exp
max_exp = next_lvl_exp - cur_lvl_exp
Python:
    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 - Тут я вообще не понял
 
Начинающий
Статус
Оффлайн
Регистрация
1 Янв 2020
Сообщения
91
Реакции[?]
19
Поинты[?]
3K
Python:
    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 )
 
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,328
Реакции[?]
428
Поинты[?]
96K
Всем привет.
Добавил в своего бота LVL систему, через пару строк уравнения
Для вычисления повышения уровня вот такая
lvl_up = int(experience ** (1 / 4))

Ну и код для получения цифр из базы данных
Python:
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 КОМАНДЫ
 
Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2020
Сообщения
66
Реакции[?]
11
Поинты[?]
0
db_exp - верно (пример 50 опыта)
cur_lvl_exp - опыт который нужен для текущего уровня ( к примеру 1 левел - 0)
next_level_exp - опыт который нужен для следующего уровня ( к примеру 2 левел - 100 )
Ааа все понял.
Запомни. НИКОГДА НЕ ВЫЗЫВАЙ НАПРЯМУЮ SQL КОМАНДЫ
Буду рад если объяснишь почему
 
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,328
Реакции[?]
428
Поинты[?]
96K
Буду рад если объяснишь почему
Найдется умник, который сможет сделать SQL иньекцию, а дальше осталось только догадываться что может сделать человек с полным доступом к твоей базе данных
 
Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2020
Сообщения
66
Реакции[?]
11
Поинты[?]
0
Найдется умник, который сможет сделать SQL иньекцию, а дальше осталось только догадываться что может сделать человек с полным доступом к твоей базе данных
Понял. Возьму на заметку
 
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
126
Поинты[?]
0
Понял. Возьму на заметку
Есть отличная библиотека sqlalchemy. Её используют как базу для ORM в популярном Django, в интернете есть целая куча гайдов по sqlalchemy ORM.
С помощью этого тебе не нужно будет писать sql запрос вручную, она связывает базы данных с концепциями ООП языка
 
Пользователь
Статус
Оффлайн
Регистрация
28 Фев 2019
Сообщения
644
Реакции[?]
138
Поинты[?]
25K
Найдется умник, который сможет сделать SQL иньекцию, а дальше осталось только догадываться что может сделать человек с полным доступом к твоей базе данных
Расскажи как ты будешь делать скл инъекцию через дс бота
 
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,328
Реакции[?]
428
Поинты[?]
96K
Сверху Снизу