Code: Select all
label start:
$ iExist = True
"Take a look at the console, you'll see that 'iExist' is unknew."
"Take another look, and now 'iExist' is created."
return
Code: Select all
init python:
myVar = 0
label start:
$ myVar += 1
"Take a look at the console, you'll see that 'myVar' is at 0."
"Take another look, and now 'myVar' is at 1."
return
Code: Select all
init python:
myVar = 0
def myFnct():
store.myVar += 1
label start:
$ myFnct()
"Take a look at what 'myVar' looks like in the console. It's 0."
"And now its value is 1."
return
Code: Select all
init python:
myList = []
label start:
$ myList.append( "abc" )
"Take a look at what 'myList' looks like in the console. Do it again, and again..."
"And now it will stop growing."
return
All these code works as expected with the version 6.99.13, included, and above, and are broke with all versions since the 6.99.14.
Making it happen with the console was the simplest way to demonstrate the bug, but it don't just happen in this case. I found it when I tried to run some old piece of code in the latest version, and Ren'py simply crashed saying that an attribute wasn't existing. It would be too long to demonstrate it since it imply a whole game's core, and I'll not start to isolate the part which don't like the new, and strange, way Ren'py deal with Python code statement.
Anyway, it shouldn't happen at all. The change must be already effective when the say statement is executed, not after it is passed. Like it shouldn't be done more than once, as in the list example.