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

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

^Место доступно для покупки - 4000 руб/мес^

Новости

17-апр
30-дек
29-дек
26-дек

3 страниц V  « 2 3

Admin Spectator Esp 1.3 + Beta 1.4

, Помогает админам ловить WH
Статус пользователя xSav
сообщение 17.9.2011, 10:06
Сообщение #41
Стаж: 8 лет 2 месяца

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Осподи.. откуда у таких онлайн..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя fesoO.
сообщение 19.11.2011, 10:06
Сообщение #42
Стаж: 6 лет 3 месяца

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

Цитата(xSav @ 17.9.2011, 14:06) *
Осподи.. откуда у таких онлайн..

от дпрото psych.gif

По сабжу: кидай всю инфу о сервере, факторов может быть очень много.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Lacrimosa
сообщение 3.4.2012, 8:22
Сообщение #43
Стаж: 6 лет 1 месяц

Сообщений: 40
Благодарностей: 1
Полезность: 21

Ребят, такой глупый вопрос... На всех серверах все норм, а на одном что то нажал и теперь если я смотрю допустим от терориста он показывает квадратом не только противников и своих людей... Как убрать?) Заранее спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
artemkyz
сообщение 3.4.2012, 9:11
Сообщение #44
Стаж: 6 лет 11 месяцев

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

нажми R (или на колесо мышки) и убери те функции, которые тебе не нужны
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя happyend
сообщение 11.4.2012, 10:16
Сообщение #45


Стаж: 6 лет 8 месяцев

Сообщений: 60
Благодарностей: 23
Полезность: 445

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

стабильно работает. Это радует. Автору спасибо :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя XyLiGaN
сообщение 8.1.2013, 17:55
Сообщение #46


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

Стаж: 5 лет 4 месяца
Город: Югорск

Сообщений: 10854
Благодарностей: 6278
Полезность: 1762

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

Ребят, подскажите как сделать чтобы вот в этом плагине работали сразу и кубики и линии?! Заранее спасибо!!!


Установка/Настройка/Обновление - Серверов/Модов/Плагинов: перейти
Другие полезные ссылки по форуму: перейти
Российский Паблик Сервер 18+ © - Тема сервера
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Hnt
сообщение 9.1.2013, 0:39
Сообщение #47


Стаж: 9 лет 6 месяцев

Сообщений: 810
Благодарностей: 198
Полезность: 494

Цитата(piplup @ 8.1.2013, 19:55) *
Ребят, подскажите как сделать чтобы вот в этом плагине работали сразу и кубики и линии?! Заранее спасибо!!!


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

#define PLUGIN "Admin Spectator ESP"
#define VERSION "1.6"
#define AUTHOR "KoST"

#define OFFSET_TEAM    114

enum {
    ESP_ON = 0,
    ESP_LINE,
    ESP_BOX
}

new bool:admin[33], bool:first_person[33], bool:ducking[33], bool:admin_options[33][10], bool:is_in_menu[33]
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 view_target[33], damage_done_to[33], spec[33], pcvar_esp_default_keys, laser, max_players

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    pcvar_esp_default_keys    = register_cvar("esp_disable_default_keys","0")
    
    register_clcmd("esp_menu", "cmd_esp_menu", ADMIN_KICK, "Shows ESP Menu")
    register_clcmd("esp_toggle", "cmd_esp_toggle", ADMIN_KICK, "Toggle ESP on/off")
    register_clcmd("esp_setting", "cmd_esp_settings", ADMIN_KICK, "ESP adasdsassdasd")
    
    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")    
    
    new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2
    register_menucmd(register_menuid("Admin Specator ESP"), keys, "menu_esp")
    
    max_players = get_maxplayers()
    
    set_task(1.0, "esp_timer")
}

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

public client_putinserver(id)
{
    first_person[id]=false
    if (get_user_flags(id) & ADMIN_KICK)
    {
        admin[id]=true
        init_admin_options(id)
    }
    else
        admin[id]=false
}

public client_disconnect(id)
{
    save2vault(id)
    admin[id] = false
    spec[id] = 0
}

public reset_hud_alive(id)
    spec[id] = 0

public cmd_esp_settings(id)
{
    if (admin[id])
    {
        new out[11], len = strlen(out)
        read_argv(1, out, 4)
        for (new i=0;i<len;i++)
        {
            if (out[i]=='1')
                admin_options[id][i]=true
            else
                admin_options[id][i]=false
        }
    }
}

public cmd_esp_menu(id)
{
    if (admin[id])
    {
        show_esp_menu(id)
    }
}

public cmd_esp_toggle(id)
{
    if (admin[id])
    {
        change_esp_status(id, !admin_options[id][0])
    }
}

show_esp_menu(id)
{
    is_in_menu[id] = true
    new menu[501]
    new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2
    new onoff[2][] = {{"\roff\w"},{"\yon\w"}}
    new text[2][] = {{"(use move forward/backward to switch on/off)"},{"(use esp_toggle command to toggle)"}}
    new text_index = get_pcvar_num(pcvar_esp_default_keys)
    if (text_index!=1) text_index=0
    formatex(menu, 500, "Admin Specator ESP^n %s %s^n^n1. Линии %s^n2. Квадраты %s^n^n0. Выход", onoff[admin_options[id][ESP_ON]], text[text_index],
    onoff[admin_options[id][ESP_LINE]],
    onoff[admin_options[id][ESP_BOX]])
    show_menu(id, keys,menu)
    
    return PLUGIN_HANDLED
}

public menu_esp(id, key)
{
    if (key==9)
    {
        is_in_menu[id]=false
        return PLUGIN_HANDLED
    }
    if (admin_options[id][key+1])
        admin_options[id][key+1]=false
    else
        admin_options[id][key+1]=true

    show_esp_menu(id)
    return PLUGIN_HANDLED
}

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)
{
    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)
{
    for (new i=0;i<4;i++)
    {
        admin_options[id][i] = true
    }
    load_vault_data(id)
}

save2vault(id)
{
    if (admin[id])
    {
        new authid[35], tmp[11], key[41]
        get_user_authid(id, authid, charsmax(authid))
    
        for (new s=0;s<4;s++)
        {
            if (admin_options[id][s])
                tmp[s]='1'
            else
                tmp[s]='0'
        }
        tmp[4]=0

        formatex(key, charsmax(key), "ESP_%s", authid)
        set_vaultdata(key, tmp)
    }
}

load_vault_data(id)
{
    if (admin[id])
    {
        new data[11], authid[35], key[41]
        get_user_authid (id, authid, charsmax(authid))
        formatex(key, 40, "ESP_%s", authid)
        get_vaultdata(key, data, 4)
        if (strlen(data) > 0)
        {
            for (new s=0;s<4;s++)
            {
                if (data[s]=='1')
                    admin_options[id][s]=true
                else
                    admin_options[id][s]=false
            }
        }
    }
}

change_esp_status(id, bool:on)
{
    if (on)
    {
        admin_options[id][0] = true
        if (!is_in_menu[id]) client_print(id, print_chat, "[%s] ON", PLUGIN)
        if (is_in_menu[id]) show_esp_menu(id)
    }
    else
    {
        admin_options[id][0] = false
        if (!is_in_menu[id]) client_print(id, print_chat, "[%s] OFF", PLUGIN)
        if (is_in_menu[id]) show_esp_menu(id)
    }
}

