Hmm. I'll need to look at that thread and get back to you on that one.
As for the starter event. I don't know how you'd go about making an event that works /exactly/ like that in that it would affect the pokemon of your rival later in the game, and I don't know exactly how the script there works. It would be possible, though, to make a script a lot like that, I think.
- For the stopping you and moving you to the lab part: just place a couple script tiles or a level script or something. Then use some movement commands to move the player and the other person/people to the location you want to move them to.
- For the starter selection: it'd probably need to be a level script, or it'd have to check if the event was done before by using the "checkflag" command, and if the flag is not set execute the event and set the flag(s) when its finished. But for the event itself. Set some sprites(like of pokeballs), one for each starter. Set a script for each one or one script that checks to see which one you're interacting with. Then bring up a textbox or two to say something about the starter or whatever. Give an option of yes/no for if the player wants that starter. After that, pop up an option if the player wants to nickname the pokemon and if yes, bring up the nickname screen by using a certain command(forget what it was). Have the sprite of that pokeball/pokemon(or whatever you used) hidden using 'hidesprite', and if necessary do that to the starter your rival chose too. You might need to put a value in a variable using 'setvar' after this so the game will remember which starter you chose later on, in case you want it to determine something. Next, set the flag that allows the player to see their pokemon and--if you want/need to--set the pokedex flag and/or nationaldex too.
- Add in some dialogue, some music, and other fancy stuff here and there, and you've got yourself a starter script.
(You might want to ask somebody else about this too though, since like I said, I'm no expert. lol)