HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. new g_iColor[33], g_iCSPrefix
  5.  
  6. public plugin_init()
  7. {
  8. register_plugin(fmt("%L", LANG_SERVER, "PLUGIN_NAME"), "1.0", "Turán & aarpi")
  9.  
  10. g_iCSPrefix = register_cvar("server_prefix", "Szerver Prefix")
  11.  
  12. register_clcmd("say /szin", "menu_colormenu")
  13. register_clcmd("say_team /szin", "menu_colormenu")
  14.  
  15. register_clcmd("say", "cmd_say")
  16. register_clcmd("say_team", "cmd_say_team")
  17.  
  18. register_concmd("amx_chatcolor", "cmd_choosecolor", ADMIN_ALL, "<color> - sarga, szurke, piros, kek, zold")
  19.  
  20. register_dictionary("chat.txt")
  21. }
  22. public cmd_choosecolor(iId, iLevel, iCid)
  23. {
  24. if(!cmd_access(iId, iLevel, iCid, 1))
  25. return PLUGIN_HANDLED
  26.  
  27. new sColor[32]
  28. read_args(sColor, charsmax(sColor))
  29. remove_quotes(sColor)
  30.  
  31. if(equal(sColor, fmt("%L", iId, "YELLOW_CMD")))
  32. g_iColor[iId] = 0
  33. else if(equal(sColor, fmt("%L", iId, "GREY_CMD")))
  34. g_iColor[iId] = -1
  35. else if(equal(sColor, fmt("%L", iId, "RED_CMD")))
  36. g_iColor[iId] = -2
  37. else if(equal(sColor, fmt("%L", iId, "BLUE_CMD")))
  38. g_iColor[iId] = -3
  39. else if(equal(sColor, fmt("%L", iId, "GREEN_CMD")))
  40. g_iColor[iId] = -4
  41. else
  42. {
  43. console_print(iId, "***************%L***************", iId, "ERROR")
  44. console_print(iId, "%L", iId, "BAD_COLOR")
  45. console_print(iId, "%L %L, %L, %L, %L, %L.", iId, "AVAILABLE_COLORS", iId, "YELLOW_CMD", iId, "GREY_CMD", iId, "RED_CMD", iId, "BLUE_CMD", iId, "GREEN_CMD")
  46. console_print(iId, "%L", iId, "USAGE")
  47. console_print(iId, "**********************************")
  48. return PLUGIN_HANDLED
  49. }
  50. console_print(iId, "%s %L", get_server_prefix(), iId, "COLOR_CHANGED")
  51. return PLUGIN_HANDLED
  52. }
  53.  
  54. public menu_colormenu(iId)
  55. {
  56. new iMenu
  57. iMenu = menu_create(fmt("\r%s\d - %L", get_server_prefix(), iId, "MENU_TITLE"), "menu_colormenu_h")
  58.  
  59. menu_additem(iMenu, fmt("%L", iId, "YELLOW"), "0",0);
  60. menu_additem(iMenu, fmt("%L", iId, "GREY"), "-1",0);
  61. menu_additem(iMenu, fmt("%L", iId, "RED"), "-2",0);
  62. menu_additem(iMenu, fmt("%L", iId, "BLUE"), "-3",0);
  63. menu_additem(iMenu, fmt("%L", iId, "GREEN"), "-4",0);
  64.  
  65. menu_display(iId, iMenu, 0)
  66. }
  67. public menu_colormenu_h(iId, iMenu, iItem)
  68. {
  69. if(iItem == MENU_EXIT)
  70. {
  71. menu_destroy(iMenu)
  72. return PLUGIN_HANDLED
  73. }
  74. new sData[6], iAccess, sName[64]
  75. menu_item_getinfo(iMenu, iItem, iAccess, sData, charsmax(sData), sName, charsmax(sName))
  76.  
  77. g_iColor[iId] = str_to_num(sData)
  78.  
  79. replace_all(sName, charsmax(sName), "\d", "")
  80. replace_all(sName, charsmax(sName), "\r", "")
  81. replace_all(sName, charsmax(sName), "\w", "")
  82. replace_all(sName, charsmax(sName), "\y", "")
  83.  
  84. client_print_color(iId, iId, "^4%s %L", get_server_prefix(), iId, "COLOR_CHANGED_MENU", sName)
  85. return PLUGIN_HANDLED
  86. }
  87. public cmd_say(iId)
  88. {
  89. new sMessage[192]
  90. read_args(sMessage, charsmax(sMessage))
  91. remove_quotes(sMessage)
  92.  
  93. if(strlen(sMessage) == 0 || sMessage[0] == '/')
  94. return PLUGIN_HANDLED
  95.  
  96. new sColor[3], sDeath[16]
  97.  
  98. if(g_iColor[iId] == 0)
  99. formatex(sColor, charsmax(sColor), "^1")
  100. else if(g_iColor[iId] == -4)
  101. formatex(sColor, charsmax(sColor), "^4")
  102. else
  103. formatex(sColor, charsmax(sColor), "^3")
  104.  
  105. for(new i = 1; i <= get_maxplayers(); i++)
  106. {
  107. if(is_user_connected(i) && !is_user_bot(i))
  108. {
  109. formatex(sDeath, charsmax(sDeath), is_user_alive(iId) ? "":"%L", i, "DEAD")
  110. client_print_color(i, g_iColor[iId], "%s^1%n:%s %s ", sDeath, iId, sColor, sMessage)
  111. }
  112. }
  113. return PLUGIN_HANDLED
  114. }
  115. public cmd_say_team(iId)
  116. {
  117. new sMessage[192]
  118. read_args(sMessage, charsmax(sMessage))
  119. remove_quotes(sMessage)
  120.  
  121. if(strlen(sMessage) == 0 || sMessage[0] == '/')
  122. return PLUGIN_HANDLED
  123.  
  124. new sColor[3], sTeam[32], sDeath[16]
  125.  
  126. if(g_iColor[iId] == 0)
  127. formatex(sColor, charsmax(sColor), "^1")
  128. else if(g_iColor[iId] == -4)
  129. formatex(sColor, charsmax(sColor), "^4")
  130. else
  131. formatex(sColor, charsmax(sColor), "^3")
  132.  
  133. get_user_team(iId, sTeam, charsmax(sTeam))
  134.  
  135. for(new i = 1; i <= get_maxplayers(); i++)
  136. {
  137. if(get_user_team(iId) == get_user_team(i) || access(i, ADMIN_BAN) && is_user_connected(i) && !is_user_bot(i))
  138. {
  139. formatex(sDeath, charsmax(sDeath), is_user_alive(iId) ? "":"%L", i, "DEAD")
  140. client_print_color(i, g_iColor[iId], "%s(%s) ^1%n:%s %s ", sDeath, sTeam, iId, sColor, sMessage)
  141. }
  142. }
  143. return PLUGIN_HANDLED
  144. }
  145. get_server_prefix()
  146. {
  147. new sPrefix[64]
  148. get_pcvar_string(g_iCSPrefix, sPrefix, charsmax(sPrefix))
  149. return sPrefix
  150. }
  151.