diff options
| author | Alfred Eriksson <somerunce@gmail.com> | 2008-11-16 14:28:44 +0000 |
|---|---|---|
| committer | Alfred Eriksson <somerunce@gmail.com> | 2008-11-16 14:28:44 +0000 |
| commit | cd8c23ef1b733fb4088571a8bf7cd0d60c41a4ae (patch) | |
| tree | 759f60cb88551a358553317e17541eed7e09cf30 | |
| parent | 42553448f7fb8d3d9aaa615facaf872b5d54e229 (diff) | |
| download | zcatch-cd8c23ef1b733fb4088571a8bf7cd0d60c41a4ae.tar.gz zcatch-cd8c23ef1b733fb4088571a8bf7cd0d60c41a4ae.zip | |
fixed respawn times
| -rw-r--r-- | src/game/server/entities/character.cpp | 8 | ||||
| -rw-r--r-- | src/game/server/player.cpp | 3 | ||||
| -rw-r--r-- | src/game/server/player.hpp | 1 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index 3aeabd2d..c0bc3346 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -737,12 +737,18 @@ void CHARACTER::die(int killer, int weapon) /* die_pos = pos; dead = true; - die_tick = server_tick(); */ + + // this is for auto respawn after 3 secs + player->die_tick = server_tick(); + alive = false; game.world.remove_entity(this); game.world.core.characters[player->client_id] = 0; game.create_death(pos, player->client_id); + + // we got to wait 0.5 secs before respawning + player->respawn_tick = server_tick()+server_tickspeed()/2; } bool CHARACTER::take_damage(vec2 force, int dmg, int from, int weapon) diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp index 322998a9..cf36823f 100644 --- a/src/game/server/player.cpp +++ b/src/game/server/player.cpp @@ -44,6 +44,9 @@ void PLAYER::tick() latency.accum_max = 0; } } + + if(!character && die_tick+server_tickspeed()*3 <= server_tick()) + spawning = true; if(character) { diff --git a/src/game/server/player.hpp b/src/game/server/player.hpp index a1aed594..f711317a 100644 --- a/src/game/server/player.hpp +++ b/src/game/server/player.hpp @@ -21,6 +21,7 @@ public: int color_feet; int respawn_tick; + int die_tick; // bool spawning; int client_id; |