HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. //#define DISABLED_BY_DEFAULT
  2.  
  3. #include <amxmodx>
  4. #include <csx>
  5. #include <colorchat>
  6.  
  7. #define MAX_PLAYERS 32
  8. new bool:g_RestartAttempt[MAX_PLAYERS+1]
  9.  
  10. new g_oldrank[MAX_PLAYERS+1]
  11.  
  12. #if defined DISABLED_BY_DEFAULT
  13. new bool:disabled[MAX_PLAYERS+1] = {true, ...}
  14. #else
  15. new bool:disabled[MAX_PLAYERS+1]
  16. #endif
  17.  
  18. new inforank
  19.  
  20. public plugin_init() {
  21. register_plugin("Info Rank", "1.0", "connor")
  22. register_dictionary("inforank.txt")
  23.  
  24. inforank = register_cvar("amx_inforank", "1")
  25.  
  26. register_event("TextMsg", "eRestartAttempt", "a", "2=#Game_will_restart_in")
  27. register_event("ResetHUD", "eResetHUD", "be")
  28.  
  29. register_clcmd("say /inforank","switchCmd", 0, "- rank info [be/ki] kapcsolasa")
  30. register_clcmd("say_team /inforank","switchCmd", 0, "- rank info [be/ki] kapcsolasa")
  31. register_clcmd("fullupdate", "fullupdateCmd")
  32. }
  33.  
  34. public fullupdateCmd() {
  35. return PLUGIN_HANDLED_MAIN
  36. }
  37.  
  38. public eRestartAttempt() {
  39. if(!get_pcvar_num(inforank))
  40. return
  41.  
  42. new players[MAX_PLAYERS], num
  43. get_players(players, num, "a")
  44. for (new i; i < num; ++i)
  45. g_RestartAttempt[players[i]] = true
  46. }
  47.  
  48. public eResetHUD(id) {
  49. if (g_RestartAttempt[id]) {
  50. g_RestartAttempt[id] = false
  51. return
  52. }
  53.  
  54. if(!get_pcvar_num(inforank))
  55. return
  56.  
  57. if(disabled[id])
  58. return
  59.  
  60. event_player_spawn(id)
  61. }
  62.  
  63. public event_player_spawn(id) {
  64.  
  65. new osef[8]
  66. new rank = get_user_stats(id, osef, osef)
  67. new maxrank = get_statsnum()
  68.  
  69. if(g_oldrank[id] == 0)
  70. g_oldrank[id] = rank
  71.  
  72. new diff = g_oldrank[id] - rank
  73. g_oldrank[id] = rank
  74.  
  75. new mess[192]
  76. if(diff > 0) {
  77. formatex(mess, 191, "%L", id, "IR_GOOD", diff)
  78. ColorChat(id, GREEN, mess)
  79. }
  80. else if(diff < 0) {
  81. formatex(mess, 191, "%L", id, "IR_BAD", abs(diff))
  82. ColorChat(id, RED, mess)
  83. }
  84. formatex(mess, 191, "%L", id, "IR_RANK", rank, maxrank)
  85. ColorChat(id, GREY, mess)
  86. }
  87.  
  88. public switchCmd(id) {
  89. if(!get_pcvar_num(inforank))
  90. return PLUGIN_CONTINUE
  91.  
  92. if(disabled[id]) {
  93. disabled[id] = false
  94. client_cmd(id, "setinfo _ir 1")
  95. client_print(id, print_chat, "%L", id, "IR_ENABLE")
  96. }
  97. else {
  98. disabled[id] = true
  99. client_cmd(id, "setinfo _ir 0")
  100. client_print(id, print_chat, "%L", id, "IR_DISABLE")
  101. }
  102. return PLUGIN_CONTINUE
  103. }
  104.  
  105. public client_authorized(id) {
  106. new osef[8]
  107. g_oldrank[id] = get_user_stats(id, osef, osef)
  108.  
  109. new enable[2]
  110. get_user_info(id, "_ir", enable, 1)
  111. if(!enable[0])
  112. return
  113.  
  114. if(enable[0]=='1')
  115. disabled[id] = false
  116. else
  117. disabled[id] = true
  118. }
  119.  
  120. public client_disconnect(id) {
  121. g_oldrank[id] = 0
  122.  
  123. #if defined DISABLED_BY_DEFAULT
  124. disabled[id] = true
  125. #else
  126. disabled[id] = false
  127. #endif
  128. }