join and quit messages

This commit is contained in:
Jakob Fries 2007-07-29 22:56:25 +00:00
parent 3cbaf193c7
commit 8bfaea274e
3 changed files with 40 additions and 0 deletions

View file

@ -411,6 +411,13 @@ void chat_add_line(int client_id, const char *line)
sprintf(chat_lines[chat_current_line].text, "%s: %s", client_datas[client_id].name, line); // TODO: abit nasty
}
void status_add_line(const char *line)
{
chat_current_line = (chat_current_line+1)%chat_max_lines;
chat_lines[chat_current_line].tick = client_tick();
strcpy(chat_lines[chat_current_line].text, line);
}
struct killmsg
{
int weapon;
@ -1808,4 +1815,18 @@ void modc_message(int msg)
killmsgs[killmsg_current].weapon = msg_unpack_int();
killmsgs[killmsg_current].tick = client_tick();
}
else if(msg == MSG_JOIN)
{
int cid = msg_unpack_int();
char message[256];
sprintf(message, "%s joined the game", client_datas[cid].name);
status_add_line(message);
}
else if(msg == MSG_QUIT)
{
int cid = msg_unpack_int();
char message[256];
sprintf(message, "%s quit the game", client_datas[cid].name);
status_add_line(message);
}
}

View file

@ -51,6 +51,8 @@ enum
MSG_SETNAME,
MSG_KILLMSG,
MSG_SWITCHTEAM,
MSG_JOIN,
MSG_QUIT,
};
enum

View file

@ -1753,10 +1753,13 @@ void mods_client_enter(int client_id)
server_send_msg(client_id);
}
}
mods_message(MSG_JOIN, client_id);
}
void mods_client_drop(int client_id)
{
mods_message(MSG_QUIT, client_id);
dbg_msg("mods", "client drop %d", client_id);
world.remove_entity(&players[client_id]);
players[client_id].client_id = -1;
@ -1779,6 +1782,20 @@ void mods_message(int msg, int client_id)
players[client_id].die(client_id, -1);
players[client_id].score--;
}
else if (msg == MSG_JOIN)
{
msg_pack_start(MSG_JOIN, MSGFLAG_VITAL);
msg_pack_int(client_id);
msg_pack_end();
server_send_msg(-1);
}
else if (msg == MSG_QUIT)
{
msg_pack_start(MSG_QUIT, MSGFLAG_VITAL);
msg_pack_int(client_id);
msg_pack_end();
server_send_msg(-1);
}
}
extern unsigned char internal_data[];