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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер
2 страниц V   1 2

Admin ESP

Статус пользователя miRror
сообщение 25.2.2015, 19:49
Сообщение #1


Стаж: 15 лет

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

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

У кого есть более менее лёгкий вариант этого плагина? Поделитесь =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя panicaskill
сообщение 25.2.2015, 19:54
Сообщение #2
Стаж: 12 лет
Город: Каменск-Уральский


Сообщений: 270
Благодарностей: 256
Полезность: 976

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

Как вариант Admin Esp Mini (без записей в vault.ini)

Скрытый текст
Код:
#include <amxmodx>
#include <fakemeta>

// Here you can adjust the required admin level if needed
// there is a list of all levels http://www.amxmodx.org/funcwiki.php?go=mod...d=1#const_admin

#define REQUIRED_ADMIN_LEVEL ADMIN_BAN

//--------------------------------------------------------------------------------------------------

#define PLUGIN "Admin ESP"
#define VERSION "1.5b_mini"
#define AUTHOR "KoST"

#define OFFSET_TEAM 114

new const g_szPlugin[] = PLUGIN; // Global this since it is used throughout
new pcvar_esp, pcvar_esp_timer, pcvar_esp_allow_all, pcvar_esp_disable_default_keys;
new team_colors[4][3] = {{0,0,0}, {150,0,0}, {0,0,150}, {0,150,0}};
new esp_colors[5][3] = {{0,255,0}, {100,60,60}, {60,60,100}, {255,0,255}, {128,128,128}};
new bool:admin[33]; // is/is not admin
new bool:first_person[33]; // is/is not in first person view
new bool:ducking[33]; // is/is not player ducked
new bool:mode[33]; // 0 = line, 1 = box
new bool:enabled[33]; // has esp on
new spec[33]; // spec[player_id]=the players id if
new laser; // precached model
new max_players; // if you start hlds with +maxplayers 20 for example this would be 20
new damage_done_to[33]; // damage_done_to[p1]=p2 // p1 has hit p2
new view_target[33]; // attackers victim

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

public plugin_init() {
register_plugin(g_szPlugin, VERSION, AUTHOR);
server_print("^n^t%s v%s, Copyright © 2006 by %s^n", g_szPlugin, VERSION, AUTHOR);

// cvars
pcvar_esp = register_cvar("esp", "1");
pcvar_esp_timer = register_cvar("esp_timer", "0.4");
pcvar_esp_allow_all = register_cvar("esp_allow_all", "0");
pcvar_esp_disable_default_keys = register_cvar("esp_disable_default_keys", "0");
register_cvar("aesp_version", VERSION, FCVAR_SERVER|FCVAR_UNLOGGED|FCVAR_SPONLY);

// client commands
register_clcmd("esp_mode", "cmd_esp_mode", REQUIRED_ADMIN_LEVEL, "Toggle ESP type: line/box");
register_clcmd("say /esp_mode", "cmd_esp_mode", REQUIRED_ADMIN_LEVEL, "Toggle ESP type: line/box");
register_clcmd("esp_toggle", "cmd_esp_toggle", REQUIRED_ADMIN_LEVEL, "Toggle ESP on/off");
register_clcmd("say /esp_toggle", "cmd_esp_toggle", REQUIRED_ADMIN_LEVEL, "Toggle ESP on/off");

// events
register_event("StatusValue", "spec_target", "bd", "1=2");
register_event("SpecHealth2", "spec_target", "bd");
register_event("TextMsg", "spec_mode", "b", "2&#Spec_Mode");
register_event("Damage", "event_Damage", "b", "2!0", "3=0", "4!0");
register_event("ResetHUD", "reset_hud_alive", "be");

register_forward(FM_PlayerPreThink, "fwdPlayerPreThink");
max_players = get_maxplayers();
// start esp_timer for the first time
set_task(1.0, "esp_timer");
}

public client_putinserver(id) {
first_person[id] = false;
new args[1];
args[0] = id;
set_task(4.0, "delayed_putinserver", id + 100, args, 1);
}

