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

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

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

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

2 страниц V   1 2

sprite ESP update

, Админ WallHack
Статус пользователя user.gameover.user
сообщение 8.11.2014, 20:14
Сообщение #1
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

Малоизвестный плагин wallhack'a на сервере
В даной версии wallhack работает только для мертвых админов с флагом а
Включение/выключение wh нажатием кнопки W в режиме от первого лица

spritesESP.sma Fix 09.11.14

Код
#include <amxmodx>
#include <fakemeta>
#include <xs>

#define PLUGIN    "sprite ESP"
#define AUTHOR    "DarkGL"
#define VERSION    "1.0"

const maxPlayers    =    32;

const Float: spriteDistance = 10.0;

new const spriteEnemy[]        =    "sprites/esp_enemy.spr";
new const spriteFriend[]    =    "sprites/esp_friend.spr";

new spriteEnemyIndex        =    0;
new spriteFriendIndex        =    0;

new const espClassName[]    =    "esp_info";

new temporarySprites[ maxPlayers + 1 ];

new bool:espON[ maxPlayers + 1 ];


new bool: gAdm[33], bool: gSpecFirst[33], gSpecUser[33];
new g_iTeam[33];

public plugin_init()
{
    
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    for( new iCurrent = 1; iCurrent <= maxPlayers; iCurrent++ ){
        temporarySprites[ iCurrent ]    =    createSprite( iCurrent );
    }
    
    register_forward( FM_AddToFullPack , "addToFullPack" , 1 );

    register_forward( FM_CheckVisibility , "checkVisibility" );
    
    register_event("TeamInfo", "JoinTeam", "a")
    register_event("TextMsg","spec_mode","b","2&#Spec_Mode")
    
    register_event("StatusValue","spec_target","bd","1=2")
    register_event("SpecHealth2","spec_target","bd")

}

public client_putinserver(id)
{
    if(get_user_flags(id) & ADMIN_IMMUNITY)
    {
        gAdm[id] = true;
        espON[ id ] = true; // Auto enable
    }
    else
        gAdm[id] = false; //clear
}

public client_PreThink(id)
{
    if (!gAdm[id]) return PLUGIN_CONTINUE;
    
    if (!is_user_connected(id))
        return PLUGIN_CONTINUE
    
    new button = pev(id, pev_button) //get_user_button(id);
    
    if (button == 0)
        return PLUGIN_CONTINUE // saves a lot of cpu
    
    new oldbutton = pev(id, pev_oldbuttons) //get_user_oldbutton(id)
    
    if (gSpecFirst[id] && !is_user_alive(id))
    {
        if ((button & IN_FORWARD)  && !(oldbutton & IN_FORWARD))
        {
            espON[ id ] = !espON[ id ];
            client_print(id, print_chat, "Status %s", espON[ id ] ? "ON" : "OFF")
        }    
    }
    
    return PLUGIN_CONTINUE
}

//For CPU save
public JoinTeam()
{
    new id, szTeam[2]

    id = read_data(1)
    read_data(2, szTeam, 1)

    switch(szTeam[0])
    {
        case 'T': g_iTeam[id] = 1
        case 'C': g_iTeam[id] = 2
        case 'S': g_iTeam[id] = 3
        default:  g_iTeam[id] = 0
    }

    return PLUGIN_CONTINUE
    
}

public spec_mode(id)
{
    if(!gAdm[id]) return PLUGIN_CONTINUE; // we can don't do it, but it's will faster.
    
    new specMode[12]
    read_data(2,specMode,11)
    
    if(equal(specMode,"#Spec_Mode4"))
    {
        gSpecFirst[id] = true    
    }
    else
        gSpecFirst[id] = false
    
    return PLUGIN_CONTINUE
}

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

public plugin_precache(){
    spriteEnemyIndex    =    precache_model( spriteEnemy );
    spriteFriendIndex    =    precache_model( spriteFriend );
}

public checkVisibility(id,pset)
{
    if( !pev_valid( id ) ){
        return FMRES_IGNORED;
    }
    
    new szClass[ 64 ];
    
    pev( id , pev_classname , szClass , charsmax( szClass ) );
    
    if( !equal( szClass , espClassName ) ){
        return FMRES_IGNORED;
    }
    
    forward_return(FMV_CELL,1)
    return FMRES_SUPERCEDE
}

public addToFullPack( es_state, e, ENT, HOST, hostflags, player, set){
    if( player || is_user_alive( HOST ) ){
        return FMRES_IGNORED;
    }
    
    if( !pev_valid( ENT ) ){
        return FMRES_IGNORED;
    }
    
    new iOwner    =    pev( ENT , pev_owner );
    
    if( !is_user_alive( iOwner ) || !espON[ HOST ] || temporarySprites[ pev( ENT , pev_owner ) ] != ENT || iOwner == HOST ){
        return FMRES_IGNORED;
    }
    
    
    new Float: startPosition[ 3 ],
        Float: endPosition[ 3 ],
        Float: fEnd[ 3 ],
        Float: fVector[ 3 ],
        Float: fEndPosition[ 3 ],
        Float: endVector[ 3 ],
        Float: fLenNew,
        Float: fLenOld;
    
    calculateStartPosition( HOST , startPosition );
    calculateEndPosition( iOwner , endPosition );
    calculateVector( endPosition , startPosition , fVector );
    
    traceLine( startPosition , endPosition , fEnd , HOST );
    
    movePosition( fEnd , fVector , fEndPosition );
    
    calculateEndVector( startPosition , fEndPosition , endVector );
    
    fLenNew    =    xs_vec_len( endVector );
    fLenOld    =    xs_vec_len( fVector );
    
    set_es( es_state , ES_Origin , fEndPosition );
    set_es( es_state , ES_ModelIndex , g_iTeam[gSpecUser[HOST]] == g_iTeam[iOwner] ? spriteFriendIndex : spriteEnemyIndex );
    set_es( es_state , ES_Scale ,  fLenNew / fLenOld );
    
    set_es( es_state, ES_RenderAmt , 255.0 );
    
    return FMRES_HANDLED;
}

createSprite( iOwner ){
    new iEnt    =    engfunc( EngFunc_CreateNamedEntity , engfunc( EngFunc_AllocString , "info_target" ) );
    
    if( !pev_valid( iEnt ) ){
        return 0;
    }
    
    set_pev( iEnt , pev_classname , espClassName );
    
    engfunc( EngFunc_SetSize , iEnt , Float:{ -1.0 , -1.0 , -1.0 } , Float:{ 1.0 , 1.0 , 1.0 } );
    engfunc( EngFunc_SetOrigin , iEnt , Float:{ 306.0 , 2434.0 , -91.0 } );
    
    engfunc( EngFunc_SetModel , iEnt , spriteEnemy );
    
    set_pev( iEnt, pev_renderfx, kRenderFxNone );
    set_pev( iEnt, pev_rendercolor, Float:{ 255.0 , 255.0 , 255.0 } );
    set_pev( iEnt, pev_rendermode, kRenderTransAlpha );
    set_pev( iEnt, pev_renderamt, 0.0 );
    
    set_pev( iEnt , pev_solid , SOLID_NOT );
    set_pev( iEnt , pev_movetype , MOVETYPE_NONE );
    
    set_pev( iEnt, pev_owner , iOwner );
    
    dllfunc(DLLFunc_Spawn, iEnt )
    
    return iEnt;
}

calculateStartPosition( id , Float: startPosition[ 3 ] ){
    new Float: fOrigin[ 3 ],
        Float: fView[ 3 ];
        
    pev( id , pev_origin , fOrigin );
    pev( id , pev_view_ofs , fView );
    
    xs_vec_add( fOrigin , fView , startPosition );
}

calculateEndPosition( id , Float: endPosition[ 3 ]  ){
    pev( id , pev_origin , endPosition );
}

traceLine( Float:startPosition[ 3 ] , Float:endPosition[ 3 ] , Float:fEnd[ 3 ] , idSkip ){
    new pTR    =    create_tr2();
    
    engfunc( EngFunc_TraceLine , startPosition , endPosition , IGNORE_MONSTERS , idSkip , pTR );
    
    get_tr2( pTR , TR_vecEndPos , fEnd );
    
    free_tr2( pTR );
}

calculateVector( Float:startPosition[ 3 ] , Float:endPosition[ 3 ] , Float:fVector[ 3 ] ){
    xs_vec_sub( endPosition , startPosition , fVector );
}

