about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-09 15:46:44 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-09 15:46:44 +0000
commitfd1435a10da6f65463affaf61d6f687f65a07e5b (patch)
tree2e8a412103344e9b7bfb0d1cd1e8b15b228fd769 /src
parentd029e67223a1a4afa74375e81c82f1f5266bcff0 (diff)
downloadzcatch-fd1435a10da6f65463affaf61d6f687f65a07e5b.tar.gz
zcatch-fd1435a10da6f65463affaf61d6f687f65a07e5b.zip
fixed has left messages when connecting with wrong password. fixed correct name when leaving the server. removed the physics when a client disconnects
Diffstat (limited to 'src')
-rw-r--r--src/engine/server/server.c8
-rw-r--r--src/game/server/game_server.cpp1
2 files changed, 8 insertions, 1 deletions
diff --git a/src/engine/server/server.c b/src/engine/server/server.c
index ef4c9b04..319ac363 100644
--- a/src/engine/server/server.c
+++ b/src/engine/server/server.c
@@ -388,7 +388,13 @@ static int new_client_callback(int cid, void *user)
 
 static int del_client_callback(int cid, void *user)
 {
-	mods_client_drop(cid);
+	/* notify the mod about the drop */
+	if(clients[cid].state == SRVCLIENT_STATE_READY ||
+		clients[cid].state == SRVCLIENT_STATE_INGAME)
+	{
+		mods_client_drop(cid);
+	}
+
 	clients[cid].state = SRVCLIENT_STATE_EMPTY;
 	clients[cid].name[0] = 0;
 	clients[cid].clan[0] = 0;
diff --git a/src/game/server/game_server.cpp b/src/game/server/game_server.cpp
index aaabdbc3..2d3d02b0 100644
--- a/src/game/server/game_server.cpp
+++ b/src/game/server/game_server.cpp
@@ -1601,6 +1601,7 @@ void mods_client_drop(int client_id)
 
 	gameobj->on_player_death(&players[client_id], 0, -1);
 	world->remove_entity(&players[client_id]);
+	world->core.players[client_id] = 0x0;
 	players[client_id].client_id = -1;
 }