public delayed_putinserver(args[0])
{
new id = args[0];
if (!is_user_connected(id))
{
return PLUGIN_HANDLED;
}
if ((get_user_flags(id) & REQUIRED_ADMIN_LEVEL) || get_pcvar_num(pcvar_esp_allow_all) == 1) {
admin[id] = true;
init_admin_options(id);
} else {
admin[id] = false;
}
return PLUGIN_CONTINUE;
}

public client_disconnect(id) {
admin[id] = false;
spec[id] = 0;
remove_task(id + 100);
}

public reset_hud_alive(id) {
spec[id] = 0;
}

public cmd_esp_toggle(id) {
if (admin[id] && get_pcvar_num(pcvar_esp) == 1) {
change_esp_status(id, !enabled[id]);
}
}

public cmd_esp_mode(id) {
if (admin[id] && get_pcvar_num(pcvar_esp) == 1) {
change_esp_mode(id, !mode[id]);
}
}

public event_Damage(id) {
if (id>0) {
new attacker = get_user_attacker(id)
if (attacker > 0 && attacker <= max_players) {
if (view_target[attacker] == id) {
damage_done_to[attacker] = id;
}
}
}
return PLUGIN_CONTINUE;
}

public spec_mode(id) {
// discover if in first_person_view
new specMode[12]
read_data(2, specMode, 11);

if(equal(specMode, "#Spec_Mode4")) {
first_person[id] = true;
} else {
first_person[id] = false;
}
return PLUGIN_CONTINUE;
}

public spec_target(id) {
if (id > 0) {
new target = read_data(2);
if (target != 0) {
spec[id] = target;
}
}
return PLUGIN_CONTINUE;
}

init_admin_options(id) {
mode[id] = false;
enabled[id] = true;
}

change_esp_status(id, bool:on) {
if (on) {
enabled[id] = true;
client_print(id, print_chat, "[%s] ON", g_szPlugin);
} else {
enabled[id] = false;
client_print(id, print_chat, "[%s] OFF", g_szPlugin);
}
}

change_esp_mode(id, bool:on) {
if (on) {
mode[id] = true;
client_print(id, print_chat, "[%s] Mode: Box", g_szPlugin);
} else {
mode[id] = false;
client_print(id, print_chat, "[%s] Mode: Line", g_szPlugin);
}
}


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

static button;
button = pev(id, pev_button);
if (button==0) return FMRES_IGNORED; // saves a lot of cpu

static oldbutton;
oldbutton = pev(id, pev_oldbuttons);

if (button & IN_DUCK) {
ducking[id] = true;
} else {
ducking[id] = false;
}

if ((get_pcvar_num(pcvar_esp) == 1) && (get_pcvar_num(pcvar_esp_disable_default_keys) != 1)) {
if (admin[id]) {
if (first_person[id] && !is_user_alive(id)) {
if ((button & IN_RELOAD) && !(oldbutton & IN_RELOAD)) {
cmd_esp_mode(id);
}
if ((button & IN_FORWARD) && !(oldbutton & IN_FORWARD) && !enabled[id]) {
change_esp_status(id, true);
}
if ((button & IN_BACK) && !(oldbutton & IN_BACK) && enabled[id]) {
change_esp_status(id, false);
}
}
}
}
return FMRES_HANDLED;
}