movePosition( Float: fPosition[ 3 ] , Float: fVector[ 3 ] , Float: fEndPosition[ 3 ] ){
    
    new Float: fVectorCopy[ 3 ];
    
    xs_vec_copy( fVector , fVectorCopy );
    
    xs_vec_normalize( fVectorCopy , fVectorCopy );
    
    xs_vec_mul_scalar( fVectorCopy , spriteDistance , fVectorCopy );
    
    xs_vec_add( fPosition , fVectorCopy , fEndPosition );
}

calculateEndVector( Float: startPosition[ 3 ] , Float: fEnd[ 3 ] , Float: fEndVector[ 3 ] ){
    xs_vec_sub( fEnd, startPosition , fEndVector );
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/











Плагин предоставляется как есть. Оригинальный же плагин там wallhack сделан только для живых,неясно зачем.




09.11.14 Фикс отображение цветов спрайта врагов когда наблюдаешь из спектров

Прикрепленный файл  cstrike.rar ( 16,99 килобайт ) Кол-во скачиваний: 231


Отредактировал: user.gameover.user, - 9.11.2014, 10:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя adva
сообщение 8.11.2014, 20:37
Сообщение #2


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

Стаж: 10 лет

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

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

#include <xs>

это чё? где взять? как с нагрузкой в отличии от admin_esp?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя user.gameover.user
сообщение 8.11.2014, 20:39
Сообщение #3
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

Цитата(adva @ 8.11.2014, 20:37) *
#include <xs>

это чё? где взять? как с нагрузкой в отличии от admin_esp?

http://rghost.ru/private/58960601/4f139496...11140ee58eed80e

про нагрузку знать наверняка не могу,на форуме тут была инфа что меньше грузит даный плагин
Плюс у другого admin esp конфликты с плагином alias detector, так что это минимум как альтернатива
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя adva
сообщение 8.11.2014, 20:47
Сообщение #4


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

Стаж: 10 лет

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

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

Цитата(user.gameover.user @ 8.11.2014, 21:39) *
http://rghost.ru/private/58960601/4f139496...11140ee58eed80e

про нагрузку знать наверняка не могу,на форуме тут была инфа что меньше грузит даный плагин
Плюс у другого admin esp конфликты с плагином alias detector, так что это минимум как альтернатива


есть возможность протестировать нагрузку с админ_есп и со спрайтами?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 8.11.2014, 20:47
Сообщение #5


Стаж: 10 лет

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

user.gameover.user, нет у него конфликтов) Этот гон был из за неверного заполнения aliases.cfg.
А что нового в этой версии, плагин уже выкладывался на форуме, или это тот же?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя user.gameover.user
сообщение 8.11.2014, 20:50
Сообщение #6
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

Цитата(Bloo @ 8.11.2014, 20:47) *
user.gameover.user, нет у него конфликтов) Этот гон был из за неверного заполнения aliases.cfg.
А что нового в этой версии, плагин уже выкладывался на форуме, или это тот же?


Цитата
Оригинальный же плагин там wallhack сделан только для живых,неясно зачем


Цитата(adva @ 8.11.2014, 20:47) *
есть возможность протестировать нагрузку с админ_есп и со спрайтами?

Безпонятия каким образом это сделать,для моего компа разницы никакой

Отредактировал: user.gameover.user, - 8.11.2014, 20:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 8.11.2014, 20:52
Сообщение #7


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

Стаж: 10 лет

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

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

Цитата(user.gameover.user @ 8.11.2014, 21:50) *
Безпонятия каким образом это сделать,для моего компа разницы никакой


rcon status с админ есп
rcon status с спрайт есп
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя user.gameover.user
сообщение 8.11.2014, 20:57
Сообщение #8
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

Цитата(adva @ 8.11.2014, 20:52) *
rcon status с админ есп
rcon status с спрайт есп

это на голом амхх тестируйте сами, у меня ядро 4.7ггц под сервер
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 8.11.2014, 21:21
Сообщение #9


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

Стаж: 10 лет

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

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

вообщем, ВХ доступен и обычному игроку. нет прекеша.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя user.gameover.user
сообщение 8.11.2014, 21:24
Сообщение #10
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

Цитата(adva @ 8.11.2014, 21:21) *
вообщем, ВХ доступен и обычному игроку. нет прекеша.

перепроверю,доступен всем этоже не так и плохо
скоро будет версия только для админов
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 8.11.2014, 21:28
Сообщение #11


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

Стаж: 10 лет

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

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

Цитата(user.gameover.user @ 8.11.2014, 22:24) *
перепроверю,доступен всем этоже не так и плохо
скоро будет версия только для админов


предлагаю сделать только для ADMIN_BAN
я так подозреваю, что вы даже не протестировали эту версию и просто выложили в народ. Не есть хорошо выкладывать с таким существенным багом, который был известен до вашей версии в оригинале.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя user.gameover.user
сообщение 8.11.2014, 21:31
Сообщение #12
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

Цитата(adva @ 8.11.2014, 21:28) *
предлагаю сделать только для ADMIN_BAN
я так подозреваю, что вы даже не протестировали эту версию и просто выложили в народ. Не есть хорошо выкладывать с таким существенным багом, который был известен до вашей версии в оригинале.

каким багом? в оригинале прекеш у меня работал,даже и подумать не мог что его сломают при переделке плагина
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheNega
сообщение 8.11.2014, 21:56
Сообщение #13


Стаж: 11 лет

Сообщений: 724
Благодарностей: 1396
Полезность: 1101

user.gameover.user,
оффтоп
Подскажи , как сделать размытие такое же как на скрине?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя user.gameover.user
сообщение 8.11.2014, 22:07
Сообщение #14
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

Цитата(adva @ 8.11.2014, 21:28) *
предлагаю сделать только для ADMIN_BAN
я так подозреваю, что вы даже не протестировали эту версию и просто выложили в народ. Не есть хорошо выкладывать с таким существенным багом, который был известен до вашей версии в оригинале.


Код
Requesting HTTP download of http://fastdl.*****:8888/csnew/sprites/esp_enemy.spr.
Requesting HTTP download of http://fastdl.*****:8888/csnew/sprites/esp_friend.spr.
Saved http://fastdl.*****:8888/csnew/sprites/esp_enemy.spr to disk
Saved http://fastdl.*****:8888/csnew/sprites/esp_friend.spr to disk

все прекрасно загрузило на стим и нонстим

Цитата(TheNega @ 8.11.2014, 21:56) *
user.gameover.user,
оффтоп
Подскажи , как сделать размытие такое же как на скрине?


Код
gl_picmip 3


Цитата(adva @ 8.11.2014, 21:28) *
предлагаю сделать только для ADMIN_BAN
я так подозреваю, что вы даже не протестировали эту версию и просто выложили в народ. Не есть хорошо выкладывать с таким существенным багом, который был известен до вашей версии в оригинале.

и без админки ничего не работает этот esp

теперь моя очередь подозревать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя adva
сообщение 9.11.2014, 1:15
Сообщение #15


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

Стаж: 10 лет

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

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

зашел без админки и работал есп. и еще админы жаловались, что не могут войти на сервер без спрайтов.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
kreat1ff
сообщение 9.11.2014, 1:29
Сообщение #16
Стаж: 13 лет

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

Именно то что я так давно искал, но ставить что то боюсь по отзывам выше)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя user.gameover.user
сообщение 9.11.2014, 2:03
Сообщение #17
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

Цитата(adva @ 9.11.2014, 1:15) *
зашел без админки и работал есп. и еще админы жаловались, что не могут войти на сервер без спрайтов.

билд 6153 вин
амх 183дев
всё работает,изменяться не будет
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя user.gameover.user
сообщение 9.11.2014, 10:21
Сообщение #18
Стаж: 13 лет

Сообщений: 1470
Благодарностей: 426
Полезность: 700

09.11.14 Фикс отображение цветов спрайта врагов когда наблюдаешь из спектров
Заменить .sma

Отредактировал: user.gameover.user, - 9.11.2014, 10:23
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MiXa
сообщение 18.11.2014, 22:25
Сообщение #19


Стаж: 10 лет

Сообщений: 415
Благодарностей: 91
Полезность: 181

user.gameover.user, если вы не будете против, я выложу чуток измененный ваш плагин )))

Добавил проверку на админа по флагу ADMIN_BAN , теперь ESP работает только для админов )
правил для себя, решил поделится

Скрытый текст
Код:

