Discord Leveling-Bot programmieren - Wie XP und Level berechnen?
Ich programmiere gerade einen Discord Bot, der eine XP und Level Funktion hat. Ich hab alles schon soweit fertig (Bot kann Nutzern XP geben, hat einen Cooldown, Leaderboard, etc.). Bei der Leveling Funktion tue ich mir aber schwer. Das Programmieren ist nicht das Problem, eher Mathe O.o.
Also- hat jemand eine Idee / eine gute Formel, wie ich berechnen kann, welches Level der Nutzer mit seinen XP hat? Es wäre zudem noch wichtig, dass ich berechnen kann, wie viele XP dem Nutzer noch bis zum nächsten Level fehlen.
Ach ja! Ich programmiere den Bot in Python, falls direkt jemand die Syntax benutzen möchte oder so.
Edit: Die Level sollten immer mehr XP erfordern, ich hätte gerne ein ähnliches (vielleicht sogar gleiches) System wie z. B. Mee6.
1 Antwort
Also meine Funkton sieht wie folgt aus:
async def add_xp(self, message, xp, lvl):
xp_to_add = randint(10, 20)
new_lvl = int(((xp+xp_to_add)//42) ** 0.55)
db.execute("UPDATE exp SET XP = XP + ?, Level = ?, XPLock = ? WHERE UserID = ?",
xp_to_add, new_lvl, (datetime.utcnow()+timedelta(seconds=60)).isoformat(), message.author.id)
if new_lvl > lvl:
await self.levelup_channel.send(f"Congrats {message.author.mention} - you reached level {new_lvl:,}!")
await self.check_lvl_rewards(message, new_lvl)
Hoffe, das hillft dir weiter ;)
LG™