public esp_timer() {

if (get_pcvar_num(pcvar_esp) != 1) { // if esp is not 1, it is off
set_task(1.0, "esp_timer"); // check for reactivation in 1 sec intervals
return PLUGIN_CONTINUE;
}

static spec_id, Float:my_origin[3], my_team, s,
target_team, Float:target_origin[3], Float:distance, width, Float:v_middle[3], Float:v_hitpoint[3],
Float:distance_to_hitpoint, Float:scaled_bone_len, Float:scaled_bone_width, Float:v_bone_start[3],
Float:v_bone_end[3], Float:offset_vector[3], Float:eye_level[3], Float:distance_target_hitpoint,
actual_bright, color

for (new i = 1; i <= max_players; i++) { // loop through players

if (enabled[i] && first_person[i] && is_user_connected(i) && admin[i] && (!is_user_alive(i)) && (spec[i] > 0) && is_user_alive(spec[i])) { // :)

spec_id = spec[i];
pev(i, pev_origin, my_origin); // get origin of spectating admin
// get team of spectated :)
my_team = get_pdata_int(spec_id, OFFSET_TEAM);

for (s = 1; s <= max_players; s++) { // loop through the targets
if (is_user_alive(s)) { // target must be alive
// get team of target
target_team = get_pdata_int(s, OFFSET_TEAM);
if (!(target_team == 3)) { //if not spectator
if (spec_id != s) { // do not target myself
// if the target is in the other team and not spectator

if (((my_team != target_team && (target_team == 1 || target_team == 2)) )) {
// get origin of target
pev(s, pev_origin, target_origin);


// get distance from me to target
distance = vector_distance(my_origin, target_origin);

if (!mode[i]) { // Draw LINE?
// calculate width according to distance
width = (distance < 2040.0) ? ( (255 - floatround(distance / 8.0) ) / 3 ) : 1;

// create temp_ent
make_TE_BEAMENTPOINT(i, target_origin, width, target_team);
}

// get vector from me to target
subVec(target_origin, my_origin, v_middle);

// trace from me to target, getting hitpoint
engfunc(EngFunc_TraceLine, my_origin, target_origin, 1, -1, 0);
get_tr2(0, TR_vecEndPos, v_hitpoint);

// get distance from me to hitpoint (nearest wall)
distance_to_hitpoint = vector_distance(my_origin, v_hitpoint);

// scale
if (ducking[spec_id]) {
scaled_bone_len = distance_to_hitpoint / distance * (50.0-18.0);
} else {
scaled_bone_len = distance_to_hitpoint / distance * 50.0;
}
scaled_bone_len = distance_to_hitpoint / distance * 50.0;
scaled_bone_width = distance_to_hitpoint / distance * 150.0;

// get the point 10.0 units away from wall
normalize(v_middle, offset_vector, distance_to_hitpoint - 10.0); // offset from wall

// set to eye level
copyVec(my_origin, eye_level);

if (ducking[spec_id]) {
eye_level[2] += 12.3
} else {
eye_level[2] += 17.5
}

addVec(offset_vector, eye_level);

// start and end of green box
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;
actual_bright = 255;

if (mode[i]) { // Draw BOX?
// this is to make green box darker if distance is larger
if (distance_target_hitpoint < 2040.0) {
actual_bright = (255 - floatround(distance_target_hitpoint / 12.0));
} else {
actual_bright = 85;
}
if (distance_to_hitpoint != distance) { // if no line of sight
color = 0;
} else { // if line of sight
color = target_team;
}
if (damage_done_to[spec_id] == s) {
color = 3;
damage_done_to[spec_id] = 0;
}
make_TE_BEAMPOINTS(i, color, v_bone_start, v_bone_end, floatround(scaled_bone_width), actual_bright);
}
}
}
}
}
} // inner player loop end
}
}
set_task(get_pcvar_float(pcvar_esp_timer), "esp_timer"); // keep it going
return PLUGIN_CONTINUE;
}

// Vector Operations -------------------------------------------------------------------------------

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

// Temporary Entities ------------------------------------------------------------------------------
// there is a list of much more temp entities at: http://djeyl.net/forum/index.php?act=Attac...t&id=290870
// all messages are sent with MSG_ONE_UNRELIABLE flag to avoid overflow in case of very low esp_timer setting and much targets

make_TE_BEAMPOINTS(id,color, Float:Vec1[3], Float:Vec2[3], width, brightness) {
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, {0,0,0}, id); //message begin
write_byte(0);
write_coord(floatround(Vec1[0])); // start position
write_coord(floatround(Vec1[1]));
write_coord(floatround(Vec1[2]));
write_coord(floatround(Vec2[0])); // end position
write_coord(floatround(Vec2[1]));
write_coord(floatround(Vec2[2]));
write_short(laser); // sprite index
write_byte(3); // starting frame
write_byte(0); // frame rate in 0.1's
write_byte(floatround(get_pcvar_float(pcvar_esp_timer) * 10)); // life in 0.1's
write_byte(width); // line width in 0.1's
write_byte(0); // noise amplitude in 0.01's
write_byte(esp_colors[color][0]);
write_byte(esp_colors[color][1]);
write_byte(esp_colors[color][2]);
write_byte(brightness); // brightness)
write_byte(0); // scroll speed in 0.1's
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(floatround(get_pcvar_float(pcvar_esp_timer) * 10));
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();
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 25.2.2015, 20:16
Сообщение #3


