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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

Гранатой в голову

Статус пользователя Teemz
сообщение 21.3.2011, 1:20
Сообщение #1


Стаж: 15 лет

Сообщений: 163
Благодарностей: 27
Полезность: 137

Хочу найти плагин, который убивает или отнимает хп при попадании гранатой в голову, вроде такой существует
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя jahspb
сообщение 21.3.2011, 3:09
Сообщение #2


Стаж: 15 лет

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

GrenadeTouchDmg
Код
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>

// COMMENT THIS LINE IF YOU DONT WANT TO USE LANG FILE AND SEE HUD MESSAGES
#define HUD_MESSAGES

new Float:g_flLastTouch[ 33 ];
new g_Pointer_FriendlyFire;
new g_iMsg_DeathMsg;
new g_iHookedDeathMsg;
new g_Cvar_Enabled;
new g_iMaxplayers;

#define ERROR     0
#define HEGRENADE 1
#define FLASHBANG 2
#define SMOKENADE 3

new g_szGrenadeNames[ ][ ] = {
    "", // ERROR
    "weapon_hegrenade",
    "weapon_flashbang",
    "weapon_smokegrenade"
};

public plugin_init() {
    register_plugin( "Grenade Touch Damage", "1.3", "xPaw" );
    
    #if defined HUD_MESSAGES
        register_dictionary( "grenadetouchdmg.txt" );
    #endif
    
    g_Cvar_Enabled = register_cvar( "grenade_touch_dmg", "1", FCVAR_SERVER );
    
    g_iMaxplayers = get_maxplayers( );
    g_iMsg_DeathMsg = get_user_msgid( "DeathMsg" );
    
    if( cstrike_running( ) ) {
        g_Pointer_FriendlyFire = get_cvar_pointer( "mp_friendlyfire" );
        
        RegisterHam( Ham_Touch, "grenade", "FwdHamTouch_Grenade" );
    } else
        set_fail_state( "Only Counter-Strike Mod allowed!" );
}

public MsgDeathMsg( ) {
    set_msg_arg_int( 3, ARG_BYTE, 1 );
    set_msg_arg_string( 4, "grenade" );
    
    return PLUGIN_CONTINUE;
}

public FwdHamTouch_Grenade( iEntity, iTouched ) {
    if( !get_pcvar_num( g_Cvar_Enabled ) )
        return HAM_IGNORED;
    
    if( !( 1 <= iTouched <= g_iMaxplayers ) )
        return HAM_IGNORED;
    
    static Float:flGmTime;
    flGmTime = get_gametime();
    
    if( g_flLastTouch[iTouched] < flGmTime ) {
        new iOwner = pev( iEntity, pev_owner );
        
        if( iOwner == iTouched )
            return HAM_IGNORED;
        
        if( is_user_connected( iOwner ) ) {
            if( !get_pcvar_num( g_Pointer_FriendlyFire ) && ( get_user_team( iTouched ) == get_user_team( iOwner ) ) )
                return HAM_IGNORED;
            
            if( pev( iTouched, pev_takedamage ) == DAMAGE_NO )
                return HAM_IGNORED;
            
            new Float:flVelocity[ 3 ];
            pev( iEntity, pev_velocity, flVelocity );
            
            new Float:flSpeed = vector_length( flVelocity );
            new Float:flDamage = ( flSpeed * 0.15 ) / 13.0;
            
            if( flSpeed > 100.0 ) { // anti grenade stuck bug damage fix
                g_iHookedDeathMsg = register_message( g_iMsg_DeathMsg, "MsgDeathMsg" );
                
                new iType = GetGrenadeType( iEntity );
                if( iType != ERROR )
                    set_pev( iEntity, pev_classname, g_szGrenadeNames[ iType ] );
                
                ExecuteHamB( Ham_TakeDamage, iTouched, iEntity, iOwner, flDamage, DMG_GENERIC );
                
                if( g_iHookedDeathMsg ) {
                    unregister_message( g_iMsg_DeathMsg, g_iHookedDeathMsg );
                    
                    g_iHookedDeathMsg = 0;
                }
                
                if( iType != ERROR )
                    set_pev( iEntity, pev_classname, "grenade" );
                
                #if defined HUD_MESSAGES
                    new iReceivedDamage = pev( iTouched, pev_dmg_take );
                    
                    new szName[ 32 ], szNameOwner[ 32 ];
                    get_user_name( iTouched, szName, 31 );
                    get_user_name( iOwner, szNameOwner, 31 );
                    
                    set_hudmessage( 250, 150, 0, -1.0, 0.30, 0, 6.0, 6.0, 0.5, 0.4, 4 );
                    
                    if( !is_user_alive( iTouched ) ) {
                        show_hudmessage( iOwner, "%L", iOwner, "GTD_KILLED", szName );
                        show_hudmessage( iTouched, "%L", iTouched, "GTD_KILLED2", szNameOwner );
                    } else {
                        show_hudmessage( iOwner, "%L", iOwner, "GTD_MADEDMG", szName, iReceivedDamage );
                        show_hudmessage( iTouched, "%L", iTouched, "GTD_LOSTHP", szNameOwner, iReceivedDamage );
                    }
                #endif
            }
        }
        
        g_flLastTouch[iTouched] = flGmTime + 0.4;
    }
    
    return HAM_IGNORED;
}

stock GetGrenadeType( iEntity ) {
    if( !pev_valid( iEntity ) )
        return ERROR;
    
    new szModel[ 32 ];
    pev( iEntity, pev_model, szModel, charsmax( szModel ) );
    
    if( szModel[ 7 ] != 'w' && szModel[ 8 ] != '_' )
        return ERROR;
    
    switch( szModel[ 9 ] ) {
        case 'h': return HEGRENADE;
        case 'f': return FLASHBANG;
        case 's': return SMOKENADE;
        default : return ERROR;
    }
    
    return ERROR;
}


Отредактировал: jahspb, - 21.3.2011, 3:12
Прикрепленные файлы:
Прикрепленный файл  grenadetouchdmg.txt.rar ( 975 байт ) Кол-во скачиваний: 15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя TiR3ks
сообщение 29.3.2011, 16:49
Сообщение #3


Стаж: 17 лет

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

а раньше в старых версиях кс и без плагина можно было)))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: