|
|
- //
- // Admin player netstats display
- // Using NetStats_* functions.
- //
- // -Rcon login admin then:
- // /pnetstats2 (playerid)
- //
-
- #include <a_samp>
- #include "../include/gl_common.inc"
-
- #define ADMINFS_MESSAGE_COLOR 0xFF444499
- #define ADMIN_NETSTATS_DIALOGID 12899
-
- new gNetStatsPlayerId = INVALID_PLAYER_ID;
- new gNetStatsDisplayId = INVALID_PLAYER_ID;
-
- new gNetStatsTimerId = 0;
-
- forward NetStatsDisplay();
-
- //------------------------------------------------
-
- public OnFilterScriptInit()
- {
- print("\n--Admin Netstats FS loaded.\n");
- return 1;
- }
-
- //------------------------------------------------
-
- BuildPlayerNetstatString(playerid, ret_str[], ret_str_len)
- {
- new szPlayerIpPort[64+1];
- NetStats_GetIpPort(playerid, szPlayerIpPort, 64);
-
- format(ret_str, ret_str_len, "IP_Port: %s\nConnected Time (ms): %d\nConnection Status: %d\nPacket Loss: %.2f\nMessages Recv: %d\nMessages Sent: %d\nMessages/sec: %d",
- szPlayerIpPort,
- NetStats_GetConnectedTime(playerid),
- NetStats_ConnectionStatus(playerid),
- NetStats_PacketLossPercent(playerid),
- NetStats_MessagesReceived(playerid),
- NetStats_MessagesSent(playerid),
- NetStats_MessagesRecvPerSecond(playerid));
- }
-
- //------------------------------------------------
-
- public NetStatsDisplay()
- {
- new netstats_str[1024+1];
- BuildPlayerNetstatString(gNetStatsDisplayId, netstats_str, 1024);
- ShowPlayerDialog(gNetStatsPlayerId, ADMIN_NETSTATS_DIALOGID, DIALOG_STYLE_MSGBOX, "Player NetStats", netstats_str, "Ok", "");
- }
-
- //------------------------------------------------
-
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(!IsPlayerAdmin(playerid)) return 0; // this is an admin only script
-
- if(dialogid == ADMIN_NETSTATS_DIALOGID) {
- KillTimer(gNetStatsTimerId);
- gNetStatsPlayerId = INVALID_PLAYER_ID;
- return 1;
- }
-
- return 0;
- }
-
- //------------------------------------------------
-
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256+1];
- new idx;
-
- if(!IsPlayerAdmin(playerid)) return 0;
-
- cmd = strtok(cmdtext, idx);
-
- // netstats command
- if(strcmp("/pnetstats2", cmd, true) == 0)
- {
- new tmp[128];
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) { return 1; }
-
- gNetStatsPlayerId = playerid;
- gNetStatsDisplayId = strval(tmp);
-
- NetStatsDisplay();
- gNetStatsTimerId = SetTimer("NetStatsDisplay", 3000, true); // this will refresh the display every 3 seconds
- return 1;
- }
-
- return 0;
- }
- //------------------------------------------------
|