So far it's working swell, but I hit the following bump I can't get my head around:
One challenge involves writing a simple function using def, called alter_signal:
Code: Select all
def alter_signal(sig):
return sig*7/5
...after passing this challenge, if saving, the game won't load!
Code: Select all
I'm sorry, but an uncaught exception occurred.
While running game code:
File "renpy/common/00action_file.rpy", line 452, in __call__
renpy.load(fn)
AttributeError: 'StoreModule' object has no attribute 'alter_signal'
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "renpy/common/_layout/screen_main_menu.rpym", line 28, in script
python hide:
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\ast.py", line 914, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\python.py", line 2028, in py_exec_bytecode
exec bytecode in globals, locals
File "renpy/common/_layout/screen_main_menu.rpym", line 28, in <module>
python hide:
File "renpy/common/_layout/screen_main_menu.rpym", line 35, in _execute_python_hide
ui.interact()
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\ui.py", line 297, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\core.py", line 2702, in interact
repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\core.py", line 3518, in interact_core
rv = root_widget.event(ev, x, y, 0)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\transition.py", line 47, in event
return self.new_widget.event(ev, x, y, st) # E1101
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\screen.py", line 714, in event
rv = self.child.event(ev, x, y, st)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 244, in event
rv = d.event(ev, x - xo, y - yo, st)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 244, in event
rv = d.event(ev, x - xo, y - yo, st)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 244, in event
rv = d.event(ev, x - xo, y - yo, st)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\behavior.py", line 962, in event
return handle_click(self.clicked)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\behavior.py", line 897, in handle_click
rv = run(action)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\behavior.py", line 320, in run
return action(*args, **kwargs)
File "renpy/common/00action_file.rpy", line 452, in __call__
renpy.load(fn)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\loadsave.py", line 769, in load
roots, log = loads(location.load(filename))
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\loadsave.py", line 63, in loads
return cPickle.loads(s)
AttributeError: 'StoreModule' object has no attribute 'alter_signal'
Windows-8-6.2.9200
Ren'Py 7.3.5.606
DigiWorld 1.0
Tue May 11 21:48:11 2021
Code: Select all
I'm sorry, but an uncaught exception occurred.
While running game code:
File "renpy/common/00action_file.rpy", line 372, in __call__
renpy.save(fn, extra_info=save_name)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "renpy/common/_layout/screen_load_save.rpym", line 35, in script
$ ui.interact()
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\ast.py", line 914, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\python.py", line 2028, in py_exec_bytecode
exec bytecode in globals, locals
File "renpy/common/_layout/screen_load_save.rpym", line 35, in <module>
$ ui.interact()
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\ui.py", line 297, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\core.py", line 2702, in interact
repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\core.py", line 3518, in interact_core
rv = root_widget.event(ev, x, y, 0)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\transition.py", line 47, in event
return self.new_widget.event(ev, x, y, st) # E1101
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\screen.py", line 714, in event
rv = self.child.event(ev, x, y, st)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 244, in event
rv = d.event(ev, x - xo, y - yo, st)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\layout.py", line 998, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\behavior.py", line 962, in event
return handle_click(self.clicked)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\behavior.py", line 897, in handle_click
rv = run(action)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\behavior.py", line 313, in run
new_rv = run(i, *args, **kwargs)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\display\behavior.py", line 320, in run
return action(*args, **kwargs)
File "renpy/common/00action_file.rpy", line 372, in __call__
renpy.save(fn, extra_info=save_name)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\loadsave.py", line 419, in save
six.reraise(t, e, tb)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\loadsave.py", line 405, in save
dump((roots, renpy.game.log), logf)
File "C:\Users\Odysseas\Documents\renpy-7.3.5-sdk.7z\renpy-7.3.5-sdk\renpy\loadsave.py", line 49, in dump
cPickle.dump(o, f, cPickle.HIGHEST_PROTOCOL)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
Windows-8-6.2.9200
Ren'Py 7.3.5.606
DigiWorld 1.0
Tue May 11 21:54:01 2021
Please, it's really important to keep the challenge as-is (the player defining the alter_signal function), it's part of the gameplay and a requirement for my thesis (the game is part of my thesis).
Thank you!