Jump to content

RF_Spam


Batranu Bumi

Recommended Posts

# Descriere:  acesta da kick la playeri care intra cu 3 ip-uri identice si kick daca repeta aceasi mesaj , ii extras dintr-o protectie mare 
# Download:http://www.amxmodx.org/webcompiler.cgi?go=dl&id=1796128
# Nume: RF_Spam
# Versiunea:1.0
# Instalare:

=> Fisierul RF_Spam.sma il puneti in addons/amxmodx/scripting 
=> Fisierul RF_Spam.amxx il puneti in addons/amxmodx/plugins 
=> Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
RF_Spam.amxx

 

Sma=>

#include <amxmodx>

new g_msg_saytext, g_maxplayers;

new g_messages[33];

public plugin_init()
{
	register_plugin("RF_Spam", "1.0", "Bumi");
	
	register_clcmd("say", "check_say");
	
	g_msg_saytext = get_user_msgid("SayText");
	g_maxplayers = get_maxplayers();
}

public client_connect(id)
{
	if(fnGetSameIP(id) > 3)
		server_cmd("kick #%d ^"Nu au voie mai multi de 3 jucatori cu acelasi IP!", get_user_userid(id));
}

public block_jointeam(id)
	return PLUGIN_HANDLED;

public client_putinserver(id)
{
	g_messages[id] = 0;
	if(!(get_user_flags(id) & ADMIN_SLAY))
	{
		set_user_info(id, "vgui_menus", "0");
		set_user_info(id, "_vgui_menus", "0");
	}
}

public check_say(id)
{
	if(get_user_team(id) == 0)
	{
		g_messages[id]++
		if(g_messages[id] > 3)
			kickBot(id);
			
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

public kickBot(id)
{
	static name[32];
	get_user_name(id, name, charsmax(name));
	color(0, ".v[RF].e %s.g a fost dat afara pentru spambot.", name);
	server_cmd("kick #%d ^"Bot pentru chat detectat^"", get_user_userid(id));
}

stock color(const id, const input[], any:...)
{
	new count = 1, players[32];
	static msg[191]
	vformat(msg, 190, input, 3)
	
	replace_all(msg, 190, ".v", "^4")
	replace_all(msg, 190, ".g", "^1")
	replace_all(msg, 190, ".e", "^3")
	
	if(id) players[0] = id; else get_players(players, count, "ch")
	{
		for (new i = 0; i < count; i++)
		{
			if(is_user_connected(players[i]))
			{
				message_begin(MSG_ONE_UNRELIABLE, g_msg_saytext, _, players[i])
				write_byte(players[i])
				write_string(msg)
				message_end()
			}
		}
	}
}

public fnGetSameIP(id)
{
	static same_ip, ip[32], ip_from_player[32];
	get_user_ip(id, ip, charsmax(ip), 1);
	same_ip = 0;
	for(new x = 1; x <= g_maxplayers; x++)
	{
		if(!is_user_connected(x) || id == x)
			continue;
			
		get_user_ip(x, ip_from_player, charsmax(ip_from_player), 1);
		if(equal(ip, ip_from_player))
			same_ip++
	}
	return same_ip;
}
  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...