Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#define PLUGIN_NAME "Block CT"
#define PLUGIN_AUTHOR "Crash94/Edited SoNeeKK1"
#define PLUGIN_VERSION "2.0"
#define PLUGIN_CVAR "JB_Block"
new g_LoadName[81], g_Name[64]
new szLine, szNum
new Block[33]
native jbe_get_user_team(id)
native jbe_set_user_team(id, iTeam)
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_CVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
register_clcmd("say /block", "Block_menu")
register_clcmd("say /unblock", "Block_menu")
register_dictionary( "jb_ctblock.txt" );
RegisterHam(Ham_Spawn,"player","player_respawn")
}
public player_respawn(id)
{
set_task(1.0, "Name_Verificaiton", id)
}
public plugin_end()
{
DelSaveblocks()
}
public DelSaveblocks()
{
new i_Text[555 char]
for(szLine=0;read_file(g_LoadName, szLine, g_Name, 41, szNum);szLine++)
{
if(szNum>0 && g_Name[0]!=';')
{
formatex( i_Text, charsmax( i_Text ), "")
write_file(g_LoadName, i_Text, szLine)
}
}
}
public plugin_cfg()
{
get_configsdir(g_LoadName, 81)
format(g_LoadName, 80, "%s/ct_dablokilebi.ini", g_LoadName)
}
public Name_Verificaiton(id)
{
new szName[32]
for(szLine=0;read_file(g_LoadName, szLine, g_Name, 41, szNum);szLine++)
{
if(szNum>0 && g_Name[0]!=';')
{
get_user_name(id, szName, 31)
new szPos = contain(szName, g_Name)
if(szPos != -1 && get_user_team(id) == 2)
{
Motamashis_Dablokva(id)
}
}
}
}
public Block_menu(id)
{
new szText[ 555 char ]
formatex( szText, charsmax( szText ), "%L", id, "JB_BLOCKMENU_TITLE")
new menu = menu_create( szText, "BlockMenu_handler" )
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10], msg[222]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
if(get_user_team(i_Player)!=2 && !Block[i_Player])
continue
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
if(get_user_flags(i_Player) & ADMIN_CVAR)
{
formatex(msg, charsmax(msg), "\d%s \w[\rIMMUNITY\w]", s_Name)
menu_additem(menu, msg, s_Player, 0)
}
else if(!Block[i_Player])
{
menu_additem(menu, s_Name, s_Player, 0)
}else{
formatex( szText, charsmax( szText ), "%s - %L", s_Name, id, "JB_BLOCK_PLAYER")
menu_additem(menu, szText, s_Player, 0)
}
}
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_setprop( menu, MPROP_NEXTNAME, "Next")
menu_setprop( menu, MPROP_BACKNAME, "Back")
menu_setprop( menu, MPROP_EXITNAME, "Exit")
if(get_user_flags(id) & ADMIN_BAN)
{
menu_display(id, menu, 0)
}else{
ChatColor(id, "^4[^1JB BLOCK^4] %L",0,"JB_BLOCK_NOACCESS")
}
}
public BlockMenu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback, i_Name[32], i_Text[555 char]
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
get_user_name(i_Player, i_Name, 31)
if(get_user_flags(i_Player) & ADMIN_CVAR)
{
ChatColor(0, "^4[^1JB BLOCK^4] ^4Aqet Ar Dagblokos Frtxilat XD :)^1.", i_Name)
}
else if(Block[i_Player])
{
for(szLine=0;read_file(g_LoadName, szLine, g_Name, 41, szNum);szLine++)
{
if(szNum>0 && g_Name[0]!=';')
{
new szPos = contain(i_Name, g_Name)
if(szPos != -1)
{
Block[i_Player] = false
new name[32]
get_user_name(id, name, 31)
formatex( i_Text, charsmax( i_Text ), "")
write_file(g_LoadName, i_Text, szLine)
ChatColor(0, "^4[^1JB BLOCK^4] %L ADMIN: %s",0,"JB_BLOCK_DEL", i_Name, name)
}
}
}
}else{
Block[i_Player] = true
new name[32]
get_user_name(id, name, 31)
write_file(g_LoadName, i_Name, -1)
ChatColor(0, "^4[^1JB BLOCK^4] %L ADMIN: %s",0,"JB_BLOCK_ADD", i_Name, name)
user_kill(i_Player)
jbe_set_user_team(i_Player, 1)
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public Motamashis_Dablokva(id)
{
if(Block[id])
{
user_kill(id)
jbe_set_user_team(id, 1)
ChatColor(id, "^4[^1JB BLOCK^4] %L",0,"JB_YOU_BLOCKCT")
}
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!team", "^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();
}
}
}
}