diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-11 21:19:52 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-11 21:19:52 +0000 |
| commit | 094a019149269e2c6efcc729a5c24ca728a07c98 (patch) | |
| tree | e62ec744e65336fc83f41a5273a0bf4f6f57abe2 | |
| parent | a4a0eb3a5a94cafae8876c6710236d4559bdfb47 (diff) | |
| download | zcatch-094a019149269e2c6efcc729a5c24ca728a07c98.tar.gz zcatch-094a019149269e2c6efcc729a5c24ca728a07c98.zip | |
fixed player scoring in CTF
| -rw-r--r-- | src/game/server/srv_common.cpp | 9 | ||||
| -rw-r--r-- | src/game/server/srv_ctf.cpp | 7 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/game/server/srv_common.cpp b/src/game/server/srv_common.cpp index d3d9855c..14cabaf3 100644 --- a/src/game/server/srv_common.cpp +++ b/src/game/server/srv_common.cpp @@ -134,9 +134,14 @@ int gameobject::on_player_death(class player *victim, class player *killer, int if(!killer) return 0; if(killer == victim) - victim->score--; // klant arschel + victim->score--; // suicide else - killer->score++; // good shit + { + if(is_teamplay && victim->team == killer->team) + killer->score--; // teamkill + else + killer->score++; // normal kill + } return 0; } diff --git a/src/game/server/srv_ctf.cpp b/src/game/server/srv_ctf.cpp index b67e5f8c..05f0f96f 100644 --- a/src/game/server/srv_ctf.cpp +++ b/src/game/server/srv_ctf.cpp @@ -47,6 +47,10 @@ int gameobject_ctf::on_player_death(class player *victim, class player *killer, create_sound_global(SOUND_CTF_DROP); f->drop_tick = server_tick(); f->carrying_player = 0; + + if(killer->team != victim->team) + killer->score++; + had_flag |= 1; } } @@ -80,6 +84,7 @@ void gameobject_ctf::tick() { // CAPTURE! \o/ teamscore[fi^1] += 100; + f->carrying_player->score += 5; for(int i = 0; i < 2; i++) flags[i]->reset(); @@ -100,6 +105,7 @@ void gameobject_ctf::tick() // return the flag if(!f->at_stand) { + players[i]->score += 1; create_sound_global(SOUND_CTF_RETURN); f->reset(); } @@ -111,6 +117,7 @@ void gameobject_ctf::tick() teamscore[fi^1]++; f->at_stand = 0; f->carrying_player = players[i]; + f->carrying_player->score += 1; create_sound_global(SOUND_CTF_GRAB); break; } |