RuolinZheng08 / renpy-chess

A chess GUI built with Ren'Py, python-chess, and Stockfish. Version 2.0 of https://github.com/RuolinZheng08/renpy-chess-engine
https://r3dhummingbird.itch.io/renpy-chess-game
MIT License
74 stars 14 forks source link

Can't save/reload after integrating renpy-chess with renpy #22

Closed Scintsz closed 3 months ago

Scintsz commented 3 months ago

I got the following error when I trie to make a save or reload the project after the chess minigame already finished and the next label is loaded. The game continues to run normaly, but seem's to be unable to save and load. I'm using the current renpy version (8.2.3.24061702). This also happens in the demo.

I'm sorry, but an uncaught exception occurred.

While running game code: File "renpy/common/00keymap.rpy", line 487, in script python hide: File "renpy/common/00keymap.rpy", line 487, in python hide: File "renpy/common/00keymap.rpy", line 511, in _execute_python_hide renpy.save("_reload-1", "reload save game") TypeError: cannot pickle '_io.FileIO' object (perhaps renpy.game.log.log[107].stores['store']['STOCKFISH_ENGINE'].transport.getstate()[1]['_extra']['subprocess']._waitpid_lock = <unlocked _thread.lock object at 0x7c9125b6cf60>)

-- Full Traceback ------------------------------------------------------------

Full traceback: File "renpy/common/00keymap.rpy", line 487, in script python hide: File "/home/arch/RenPy/renpy-8.2.0-sdk/renpy/ast.py", line 823, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "/home/arch/RenPy/renpy-8.2.0-sdk/renpy/python.py", line 1178, in py_exec_bytecode exec(bytecode, globals, locals) File "renpy/common/00keymap.rpy", line 487, in python hide: File "renpy/common/00keymap.rpy", line 511, in _execute_python_hide renpy.save("reload-1", "reload save game") File "/home/arch/RenPy/renpy-8.2.0-sdk/renpy/loadsave.py", line 436, in save reraise(t, e, tb) File "lib/python3.9/future/utils/init.py", line 444, in raise File "/home/arch/RenPy/renpy-8.2.0-sdk/renpy/loadsave.py", line 417, in save dump((roots, renpy.game.log), logf) File "/home/arch/RenPy/renpy-8.2.0-sdk/renpy/compat/pickle.py", line 103, in dump pickle.dump(o, f, pickle.HIGHEST_PROTOCOL if highest else PROTOCOL) TypeError: cannot pickle '_io.FileIO' object (perhaps renpy.game.log.log[107].stores['store']['STOCKFISH_ENGINE'].transport.getstate()[1]['_extra']['subprocess']._waitpid_lock = <unlocked _thread.lock object at 0x7c9125b6cf60>)

Linux-6.10.3-zen1-2-zen-x86_64-with-glibc2.40 x86_64 Ren'Py 8.2.3.24061702 Adventures 0.8 Sun Aug 11 17:54:59 2024

Scintsz commented 3 months ago

Thank you! I followed your fix and updated my project and everything is working well.