При попытке сохраниться в любом из кастомных сценариев, игру выбивает со следующим трейсбеком:
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/scenario_unknown/testscene.rpy", line 8, in script
File "renpy/common/00gamemenu.rpy", line 105, in python
File "renpy/common/00gamemenu.rpy", line 145, in script
File "renpy/common/00gamemenu.rpy", line 145, in python
File "renpy/common/00action_file.rpy", line 241, in python
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "%GAMEDIR%\renpy\bootstrap.py", line 265, in bootstrap
renpy.main.main()
File "%GAMEDIR%\renpy\main.py", line 327, in main
run(restart)
File "%GAMEDIR%\renpy\main.py", line 78, in run
renpy.execution.run_context(True)
File "%GAMEDIR%\renpy\execution.py", line 509, in run_context
context.run()
File "%GAMEDIR%\renpy\execution.py", line 288, in run
node.execute()
File "%GAMEDIR%\renpy\ast.py", line 455, in execute
renpy.exports.say(who, what, interact=self.interact)
File "%GAMEDIR%\renpy\exports.py", line 803, in say
who(what, interact=interact)
File "%GAMEDIR%\renpy\character.py", line 807, in __call__
self.do_display(who, what, cb_args=self.cb_args, **display_args)
File "%GAMEDIR%\renpy\character.py", line 673, in do_display
**display_args)
File "%GAMEDIR%\renpy\character.py", line 476, in display_say
rv = renpy.ui.interact(mouse='say', type=type, roll_forward=roll_forward)
File "%GAMEDIR%\renpy\ui.py", line 237, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "%GAMEDIR%\renpy\display\core.py", line 1853, in interact
repeat, rv = self.interact_core(preloads=preloads, **kwargs)
File "%GAMEDIR%\renpy\display\core.py", line 2406, in interact_core
rv = root_widget.event(ev, x, y, 0)
File "%GAMEDIR%\renpy\display\layout.py", line 749, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "%GAMEDIR%\renpy\display\behavior.py", line 289, in event
rv = run(action)
File "%GAMEDIR%\renpy\display\behavior.py", line 211, in run
return var(*args, **kwargs)
File "renpy/common/00gamemenu.rpy", line 105, in _invoke_game_menu
renpy.call_in_new_context('_game_menu')
File "%GAMEDIR%\renpy\game.py", line 279, in call_in_new_context
return renpy.execution.run_context(False)
File "%GAMEDIR%\renpy\execution.py", line 509, in run_context
context.run()
File "%GAMEDIR%\renpy\execution.py", line 288, in run
node.execute()
File "%GAMEDIR%\renpy\ast.py", line 720, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "%GAMEDIR%\renpy\python.py", line 1304, in py_exec_bytecode
exec bytecode in globals, locals
File "renpy/common/00gamemenu.rpy", line 145, in <module>
$ ui.interact()
File "%GAMEDIR%\renpy\ui.py", line 237, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "%GAMEDIR%\renpy\display\core.py", line 1853, in interact
repeat, rv = self.interact_core(preloads=preloads, **kwargs)
File "%GAMEDIR%\renpy\display\core.py", line 2406, in interact_core
rv = root_widget.event(ev, x, y, 0)
File "%GAMEDIR%\renpy\display\layout.py", line 749, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "%GAMEDIR%\renpy\display\transition.py", line 45, in event
return self.new_widget.event(ev, x, y, st) # E1101
File "%GAMEDIR%\renpy\display\layout.py", line 749, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "%GAMEDIR%\renpy\display\layout.py", line 749, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "%GAMEDIR%\renpy\display\screen.py", line 319, in event
rv = self.child.event(ev, x, y, st)
File "%GAMEDIR%\renpy\display\layout.py", line 749, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "%GAMEDIR%\renpy\display\layout.py", line 175, in event
rv = d.event(ev, x - xo, y - yo, st)
File "%GAMEDIR%\renpy\display\layout.py", line 749, in event
rv = i.event(ev, x - xo, y - yo, cst)
File "%GAMEDIR%\renpy\display\behavior.py", line 625, in event
rv = run(self.clicked)
File "%GAMEDIR%\renpy\display\behavior.py", line 204, in run
new_rv = run(i, *args, **kwargs)
File "%GAMEDIR%\renpy\display\behavior.py", line 211, in run
return var(*args, **kwargs)
File "renpy/common/00action_file.rpy", line 241, in __call__
renpy.save(fn, extra_info=save_name)
File "%GAMEDIR%\renpy\loadsave.py", line 272, in save
dump((roots, renpy.game.log), logf)
File "%GAMEDIR%\renpy\loadsave.py", line 43, in dump
cPickle.dump(o, f, cPickle.HIGHEST_PROTOCOL)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
Windows-7-6.1.7601-SP1
Ren'Py 6.16.3.502
Everlasting Summer 1.0
Как это вылечить? Проблема всплыла в новом сборнике модов, в старом всё корректно сохранялось.