Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
JimmyFrost
Regular
Posts: 30 Joined: Fri May 01, 2015 9:46 am
Projects: TOWER
Location: United States
Contact:
#1
Post
by JimmyFrost » Tue Mar 06, 2018 1:49 am
So I have this error:
Code: Select all
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/script.rpy", line 6, in script
define attack = skill("attack", 1, 0)
File "game/script.rpy", line 6, in <module>
define attack = skill("attack", 1, 0)
NameError: name 'skill' is not defined
And here is the offending script block:
Code: Select all
define attack = skill("attack", 1, 0)
define guard = skill("guard", 0, 1)
define wait = skill("wait", 0, 0)
I have a class built like this:
Code: Select all
class skill(object):
def __init__(self, name="None", Atk=0, Def=0):
self.name = name
self.Atk = Atk
self.Def = Def
So what am I doing wrong, and how can I make this better?
"If hard work hasn't hurt anyone, then why is there worker's comp?"
Remix
Eileen-Class Veteran
Posts: 1628 Joined: Tue May 30, 2017 6:10 am
Completed: None... yet (as I'm still looking for an artist)
Projects: An un-named anime based trainer game
Contact:
#2
Post
by Remix » Tue Mar 06, 2018 8:08 am
init -1 python:
.... class Skill(... etc etc
The -1 pushes it to an init level that runs prior to defaults/defines (which are init 0)
JimmyFrost
Regular
Posts: 30 Joined: Fri May 01, 2015 9:46 am
Projects: TOWER
Location: United States
Contact:
#3
Post
by JimmyFrost » Mon Mar 19, 2018 1:07 am
I've been busy with school work.
init -20 python:
.... class Actor(....
.... class Skill(....
Is that what you mean, because that's what I have currently.
"If hard work hasn't hurt anyone, then why is there worker's comp?"
JimmyFrost
Regular
Posts: 30 Joined: Fri May 01, 2015 9:46 am
Projects: TOWER
Location: United States
Contact:
#4
Post
by JimmyFrost » Tue Mar 27, 2018 8:21 pm
Here's the offending page in all of it's splendor. If that really helps. The bottom part runs just fine.
Code: Select all
init -20 python:
# $ enemymove = renpy.random.randint(0,100)
"""Characters built specifically to fight battles in-game. . .
Args:
Actor(str):name of character
Active(bool):
Atk(int):
Def(int):
Mat(int):
Mdf(int):
HP(int):
MP(int):
SP(int):
magic_set(dict):
demon_set(dict):
personality(str):
"""
class Actor(object):
def __init__(self, actor="None", Active=True, Atk=0, Def=0, Mat=0, Mdf=0, HP=0, MP=0, SP=0, skill_set=[None], magic_set=[None], demon_set=[None], personality="None"):
self.actor = actor
self.active = active
self.Atk = Atk
self.Def = Def
self.Mat = Mat
self.Mdf = Mdf
self.HP = HP
self.MP = MP
self.SP = SP
self.skill_set = skill_set
self.magic_set = magic_set
self.demon_set = demon_set
self.personality = personality
self.status = [self.Atk, self.Def, self.Mat, self.Mdf, self.HP, self.MP, self.SP]
def skill_register(self, skill_name):
self.skill_set.append(skill_name)
def magic_register(self, magic_name):
self.magic_set.append(magic_name)
def demon_register(self, demon_name):
self.demon_set.append(demon_name)
def normalize_status(self):
print "Normalizing status. Please wait. . ."
for index, value in enumerate(self.status):
if value <= 0:
self.status[index] = 0
return self.status
class skill(object):
def __init__(self, name="None", Atk=0, Def=0):
self.name = name
self.Atk = Atk
self.Def = Def
class magic(object):
def __init__(self, name="None", Mat=0, Mdf=0, MP=0):
self.name = name
self.Mat = Mat
self.Mdf = Mdf
self.MP = MP
class demon(object):
def __init__(self, name="None", Atk=0, Def=0, Mat=0, Mdf=0, SP=0):
self.name = name
self.Atk = Atk
self.Def = Def
self.Mat = Mat
self.Mdf = Mdf
self.SP = SP
# if self.personality is "physical":
# if 0 <= enemymove <= 66:
# move == self.skill[attack]
# elif 67 <= enemymove <= 100:
# move == self.skill[guard]
# else:
# move == self.magic[Blank]
# if self.personality is "aggressive":
# if 0<= enemymove <= 50:
# move == self.skill[attack]
# elif 51 <= enemymove <= 85:
# move == renpy.random.choice((self.magic[Blank, Blank]))
# elif 86 <= enemymove <= 100:
# move == self.skill[guard]
# else:
# move == self.magic[Blank]
# if self.personality is "mystic":
# if 0 <= enemymove <= 33:
# move == self.skill[attack]
# elif 34 <= enemymove <= 70:
# move == renpy.random.choice((self.magic[Blank]))
# elif 71 <= enemymove <= 80:
# move == renpy.random.choice((self.demon[None]))
# elif 81 <= enemymove <= 100
# move == self.skill[guard]
# else:
# move == self.magic[Blank]
# if self.personality is "malicious":
# if 0 <= enemymove <= 25:
# move == self.skill[attack]
# elif 26 <= enemymove <= 60:
# move == renpy.random.choice((self.magic[Blank]))
# elif 61 <= enemymove <= 95:
# move == renpy.random.choice((self.demon[None]))
# elif 96 <= enemymove <= 100:
# move == self.skill[guard]
# else:
# move == self.magic[Blank]
# if self.personality is "empty-headed":
# if 0 <= enemymove <= 33:
# move == self.skill[attack]
# elif 34 <= enemymove <= 70:
# move == renpy.random.choice((self.magic[Blank, Blank, Blank, Blank]))
# elif 71 <= enemymove <= 80:
# move == renpy.random.choice((self.demon[None]))
# elif 81 <= enemymove <= 100
# move == self.skill[guard]
# else:
# move == self.magic[Blank]
# if self.personality is "defensive":
# if 0<= enemymove <= 25:
# move == self.skill[attack]
# elif 26 <= enemymove <= 50:
# move == renpy.random.choice((self.magic[Blank, Blank]))
# elif 51 <= enemymove <= 100:
# move == self.skill[guard]
# else:
# move == self.magic[Blank]
screen timer_test():
vbox:
textbutton "Yes." action Jump("yes")
textbutton "No." action Jump("no")
if easy:
timer 300.0 action Jump("too_slow")
elif medium:
timer 240.0 action Jump("too_slow")
elif hard:
timer 180.0 action Jump("too_slow")
elif extreme:
timer 120.0 action Jump("too_slow")
else:
timer 3.0 action Jump("too_slow")
"If hard work hasn't hurt anyone, then why is there worker's comp?"