- 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)!!!