Advertisement
NicK_PB

Qualidade de conexão v0.1

Apr 11th, 2017
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.77 KB | None | 0 0
  1. /*
  2.         Qualidade de conexão
  3.     www.brasilmegatrucker.com
  4.    
  5.     Script criado em 11/04/2017
  6. */
  7.  
  8. #include <a_samp>
  9. // KB -> MB -> GB
  10. #define KB  1024        // 2 ^ 10
  11. #define MB  1048576     // 2 ^ 20
  12. #define GB  1073741824  // 2 ^ 30
  13.  
  14. enum pe {
  15.     conPing[4],         // armazena 4 pings
  16.     conPingCount,
  17.     ///////////////
  18.     conTimeCheck,
  19.     conProgress
  20. };
  21. new pD[MAX_PLAYERS][pe];
  22.  
  23.  
  24. public OnFilterScriptInit()
  25. {
  26.     print("\n--------------------------------------");
  27.     print("Qualidade de conexão - V0.1");
  28.     print("Ultima atualização: 11/04/2017");
  29.     print("--------------------------------------\n");
  30.     return 1;
  31. }
  32.  
  33. public OnFilterScriptExit()
  34. {
  35.     return 1;
  36. }
  37.  
  38.  
  39. public OnPlayerConnect(playerid)
  40. {
  41.     return 1;
  42. }
  43.  
  44. public OnPlayerDisconnect(playerid, reason)
  45. {
  46.     pD[playerid][conProgress]=pD[playerid][conPingCount]=0;
  47.     for(new i; i < 4; i++) {
  48.         pD[playerid][conPing][i] = 0;
  49.     }
  50.     return 1;
  51. }
  52.  
  53.  
  54. public OnPlayerCommandText(playerid, cmdtext[])
  55. {
  56.     if (strcmp("/minhaconexao", cmdtext, true, 10) == 0)
  57.     {
  58.         if(pD[playerid][conProgress] != 0) return SendClientMessage(playerid, 0xFF0000FF, "Por favor aguarde, estamos obtendo informações sobre sua conexão.");
  59.         SendClientMessage(playerid, 0xFFFF00FF, "Estamos obtendo dados de sua conexão. Aguarde alguns segundos.");
  60.         pD[playerid][conTimeCheck] = SetTimerEx("ChecarConexao", 5000, true, "d", playerid);
  61.         pD[playerid][conProgress]++;
  62.         return 1;
  63.     }
  64.     return 0;
  65. }
  66.  
  67.  
  68. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  69. {
  70.     return 1;
  71. }
  72.  
  73. forward ChecarConexao(playerid);
  74. public ChecarConexao(playerid) {
  75.     if(pD[playerid][conProgress] == 0) return KillTimer(pD[playerid][conTimeCheck]);
  76.     if(pD[playerid][conPingCount] < 4) {
  77.         pD[playerid][conPing][pD[playerid][conPingCount]] = GetPlayerPing(playerid);
  78.         pD[playerid][conPingCount]++;
  79.         //printf("[%i] PING %i/%i", playerid, GetPlayerPing(playerid),pD[playerid][conPingCount]);
  80.     }
  81.  
  82.     if(pD[playerid][conPingCount] >= 4) {
  83.         static connstring[320], IP[16], PingMedio=0, Float:BytesEnviados, Float:BytesRecebidos, TempoConectado[3];
  84.         /////////////////////////////////////////////
  85.         GetPlayerIp(playerid, IP, 16);
  86.         TempoConectado[2] = NetStats_GetConnectedTime(playerid)/1000;
  87.         for(new i; i < 4; i++) {
  88.             PingMedio += pD[playerid][conPing][i];
  89.         }
  90.         // Bytes Enviados
  91.         if(NetStats_BytesSent(playerid) >= GB)
  92.             BytesEnviados = floatdiv(NetStats_BytesSent(playerid), GB);
  93.         else if(NetStats_BytesSent(playerid) >= MB)
  94.             BytesEnviados = floatdiv(NetStats_BytesSent(playerid), MB);
  95.         else if(NetStats_BytesSent(playerid) >= KB)
  96.             BytesEnviados = floatdiv(NetStats_BytesSent(playerid), KB);
  97.         else
  98.             BytesEnviados = float(NetStats_BytesSent(playerid));
  99.  
  100.         // Bytes Recebidos
  101.         if(NetStats_BytesReceived(playerid) >= GB)
  102.             BytesRecebidos = floatdiv(NetStats_BytesReceived(playerid), GB);
  103.         else if(NetStats_BytesReceived(playerid) >= MB)
  104.             BytesRecebidos = floatdiv(NetStats_BytesReceived(playerid), MB);
  105.         else if(NetStats_BytesReceived(playerid) >= KB)
  106.             BytesRecebidos = floatdiv(NetStats_BytesReceived(playerid), KB);
  107.         else
  108.             BytesRecebidos = float(NetStats_BytesReceived(playerid));
  109.  
  110.         // Tempo conectado
  111.         if(TempoConectado[2] >= 3600) {
  112.             TempoConectado[0] = (TempoConectado[2] / 3600);
  113.             TempoConectado[2] -= (TempoConectado[0] * 3600);
  114.         }
  115.         if(TempoConectado[2] >= 60) {
  116.             TempoConectado[1] = (TempoConectado[2] / 60);
  117.             TempoConectado[2] -= (TempoConectado[1] * 60);
  118.         }
  119.         ////////////////////////////////////////////////////////
  120.         format(connstring, sizeof(connstring), "Seu IP:\t%s\nTempo Conectado:\t%ih,%imin,%isec\nPing Atual:\t%ims\nPing Médio:\t%ims\nPing's Obtidos:\t%ims - %ims - %ims - %ims\nPacket Loss:\t%0.0f%%\n\nBytes enviados:\t%0.2f %s\nBytes recebidos:\t%0.2f %s\n",
  121.             IP, TempoConectado[0], TempoConectado[1], TempoConectado[2], GetPlayerPing(playerid), (PingMedio/4), pD[playerid][conPing][0], pD[playerid][conPing][1], pD[playerid][conPing][2], pD[playerid][conPing][3],NetStats_PacketLossPercent(playerid),
  122.             BytesEnviados,  (NetStats_BytesSent(playerid) >= GB ? ("GB") : (NetStats_BytesSent(playerid) >= MB ? ("MB") : (NetStats_BytesSent(playerid) >= KB ? ("KB") : ("Bytes")))),
  123.             BytesRecebidos, (NetStats_BytesReceived(playerid) >= GB ? ("GB") : (NetStats_BytesReceived(playerid) >= MB ? ("MB") : (NetStats_BytesReceived(playerid) >= KB ? ("KB") : ("Bytes")))));
  124.  
  125.         ShowPlayerDialog(playerid, 25000, DIALOG_STYLE_TABLIST, "{FFFF00}# {FFFFFF}Status de conexão", connstring, "Fechar", "");
  126.         SendClientMessage(playerid, 0xFFFF00FF, "Informando dados obtidos de sua conexão.");
  127.         // Zerando dados obtidos
  128.         pD[playerid][conProgress]=pD[playerid][conPingCount]=0;
  129.         for(new i; i < 4; i++) {
  130.             pD[playerid][conPing][i] = 0;
  131.         }
  132.     }
  133.     return 1;
  134. }
  135.  
  136. /*
  137.     Fim de script
  138. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement