Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Архивирани теми и раздели.
Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от OciXCrom » 13 Май 2017, 23:26

Нали ти дадоха по-горе? Заменяш това в кода от първото мнение и познай какво получаваш...

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <colorchat>

#define PLUGIN_VERSION "2.2"
//#define USE_JAILBREAK

#if defined USE_JAILBREAK
    #define PREFIX_SIMON 5
    native is_user_simon(id)
#endif

enum
{
    INFO_PREFIX = 1,
    INFO_CLRNAME,
    INFO_CLRCHAT,
    INFO_CLRSCND
}

#define ADMIN_LISTEN "m"

new const g_szAdminPrefixes[][] = {
/*
    --------------
    Флаг     Префикс                 Цвят (ник)     Цвят (чат)     Цвят (second) */
    "",     "",                        "team",     "normal",     "team",
    "l",     "^1[^4OWNER^1]",             "team",     "green",     "team",
    "o",     "^1[^4Test Admin^1]",             "team",     "green",     "team",
    "r",     "^1[^4Server Admin^1]",             "team",     "green",     "team",
    "d",     "^1[^4Ban-Team^1]",             "team",     "green",     "team",
    "b",     "^1[^4V.I.P^1]",             "team",     "green",     "team",
    "q",     "^1[^4SMS Admin^1]",             "team",     "green",     "team",
    "n",     "^1[^4CO-OWNER^1]",             "team",     "green",     "team",
    "p",     "^1[^4VIP+^1]",             "team",     "green",     "team",
    "s",     "^1[^4Server Otgovornik^1]",             "team",     "green",     "team"
}

new const g_szSeparator[] = " ^1:"
new const g_szDeathPrefix[][] = { "^1*^4MURTUV^1* ", "" }
new const g_szColors[][] = { "^1", "^3", "^4" }
new g_szAdminPrefix[33][32]

new const g_szTeamPrefix[][] = {
    "",
    "^1(^3Terrorist^1)",
    "^1(^3Counter-Terrorist^1)",
    "^1(^3Spectator^1)"
}

public plugin_init()
{
    register_plugin("Chat Manager", PLUGIN_VERSION, "OciXCrom")
    register_cvar("CRXChatManager", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    register_clcmd("say", "hookSay")
    register_clcmd("say_team", "hookSay")
}

public plugin_natives()
    register_native("GetPlayerPrefix", "_GetPlayerPrefix")
    
public _GetPlayerPrefix(iPlugin, iParams)
{
    new id = get_param(1)
    set_string(2, g_szAdminPrefix[id], get_param(3))
    return 1
}

public client_putinserver(id)
    g_szAdminPrefix[id][0] = EOS

public hookSay(id)
{
    new szArgs[192]
    read_args(szArgs, charsmax(szArgs))
    remove_quotes(szArgs)
    
    switch(szArgs[0])
    {
        case EOS, '@': return PLUGIN_HANDLED
    }
    
    new szMessage[192], szName[32], szDeathPrefix[32], szTeamPrefix[32], szAdminPrefix[32], szCommand[5], szNameColor[3], szChatColor[3]
    new iAlive = is_user_alive(id) ? 1 : 0, iPrefix = get_prefixnum(id), iColor = get_secondcolor(g_szAdminPrefixes[iPrefix + INFO_CLRSCND]), iTeam = get_user_team(id)
    copy(szDeathPrefix, charsmax(szDeathPrefix), g_szDeathPrefix[iAlive])
    copy(szAdminPrefix, charsmax(szAdminPrefix), g_szAdminPrefixes[iPrefix + INFO_PREFIX])
    if(!is_blank(szAdminPrefix)) add(szAdminPrefix, charsmax(szAdminPrefix), " ")
    copy(g_szAdminPrefix[id], charsmax(g_szAdminPrefix[]), szAdminPrefix)
    get_color(g_szAdminPrefixes[iPrefix + INFO_CLRNAME], szNameColor)
    get_color(g_szAdminPrefixes[iPrefix + INFO_CLRCHAT], szChatColor)
    read_argv(0, szCommand, charsmax(szCommand))
    get_user_name(id, szName, charsmax(szName))
    
    new bool:blTeam = szCommand[3] == '_' ? true : false
    if(blTeam) formatex(szTeamPrefix, charsmax(szTeamPrefix), "%s ", g_szTeamPrefix[iTeam])
    formatex(szMessage, charsmax(szMessage), "%s%s%s%s%s%s %s%s", szDeathPrefix, szTeamPrefix, szAdminPrefix, szNameColor, szName, g_szSeparator, szChatColor, szArgs)
    
    new iPlayers[32], iPlayer, iPlayerAlive, iPnum
    get_players(iPlayers, iPnum)
    
    for(new i; i < iPnum; i++)
    {
        iPlayer = iPlayers[i]
        iPlayerAlive = is_user_alive(iPlayer) ? 1 : 0
        
        if(iAlive == iPlayerAlive || (blTeam && iTeam == get_user_team(iPlayer)) || has_user_listen(iPlayer))
        {
            switch(iColor)
            {
                case 0:
                {
                    switch(iTeam)
                    {
                        case 1: ColorChat(iPlayer, RED, szMessage)
                        case 2: ColorChat(iPlayer, BLUE, szMessage)
                        case 3: ColorChat(iPlayer, GREY, szMessage)
                    }
                }
                case 1: ColorChat(iPlayer, RED, szMessage)
                case 2: ColorChat(iPlayer, BLUE, szMessage)
                case 3: ColorChat(iPlayer, GREY, szMessage)
            }
        }
    }
    
    logChatMessage(szMessage)
    return PLUGIN_HANDLED
}

logChatMessage(szMessage[192])
{
    for(new i; i < sizeof(g_szColors); i++)
        replace_all(szMessage, charsmax(szMessage), g_szColors[i], "")
    
    log_amx(szMessage)
}

get_prefixnum(id)
{    
    #if defined USE_JAILBREAK
        if(is_user_simon(id))
            return PREFIX_SIMON
    #endif
    
    new iPrefix
    static iFlags
    iFlags = get_user_flags(id)
    
    for(new i; i < sizeof(g_szAdminPrefixes) - 4; i += 5)
    {
        if(iFlags & read_flags(g_szAdminPrefixes[i]))
        {
            iPrefix = i
            break
        }
    }
    
    return iPrefix
}
    
get_color(szString[], szColor[3])
{
    new iColor
    
    switch(szString[0])
    {
        case 't', 's': iColor = 1
        case 'g': iColor = 2
    }
    
    copy(szColor, charsmax(szColor), g_szColors[iColor])
}

get_secondcolor(szString[])
{
    new iColor
    
    switch(szString[0])
    {
        case 'r': iColor = 1
        case 'b': iColor = 2
        case 'g': iColor = 3
    }
    
    return iColor
}

bool:is_blank(szString[])
    return szString[0] == EOS ? true : false
    
bool:has_user_listen(id)
    return get_user_flags(id) & read_flags(ADMIN_LISTEN) ? true : false

Аватар
SweetBoY
Извън линия
Потребител
Потребител
Мнения: 26
Регистриран на: 08 Дек 2016, 14:50
Местоположение: Под масата.
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от SweetBoY » 14 Май 2017, 11:27

Благодаря ти справих се. :) :tnx:

Edit: OciXCrom, плъгина е перфектен само, че като напиша команда с "/" ми излиза в чата, а аз искам да не се показва и още един проблем, като съм spectator може ли ми направиш вместо *MURTAV* да ми пише *Spectator* ?

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от OciXCrom » 14 Май 2017, 20:27

ВАЖНО Когато добавяте плъгина в сървъра си, той трябва да стои най-отдолу в списъка с плъгини, с цел да не си пречи с чат команди от други плъгини.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <colorchat>

