Jump to content

Plugin - Force Gag


Nasul K

Recommended Posts

- Nume plugin:Force Gag

- Autor:zorken / jailbreak

- Engine ( HLDS / SRCDS ) : hlds

- Versiune:1.2

- Informatii: Un gag care este foarte bun, salveaza pe ip gagurile si este anti reclama

- Download: 

#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define ACCESS 			ADMIN_KICK
#define FileLoc "addons/amxmodx/configs/cuvinte.ini"

new const tag[] = "!g[!tForce Gag!g]";

new g_Gag[2][33], warn[33]
new const g_vault_name[] = "gag"
new gvault
new g_Cvar[2]
new check_file
new Array:g_WArray

public plugin_precache()
{
	g_WArray = ArrayCreate(32)
	g_Cvar[0] = register_cvar("forcegag_fast", "1");
	g_Cvar[1] = register_cvar("forcegag_checkchat", "1");
	if(get_pcvar_num(g_Cvar[0]) > 0)
		Plugin_Zorken()
}

public plugin_init()	if(get_pcvar_num(g_Cvar[0]) <= 0)	Plugin_Zorken()
public plugin_end()
{
	nvault_close(gvault)
	ArrayDestroy(g_WArray)
}
public gag_cmd(id, level, cid)
{
	if(!cmd_access(id, level, cid, 4))
		return PLUGIN_HANDLED;  	
	
	new arg[32], arg2[32], arg3[32], arg4[32], szArg = charsmax(arg);
	new minutes;
	new bool:MultiGag = read_argc() == 5 ? true : false 
	
	read_argv(1, arg, szArg)
	
	new target2, target = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY|CMDTARGET_NO_BOTS)
	
	if (!target) 
		return PLUGIN_HANDLED
	
	read_argv(2, arg2, szArg);
	if(MultiGag == true)
	{
		target2 = cmd_target(id, arg2, CMDTARGET_OBEY_IMMUNITY|CMDTARGET_NO_BOTS)
		if (!target) 
			return PLUGIN_HANDLED

		if(g_Gag[0][target2])
		{
			console_print(id, "Jucatorul are deja gag!");
			return PLUGIN_HANDLED;
		}

		read_argv(3, arg3, szArg);
		minutes = str_to_num(arg3);
		read_argv(4, arg4, szArg);
		remove_quotes(arg4);
	}
	else
	{
		minutes = str_to_num(arg2);
		read_argv(3, arg4, szArg);
		remove_quotes(arg4);
	}

	if(minutes < 1||minutes > 10)
	{
		console_print(id, "Minut minim 1 si maxim 10");
		return PLUGIN_HANDLED;
	}
	
	if(g_Gag[0][target])
	{
		console_print(id, "Jucatorul are deja gag!");
		return PLUGIN_HANDLED;
	}

	new name[32], namet[32], namett[32];
	get_user_name(id, name, szArg);
	get_user_name(target, namet, szArg);
	if(MultiGag == true)
	{
		get_user_name(target2, namett, szArg);
		g_Gag[0][target2] = 1;
		g_Gag[1][target2] = minutes;
		print(0, "%s !g%s!n a dat gag jucatorilor!g %s!n si!g %s!n pentru [!t%d!n] minut%s.", tag, name, namet, namett, minutes, (minutes == 1 ? "" : "e"));
	}
	else
		print(0, "%s !g%s!n a dat gag jucatorului!g %s!n pentru [!t%d!n] minut%s.", tag, name, namet, minutes, (minutes == 1 ? "" : "e"));

	print(0, "%s !nMotiv: !g%s", tag, arg4);
	g_Gag[0][target] = 1;
	g_Gag[1][target] = minutes;
	
	set_task(60.0, "count", target + 123, _, _, "b");
	return PLUGIN_HANDLED;
}
public ungag_cmd(id,level, cid)
{
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED;
	
	new arg[32];
	read_argv(1, arg, charsmax(arg));
	
	new target = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY|CMDTARGET_NO_BOTS);
	if(!target)
		return PLUGIN_HANDLED;

	new namet[32];
	get_user_name(target, namet, charsmax(namet));
	
	if(!g_Gag[0][target])
	{
		console_print(id, "Jucatorul %s nu are gag.", namet);
		return PLUGIN_HANDLED;
	}

	new name[32]
	get_user_name(id, name, charsmax(name));

	g_Gag[0][target] = 0

	remove_task(target+123);
	
	print(0, "%s !g%s!n a dat ungag jucatorului!g %s",tag, name, namet);
	log_amx("%s a dat ungag lui %s",name,namet)
	
	return PLUGIN_HANDLED;
}

public count(task)
{
	new index = task - 123;
	if(!is_user_connected(index))
		return 0;
	
	g_Gag[1][index] -= 1;
	
	if(g_Gag[1][index] <= 0)
	{
		remove_task(index+123);
		if(index != 0)
			print(index, "%s!n Ai primit UnGag cu succes!",tag);

		g_Gag[0][index] = 0;
		return 0;
	}
	
	return 1;
}

