Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов. Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу. Для поиска плагинов и модов существует соответствующий раздел.
Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены. Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.
Правила оформления темы: 1. Помимо заголовка не забудьте верно сформулировать свой вопрос. 2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы. 3. Выложите лог с ошибками (если имеется) под спойлер
#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"); }
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; }
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; }
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;
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; }
// Temporary Entities ------------------------------------------------------------------------------ // there is a list of much more temp entities at: // 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(); }
Верно. Купил бы даже данный плагин, интересует только исходник.
Читай ЛС.
Поблагодарили 0 раз Поблагодарили 0 раз
Rotterdam
3.3.2015, 21:26
Сообщение
Стаж: 11 лет
Сообщений: 412
Благодарности: выкл.
Цитата(exec1337 @ 3.3.2015, 22:17)
spritesESP
Это который от DarkGL? Он ещё хуже обычного admin esp.
Что там можно облегчить? От PreThink и fullupdate не избавиться, остальное мелочи. Скальпель пишет плагины по принципу "чтобы работало", брать у него лишнее я бы не стал. Хрен его знает, что он там наоптимизировал. Максимум, что можно сделать - вырезать nvault и чуток сократить количество опций в меню.
Han1baL
3.3.2015, 21:27
Сообщение
Стаж: 11 лет
Сообщений: 233
Благодарностей: 50
Полезность: 30
Цитата(miRror @ 3.3.2015, 22:15)
Верно. Купил бы даже данный плагин, интересует только исходник.