From d685d42af30f01b92aa6fa174da4b7fc537a4a30 Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Tue, 9 Dec 2008 23:57:01 +0000 Subject: [PATCH] extinfo protocol 104 git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@3964 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/protocol.h | 2 +- source/src/server.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/source/src/protocol.h b/source/src/protocol.h index 68ad7238..afabeceb 100644 --- a/source/src/protocol.h +++ b/source/src/protocol.h @@ -83,7 +83,7 @@ enum { FM_PICKUP = 0, FM_DROP, FM_LOST, FM_RETURN, FM_SCORE, FM_KTFSCORE, FM_SCO enum { DISC_NONE = 0, DISC_EOP, DISC_CN, DISC_MKICK, DISC_MBAN, DISC_TAGT, DISC_BANREFUSE, DISC_WRONGPW, DISC_SOPLOGINFAIL, DISC_MAXCLIENTS, DISC_MASTERMODE, DISC_AUTOKICK, DISC_AUTOBAN, DISC_DUP, DISC_NUM }; #define EXT_ACK -1 -#define EXT_VERSION 103 +#define EXT_VERSION 104 #define EXT_ERROR_NONE 0 #define EXT_ERROR 1 #define EXT_PLAYERSTATS_RESP_IDS -10 diff --git a/source/src/server.cpp b/source/src/server.cpp index fe7dcd26..52050fd7 100644 --- a/source/src/server.cpp +++ b/source/src/server.cpp @@ -213,6 +213,7 @@ struct client // server side version of "dynent" type ENetPeer *peer; string hostname; string name, team; + int ping; int skin; int vote; int role; @@ -251,6 +252,7 @@ struct client // server side version of "dynent" type void reset() { name[0] = team[0] = demoflags = 0; + ping = 9999; skin = 0; position.setsizenodelete(0); messages.setsizenodelete(0); @@ -2843,6 +2845,13 @@ void process(ENetPacket *packet, int sender, int chan) // sender may be -1 sendf(sender, 1, "ii", SV_PONG, getint(p)); break; + case SV_CLIENTPING: + { + int ping = getint(p); + if(cl) cl->ping = ping; + break; + } + case SV_POS: { int cn = getint(p); @@ -3344,9 +3353,11 @@ void extinfo_statsbuf(ucharbuf &p, int pid, int bpos, ENetSocket &pongsock, ENet putint(p,EXT_PLAYERSTATS_RESP_STATS); // send player stats following putint(p,clients[i]->clientnum); //add player id + putint(p,clients[i]->ping); //Ping sendstring(clients[i]->name,p); //Name sendstring(clients[i]->team,p); //Team putint(p,clients[i]->state.frags); //Frags + putint(p,clients[i]->state.flagscore); //Flagscore putint(p,clients[i]->state.deaths); //Death putint(p,clients[i]->state.teamkills); //Teamkills putint(p,clients[i]->state.damage*100/max(clients[i]->state.shotdamage,1)); //Accuracy