public check(id)
{
	if(g_Gag[0][id])
	{
		print(id,"%s !nTACI MA DISPERATULE!!!!!!!!",tag);
		print(id,"%s !nAsteapta si tu !g%i !tminut%s !nca nu mori...",tag,g_Gag[1][id],g_Gag[1][id] == 1 ? "" : "e");
		if(g_Gag[0][id] == 2) 
		{
			print(id,"%s !nData viitoare lasa reclama sau limbaju.",tag);
		}
		return PLUGIN_HANDLED;
	}
	else if(get_pcvar_num(g_Cvar[1]) > 0 && check_file == 1)
	{
		new said[192];
		read_args(said, charsmax(said));
	
		if(!strlen(said))
			return PLUGIN_CONTINUE;

		trim(said)

		replace_all(said,191," ","")
		replace_all(said,191,"[","")
		replace_all(said,191,"]","")
		replace_all(said,191,",","")
		replace_all(said,191,"/","")
		replace_all(said,191,"\","")
		replace_all(said,191,";","")
		replace_all(said,191,":","")
		replace_all(said,191,"(","")
		replace_all(said,191,")","")

		new szTemp[32]

		for(new i = 0; i < ArraySize(g_WArray); ++i)
		{
			ArrayGetString(g_WArray, i, szTemp, 31)
			if(containi(said, szTemp) != -1)
			{
				new strg[50]
				warn[id] += 1
				switch(random_num( 1, 10 ))
				{
					case 1: formatex(strg, charsmax(strg), "Ce tare e serverul :x")
					case 2: formatex(strg, charsmax(strg), "Imi place sv si sunt gay :x")
					case 3: formatex(strg, charsmax(strg), "Imi place sv, am sa intru mereu")
					case 4: formatex(strg, charsmax(strg), "Mama tare sv, pacat ca sunt blond")
					case 5: formatex(strg, charsmax(strg), "Care a indraznit sa-mi deschida cusca?")
					case 6: formatex(strg, charsmax(strg), "La ce prost sunt am licenta")
					case 7: formatex(strg, charsmax(strg), "Imi pute puta de la labusca")
					case 8: formatex(strg, charsmax(strg), "Imi miroase a ****, unde e?")
					case 9: formatex(strg, charsmax(strg), "Caut gigolo cu **** mare")
					case 10: formatex(strg, charsmax(strg), "Doamneee, iubesc sv asta")
				}
				engclient_cmd(id, "say", strg);
				if(warn[id] == 3)
				{
					g_Gag[0][id] = 2;
					g_Gag[1][id] = 3;
					print(id, "%s!n Ai gag pentru limbaj vulgar sau reclama.",tag);
					new name[33]
					get_user_name(id,name,charsmax(name))
					log_amx("%s a facut reclama/lbj",name)
					set_task(60.0, "count",id+123,_,_,"b");
					warn[id] = 0;
				}
				else
				{
					print(id, "%s!n Ai primit un craniu pentru limbaj urat.",tag)
					print(id, "%s!n La 3 crani ai Gag.",tag)
				}
				return PLUGIN_HANDLED;
			}
		}
		
	}
	
	return PLUGIN_CONTINUE;
}
public client_putinserver(id)	LoadGag(id)
public client_disconnect(id) 
{ 
	SaveGag(id)
	if(g_Gag[0][id]) 
	{
		new Nick[32]
		get_user_name(id,Nick,charsmax(Nick))
		if(!(get_user_flags(id) & ADMIN_KICK))
		{
			new usrip[32]
			get_user_ip(id,usrip,charsmax(usrip));
			print(0, "%s !nJucatorul cu gag!g %s!t[IP:!g %s!t] a parasit serverul.",tag,Nick,usrip)
		}
		else
			print(0, "%s !nJucatorul cu gag!g %s!t a parasit serverul.",tag,Nick)

		g_Gag[0][id] = 0;
	}
}
public anunt(id)	print(id, "%s !nAi primit 10 minute gag.",tag)

LoadGag(id)
{
	new authid[35]
	get_user_ip(id, authid, charsmax(authid))
	
	new data[16]; 
	if(nvault_get(gvault, authid, data, 15)) 
	{ 
		g_Gag[0][id] = str_to_num(data)
		if(g_Gag[0][id])
		{
			g_Gag[1][id] = 10
			set_task(4.0,"anunt",id)
			set_task(60.0, "count", id + 123, _, _, "b");
		}
	}
}

SaveGag(id)
{
	new authid[32]
	get_user_ip(id, authid, charsmax(authid))
	
	new data[16]
	num_to_str(g_Gag[0][id], data, charsmax(data))
	
	nvault_set(gvault, authid, data)
}
Plugin_Zorken()
{
	register_plugin("Force Gag", "1.2", "zorken")

	register_cvar("forcegag_v", "1.2", FCVAR_SERVER|FCVAR_SPONLY);

	register_concmd("amx_gag", "gag_cmd", ACCESS,"- <nume> <nume/minute> <minute/motiv> <motiv*>");
	register_concmd("amx_ungag", "ungag_cmd", ACCESS, "- <nume> - Scoate gagul");
	register_clcmd("say", "check");
	register_clcmd("say_team", "check");
	gvault = nvault_open(g_vault_name);

	if(file_exists(FileLoc))
	{
		new Line[32],Len
		for(new i; i < file_size(FileLoc, 1); i++)
		{
			read_file(FileLoc, i, Line, charsmax(Line), Len);
			ArrayPushString(g_WArray, Line)
			if(check_file == 0)
				check_file = 1
		}
	}
}

stock print( const id, const input[ ], any:... )
{
	new msg[191], players[32], count = 1;
	vformat(msg,charsmax(msg),input,3);
	replace_all(msg,charsmax(msg),"!g","^4");
	replace_all(msg,charsmax(msg),"!n","^1");
	replace_all(msg,charsmax(msg),"!t","^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,get_user_msgid("SayText"),_,players[i]);
			write_byte(players[i]);
			write_string(msg);
			message_end();
		}
	}
}

- Instalare:Compilezi sursa si o bagi in addons/amxmodx/plugins

Adaugati in addons/amxmodx/configs/cuvinte.ini si in el bagati cuvintele interzise(pentru versiunea 1.2)!!!

keedzor.gif

Link to comment
Share on other sites

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

Important Information

By using this website, you agree to our Terms of Use and Guidelines