Znalazłem coś na rosyjskim ale to do edycji i tłumaczenia spróbuje go edytować albo napisać na nowo ale nie obiecuje. Łap tutaj sma
#include <amxmodx>
#include <csstats>
//#define CT_SUPPORT // uncomment for enable colored translit support
#define PLUGIN "Top SayPrefix"
#define VERSION "0.3"
#define AUTHOR "serfreeman1337"
#define TOP_RANK 5
#define TOP_PREFIX "^1[^4TOP Đгрок^1]"
#define T_TAG "(Terrorist)"
#define CT_TAG "(CT)"
#define SPEC_TAG "(Spectator)"
#define DEAD_TAG "*DEAD*"
#if !defined CT_SUPPORT
new Trie:g_ChatOpts
new g_maxplayers
new msgHolder[191],msgLastId,Float:msgLastTime,bool:notRankedYet
#else
#include <colored_translit>
#endif
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
#if !defined CT_SUPPORT
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)
g_maxplayers = get_maxplayers()
#endif
}
#if !defined CT_SUPPORT
public Msg_SayText(MsgID,MsgDEST,MsgPLAYER){
if(MsgDEST != MSG_ONE)
return PLUGIN_CONTINUE
new id = get_msg_arg_int(1)
if(!id || id > g_maxplayers)
return PLUGIN_CONTINUE
new paramsCount = get_msg_args()
// ďđîâĺđ˙ĺě ęĺř
if(msgLastId == id && msgLastTime == get_gametime()){
if(notRankedYet) // čăđîę áĺç ňĺăŕ
return PLUGIN_CONTINUE
// ńîîáůĺíčĺ čç ęĺřŕ
set_msg_arg_string(2,msgHolder)
// ŕçŕçŕçŕ
if(paramsCount == 4)
set_msg_arg_string(4,"")
return PLUGIN_CONTINUE
}
new st[8]
new rank = get_user_stats(id,st,st)
// ďđîâĺđ˙ĺě íŕ ŇÎĎ
if(rank > TOP_RANK){ // čăđîę íĺ ňîď čăđîę
// çŕďčńűâŕĺě äŕííűĺ â ęĺř
notRankedYet = true
msgLastId = id
msgLastTime = get_gametime()
return PLUGIN_CONTINUE
}else // čăđîę ŇÎĎ, ńáđŕńűâŕĺě óęŕçŕňĺëü
notRankedYet = false
new name[32]
get_user_name(id,name,31)
new chatIndefer[191],sayText[191],chatPointer
get_msg_arg_string(2,chatIndefer,190)
get_msg_arg_string(4,sayText,190)
TrieGetCell(g_ChatOpts,chatIndefer,chatPointer)
new buff[192],len
len += formatex(buff[len],191-len,TOP_PREFIX)
if(chatPointer && paramsCount == 4){ // ńňŕíäŕđňíîĺ ńîîáůĺíčĺ äâčćęŕ
switch(chatPointer){
case 1:{
len += formatex(buff[len],191-len," ^3%s^1",name)
}
case 2:{
len += formatex(buff[len],191-len," %s ^3%s^1",T_TAG,name)
}
case 3:{
len += formatex(buff[len],191-len," %s ^3%s^1",CT_TAG,name)
}
case 4:{
len += formatex(buff[len],191-len," %s ^3%s^1",DEAD_TAG,name)
}
case 5:{
len += formatex(buff[len],191-len," %s%s ^3%s^1",DEAD_TAG,T_TAG,name)
}
case 6:{
len += formatex(buff[len],191-len," %s%s ^3%s^1",DEAD_TAG,CT_TAG,name)
}
case 7:{
len += formatex(buff[len],191-len," %s ^3%s^1",SPEC_TAG,name)
}
default: return PLUGIN_CONTINUE
}
len += formatex(buff[len],191-len," : %s",sayText)
}else{ // ńîîáůĺíčĺ, čçěĺíĺííîĺ äđóăčě ďëŕăčíîě
len += formatex(buff[len],191-len," %s",chatIndefer)
}
set_msg_arg_string(2,buff)
if(paramsCount == 4)
set_msg_arg_string(4,"")
// ńîőđŕí˙ĺě íŕřĺ ńîîáůĺíčĺ â ęĺř
if(msgLastId != id || msgLastTime != get_gametime()){
msgLastId = id
msgLastTime = get_gametime()
copy(msgHolder,190,buff)
}
return PLUGIN_CONTINUE
}
#else
public ct_message_format(id){
new st[8]
if(get_user_stats(id,st,st) <= TOP_RANK)
ct_add_to_msg(CT_MSGPOS_PREFIX,TOP_PREFIX)
}
#endif