public static void qrTeamKeyCallback(int keyId, int index, ref gamespyQueryReport.qr2Buffer /*qr2_buffer_t*/ outBuf, IntPtr userData) { Console.WriteLine("\nIn {0} : Reporting team keys", System.Reflection.MethodBase.GetCurrentMethod().Name); //check for valid index if (index >= myGame.numTeams) { gamespyQueryReport.qr2_buffer_addW(ref outBuf, ""); return; } switch ((qr2DefaultKeys)keyId) { case qr2DefaultKeys.TEAM_T_KEY: gamespyQueryReport.qr2_buffer_addW(ref outBuf, myGame.teams[index].name); Console.WriteLine("Reporting team[{0}] key {1} = {2}", index, (qr2DefaultKeys)keyId, myGame.teams[index].name); break; case qr2DefaultKeys.SCORE_T_KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.teams[index].score); Console.WriteLine("Reporting team[{0}] key {1} = {2}", index, (qr2DefaultKeys)keyId, myGame.teams[index].score); break; default: gamespyQueryReport.qr2_buffer_addW(ref outBuf, ""); break; } }
public static void qrPlayerKeyCallback(int keyId, int index, ref gamespyQueryReport.qr2Buffer /*qr2_buffer_t*/ outBuf, IntPtr userData) { //check for valid index if (index >= myGame.numPlayers) { gamespyQueryReport.qr2_buffer_addW(ref outBuf, ""); return; } Console.Write("\nIn {0} : ", System.Reflection.MethodBase.GetCurrentMethod().Name); switch ((qr2DefaultKeys)keyId) { case qr2DefaultKeys.PLAYER__KEY: gamespyQueryReport.qr2_buffer_addW(ref outBuf, myGame.players[index].name); Console.WriteLine(" Reporting player[{0}] key {1} = {2}", index, (qr2DefaultKeys)keyId, myGame.players[index].name); break; case qr2DefaultKeys.SCORE__KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.players[index].frags); Console.WriteLine(" Reporting player[{0}] key {1} = {2}", index, (qr2DefaultKeys)keyId, myGame.players[index].frags); break; case qr2DefaultKeys.DEATHS__KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.players[index].deaths); Console.WriteLine(" Reporting player[{0}] key {1} = {2}", index, (qr2DefaultKeys)keyId, myGame.players[index].deaths); break; case qr2DefaultKeys.TEAM__KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.players[index].team); Console.WriteLine(" Reporting player[{0}] key {1} = {2}", index, (qr2DefaultKeys)keyId, myGame.players[index].team); break; default: gamespyQueryReport.qr2_buffer_addW(ref outBuf, ""); break; } }
private const int GRAVITY_KEY = (int)qr2DefaultKeys.NUM_RESERVED_KEYS + 1; // a sample custom key public static void qrServerKeyCallback(int keyId, ref gamespyQueryReport.qr2Buffer /*qr2_buffer_t*/ outBuf, IntPtr userData) { Console.Write("\nIn {0} : ", System.Reflection.MethodBase.GetCurrentMethod().Name); Console.Write("Adding server key {0}", (qr2DefaultKeys)keyId); switch ((qr2DefaultKeys)keyId) { case qr2DefaultKeys.HOSTNAME_KEY: gamespyQueryReport.qr2_buffer_addW(ref outBuf, myGame.hostName); break; case qr2DefaultKeys.HOSTPORT_KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.hostPort); break; case qr2DefaultKeys.MAPNAME_KEY: gamespyQueryReport.qr2_buffer_addW(ref outBuf, myGame.mapName); break; case qr2DefaultKeys.GAMETYPE_KEY: gamespyQueryReport.qr2_buffer_addW(ref outBuf, myGame.gameType); break; case qr2DefaultKeys.NUMPLAYERS_KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.numPlayers); break; case qr2DefaultKeys.NUMTEAMS_KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.numTeams); break; case qr2DefaultKeys.MAXPLAYERS_KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.maxPlayers); break; case qr2DefaultKeys.TEAMPLAY_KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.teamPlay); break; case qr2DefaultKeys.FRAGLIMIT_KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.fragLimit); break; case qr2DefaultKeys.TIMELIMIT_KEY: gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.timeLimit); break; default: { if (keyId == GRAVITY_KEY) { Console.Write(" = custom Key [GRAVITY_KEY]"); gamespyQueryReport.qr2_buffer_add_int(ref outBuf, myGame.gravity); } else { gamespyQueryReport.qr2_buffer_addW(ref outBuf, ""); } break; } } Console.WriteLine(); }