admin_esp

Теги: Скачать плагины cs
Управление кнопками W, S, R.
W - Включение/Выключение Линий.
S - Включение/Выключение Квадратов.
R - Включение/Выключение Линий и Квадратов.
Включение/Выключение работает только в режиме наблюдения от 1 лица.
Все настройки запоминаются не зависимо друг от друга.
Компилятор: 1.8.2 Multibild 1091
*
Управление кнопками W, S, R.
W - Включение/Выключение Линий.
S - Включение/Выключение Квадратов.
R - Включение/Выключение Линий и Квадратов.
Включение/Выключение работает только в режиме наблюдения от 1 лица.
Все настройки запоминаются не зависимо друг от друга.
*/
#include
#include
#define ADMIN_NONE -1
#if AMXX_VERSION_NUM < 183
#include
#define MAX_PLAYERS 32
#define client_disconnected client_disconnect
#endif
#define BUTTON_MANAGEMENT // Управление кнопками.
#define ADMIN_ESP ADMIN_BAN // Флаг админа для доступа к ESP (ADMIN_NONE - Доступ для всех)
new g_iLaser
new bool:g_bAdmin[MAX_PLAYERS +1], bool:g_IsAlive[MAX_PLAYERS +1]
new bool:g_OnOff[MAX_PLAYERS +1], bool:g_QSwitch[MAX_PLAYERS +1], bool:g_LSwitch[MAX_PLAYERS +1]
#if !defined BUTTON_MANAGEMENT
new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3
#endif
new team_colors[4][3] =
{
{0, 0, 0}, {150, 0, 0}, {0, 0, 150}, {0, 150, 0}
}
public plugin_precache()
g_iLaser = precache_model("sprites/laserbeam.spr")
public plugin_end()
{
new pl[MAX_PLAYERS], pnum
get_players(pl, pnum)
for(new i; i < pnum; i ++)
remove_task(pl[i])
}
public plugin_init()
{
#define VERSION "1.1"
register_plugin("Lite Admin ESP", VERSION, "neygomon, AcE")
register_cvar("lite_aesp", VERSION, FCVAR_SERVER | FCVAR_SPONLY)
register_event("DeathMsg", "eDeathMsg", "a", "1>0")
register_event("ResetHUD", "eResetHud", "be")
register_event("TextMsg", "eSpecMode", "b", "2&#Spec_M")
#if !defined BUTTON_MANAGEMENT
register_clcmd("say /esp", "esp_menu", ADMIN_ESP, "Shows ESP Menu")
register_clcmd("say_team /esp", "esp_menu", ADMIN_ESP, "Shows ESP Menu")
register_menucmd(register_menuid("Menu"), keys, "show_esp_menu")
#endif
}
public client_putinserver(id)
{
g_IsAlive[id] = false
g_bAdmin[id] = g_OnOff[id] = g_QSwitch[id] = g_LSwitch[id] = (get_user_flags(id) & ADMIN_ESP) ? true : false
}
public client_disconnected(id)
{
if (g_bAdmin[id])
g_OnOff[id] = false
remove_task(id)
}
public eResetHud(id)
g_IsAlive[id] = true
public eDeathMsg()
g_IsAlive[read_data(2)] = false
public eSpecMode(id)
{
if (!g_bAdmin[id]) return
if (entity_get_int(id, EV_INT_iuser1) == 4)
set_task(0.3, "EspTimer", id, .flags = "b")
else remove_task(id)
}
#if defined BUTTON_MANAGEMENT
public client_PreThink(id)
{
if (g_IsAlive[id])
return PLUGIN_HANDLED
static button, oldbutton
button = entity_get_int(id, EV_INT_button)
oldbutton = entity_get_int(id, EV_INT_oldbuttons)
if (button == 0)
return PLUGIN_HANDLED
if (g_bAdmin[id])
{
if (entity_get_int(id, EV_INT_iuser1) == 4)
{
if ((button & IN_RELOAD) && !(oldbutton & IN_RELOAD))
{
g_OnOff[id] = !g_OnOff[id]
client_print_color(id, print_team_default, "^1[^4ESP^1] ^3Admin Spectator ^4%s", g_OnOff[id] ? "Включён" : "Выключен")
}
if ((button & IN_FORWARD) && !(oldbutton & IN_FORWARD))
{
g_LSwitch[id] = !g_LSwitch[id]
client_print_color(id, print_team_default, "^1[^4ESP^1] ^3Линии ^4%s", g_LSwitch[id] ? "Включены" : "Выключены")
}
if ((button & IN_BACK) && !(oldbutton & IN_BACK))
{
g_QSwitch[id] = !g_QSwitch[id]
client_print_color(id, print_team_default, "^1[^4ESP^1] ^3Квадраты ^4%s", g_QSwitch[id] ? "Включены" : "Выключены")
}
}
}
return PLUGIN_HANDLED
}
#else
public esp_menu(id)
{
new menu[501], len = 0, onoff[2][] = {{"\rВыкл"}, {"\yВкл"}}
len = formatex(menu[len], charsmax(menu) - len, "\r[\yESP\r] \wAdmin Spectator^n")
len += formatex(menu[len], charsmax(menu) - len, "\r1. \wESP: %s^n", onoff[g_OnOff[id]])
len += formatex(menu[len], charsmax(menu) - len, "\r2. \wЛинии: %s^n", onoff[g_LSwitch[id]])
len += formatex(menu[len], charsmax(menu) - len, "\r3. \wКвадраты: %s^n", onoff[g_QSwitch[id]])
len += formatex(menu[len], charsmax(menu) - len, "\r0. \wВыход")
show_menu(id, keys, menu, -1, "Menu")
}
public show_esp_menu(id, key)
{
switch(key)
{
case 0:
{
g_OnOff[id] = !g_OnOff[id]
esp_menu(id)
}
case 1:
{
g_LSwitch[id] = !g_LSwitch[id]
esp_menu(id)
}
case 2:
{
g_QSwitch[id] = !g_QSwitch[id]
esp_menu(id)
}
}
}
#endif
public EspTimer(id)
{
if (!g_OnOff[id]) return
switch(g_IsAlive[id])
{
case false:
{
static iTarget; iTarget = entity_get_int(id, EV_INT_iuser2)
if (iTarget && is_user_alive(iTarget) && is_valid_ent(iTarget))
SendAdminEsp(id, iTarget)
}
case true: remove_task(id)
}
}
SendAdminEsp(id, iTarget)
{
static pl[MAX_PLAYERS], pnum, my_team
static Float:my_origin[3], Float:target_origin[3], Float:v_middle[3], Float:v_hitpoint[3]
static Float:distance, Float:distance_to_hitpoint, Float:distance_target_hitpoint, Float:scaled_bone_len
static Float:v_bone_start[3], Float:v_bone_end[3], Float:offset_vector[3], Float:eye_level[3]
entity_get_vector(iTarget, EV_VEC_origin, my_origin)
my_team = get_user_team(iTarget)
get_players(pl, pnum, "ah")
for(new i; i < pnum; i ++)
{
if (pl[i] == iTarget) continue
if (my_team == get_user_team(pl[i])) continue
entity_get_vector(pl[i], EV_VEC_origin, target_origin)
distance = vector_distance(my_origin, target_origin)
trace_line(-1, my_origin, target_origin, v_hitpoint)
subVec(target_origin, my_origin, v_middle)
normalize(v_middle, offset_vector, (distance_to_hitpoint = vector_distance(my_origin, v_hitpoint)) - 10.0)
copyVec(my_origin, eye_level)
eye_level[2] += 17.5
addVec(offset_vector, eye_level)
copyVec(offset_vector, v_bone_start)
copyVec(offset_vector, v_bone_end)
v_bone_end[2] -= (scaled_bone_len = distance_to_hitpoint / distance * 50.0)
if (distance_to_hitpoint == distance) continue
distance_target_hitpoint = (distance - distance_to_hitpoint) / 12
if (g_QSwitch[id])
{
MakeQuadrate(id, v_bone_start, v_bone_end, floatround(scaled_bone_len * 3.0), (distance_target_hitpoint < 170.0) ? (255 - floatround(distance_target_hitpoint)) : 85)
}
if (g_LSwitch[id])
{
static width
if (!(distance < 2040.0)) width = 1
else width = (255 - floatround(distance / 8.0)) / 3
MakeLine(id, target_origin, width, my_team)
}
}
}
stock normalize(Float:Vec[3], Float:Ret[3], Float:multiplier)
{
static Float:len
len = vector_distance(Vec, Float:{0.0, 0.0, 0.0})
copyVec(Vec, Ret)
Ret[0] /= len
Ret[1] /= len
Ret[2] /= len
Ret[0] *= multiplier
Ret[1] *= multiplier
Ret[2] *= multiplier
}
stock copyVec(Float:Vec[3], Float:Ret[3])
{
Ret[0] = Vec[0]
Ret[1] = Vec[1]
Ret[2] = Vec[2]
}
stock subVec(Float:Vec1[3], Float:Vec2[3], Float:Ret[3])
{
Ret[0] = Vec1[0] - Vec2[0]
Ret[1] = Vec1[1] - Vec2[1]
Ret[2] = Vec1[2] - Vec2[2]
}
stock addVec(Float:Vec1[3], Float:Vec2[3])
{
Vec1[0] += Vec2[0]
Vec1[1] += Vec2[1]
Vec1[2] += Vec2[2]
}
MakeLine(id, Float:target_origin[3], width, my_team)
{
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id)
write_byte(1)
write_short(id)
write_coord(floatround(target_origin[0]))
write_coord(floatround(target_origin[1]))
write_coord(floatround(target_origin[2]))
write_short(g_iLaser)
write_byte(1)
write_byte(1)
write_byte(3)
write_byte(width)
write_byte(0)
write_byte(team_colors[my_team][0])
write_byte(team_colors[my_team][1])
write_byte(team_colors[my_team][2])
write_byte(255)
write_byte(0)
message_end()
}
MakeQuadrate(id, Float:Vec1[3], Float:Vec2[3], width, brightness)
{
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0, 0, 0}, id)
write_byte(0)
write_coord(floatround(Vec1[0]))
write_coord(floatround(Vec1[1]))
write_coord(floatround(Vec1[2]))
write_coord(floatround(Vec2[0]))
write_coord(floatround(Vec2[1]))
write_coord(floatround(Vec2[2]))
write_short(g_iLaser)
write_byte(3)
write_byte(0)
write_byte(3)
write_byte(width)
write_byte(0)
write_byte(0)
write_byte(255)
write_byte(0)
write_byte(brightness)
write_byte(0)
message_end()
}
ProtectedStatus
Загрузил umka666629
2018-10-23 19:40:04
2
117
CS90
Есть такой плагин.
CS90
2019-05-31 09:33:22
root
картинку прикрепляйте, чтобы понимать хоть как выглядит и описания побольше бы
root
2018-10-23 20:41:43
Protected
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Protected
Плагин загружен на сервер, но проверка еще не была проведена.

Игровые сервера Дополнительные услуги Инфо Сообщество

android

application chrometelegramapiCSHOST.COM.UA 2012-2022 Хостинг игровых серверов