Advertisement
Guest User

Untitled

a guest
Oct 12th, 2023
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. #include <amxmodx>
  2.  
  3. #define Autor "Natsu"
  4. #define Versiune "1.1"
  5. #define Nume "Leader Board"
  6. new cvar_on, cvar_tag, cvar_show, cvar_hudcolor, cvar_hudposition
  7. new TaG[8], r, kills[32], HasALeader = 0, bool: Something, Count = 0, OldMaxKills = 0, OldMaxKillsID = 0, rMaxKills = 0,
  8. rMaxKillsID = 0, SyncShowLeader
  9. public plugin_init() {
  10. register_plugin(Nume, Versiune, Autor)
  11. register_dictionary("score_leader.txt")
  12. register_event("HLTV", "NewRoundEvent", "a", "1=0", "2=0")
  13. cvar_tag = register_cvar("leader_board_tag", "Leader")
  14. cvar_on = register_cvar("leader_board", "1")
  15. cvar_show = register_cvar("leader_board_show", "1")
  16. cvar_hudcolor = register_cvar("leader_board_hudcolor", "255 -1 0")
  17. cvar_hudposition = register_cvar("leader_board_hudposition", "0.05 -1.0")
  18. get_pcvar_string(cvar_tag, TaG, charsmax(TaG))
  19. SyncShowLeader = CreateHudSyncObj()
  20. set_task(0.5, "rLeaderCheckTask", _, _, _, "b", 0)
  21. }
  22. public rLeaderCheckTask() {
  23. if (get_pcvar_num(cvar_on) == 0) {
  24. return PLUGIN_HANDLED
  25. }
  26. new rPlayers[32], rNum, rPID
  27. get_players(rPlayers, rNum)
  28. if (get_user_frags(rMaxKillsID) == 0) {
  29. if (!is_user_connected(rMaxKillsID)) {
  30. OldMaxKills = 0
  31. OldMaxKillsID = 0
  32. rMaxKills = 0
  33. rMaxKillsID = 0
  34. if (Count > 0) ColorChatAlpha(0, "%L", LANG_PLAYER, "DISCONNECTED", TaG)
  35. Count = 0
  36. }
  37. OldMaxKills = 0
  38. OldMaxKillsID = 0
  39. rMaxKills = 0
  40. rMaxKillsID = 0
  41. if (Count > 0) ColorChatAlpha(0, "%L", LANG_PLAYER, "RESET_SCORE", TaG)
  42. Count = 0
  43. }
  44. for (r = 0; r < rNum; r++) {
  45. rPID = rPlayers[r]
  46. kills[rPID] = get_user_frags(rPID)
  47. if (Count == 0) {
  48. if (get_user_frags(rPID) == 0) {
  49. Something = false
  50. } else {
  51. Something = true
  52. Count++
  53. }
  54. }
  55. ShowWhosLeader(rPID)
  56. if (kills[rPID] > kills[rMaxKillsID]) {
  57. rMaxKillsID = rPID
  58. rMaxKills = kills[rMaxKillsID]
  59. }
  60. }
  61. if (!Something) return PLUGIN_HANDLED
  62. CheckLeader(rMaxKillsID)
  63. return PLUGIN_HANDLED
  64. }
  65. public CheckLeader(rMaxKillsID) {
  66. if (OldMaxKills == rMaxKills || OldMaxKillsID == rMaxKillsID) return
  67. if (rMaxKills > 0 && HasALeader == 0) {
  68. ColorChatAlpha(0, "%L", LANG_PLAYER, "THE_LEADER", TaG, get_pname(rMaxKillsID), kills[rMaxKillsID], kills[rMaxKillsID] == 1 ? "" : "s", get_user_deaths(rMaxKillsID), get_user_deaths(rMaxKillsID) == 1 ? "" : "s")
  69. HasALeader = 1
  70. OldMaxKills = get_user_frags(rMaxKillsID)
  71. OldMaxKillsID = rMaxKillsID
  72. } else if (rMaxKills > 0 && HasALeader == 1) {
  73. ColorChatAlpha(0, "%L", LANG_PLAYER, "THE_NEW_LEADER", TaG, get_pname(rMaxKillsID), kills[rMaxKillsID], kills[rMaxKillsID] == 1 ? "" : "s", get_user_deaths(rMaxKillsID), get_user_deaths(rMaxKillsID) == 1 ? "" : "s")
  74. OldMaxKills = rMaxKills
  75. OldMaxKillsID = rMaxKillsID
  76. }
  77. }
  78. public ShowWhosLeader(id) {
  79. if (get_pcvar_num(cvar_show) == 1) {
  80. static hud_red, hud_green, hud_blue, Float: hud_x, Float: hud_y
  81. new color[16], red[4], green[4], blue[4], position[19], positionX[6], positionY[6]
  82. get_pcvar_string(cvar_hudcolor, color, 15)
  83. get_pcvar_string(cvar_hudposition, position, 18)
  84. parse(color, red, 3, green, 3, blue, 3)
  85. parse(position, positionX, 6, positionY, 6)
  86. hud_red = str_to_num(red)
  87. hud_green = str_to_num(green)
  88. hud_blue = str_to_num(blue)
  89. hud_x = str_to_float(positionX)
  90. hud_y = str_to_float(positionY)
  91. if (!Something) {
  92. set_hudmessage(hud_red, hud_green, hud_blue, hud_x, hud_y, 0, 0.5, 0.5)
  93. ShowSyncHudMsg(id, SyncShowLeader, "Leader: %s", "Still no Leader")
  94. } else {
  95. set_hudmessage(hud_red, hud_green, hud_blue, hud_x, hud_y, 0, 0.5, 0.5)
  96. ShowSyncHudMsg(id, SyncShowLeader, "Leader: %s", get_pname(rMaxKillsID))
  97. }
  98. }
  99. }
  100. public NewRoundEvent(id) {
  101. if (get_pcvar_num(cvar_show) == 2) {
  102. if (!Something) {
  103. ColorChatAlpha(id, "%L", LANG_PLAYER, "STILL_NO_LEADER2", TaG)
  104. } else {
  105. ColorChatAlpha(id, "%L", LANG_PLAYER, "CURRENT_LEADER", TaG, get_pname(rMaxKillsID))
  106. }
  107. }
  108. }
  109. stock get_pname(index) {
  110. new rName[32]
  111. get_user_name(index, rName, charsmax(rName))
  112. return rName
  113. }
  114. stock ColorChatAlpha(index,
  115. const text[], any: ...) {
  116. new MaxPlayers, MsgSayText
  117. static Msg[128]
  118. vformat(Msg, sizeof(Msg) - 1, text, 3)
  119. replace_all(Msg, sizeof(Msg) - 1, "!g", "^x04")
  120. replace_all(Msg, sizeof(Msg) - 1, "!n", "^x01")
  121. replace_all(Msg, sizeof(Msg) - 1, "!t", "^x03")
  122. MaxPlayers = get_maxplayers()
  123. MsgSayText = get_user_msgid("SayText")
  124. if (!index) {
  125. for (new i = 0; i < MaxPlayers; i++) {
  126. if (!is_user_connected(i)) continue;
  127. message_begin(MSG_ONE_UNRELIABLE, MsgSayText, _, i)
  128. write_byte(i)
  129. write_string(Msg)
  130. message_end()
  131. }
  132. }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement