Здравствуйте , помогите объединить два плагина , AES : Say Tag и Chat Manager , у меня такая проблема, когда включаю два плагина пишет
Рядовой] Nick : Text
[Префикс] Nick : Text
Помогите сделать так чтобы было:
[Префикс] [Рядовой] Nick: Text
Вот исходники:
Код:
#include <amxmodx> #include <amxmisc> #define PLUGIN "ChatManager" #define VERSION "1.1" #define AUTHOR "CrAsH" new g_LoadPlayerPrefix[81] new iPlayerPrefix[33] new iPlayerPrefixText[33][2][64] new iPlayerColorText[33][2][32] new iPlayerRus[33] new iPlayerRusInfo[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /rus", "LangRus") register_clcmd("say /eng", "LangEng") register_clcmd("say", "NewSay") register_clcmd("say_team", "NewSayTeam") register_dictionary("ChatManager.txt") } public plugin_cfg() { new g_LoadDir[81] get_configsdir(g_LoadDir, charsmax( g_LoadDir )) formatex(g_LoadPlayerPrefix, charsmax( g_LoadPlayerPrefix ), "%s/player_prefix.ini", g_LoadDir) if(!file_exists( g_LoadPlayerPrefix )) { set_fail_state("No file player_prefix.ini") } } public LangRus(id) { if(iPlayerPrefix[id]) { if(!iPlayerRus[id]) { iPlayerRus[id] = true ChatColor(id, "%L", id, "CM_RUS") return PLUGIN_HANDLED }else{ ChatColor(id, "%L", id, "CM_RUS_ALREADY") return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public LangEng(id) { if(iPlayerPrefix[id]) { if(iPlayerRus[id]) { iPlayerRus[id] = false ChatColor(id, "%L", id, "CM_ENG") return PLUGIN_HANDLED }else{ ChatColor(id, "%L", id, "CM_ENG_ALREADY") return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public client_authorized(id) { if(!is_user_bot(id) || !is_user_hltv(id)) { iPlayerPrefix[id] = false iPlayerRus[id] = false set_task(1.0, "CheckPlayer", id) } } public client_infochanged(id) { if(!is_user_connected(id)) { return PLUGIN_CONTINUE } new szNewName[32], szOldName[32] get_user_name(id, szOldName, charsmax( szOldName )) get_user_info(id, "name", szNewName, charsmax( szNewName )) if(!equal(szNewName, szOldName)) { iPlayerPrefix[id] = false set_task(0.1, "CheckPlayer", id) } return PLUGIN_CONTINUE } public CheckPlayer(id) { new szName[64], szSteam[32] new szParse[128] new szParseType[32], szParseData[64], szParsePrefix[64], szParseColorText[32] new iLine, iNum, iType get_user_name(id, szName, charsmax( szName )) get_user_authid(id, szSteam, charsmax( szSteam )) for(iLine = 0; read_file(g_LoadPlayerPrefix, iLine, szParse, charsmax( szParse ), iNum); iLine++) { if(iNum > 0 && szParse[0] != ';') { parse(szParse, szParseType, charsmax( szParseType ), szParseData, charsmax( szParseData ), szParsePrefix, charsmax( szParsePrefix ), szParseColorText, charsmax( szParseColorText ) ) iType = str_to_num( szParseType ) if(iType == 1) { if(equal(szName, szParseData)) { iPlayerPrefix[id] = true iPlayerPrefixText[id][1] = szParsePrefix iPlayerColorText[id][1] = szParseColorText break }else if(equal(szSteam, szParseData)) { iPlayerPrefix[id] = true iPlayerPrefixText[id][1] = szParsePrefix iPlayerColorText[id][1] = szParseColorText break } }else if(iType == 2) { if(CheckFlag(id, szParseData)) { iPlayerPrefix[id] = true iPlayerPrefixText[id][1] = szParsePrefix iPlayerColorText[id][1] = szParseColorText break } } } } } public NewSay(id) { new szMessage[192] read_args(szMessage, charsmax( szMessage )) remove_quotes(szMessage) if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)) return PLUGIN_CONTINUE if(!iPlayerPrefix[id]) return PLUGIN_CONTINUE if(!iPlayerRusInfo[id]) { if(!iPlayerRus[id]) { iPlayerRusInfo[id] = true ChatColor(id, "%L", id, "CM_RUS_INFO") } } if(iPlayerRus[id]) { while (replace(szMessage, charsmax( szMessage ), "q", "й")) {} while (replace(szMessage, charsmax( szMessage ), "w", "ц")) {} while (replace(szMessage, charsmax( szMessage ), "e", "у")) {} while (replace(szMessage, charsmax( szMessage ), "r", "к")) {} while (replace(szMessage, charsmax( szMessage ), "t", "е")) {} while (replace(szMessage, charsmax( szMessage ), "y", "н")) {} while (replace(szMessage, charsmax( szMessage ), "u", "г")) {} while (replace(szMessage, charsmax( szMessage ), "i", "ш")) {} while (replace(szMessage, charsmax( szMessage ), "o", "щ")) {} while (replace(szMessage, charsmax( szMessage ), "p", "з")) {} while (replace(szMessage, charsmax( szMessage ), "[", "х")) {} while (replace(szMessage, charsmax( szMessage ), "]", "ъ")) {} while (replace(szMessage, charsmax( szMessage ), "a", "ф")) {} while (replace(szMessage, charsmax( szMessage ), "s", "ы")) {} while (replace(szMessage, charsmax( szMessage ), "d", "в")) {} while (replace(szMessage, charsmax( szMessage ), "f", "а")) {} while (replace(szMessage, charsmax( szMessage ), "g", "п")) {} while (replace(szMessage, charsmax( szMessage ), "h", "р")) {} while (replace(szMessage, charsmax( szMessage ), "j", "о")) {} while (replace(szMessage, charsmax( szMessage ), "k", "л")) {} while (replace(szMessage, charsmax( szMessage ), "l", "д")) {} while (replace(szMessage, charsmax( szMessage ), ";", "ж")) {} while (replace(szMessage, charsmax( szMessage ), "'", "э")) {} while (replace(szMessage, charsmax( szMessage ), "z", "я")) {} while (replace(szMessage, charsmax( szMessage ), "x", "ч")) {} while (replace(szMessage, charsmax( szMessage ), "c", "с")) {} while (replace(szMessage, charsmax( szMessage ), "v", "м")) {} while (replace(szMessage, charsmax( szMessage ), "b", "и")) {} while (replace(szMessage, charsmax( szMessage ), "n", "т")) {} while (replace(szMessage, charsmax( szMessage ), "m", "ь")) {} while (replace(szMessage, charsmax( szMessage ), ",", "б")) {} while (replace(szMessage, charsmax( szMessage ), ".", "ю")) {} while (replace(szMessage, charsmax( szMessage ), "Q", "Й")) {} while (replace(szMessage, charsmax( szMessage ), "W", "Ц")) {} while (replace(szMessage, charsmax( szMessage ), "E", "У")) {} while (replace(szMessage, charsmax( szMessage ), "R", "К")) {} while (replace(szMessage, charsmax( szMessage ), "T", "Е")) {} while (replace(szMessage, charsmax( szMessage ), "Y", "Н")) {} while (replace(szMessage, charsmax( szMessage ), "U", "Г")) {} while (replace(szMessage, charsmax( szMessage ), "I", "Ш")) {} while (replace(szMessage, charsmax( szMessage ), "O", "Щ")) {} while (replace(szMessage, charsmax( szMessage ), "P", "З")) {} while (replace(szMessage, charsmax( szMessage ), "{", "Х")) {} while (replace(szMessage, charsmax( szMessage ), "}", "Ъ")) {} while (replace(szMessage, charsmax( szMessage ), "A", "Ф")) {} while (replace(szMessage, charsmax( szMessage ), "S", "Ы")) {} while (replace(szMessage, charsmax( szMessage ), "D", "В")) {} while (replace(szMessage, charsmax( szMessage ), "F", "А")) {} while (replace(szMessage, charsmax( szMessage ), "G", "П")) {} while (replace(szMessage, charsmax( szMessage ), "H", "Р")) {} while (replace(szMessage, charsmax( szMessage ), "J", "О")) {} while (replace(szMessage, charsmax( szMessage ), "K", "Л")) {} while (replace(szMessage, charsmax( szMessage ), "L", "Д")) {} while (replace(szMessage, charsmax( szMessage ), ":", "Ж")) {} while (replace(szMessage, charsmax( szMessage ), "Z", "Я")) {} while (replace(szMessage, charsmax( szMessage ), "X", "Ч")) {} while (replace(szMessage, charsmax( szMessage ), "C", "С")) {} while (replace(szMessage, charsmax( szMessage ), "V", "М")) {} while (replace(szMessage, charsmax( szMessage ), "B", "И")) {} while (replace(szMessage, charsmax( szMessage ), "N", "Т")) {} while (replace(szMessage, charsmax( szMessage ), "M", "Ь")) {} while (replace(szMessage, charsmax( szMessage ), "<", "Б")) {} while (replace(szMessage, charsmax( szMessage ), ">", "Ю")) {} } new szNewMessage[512] new szLen new szName[32] get_user_name(id, szName, charsmax( szName )) if(is_user_alive(id)) { szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y[!g%s!y]", iPlayerPrefixText[id][1]) szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName) szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage) new iPlayers[32] new iPlayer, iNum get_players(iPlayers, iNum) for(new i; i < iNum; i++) { iPlayer = iPlayers[i] if(!is_user_alive(iPlayer) || !is_user_connected(iPlayer)) continue ChatColor(iPlayer, szNewMessage) } }else{ szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y*DEAD*[!g%s!y]", iPlayerPrefixText[id][1]) szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName) szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage) new iPlayers[32] new iPlayer, iNum get_players(iPlayers, iNum) for(new i; i < iNum; i++) { iPlayer = iPlayers[i] if(is_user_alive(iPlayer) || !is_user_connected(iPlayer)) continue ChatColor(iPlayer, szNewMessage) } } return PLUGIN_HANDLED_MAIN } public NewSayTeam(id) { new szMessage[192] read_args(szMessage, charsmax( szMessage )) remove_quotes(szMessage) if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id)) return PLUGIN_CONTINUE if(!iPlayerPrefix[id]) return PLUGIN_CONTINUE if(!iPlayerRusInfo[id]) { if(!iPlayerRus[id]) { iPlayerRusInfo[id] = true ChatColor(id, "%L", id, "CM_RUS_INFO") } } if(iPlayerRus[id]) { while (replace(szMessage, charsmax( szMessage ), "q", "й")) {} while (replace(szMessage, charsmax( szMessage ), "w", "ц")) {} while (replace(szMessage, charsmax( szMessage ), "e", "у")) {} while (replace(szMessage, charsmax( szMessage ), "r", "к")) {} while (replace(szMessage, charsmax( szMessage ), "t", "е")) {} while (replace(szMessage, charsmax( szMessage ), "y", "н")) {} while (replace(szMessage, charsmax( szMessage ), "u", "г")) {} while (replace(szMessage, charsmax( szMessage ), "i", "ш")) {} while (replace(szMessage, charsmax( szMessage ), "o", "щ")) {} while (replace(szMessage, charsmax( szMessage ), "p", "з")) {} while (replace(szMessage, charsmax( szMessage ), "[", "х")) {} while (replace(szMessage, charsmax( szMessage ), "]", "ъ")) {} while (replace(szMessage, charsmax( szMessage ), "a", "ф")) {} while (replace(szMessage, charsmax( szMessage ), "s", "ы")) {} while (replace(szMessage, charsmax( szMessage ), "d", "в")) {} while (replace(szMessage, charsmax( szMessage ), "f", "а")) {} while (replace(szMessage, charsmax( szMessage ), "g", "п")) {} while (replace(szMessage, charsmax( szMessage ), "h", "р")) {} while (replace(szMessage, charsmax( szMessage ), "j", "о")) {} while (replace(szMessage, charsmax( szMessage ), "k", "л")) {} while (replace(szMessage, charsmax( szMessage ), "l", "д")) {} while (replace(szMessage, charsmax( szMessage ), ";", "ж")) {} while (replace(szMessage, charsmax( szMessage ), "'", "э")) {} while (replace(szMessage, charsmax( szMessage ), "z", "я")) {} while (replace(szMessage, charsmax( szMessage ), "x", "ч")) {} while (replace(szMessage, charsmax( szMessage ), "c", "с")) {} while (replace(szMessage, charsmax( szMessage ), "v", "м")) {} while (replace(szMessage, charsmax( szMessage ), "b", "и")) {} while (replace(szMessage, charsmax( szMessage ), "n", "т")) {} while (replace(szMessage, charsmax( szMessage ), "m", "ь")) {} while (replace(szMessage, charsmax( szMessage ), ",", "б")) {} while (replace(szMessage, charsmax( szMessage ), ".", "ю")) {} while (replace(szMessage, charsmax( szMessage ), "Q", "Й")) {} while (replace(szMessage, charsmax( szMessage ), "W", "Ц")) {} while (replace(szMessage, charsmax( szMessage ), "E", "У")) {} while (replace(szMessage, charsmax( szMessage ), "R", "К")) {} while (replace(szMessage, charsmax( szMessage ), "T", "Е")) {} while (replace(szMessage, charsmax( szMessage ), "Y", "Н")) {} while (replace(szMessage, charsmax( szMessage ), "U", "Г")) {} while (replace(szMessage, charsmax( szMessage ), "I", "Ш")) {} while (replace(szMessage, charsmax( szMessage ), "O", "Щ")) {} while (replace(szMessage, charsmax( szMessage ), "P", "З")) {} while (replace(szMessage, charsmax( szMessage ), "{", "Х")) {} while (replace(szMessage, charsmax( szMessage ), "}", "Ъ")) {} while (replace(szMessage, charsmax( szMessage ), "A", "Ф")) {} while (replace(szMessage, charsmax( szMessage ), "S", "Ы")) {} while (replace(szMessage, charsmax( szMessage ), "D", "В")) {} while (replace(szMessage, charsmax( szMessage ), "F", "А")) {} while (replace(szMessage, charsmax( szMessage ), "G", "П")) {} while (replace(szMessage, charsmax( szMessage ), "H", "Р")) {} while (replace(szMessage, charsmax( szMessage ), "J", "О")) {} while (replace(szMessage, charsmax( szMessage ), "K", "Л")) {} while (replace(szMessage, charsmax( szMessage ), "L", "Д")) {} while (replace(szMessage, charsmax( szMessage ), ":", "Ж")) {} while (replace(szMessage, charsmax( szMessage ), "Z", "Я")) {} while (replace(szMessage, charsmax( szMessage ), "X", "Ч")) {} while (replace(szMessage, charsmax( szMessage ), "C", "С")) {} while (replace(szMessage, charsmax( szMessage ), "V", "М")) {} while (replace(szMessage, charsmax( szMessage ), "B", "И")) {} while (replace(szMessage, charsmax( szMessage ), "N", "Т")) {} while (replace(szMessage, charsmax( szMessage ), "M", "Ь")) {} while (replace(szMessage, charsmax( szMessage ), "<", "Б")) {} while (replace(szMessage, charsmax( szMessage ), ">", "Ю")) {} } new szNewMessage[512] new szLen new szName[32] get_user_name(id, szName, charsmax( szName )) if(is_user_alive(id)) { if(get_user_team(id) == 1) { szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(Terrorist)[!g%s!y]", iPlayerPrefixText[id][1]) }else if(get_user_team(id) == 2) { szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(Counter-Terrorist)[!g%s!y]", iPlayerPrefixText[id][1]) }else if(get_user_team(id) == 3) { szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(Spectator)[!g%s!y]", iPlayerPrefixText[id][1]) } szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName) szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage) new iPlayers[32] new iPlayer, iNum get_players(iPlayers, iNum) for(new i; i < iNum; i++) { iPlayer = iPlayers[i] if(!is_user_alive(iPlayer) || !is_user_connected(iPlayer) || get_user_team(iPlayer) != get_user_team(id)) continue ChatColor(iPlayer, szNewMessage) } }else{ if(get_user_team(id) == 1) { szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y*DEAD*(Terrorist)[!g%s!y]", iPlayerPrefixText[id][1]) }else if(get_user_team(id) == 2) { szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y*DEAD*(Counter-Terrorist)[!g%s!y]", iPlayerPrefixText[id][1]) }else if(get_user_team(id) == 3) { szLen = format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!y(Spectator)[!g%s!y]", iPlayerPrefixText[id][1]) } szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!t%s!y : ", szName) szLen += format(szNewMessage[szLen], charsmax( szNewMessage ) - 1, "!%s%s", iPlayerColorText[id][1], szMessage) new iPlayers[32] new iPlayer, iNum get_players(iPlayers, iNum) for(new i; i < iNum; i++) { iPlayer = iPlayers[i] if(is_user_alive(iPlayer) || !is_user_connected(iPlayer) || get_user_team(iPlayer) != get_user_team(id)) continue ChatColor(iPlayer, szNewMessage) } } return PLUGIN_HANDLED_MAIN } stock CheckFlag(id, szFlag[64]) { new szFlags new StringFlags[32] szFlags = get_user_flags(id) get_flags(szFlags, StringFlags, charsmax( StringFlags )) if(containi(StringFlags, szFlag) != -1) return true return false } stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!t", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } } Код:
/* Advanced Experience System by serfreeman1337 http://gf.hldm.org/ */ /* CSTRIKE Say Tag */ #include <amxmodx> #include <amxmisc> #include <aes_main> #define PLUGIN "AES: CSTRIKE Say Tag" #define VERSION "0.1.1" #define AUTHOR "serfreeman1337" // раскомментируйте чтобы включить поддержку Colored Translit v. 3.0 (https://c-s.net.ua/forum/topic25056.html) //#define USE_COLOREDTRANSLIT new g_Levels[33][36] #if !defined USE_COLOREDTRANSLIT #define T_TAG "(Terrorist)" #define CT_TAG "(CT)" #define SPEC_TAG "(Spectator)" #define DEAD_TAG "*DEAD*" new Trie:g_ChatOpts new g_maxplayers #else #include <colored_translit> #endif public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR) #if !defined USE_COLOREDTRANSLIT register_message(get_user_msgid("SayText"),"Msg_SayText") g_ChatOpts = TrieCreate() TrieSetCell(g_ChatOpts,"#Cstrike_Chat_All",1) TrieSetCell(g_ChatOpts,"#Cstrike_Chat_T",2) TrieSetCell(g_ChatOpts,"#Cstrike_Chat_CT",3) TrieSetCell(g_ChatOpts,"#Cstrike_Chat_AllDead",4) TrieSetCell(g_ChatOpts,"#Cstrike_Chat_T_Dead",5) TrieSetCell(g_ChatOpts,"#Cstrike_Chat_CT_Dead",6) TrieSetCell(g_ChatOpts,"#Cstrike_Chat_AllSpec",7) TrieSetCell(g_ChatOpts,"#Cstrike_Chat_Spec",8) g_maxplayers = get_maxplayers() #endif } public aes_player_levelup(id,newlevel){ aes_get_level_name(newlevel,g_Levels[id],35) } public aes_player_leveldown(id,newlevel){ aes_get_level_name(newlevel,g_Levels[id],35) } public client_disconnect(id) g_Levels[id][0] = 0 #if !defined USE_COLOREDTRANSLIT public Msg_SayText(MsgID,MsgDEST,MsgENT){ if(MsgDEST != MSG_ONE) return new id = get_msg_arg_int(1) if(!id || id > g_maxplayers) return if(!g_Levels[id][0]){ new aStats[AES_ST_END] aes_get_player_stats(id,aStats) aes_get_level_name(aStats[AES_ST_LEVEL],g_Levels[id],35) } new name[32] get_user_name(id,name,31) new chatIndefer[191],sayText[191],chatPointer,paramsCount get_msg_arg_string(2,chatIndefer,190) TrieGetCell(g_ChatOpts,chatIndefer,chatPointer) paramsCount = get_msg_args() if(chatPointer && paramsCount == 4){ get_msg_arg_string(4,sayText,190) new buff[191],len len += formatex(buff[len],190-len,"^1[^4%s^1]",g_Levels[id]) switch(chatPointer){ case 1:{ len += formatex(buff[len],190-len," ^3%s^1",name) } case 2:{ len += formatex(buff[len],190-len," %s ^3%s^1",T_TAG,name) } case 3:{ len += formatex(buff[len],190-len," %s ^3%s^1",CT_TAG,name) } case 4:{ len += formatex(buff[len],190-len," %s ^3%s^1",DEAD_TAG,name) } case 5:{ len += formatex(buff[len],190-len," %s%s ^3%s^1",DEAD_TAG,T_TAG,name) } case 6:{ len += formatex(buff[len],190-len," %s%s ^3%s^1",DEAD_TAG,CT_TAG,name) } case 7,8:{ len += formatex(buff[len],190-len," %s ^3%s^1",SPEC_TAG,name) } default: return } len += formatex(buff[len],190-len," : %s",sayText) set_msg_arg_string(2,buff) set_msg_arg_string(4,"") }else{ formatex(sayText,190,"^1[^4%s^1] %s",g_Levels[id],chatIndefer) set_msg_arg_string(2,sayText) if(paramsCount == 4) set_msg_arg_string(4,"") } } #else public ct_message_format(id){ if(!g_Levels[id][0]){ new aStats[AES_ST_END] aes_get_player_stats(id,aStats) aes_get_level_name(aStats[AES_ST_LEVEL],g_Levels[id],35) } new levelPrefix[46] formatex(levelPrefix,45,"^1[^4%s^1]",g_Levels[id]) ct_add_to_msg(CT_MSGPOS_PREFIX,levelPrefix) } #endif