Заявка за съединяване на OCIXCROM CHATMANAGER & RANK SYSTEM

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Drea<M>40BG ;]]
Извън линия
Потребител
Потребител
Мнения: 750
Регистриран на: 11 Окт 2016, 11:35
Се отблагодари: 115 пъти
Получена благодарност: 63 пъти
Обратна връзка:

Заявка за съединяване на OCIXCROM CHATMANAGER & RANK SYSTEM

Мнение от Drea<M>40BG ;]] » 21 Яну 2018, 16:53

Здравейте, ако може да ми съедините тези два плъгина, обаче от Ранк Системата да махнете префиксите за админи, защото ползвам на OcixCrom chatmanager и не само тези по флаг, а и по ник и ако има 2 такива плъгина, най-вероятно ще се прецака нещо.
1. Този

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

#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <cstrike>

#define PLUGIN_VERSION "3.6.5"
#define DELAY_ON_REGISTER 1.0
#define DELAY_ON_CONNECT 1.0
#define DELAY_ON_CHANGE 0.1
#define PLACEHOLDER_LENGTH 64

/* 	You can comment placeholders you don't need from the lines below and that will completely deactivate them.
	You can also activate the additional ones if you want to use them.
	Feel free to experiment in making your custom ones as well. */
	
#define ARG_ADMIN_PREFIX 		"%admin_prefix%"
#define ARG_DEAD_PREFIX 		"%dead_prefix%"
#define ARG_TEAM 				"%team%"
#define ARG_NAME 				"%name%"
#define ARG_IP 					"%ip%"
#define ARG_STEAM 				"%steam%"
#define ARG_USERID 				"%userid%"
#define ARG_CHAT_COLOR 			"%chat_color%"
#define ARG_MESSAGE 			"%message%"
#define ARG_TIME 				"%time%"
//#define ARG_HEALTH 			"%health%"
//#define ARG_ARMOR 			"%armor%"
//#define ARG_FRAGS 			"%frags%"
//#define ARG_DEATHS 			"%deaths%"
//#define ARG_CITY 				"%city%"
//#define ARG_COUNTRY 			"%country%"
//#define ARG_COUNTRY_CODE 		"%country_code%"
//#define ARG_CONTINENT 		"%continent%"
//#define ARG_CONTINENT_CODE 	"%continent_code%"

/*	The settings end here. Don't modify anything below this if you don't know what you're doing. */

#if defined ARG_CITY || defined ARG_COUNTRY || defined ARG_COUNTRY_CODE || defined ARG_CONTINENT || defined ARG_CONTINENT_CODE
	#include <geoip>
#endif

enum
{
	SECTION_NONE,
	SECTION_SETTINGS,
	SECTION_ADMIN_PREFIXES,
	SECTION_CHAT_COLORS,
	SECTION_NAME_IP_STEAM
}

enum _:Settings
{
	ADMIN_LISTEN_FLAGS[32],
	DEAD_PREFIX[32],
	ALIVE_PREFIX[32],
	TEAM_PREFIX_T[32],
	TEAM_PREFIX_CT[32],
	TEAM_PREFIX_SPEC[32],
	ERROR_TEXT[32],
	FORMAT_TIME[64],
	FORMAT_SAY[160],
	FORMAT_SAY_TEAM[160],
	bool:ALL_CHAT
}

enum _:PlayerData
{
	PDATA_NAME[32],
	PDATA_NAME_LOWER[32],
	PDATA_IP[16],
	PDATA_STEAM[35],
	PDATA_USERID[10],
	PDATA_PREFIX[32],
	PDATA_CHAT_COLOR[6],
	bool:PDATA_ADMIN_LISTEN
}

new g_eSettings[Settings],
	g_ePlayerData[33][PlayerData],
	Array:g_aAdminFlags,
	Array:g_aAdminPrefixes,
	Array:g_aChatColors,
	Array:g_aChatColorsFlags,
	Trie:g_tName,
	Trie:g_tIP,
	Trie:g_tSteam,
	Trie:g_tBlockFirst,
	g_iAdminPrefixes,
	g_iChatColors

public plugin_init()
{
	register_plugin("Chat Manager", PLUGIN_VERSION, "OciXCrom")
	register_cvar("CRXChatManager", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	set_task(DELAY_ON_REGISTER, "RegisterCommands")
	g_aAdminFlags = ArrayCreate(32)
	g_aAdminPrefixes = ArrayCreate(32)
	g_aChatColors = ArrayCreate(6)
	g_aChatColorsFlags = ArrayCreate(32)
	g_tBlockFirst = TrieCreate()
	g_tName = TrieCreate()
	g_tIP = TrieCreate()
	g_tSteam = TrieCreate()
	ReadFile()
}

public plugin_end()
{
	ArrayDestroy(g_aAdminFlags)
	ArrayDestroy(g_aAdminPrefixes)
	ArrayDestroy(g_aChatColors)
	ArrayDestroy(g_aChatColorsFlags)
	TrieDestroy(g_tBlockFirst)
	TrieDestroy(g_tName)
	TrieDestroy(g_tIP)
	TrieDestroy(g_tSteam)
}

public RegisterCommands()
{
	register_clcmd("say", "Hook_Say")
	register_clcmd("say_team", "Hook_Say")
}

public client_putinserver(id)
{
	get_user_name(id, g_ePlayerData[id][PDATA_NAME], charsmax(g_ePlayerData[][PDATA_NAME]))
	copy(g_ePlayerData[id][PDATA_NAME_LOWER], charsmax(g_ePlayerData[][PDATA_NAME_LOWER]), g_ePlayerData[id][PDATA_NAME])
	strtolower(g_ePlayerData[id][PDATA_NAME_LOWER])
	get_user_ip(id, g_ePlayerData[id][PDATA_IP], charsmax(g_ePlayerData[][PDATA_IP]), 1)
	get_user_authid(id, g_ePlayerData[id][PDATA_STEAM], charsmax(g_ePlayerData[][PDATA_STEAM]))
	num_to_str(get_user_userid(id), g_ePlayerData[id][PDATA_USERID], charsmax(g_ePlayerData[][PDATA_USERID]))
	set_task(DELAY_ON_CONNECT, "UpdateData", id)
}
	
public client_infochanged(id)
{
	if(!is_user_connected(id))
		return
		
	static szNewName[32]
	get_user_info(id, "name", szNewName, charsmax(szNewName))
	
	if(!equal(szNewName, g_ePlayerData[id][PDATA_NAME]))
	{
		copy(g_ePlayerData[id][PDATA_NAME], charsmax(g_ePlayerData[][PDATA_NAME]), szNewName)
		copy(g_ePlayerData[id][PDATA_NAME_LOWER], charsmax(g_ePlayerData[][PDATA_NAME_LOWER]), szNewName)
		strtolower(g_ePlayerData[id][PDATA_NAME_LOWER])
		set_task(DELAY_ON_CHANGE, "UpdateData", id)
	}
}
	
public UpdateData(id)
{
	if(g_iChatColors)
	{
		g_ePlayerData[id][PDATA_CHAT_COLOR][0] = EOS
		
		for(new szFlags[32], i; i < g_iChatColors; i++)
		{
			ArrayGetString(g_aChatColorsFlags, i, szFlags, charsmax(szFlags))
			
			if(has_all_flags(id, szFlags))
			{
				ArrayGetString(g_aChatColors, i, g_ePlayerData[id][PDATA_CHAT_COLOR], charsmax(g_ePlayerData[][PDATA_CHAT_COLOR]))
				break
			}
		}
	}
	
	if(g_eSettings[ADMIN_LISTEN_FLAGS][0])
		g_ePlayerData[id][PDATA_ADMIN_LISTEN] = bool:has_all_flags(id, g_eSettings[ADMIN_LISTEN_FLAGS])
		
	g_ePlayerData[id][PDATA_PREFIX][0] = EOS
		
	if(TrieKeyExists(g_tSteam, g_ePlayerData[id][PDATA_STEAM]))
		TrieGetString(g_tSteam, g_ePlayerData[id][PDATA_STEAM], g_ePlayerData[id][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
	else if(TrieKeyExists(g_tIP, g_ePlayerData[id][PDATA_IP]))
		TrieGetString(g_tIP, g_ePlayerData[id][PDATA_IP], g_ePlayerData[id][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
	else if(TrieKeyExists(g_tName, g_ePlayerData[id][PDATA_NAME_LOWER]))
		TrieGetString(g_tName, g_ePlayerData[id][PDATA_NAME_LOWER], g_ePlayerData[id][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
	else if(g_iAdminPrefixes)
	{
		for(new szFlags[32], i; i < g_iAdminPrefixes; i++)
		{
			ArrayGetString(g_aAdminFlags, i, szFlags, charsmax(szFlags))
			
			if(has_all_flags(id, szFlags))
			{
				ArrayGetString(g_aAdminPrefixes, i, g_ePlayerData[id][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
				break
			}
		}
	}
}

public Hook_Say(id)
{
	if(!is_user_connected(id))
		return PLUGIN_HANDLED
		
	new szArgs[192]
	read_args(szArgs, charsmax(szArgs)); remove_quotes(szArgs)
	CC_RemoveColors(szArgs, charsmax(szArgs))
	
	new szFirstChar[2]
	szFirstChar[0] = szArgs[0]
	
	if(!szArgs[0] || TrieKeyExists(g_tBlockFirst, szFirstChar))
		return PLUGIN_HANDLED
		
	new szCommand[5]
	read_argv(0, szCommand, charsmax(szCommand))
	
	new szMessage[192], iPlayers[32], iPnum, bool:bTeam = szCommand[3] == '_', iAlive = is_user_alive(id), CsTeams:iTeam = cs_get_user_team(id)
	format_chat_message(bTeam, id, iAlive, iTeam, szArgs, szMessage, charsmax(szMessage))
	get_players(iPlayers, iPnum, "ch")
	
	for(new i, iPlayer; i < iPnum; i++)
	{
		iPlayer = iPlayers[i]
		
		if(g_ePlayerData[iPlayer][PDATA_ADMIN_LISTEN] || (bTeam && iTeam == cs_get_user_team(iPlayer) && iAlive == is_user_alive(iPlayer)) || (!bTeam && (g_eSettings[ALL_CHAT] || iAlive == is_user_alive(iPlayer))))
			CC_SendMatched(iPlayer, id, szMessage)
	}
	
	return PLUGIN_HANDLED
}

ReadFile()
{
	new szConfigsName[256], szFilename[256]
	get_configsdir(szConfigsName, charsmax(szConfigsName))
	formatex(szFilename, charsmax(szFilename), "%s/ChatManager.ini", szConfigsName)
	
	new iFilePointer = fopen(szFilename, "rt")
	
	if(iFilePointer)
	{
		new szData[192], szValue[160], szKey[32], szInfo[32], szPrefix[32], iSection = SECTION_NONE, iSize
		
		while(!feof(iFilePointer))
		{
			fgets(iFilePointer, szData, charsmax(szData))
			trim(szData)
			
			switch(szData[0])
			{
				case EOS, ';': continue
				case '[':
				{
					iSize = strlen(szData)
					
					if(szData[iSize - 1] == ']')
					{
						switch(szData[1])
						{
							case 'S', 's': iSection = SECTION_SETTINGS
							case 'A', 'a': iSection = SECTION_ADMIN_PREFIXES
							case 'C', 'c': iSection = SECTION_CHAT_COLORS
							case 'N', 'n': iSection = SECTION_NAME_IP_STEAM
							default: iSection = SECTION_NONE
						}
					}
					else continue
				}
				default:
				{
					if(iSection == SECTION_NONE)
						continue
						
					switch(iSection)
					{
						case SECTION_SETTINGS:
						{
							strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
							trim(szKey); trim(szValue)
									
							if(!szValue[0])
								continue
								
							if(equal(szKey, "ADMIN_LISTEN_FLAGS"))
								copy(g_eSettings[ADMIN_LISTEN_FLAGS], charsmax(g_eSettings[ADMIN_LISTEN_FLAGS]), szValue)
							else if(equal(szKey, "BLOCK_FIRST_SYMBOLS"))
							{
								while(szValue[0] != 0 && strtok(szValue, szKey, charsmax(szKey), szValue, charsmax(szValue), ','))
								{
									trim(szKey); trim(szValue)
									TrieSetCell(g_tBlockFirst, szKey, 1)
								}
							}
							else if(equal(szKey, "DEAD_PREFIX"))
								copy(g_eSettings[DEAD_PREFIX], charsmax(g_eSettings[DEAD_PREFIX]), szValue)
							else if(equal(szKey, "ALIVE_PREFIX"))
								copy(g_eSettings[ALIVE_PREFIX], charsmax(g_eSettings[ALIVE_PREFIX]), szValue)
							else if(equal(szKey, "TEAM_PREFIX_T"))
								copy(g_eSettings[TEAM_PREFIX_T], charsmax(g_eSettings[TEAM_PREFIX_T]), szValue)
							else if(equal(szKey, "TEAM_PREFIX_CT"))
								copy(g_eSettings[TEAM_PREFIX_CT], charsmax(g_eSettings[TEAM_PREFIX_CT]), szValue)
							else if(equal(szKey, "TEAM_PREFIX_SPEC"))
								copy(g_eSettings[TEAM_PREFIX_SPEC], charsmax(g_eSettings[TEAM_PREFIX_SPEC]), szValue)
							else if(equal(szKey, "ERROR_TEXT"))
								copy(g_eSettings[ERROR_TEXT], charsmax(g_eSettings[ERROR_TEXT]), szValue)
							else if(equal(szKey, "FORMAT_TIME"))
								copy(g_eSettings[FORMAT_TIME], charsmax(g_eSettings[FORMAT_TIME]), szValue)
							else if(equal(szKey, "FORMAT_SAY"))
								copy(g_eSettings[FORMAT_SAY], charsmax(g_eSettings[FORMAT_SAY]), szValue)
							else if(equal(szKey, "FORMAT_SAY_TEAM"))
								copy(g_eSettings[FORMAT_SAY_TEAM], charsmax(g_eSettings[FORMAT_SAY_TEAM]), szValue)
							else if(equal(szKey, "ALL_CHAT"))
								g_eSettings[ALL_CHAT] = _:clamp(str_to_num(szValue), false, true)
						}
						case SECTION_ADMIN_PREFIXES:
						{
							strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
							trim(szKey); trim(szValue)
									
							if(!szValue[0])
								continue
								
							ArrayPushString(g_aAdminFlags, szKey)
							ArrayPushString(g_aAdminPrefixes, szValue)
							g_iAdminPrefixes++
						}
						case SECTION_CHAT_COLORS:
						{
							strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
							trim(szKey); trim(szValue)
									
							if(!szValue[0])
								continue
								
							ArrayPushString(g_aChatColorsFlags, szKey)
							ArrayPushString(g_aChatColors, szValue)
							g_iChatColors++
						}
						case SECTION_NAME_IP_STEAM:
						{
							parse(szData, szKey, charsmax(szKey), szInfo, charsmax(szInfo), szPrefix, charsmax(szPrefix))
							{
								switch(szKey[0])
								{
									case 'N', 'n': { strtolower(szInfo); TrieSetString(g_tName, szInfo, szPrefix); }
									case 'I', 'i': TrieSetString(g_tIP, szInfo, szPrefix)
									case 'S', 's': TrieSetString(g_tSteam, szInfo, szPrefix)
								}
							}
						}
					}
				}
			}
		}
		
		fclose(iFilePointer)
	}
}

format_chat_message(const bool:bTeam, const id, const iAlive, const CsTeams:iTeam, const szArgs[], szMessage[], const iLen)
{
	static szPlaceHolder[PLACEHOLDER_LENGTH]
	copy(szMessage, iLen, g_eSettings[bTeam ? FORMAT_SAY_TEAM : FORMAT_SAY])
	
	#if defined ARG_ADMIN_PREFIX
	replace_all(szMessage, iLen, ARG_ADMIN_PREFIX, g_ePlayerData[id][PDATA_PREFIX])
	#endif
	
	#if defined ARG_DEAD_PREFIX
	replace_all(szMessage, iLen, ARG_DEAD_PREFIX, g_eSettings[iAlive ? ALIVE_PREFIX : DEAD_PREFIX])
	#endif
	
	#if defined ARG_TEAM
	replace_all(szMessage, iLen, ARG_TEAM, g_eSettings[iTeam == CS_TEAM_CT ? TEAM_PREFIX_CT : iTeam == CS_TEAM_T ? TEAM_PREFIX_T : TEAM_PREFIX_SPEC])
	#endif
	
	#if defined ARG_NAME
	replace_all(szMessage, iLen, ARG_NAME, g_ePlayerData[id][PDATA_NAME])
	#endif
	
	#if defined ARG_IP
	replace_all(szMessage, iLen, ARG_IP, g_ePlayerData[id][PDATA_IP])
	#endif
	
	#if defined ARG_STEAM
	replace_all(szMessage, iLen, ARG_STEAM, g_ePlayerData[id][PDATA_STEAM])
	#endif
	
	#if defined ARG_USERID
	replace_all(szMessage, iLen, ARG_USERID, g_ePlayerData[id][PDATA_USERID])
	#endif
	
	#if defined ARG_CHAT_COLOR
	replace_all(szMessage, iLen, ARG_CHAT_COLOR, g_ePlayerData[id][PDATA_CHAT_COLOR])
	#endif
	
	#if defined ARG_MESSAGE
	replace_all(szMessage, iLen, ARG_MESSAGE, szArgs)	
	#endif
	
	#if defined ARG_TIME
	if(has_argument(szMessage, ARG_TIME))
	{
		get_time(g_eSettings[FORMAT_TIME], szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_TIME, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_HEALTH
	if(has_argument(szMessage, ARG_HEALTH))
	{
		num_to_str(iAlive ? get_user_health(id) : 0, szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_HEALTH, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_ARMOR
	if(has_argument(szMessage, ARG_ARMOR))
	{
		num_to_str(iAlive ? get_user_armor(id) : 0, szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_ARMOR, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_FRAGS
	if(has_argument(szMessage, ARG_FRAGS))
	{
		num_to_str(get_user_frags(id), szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_FRAGS, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_DEATHS
	if(has_argument(szMessage, ARG_DEATHS))
	{
		num_to_str(cs_get_user_deaths(id), szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_DEATHS, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_CITY
	if(has_argument(szMessage, ARG_CITY))
	{
		geoip_city(g_ePlayerData[id][PDATA_IP], szPlaceHolder, charsmax(szPlaceHolder))
		check_validity(szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_CITY, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_COUNTRY
	if(has_argument(szMessage, ARG_COUNTRY))
	{
		#if defined geoip_country_ex
		geoip_country_ex(g_ePlayerData[id][PDATA_IP], szPlaceHolder, charsmax(szPlaceHolder))
		#else
		geoip_country(g_ePlayerData[id][PDATA_IP], szPlaceHolder, charsmax(szPlaceHolder))
		#endif
		
		check_validity(szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_COUNTRY, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_COUNTRY_CODE
	if(has_argument(szMessage, ARG_COUNTRY_CODE))
	{
		new szCountryCode[3]
		
		#if defined geoip_code2_ex
		geoip_code2_ex(g_ePlayerData[id][PDATA_IP], szCountryCode)
		#else
		geoip_code2(g_ePlayerData[id][PDATA_IP], szCountryCode)
		#endif
		
		check_validity(szCountryCode, charsmax(szCountryCode))
		replace_all(szMessage, iLen, ARG_COUNTRY_CODE, szCountryCode)
	}
	#endif
	
	#if defined ARG_CONTINENT
	if(has_argument(szMessage, ARG_CONTINENT))
	{
		geoip_continent_name(g_ePlayerData[id][PDATA_IP], szPlaceHolder, charsmax(szPlaceHolder))
		check_validity(szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_CONTINENT, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_CONTINENT_CODE
	if(has_argument(szMessage, ARG_CONTINENT_CODE))
	{
		new szContinentCode[3]
		geoip_continent_code(g_ePlayerData[id][PDATA_IP], szContinentCode)
		check_validity(szContinentCode, charsmax(szContinentCode))
		replace_all(szMessage, iLen, ARG_CONTINENT_CODE, szContinentCode)
	}
	#endif
	
	replace_all(szMessage, iLen, "  ", "")
	trim(szMessage)
}

stock bool:has_argument(const szMessage[], const szArgument[])
	return contain(szMessage, szArgument) != -1

stock check_validity(szText[], const iLen)
{
	if(!szText[0])
		copy(szText, iLen, g_eSettings[ERROR_TEXT])
}

public plugin_natives()
{
	register_library("chatmanager")
	register_native("cm_get_admin_listen_flags", "_cm_get_admin_listen_flags")
	register_native("cm_get_admin_prefix", "_cm_get_admin_prefix")
	register_native("cm_get_chat_color", "_cm_get_chat_color")
	register_native("cm_get_chat_color_by_num", "_cm_get_chat_color_by_num")
	register_native("cm_get_prefix_by_num", "_cm_get_prefix_by_num")
	register_native("cm_has_user_admin_listen", "_cm_has_user_admin_listen")
	register_native("cm_total_chat_colors", "_cm_total_chat_colors")
	register_native("cm_total_prefixes", "_cm_total_chat_colors")
	register_native("cm_update_player_data", "_cm_update_player_data")
	register_native("cm_set_user_prefix", "_cm_set_user_prefix")
}

public _cm_get_admin_prefix(iPlugin, iParams)
	set_string(2, g_ePlayerData[get_param(1)][PDATA_PREFIX], get_param(3))
	
public _cm_get_chat_color(iPlugin, iParams)
	set_string(2, g_ePlayerData[get_param(1)][PDATA_CHAT_COLOR], get_param(3))
	
public _cm_total_prefixes(iPlugin, iParams)
	return g_iAdminPrefixes

public _cm_total_chat_colors(iPlugin, iParams)
	return g_iChatColors
	
public _cm_get_prefix_by_num(iPlugin, iParams)
{
	new iNum = get_param(1)
	
	if(iNum < 0 || iNum >= g_iAdminPrefixes)
		return 0
	
	new szPrefix[32]
	ArrayGetString(g_aAdminPrefixes, iNum, szPrefix, charsmax(szPrefix))
	set_string(2, szPrefix, get_param(3))
	return 1
}

public _cm_get_chat_color_by_num(iPlugin, iParams)
{
	new iNum = get_param(1)
	
	if(iNum < 0 || iNum >= g_iChatColors)
		return 0
	
	new szColor[32]
	ArrayGetString(g_aChatColors, iNum, szColor, charsmax(szColor))
	set_string(2, szColor, get_param(3))
	return 1
}

public _cm_get_admin_listen_flags(iPlugin, iParams)
	set_string(1, g_eSettings[ADMIN_LISTEN_FLAGS], get_param(2))
	
public bool:_cm_has_user_admin_listen(iPlugin, iParams)
	return g_ePlayerData[get_param(1)][PDATA_ADMIN_LISTEN]
	
public _cm_update_player_data(iPlugin, iParams)
	UpdateData(get_param(1))

public _cm_set_user_prefix(iPlugin, iParams)
	get_string(2, g_ePlayerData[get_param(1)][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
2. И този

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

#include             <amxmodx>
#include             <amxmisc>
#include             <cstrike>
#include             <fvault>
#include             <colorchat>
#include             <fakemeta>
#include            <fakemeta_util>
#include             <fun>
#include             <hamsandwich>

#define ADMIN_ONE        ADMIN_LEVEL_A  //Glaven Admin префикс "m"
#define ADMIN_TWO        ADMIN_LEVEL_B  //Server Admin префикс "n"
#define ADMIN_THREE        ADMIN_LEVEL_C  //Girl Admin префикс "o"
#define ADMIN_FOUR        ADMIN_LEVEL_D  //Help Admin префикс "p"
#define ADMIN_FIVE        ADMIN_LEVEL_E  //V.I.P префикс "q"
#define ADMIN_SIX        ADMIN_LEVEL_F  //SMS Admin префикс "r"

#define MaxLevels         21
#define IsPlayer(%1)         (1 <= %1 <=  g_iMaxPlayers)

new MaxPlayers, syncObj, Lvl[33], XP[33], iPrefix
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, suicide_xp, killer_msg
new UseAdminPrefixes, UseRankSystem, UseBoth
new HUDR,HUDG,HUDB,HUDX,HUDY, HUDEFFECT
new sayText, teamInfo, szArgs[192], temp_flag[2]
new Vip, VipFlag

new const g_vault_name[] = "ranks";

new const Levels[MaxLevels] =
{
0,
50,
100,
150,
300,
350,
400,
500,
550,
650,
700,
800,
825,
850,
890,
990,
1100,
1200,
1500,
1700,
2500
}

new const Prefix[MaxLevels][] =
{
"Novak",
"Ubiec",
"Super Ubiec",
"Spider-Man",
"MasteR",
"SuperMan",
"Mashina",
"Pro Igrach",
"HeadShot Mashina",
"Nenadminat",
"SuperNova",
"Ekspert Igrach",
"Assasin",
"Super MasteR",
"MonsteR",
"Vendetta",
"Matrix",
"Dragon",
"Agent 007",
"Equilibrium",
"TerminatoR"
}

new const szTag[][] = {
    "",
    "Glaven Admin",
    "Server Admin",
    "Girl Admin",
    "Help Admin",
    "V.I.P",
    "SMS Admin"
}

public plugin_init()
{
    register_plugin("Admin Prefixes & Rank System", "1.0", "ajw1337");
    
    register_clcmd ("say", "hook_say")
    register_clcmd ("say_team", "hook_teamsay")
    
    Vip = register_cvar("Vip_On/Off", "1")  //Вип настройката "1" включено "0" изключено.
    VipFlag = register_cvar("Vip_Flag", "t")  //Вип флага. (В момента е t) 
    
    register_event("DeathMsg","DeathMessage","a")
    
    register_clcmd("say /myrank", "cmdRank")
    register_clcmd("say_team /myrank", "cmdRank")
    register_clcmd("say /xp", "cmdRank")
    register_clcmd("say_team /xp", "cmdRank")

    UseAdminPrefixes = register_cvar("Admin_Prefixes_On/Off", "0")  //Админ префикса. 1 включено "0" изключено.
    UseRankSystem = register_cvar("Rank_Prefixes_On/Off", "0")  //Ранк системата "1" включено "0" изключено.
    UseBoth = register_cvar("Use_Both_AdminPrefix_Rank", "1")  //Ранк системата, и админ префикса. "1" включено "0" изключено
    
    ranks_hud = register_cvar("ranks_hud", "1")  //Ранк HUD съобщение.
    iPrefix = register_cvar("rank_prefix", "ArmyRanks");  //Префикса на системата.
    knife_xp = register_cvar("knife_xp", "5")  //Колко XP да дава като го убиеш с ножа.
    he_xp = register_cvar("he_grenade_xp", "2") //Колко XP да дава като го убиеш с граната.
    hs_xp = register_cvar("headshot_xp", "10")  //Колко XP да дава като го убиеш с HeadShoot
    kill_xp = register_cvar("kill_xp", "3")  //Колко XP да дава като го убиеш.
    suicide_xp = register_cvar("suicide_xp", "3")  //Колко XP да вземе като се самоубиеш
    killer_msg = register_cvar("kill_message", "1")  //Да излиза ли съобщението когато го убиеш противник.
    
    
    HUDR = register_cvar("hud_color_red", "139")
    HUDG = register_cvar("hud_color_green", "0")
    HUDB = register_cvar("hud_color_blue", "139")
    HUDX = register_cvar("hud_position_X", "0.01")
    HUDY = register_cvar("hud_position_Y", "0.14")
    HUDEFFECT = register_cvar("hud_effects", "0")
    
    sayText = get_user_msgid("SayText")
    teamInfo = get_user_msgid("TeamInfo")
    register_message(sayText, "avoid_duplicated")
    
    
    register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_BAN, "<nick | ct | t | @all> <xp>")
    register_concmd ("amx_take_xp", "CmdRemoveXP", ADMIN_BAN, "<nick | ct | t | @all> <xp>")
    
    register_forward( FM_ClientKill, "Fwd_Kill" );
    
    MaxPlayers = get_maxplayers()

    syncObj = CreateHudSyncObj()

    fvault_load(g_vault_name)
}
public getPrefix()
{
    new Prefix[33]
    get_pcvar_string(iPrefix, Prefix, 32)
    return Prefix
}
public ShowHud(id)
{
set_hudmessage(get_pcvar_num(HUDR), get_pcvar_num(HUDG), get_pcvar_num(HUDB), get_pcvar_float(HUDX), get_pcvar_float(HUDY), get_pcvar_num(HUDEFFECT), 6.0, 1.0, 0.0, 0.0, -1)
if(MaxLevels == Lvl[id]+1)
ShowSyncHudMsg(id, syncObj,"Rank: %s^nXP: %d", Prefix[Lvl[id]], XP[id])
else
ShowSyncHudMsg(id, syncObj,"Rank: %s/%s^nXP: %d/%d",Prefix[Lvl[id]], Prefix[Lvl[id]+1], XP[id], Levels[Lvl[id]+1])
}
public cmdRank(id)
{
    if(MaxLevels == Lvl[id]+1)
        ColorChat(id, NORMAL, "^4[%s]^3 My Rank^1:^4 %s^1 | ^3Level^1: ^4%d ^1| ^3XP^1: ^4%d^1.", getPrefix(), Prefix[Lvl[id]], Lvl[id]+1, XP[id])
    else
        ColorChat(id, NORMAL, "^4[%s]^3 My Rank^1:^4 %s^1 | ^3Level^1: ^4%d ^1/ ^4%d ^1| ^3XP^1: ^4 %d ^1/ ^4%d ^1to become ^4%s^1.",getPrefix(), Prefix[Lvl[id]], Lvl[id]+1, MaxLevels, XP[id], Levels[Lvl[id]+1], Prefix[Lvl[id]+1])
}

public client_putinserver(id)
{
if(get_pcvar_num(ranks_hud) == 1)
set_task(1.0, "ShowHud", id, _, _, "b")

new currentPlayerRank = 0;
while(currentPlayerRank < (MaxLevels - 1))
{       
    if(XP[id] >= Levels[currentPlayerRank + 1])
        ++currentPlayerRank;     
    else         
        break;
}
Lvl[id] = currentPlayerRank;
}
public Fwd_Kill(id)
{
    if(is_user_alive(id)) {
        XP[id] -= get_pcvar_num(suicide_xp)
        CheckLevel(id)
        Save(id)
        if(get_pcvar_num(killer_msg) == 1)
            ColorChat(id, RED, "^4[%s]^1 You committed ^3suicide ^1and ^3lost^4 %d XP^1.", getPrefix(),  get_pcvar_num(suicide_xp))

            
        return PLUGIN_CONTINUE
    }
    return PLUGIN_CONTINUE
}

public DeathMessage()
{       
    new killer = read_data(1);
    new victim = read_data(2);
    new headshot = read_data(3);
    new Weapon[ 32 ];
    read_data( 4, Weapon, charsmax( Weapon ) );
    
    format( Weapon, charsmax( Weapon ), "weapon_%s", Weapon );
    
    if( contain( Weapon, "nade" ) >= 0 )
    Weapon = "weapon_hegrenade"
    
    
    new iWeapon = get_weaponid( Weapon );
    
    if(killer == victim)
        return PLUGIN_CONTINUE;
    if(!killer || killer > MaxPlayers)
        return PLUGIN_CONTINUE;
    
    new victim_name[32];
    get_user_name(victim, victim_name, 31);
    
    get_pcvar_string(VipFlag, temp_flag, charsmax(temp_flag));
    
    
    if(iWeapon == CSW_HEGRENADE)
    {
    
        if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
            XP[killer] += get_pcvar_num(he_xp)*2
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1) {
                ColorChat(killer, RED, "^4[%s]^1 You killed ^4%s^1 with ^3HE Grenade^1 and get^4 %d XP^1. [ ^4vip bonus: yes ^1]", getPrefix(),victim_name,  get_pcvar_num(he_xp)*2)
                return PLUGIN_CONTINUE
            }
        } else {
            XP[killer] += get_pcvar_num(he_xp)
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1){
                ColorChat(killer, RED, "^4[%s]^1 You killed ^4%s^1 with ^3HE Grenade^1 and get^4 %d XP^1. [ ^3vip bonus: no ^1]", getPrefix(),victim_name,  get_pcvar_num(he_xp))
                return PLUGIN_CONTINUE
            }
        }
    }
    if(iWeapon == CSW_KNIFE)
    {
        if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
            XP[killer] += get_pcvar_num(knife_xp)*2
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1) {
                ColorChat(killer, RED, "^4[%s]^1 You killed ^4%s^1 with ^3Knife^1 and get^4 %d XP^1. [ ^4vip bonus: yes ^1]", getPrefix(),victim_name,  get_pcvar_num(knife_xp)*2)
                return PLUGIN_CONTINUE
            }
        } else {
            XP[killer] += get_pcvar_num(knife_xp)
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1){
                ColorChat(killer, GREY, "^4[%s]^1 You killed ^4%s^1 with ^3Knife^1 and get^4 %d XP^1.[ ^3vip bonus: no ^1]", getPrefix(),victim_name, get_pcvar_num(knife_xp))
                return PLUGIN_CONTINUE
            }
        }
    }
    
    
    if(headshot)
    {
        if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
            XP[killer] += get_pcvar_num(hs_xp)*2
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1){
                ColorChat(killer, BLUE, "^4[%s]^1 You killed ^4%s^1 with ^3Head^4Shot^1 and get^4 %d XP^1.[ ^4vip bonus: yes ]", getPrefix(),victim_name, get_pcvar_num(hs_xp)*2)
                return PLUGIN_CONTINUE
            }
        } else {
            XP[killer] += get_pcvar_num(hs_xp)
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1) {
                ColorChat(killer, BLUE, "^4[%s]^1 You killed ^4%s^1 with ^3Head^4Shot^1 and get^4 %d XP^1.[ ^3vip bonus: no ^1]", getPrefix(),victim_name, get_pcvar_num(hs_xp))
                return PLUGIN_CONTINUE
            }
        }
    }
    else
    {
        if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
            XP[killer] += get_pcvar_num(kill_xp)*2
            CheckLevel(killer)
            Save(killer)
            if(get_pcvar_num(killer_msg) == 1) {
                ColorChat(killer, NORMAL, "^4[%s]^1 You killed ^4%s^1 and get^4 %d XP^1.[ ^4vip bonus: yes ^1]", getPrefix(),victim_name, get_pcvar_num(kill_xp)*2)
                return PLUGIN_CONTINUE
            }
        } else {
        XP[killer] += get_pcvar_num(kill_xp)
        CheckLevel(killer)
        Save(killer)
        if(get_pcvar_num(killer_msg) == 1){
            ColorChat(killer, RED, "^4[%s]^1 You killed ^4%s^1 and get^4 %d XP^1.[ ^3vip bonus: no ]", getPrefix(),victim_name, get_pcvar_num(kill_xp))
            return PLUGIN_CONTINUE
            }
        }
    }
    CheckLevel(killer)
    Save(killer)
    return PLUGIN_CONTINUE
}

public CheckLevel(id)
{        
    new currentPlayerRank = 0;
    while(currentPlayerRank < (MaxLevels - 1))
    {       
        if(XP[id] >= Levels[currentPlayerRank + 1])
            ++currentPlayerRank;     
        else         
            break;
    }
    Lvl[id] = currentPlayerRank;
}

public client_connect(id)
{
    Load(id)
}


public client_disconnect(id)
{
    Save(id)
    XP[id] = 0
    Lvl[id] = 0
    remove_task(id)
}

public CmdAddXP (index, level, cid)
{
    if(!cmd_access(index, level, cid, 3)) return PLUGIN_HANDLED;
    
    new arg [32]
    read_argv (1, arg, 31)
    
    new AddXP [32]
    read_argv (2, AddXP, charsmax (AddXP))
    
    new XPtoGive = str_to_num (AddXP)
    
    new AdminName [32]
    new TargetName [32]
    get_user_name (index, AdminName, charsmax (AdminName))
    
    if(arg[0]=='@')
    {
        if(equali(arg[1],"All") || equali(arg[1],"ALL"))
        {
            new players[32], totalplayers, All
            get_players(players, totalplayers)
            
            for (new i = 0; i < totalplayers; i++)
            {
                All = players[i]
                
                XP[All] += XPtoGive
            }
            
            CheckLevel(All)
            ColorChat(0, NORMAL, "^4[%s] ^1ADMIN: ^3%s^1 gave^4 %i XP^1 to everyone!", getPrefix(), AdminName, XPtoGive)
        }
        else if(equali(arg[1],"T") || equali(arg[1],"t"))
        {
            new players[32], totalplayers, T
            get_players(players, totalplayers)
            
            for (new i = 0; i < totalplayers; i++)
            {
                if (get_user_team(players[i]) == 1)
                {
                    T = players[i]
                    
                    XP[T] += XPtoGive
                }
            }
            
            CheckLevel(T)
            ColorChat(0, RED, "^4[%s]^1 ADMIN: ^4%s ^1gave ^4%i XP ^1to all ^3Terrorists^1.", getPrefix(), AdminName, XPtoGive)
        }
        else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
        {
            new players[32], totalplayers, CT
            get_players(players, totalplayers)
            
            for(new i = 0; i < totalplayers; i++)
            {
                if(get_user_team(players[i]) == 2)
                {
                    CT = players[i]
                    
                    XP[CT] += XPtoGive
                }
            }
            
            CheckLevel(CT)
            ColorChat(0, BLUE, "^4[%s]^1ADMIN: ^4%s^1 gave^4 %i XP^1to all ^3Counter-Terrorists^1.", getPrefix(), AdminName, XPtoGive)
        }
    }
    else
    {
        new iTarget = cmd_target(index, arg, 3)
        get_user_name (iTarget, TargetName, charsmax (TargetName))
        
        if(iTarget)
        {
            XP[iTarget] += XPtoGive
            
            CheckLevel(iTarget)
            ColorChat(0, NORMAL, "^4[%s]^1 ADMIN: ^3%s^1 gave^4 %i XP^1 to^4 %s^1.", getPrefix(), AdminName, XPtoGive, TargetName)
        }
    }
    return PLUGIN_HANDLED
}
public CmdRemoveXP (index, level, cid)
{
    if(!cmd_access(index, level, cid, 3)) return PLUGIN_HANDLED;
    
    new arg [32]
    read_argv (1, arg, 31)
    
    new RemoveXP [32]
    read_argv (2, RemoveXP, charsmax (RemoveXP))
    
    new XPtoTook = str_to_num (RemoveXP)
    
    new AdminName [32]
    new TargetName [32]
    get_user_name (index, AdminName, charsmax (AdminName))
    
    if(arg[0]=='@')
    {
        if(equali(arg[1],"All") || equali(arg[1],"ALL"))
        {
            new players[32], totalplayers, All
            get_players(players, totalplayers)
            
            for (new i = 0; i < totalplayers; i++)
            {
                All = players[i]
                
                XP[All] -= XPtoTook
            }
            
            CheckLevel(All)
            ColorChat(0, NORMAL, "^4[%s] ^1ADMIN: ^3%s^1 took^4 %i XP^1 from everyone!", getPrefix(), AdminName, XPtoTook)
        }
        else if(equali(arg[1],"T") || equali(arg[1],"t"))
        {
            new players[32], totalplayers, T
            get_players(players, totalplayers)
            
            for (new i = 0; i < totalplayers; i++)
            {
                if (get_user_team(players[i]) == 1)
                {
                    T = players[i]
                    
                    XP[T] -= XPtoTook
                }
            }
            
            CheckLevel(T)
            ColorChat(0, RED, "^4[%s]^1 ADMIN: ^4%s ^1took ^4%i XP ^1from all ^3Terrorists^1.", getPrefix(), AdminName, XPtoTook)
        }
        else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
        {
            new players[32], totalplayers, CT
            get_players(players, totalplayers)
            
            for(new i = 0; i < totalplayers; i++)
            {
                if(get_user_team(players[i]) == 2)
                {
                    CT = players[i]
                    
                    XP[CT] -= XPtoTook
                }
            }
            
            CheckLevel(CT)
            ColorChat(0, BLUE, "^4[%s]^1ADMIN: ^4%s^1 took^4 %i XP^1from all ^3Counter-Terrorists^1.", getPrefix(), AdminName, XPtoTook)
        }
    }
    else
    {
        new iTarget = cmd_target(index, arg, 3)
        get_user_name (iTarget, TargetName, charsmax (TargetName))
        
        if(iTarget)
        {
            XP[iTarget] -= XPtoTook
            
            CheckLevel(iTarget)
            ColorChat(0, NORMAL, "^4[%s]^1 ADMIN: ^3%s^1 took^4 %i XP^1 from^4 %s^1.", getPrefix(), AdminName, XPtoTook, TargetName)
        }
    }
    return PLUGIN_HANDLED
}

public avoid_duplicated(msgId, msgDest, receiver)
{
    return PLUGIN_HANDLED
}

public hook_say(id)
{
if(!is_user_connected(id)) {
    return PLUGIN_HANDLED_MAIN
}

read_args(szArgs, 191)
remove_quotes(szArgs)
    
// Gungame commands and empty messages
if(szArgs[0] == '@' || szArgs[0] == '/' || szArgs[0] == '!' || szArgs[0] == '#' || szArgs[0] == '$' || equal(szArgs, "")) // Ignores Admin Hud Messages, Admin Slash commands
    return PLUGIN_CONTINUE

new iAlive = is_user_alive(id)
new CsTeams:iTeam = cs_get_user_team(id)

new iPlayers[ 32 ], iNum
get_players(iPlayers, iNum)

new szName[32]
get_user_name(id, szName, sizeof szName-1)

new const szPrefixes[2][CsTeams][] = {
{
    "^1*DEAD* ",
    "^1*DEAD* ",
    "^1*DEAD* ",
    "^1*SPEC* "
},
{
    "",
    "",
    "",
    ""
}
}
if(get_pcvar_num(UseAdminPrefixes) == 1){

set_pcvar_num(UseRankSystem, 0)
set_pcvar_num(UseBoth, 0)

new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
                iAdmin = 1
else if(iFlags & ADMIN_TWO)
                iAdmin = 2
else if(iFlags & ADMIN_THREE)
                iAdmin = 3
else if(iFlags & ADMIN_FOUR)
                iAdmin = 4
else if(iFlags & ADMIN_FIVE)
                iAdmin = 5
else if(iFlags & ADMIN_SIX)
                iAdmin = 6

    
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseRankSystem) == 1){
    
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseBoth, 0)
    
new iFlags = get_user_flags(id)
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseBoth) == 1){
    
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseRankSystem, 0)
    
new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
                iAdmin = 1
else if(iFlags & ADMIN_TWO)
                iAdmin = 2
else if(iFlags & ADMIN_THREE)
                iAdmin = 3
else if(iFlags & ADMIN_FOUR)
                iAdmin = 4
else if(iFlags & ADMIN_FIVE)
                iAdmin = 5
else if(iFlags & ADMIN_SIX)
                iAdmin = 6

    
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
}  else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}
return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseAdminPrefixes) == 0 && get_pcvar_num(UseRankSystem) == 0 && get_pcvar_num(UseBoth) == 0)
{
    if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam],szName, szArgs)
    }
    
}
return PLUGIN_HANDLED_MAIN
}

public hook_teamsay(id) {
if(!is_user_connected(id)) {
    return PLUGIN_HANDLED_MAIN
}

read_args(szArgs, 191)
remove_quotes(szArgs)
    
// Gungame commands and empty messages
if(szArgs[0] == '@' || szArgs[0] == '/' || szArgs[0] == '!' || szArgs[0] == '#' || szArgs[0] == '$' || equal(szArgs, "")) // Ignores Admin Hud Messages, Admin Slash commands
    return PLUGIN_CONTINUE

new iAlive = is_user_alive(id)
new CsTeams:iTeam = cs_get_user_team(id)

new iPlayers[32], iNum
get_players(iPlayers, iNum)

new szName[32]
get_user_name(id, szName, sizeof szName-1)

new const szPrefixes[2][CsTeams][] = {
{
    "^3(Spectator) ",
    "^1*DEAD* ^3(Terrorist) ",
    "^1*DEAD* ^3(Counter-Terrorist) ",
    "^3(Spectator) "
},
{
"^3(Spectator) ",
"^3(Terrorist) ",
"^3(Counter-Terrorist) ",
"^3(Spectator) "
}
}
if(get_pcvar_num(UseAdminPrefixes) == 1){

set_pcvar_num(UseRankSystem, 0)
set_pcvar_num(UseBoth, 0)

new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
                iAdmin = 1
else if(iFlags & ADMIN_TWO)
                iAdmin = 2
else if(iFlags & ADMIN_THREE)
                iAdmin = 3
else if(iFlags & ADMIN_FOUR)
                iAdmin = 4
else if(iFlags & ADMIN_FIVE)
                iAdmin = 5
else if(iFlags & ADMIN_SIX)
                iAdmin = 6

    
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseRankSystem) == 1){
    
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseBoth, 0)
    
new iFlags = get_user_flags(id)
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseBoth) == 1){
    
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseRankSystem, 0)
    
new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
                iAdmin = 1
else if(iFlags & ADMIN_TWO)
                iAdmin = 2
else if(iFlags & ADMIN_THREE)
                iAdmin = 3
else if(iFlags & ADMIN_FOUR)
                iAdmin = 4
else if(iFlags & ADMIN_FIVE)
                iAdmin = 5
else if(iFlags & ADMIN_SIX)
                iAdmin = 6

    
    
if(iFlags & ADMIN_ONE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_TWO) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_THREE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FOUR) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_FIVE) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else 
if(iFlags & ADMIN_SIX) {
    if(cs_get_user_team(id) == CS_TEAM_CT) {
        ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
    }
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
    ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
    }
}
return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseAdminPrefixes) == 0 && get_pcvar_num(UseRankSystem) == 0 && get_pcvar_num(UseBoth) == 0)
{
    if(cs_get_user_team(id) == CS_TEAM_CT) {
    ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam], szName, szArgs)
    } else if(cs_get_user_team(id) == CS_TEAM_T) {
        ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam],szName, szArgs)
    }
    
}
return PLUGIN_HANDLED_MAIN
}

public Save(id)
{
    new name[32];
    get_user_name(id,name,31);
    new vaultkey[64],vaultdata[256];
    
    format(vaultkey,63,"%s", name);
    format(vaultdata,255,"%i#%i#",XP[id],Lvl[id]);
    fvault_set_data(g_vault_name,vaultkey,vaultdata);
    
    return PLUGIN_CONTINUE;
}
public Load(id)
{
    new name[32];
    get_user_name(id,name,31);
    new vaultkey[64],vaultdata[256];
    
    format(vaultkey,63,"%s",name);
    format(vaultdata,255,"%i#%i#",XP[id],Lvl[id]);
    fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata));
    
    replace_all(vaultdata, 255, "#", " ");
    new playerxp[32], playerlevel[32];
    parse(vaultdata, playerxp, 31, playerlevel, 31);
    
    XP[id] = str_to_num(playerxp);
    Lvl[id] = str_to_num(playerlevel);
    
    return PLUGIN_CONTINUE;
}
public changeTeamInfo(player, team[])
{
    message_begin(MSG_ONE, teamInfo, _, player)    // Tells to to modify teamInfo(Which is responsable for which time player is)
    write_byte(player)                // Write byte needed
    write_string(team)                // Changes player's team
    message_end()                    // Also Needed
}

public writeMessage(player, szArgs[])
{
    message_begin(MSG_ONE, sayText, {0, 0, 0}, player)    // Tells to modify sayText(Which is responsable for writing colored messages)
    write_byte(player)                    // Write byte needed
    write_string(szArgs)                    // Effectively write the message, finally, afterall
    message_end()                        // Needed as always
}
 

пращам го така, но аз ще си редактирам после ранговете и убийствата.
Само искам да се свържат и да се махнат админ префиксите от Ранк Системата (вторият код), но да работи това да добавям префикси по ник от configs папката.
Последно промяна от Drea<M>40BG ;]] на 21 Яну 2018, 17:52, променено общо 3 пъти.

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

Заявка за преработка на плъгин

Мнение от OciXCrom » 21 Яну 2018, 17:05

Пуснал си тема в раздел "преработка на плъгини" със заглавие "преработка на плъгин"... Оправи заглавието.

Аватар
Drea<M>40BG ;]]
Извън линия
Потребител
Потребител
Мнения: 750
Регистриран на: 11 Окт 2016, 11:35
Се отблагодари: 115 пъти
Получена благодарност: 63 пъти
Обратна връзка:

Заявка за преработка на плъгин

Мнение от Drea<M>40BG ;]] » 21 Яну 2018, 17:15

OciXCrom™ написа: 21 Яну 2018, 17:05 Пуснал си тема в раздел "преработка на плъгини" със заглавие "преработка на плъгин"... Оправи заглавието.
Ти си го оправил, за което ти благодаря. Просто не съм обърнал внимание в бързината.

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

Заявка за преработка на плъгини

Мнение от OciXCrom » 21 Яну 2018, 17:20

Абсолютно нищо не съм поправял нито аз, нито някой друг. Заглавието все още не е оправено.

Аватар
Drea<M>40BG ;]]
Извън линия
Потребител
Потребител
Мнения: 750
Регистриран на: 11 Окт 2016, 11:35
Се отблагодари: 115 пъти
Получена благодарност: 63 пъти
Обратна връзка:

Заявка за преработка OCIXCROM CHATMANAGER & RANK SYSTEM

Мнение от Drea<M>40BG ;]] » 21 Яну 2018, 17:52

Сега как е?

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

Заявка за съединяване на OCIXCROM CHATMANAGER & RANK SYSTEM

Мнение от OciXCrom » 21 Яну 2018, 19:43

Вълнуващо. В ChatManager.ini добави %rank% във FORMAT_SAY и FORMAT_SAY_TEAM за да ползваш префикса от ранк системата.

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

#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <cstrike>

#define PLUGIN_VERSION "3.6.5"
#define DELAY_ON_REGISTER 1.0
#define DELAY_ON_CONNECT 1.0
#define DELAY_ON_CHANGE 0.1
#define PLACEHOLDER_LENGTH 64

/* 	You can comment placeholders you don't need from the lines below and that will completely deactivate them.
	You can also activate the additional ones if you want to use them.
	Feel free to experiment in making your custom ones as well. */
	
