Вторник, 16.04.2024, 22:15
Приветствую Вас Guest | RSS
Главная страница | Статьи | Регистрация | Вход
Меню сайта

Случайный рисунок

Категории каталога
Туториалы по маппингу (HL2) [68]
Туториалы по маппингу для Half-Life
Туториалы по текстурированию (HL2) [10]
Туторы по текстурированию для Half-Life
Туториалы по моделированию (HL2) [9]
Туторы по моделированию для Half-Life
Туториалы по программированию (HL2) [53]
Туторы по прагроммированию для Half-life
Другие туториалы (HL1 и HL2) [4]
Туторы которые не вошли в другие категории
Half-Life 2 Beta [1]
Статьи о npc и weapon в бете Half-Life 2, а так же мануалы и FAQ.
Туториалы по маппингу (HL1) [14]
Туторы по маппингу для Half-Life 1
Туториалы по текстурированию (HL1) [1]
Туторы по текстурированию для Half-Life 1
Туториалы по моделированию (HL1) [1]
Туторы по моделированию для Half-Life 1
Туториалы по программированию (HL1) [30]
Туторы по программированию для Half-Life 1

Наш опрос
Приводить ли сайт в чувство?
Всего ответов: 736

Начало » Статьи » Туториалы по программированию (HL2)

Фонарь на оружии
В этом простом туторе я покажу, как присобачить фонарь к оружию.


Открываем c_baseplayer.cpp и вверху вставляем эту строчку:

extern void FormatViewModelAttachment( Vector &vOrigin, bool bInverse );


Теперь находим функцию UpdateFlashlight() и заменяем её кодом который находится ниже:


void C_BasePlayer::UpdateFlashlight()

{

if ( IsEffectActive( EF_DIMLIGHT ) )

{

if (!m_pFlashlight)

{


m_pFlashlight = new CFlashlightEffect(index);

if (!m_pFlashlight)

return;

m_pFlashlight->TurnOn();

}

QAngle angLightDir;

Vector vecLightOrigin, vecForward, vecRight, vecUp;


GetViewModel()->GetAttachment( 1, vecLightOrigin, angLightDir );

::FormatViewModelAttachment( vecLightOrigin, true );


AngleVectors( angLightDir, &vecForward, &vecRight, &vecUp );


m_pFlashlight->UpdateLight( vecLightOrigin, vecForward, vecRight, vecUp, FLASHLIGHT_DISTANCE );

}

else if (m_pFlashlight)

{

// Turned off the flashlight; delete it.

delete m_pFlashlight;

m_pFlashlight = NULL;

}

}


Теперь добавляем фонарь к какому нибудь оружию, например в пистолет.
Добавим фонарь на вторичную атаку:



void CWeaponPistol::SecondaryAttack( void )

{

CBasePlayer *pPlayer = ToBasePlayer( GetOwner() );

if ( pPlayer == NULL )

return;

if ( !( pPlayer->IsEffectActive( EF_DIMLIGHT ) ) )

pPlayer->AddEffects( EF_DIMLIGHT );

else

pPlayer->RemoveEffects( EF_DIMLIGHT );

m_flNextSecondaryAttack = gpGlobals->curtime + 0.5f;

}

Вот и всё теперь заходим в игру жмём правую кнопку и получаем фонарь!


Источник: http://stav-mapping.info/e107_plugins/content/content.php?content.49
Категория: Туториалы по программированию (HL2) | Добавил: DetLeR (14.07.2007) | Автор: WeB-Monster
Просмотров: 2910 | Комментарии: 5 | Рейтинг: 0.0 |

Всего комментариев: 5
5 stridemann  
0
Хорош тутор, спасибо, но было бы дописать, что:
Дописываем в weapon_pistol.cpp строчку:

void SecondaryAttack( void );

После:

void PrimaryAttack( void );

4 hitmen047  
0
У меня тот же вопрос)))

3 Decer  
0
Хороший тутор!!! biggrin biggrin

Проблема одна, как сделать так, чтобы при смене оружия, или при его выкидывании, фонарь вырубался автоматически...


2 Максимус  
0
Какие???

1 blackdeath  
0
angry Ошибки

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Кто в Онлайн

Друзья сайта

Баннеры

  Сайт CrazyArts   Black   Сообщество сайтов о Half-Life   Самый   Только   Все   hl2 top 100     Rambler's Top100  

игры
игры

  Каталог сайтов Планета Топ 100 - Planet Top 100       ТОП ЛУЧШИХ ИГРОВЫХ САЙТОВ           Detroit Team Site :: Моды от Detroit Team, видео, новости.   Naruto-kun[Звезда Наруто]  


The idea of dising: Homie7