Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

5 страниц V  « 2 3 4 »

[ESP] Admin Spectator

XyLiGaN
сообщение 24.3.2015, 22:40
Сообщение #41
Стаж: 11 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

И так, т.к. Денис ленится или занят, решил помочь и поэксперементировать.
Собственно что я изменил:
  • Подключил модуль engine (для регистрации impulse).
  • Убрал регистрацию команды /esp, заменив её на impusle (т.е. вкл/выкл теперь будет на "Т").
  • Ну и изменил флаг доступа к плагину с ADMIN_MENU (флаг "u") на ADMIN_LEVEL_A (флаг "m")
  • Работает везде как в наблюдателях, так и когда Админ мёртвый.
Скриншотики


Ну и собственно сам код
Код:
#include <amxmodx>
#include <engine>
#include <fakemeta>

#define PLUGIN "Admin ESP"
#define VERSION "0.3"
#define AUTHOR "unnamed & miRror & XyLiGaN"

#define OFFSET_TEAM 114

new bool:fperson[33],
bool:ducking[33],
bool:admin_options[33]

new team_colors[3][3] = {{0,0,0},{150,0,0},{0,0,150}}
new esp_colors[3][3] = {{0,255,0},{100,60,60},{60,60,100}}

new laser

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_impulse(201, "CMD_impulse")
register_event("TextMsg", "spec_mode", "b", "2&#Spec_Mode")
register_forward(FM_PlayerPreThink, "fwdPlayerPreThink")
set_task(0.1, "esp_timer", .flags = "b")
}

public plugin_precache()
{
laser = precache_model("sprites/laserbeam.spr")
}

public client_putinserver(id)
{
fperson[id] = false
admin_options[id] = (get_user_flags(id) & ADMIN_LEVEL_A) ? true : false
}

public client_disconnect(id)
{
admin_options[id] = false
}

public CMD_impulse(id)
{
if(!is_user_alive(id))
esp_toggle(id)
}

public esp_toggle(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_A)
{
admin_options[id] = !admin_options[id]
client_print(id, print_chat, "[Admin ESP] %s", admin_options[id] ? "Включен" : "Выключен")
}
else
{
client_print(id, print_chat, "[Admin ESP] Вы не имеете доступа к данной команде")
}
}

public spec_mode(id)
{
new specMode[12]
read_data(2, specMode, charsmax(specMode))
fperson[id]= equal(specMode,"#Spec_Mode4") ? true : false
}

public fwdPlayerPreThink(id)
{
if (!is_user_connected(id))
return FMRES_IGNORED

static button

button = pev(id, pev_button)

if (!button)
return FMRES_IGNORED

ducking[id] = (button & IN_DUCK) ? true : false

return FMRES_HANDLED
}

public esp_timer()
{
static Float:my_origin[3],
Float:target_origin[3],
Float:distance, width,
Float:v_middle[3],
Float:v_hitpoint[3],
Float:distance_to_hitpoint,
Float:scaled_bone_len,
Float:v_bone_start[3],
Float:v_bone_end[3],
Float:offset_vector[3],
Float:eye_level[3],
Float:distance_target_hitpoint,
players[32], playersi[32],
actual_bright, my_team, target_team, spec_id, num, s, numi, i

get_players(playersi, numi, "bch")

for(--numi; numi>=0; numi--)
{
i = playersi[numi]

spec_id = pev(i, pev_iuser2)

if (!admin_options[i] || !fperson[i] || /*get_user_team(i) != 3 ||*/ !spec_id || !is_user_alive(spec_id))
continue

pev(i, pev_origin, my_origin)
my_team = get_pdata_int(spec_id, OFFSET_TEAM)

target_team = my_team == 2 ? 1 : 2

get_players(players, num, "ache", target_team==2 ? "CT" : "TERRORIST")

for(--num; num>=0; num--)
{
s = players[num]

pev(s, pev_origin, target_origin)
distance=vector_distance(my_origin, target_origin)

//Линия
width = distance < 2040.0 ? (255-floatround(distance/8.0))/4 : 1
make_TE_BEAMENTPOINT(i, target_origin, width,target_team)

subVec(target_origin,my_origin,v_middle)

engfunc(EngFunc_TraceLine, my_origin, target_origin, 1, -1, 0)
get_tr2(0, TR_vecEndPos, v_hitpoint)

distance_to_hitpoint = vector_distance(my_origin, v_hitpoint)

scaled_bone_len = distance_to_hitpoint/distance * (ducking[spec_id] ? 32.0 : 50.0)

scaled_bone_len = distance_to_hitpoint/distance * 50.0

normalize(v_middle, offset_vector, distance_to_hitpoint-10.0)

copyVec(my_origin, eye_level)

eye_level[2] += ducking[spec_id] ? 12.3 : 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_target_hitpoint=distance-distance_to_hitpoint

// Игрок
if(distance_to_hitpoint != distance)
{
actual_bright = distance_target_hitpoint < 2040.0 ? (255-floatround(distance_target_hitpoint/12.0)) : 100
make_TE_BEAMPOINTS(i,target_team,v_bone_start,v_bone_end,floatround(scaled_bone_
len),actual_bright)
}
}
}
}