public fwdPlayerPreThink(id)
{
    if (!is_user_connected(id)) return FMRES_IGNORED
    
    static button, oldbutton
    button=pev(id, pev_button)
    if (button==0) return FMRES_IGNORED

    oldbutton=pev(id, pev_oldbuttons)
    
    if (button & IN_DUCK)
        ducking[id]=true
    else
        ducking[id]=false
    
    if (get_pcvar_num(pcvar_esp_default_keys) !=1)
    {
        if (admin[id])
        {
            if (first_person[id] && !is_user_alive(id))
            {
                if ((button & IN_FORWARD) && !(oldbutton & IN_FORWARD) && !admin_options[id][0])
                {
                    change_esp_status(id, true)
                }
                if ((button & IN_BACK) && !(oldbutton & IN_BACK) && admin_options[id][0])
                {
                    change_esp_status(id, false)
                }
            }
        }
    }
    return FMRES_HANDLED
}

public esp_timer()
{
    static spec_id, Float:my_origin[3], my_team, 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++)
    {
        if (admin_options[i][ESP_ON] && 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)
            my_team = get_pdata_int(spec_id, OFFSET_TEAM)
            
            for (new s=1;s<=max_players;s++)
            {
                if (is_user_alive(s))
                {
                    target_team = get_pdata_int(s, OFFSET_TEAM)
                    if (!(target_team ==3))
                    {
                        if (spec_id !=s)
                        {
                            if (((my_team != target_team && (target_team ==1 || target_team ==2))))
                            {
                                pev(s, pev_origin, target_origin)
                                distance=vector_distance(my_origin, target_origin)
                                
                                if (admin_options[i][ESP_LINE])
                                {
                                    if (distance<2040.0)
                                        width=(255-floatround(distance/8.0))/3
                                    else
                                        width=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)

                                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
                                normalize(v_middle,offset_vector,distance_to_hitpoint-10.0)

                                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)

                                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 (admin_options[i][ESP_BOX])
                                {
                                    if (distance_target_hitpoint<2040.0)
                                        actual_bright=(255-floatround(distance_target_hitpoint/12.0))
                                    else
                                        actual_bright=85

                                    if (distance_to_hitpoint!=distance)
                                        color=0
                                    else
                                        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)
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    set_task(0.3, "esp_timer")
    return PLUGIN_CONTINUE    
}

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(3)
    write_byte(0)
    write_byte(3)
    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(3)
    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()
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя XyLiGaN
сообщение 12.1.2013, 23:06
Сообщение #48


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

Стаж: 5 лет 4 месяца
Город: Югорск

Сообщений: 10854
Благодарностей: 6278
Полезность: 1762

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

Цитата(Hnt @ 9.1.2013, 4:39) *
Скрытый текст
Код
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Admin Spectator ESP"
#define VERSION "1.6"
#define AUTHOR "KoST"

#define OFFSET_TEAM    114

enum {
    ESP_ON = 0,
    ESP_LINE,
    ESP_BOX
}

new bool:admin[33], bool:first_person[33], bool:ducking[33], bool:admin_options[33][10], bool:is_in_menu[33]
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 view_target[33], damage_done_to[33], spec[33], pcvar_esp_default_keys, laser, max_players

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    pcvar_esp_default_keys    = register_cvar("esp_disable_default_keys","0")
    
    register_clcmd("esp_menu", "cmd_esp_menu", ADMIN_KICK, "Shows ESP Menu")
    register_clcmd("esp_toggle", "cmd_esp_toggle", ADMIN_KICK, "Toggle ESP on/off")
    register_clcmd("esp_setting", "cmd_esp_settings", ADMIN_KICK, "ESP adasdsassdasd")
    
    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")    
    
    new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2
    register_menucmd(register_menuid("Admin Specator ESP"), keys, "menu_esp")
    
    max_players = get_maxplayers()
    
    set_task(1.0, "esp_timer")
}

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

public client_putinserver(id)
{
    first_person[id]=false
    if (get_user_flags(id) & ADMIN_KICK)
    {
        admin[id]=true
        init_admin_options(id)
    }
    else
        admin[id]=false
}

public client_disconnect(id)
{
    save2vault(id)
    admin[id] = false
    spec[id] = 0
}

public reset_hud_alive(id)
    spec[id] = 0

public cmd_esp_settings(id)
{
    if (admin[id])
    {
        new out[11], len = strlen(out)
        read_argv(1, out, 4)
        for (new i=0;i<len;i++)
        {
            if (out[i]=='1')
                admin_options[id][i]=true
            else
                admin_options[id][i]=false
        }
    }
}

public cmd_esp_menu(id)
{
    if (admin[id])
    {
        show_esp_menu(id)
    }
}

public cmd_esp_toggle(id)
{
    if (admin[id])
    {
        change_esp_status(id, !admin_options[id][0])
    }
}

show_esp_menu(id)
{
    is_in_menu[id] = true
    new menu[501]
    new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2
    new onoff[2][] = {{"\roff\w"},{"\yon\w"}}
    new text[2][] = {{"(use move forward/backward to switch on/off)"},{"(use esp_toggle command to toggle)"}}
    new text_index = get_pcvar_num(pcvar_esp_default_keys)
    if (text_index!=1) text_index=0
    formatex(menu, 500, "Admin Specator ESP^n %s %s^n^n1. Линии %s^n2. Квадраты %s^n^n0. Выход", onoff[admin_options[id][ESP_ON]], text[text_index],
    onoff[admin_options[id][ESP_LINE]],
    onoff[admin_options[id][ESP_BOX]])
    show_menu(id, keys,menu)
    
    return PLUGIN_HANDLED
}

public menu_esp(id, key)
{
    if (key==9)
    {
        is_in_menu[id]=false
        return PLUGIN_HANDLED
    }
    if (admin_options[id][key+1])
        admin_options[id][key+1]=false
    else
        admin_options[id][key+1]=true

    show_esp_menu(id)
    return PLUGIN_HANDLED
}

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)
{
    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)
{
    for (new i=0;i<4;i++)
    {
        admin_options[id][i] = true
    }
    load_vault_data(id)
}

save2vault(id)
{
    if (admin[id])
    {
        new authid[35], tmp[11], key[41]
        get_user_authid(id, authid, charsmax(authid))
    
        for (new s=0;s<4;s++)
        {
            if (admin_options[id][s])
                tmp[s]='1'
            else
                tmp[s]='0'
        }
        tmp[4]=0

        formatex(key, charsmax(key), "ESP_%s", authid)
        set_vaultdata(key, tmp)
    }
}

load_vault_data(id)
{
    if (admin[id])
    {
        new data[11], authid[35], key[41]
        get_user_authid (id, authid, charsmax(authid))
        formatex(key, 40, "ESP_%s", authid)
        get_vaultdata(key, data, 4)
        if (strlen(data) > 0)
        {
            for (new s=0;s<4;s++)
            {
                if (data[s]=='1')
                    admin_options[id][s]=true
                else
                    admin_options[id][s]=false
            }
        }
    }
}

change_esp_status(id, bool:on)
{
    if (on)
    {
        admin_options[id][0] = true
        if (!is_in_menu[id]) client_print(id, print_chat, "[%s] ON", PLUGIN)
        if (is_in_menu[id]) show_esp_menu(id)
    }
    else
    {
        admin_options[id][0] = false
        if (!is_in_menu[id]) client_print(id, print_chat, "[%s] OFF", PLUGIN)
        if (is_in_menu[id]) show_esp_menu(id)
    }
}

public fwdPlayerPreThink(id)
{
    if (!is_user_connected(id)) return FMRES_IGNORED
    
    static button, oldbutton
    button=pev(id, pev_button)
    if (button==0) return FMRES_IGNORED

    oldbutton=pev(id, pev_oldbuttons)
    
    if (button & IN_DUCK)
        ducking[id]=true
    else
        ducking[id]=false
    
    if (get_pcvar_num(pcvar_esp_default_keys) !=1)
    {
        if (admin[id])
        {
            if (first_person[id] && !is_user_alive(id))
            {
                if ((button & IN_FORWARD) && !(oldbutton & IN_FORWARD) && !admin_options[id][0])
                {
                    change_esp_status(id, true)
                }
                if ((button & IN_BACK) && !(oldbutton & IN_BACK) && admin_options[id][0])
                {
                    change_esp_status(id, false)
                }
            }
        }
    }
    return FMRES_HANDLED
}

public esp_timer()
{
    static spec_id, Float:my_origin[3], my_team, 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++)
    {
        if (admin_options[i][ESP_ON] && 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)
            my_team = get_pdata_int(spec_id, OFFSET_TEAM)
            
            for (new s=1;s<=max_players;s++)
            {
                if (is_user_alive(s))
                {
                    target_team = get_pdata_int(s, OFFSET_TEAM)
                    if (!(target_team ==3))
                    {
                        if (spec_id !=s)
                        {
                            if (((my_team != target_team && (target_team ==1 || target_team ==2))))
                            {
                                pev(s, pev_origin, target_origin)
                                distance=vector_distance(my_origin, target_origin)
                                
                                if (admin_options[i][ESP_LINE])
                                {
                                    if (distance<2040.0)
                                        width=(255-floatround(distance/8.0))/3
                                    else
                                        width=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)

                                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
                                normalize(v_middle,offset_vector,distance_to_hitpoint-10.0)

                                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)

                                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 (admin_options[i][ESP_BOX])
                                {
                                    if (distance_target_hitpoint<2040.0)
                                        actual_bright=(255-floatround(distance_target_hitpoint/12.0))
                                    else
                                        actual_bright=85

                                    if (distance_to_hitpoint!=distance)
                                        color=0
                                    else
                                        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)
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    set_task(0.3, "esp_timer")
    return PLUGIN_CONTINUE    
}

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(3)
    write_byte(0)
    write_byte(3)
    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(3)
    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()
}

Спасибо Дим ;)


Установка/Настройка/Обновление - Серверов/Модов/Плагинов: перейти
Другие полезные ссылки по форуму: перейти
Российский Паблик Сервер 18+ © - Тема сервера
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Default
сообщение 18.1.2013, 11:16
Сообщение #49


Стаж: 10 лет

Сообщений: 136
Благодарностей: 48
Полезность: 262

PLUGIN "Admin ESP"
VERSION "1.5b_mini"
Кто шарит thank_you2.gif , нужно сделать что бы отображались не враги, а только союзники по команде и все.
P.S. на сервере только одна воюющая команда.

Отредактировал: Default, - 18.1.2013, 11:17
Прикрепленные файлы:
Прикрепленный файл  admin_esp.sma ( 13.26 килобайт ) Кол-во скачиваний: 47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 28.10.2013, 13:27
Сообщение #50


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

Стаж: 7 лет 11 месяцев

Сообщений: 3544
Благодарностей: 1662
Полезность: 1010

Serva4ok.ru
Меценат Меценат

Цитата(Default @ 18.1.2013, 13:16) *
PLUGIN "Admin ESP"
VERSION "1.5b_mini"
Кто шарит thank_you2.gif , нужно сделать что бы отображались не враги, а только союзники по команде и все.
P.S. на сервере только одна воюющая команда.


удалить код

Код
my_team != target_team &&
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
orchuk
сообщение 4.3.2014, 14:40
Сообщение #51
Стаж: 5 лет 4 месяца

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

Привет всем кто знает как сделать чтобы плагин работал вместе с alias_detector057.amxx ??
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.3.2014, 15:33
Сообщение #52


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

Стаж: 3 года 11 месяцев

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

orchuk, раз 15 в этом топике объясняли http://c-s.net.ua/forum/index.php?showtopi...tector&st=0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 30.3.2014, 8:58
Сообщение #53
Стаж: 3 года 8 месяцев

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

Всем привет не подскажите какой из плагинов меньше грузит сервер ??
spritesESP.amxx
admin_esp_mini.amxx
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Naiteki
сообщение 18.12.2014, 0:37
Сообщение #54


Стаж: 3 года 11 месяцев

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

Цитата(Hnt @ 9.1.2013, 1:35) *
Скрытый текст
Код
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Admin Spectator ESP"
#define VERSION "1.6"
#define AUTHOR "KoST"

#define OFFSET_TEAM    114

enum {
    ESP_ON = 0,
    ESP_LINE,
    ESP_BOX
}

new bool:admin[33], bool:first_person[33], bool:ducking[33], bool:admin_options[33][10], bool:is_in_menu[33]
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 view_target[33], damage_done_to[33], spec[33], pcvar_esp_default_keys, laser, max_players

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    pcvar_esp_default_keys    = register_cvar("esp_disable_default_keys","0")
    
    register_clcmd("esp_menu", "cmd_esp_menu", ADMIN_KICK, "Shows ESP Menu")
    register_clcmd("esp_toggle", "cmd_esp_toggle", ADMIN_KICK, "Toggle ESP on/off")
    register_clcmd("esp_setting", "cmd_esp_settings", ADMIN_KICK, "ESP adasdsassdasd")
    
    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")    
    
    new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2
    register_menucmd(register_menuid("Admin Specator ESP"), keys, "menu_esp")
    
    max_players = get_maxplayers()
    
    set_task(1.0, "esp_timer")
}

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

public client_putinserver(id)
{
    first_person[id]=false
    if (get_user_flags(id) & ADMIN_KICK)
    {
        admin[id]=true
        init_admin_options(id)
    }
    else
        admin[id]=false
}

public client_disconnect(id)
{
    save2vault(id)
    admin[id] = false
    spec[id] = 0
}

public reset_hud_alive(id)
    spec[id] = 0

public cmd_esp_settings(id)
{
    if (admin[id])
    {
        new out[11], len = strlen(out)
        read_argv(1, out, 4)
        for (new i=0;i<len;i++)
        {
            if (out[i]=='1')
                admin_options[id][i]=true
            else
                admin_options[id][i]=false
        }
    }
}

public cmd_esp_menu(id)
{
    if (admin[id])
    {
        show_esp_menu(id)
    }
}

public cmd_esp_toggle(id)
{
    if (admin[id])
    {
        change_esp_status(id, !admin_options[id][0])
    }
}

show_esp_menu(id)
{
    is_in_menu[id] = true
    new menu[501]
    new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2
    new onoff[2][] = {{"\roff\w"},{"\yon\w"}}
    new text[2][] = {{"(use move forward/backward to switch on/off)"},{"(use esp_toggle command to toggle)"}}
    new text_index = get_pcvar_num(pcvar_esp_default_keys)
    if (text_index!=1) text_index=0
    formatex(menu, 500, "Admin Specator ESP^n %s %s^n^n1. Линии %s^n2. Квадраты %s^n^n0. Выход", onoff[admin_options[id][ESP_ON]], text[text_index],
    onoff[admin_options[id][ESP_LINE]],
    onoff[admin_options[id][ESP_BOX]])
    show_menu(id, keys,menu)
    
    return PLUGIN_HANDLED
}

public menu_esp(id, key)
{
    if (key==9)
    {
        is_in_menu[id]=false
        return PLUGIN_HANDLED
    }
    if (admin_options[id][key+1])
        admin_options[id][key+1]=false
    else
        admin_options[id][key+1]=true

    show_esp_menu(id)
    return PLUGIN_HANDLED
}

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)
{
    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)
{
    for (new i=0;i<4;i++)
    {
        admin_options[id][i] = true
    }
    load_vault_data(id)
}

save2vault(id)
{
    if (admin[id])
    {
        new authid[35], tmp[11], key[41]
        get_user_authid(id, authid, charsmax(authid))
    
        for (new s=0;s<4;s++)
        {
            if (admin_options[id][s])
                tmp[s]='1'
            else
                tmp[s]='0'
        }
        tmp[4]=0

        formatex(key, charsmax(key), "ESP_%s", authid)
        set_vaultdata(key, tmp)
    }
}

load_vault_data(id)
{
    if (admin[id])
    {
        new data[11], authid[35], key[41]
        get_user_authid (id, authid, charsmax(authid))
        formatex(key, 40, "ESP_%s", authid)
        get_vaultdata(key, data, 4)
        if (strlen(data) > 0)
        {
            for (new s=0;s<4;s++)
            {
                if (data[s]=='1')
                    admin_options[id][s]=true
                else
                    admin_options[id][s]=false
            }
        }
    }
}

change_esp_status(id, bool:on)
{
    if (on)
    {
        admin_options[id][0] = true
        if (!is_in_menu[id]) client_print(id, print_chat, "[%s] ON", PLUGIN)
        if (is_in_menu[id]) show_esp_menu(id)
    }
    else
    {
        admin_options[id][0] = false
        if (!is_in_menu[id]) client_print(id, print_chat, "[%s] OFF", PLUGIN)
        if (is_in_menu[id]) show_esp_menu(id)
    }
}

public fwdPlayerPreThink(id)
{
    if (!is_user_connected(id)) return FMRES_IGNORED
    
    static button, oldbutton
    button=pev(id, pev_button)
    if (button==0) return FMRES_IGNORED

    oldbutton=pev(id, pev_oldbuttons)
    
    if (button & IN_DUCK)
        ducking[id]=true
    else
        ducking[id]=false
    
    if (get_pcvar_num(pcvar_esp_default_keys) !=1)
    {
        if (admin[id])
        {
            if (first_person[id] && !is_user_alive(id))
            {
                if ((button & IN_FORWARD) && !(oldbutton & IN_FORWARD) && !admin_options[id][0])
                {
                    change_esp_status(id, true)
                }
                if ((button & IN_BACK) && !(oldbutton & IN_BACK) && admin_options[id][0])
                {
                    change_esp_status(id, false)
                }
            }
        }
    }
    return FMRES_HANDLED
}

public esp_timer()
{
    static spec_id, Float:my_origin[3], my_team, 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++)
    {
        if (admin_options[i][ESP_ON] && 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)
            my_team = get_pdata_int(spec_id, OFFSET_TEAM)
            
            for (new s=1;s<=max_players;s++)
            {
                if (is_user_alive(s))
                {
                    target_team = get_pdata_int(s, OFFSET_TEAM)
                    if (!(target_team ==3))
                    {
                        if (spec_id !=s)
                        {
                            if (((my_team != target_team && (target_team ==1 || target_team ==2))))
                            {
                                pev(s, pev_origin, target_origin)
                                distance=vector_distance(my_origin, target_origin)
                                
                                if (admin_options[i][ESP_LINE])
                                {
                                    if (distance<2040.0)
                                        width=(255-floatround(distance/8.0))/3
                                    else
                                        width=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)

                                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
                                normalize(v_middle,offset_vector,distance_to_hitpoint-10.0)

                                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)

                                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 (admin_options[i][ESP_BOX])
                                {
                                    if (distance_target_hitpoint<2040.0)
                                        actual_bright=(255-floatround(distance_target_hitpoint/12.0))
                                    else
                                        actual_bright=85

                                    if (distance_to_hitpoint!=distance)
                                        color=0
                                    else
                                        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)
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    set_task(0.3, "esp_timer")
    return PLUGIN_CONTINUE    
}

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(3)
    write_byte(0)
    write_byte(3)
    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(3)
    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()
}

Это самая новая версия?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя danisimus
сообщение 23.8.2016, 3:31
Сообщение #55
Стаж: 8 лет 10 месяцев

Сообщений: 589
Благодарностей: 102
Полезность: 62

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

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