Admin Chat Colors (Prefix) + City & Country Chat

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
metamod
Извън линия
Потребител
Потребител
Мнения: 63
Регистриран на: 07 Апр 2018, 11:06
Се отблагодари: 4 пъти
Обратна връзка:

Admin Chat Colors (Prefix) + City & Country Chat

Мнение от metamod » 08 Апр 2018, 17:55

Здравейте,искам да попитам как да оправя това със изписването на градовете пред ник-а на играча със cvar-овете type_chat излиза единствено "[ ]" като му задам стойността.

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

#include <amxmodx>
#include <amxmisc>
#include <geoip>

#define PLUGIN "Admin Chat Colors"
#define VERSION "2.2a"
#define AUTHOR "Arion/juan/WaLkZ"

#define ACCESS_LEVEL		ADMIN_IMMUNITY
#define HEAD_CHAT_FLAG		ADMIN_LEVEL_B
#define ADMIN_CHAT_FLAG		ADMIN_LEVEL_C
#define TEST_CHAT_FLAG		ADMIN_LEVEL_D
#define SMS_CHAT_FLAG		ADMIN_LEVEL_E
#define VIP_CHAT_FLAG		ADMIN_LEVEL_F

new message[192]
new sayText
new teamInfo
new maxPlayers

new g_MessageColor
new g_NameColor
new g_AllListen
new g_TypeChat

new strName[191]
new strText[191]
new alive[11]

new const g_szTag[][] =
{
	"",
	"[Head Admin]",
	"[ADMIN]",
	"[Test Admin]",
	"[SMS Admin]",
	"[VIP]"
}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	g_MessageColor = register_cvar("amx_color", "3") // Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red
	g_NameColor = register_cvar("amx_namecolor", "6") // Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
	g_AllListen = register_cvar("amx_listen", "1")
	g_TypeChat = register_cvar("type_chat", "1")
	
	sayText = get_user_msgid("SayText")
	teamInfo = get_user_msgid("TeamInfo")
	maxPlayers = get_maxplayers()
	
	register_message(sayText, "avoid_duplicated")
	
	register_concmd("amx_color", "set_color", ACCESS_LEVEL, "<color>")
	register_concmd("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
	register_concmd("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
	register_clcmd("say", "hook_say")
	register_clcmd("say_team", "hook_teamsay")
}

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

public hook_say(id)
{
	read_args(message, 191)
	remove_quotes(message)
	
	// Gungame commands and empty messages
	if(message[0] == '@' || message[0] == '/' || message[0] == '!' || message[0] == '#' || message[0] == '$' || equal(message, "")) // Ignores Admin Hud Messages, Admin Slash commands
		return PLUGIN_CONTINUE
	
	new name[32]
	get_user_name(id, name, 31)
	
	new UserIp[16]
	get_user_ip(id, UserIp, 15)
	
	new UserCity[45], UserCountry[45]
	geoip_city(UserIp, UserCity, charsmax(UserCity))
	geoip_country(UserIp, UserCountry, charsmax(UserCountry))
	
	new admin = 0, iFlags = get_user_flags(id)
	
	if(iFlags & HEAD_CHAT_FLAG)
		admin = 1
	else if(iFlags & ADMIN_CHAT_FLAG)
		admin = 2
	else if(iFlags & TEST_CHAT_FLAG)
		admin = 3
	else if(iFlags & SMS_CHAT_FLAG)
		admin = 4
	else if(iFlags & VIP_CHAT_FLAG)
		admin = 5
		
	new isAlive
	
	if(is_user_alive(id))
	{
		isAlive = 1
		alive = "^x01"
	}
	else
	{
		isAlive = 0
		alive = "^x01*DEAD* "
	}
	
	static color[10]
	
	if(admin)
	{
		// Name
		switch(get_pcvar_num(g_NameColor))
		{
			case 1: formatex(strName, 191, "%s^x03%s %s", alive, g_szTag[admin], name)
			case 2: formatex(strName, 191, "%s^x03%s ^x04%s", alive, g_szTag[admin], name)
			case 3:
			{
				color = "SPECTATOR"
				formatex(strName, 191, "%s^x03%s ^x04%s", alive, g_szTag[admin], name)
			}
			case 4:
			{
				color = "CT"
				formatex(strName, 191, "%s^x03%s ^x04%s", alive, g_szTag[admin], name)
			}
			case 5:
			{
				color = "TERRORIST"
				formatex(strName, 191, "%s^x03%s ^x04%s", alive, g_szTag[admin], name)
			}
			case 6:
			{
				get_user_team(id, color, 9)
				formatex(strName, 191, "%s^x03%s ^x04%s", alive, g_szTag[admin], name)
			}
		}
		
		// Message
		switch(get_pcvar_num(g_MessageColor))
		{
			case 1: formatex(strText, 191, "%s", message) // Yellow
			case 2: formatex(strText, 191, "^x04%s", message) // Green
			case 3:
			{
				copy(color, 9, "SPECTATOR")
				formatex(strText, 191, "^x03%s", message) // White
			}
			case 4:
			{
				copy(color, 9, "CT")
				formatex(strText, 191, "^x03%s", message) // Blue
			}
			case 5:
			{
				copy(color, 9, "TERRORIST")
				formatex(strText, 191, "^x03%s", message) // Red
			}
		}
	}
	else  // Player is not admin. Team-color name : Yellow message
	{
		get_user_team(id, color, 9)
		switch(get_pcvar_num(g_TypeChat))
		{
			case 1: formatex(strName, 191, "%s^x04[%s] ^x03%s", alive, UserCity, name)
			case 2: formatex(strName, 191, "%s^x04[%s] ^x03%s", alive, UserCountry, name)
			case 3: formatex(strName, 191, "%s^x04[%s^x01|^x04%s] ^x03%s", alive, UserCountry, UserCity, name)
			default: formatex(strName, 191, "%s^x03%s", alive, name)
		}
		formatex(strText, 191, "%s", message)
	}
	
	formatex(message, 191, "%s^x01 : %s", strName, strText)
	
	sendMessage(color, isAlive)    // Sends the colored message
	
	return PLUGIN_CONTINUE
}

public hook_teamsay(id)
{
	new playerTeam = get_user_team(id)
	new playerTeamName[19]
	
	switch(playerTeam) // Team names which appear on team-only messages
	{
		case 1: copy(playerTeamName, 11, "Terrorists")
		case 2: copy(playerTeamName, 18, "Counter-Terrorists")
		default: copy(playerTeamName, 9, "Spectator")
	}
	
	read_args(message, 191)
	remove_quotes(message)
	
	// Gungame commands and empty messages
	if(message[0] == '@' || message[0] == '/' || message[0] == '!' || message[0] == '#' || message[0] == '$' || equal(message, "")) // Ignores Admin Hud Messages, Admin Slash commands
		return PLUGIN_CONTINUE
		
	new name[32]
	get_user_name(id, name, 31)
	
	new UserIp[16]
	get_user_ip(id, UserIp, 15)
	
	new UserCity[45], UserCountry[45]
	geoip_city(UserIp, UserCity, charsmax(UserCity))
	geoip_country(UserIp, UserCountry, charsmax(UserCountry))
	
	new admin = 0, iFlags = get_user_flags(id)
	
	if(iFlags & HEAD_CHAT_FLAG)
		admin = 1
	else if(iFlags & ADMIN_CHAT_FLAG)
		admin = 2
	else if(iFlags & TEST_CHAT_FLAG)
		admin = 3
	else if(iFlags & SMS_CHAT_FLAG)
		admin = 4
	else if(iFlags & VIP_CHAT_FLAG)
		admin = 5
		
	new isAlive
	
	if(is_user_alive(id))
	{
		isAlive = 1
		alive = "^x01"
	}
	else
	{
		isAlive = 0
		alive = "^x01*DEAD* "
	}
	
	static color[10]
	
	if(admin)
	{
		// Name
		switch(get_pcvar_num(g_NameColor))
		{
			case 1: formatex(strName, 191, "%s(%s) ^x03%s %s", alive, playerTeamName, g_szTag[admin], name)
			case 2: formatex(strName, 191, "%s(%s) ^x03%s ^x04%s", alive, playerTeamName, g_szTag[admin], name)
			case 3:
			{
				color = "SPECTATOR"
				formatex(strName, 191, "%s(%s) ^x03%s ^x04%s", alive, playerTeamName, g_szTag[admin], name)
			}
			case 4:
			{
				color = "CT"
				formatex(strName, 191, "%s(%s) ^x03%s ^x04%s", alive, playerTeamName, g_szTag[admin], name)
			}
			case 5:
			{
				color = "TERRORIST"
				formatex(strName, 191, "%s(%s) ^x03%s ^x04%s", alive, playerTeamName, g_szTag[admin], name)
			}
			case 6:
			{
				get_user_team(id, color, 9)
				formatex(strName, 191, "%s(%s) ^x03%s ^x04%s", alive, playerTeamName, g_szTag[admin], name)
			}
		}
		
		// Message
		switch(get_pcvar_num(g_MessageColor))
		{
			case 1: formatex(strText, 191, "%s", message) // Yellow
			case 2: formatex(strText, 191, "^x04%s", message) // Green
			case 3:
			{
				copy(color, 9, "SPECTATOR")
				formatex(strText, 191, "^x03%s", message) // White
			}
			case 4:
			{
				copy(color, 9, "CT")
				formatex(strText, 191, "^x03%s", message) // Blue
			}
			case 5:
			{
				copy(color, 9, "TERRORIST")
				formatex(strText, 191, "^x03%s", message) // Red
			}
		}
	}
	else  // Player is not admin. Team-color name : Yellow message
	{
		get_user_team(id, color, 9)
		switch(get_pcvar_num(g_TypeChat))
		{
			case 1: formatex(strName, 191, "%s(%s) ^x04[%s] ^x03%s", alive, playerTeamName, UserCity, name)
			case 2: formatex(strName, 191, "%s(%s) ^x04[%s] ^x03%s", alive, playerTeamName, UserCountry, name)
			case 3: formatex(strName, 191, "%s(%s) ^x04[%s^x01|^x04%s] ^x03%s", alive, playerTeamName, UserCountry, UserCity, name)
			default: formatex(strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name)
		}
		formatex(strText, 191, "%s", message)
	}
	
	formatex(message, 191, "%s ^x01: %s", strName, strText)
	
	sendTeamMessage(color, isAlive, playerTeam)    // Sends the colored message
	
	return PLUGIN_CONTINUE
}

public set_color(id, level, cid)
{
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED
		
	new arg[1], newColor
	read_argv(1, arg, 1)
	
	newColor = str_to_num(arg)
	
	if(newColor >= 1 && newColor <= 5)
	{
		set_pcvar_num(g_MessageColor, newColor)
		
		if(get_pcvar_num(g_NameColor) != 1 &&
		((newColor == 3 &&  get_pcvar_num(g_NameColor) != 3)
		||(newColor == 4 &&  get_pcvar_num(g_NameColor) != 4)
		||(newColor == 5 &&  get_pcvar_num(g_NameColor) != 5)))
		{
			set_pcvar_num(g_NameColor, 2)
		}
	}
	
	return PLUGIN_HANDLED
}


public set_name_color(id, level, cid)
{
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED
		
	new arg[1], newColor
	read_argv(1, arg, 1)
	
	newColor = str_to_num(arg)
	
	if(newColor >= 1 && newColor <= 6)
	{
		set_pcvar_num(g_NameColor, newColor)
		
		if((get_pcvar_num(g_MessageColor) != 1
		&&((newColor == 3 &&  get_pcvar_num(g_MessageColor) != 3)
		||(newColor == 4 &&  get_pcvar_num(g_MessageColor) != 4)
		||(newColor == 5 &&  get_pcvar_num(g_MessageColor) != 5)))
		|| get_pcvar_num(g_NameColor) == 6)
		{
			set_pcvar_num(g_MessageColor, 2)
		}
	}
	
	return PLUGIN_HANDLED
}

public set_listen(id, level, cid)
{
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED
		
	new arg[1], newListen
	read_argv(1, arg, 1)
	
	newListen = str_to_num(arg)
	
	set_pcvar_num(g_AllListen, newListen)
	
	return PLUGIN_HANDLED
}

public sendMessage(color[], alive)
{
	new teamName[10]
	
	for(new player = 1; player < maxPlayers; player++)
	{
		if(!is_user_connected(player))
			continue
		
		if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AllListen))
		{
			get_user_team(player, teamName, 9)    // Stores user's team name to change back after sending the message
			changeTeamInfo(player, color)        // Changes user's team according to color choosen
			writeMessage(player, message)        // Writes the message on player's chat
			changeTeamInfo(player, teamName)    // Changes user's team back to original
		}
	}
}