#define ARG_ADMIN_PREFIX 		"%admin_prefix%"
#define ARG_DEAD_PREFIX 		"%dead_prefix%"
#define ARG_TEAM 				"%team%"
#define ARG_NAME 				"%name%"
#define ARG_IP 					"%ip%"
#define ARG_STEAM 				"%steam%"
#define ARG_USERID 				"%userid%"
#define ARG_CHAT_COLOR 			"%chat_color%"
#define ARG_MESSAGE 			"%message%"
#define ARG_TIME 				"%time%"
#define ARG_RANK				"%rank%"
//#define ARG_HEALTH 			"%health%"
//#define ARG_ARMOR 			"%armor%"
//#define ARG_FRAGS 			"%frags%"
//#define ARG_DEATHS 			"%deaths%"
//#define ARG_CITY 				"%city%"
//#define ARG_COUNTRY 			"%country%"
//#define ARG_COUNTRY_CODE 		"%country_code%"
//#define ARG_CONTINENT 		"%continent%"
//#define ARG_CONTINENT_CODE 	"%continent_code%"

/*	The settings end here. Don't modify anything below this if you don't know what you're doing. */

#if defined ARG_CITY || defined ARG_COUNTRY || defined ARG_COUNTRY_CODE || defined ARG_CONTINENT || defined ARG_CONTINENT_CODE
	#include <geoip>
#endif

#if defined ARG_RANK
native get_rank_prefix(id, prefix[], len)
#endif

enum
{
	SECTION_NONE,
	SECTION_SETTINGS,
	SECTION_ADMIN_PREFIXES,
	SECTION_CHAT_COLORS,
	SECTION_NAME_IP_STEAM
}

enum _:Settings
{
	ADMIN_LISTEN_FLAGS[32],
	DEAD_PREFIX[32],
	ALIVE_PREFIX[32],
	TEAM_PREFIX_T[32],
	TEAM_PREFIX_CT[32],
	TEAM_PREFIX_SPEC[32],
	ERROR_TEXT[32],
	FORMAT_TIME[64],
	FORMAT_SAY[160],
	FORMAT_SAY_TEAM[160],
	bool:ALL_CHAT
}

enum _:PlayerData
{
	PDATA_NAME[32],
	PDATA_NAME_LOWER[32],
	PDATA_IP[16],
	PDATA_STEAM[35],
	PDATA_USERID[10],
	PDATA_PREFIX[32],
	PDATA_CHAT_COLOR[6],
	bool:PDATA_ADMIN_LISTEN
}

new g_eSettings[Settings],
	g_ePlayerData[33][PlayerData],
	Array:g_aAdminFlags,
	Array:g_aAdminPrefixes,
	Array:g_aChatColors,
	Array:g_aChatColorsFlags,
	Trie:g_tName,
	Trie:g_tIP,
	Trie:g_tSteam,
	Trie:g_tBlockFirst,
	g_iAdminPrefixes,
	g_iChatColors