#define PLUGIN_VERSION "2.2"
//#define USE_JAILBREAK

#if defined USE_JAILBREAK
    #define PREFIX_SIMON 5
    native is_user_simon(id)
#endif

enum
{
    INFO_PREFIX = 1,
    INFO_CLRNAME,
    INFO_CLRCHAT,
    INFO_CLRSCND
}

#define ADMIN_LISTEN "m"

new const g_szAdminPrefixes[][] = {
/*
    --------------
    Флаг     Префикс                 Цвят (ник)     Цвят (чат)     Цвят (second) */
    "",     "",                        "team",     "normal",     "team",
    "l",     "^1[^4OWNER^1]",             "team",     "green",     "team",
    "o",     "^1[^4Test Admin^1]",             "team",     "green",     "team",
    "r",     "^1[^4Server Admin^1]",             "team",     "green",     "team",
    "d",     "^1[^4Ban-Team^1]",             "team",     "green",     "team",
    "b",     "^1[^4V.I.P^1]",             "team",     "green",     "team",
    "q",     "^1[^4SMS Admin^1]",             "team",     "green",     "team",
    "n",     "^1[^4CO-OWNER^1]",             "team",     "green",     "team",
    "p",     "^1[^4VIP+^1]",             "team",     "green",     "team",
    "s",     "^1[^4Server Otgovornik^1]",             "team",     "green",     "team"
}

new const g_szSeparator[] = " ^1:"
new const g_szDeathPrefix[][] = { "^1*^4MURTUV^1* ", "" }
new const g_szColors[][] = { "^1", "^3", "^4" }
new g_szAdminPrefix[33][32]

new const g_szTeamPrefix[][] = {
    "",
    "^1(^3Terrorist^1)",
    "^1(^3Counter-Terrorist^1)",
    "^1(^3Spectator^1)"
}