public sendTeamMessage(color[], alive, playerTeam)
{
	new teamName[10]
	
	for(new player = 1; player < maxPlayers; player++)
	{
		if(!is_user_connected(player))
			continue
		
		if(get_user_team(player) == playerTeam || get_pcvar_num(g_AllListen))
		{
			if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AllListen))
			{
				get_user_team(player, teamName, 9)    // Stores user's team name to change back after sending the message
				changeTeamInfo(player, color)        // Changes user's team according to color choosen
				writeMessage(player, message)        // Writes the message on player's chat
				changeTeamInfo(player, teamName)    // Changes user's team back to original
			}
		}
	}
}

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, message[])
{
	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(message)                    // Effectively write the message, finally, afterall
	message_end()                        // Needed as always
}
CS-DOWN.bg # RespawN IP: 93.123.18.42:27015

Аватар
hackera457
Извън линия
Модератор
Модератор
Мнения: 768
Регистриран на: 01 Ное 2016, 09:46
Местоположение: София
Се отблагодари: 1 път
Получена благодарност: 124 пъти
Обратна връзка:

Admin Chat Colors (Prefix) + City & Country Chat

Мнение от hackera457 » 08 Апр 2018, 19:41

Активирал ли си geoip в modules.ini?

Замени старият geoip с ТОЗИ
Моите плъгини

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

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


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

Admin Chat Colors (Prefix) + City & Country Chat

Мнение от OciXCrom » 08 Апр 2018, 19:55

Защо ползваш този стар и зле написан плъгин, който не се поддържа? Ползвай този, има всичко което искаш и кодът е 99 пъти по-добър.

Аватар
metamod
Извън линия
Потребител
Потребител
Мнения: 63
Регистриран на: 07 Апр 2018, 11:06
Се отблагодари: 4 пъти
Обратна връзка:

Admin Chat Colors (Prefix) + City & Country Chat

Мнение от metamod » 08 Апр 2018, 22:46

OciXCrom™ написа: 08 Апр 2018, 19:55 Защо ползваш този стар и зле написан плъгин, който не се поддържа? Ползвай този, има всичко което искаш и кодът е 99 пъти по-добър.
Благодаря,ще тествам със този дано всичко е както трябва.
CS-DOWN.bg # RespawN IP: 93.123.18.42:27015

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

Admin Chat Colors (Prefix) + City & Country Chat

Мнение от OciXCrom » 08 Апр 2018, 23:38

Заключвам темата. Ако имаш други въпроси/проблеми, пиши в темата на плъгина който ти дадох.

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

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

Кой е на линия

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