If you look at the way the teleport state works, you will see that it detects the players proximity (PLRDISTWITHIN) and if the player is within the required distance, he is moved to the other (IFUSED) teleport. Then the script resets (STATE = 0) and waits for the player to do it again.
Instead of resetting the script, we allow it to progress by changing that last STATE = 0 to STATE = 10.
Now we can continue to send the player to another, or the next, location using the command PLRMOVETO.
Place any dynamic object (a tire, pallet, blood splat, etc) where you want the player to be transported to. Name it accordingly... location_2, location_3, etc.
Then continue to code your script beginning at the line:
:state=10,plrdistwithin=40:plrmoveto=location_2,state=20
:state=20,plrdistwithin=40:plrmoveto=location_3,state=30
etc, etc, etc....
Best.
I'm sorry, my answers are limited. You must ask the right question.