Я пытаюсь создать систему профессий и навыков для своей ренпи-игры
Я создаю и сохраняю все задания и навыки внутри класса и вызываю их в зависимости от фактической работы игрока, когда нужно, но я могу понять, как вызвать конкретную функцию объекта навыка для задания, чтобы дать опыт навыку, это то, что у меня есть.
Я не могу найти способ сделать это get_exp() "ganar_exp() работает для спортивного мастерства "депортация")
##List of skills
default deporte = Skill("deporte",0,0,1.25)
default oratoria = Skill("oratoria",0,0,1.50)
##List of jobs
default gym = Job("gym",[26,42],46,fuerza,deporte,1)
...
class Skill(object):
def __init__(self,nombre,exp,nivel,dificultad):
self.nombre = nombre
self.exp = exp
self.nivel = nivel
self.dificultad = dificultad
## this function give experience to the skill and lvl it up
def ganar_exp(cantidad):
self.exp+=cantidad
if self.exp >= self.nivel*4*self.dificultad:
self.nivel+=1
class Job(object):
global diligencia
def __init__(self,nombre,horario,sueldo,primaria,secundaria,tier):
self.nombre = nombre
self.horario = horario
self.primaria = primaria
self.secundaria = secundaria
self.sueldo = sueldo
self.tier = tier
self.ganancia = (sueldo+((primaria*1.5)+((secundaria.nivel+1)*1.2)+((diligencia+1)*1.1)))*tier
## this function is called when the player go to his work
def trabajar(self):
global currentTime
global dinero
while currentTime!=self.horario[1]:
advanceTime()
dinero += self.ganancia
self.secundaria.ganar_exp(1) ##this is wrong because i cant find the correct code for this
В последней строке мне нужно дать EXP вторичному навыку этой работы, вызвав функцию этого конкретного объекта для этого навыка.
Я Я пытался использовать dir(), чтобы получить некоторые значения и небольшие отступы, экспериментировал с тем, как я вызываю функцию, и читал документацию, но не мог понять, как написать эту строку кода.
Изменить 1:
Ошибка в этой конкретной попытке была:
File "game/script.rpy", line 694, in $
gym.trabajar()
File "game/script.rpy", line 183, in trabajar self.secundaria.ganar_exp(1)
TypeError: ganar_exp() takes 1 positional argument but 2 were given
Подробнее здесь: https://stackoverflow.com/questions/790 ... t-function