public plugin_init()
{
    register_plugin("Chat Manager", PLUGIN_VERSION, "OciXCrom")
    register_cvar("CRXChatManager", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    register_clcmd("say", "hookSay")
    register_clcmd("say_team", "hookSay")
}

public plugin_natives()
    register_native("GetPlayerPrefix", "_GetPlayerPrefix")
    
public _GetPlayerPrefix(iPlugin, iParams)
{
    new id = get_param(1)
    set_string(2, g_szAdminPrefix[id], get_param(3))
    return 1
}

public client_putinserver(id)
    g_szAdminPrefix[id][0] = EOS

public hookSay(id)
{
    new szArgs[192]
    read_args(szArgs, charsmax(szArgs))
    remove_quotes(szArgs)
    
    switch(szArgs[0])
    {
        case EOS, '@', '/': return PLUGIN_HANDLED
    }
    
    new szMessage[192], szName[32], szDeathPrefix[32], szTeamPrefix[32], szAdminPrefix[32], szCommand[5], szNameColor[3], szChatColor[3]
    new iAlive = is_user_alive(id) ? 1 : 0, iPrefix = get_prefixnum(id), iColor = get_secondcolor(g_szAdminPrefixes[iPrefix + INFO_CLRSCND]), iTeam = get_user_team(id)
    copy(szDeathPrefix, charsmax(szDeathPrefix), g_szDeathPrefix[iAlive])
    copy(szAdminPrefix, charsmax(szAdminPrefix), g_szAdminPrefixes[iPrefix + INFO_PREFIX])
    if(!is_blank(szAdminPrefix)) add(szAdminPrefix, charsmax(szAdminPrefix), " ")
    copy(g_szAdminPrefix[id], charsmax(g_szAdminPrefix[]), szAdminPrefix)
    get_color(g_szAdminPrefixes[iPrefix + INFO_CLRNAME], szNameColor)
    get_color(g_szAdminPrefixes[iPrefix + INFO_CLRCHAT], szChatColor)
    read_argv(0, szCommand, charsmax(szCommand))
    get_user_name(id, szName, charsmax(szName))
    
    new bool:blTeam = szCommand[3] == '_' ? true : false
    if(blTeam) formatex(szTeamPrefix, charsmax(szTeamPrefix), "%s ", g_szTeamPrefix[iTeam])
    formatex(szMessage, charsmax(szMessage), "%s%s%s%s%s%s %s%s", szDeathPrefix, szTeamPrefix, szAdminPrefix, szNameColor, szName, g_szSeparator, szChatColor, szArgs)
    
    new iPlayers[32], iPlayer, iPlayerAlive, iPnum
    get_players(iPlayers, iPnum)
    
    for(new i; i < iPnum; i++)
    {
        iPlayer = iPlayers[i]
        iPlayerAlive = is_user_alive(iPlayer) ? 1 : 0
        
        if(iAlive == iPlayerAlive || (blTeam && iTeam == get_user_team(iPlayer)) || has_user_listen(iPlayer))
        {
            switch(iColor)
            {
                case 0:
                {
                    switch(iTeam)
                    {
                        case 1: ColorChat(iPlayer, RED, szMessage)
                        case 2: ColorChat(iPlayer, BLUE, szMessage)
                        case 3: ColorChat(iPlayer, GREY, szMessage)
                    }
                }
                case 1: ColorChat(iPlayer, RED, szMessage)
                case 2: ColorChat(iPlayer, BLUE, szMessage)
                case 3: ColorChat(iPlayer, GREY, szMessage)
            }
        }
    }
    
    logChatMessage(szMessage)
    return PLUGIN_HANDLED
}

logChatMessage(szMessage[192])
{
    for(new i; i < sizeof(g_szColors); i++)
        replace_all(szMessage, charsmax(szMessage), g_szColors[i], "")
    
    log_amx(szMessage)
}

get_prefixnum(id)
{    
    #if defined USE_JAILBREAK
        if(is_user_simon(id))
            return PREFIX_SIMON
    #endif
    
    new iPrefix
    static iFlags
    iFlags = get_user_flags(id)
    
    for(new i; i < sizeof(g_szAdminPrefixes) - 4; i += 5)
    {
        if(iFlags & read_flags(g_szAdminPrefixes[i]))
        {
            iPrefix = i
            break
        }
    }
    
    return iPrefix
}
    
get_color(szString[], szColor[3])
{
    new iColor
    
    switch(szString[0])
    {
        case 't', 's': iColor = 1
        case 'g': iColor = 2
    }
    
    copy(szColor, charsmax(szColor), g_szColors[iColor])
}

get_secondcolor(szString[])
{
    new iColor
    
    switch(szString[0])
    {
        case 'r': iColor = 1
        case 'b': iColor = 2
        case 'g': iColor = 3
    }
    
    return iColor
}

bool:is_blank(szString[])
    return szString[0] == EOS ? true : false
    
bool:has_user_listen(id)
    return get_user_flags(id) & read_flags(ADMIN_LISTEN) ? true : false
като съм spectator може ли ми направиш вместо *MURTAV* да ми пише *Spectator* ?
Няма да развалям целия код за толкова ненужно нещо.

Аватар
SorryMateYoureDead
Извън линия
Потребител
Потребител
Мнения: 203
Регистриран на: 21 Май 2017, 17:40
Местоположение: Sliven
Се отблагодари: 3 пъти
Получена благодарност: 1 път
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от SorryMateYoureDead » 23 Май 2017, 17:00

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <colorchat>

#define PLUGIN_VERSION "2.2"
//#define USE_JAILBREAK

#if defined USE_JAILBREAK
	#define PREFIX_SIMON 5
	native is_user_simon(id)
#endif

enum
{
	INFO_PREFIX = 1,
	INFO_CLRNAME,
	INFO_CLRCHAT,
	INFO_CLRSCND
}

#define ADMIN_LISTEN "m"

new const g_szAdminPrefixes[][] = {
/*
	--------------
	Флаг     Префикс                 Цвят (ник)     Цвят (чат)     Цвят (second) */
	"",     "",                        "second",     "normal",     "team",	
        "m",     "^3(^4Owner^3)",             "team",     "team",     "team",
        "n",     "^3(^4Global Admin^3)",             "team",     "team",     "team",
        "p",     "^3(^4Server Admin^3)",             "team",     "team",     "team",
        "o",     "^3(^4Test Admin^3)",             "team",     "team",     "team",
        "r",     "^3(^4SMS Admin^3)",             "team",     "team",     "team",
        "i",     "^3(^4VIP^1)",             "team",     "team",     "team"


}  

new const g_szSeparator[] = " ^1:"
new const g_szDeathPrefix[][] = { "^3*^4DEAD^3* ", "" }
new const g_szColors[][] = { "^1", "^3", "^4" }
new g_szAdminPrefix[33][32]

new const g_szTeamPrefix[][] = {
	"",
	"^1(Terrorist)",
	"^1(Counter-Terrorist)",
	"^1(Spectator)"
}

public plugin_init()
{
	register_plugin("iPlay: Chat Manager", PLUGIN_VERSION, "(OciXCrom)")
	register_cvar("CRXChatManager", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	register_clcmd("say", "hookSay")
	register_clcmd("say_team", "hookSay")
}

public plugin_natives()
	register_native("GetPlayerPrefix", "_GetPlayerPrefix")
	
public _GetPlayerPrefix(iPlugin, iParams)
{
	new id = get_param(1)
	set_string(2, g_szAdminPrefix[id], get_param(3))
	return 1
}

public client_putinserver(id)
	g_szAdminPrefix[id][0] = EOS

public hookSay(id)
{
	new szArgs[192]
	read_args(szArgs, charsmax(szArgs))
	remove_quotes(szArgs)
	
	switch(szArgs[0])
	{
		case EOS, '@': return PLUGIN_HANDLED
	}
	
	new szMessage[192], szName[32], szDeathPrefix[32], szTeamPrefix[32], szAdminPrefix[32], szCommand[5], szNameColor[3], szChatColor[3]
	new iAlive = is_user_alive(id) ? 1 : 0, iPrefix = get_prefixnum(id), iColor = get_secondcolor(g_szAdminPrefixes[iPrefix + INFO_CLRSCND]), iTeam = get_user_team(id)
	copy(szDeathPrefix, charsmax(szDeathPrefix), g_szDeathPrefix[iAlive])
	copy(szAdminPrefix, charsmax(szAdminPrefix), g_szAdminPrefixes[iPrefix + INFO_PREFIX])
	if(!is_blank(szAdminPrefix)) add(szAdminPrefix, charsmax(szAdminPrefix), " ")
	copy(g_szAdminPrefix[id], charsmax(g_szAdminPrefix[]), szAdminPrefix)
	get_color(g_szAdminPrefixes[iPrefix + INFO_CLRNAME], szNameColor)
	get_color(g_szAdminPrefixes[iPrefix + INFO_CLRCHAT], szChatColor)
	read_argv(0, szCommand, charsmax(szCommand))
	get_user_name(id, szName, charsmax(szName))
	
	new bool:blTeam = szCommand[3] == '_' ? true : false
	if(blTeam) formatex(szTeamPrefix, charsmax(szTeamPrefix), "%s ", g_szTeamPrefix[iTeam])
	formatex(szMessage, charsmax(szMessage), "%s%s%s%s%s%s %s%s", szDeathPrefix, szTeamPrefix, szAdminPrefix, szNameColor, szName, g_szSeparator, szChatColor, szArgs)
	
	new iPlayers[32], iPlayer, iPlayerAlive, iPnum
	get_players(iPlayers, iPnum)
	
	for(new i; i < iPnum; i++)
	{
		iPlayer = iPlayers[i]
		iPlayerAlive = is_user_alive(iPlayer) ? 1 : 0
		
		if(iAlive == iPlayerAlive || (blTeam && iTeam == get_user_team(iPlayer)) || has_user_listen(iPlayer))
		{
			switch(iColor)
			{
				case 0:
				{
					switch(iTeam)
					{
						case 1: ColorChat(iPlayer, RED, szMessage)
						case 2: ColorChat(iPlayer, BLUE, szMessage)
						case 3: ColorChat(iPlayer, GREY, szMessage)
					}
				}
				case 1: ColorChat(iPlayer, RED, szMessage)
				case 2: ColorChat(iPlayer, BLUE, szMessage)
				case 3: ColorChat(iPlayer, GREY, szMessage)
			}
		}
	}
	
	logChatMessage(szMessage)
	return PLUGIN_HANDLED
}

logChatMessage(szMessage[192])
{
	for(new i; i < sizeof(g_szColors); i++)
		replace_all(szMessage, charsmax(szMessage), g_szColors[i], "")
	
	log_amx(szMessage)
}

get_prefixnum(id)
{    
	#if defined USE_JAILBREAK
		if(is_user_simon(id))
			return PREFIX_SIMON
	#endif
	
	new iPrefix
	static iFlags
	iFlags = get_user_flags(id)
	
	for(new i; i < sizeof(g_szAdminPrefixes) - 4; i += 5)
	{
		if(iFlags & read_flags(g_szAdminPrefixes[i]))
		{
			iPrefix = i
			break
		}
	}
	
	return iPrefix
}
	
get_color(szString[], szColor[3])
{
	new iColor
	
	switch(szString[0])
	{
		case 't', 's': iColor = 1
		case 'g': iColor = 2
	}
	
	copy(szColor, charsmax(szColor), g_szColors[iColor])
}

get_secondcolor(szString[])
{
	new iColor
	
	switch(szString[0])
	{
		case 'r': iColor = 1
		case 'b': iColor = 2
		case 'g': iColor = 3
	}
	
	return iColor
}

bool:is_blank(szString[])
	return szString[0] == EOS ? true : false
	
bool:has_user_listen(id)
	return get_user_flags(id) & read_flags(ADMIN_LISTEN) ? true : false
Помогнете с префикса командите в чата с "/" да се скриват ако може :) ( /rank /stats etc)
DARKNESS-CS

Order MOD

The GODs here OciXCrom & WaLkZ !
Special thanks to them for the good work!

Аватар
Goddness
Извън линия
Потребител
Потребител
Мнения: 1812
Регистриран на: 20 Май 2017, 11:47
Местоположение: Някъде по света
Се отблагодари: 141 пъти
Получена благодарност: 187 пъти
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от Goddness » 23 Май 2017, 21:10

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <colorchat>

#define PLUGIN_VERSION "2.2"
//#define USE_JAILBREAK

#if defined USE_JAILBREAK
    #define PREFIX_SIMON 5
    native is_user_simon(id)
#endif

enum
{
    INFO_PREFIX = 1,
    INFO_CLRNAME,
    INFO_CLRCHAT,
    INFO_CLRSCND
}

#define ADMIN_LISTEN "m"

new const g_szAdminPrefixes[][] = {
/*
    --------------
    Флаг     Префикс                 Цвят (ник)     Цвят (чат)     Цвят (second) */
    "",     "",                        "team",     "normal",     "team",
    "l",     "^1[^4OWNER^1]",             "team",     "green",     "team",
    "o",     "^1[^4Test Admin^1]",             "team",     "green",     "team",
    "r",     "^1[^4Server Admin^1]",             "team",     "green",     "team",
    "d",     "^1[^4Ban-Team^1]",             "team",     "green",     "team",
    "b",     "^1[^4V.I.P^1]",             "team",     "green",     "team",
    "q",     "^1[^4SMS Admin^1]",             "team",     "green",     "team",
    "n",     "^1[^4CO-OWNER^1]",             "team",     "green",     "team",
    "p",     "^1[^4VIP+^1]",             "team",     "green",     "team",
    "s",     "^1[^4Server Otgovornik^1]",             "team",     "green",     "team"
}

new const g_szSeparator[] = " ^1:"
new const g_szDeathPrefix[][] = { "^1*^4MURTUV^1* ", "" }
new const g_szColors[][] = { "^1", "^3", "^4" }
new g_szAdminPrefix[33][32]

new const g_szTeamPrefix[][] = {
    "",
    "^1(^3Terrorist^1)",
    "^1(^3Counter-Terrorist^1)",
    "^1(^3Spectator^1)"
}

public plugin_init()
{
    register_plugin("Chat Manager", PLUGIN_VERSION, "OciXCrom")
    register_cvar("CRXChatManager", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
    register_clcmd("say", "hookSay")
    register_clcmd("say_team", "hookSay")
}

public plugin_natives()
    register_native("GetPlayerPrefix", "_GetPlayerPrefix")
    
public _GetPlayerPrefix(iPlugin, iParams)
{
    new id = get_param(1)
    set_string(2, g_szAdminPrefix[id], get_param(3))
    return 1
}

public client_putinserver(id)
    g_szAdminPrefix[id][0] = EOS

public hookSay(id)
{
    new szArgs[192]
    read_args(szArgs, charsmax(szArgs))
    remove_quotes(szArgs)
    
    switch(szArgs[0])
    {
        case EOS, '@', '/': return PLUGIN_HANDLED
    }
    
    new szMessage[192], szName[32], szDeathPrefix[32], szTeamPrefix[32], szAdminPrefix[32], szCommand[5], szNameColor[3], szChatColor[3]
    new iAlive = is_user_alive(id) ? 1 : 0, iPrefix = get_prefixnum(id), iColor = get_secondcolor(g_szAdminPrefixes[iPrefix + INFO_CLRSCND]), iTeam = get_user_team(id)
    copy(szDeathPrefix, charsmax(szDeathPrefix), g_szDeathPrefix[iAlive])
    copy(szAdminPrefix, charsmax(szAdminPrefix), g_szAdminPrefixes[iPrefix + INFO_PREFIX])
    if(!is_blank(szAdminPrefix)) add(szAdminPrefix, charsmax(szAdminPrefix), " ")
    copy(g_szAdminPrefix[id], charsmax(g_szAdminPrefix[]), szAdminPrefix)
    get_color(g_szAdminPrefixes[iPrefix + INFO_CLRNAME], szNameColor)
    get_color(g_szAdminPrefixes[iPrefix + INFO_CLRCHAT], szChatColor)
    read_argv(0, szCommand, charsmax(szCommand))
    get_user_name(id, szName, charsmax(szName))
    
    new bool:blTeam = szCommand[3] == '_' ? true : false
    if(blTeam) formatex(szTeamPrefix, charsmax(szTeamPrefix), "%s ", g_szTeamPrefix[iTeam])
    formatex(szMessage, charsmax(szMessage), "%s%s%s%s%s%s %s%s", szDeathPrefix, szTeamPrefix, szAdminPrefix, szNameColor, szName, g_szSeparator, szChatColor, szArgs)
    
    new iPlayers[32], iPlayer, iPlayerAlive, iPnum
    get_players(iPlayers, iPnum)
    
    for(new i; i < iPnum; i++)
    {
        iPlayer = iPlayers[i]
        iPlayerAlive = is_user_alive(iPlayer) ? 1 : 0
        
        if(iAlive == iPlayerAlive || (blTeam && iTeam == get_user_team(iPlayer)) || has_user_listen(iPlayer))
        {
            switch(iColor)
            {
                case 0:
                {
                    switch(iTeam)
                    {
                        case 1: ColorChat(iPlayer, RED, szMessage)
                        case 2: ColorChat(iPlayer, BLUE, szMessage)
                        case 3: ColorChat(iPlayer, GREY, szMessage)
                    }
                }
                case 1: ColorChat(iPlayer, RED, szMessage)
                case 2: ColorChat(iPlayer, BLUE, szMessage)
                case 3: ColorChat(iPlayer, GREY, szMessage)
            }
        }
    }
    
    logChatMessage(szMessage)
    return PLUGIN_HANDLED
}

logChatMessage(szMessage[192])
{
    for(new i; i < sizeof(g_szColors); i++)
        replace_all(szMessage, charsmax(szMessage), g_szColors[i], "")
    
    log_amx(szMessage)
}

get_prefixnum(id)
{    
    #if defined USE_JAILBREAK
        if(is_user_simon(id))
            return PREFIX_SIMON
    #endif
    
    new iPrefix
    static iFlags
    iFlags = get_user_flags(id)
    
    for(new i; i < sizeof(g_szAdminPrefixes) - 4; i += 5)
    {
        if(iFlags & read_flags(g_szAdminPrefixes[i]))
        {
            iPrefix = i
            break
        }
    }
    
    return iPrefix
}
    
get_color(szString[], szColor[3])
{
    new iColor
    
    switch(szString[0])
    {
        case 't', 's': iColor = 1
        case 'g': iColor = 2
    }
    
    copy(szColor, charsmax(szColor), g_szColors[iColor])
}

get_secondcolor(szString[])
{
    new iColor
    
    switch(szString[0])
    {
        case 'r': iColor = 1
        case 'b': iColor = 2
        case 'g': iColor = 3
    }
    
    return iColor
}

bool:is_blank(szString[])
    return szString[0] == EOS ? true : false
    
bool:has_user_listen(id)
    return get_user_flags(id) & read_flags(ADMIN_LISTEN) ? true : false
По същия начин само смени префиксите с които искаш.

Аватар
SorryMateYoureDead
Извън линия
Потребител
Потребител
Мнения: 203
Регистриран на: 21 Май 2017, 17:40
Местоположение: Sliven
Се отблагодари: 3 пъти
Получена благодарност: 1 път
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от SorryMateYoureDead » 23 Май 2017, 21:38

Код за потвърждение: Избери целия код

switch(szArgs[0])
    {
        case EOS, '@', '/': return PLUGIN_HANDLED
    }
Тук ли е промяната
DARKNESS-CS

Order MOD

The GODs here OciXCrom & WaLkZ !
Special thanks to them for the good work!

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от OciXCrom » 23 Май 2017, 21:41

SorryMateYoureDead написа:

Код за потвърждение: Избери целия код

switch(szArgs[0])
    {
        case EOS, '@', '/': return PLUGIN_HANDLED
    }
Тук ли е промяната
Превод: ако съобщението започва с нищо (EOS), @ или / -- да не се показва.
Да, само там е промяната.

Аватар
SorryMateYoureDead
Извън линия
Потребител
Потребител
Мнения: 203
Регистриран на: 21 Май 2017, 17:40
Местоположение: Sliven
Се отблагодари: 3 пъти
Получена благодарност: 1 път
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от SorryMateYoureDead » 23 Май 2017, 21:44

Благодаря ви много , особенно на OciXCrom!
Стана какта трябва :)
DARKNESS-CS

Order MOD

The GODs here OciXCrom & WaLkZ !
Special thanks to them for the good work!

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от OciXCrom » 23 Май 2017, 21:45

Скоро ще направя плъгин с конфигурационнен файл и изцяло ще премахна тази тема, тъй като е напълно излишно да изпълнявам заявки, които и сами можете да си направите.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Заявки за Admin Prefix/Admin Color Chat/Simon Color Chat+Admin Prefix

Мнение от OciXCrom » 27 Май 2017, 21:27

Темата се заключва. Ползвайте този плъгин - https://amxx-bg.info/forum/viewtopic.php?f=21&p=9234

Заключено

Обратно към “История”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 гост