Float:getVecLen(Float:Vec[3])
{
new Float:VecNull[3]={0.0,0.0,0.0}
new Float:len=vector_distance(Vec,VecNull)
return len
}

normalize(Float:Vec[3],Float:Ret[3],Float:multiplier)
{
new Float:len=getVecLen(Vec)
copyVec(Vec,Ret)
Ret[0]/=len
Ret[1]/=len
Ret[2]/=len
Ret[0]*=multiplier
Ret[1]*=multiplier
Ret[2]*=multiplier
}

copyVec(Float:Vec[3],Float:Ret[3])
{
Ret[0]=Vec[0]
Ret[1]=Vec[1]
Ret[2]=Vec[2]
}

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]
}

addVec(Float:Vec1[3],Float:Vec2[3])
{
Vec1[0]+=Vec2[0]
Vec1[1]+=Vec2[1]
Vec1[2]+=Vec2[2]
}

make_TE_BEAMPOINTS(id,color,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(laser)
write_byte(1)
write_byte(1)
write_byte(1)
write_byte(width)
write_byte(0)
write_byte(esp_colors[color][0])
write_byte(esp_colors[color][1])
write_byte(esp_colors[color][2])
write_byte(brightness)
write_byte(0)
message_end()
}

make_TE_BEAMENTPOINT(id,Float:target_origin[3],width,target_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(laser)
write_byte(1)
write_byte(1)
write_byte(1)
write_byte(width)
write_byte(0)
write_byte(team_colors[target_team][0])
write_byte(team_colors[target_team][1])
write_byte(team_colors[target_team][2])
write_byte(255)
write_byte(0)
message_end()
}
Скачать: Прикрепленный файл  admin_esp.rar ( 6,26 килобайт ) Кол-во скачиваний: 199
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Anton22
сообщение 25.3.2015, 0:01
Сообщение #42
Стаж: 9 лет

Сообщений: 5
Благодарностей: 2
Полезность: 0

Отлично, спасибо за плагин. Щас поставлю себе на сервер его
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CBETJIAHA
сообщение 25.3.2015, 0:57
Сообщение #43


Стаж: 10 лет

Сообщений: 385
Благодарностей: 382
Полезность: 985

Хулигаша, спасибо! Завтра протестирую и отпишусь! Только вот с импульсом мне кажется неудачная идея!


--
Хайповая дива))))))))))))))))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 25.3.2015, 1:03
Сообщение #44
Стаж: 11 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

CBETJIAHA, Наоборот, с импульсом как раз-таки удачная идея. Минусов в этом нет, а вот плюсы - это то что вкл/выкл на одну и ту же кнопку ну и данный вариант работает, только лишь тогда, когда ты мертва или в спекторах.
Я протестировал 2 раза плагин, на пустом сервере и у себя и везде он работает без нареканий.
Как протестируешь, отпишись)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CBETJIAHA
сообщение 25.3.2015, 1:09
Сообщение #45


Стаж: 10 лет

Сообщений: 385
Благодарностей: 382
Полезность: 985

Цитата(XyLiGaN @ 25.3.2015, 2:03) *
CBETJIAHA, Наоборот, с импульсом как раз-таки удачная идея. Минусов в этом нет, а вот плюсы - это то что вкл/выкл на одну и ту же кнопку ну и данный вариант работает, только лишь тогда, когда ты мертва или в спекторах.
Я протестировал 2 раза плагин, на пустом сервере и у себя и везде он работает без нареканий.
Как протестируешь, отпишись)


Фуллапдейт модуль тоже работает же с импульсом! Ниче страшного?

Ок, завтра к вечеру отпишусь, спокойной ночи ^^


--
Хайповая дива))))))))))))))))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 25.3.2015, 1:58
Сообщение #46
Стаж: 11 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

Цитата(CBETJIAHA @ 25.3.2015, 4:09) *
Фуллапдейт модуль тоже работает же с импульсом! Ниче страшного?
Ок, завтра к вечеру отпишусь, спокойной ночи ^^
Проблем с фуллупдейт модулем - не будет, никаких. Импульсы там совершенно разные, так что ставить, можно, без проблем :)
Спокойной)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 25.3.2015, 2:25
Сообщение #47
Стаж: 12 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

XyLiGaN, С тем же успехом можно было и на Е (+use) поставить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 25.3.2015, 2:27
Сообщение #48
Стаж: 11 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

proff_q, Да какая разница-то что юзать?) Более простого способа, чем этот я не придумал)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 25.3.2015, 2:29
Сообщение #49
Стаж: 12 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

XyLiGaN, Просто сторонний модуль. Мне не нравится, но кому-то очень даже ничего.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 25.3.2015, 2:30
Сообщение #50
Стаж: 11 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

proff_q, Да ну, не вижу в этом ничего плохого)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fix102
сообщение 25.3.2015, 12:56
Сообщение #51


Стаж: 11 лет

Сообщений: 70
Благодарностей: 4
Полезность: < 0

Плагин работает, тока в спекторах(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 25.3.2015, 13:12
Сообщение #52
Стаж: 11 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

fix102, А 1-й пост, кто читать будет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 25.3.2015, 15:38
Сообщение #53


Стаж: 13 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Скриншоты кажись левые, линия и бокс у меня синхронизированы)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 25.3.2015, 20:09
Сообщение #54
Стаж: 11 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

miRror, Нет, не левые) Скриншоты, я делал)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CBETJIAHA
сообщение 25.3.2015, 22:32
Сообщение #55


Стаж: 10 лет

Сообщений: 385
Благодарностей: 382
Полезность: 985

Ура, все работает! Немного подредачила под себя, теперь работает независимо от того TR, CT или в SPEC админ!

1-ый сма, работающий от миррора
2-ой сма, работающий от Хулигана

Отредактировал: CBETJIAHA, - 25.3.2015, 22:38
Прикрепленные файлы:
Прикрепленный файл  admin_esp_mini.sma ( 5,68 килобайт ) Кол-во скачиваний: 110
Прикрепленный файл  admin_esp.sma ( 6,1 килобайт ) Кол-во скачиваний: 127


--
Хайповая дива))))))))))))))))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
XyLiGaN
сообщение 25.3.2015, 22:40
Сообщение #56
Стаж: 11 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

CBETJIAHA, Ну это же хорошо, что работает :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kennybear
сообщение 25.3.2015, 22:50
Сообщение #57


Стаж: 10 лет

Сообщений: 1394
Благодарностей: 710
Полезность: 593

Меценат Меценат

XyLiGaN, тоже щас затестю)ато админы путаются с командой)


Проверил,полет нормальный,оставлю хулигана версию

Отредактировал: kennybear, - 25.3.2015, 23:01


АРЕНА ГЕЙМЕРОВ [21] 2014-2020
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ahmetbro
сообщение 25.3.2015, 23:12
Сообщение #58
Стаж: 10 лет

Сообщений: 141
Благодарностей: 70
Полезность: 15

всем привет!
как сделать чтобы esp был доступен для всех наблюдающих игроков и админов ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 25.3.2015, 23:18
Сообщение #59


Иконка группы

Стаж: 11 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

это заменить
Код:
public esp_toggle(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_A)
{
admin_options[id] = !admin_options[id]
client_print(id, print_chat, "[Admin ESP] %s", admin_options[id] ? "Включен" : "Выключен")
}
else
{
client_print(id, print_chat, "[Admin ESP] Вы не имеете доступа к данной команде")
}
}


на это
Код:
public esp_toggle(id)
{
admin_options[id] = !admin_options[id]
client_print(id, print_chat, "[Admin ESP] %s", admin_options[id] ? "Включен" : "Выключен")
}


UPD: ток зачем? все будут подсказывать друг другу..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя adva
сообщение 25.3.2015, 23:19
Сообщение #60


Иконка группы

Стаж: 10 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

Меценат Меценат

Цитата(ahmetbro @ 26.3.2015, 0:12) *
всем привет!
как сделать чтобы esp был доступен для всех наблюдающих игроков и админов ?


уточни, когда умер или только в спектрах?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
5 страниц V  « 2 3 4 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: