Заявка за плъгин - Player

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Action/A/
Извън линия
Баннат
Баннат
Мнения: 19
Регистриран на: 11 Дек 2018, 00:26

Заявка за плъгин - Player

Мнение от Action/A/ » 14 Дек 2018, 12:29

Alexandrow написа: 14 Дек 2018, 01:17 Опитай така

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

#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",     "^4[Server Owner]",             "second",     "green",     "team",
	"n",     "^4[Global Admin]",             "second",     "green",     "team",
	"p",     "^4[Server Admin]",             "second",     "green",     "team",
	"o",     "^4[Test Admin]",             "second",     "green",     "team",
	"r",     "^4[Super Player]",             "second",     "green",     "team",
	"z",     "^4[Player]",             "second",     "normal",     "team"
}

new const g_szSeparator[] = " ^1:"
new const g_szDeathPrefix[][] = { "*DEAD* ", "" }
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, "iPlay.bg (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
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1251\\ deff0\\ deflang1026{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/
Работи, но сега не се показва другия префикс [Super Player]...
Причина за бан: създаване нов акаунт след наложен бан.
Предишен акаунт: BornToPorn

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

Заявка за плъгин - Player

Мнение от OciXCrom » 14 Дек 2018, 14:30

Защо ползваш стара версия на същия плъгин който ти предложиха в първото мнение?! Какъв е проблемът с новата версия, че не я ползваш?!

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

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