Page 1 of 1

Random Spawn point

Posted: Tue Feb 08, 2005 8:53 am
by r00k
entity () SelectSpawnPoint

Ok this routine is old as dirt, but even through its many versions
i still find players respawning at the location where they DIED!
Are they respawning too fast? or is the random-ness fubarded.
I thought it was because all the spawnlocations were occupied or in range of nearby players thus forcing a skip in the itteration....
but it happens during 1 on 1 games! :< Any one really know why this happens? That is, the fact that you, periodically respawn where u died?

Posted: Tue Feb 08, 2005 10:55 am
by Urre
What engine(s) were used? The reason that would happen is if the new location is blocked... DP reportedly does this even if the location isn't blocked sometimes...

Posted: Tue Feb 08, 2005 4:43 pm
by Wazat
Yes, I've had a nasty problem with it. The fix appears to be to set self.oldorigin to self.origin so the engine won't panic and reset to where they were before. In fact you can do this:

Code: Select all

void(entity e, vector org) setorigin =
{
    real_setorigin(e, org);
    if(e.movetype == MOVETYPE_WALK)
         e.oldorigin = e.origin;
};
and rename setorigin in defs.qc to real_setorigin.


I once tried to do the random spawn points thing a long time ago but gave up very angrily because of this problem. If only I'd known... :?

Posted: Sat Feb 12, 2005 6:31 am
by r00k
Excellent! Works like a champ thanks!

Posted: Sun Jun 12, 2005 2:41 am
by r00k
ok just a follow up on this for completeness.
The occurance of respawning at death spot is reduced if you set self.movetype = MOVETYPE_WALK in PutClientInServer --
AFTER you set the player's origin. The player becomes MOVETYPE_TOSS when s/he dies (thru playerdie in player.qc)
Waz~ suggests 0.05 seconds later, but at the bottom of the routine works for me (so far..)


______________________________________________
Someday, we will all just get together, drink some beer and
make the best damn quake mod we can! (drunk)

Posted: Sun Jun 12, 2005 6:08 am
by Wazat
Hmmm.. That's interesting. I'll try that, thanks!