Oh, I'm sorry. I forgot that "player.moveto" acts as a return and ends script execution for this frame. So actually the "setangle" calls never happened.
Hmm, let's see. This script is attached to an activator you have to click and runs from an OnActivate block, right? Then it of course won't run again after teleporting unless you trigger it again. This makes it necessary to let the reorientation of the player "after move" happen somewhere else. I'd add a GameMode block to the same script with a check for another short variable like:
Begin GameMode if doOnceAfterTeleport == 1 ; arrived at destination 1 player.setangle Z <-angle of pad 1-> set doOnceAfterTeleport to 0 ; so it wont happen again until called for again, GameMode blocks run again each frame so this has to be prevented elseif doOnceAfterTeleport == 2 ; arrived at destination 2 player.setangle Z <-angle of pad 2-> set doOnceAfterTeleport to 0 elseif... ... endifEnd
and in your OnActivate block where you move the player add a line "before" the MoveTo call setting this new variable accordingly "set doOnceAfterTeleport to <-number of pad to teleport to->". So after the move the GameMode block will take over and reorient the player accordingly.
At least that should do it. I haven't tested it myself, yet, but I'm quite positive... unless I'm missing something else really obvious here, just as last time.