Прежде всего, я прошу прощения, если я написал какое-то слово неправильно - мой второй язык - английский sh.
Но в любом случае я работаю над текстовой RPG уже неделю и только начал боевая система, и у меня есть вся статистика игроков и врагов в пунктах.
Это только часть моего кода, но этого достаточно. Итак, я сделал функцию, которая повышает уровень моего персонажа.
class player:
def __init__(self):
self.name='Hero'
self.lvl=1
self.xp=0
self.lvl_next=25
self.str=1
self.dex=1
self.int=1
def pl_level(self):
Nstr=0
Ndex=0
Nint=0
while player.xp>=player.lvl_next:
player.lvl+=1
player.xp-=player.lvl_next
player.lvl_next=round(player.lvl_next*1.5)
Nstr+=1
Ndex+=1
Nint+=1
print('Level:', player.lvl)
print('STR {} +{} DEX {} +{} INT {} +{}'.format(player.str, Nstr, player.dex, Ndex, player.int, Nint))
player.str+=Nstr
player.dex+=Ndex
player.int+=Nint
print('Exp: '+str(player.xp))
print('To the next level: {}%'.format(int((player.xp/player.lvl_next)*100)))
print('Next:', player.lvl_next)
Но я не знаю, почему он просто не работает. Я попытался упростить свой код, потому что, может быть, так я найду проблему. Но он просто продолжает выдавать мне эту ошибку.
Traceback (most recent call last):
File "F:\2XK_\Coding\Python\Python_Battle\Ulfberht\leveling_system.py", line 99, in <module>
pl_level()
File "F:\2XK_\Coding\Python\Python_Battle\Ulfberht\leveling_system.py", line 11, in pl_level
while player.xp>=player.lvl_next:
AttributeError: type object 'player' has no attribute 'xp'
Даже если вы видите, что в init есть self.xp.
Так как я могу это исправить