OneManVN
The exact same variable is used to store the character object, and the name of the character:
Python:
define o = Character("[o]", color="590059")
Followed by:
Python:
label scene4:
[...]
$ o = renpy.input("(Default is Oriana)")
$ o = o.strip()
if o == "":
$ o ="Oriana"
Same for Lilith and Alistar.
So far it works because the object handling the dialogs are built before the value is redefined. But at some point it will comeback to you and break the game.
It's fixable to a small price (o, l and a will now be saved, what isn't an effective problem):
In definitions.rpy:
Python:
define oname = "Oriana"
define lname = "Lilith"
define aname = "Alistar"
define a = Character("[aname]", color="ffd792")
# ath will automatically adapt.
[...]
define l = Character("[lname]")
[...]
define o = Character("[oname]", color="590059")
Then anywhere on the script:
Python:
label after_load:
if not isinstance( o, renpy.character.ADVCharacter ):
$ oname = o
$ o = Character("[oname]", color="590059")
if not isinstance( l, renpy.character.ADVCharacter ):
$ lname = l
$ l = Character("[lname]")
if not isinstance( a, renpy.character.ADVCharacter ):
$ aname = a
$ a = Character("[aname]", color="ffd792")
# ath will automatically adapt.
And of course a change in script.rpy (line 647+, 881+ and 5313+) to now use the "oname", "lname" and "aname" variable when the player is asked to choose a name.