public plugin_init()
{
	register_plugin("Chat Manager", PLUGIN_VERSION, "OciXCrom")
	register_cvar("CRXChatManager", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	set_task(DELAY_ON_REGISTER, "RegisterCommands")
	g_aAdminFlags = ArrayCreate(32)
	g_aAdminPrefixes = ArrayCreate(32)
	g_aChatColors = ArrayCreate(6)
	g_aChatColorsFlags = ArrayCreate(32)
	g_tBlockFirst = TrieCreate()
	g_tName = TrieCreate()
	g_tIP = TrieCreate()
	g_tSteam = TrieCreate()
	ReadFile()
}

public plugin_end()
{
	ArrayDestroy(g_aAdminFlags)
	ArrayDestroy(g_aAdminPrefixes)
	ArrayDestroy(g_aChatColors)
	ArrayDestroy(g_aChatColorsFlags)
	TrieDestroy(g_tBlockFirst)
	TrieDestroy(g_tName)
	TrieDestroy(g_tIP)
	TrieDestroy(g_tSteam)
}

public RegisterCommands()
{
	register_clcmd("say", "Hook_Say")
	register_clcmd("say_team", "Hook_Say")
}

public client_putinserver(id)
{
	get_user_name(id, g_ePlayerData[id][PDATA_NAME], charsmax(g_ePlayerData[][PDATA_NAME]))
	copy(g_ePlayerData[id][PDATA_NAME_LOWER], charsmax(g_ePlayerData[][PDATA_NAME_LOWER]), g_ePlayerData[id][PDATA_NAME])
	strtolower(g_ePlayerData[id][PDATA_NAME_LOWER])
	get_user_ip(id, g_ePlayerData[id][PDATA_IP], charsmax(g_ePlayerData[][PDATA_IP]), 1)
	get_user_authid(id, g_ePlayerData[id][PDATA_STEAM], charsmax(g_ePlayerData[][PDATA_STEAM]))
	num_to_str(get_user_userid(id), g_ePlayerData[id][PDATA_USERID], charsmax(g_ePlayerData[][PDATA_USERID]))
	set_task(DELAY_ON_CONNECT, "UpdateData", id)
}
	
public client_infochanged(id)
{
	if(!is_user_connected(id))
		return
		
	static szNewName[32]
	get_user_info(id, "name", szNewName, charsmax(szNewName))
	
	if(!equal(szNewName, g_ePlayerData[id][PDATA_NAME]))
	{
		copy(g_ePlayerData[id][PDATA_NAME], charsmax(g_ePlayerData[][PDATA_NAME]), szNewName)
		copy(g_ePlayerData[id][PDATA_NAME_LOWER], charsmax(g_ePlayerData[][PDATA_NAME_LOWER]), szNewName)
		strtolower(g_ePlayerData[id][PDATA_NAME_LOWER])
		set_task(DELAY_ON_CHANGE, "UpdateData", id)
	}
}
	
public UpdateData(id)
{
	if(g_iChatColors)
	{
		g_ePlayerData[id][PDATA_CHAT_COLOR][0] = EOS
		
		for(new szFlags[32], i; i < g_iChatColors; i++)
		{
			ArrayGetString(g_aChatColorsFlags, i, szFlags, charsmax(szFlags))
			
			if(has_all_flags(id, szFlags))
			{
				ArrayGetString(g_aChatColors, i, g_ePlayerData[id][PDATA_CHAT_COLOR], charsmax(g_ePlayerData[][PDATA_CHAT_COLOR]))
				break
			}
		}
	}
	
	if(g_eSettings[ADMIN_LISTEN_FLAGS][0])
		g_ePlayerData[id][PDATA_ADMIN_LISTEN] = bool:has_all_flags(id, g_eSettings[ADMIN_LISTEN_FLAGS])
		
	g_ePlayerData[id][PDATA_PREFIX][0] = EOS
		
	if(TrieKeyExists(g_tSteam, g_ePlayerData[id][PDATA_STEAM]))
		TrieGetString(g_tSteam, g_ePlayerData[id][PDATA_STEAM], g_ePlayerData[id][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
	else if(TrieKeyExists(g_tIP, g_ePlayerData[id][PDATA_IP]))
		TrieGetString(g_tIP, g_ePlayerData[id][PDATA_IP], g_ePlayerData[id][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
	else if(TrieKeyExists(g_tName, g_ePlayerData[id][PDATA_NAME_LOWER]))
		TrieGetString(g_tName, g_ePlayerData[id][PDATA_NAME_LOWER], g_ePlayerData[id][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
	else if(g_iAdminPrefixes)
	{
		for(new szFlags[32], i; i < g_iAdminPrefixes; i++)
		{
			ArrayGetString(g_aAdminFlags, i, szFlags, charsmax(szFlags))
			
			if(has_all_flags(id, szFlags))
			{
				ArrayGetString(g_aAdminPrefixes, i, g_ePlayerData[id][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))
				break
			}
		}
	}
}

public Hook_Say(id)
{
	if(!is_user_connected(id))
		return PLUGIN_HANDLED
		
	new szArgs[192]
	read_args(szArgs, charsmax(szArgs)); remove_quotes(szArgs)
	CC_RemoveColors(szArgs, charsmax(szArgs))
	
	new szFirstChar[2]
	szFirstChar[0] = szArgs[0]
	
	if(!szArgs[0] || TrieKeyExists(g_tBlockFirst, szFirstChar))
		return PLUGIN_HANDLED
		
	new szCommand[5]
	read_argv(0, szCommand, charsmax(szCommand))
	
	new szMessage[192], iPlayers[32], iPnum, bool:bTeam = szCommand[3] == '_', iAlive = is_user_alive(id), CsTeams:iTeam = cs_get_user_team(id)
	format_chat_message(bTeam, id, iAlive, iTeam, szArgs, szMessage, charsmax(szMessage))
	get_players(iPlayers, iPnum, "ch")
	
	for(new i, iPlayer; i < iPnum; i++)
	{
		iPlayer = iPlayers[i]
		
		if(g_ePlayerData[iPlayer][PDATA_ADMIN_LISTEN] || (bTeam && iTeam == cs_get_user_team(iPlayer) && iAlive == is_user_alive(iPlayer)) || (!bTeam && (g_eSettings[ALL_CHAT] || iAlive == is_user_alive(iPlayer))))
			CC_SendMatched(iPlayer, id, szMessage)
	}
	
	return PLUGIN_HANDLED
}

ReadFile()
{
	new szConfigsName[256], szFilename[256]
	get_configsdir(szConfigsName, charsmax(szConfigsName))
	formatex(szFilename, charsmax(szFilename), "%s/ChatManager.ini", szConfigsName)
	
	new iFilePointer = fopen(szFilename, "rt")
	
	if(iFilePointer)
	{
		new szData[192], szValue[160], szKey[32], szInfo[32], szPrefix[32], iSection = SECTION_NONE, iSize
		
		while(!feof(iFilePointer))
		{
			fgets(iFilePointer, szData, charsmax(szData))
			trim(szData)
			
			switch(szData[0])
			{
				case EOS, ';': continue
				case '[':
				{
					iSize = strlen(szData)
					
					if(szData[iSize - 1] == ']')
					{
						switch(szData[1])
						{
							case 'S', 's': iSection = SECTION_SETTINGS
							case 'A', 'a': iSection = SECTION_ADMIN_PREFIXES
							case 'C', 'c': iSection = SECTION_CHAT_COLORS
							case 'N', 'n': iSection = SECTION_NAME_IP_STEAM
							default: iSection = SECTION_NONE
						}
					}
					else continue
				}
				default:
				{
					if(iSection == SECTION_NONE)
						continue
						
					switch(iSection)
					{
						case SECTION_SETTINGS:
						{
							strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
							trim(szKey); trim(szValue)
									
							if(!szValue[0])
								continue
								
							if(equal(szKey, "ADMIN_LISTEN_FLAGS"))
								copy(g_eSettings[ADMIN_LISTEN_FLAGS], charsmax(g_eSettings[ADMIN_LISTEN_FLAGS]), szValue)
							else if(equal(szKey, "BLOCK_FIRST_SYMBOLS"))
							{
								while(szValue[0] != 0 && strtok(szValue, szKey, charsmax(szKey), szValue, charsmax(szValue), ','))
								{
									trim(szKey); trim(szValue)
									TrieSetCell(g_tBlockFirst, szKey, 1)
								}
							}
							else if(equal(szKey, "DEAD_PREFIX"))
								copy(g_eSettings[DEAD_PREFIX], charsmax(g_eSettings[DEAD_PREFIX]), szValue)
							else if(equal(szKey, "ALIVE_PREFIX"))
								copy(g_eSettings[ALIVE_PREFIX], charsmax(g_eSettings[ALIVE_PREFIX]), szValue)
							else if(equal(szKey, "TEAM_PREFIX_T"))
								copy(g_eSettings[TEAM_PREFIX_T], charsmax(g_eSettings[TEAM_PREFIX_T]), szValue)
							else if(equal(szKey, "TEAM_PREFIX_CT"))
								copy(g_eSettings[TEAM_PREFIX_CT], charsmax(g_eSettings[TEAM_PREFIX_CT]), szValue)
							else if(equal(szKey, "TEAM_PREFIX_SPEC"))
								copy(g_eSettings[TEAM_PREFIX_SPEC], charsmax(g_eSettings[TEAM_PREFIX_SPEC]), szValue)
							else if(equal(szKey, "ERROR_TEXT"))
								copy(g_eSettings[ERROR_TEXT], charsmax(g_eSettings[ERROR_TEXT]), szValue)
							else if(equal(szKey, "FORMAT_TIME"))
								copy(g_eSettings[FORMAT_TIME], charsmax(g_eSettings[FORMAT_TIME]), szValue)
							else if(equal(szKey, "FORMAT_SAY"))
								copy(g_eSettings[FORMAT_SAY], charsmax(g_eSettings[FORMAT_SAY]), szValue)
							else if(equal(szKey, "FORMAT_SAY_TEAM"))
								copy(g_eSettings[FORMAT_SAY_TEAM], charsmax(g_eSettings[FORMAT_SAY_TEAM]), szValue)
							else if(equal(szKey, "ALL_CHAT"))
								g_eSettings[ALL_CHAT] = _:clamp(str_to_num(szValue), false, true)
						}
						case SECTION_ADMIN_PREFIXES:
						{
							strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
							trim(szKey); trim(szValue)
									
							if(!szValue[0])
								continue
								
							ArrayPushString(g_aAdminFlags, szKey)
							ArrayPushString(g_aAdminPrefixes, szValue)
							g_iAdminPrefixes++
						}
						case SECTION_CHAT_COLORS:
						{
							strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
							trim(szKey); trim(szValue)
									
							if(!szValue[0])
								continue
								
							ArrayPushString(g_aChatColorsFlags, szKey)
							ArrayPushString(g_aChatColors, szValue)
							g_iChatColors++
						}
						case SECTION_NAME_IP_STEAM:
						{
							parse(szData, szKey, charsmax(szKey), szInfo, charsmax(szInfo), szPrefix, charsmax(szPrefix))
							{
								switch(szKey[0])
								{
									case 'N', 'n': { strtolower(szInfo); TrieSetString(g_tName, szInfo, szPrefix); }
									case 'I', 'i': TrieSetString(g_tIP, szInfo, szPrefix)
									case 'S', 's': TrieSetString(g_tSteam, szInfo, szPrefix)
								}
							}
						}
					}
				}
			}
		}
		
		fclose(iFilePointer)
	}
}

format_chat_message(const bool:bTeam, const id, const iAlive, const CsTeams:iTeam, const szArgs[], szMessage[], const iLen)
{
	static szPlaceHolder[PLACEHOLDER_LENGTH]
	copy(szMessage, iLen, g_eSettings[bTeam ? FORMAT_SAY_TEAM : FORMAT_SAY])
	
	#if defined ARG_ADMIN_PREFIX
	replace_all(szMessage, iLen, ARG_ADMIN_PREFIX, g_ePlayerData[id][PDATA_PREFIX])
	#endif
	
	#if defined ARG_DEAD_PREFIX
	replace_all(szMessage, iLen, ARG_DEAD_PREFIX, g_eSettings[iAlive ? ALIVE_PREFIX : DEAD_PREFIX])
	#endif
	
	#if defined ARG_TEAM
	replace_all(szMessage, iLen, ARG_TEAM, g_eSettings[iTeam == CS_TEAM_CT ? TEAM_PREFIX_CT : iTeam == CS_TEAM_T ? TEAM_PREFIX_T : TEAM_PREFIX_SPEC])
	#endif
	
	#if defined ARG_NAME
	replace_all(szMessage, iLen, ARG_NAME, g_ePlayerData[id][PDATA_NAME])
	#endif
	
	#if defined ARG_IP
	replace_all(szMessage, iLen, ARG_IP, g_ePlayerData[id][PDATA_IP])
	#endif
	
	#if defined ARG_STEAM
	replace_all(szMessage, iLen, ARG_STEAM, g_ePlayerData[id][PDATA_STEAM])
	#endif
	
	#if defined ARG_USERID
	replace_all(szMessage, iLen, ARG_USERID, g_ePlayerData[id][PDATA_USERID])
	#endif
	
	#if defined ARG_CHAT_COLOR
	replace_all(szMessage, iLen, ARG_CHAT_COLOR, g_ePlayerData[id][PDATA_CHAT_COLOR])
	#endif
	
	#if defined ARG_MESSAGE
	replace_all(szMessage, iLen, ARG_MESSAGE, szArgs)	
	#endif
	
	#if defined ARG_TIME
	if(has_argument(szMessage, ARG_TIME))
	{
		get_time(g_eSettings[FORMAT_TIME], szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_TIME, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_RANK
	if(has_argument(szMessage, ARG_RANK))
	{
		get_rank_prefix(id, szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_RANK, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_HEALTH
	if(has_argument(szMessage, ARG_HEALTH))
	{
		num_to_str(iAlive ? get_user_health(id) : 0, szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_HEALTH, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_ARMOR
	if(has_argument(szMessage, ARG_ARMOR))
	{
		num_to_str(iAlive ? get_user_armor(id) : 0, szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_ARMOR, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_FRAGS
	if(has_argument(szMessage, ARG_FRAGS))
	{
		num_to_str(get_user_frags(id), szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_FRAGS, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_DEATHS
	if(has_argument(szMessage, ARG_DEATHS))
	{
		num_to_str(cs_get_user_deaths(id), szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_DEATHS, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_CITY
	if(has_argument(szMessage, ARG_CITY))
	{
		geoip_city(g_ePlayerData[id][PDATA_IP], szPlaceHolder, charsmax(szPlaceHolder))
		check_validity(szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_CITY, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_COUNTRY
	if(has_argument(szMessage, ARG_COUNTRY))
	{
		#if defined geoip_country_ex
		geoip_country_ex(g_ePlayerData[id][PDATA_IP], szPlaceHolder, charsmax(szPlaceHolder))
		#else
		geoip_country(g_ePlayerData[id][PDATA_IP], szPlaceHolder, charsmax(szPlaceHolder))
		#endif
		
		check_validity(szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_COUNTRY, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_COUNTRY_CODE
	if(has_argument(szMessage, ARG_COUNTRY_CODE))
	{
		new szCountryCode[3]
		
		#if defined geoip_code2_ex
		geoip_code2_ex(g_ePlayerData[id][PDATA_IP], szCountryCode)
		#else
		geoip_code2(g_ePlayerData[id][PDATA_IP], szCountryCode)
		#endif
		
		check_validity(szCountryCode, charsmax(szCountryCode))
		replace_all(szMessage, iLen, ARG_COUNTRY_CODE, szCountryCode)
	}
	#endif
	
	#if defined ARG_CONTINENT
	if(has_argument(szMessage, ARG_CONTINENT))
	{
		geoip_continent_name(g_ePlayerData[id][PDATA_IP], szPlaceHolder, charsmax(szPlaceHolder))
		check_validity(szPlaceHolder, charsmax(szPlaceHolder))
		replace_all(szMessage, iLen, ARG_CONTINENT, szPlaceHolder)
	}
	#endif
	
	#if defined ARG_CONTINENT_CODE
	if(has_argument(szMessage, ARG_CONTINENT_CODE))
	{
		new szContinentCode[3]
		geoip_continent_code(g_ePlayerData[id][PDATA_IP], szContinentCode)
		check_validity(szContinentCode, charsmax(szContinentCode))
		replace_all(szMessage, iLen, ARG_CONTINENT_CODE, szContinentCode)
	}
	#endif
	
	replace_all(szMessage, iLen, "  ", "")
	trim(szMessage)
}

stock bool:has_argument(const szMessage[], const szArgument[])
	return contain(szMessage, szArgument) != -1

stock check_validity(szText[], const iLen)
{
	if(!szText[0])
		copy(szText, iLen, g_eSettings[ERROR_TEXT])
}

public plugin_natives()
{
	register_library("chatmanager")
	register_native("cm_get_admin_listen_flags", "_cm_get_admin_listen_flags")
	register_native("cm_get_admin_prefix", "_cm_get_admin_prefix")
	register_native("cm_get_chat_color", "_cm_get_chat_color")
	register_native("cm_get_chat_color_by_num", "_cm_get_chat_color_by_num")
	register_native("cm_get_prefix_by_num", "_cm_get_prefix_by_num")
	register_native("cm_has_user_admin_listen", "_cm_has_user_admin_listen")
	register_native("cm_total_chat_colors", "_cm_total_chat_colors")
	register_native("cm_total_prefixes", "_cm_total_chat_colors")
	register_native("cm_update_player_data", "_cm_update_player_data")
	register_native("cm_set_user_prefix", "_cm_set_user_prefix")
}

public _cm_get_admin_prefix(iPlugin, iParams)
	set_string(2, g_ePlayerData[get_param(1)][PDATA_PREFIX], get_param(3))
	
public _cm_get_chat_color(iPlugin, iParams)
	set_string(2, g_ePlayerData[get_param(1)][PDATA_CHAT_COLOR], get_param(3))
	
public _cm_total_prefixes(iPlugin, iParams)
	return g_iAdminPrefixes

public _cm_total_chat_colors(iPlugin, iParams)
	return g_iChatColors
	
public _cm_get_prefix_by_num(iPlugin, iParams)
{
	new iNum = get_param(1)
	
	if(iNum < 0 || iNum >= g_iAdminPrefixes)
		return 0
	
	new szPrefix[32]
	ArrayGetString(g_aAdminPrefixes, iNum, szPrefix, charsmax(szPrefix))
	set_string(2, szPrefix, get_param(3))
	return 1
}

public _cm_get_chat_color_by_num(iPlugin, iParams)
{
	new iNum = get_param(1)
	
	if(iNum < 0 || iNum >= g_iChatColors)
		return 0
	
	new szColor[32]
	ArrayGetString(g_aChatColors, iNum, szColor, charsmax(szColor))
	set_string(2, szColor, get_param(3))
	return 1
}

public _cm_get_admin_listen_flags(iPlugin, iParams)
	set_string(1, g_eSettings[ADMIN_LISTEN_FLAGS], get_param(2))
	
public bool:_cm_has_user_admin_listen(iPlugin, iParams)
	return g_ePlayerData[get_param(1)][PDATA_ADMIN_LISTEN]
	
public _cm_update_player_data(iPlugin, iParams)
	UpdateData(get_param(1))

public _cm_set_user_prefix(iPlugin, iParams)
	get_string(2, g_ePlayerData[get_param(1)][PDATA_PREFIX], charsmax(g_ePlayerData[][PDATA_PREFIX]))

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

#include             <amxmodx>
#include             <amxmisc>
#include             <cstrike>
#include             <fvault>
#include             <colorchat>
#include             <fakemeta>
#include            <fakemeta_util>
#include             <fun>
#include             <hamsandwich>

/*#define ADMIN_ONE        ADMIN_LEVEL_A  //Glaven Admin префикс "m"
#define ADMIN_TWO        ADMIN_LEVEL_B  //Server Admin префикс "n"
#define ADMIN_THREE        ADMIN_LEVEL_C  //Girl Admin префикс "o"
#define ADMIN_FOUR        ADMIN_LEVEL_D  //Help Admin префикс "p"
#define ADMIN_FIVE        ADMIN_LEVEL_E  //V.I.P префикс "q"
#define ADMIN_SIX        ADMIN_LEVEL_F  //SMS Admin префикс "r"*/

#define MaxLevels         21
#define IsPlayer(%1)         (1 <= %1 <=  g_iMaxPlayers)

new MaxPlayers, syncObj, Lvl[33], XP[33], iPrefix
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, suicide_xp, killer_msg
//new UseAdminPrefixes, UseRankSystem, UseBoth
new HUDR,HUDG,HUDB,HUDX,HUDY, HUDEFFECT
new sayText, teamInfo, /*szArgs[192],*/ temp_flag[2]
new Vip, VipFlag

new const g_vault_name[] = "ranks";

new const Levels[MaxLevels] =
{
0,
50,
100,
150,
300,
350,
400,
500,
550,
650,
700,
800,
825,
850,
890,
990,
1100,
1200,
1500,
1700,
2500
}

new const Prefix[MaxLevels][] =
{
"Novak",
"Ubiec",
"Super Ubiec",
"Spider-Man",
"MasteR",
"SuperMan",
"Mashina",
"Pro Igrach",
"HeadShot Mashina",
"Nenadminat",
"SuperNova",
"Ekspert Igrach",
"Assasin",
"Super MasteR",
"MonsteR",
"Vendetta",
"Matrix",
"Dragon",
"Agent 007",
"Equilibrium",
"TerminatoR"
}

/*new const szTag[][] = {
	"",
	"Glaven Admin",
	"Server Admin",
	"Girl Admin",
	"Help Admin",
	"V.I.P",
	"SMS Admin"
}*/

public plugin_init()
{
	register_plugin("Admin Prefixes & Rank System", "1.0", "ajw1337");
	
	//register_clcmd ("say", "hook_say")
	//register_clcmd ("say_team", "hook_teamsay")
	
	Vip = register_cvar("Vip_On/Off", "1")  //Вип настройката "1" включено "0" изключено.
	VipFlag = register_cvar("Vip_Flag", "t")  //Вип флага. (В момента е t) 
	
	register_event("DeathMsg","DeathMessage","a")
	
	register_clcmd("say /myrank", "cmdRank")
	register_clcmd("say_team /myrank", "cmdRank")
	register_clcmd("say /xp", "cmdRank")
	register_clcmd("say_team /xp", "cmdRank")

	/*UseAdminPrefixes = register_cvar("Admin_Prefixes_On/Off", "0")  //Админ префикса. 1 включено "0" изключено.
	UseRankSystem = register_cvar("Rank_Prefixes_On/Off", "0")  //Ранк системата "1" включено "0" изключено.
	UseBoth = register_cvar("Use_Both_AdminPrefix_Rank", "1")  //Ранк системата, и админ префикса. "1" включено "0" изключено*/
	
	ranks_hud = register_cvar("ranks_hud", "1")  //Ранк HUD съобщение.
	iPrefix = register_cvar("rank_prefix", "ArmyRanks");  //Префикса на системата.
	knife_xp = register_cvar("knife_xp", "5")  //Колко XP да дава като го убиеш с ножа.
	he_xp = register_cvar("he_grenade_xp", "2") //Колко XP да дава като го убиеш с граната.
	hs_xp = register_cvar("headshot_xp", "10")  //Колко XP да дава като го убиеш с HeadShoot
	kill_xp = register_cvar("kill_xp", "3")  //Колко XP да дава като го убиеш.
	suicide_xp = register_cvar("suicide_xp", "3")  //Колко XP да вземе като се самоубиеш
	killer_msg = register_cvar("kill_message", "1")  //Да излиза ли съобщението когато го убиеш противник.
	
	
	HUDR = register_cvar("hud_color_red", "139")
	HUDG = register_cvar("hud_color_green", "0")
	HUDB = register_cvar("hud_color_blue", "139")
	HUDX = register_cvar("hud_position_X", "0.01")
	HUDY = register_cvar("hud_position_Y", "0.14")
	HUDEFFECT = register_cvar("hud_effects", "0")
	
	sayText = get_user_msgid("SayText")
	teamInfo = get_user_msgid("TeamInfo")
	register_message(sayText, "avoid_duplicated")
	
	
	register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_BAN, "<nick | ct | t | @all> <xp>")
	register_concmd ("amx_take_xp", "CmdRemoveXP", ADMIN_BAN, "<nick | ct | t | @all> <xp>")
	
	register_forward( FM_ClientKill, "Fwd_Kill" );
	
	MaxPlayers = get_maxplayers()

	syncObj = CreateHudSyncObj()

	fvault_load(g_vault_name)
}
public getPrefix()
{
	new Prefix[33]
	get_pcvar_string(iPrefix, Prefix, 32)
	return Prefix
}
public ShowHud(id)
{
set_hudmessage(get_pcvar_num(HUDR), get_pcvar_num(HUDG), get_pcvar_num(HUDB), get_pcvar_float(HUDX), get_pcvar_float(HUDY), get_pcvar_num(HUDEFFECT), 6.0, 1.0, 0.0, 0.0, -1)
if(MaxLevels == Lvl[id]+1)
ShowSyncHudMsg(id, syncObj,"Rank: %s^nXP: %d", Prefix[Lvl[id]], XP[id])
else
ShowSyncHudMsg(id, syncObj,"Rank: %s/%s^nXP: %d/%d",Prefix[Lvl[id]], Prefix[Lvl[id]+1], XP[id], Levels[Lvl[id]+1])
}
public cmdRank(id)
{
	if(MaxLevels == Lvl[id]+1)
		ColorChat(id, NORMAL, "^4[%s]^3 My Rank^1:^4 %s^1 | ^3Level^1: ^4%d ^1| ^3XP^1: ^4%d^1.", getPrefix(), Prefix[Lvl[id]], Lvl[id]+1, XP[id])
	else
		ColorChat(id, NORMAL, "^4[%s]^3 My Rank^1:^4 %s^1 | ^3Level^1: ^4%d ^1/ ^4%d ^1| ^3XP^1: ^4 %d ^1/ ^4%d ^1to become ^4%s^1.",getPrefix(), Prefix[Lvl[id]], Lvl[id]+1, MaxLevels, XP[id], Levels[Lvl[id]+1], Prefix[Lvl[id]+1])
}

public client_putinserver(id)
{
if(get_pcvar_num(ranks_hud) == 1)
set_task(1.0, "ShowHud", id, _, _, "b")

new currentPlayerRank = 0;
while(currentPlayerRank < (MaxLevels - 1))
{       
	if(XP[id] >= Levels[currentPlayerRank + 1])
		++currentPlayerRank;     
	else         
		break;
}
Lvl[id] = currentPlayerRank;
}
public Fwd_Kill(id)
{
	if(is_user_alive(id)) {
		XP[id] -= get_pcvar_num(suicide_xp)
		CheckLevel(id)
		Save(id)
		if(get_pcvar_num(killer_msg) == 1)
			ColorChat(id, RED, "^4[%s]^1 You committed ^3suicide ^1and ^3lost^4 %d XP^1.", getPrefix(),  get_pcvar_num(suicide_xp))

			
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}

public DeathMessage()
{       
	new killer = read_data(1);
	new victim = read_data(2);
	new headshot = read_data(3);
	new Weapon[ 32 ];
	read_data( 4, Weapon, charsmax( Weapon ) );
	
	format( Weapon, charsmax( Weapon ), "weapon_%s", Weapon );
	
	if( contain( Weapon, "nade" ) >= 0 )
	Weapon = "weapon_hegrenade"
	
	
	new iWeapon = get_weaponid( Weapon );
	
	if(killer == victim)
		return PLUGIN_CONTINUE;
	if(!killer || killer > MaxPlayers)
		return PLUGIN_CONTINUE;
	
	new victim_name[32];
	get_user_name(victim, victim_name, 31);
	
	get_pcvar_string(VipFlag, temp_flag, charsmax(temp_flag));
	
	
	if(iWeapon == CSW_HEGRENADE)
	{
	
		if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
			XP[killer] += get_pcvar_num(he_xp)*2
			CheckLevel(killer)
			Save(killer)
			if(get_pcvar_num(killer_msg) == 1) {
				ColorChat(killer, RED, "^4[%s]^1 You killed ^4%s^1 with ^3HE Grenade^1 and get^4 %d XP^1. [ ^4vip bonus: yes ^1]", getPrefix(),victim_name,  get_pcvar_num(he_xp)*2)
				return PLUGIN_CONTINUE
			}
		} else {
			XP[killer] += get_pcvar_num(he_xp)
			CheckLevel(killer)
			Save(killer)
			if(get_pcvar_num(killer_msg) == 1){
				ColorChat(killer, RED, "^4[%s]^1 You killed ^4%s^1 with ^3HE Grenade^1 and get^4 %d XP^1. [ ^3vip bonus: no ^1]", getPrefix(),victim_name,  get_pcvar_num(he_xp))
				return PLUGIN_CONTINUE
			}
		}
	}
	if(iWeapon == CSW_KNIFE)
	{
		if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
			XP[killer] += get_pcvar_num(knife_xp)*2
			CheckLevel(killer)
			Save(killer)
			if(get_pcvar_num(killer_msg) == 1) {
				ColorChat(killer, RED, "^4[%s]^1 You killed ^4%s^1 with ^3Knife^1 and get^4 %d XP^1. [ ^4vip bonus: yes ^1]", getPrefix(),victim_name,  get_pcvar_num(knife_xp)*2)
				return PLUGIN_CONTINUE
			}
		} else {
			XP[killer] += get_pcvar_num(knife_xp)
			CheckLevel(killer)
			Save(killer)
			if(get_pcvar_num(killer_msg) == 1){
				ColorChat(killer, GREY, "^4[%s]^1 You killed ^4%s^1 with ^3Knife^1 and get^4 %d XP^1.[ ^3vip bonus: no ^1]", getPrefix(),victim_name, get_pcvar_num(knife_xp))
				return PLUGIN_CONTINUE
			}
		}
	}
	
	
	if(headshot)
	{
		if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
			XP[killer] += get_pcvar_num(hs_xp)*2
			CheckLevel(killer)
			Save(killer)
			if(get_pcvar_num(killer_msg) == 1){
				ColorChat(killer, BLUE, "^4[%s]^1 You killed ^4%s^1 with ^3Head^4Shot^1 and get^4 %d XP^1.[ ^4vip bonus: yes ]", getPrefix(),victim_name, get_pcvar_num(hs_xp)*2)
				return PLUGIN_CONTINUE
			}
		} else {
			XP[killer] += get_pcvar_num(hs_xp)
			CheckLevel(killer)
			Save(killer)
			if(get_pcvar_num(killer_msg) == 1) {
				ColorChat(killer, BLUE, "^4[%s]^1 You killed ^4%s^1 with ^3Head^4Shot^1 and get^4 %d XP^1.[ ^3vip bonus: no ^1]", getPrefix(),victim_name, get_pcvar_num(hs_xp))
				return PLUGIN_CONTINUE
			}
		}
	}
	else
	{
		if(get_pcvar_num(Vip) == 1 && get_user_flags(killer) & read_flags(temp_flag)) {
			XP[killer] += get_pcvar_num(kill_xp)*2
			CheckLevel(killer)
			Save(killer)
			if(get_pcvar_num(killer_msg) == 1) {
				ColorChat(killer, NORMAL, "^4[%s]^1 You killed ^4%s^1 and get^4 %d XP^1.[ ^4vip bonus: yes ^1]", getPrefix(),victim_name, get_pcvar_num(kill_xp)*2)
				return PLUGIN_CONTINUE
			}
		} else {
		XP[killer] += get_pcvar_num(kill_xp)
		CheckLevel(killer)
		Save(killer)
		if(get_pcvar_num(killer_msg) == 1){
			ColorChat(killer, RED, "^4[%s]^1 You killed ^4%s^1 and get^4 %d XP^1.[ ^3vip bonus: no ]", getPrefix(),victim_name, get_pcvar_num(kill_xp))
			return PLUGIN_CONTINUE
			}
		}
	}
	CheckLevel(killer)
	Save(killer)
	return PLUGIN_CONTINUE
}

public CheckLevel(id)
{        
	new currentPlayerRank = 0;
	while(currentPlayerRank < (MaxLevels - 1))
	{       
		if(XP[id] >= Levels[currentPlayerRank + 1])
			++currentPlayerRank;     
		else         
			break;
	}
	Lvl[id] = currentPlayerRank;
}

public client_connect(id)
{
	Load(id)
}


public client_disconnect(id)
{
	Save(id)
	XP[id] = 0
	Lvl[id] = 0
	remove_task(id)
}

public CmdAddXP (index, level, cid)
{
	if(!cmd_access(index, level, cid, 3)) return PLUGIN_HANDLED;
	
	new arg [32]
	read_argv (1, arg, 31)
	
	new AddXP [32]
	read_argv (2, AddXP, charsmax (AddXP))
	
	new XPtoGive = str_to_num (AddXP)
	
	new AdminName [32]
	new TargetName [32]
	get_user_name (index, AdminName, charsmax (AdminName))
	
	if(arg[0]=='@')
	{
		if(equali(arg[1],"All") || equali(arg[1],"ALL"))
		{
			new players[32], totalplayers, All
			get_players(players, totalplayers)
			
			for (new i = 0; i < totalplayers; i++)
			{
				All = players[i]
				
				XP[All] += XPtoGive
			}
			
			CheckLevel(All)
			ColorChat(0, NORMAL, "^4[%s] ^1ADMIN: ^3%s^1 gave^4 %i XP^1 to everyone!", getPrefix(), AdminName, XPtoGive)
		}
		else if(equali(arg[1],"T") || equali(arg[1],"t"))
		{
			new players[32], totalplayers, T
			get_players(players, totalplayers)
			
			for (new i = 0; i < totalplayers; i++)
			{
				if (get_user_team(players[i]) == 1)
				{
					T = players[i]
					
					XP[T] += XPtoGive
				}
			}
			
			CheckLevel(T)
			ColorChat(0, RED, "^4[%s]^1 ADMIN: ^4%s ^1gave ^4%i XP ^1to all ^3Terrorists^1.", getPrefix(), AdminName, XPtoGive)
		}
		else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
		{
			new players[32], totalplayers, CT
			get_players(players, totalplayers)
			
			for(new i = 0; i < totalplayers; i++)
			{
				if(get_user_team(players[i]) == 2)
				{
					CT = players[i]
					
					XP[CT] += XPtoGive
				}
			}
			
			CheckLevel(CT)
			ColorChat(0, BLUE, "^4[%s]^1ADMIN: ^4%s^1 gave^4 %i XP^1to all ^3Counter-Terrorists^1.", getPrefix(), AdminName, XPtoGive)
		}
	}
	else
	{
		new iTarget = cmd_target(index, arg, 3)
		get_user_name (iTarget, TargetName, charsmax (TargetName))
		
		if(iTarget)
		{
			XP[iTarget] += XPtoGive
			
			CheckLevel(iTarget)
			ColorChat(0, NORMAL, "^4[%s]^1 ADMIN: ^3%s^1 gave^4 %i XP^1 to^4 %s^1.", getPrefix(), AdminName, XPtoGive, TargetName)
		}
	}
	return PLUGIN_HANDLED
}
public CmdRemoveXP (index, level, cid)
{
	if(!cmd_access(index, level, cid, 3)) return PLUGIN_HANDLED;
	
	new arg [32]
	read_argv (1, arg, 31)
	
	new RemoveXP [32]
	read_argv (2, RemoveXP, charsmax (RemoveXP))
	
	new XPtoTook = str_to_num (RemoveXP)
	
	new AdminName [32]
	new TargetName [32]
	get_user_name (index, AdminName, charsmax (AdminName))
	
	if(arg[0]=='@')
	{
		if(equali(arg[1],"All") || equali(arg[1],"ALL"))
		{
			new players[32], totalplayers, All
			get_players(players, totalplayers)
			
			for (new i = 0; i < totalplayers; i++)
			{
				All = players[i]
				
				XP[All] -= XPtoTook
			}
			
			CheckLevel(All)
			ColorChat(0, NORMAL, "^4[%s] ^1ADMIN: ^3%s^1 took^4 %i XP^1 from everyone!", getPrefix(), AdminName, XPtoTook)
		}
		else if(equali(arg[1],"T") || equali(arg[1],"t"))
		{
			new players[32], totalplayers, T
			get_players(players, totalplayers)
			
			for (new i = 0; i < totalplayers; i++)
			{
				if (get_user_team(players[i]) == 1)
				{
					T = players[i]
					
					XP[T] -= XPtoTook
				}
			}
			
			CheckLevel(T)
			ColorChat(0, RED, "^4[%s]^1 ADMIN: ^4%s ^1took ^4%i XP ^1from all ^3Terrorists^1.", getPrefix(), AdminName, XPtoTook)
		}
		else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
		{
			new players[32], totalplayers, CT
			get_players(players, totalplayers)
			
			for(new i = 0; i < totalplayers; i++)
			{
				if(get_user_team(players[i]) == 2)
				{
					CT = players[i]
					
					XP[CT] -= XPtoTook
				}
			}
			
			CheckLevel(CT)
			ColorChat(0, BLUE, "^4[%s]^1ADMIN: ^4%s^1 took^4 %i XP^1from all ^3Counter-Terrorists^1.", getPrefix(), AdminName, XPtoTook)
		}
	}
	else
	{
		new iTarget = cmd_target(index, arg, 3)
		get_user_name (iTarget, TargetName, charsmax (TargetName))
		
		if(iTarget)
		{
			XP[iTarget] -= XPtoTook
			
			CheckLevel(iTarget)
			ColorChat(0, NORMAL, "^4[%s]^1 ADMIN: ^3%s^1 took^4 %i XP^1 from^4 %s^1.", getPrefix(), AdminName, XPtoTook, TargetName)
		}
	}
	return PLUGIN_HANDLED
}

public avoid_duplicated(msgId, msgDest, receiver)
{
	return PLUGIN_HANDLED
}

/*public hook_say(id)
{
if(!is_user_connected(id)) {
	return PLUGIN_HANDLED_MAIN
}

read_args(szArgs, 191)
remove_quotes(szArgs)
	
// Gungame commands and empty messages
if(szArgs[0] == '@' || szArgs[0] == '/' || szArgs[0] == '!' || szArgs[0] == '#' || szArgs[0] == '$' || equal(szArgs, "")) // Ignores Admin Hud Messages, Admin Slash commands
	return PLUGIN_CONTINUE

new iAlive = is_user_alive(id)
new CsTeams:iTeam = cs_get_user_team(id)

new iPlayers[ 32 ], iNum
get_players(iPlayers, iNum)

new szName[32]
get_user_name(id, szName, sizeof szName-1)

new const szPrefixes[2][CsTeams][] = {
{
	"^1*DEAD* ",
	"^1*DEAD* ",
	"^1*DEAD* ",
	"^1*SPEC* "
},
{
	"",
	"",
	"",
	""
}
}
if(get_pcvar_num(UseAdminPrefixes) == 1){

set_pcvar_num(UseRankSystem, 0)
set_pcvar_num(UseBoth, 0)

new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
				iAdmin = 1
else if(iFlags & ADMIN_TWO)
				iAdmin = 2
else if(iFlags & ADMIN_THREE)
				iAdmin = 3
else if(iFlags & ADMIN_FOUR)
				iAdmin = 4
else if(iFlags & ADMIN_FIVE)
				iAdmin = 5
else if(iFlags & ADMIN_SIX)
				iAdmin = 6

	
	
if(iFlags & ADMIN_ONE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_TWO) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_THREE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FOUR) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FIVE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_SIX) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
	ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
	ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
	}
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseRankSystem) == 1){
	
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseBoth, 0)
	
new iFlags = get_user_flags(id)
	
if(iFlags & ADMIN_ONE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_TWO) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_THREE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FOUR) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FIVE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_SIX) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
	ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
	ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
	}
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseBoth) == 1){
	
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseRankSystem, 0)
	
new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
				iAdmin = 1
else if(iFlags & ADMIN_TWO)
				iAdmin = 2
else if(iFlags & ADMIN_THREE)
				iAdmin = 3
else if(iFlags & ADMIN_FOUR)
				iAdmin = 4
else if(iFlags & ADMIN_FIVE)
				iAdmin = 5
else if(iFlags & ADMIN_SIX)
				iAdmin = 6

	
	
if(iFlags & ADMIN_ONE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_TWO) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_THREE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FOUR) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FIVE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_SIX) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^1[^4%s^1] ^3[^4%s^3] ^3%s : ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
}  else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
	ColorChat(0, BLUE, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
	ColorChat(0, RED, "%s^1[^4%s^1] ^3%s : ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
	}
}
return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseAdminPrefixes) == 0 && get_pcvar_num(UseRankSystem) == 0 && get_pcvar_num(UseBoth) == 0)
{
	if(cs_get_user_team(id) == CS_TEAM_CT) {
	ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam],szName, szArgs)
	}
	
}
return PLUGIN_HANDLED_MAIN
}

public hook_teamsay(id) {
if(!is_user_connected(id)) {
	return PLUGIN_HANDLED_MAIN
}

read_args(szArgs, 191)
remove_quotes(szArgs)
	
// Gungame commands and empty messages
if(szArgs[0] == '@' || szArgs[0] == '/' || szArgs[0] == '!' || szArgs[0] == '#' || szArgs[0] == '$' || equal(szArgs, "")) // Ignores Admin Hud Messages, Admin Slash commands
	return PLUGIN_CONTINUE

new iAlive = is_user_alive(id)
new CsTeams:iTeam = cs_get_user_team(id)

new iPlayers[32], iNum
get_players(iPlayers, iNum)

new szName[32]
get_user_name(id, szName, sizeof szName-1)

new const szPrefixes[2][CsTeams][] = {
{
	"^3(Spectator) ",
	"^1*DEAD* ^3(Terrorist) ",
	"^1*DEAD* ^3(Counter-Terrorist) ",
	"^3(Spectator) "
},
{
"^3(Spectator) ",
"^3(Terrorist) ",
"^3(Counter-Terrorist) ",
"^3(Spectator) "
}
}
if(get_pcvar_num(UseAdminPrefixes) == 1){

set_pcvar_num(UseRankSystem, 0)
set_pcvar_num(UseBoth, 0)

new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
				iAdmin = 1
else if(iFlags & ADMIN_TWO)
				iAdmin = 2
else if(iFlags & ADMIN_THREE)
				iAdmin = 3
else if(iFlags & ADMIN_FOUR)
				iAdmin = 4
else if(iFlags & ADMIN_FIVE)
				iAdmin = 5
else if(iFlags & ADMIN_SIX)
				iAdmin = 6

	
	
if(iFlags & ADMIN_ONE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_TWO) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_THREE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FOUR) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FIVE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_SIX) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],szTag[iAdmin], szName, szArgs)
	}
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
	ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
	ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
	}
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseRankSystem) == 1){
	
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseBoth, 0)
	
new iFlags = get_user_flags(id)
	
if(iFlags & ADMIN_ONE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_TWO) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_THREE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FOUR) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FIVE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_SIX) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam],Prefix[Lvl[id]], szName, szArgs)
	}
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
	ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
	ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
	}
}

return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseBoth) == 1){
	
set_pcvar_num(UseAdminPrefixes, 0)
set_pcvar_num(UseRankSystem, 0)
	
new iAdmin = 0, iFlags = get_user_flags(id)

if(iFlags & ADMIN_ONE)
				iAdmin = 1
else if(iFlags & ADMIN_TWO)
				iAdmin = 2
else if(iFlags & ADMIN_THREE)
				iAdmin = 3
else if(iFlags & ADMIN_FOUR)
				iAdmin = 4
else if(iFlags & ADMIN_FIVE)
				iAdmin = 5
else if(iFlags & ADMIN_SIX)
				iAdmin = 6

	
	
if(iFlags & ADMIN_ONE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_TWO) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_THREE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FOUR) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_FIVE) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else 
if(iFlags & ADMIN_SIX) {
	if(cs_get_user_team(id) == CS_TEAM_CT) {
		ColorChat(0, BLUE, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, RED, "%s^3[^4%s^3] ^3[^4%s^3] ^3%s^1: ^4%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szTag[iAdmin], szName, szArgs)
	}
} else {
if(cs_get_user_team(id) == CS_TEAM_CT) {
	ColorChat(0, BLUE, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
}else if(cs_get_user_team(id) == CS_TEAM_T) {
	ColorChat(0, RED, "%s^3[^4%s^3] ^3%s^4: ^1%s", szPrefixes[iAlive][iTeam], Prefix[Lvl[id]], szName, szArgs)
	}
}
return PLUGIN_HANDLED_MAIN
}

if(get_pcvar_num(UseAdminPrefixes) == 0 && get_pcvar_num(UseRankSystem) == 0 && get_pcvar_num(UseBoth) == 0)
{
	if(cs_get_user_team(id) == CS_TEAM_CT) {
	ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam], szName, szArgs)
	} else if(cs_get_user_team(id) == CS_TEAM_T) {
		ColorChat(0, NORMAL, "%s^3%s^1: %s", szPrefixes[iAlive][iTeam],szName, szArgs)
	}
	
}
return PLUGIN_HANDLED_MAIN
}*/

public Save(id)
{
	new name[32];
	get_user_name(id,name,31);
	new vaultkey[64],vaultdata[256];
	
	format(vaultkey,63,"%s", name);
	format(vaultdata,255,"%i#%i#",XP[id],Lvl[id]);
	fvault_set_data(g_vault_name,vaultkey,vaultdata);
	
	return PLUGIN_CONTINUE;
}
public Load(id)
{
	new name[32];
	get_user_name(id,name,31);
	new vaultkey[64],vaultdata[256];
	
	format(vaultkey,63,"%s",name);
	format(vaultdata,255,"%i#%i#",XP[id],Lvl[id]);
	fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata));
	
	replace_all(vaultdata, 255, "#", " ");
	new playerxp[32], playerlevel[32];
	parse(vaultdata, playerxp, 31, playerlevel, 31);
	
	XP[id] = str_to_num(playerxp);
	Lvl[id] = str_to_num(playerlevel);
	
	return PLUGIN_CONTINUE;
}
public changeTeamInfo(player, team[])
{
	message_begin(MSG_ONE, teamInfo, _, player)    // Tells to to modify teamInfo(Which is responsable for which time player is)
	write_byte(player)                // Write byte needed
	write_string(team)                // Changes player's team
	message_end()                    // Also Needed
}

public writeMessage(player, szArgs[])
{
	message_begin(MSG_ONE, sayText, {0, 0, 0}, player)    // Tells to modify sayText(Which is responsable for writing colored messages)
	write_byte(player)                    // Write byte needed
	write_string(szArgs)                    // Effectively write the message, finally, afterall
	message_end()                        // Needed as always
}
 
public plugin_natives()
	register_native("get_rank_prefix", "_get_rank_prefix")
	
public _get_rank_prefix(iPlugin, iParams)
	set_string(2, Prefix[Lvl[get_param(1)]], get_param(3))

Аватар
Drea<M>40BG ;]]
Извън линия
Потребител
Потребител
Мнения: 750
Регистриран на: 11 Окт 2016, 11:35
Се отблагодари: 115 пъти
Получена благодарност: 63 пъти
Обратна връзка:

Заявка за съединяване на OCIXCROM CHATMANAGER & RANK SYSTEM

Мнение от Drea<M>40BG ;]] » 23 Яну 2018, 19:30

LOCK

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

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

Кой е на линия

Потребители разглеждащи този форум: Bing [Bot] и 17 госта