Стаж: 15 лет

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

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

Это самый убогий, их тех что есть, он у меня стоит.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя evil
сообщение 25.2.2015, 20:21
Сообщение #4


Стаж: 14 лет

Сообщений: 1503
Благодарностей: 495
Полезность: 614

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

Цитата(miRror @ 25.2.2015, 21:16) *
Это самый убогий, их тех что есть, он у меня стоит.

Скальпеля!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Han1baL
сообщение 25.2.2015, 20:44
Сообщение #5


Стаж: 11 лет

Сообщений: 233
Благодарностей: 50
Полезность: 30

Цитата(evil @ 25.2.2015, 21:21) *
Скальпеля!

Реклама у него.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 25.2.2015, 20:46
Сообщение #6


Стаж: 15 лет

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

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

Забыл добавить: с исходником.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя evil
сообщение 25.2.2015, 20:50
Сообщение #7


Стаж: 14 лет

Сообщений: 1503
Благодарностей: 495
Полезность: 614

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

Цитата(Han1baL @ 25.2.2015, 21:44) *
Реклама у него.

Только в консоли! Хрен на неё!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 26.2.2015, 21:54
Сообщение #8


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

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

А как можно в аdmin еsp отключить возможно включать и выключать лучики на W и S кнопки? Надо чтобы постоянно включены были...

Отредактировал: ExTPuMaJI, - 26.2.2015, 21:55


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 26.2.2015, 21:56
Сообщение #9
Стаж: 13 лет
Город: Югорск

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

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

ExTPuMaJI, Выставить по умолчанию на "включено" и убрать регистрацию команд.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 26.2.2015, 21:57
Сообщение #10


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

ExTPuMaJI, вырезать из исходника
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 26.2.2015, 21:58
Сообщение #11


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

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

Это я понимаю, а что именно убирать / вырезать?


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 26.2.2015, 21:59
Сообщение #12
Стаж: 13 лет
Город: Югорск

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

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

Bloo, Не обязательно, можно просто регистрацию квара закомментировать или же изменить права на данную функцию и всё. Вариантов много, да.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 3.3.2015, 20:51
Сообщение #13


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

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

Я так понимаю, если выставить esp_disable_default_keys 0 то выключать и включать на W и S нельзя будет?


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 3.3.2015, 21:15
Сообщение #14


Стаж: 15 лет

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

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

Верно. Купил бы даже данный плагин, интересует только исходник.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
exec1337
сообщение 3.3.2015, 21:17
Сообщение #15
Стаж: 13 лет

Сообщений: 6490
Благодарностей: 2558
Полезность: 491

spritesESP
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 3.3.2015, 21:25
Сообщение #16
Стаж: 13 лет
Город: Югорск

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

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

Цитата(miRror @ 4.3.2015, 0:15) *
Верно. Купил бы даже данный плагин, интересует только исходник.

Читай ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Rotterdam
сообщение 3.3.2015, 21:26
Сообщение #17
Стаж: 11 лет

Сообщений: 412
Благодарности: выкл.

Цитата(exec1337 @ 3.3.2015, 22:17) *
spritesESP

Это который от DarkGL? Он ещё хуже обычного admin esp.


Что там можно облегчить? От PreThink и fullupdate не избавиться, остальное мелочи.
Скальпель пишет плагины по принципу "чтобы работало", брать у него лишнее я бы не стал. Хрен его знает, что он там наоптимизировал. Максимум, что можно сделать - вырезать nvault и чуток сократить количество опций в меню.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Han1baL
сообщение 3.3.2015, 21:27
Сообщение #18


Стаж: 11 лет

Сообщений: 233
Благодарностей: 50
Полезность: 30

Цитата(miRror @ 3.3.2015, 22:15) *
Верно. Купил бы даже данный плагин, интересует только исходник.

Попробуй напиши Скальпелю
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Rotterdam
сообщение 3.3.2015, 21:27
Сообщение #19
Стаж: 11 лет

Сообщений: 412
Благодарности: выкл.

XyLiGaN, есть какие-то варианты?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 3.3.2015, 21:28
Сообщение #20


Стаж: 15 лет

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

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

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