diff options
| -rw-r--r-- | src/game/server/entities/character.cpp | 4 | ||||
| -rw-r--r-- | src/game/server/player.cpp | 30 |
2 files changed, 16 insertions, 18 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index e79962c2..c04be833 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -801,7 +801,7 @@ bool CHARACTER::take_damage(vec2 force, int dmg, int from, int weapon) if(health <= 0) { die(from, weapon); - + // set attacker's face to happy (taunt!) if (from >= 0 && from != player->client_id) { @@ -809,7 +809,7 @@ bool CHARACTER::take_damage(vec2 force, int dmg, int from, int weapon) chr->emote_type = EMOTE_HAPPY; chr->emote_stop = server_tick() + server_tickspeed(); } - + return false; } diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp index 252e23e3..45d56388 100644 --- a/src/game/server/player.cpp +++ b/src/game/server/player.cpp @@ -19,17 +19,6 @@ PLAYER::~PLAYER() character = 0; } -/* -void PLAYER::init(int client_id) -{ - // clear everything - ~PLAYER(); - mem_zero(this, sizeof(*this)); - new(this) PLAYER(); - - this->client_id = client_id; -}*/ - void PLAYER::tick() { server_setclientscore(client_id, score); @@ -54,12 +43,21 @@ void PLAYER::tick() latency.accum_max = 0; } } - - if(spawning && !get_character()) + + if(character) + { + if(character->alive) + { + view_pos = character->pos; + } + else + { + delete character; + character = 0; + } + } + else if(spawning) try_respawn(); - - if(get_character()) - view_pos = get_character()->pos; } void PLAYER::snap(int snaping_client) |