/*
.:<=Изменения=>:.
1.0 - Первый релиз
1.1 - Устранение багов
1.2 - Добавление менюшки
1.3 - Спектр-админ бессмертный,не слышны шаги
1.4 - Оптимизирован код
1.5 - Профиксен баг с оружием!
1.6 - Исправлены мелкие баги
Добавлены новые функции
1.Квар add_health 1/0 Давать админу спектру при попадании хп или не давать
2.Худ сообщение о том,кто тебя аттаковал
3.Логирование действий админа спектра log_file_add 1\0 Записывать\не записывать действия админов в лог!
*/
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <engine>
#define PLUGIN "Menu chitetov"
#define VERSION "1.6"
#define AUTHOR "vinipux"
#define ACCESS ADMIN_BAN
new g_MsgHud1,/*g_MsgHud2, g_HealthAdd,*/g_LogFile
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam (Ham_TakeDamage, "player", "UserTakeDamage")
RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
register_clcmd("say /sleshka", "mensa", ACCESS)
//g_HealthAdd = register_cvar("add_health", "1")
g_LogFile = register_cvar("log_file_add", "1")
g_MsgHud1 = CreateHudSyncObj()
//g_MsgHud2 = CreateHudSyncObj()
}
public mensa(id, level, cid)
{
if(!cmd_access(id, level, cid, 5))
{
client_print(id,print_chat,"Доступно только админу!")
return PLUGIN_HANDLED;
}
new menu = menu_create("\yМеню слежения за читерами", "menushka")
menu_additem(menu, "\wНачать следить","1")
menu_additem(menu, "\wЗакончить следить","2")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
return PLUGIN_HANDLED
}
public menushka(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new name_ad[32]
get_user_name(id,name_ad,31)
new key = str_to_num(data)
switch(key)
{
case 1:
{
user_kill(id)
cs_set_user_team (id, CS_TEAM_SPECTATOR, CS_CT_VIP)
ExecuteHam(Ham_CS_RoundRespawn, id)
//set_user_godmode(id, 1)
strip_user_weapons(id)
//set_user_health(id,1000)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0)
set_user_footsteps(id, 1)
if(get_pcvar_num(g_LogFile))
log_to_file("addons/amxmodx/configs/citakam_pzd.txt","Админ %s включил слежку",name_ad)
}
case 2:
{
user_kill(id)
cs_set_user_team(id, CS_TEAM_T, CS_T_TERROR)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 100)
//set_user_godmode(id, 0)
//set_user_health(id,100)
set_user_footsteps(id, 0)
if(get_pcvar_num(g_LogFile))
log_to_file("addons/amxmodx/configs/citakam_pzd.txt","Админ %s отключил слежку",name_ad)
}
}
return PLUGIN_HANDLED
}
public fw_TouchWeapon(id)
{
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR || !is_user_alive(id) || !is_user_connected(id) && get_user_flags(id) & ACCESS)
return HAM_IGNORED
return HAM_SUPERCEDE
}
public UserTakeDamage(victim, attacker)
{
new name[32]
get_user_name(attacker,name,31)
if(is_user_alive(victim) && cs_get_user_team(victim) == CS_TEAM_SPECTATOR && get_user_flags(victim) & ACCESS)
{
set_hudmessage(0, 255, 255, -1.0, 0.8, 0, 1.0, 3.0)
ShowSyncHudMsg(victim, g_MsgHud1, "Тебя атаковал %s", name)
return HAM_SUPERCEDE
}
else
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}