#include <amxmodx>
#include <fakemeta>
#include <xs>

#define PLUGIN "sprite ESP"
#define AUTHOR "DarkGL"
#define VERSION "1.0"

#define ADMIN_FLAG ADMIN_BAN // Флаг доступа к ЕСП

const maxPlayers = 32;

const Float: spriteDistance = 10.0;

new const spriteEnemy[] = "sprites/esp_enemy.spr";
new const spriteFriend[] = "sprites/esp_friend.spr";

new spriteEnemyIndex = 0;
new spriteFriendIndex = 0;

new const espClassName[] = "esp_info";

new temporarySprites[ maxPlayers + 1 ];

new bool:espON[ maxPlayers + 1 ];


new bool: gAdm[33], bool: gSpecFirst[33], gSpecUser[33];
new g_iTeam[33];

public plugin_init()
{

register_plugin(PLUGIN, VERSION, AUTHOR);

for( new iCurrent = 1 ; iCurrent <= maxPlayers ; iCurrent++ ){
temporarySprites[ iCurrent ] = createSprite( iCurrent );
}

register_forward( FM_AddToFullPack , "addToFullPack" , 1 );

register_forward( FM_CheckVisibility , "checkVisibility" );

register_event("TeamInfo", "JoinTeam", "a")
register_event("TextMsg","spec_mode","b","2&#Spec_Mode")

register_event("StatusValue","spec_target","bd","1=2")
register_event("SpecHealth2","spec_target","bd")

}

public client_putinserver(id)
{
if(get_user_flags(id) & ADMIN_FLAG)
{
gAdm[id] = true;
espON[ id ] = true; // Auto enable
}
else
gAdm[id] = false; //clear
}

public client_PreThink(id)
{
if(get_user_flags(id) & ADMIN_FLAG)
{
if (!gAdm[id]) return PLUGIN_CONTINUE;

if (!is_user_connected(id))
return PLUGIN_CONTINUE

new button = pev(id, pev_button) //get_user_button(id);

if (button == 0)
return PLUGIN_CONTINUE // saves a lot of cpu

new oldbutton = pev(id, pev_oldbuttons) //get_user_oldbutton(id)

if (gSpecFirst[id] && !is_user_alive(id))
{
if ((button & IN_FORWARD) && !(oldbutton & IN_FORWARD))
{
espON[ id ] = !espON[ id ];
client_print(id, print_chat, "Status %s", espON[ id ] ? "ON" : "OFF")
}
}
}
return PLUGIN_CONTINUE
}

//For CPU save
public JoinTeam()
{
new id, szTeam[2]

id = read_data(1)
read_data(2, szTeam, 1)

switch(szTeam[0])
{
case 'T': g_iTeam[id] = 1
case 'C': g_iTeam[id] = 2
case 'S': g_iTeam[id] = 3
default: g_iTeam[id] = 0
}

return PLUGIN_CONTINUE

}

