For those of you having "check point" problems when building or testing "very large or layered" levels,
this maybe a solution for you. I was having checkpoint problems when using them several layers high, or
when placed over another checkpoint ( like in a two-story building ) the player would pass through a "lower level"
checkpoint, but the one above it would also get triggered without the player ever passing the point
They are hard-coded markers so it's a little hard to trick them
I had seen something similar in the past and worked out a script to solve this problem.
Place this script (triggerzone) where the player would pass instead of a Checkpoint Marker, place a Dynamic Entity ( very simple "small" object, heck it can be invisible )
Name the entity same name as in script "plrmoveto=Name Of Entity 1 or 0" the "1" sets to keep players rotation/ a "0" resets player to zero degrees when (plrmoveto=abox 1 or plrmoveto=abox 0)
Just remember to give entity the same name as in script, any unique name will do.
;Artificial Intelligence Script
;Header
desc = plr move to
;Triggers
:state=0,plrwithinzone=1:state=1
:state=1,plrhealthless=1:etimerstart,state=2
:state=2,etimergreater=1500:plrmoveto=abox 1,state=3
:state=3:state=1
When the player dies now, if he has passed through this triggerzone, he will try to re-spawn at a normal "Checkpoint"
but the script will "force" the player to move to the Entity.
Note: play with the timer, I have noticed anything less than one second and it gets a little weird, the engine it seems need to
do a "normal" re-spawn and then the script kicks in and moves player. If more than two seconds one can clearly
see the jump/move....
@ seppgirty...this will help so you wont have to run up those five floors of stairs
Here is an updated script if you need to use additional "Check Points" after this, you can setup to have
this script destroy itself...or as in my case I'm using several of these " plrmoveto" scripts and each subsequent one
destroys the prior one. Just put the name of the prior triggerzone into the ifused field of the next one.
:state=0,plrwithinzone=1:activateifused=1,state=1
:state=1,activated=1:destroy
:state=1,plrhealthless=1:etimerstart,state=2
:state=2,etimergreater=1500:plrmoveto=Name Of Entity 1,state=3
:state=3:state=1
My games never have bugs. They just develop random features..
Lots and lots of random features...