HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* CFG TOP15 by LUMOSFTW
  2. * -= CVARS =-
  3. * ----------------------------------------
  4. * cfg_top10_sound 1/0 - Sound ON/OFF
  5. * cfg_top10_msg MSG - Irj egy üzenetet a top15 végére
  6. * ----------------------------------------
  7. *
  8. */
  9.  
  10. #include <amxmodx>
  11. #include <csx>
  12. #include <nvault>
  13.  
  14. new g_NvID, g_sBuffer[2048], toggle_sound;
  15. static const CONTACT[] = ""
  16.  
  17. public plugin_init()
  18. {
  19. register_plugin("CFG Top10+", "1.4", "LUMODFTW");
  20. register_cvar("CFG Top10+", "", FCVAR_SERVER);
  21.  
  22. register_clcmd("say /top15", "cmdTop15", 0);
  23. register_clcmd("say_team /top15", "cmdTop15", 0);
  24.  
  25. toggle_sound = register_cvar("cfg_top10_sound", "1")
  26. register_cvar("cfg_top10_msg", CONTACT, FCVAR_SERVER)
  27.  
  28. g_NvID = nvault_open("playtimevault");
  29. }
  30.  
  31. public client_disconnect(id)
  32. {
  33. new szPlayTime[8], szAuthID[35], iPlayTime,ts;
  34. get_user_name(id, szAuthID, 34);
  35.  
  36. if( !nvault_lookup( g_NvID, szAuthID , szPlayTime , 7 , ts ) )
  37. {
  38. format(szPlayTime, 7, "%d" , get_user_time(id, 1) );
  39. nvault_set( g_NvID , szAuthID , szPlayTime);
  40. }
  41. else
  42. {
  43. iPlayTime = str_to_num(szPlayTime) + get_user_time(id, 1);
  44. format(szPlayTime, 7, "%d" , iPlayTime );
  45. nvault_set( g_NvID , szAuthID , szPlayTime);
  46. }
  47. }
  48.  
  49. Float:accuracy(izStats[8])
  50. {
  51. if (!izStats[4])
  52. {
  53. return (0.0);
  54. }
  55.  
  56. return (100.0 * float(izStats[5]) / float(izStats[4]));
  57. }
  58.  
  59. Float:effec(izStats[8])
  60. {
  61. if (!izStats[0])
  62. {
  63. return (0.0);
  64. }
  65.  
  66. return (100.0 * float(izStats[0]) / float(izStats[0] + izStats[1]));
  67. }
  68.  
  69. format_top15(sBuffer[2048])
  70. {
  71. new loc1 = get_statsnum();
  72. new loc2 = get_statsnum();
  73. new loc3 = get_statsnum();
  74.  
  75. new iMax = get_statsnum();
  76. new izStats[8], izBody[8], t_sName[32], msg[112];
  77. new iLen = 0;
  78.  
  79. if (iMax > 15)
  80. {
  81. iMax = 15;
  82. }
  83.  
  84. loc1 = 1;
  85. loc2 = 2;
  86. loc3 = 3;
  87. new szTime[8];
  88. new ts;
  89.  
  90. iLen = format(sBuffer, 2047, "<body bgcolor=#000000><font color=#FFB000><pre>");
  91. iLen += format(sBuffer[iLen], 2047 - iLen, "%2s %-22.22s %6s %6s %4s %6s %4s %4s^n", "#", "Nick", " Kills", "Deaths", " HS", " Eff", "Acc", "PlayTime");
  92.  
  93. for (new i = 0; i < loc1 && 2047 - iLen > 0; i++)
  94. {
  95. get_stats(i, izStats, izBody, t_sName, 31);
  96.  
  97.  
  98. replace_all(t_sName, 31, "<", "[");
  99. replace_all(t_sName, 31, ">", "]");
  100.  
  101.  
  102. new iCurTime = get_user_time( i , 1 );
  103. new iTotalTime = 0;
  104.  
  105. if( nvault_lookup(g_NvID, t_sName , szTime, 7, ts) )
  106. {
  107. iTotalTime = str_to_num(szTime);
  108. }
  109.  
  110. iLen += format(sBuffer[iLen], 2047 - iLen, "%2d <font color=ff0bb7>%-22.22s</font> %6d %6d %4d %3.0f%% %3.0f%% %4d h <img src=http://www.xteamcs.z1.ro/galerie/aur.png>^n", i + 1, t_sName, izStats[0], izStats[1], izStats[2], effec(izStats), accuracy(izStats), ((iCurTime + iTotalTime) / 3600));
  111.  
  112. }
  113.  
  114. for (new i = 1; i < loc2 && 2047 - iLen > 0; i++)
  115. {
  116. get_stats(i, izStats, izBody, t_sName, 31);
  117. replace_all(t_sName, 31, "<", "[");
  118. replace_all(t_sName, 31, ">", "]");
  119.  
  120. new iCurTime = get_user_time( i , 1 );
  121. new iTotalTime = 0;
  122.  
  123. if( nvault_lookup(g_NvID, t_sName , szTime, 7, ts) )
  124. {
  125. iTotalTime = str_to_num(szTime);
  126. }
  127.  
  128. iLen += format(sBuffer[iLen], 2047 - iLen, "%2d <font color=#07fcff>%-22.22s</font> %6d %6d %4d %3.0f%% %3.0f%% %4d h <img src=http://www.xteamcs.z1.ro/galerie/aur.png>^n", i + 1, t_sName, izStats[0], izStats[1], izStats[2], effec(izStats), accuracy(izStats), ((iCurTime + iTotalTime) / 3600));
  129. }
  130.  
  131. for (new i = 2; i < loc3 && 2047 - iLen > 0; i++)
  132. {
  133. get_stats(i, izStats, izBody, t_sName, 31);
  134. replace_all(t_sName, 31, "<", "[");
  135. replace_all(t_sName, 31, ">", "]");
  136.  
  137. new iCurTime = get_user_time( i , 1 );
  138. new iTotalTime = 0;
  139.  
  140. if( nvault_lookup(g_NvID, t_sName , szTime, 7, ts) )
  141. {
  142. iTotalTime = str_to_num(szTime);
  143. }
  144.  
  145. iLen += format(sBuffer[iLen], 2047 - iLen, "%2d <font color=#0BF402>%-22.22s</font> %6d %6d %4d %3.0f%% %3.0f%% %4d h <img src=http://www.xteamcs.z1.ro/galerie/aur.png>^n", i + 1, t_sName, izStats[0], izStats[1], izStats[2], effec(izStats), accuracy(izStats), ((iCurTime + iTotalTime) / 3600));
  146. }
  147.  
  148.  
  149. for (new i = 3; i < iMax && 2047 - iLen > 0; i++)
  150. {
  151. get_stats(i, izStats, izBody, t_sName, 31);
  152. replace_all(t_sName, 31, "<", "[");
  153. replace_all(t_sName, 31, ">", "]");
  154.  
  155. new iCurTime = get_user_time( i , 1 );
  156. new iTotalTime = 0;
  157.  
  158. if( nvault_lookup(g_NvID, t_sName , szTime, 7, ts) )
  159. {
  160. iTotalTime = str_to_num(szTime);
  161. }
  162.  
  163. iLen += format(sBuffer[iLen], 2047 - iLen, "%2d %-22.22s %6d %6d %4d %3.0f%% %3.0f%% %4d h^n", i + 1, t_sName, izStats[0], izStats[1], izStats[2], effec(izStats), accuracy(izStats), ((iCurTime + iTotalTime) / 3600));
  164. }
  165. get_cvar_string("cfg_top10_msg", msg, 63)
  166.  
  167. iLen += format(sBuffer[iLen], 2047 - iLen, "^n%s", msg);
  168. iLen += format(sBuffer[iLen], 2047 - iLen, "^n<font color=#00FA9A>[Szervered ip-je] /top15</font>^n");
  169. iLen += format(sBuffer[iLen], 2047 - iLen, "^n<font color=#00FA9A>Meg lettel tisztelve hogy ebben a top15-ben lehetsz!</font>");
  170.  
  171.  
  172. }
  173.  
  174. public cmdTop15(id)
  175. {
  176. format_top15(g_sBuffer);
  177. show_motd(id, g_sBuffer, "Top 15");
  178.  
  179. if (get_pcvar_num(toggle_sound) != 0)
  180. {
  181. client_cmd(id,"spk ^"vox/deeoo top ten^"")
  182. }
  183.  
  184. return PLUGIN_CONTINUE;
  185. }
  186.  
  187. public plugin_end()
  188. {
  189. nvault_close(g_NvID);
  190. }
  191.