public spec_mode(id)
{
if(get_user_flags(id) & ADMIN_FLAG)
{
if(!gAdm[id]) return PLUGIN_CONTINUE; // we can don't do it, but it's will faster.

new specMode[12]
read_data(2,specMode,11)

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

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

public plugin_precache(){
spriteEnemyIndex = precache_model( spriteEnemy );
spriteFriendIndex = precache_model( spriteFriend );
}

public checkVisibility(id,pset)
{
if( !pev_valid( id ) ){
return FMRES_IGNORED;
}

new szClass[ 64 ];

pev( id , pev_classname , szClass , charsmax( szClass ) );

if( !equal( szClass , espClassName ) ){
return FMRES_IGNORED;
}

forward_return(FMV_CELL,1)
return FMRES_SUPERCEDE
}

public addToFullPack( es_state, e, ENT, HOST, hostflags, player, set){
if( player || is_user_alive( HOST ) ){
return FMRES_IGNORED;
}

if( !pev_valid( ENT ) ){
return FMRES_IGNORED;
}

new iOwner = pev( ENT , pev_owner );

if( !is_user_alive( iOwner ) || !espON[ HOST ] || temporarySprites[ pev( ENT , pev_owner ) ] != ENT || iOwner == HOST ){
return FMRES_IGNORED;
}


new Float: startPosition[ 3 ],
Float: endPosition[ 3 ],
Float: fEnd[ 3 ],
Float: fVector[ 3 ],
Float: fEndPosition[ 3 ],
Float: endVector[ 3 ],
Float: fLenNew,
Float: fLenOld;

calculateStartPosition( HOST , startPosition );
calculateEndPosition( iOwner , endPosition );
calculateVector( endPosition , startPosition , fVector );

traceLine( startPosition , endPosition , fEnd , HOST );

movePosition( fEnd , fVector , fEndPosition );

calculateEndVector( startPosition , fEndPosition , endVector );

fLenNew = xs_vec_len( endVector );
fLenOld = xs_vec_len( fVector );

set_es( es_state , ES_Origin , fEndPosition );
set_es( es_state , ES_ModelIndex , g_iTeam[gSpecUser[HOST]] == g_iTeam[iOwner] ? spriteFriendIndex : spriteEnemyIndex );
set_es( es_state , ES_Scale , fLenNew / fLenOld );

set_es( es_state, ES_RenderAmt , 255.0 );

return FMRES_HANDLED;
}

createSprite( iOwner ){
new iEnt = engfunc( EngFunc_CreateNamedEntity , engfunc( EngFunc_AllocString , "info_target" ) );

if( !pev_valid( iEnt ) ){
return 0;
}

set_pev( iEnt , pev_classname , espClassName );

engfunc( EngFunc_SetSize , iEnt , Float:{ -1.0 , -1.0 , -1.0 } , Float:{ 1.0 , 1.0 , 1.0 } );
engfunc( EngFunc_SetOrigin , iEnt , Float:{ 306.0 , 2434.0 , -91.0 } );

engfunc( EngFunc_SetModel , iEnt , spriteEnemy );

set_pev( iEnt, pev_renderfx, kRenderFxNone );
set_pev( iEnt, pev_rendercolor, Float:{ 255.0 , 255.0 , 255.0 } );
set_pev( iEnt, pev_rendermode, kRenderTransAlpha );
set_pev( iEnt, pev_renderamt, 0.0 );

set_pev( iEnt , pev_solid , SOLID_NOT );
set_pev( iEnt , pev_movetype , MOVETYPE_NONE );

set_pev( iEnt, pev_owner , iOwner );

dllfunc(DLLFunc_Spawn, iEnt )

return iEnt;
}

calculateStartPosition( id , Float: startPosition[ 3 ] ){
new Float: fOrigin[ 3 ],
Float: fView[ 3 ];

pev( id , pev_origin , fOrigin );
pev( id , pev_view_ofs , fView );

xs_vec_add( fOrigin , fView , startPosition );
}

calculateEndPosition( id , Float: endPosition[ 3 ] ){
pev( id , pev_origin , endPosition );
}

traceLine( Float:startPosition[ 3 ] , Float:endPosition[ 3 ] , Float:fEnd[ 3 ] , idSkip ){
new pTR = create_tr2();

engfunc( EngFunc_TraceLine , startPosition , endPosition , IGNORE_MONSTERS , idSkip , pTR );

get_tr2( pTR , TR_vecEndPos , fEnd );

free_tr2( pTR );
}

calculateVector( Float:startPosition[ 3 ] , Float:endPosition[ 3 ] , Float:fVector[ 3 ] ){
xs_vec_sub( endPosition , startPosition , fVector );
}

movePosition( Float: fPosition[ 3 ] , Float: fVector[ 3 ] , Float: fEndPosition[ 3 ] ){

new Float: fVectorCopy[ 3 ];

xs_vec_copy( fVector , fVectorCopy );

xs_vec_normalize( fVectorCopy , fVectorCopy );

xs_vec_mul_scalar( fVectorCopy , spriteDistance , fVectorCopy );

xs_vec_add( fPosition , fVectorCopy , fEndPosition );
}

calculateEndVector( Float: startPosition[ 3 ] , Float: fEnd[ 3 ] , Float: fEndVector[ 3 ] ){
xs_vec_sub( fEnd, startPosition , fEndVector );
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/


Отредактировал: MiXa, - 18.11.2014, 22:32


Допомога з встановлення / налаштування / оновлення за $ :>>> Сервери \ Моди \ Плагіни \ Модулі
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 18.11.2014, 22:53
Сообщение #20


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

Стаж: 14 лет

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

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

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