errr.... there is an action part which switches to scene of specified character including current character.scene > change to scene of a character: current character
The lua version for an interface with a button for each character would be something along the lines of...
if getObject("Characters[" .. c .. "].CharacterConditions[activated]"):getBool(VConditionValue) and game:getLink(VGameCurrentCharacter):getName() ~= c then
game:setValue(VGameCurrentCharacter, getObject("Characters[" .. c .. "]"))
-- + --
if game:getLink(VGameCurrentScene):getName() ~= getObject("Game.GameCurrentCharacter.CharacterScene"):getName() then game:setValue(VGameCurrentScene, getObject("Game.GameCurrentCharacter.CharacterScene")) end
...above would be a definition script.
to use you would need to add a condition to each playable character called "activated" which should be set to true if character is available to play with. then to swap to specific character & scene you would create an execute a script action in the interface button containing something along the lines of this...
changeChar("tom") -- name is case sensitive
...I can't tell you whether this would work or not as I've not tested the code. It is written off the top of my head. The only thing I can tell you is that if you were to use a single button for toggling between characters, then the code would become a lot more complicated because you would need to be checking against currently active character index & whether the next character index if playable or not etc.
I recommend just creating the conditions above like I mentioned & querying them in each button & also in the on mouse over actions for each button, that way you will only trigger active image/opacity changes if condition is true & actions listed inside of the buttons will only work on left click if true. See screenshots below...
(right click view image for full size)