Суббота, 12.10.2024, 19:55
Приветствую Вас 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

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

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

3x Приближение
Хотите сделать приближение для своей пушки? нет проблем =) это можно использовать, как для sec attack, так и для других кнопок.... И так приступим... для начала создадим #define у вашей пушки..., т.е после всех #include пишем:
 
#define NEXT_ZOOM_TIME 0.2f
#define ZOOM_STATE_NORMAL 0
#define ZOOM_STATE_2X 1
#define ZOOM_STATE_4X 2

Находим calss своей пушки. (class CWeaponName : public CBaseHLCombatWeapon). В нём добавляем:
 
void ItemPostFrame( void );
void ItemBusyFrame( void );
void ItemHolsterFrame( void );

и после private: пишем:
 
void CheckZoom( void );
float m_flNextZoomTime;
int m_iZoomState;

Так с классом всё... теперь спускаемся чуть ниже до строчки BEGIN_DATADESC( CWeaponName ) и после { пишем:
 
DEFINE_FIELD( m_iZoomState, FIELD_INTEGER ),
DEFINE_FIELD( m_flNextZoomTime, FIELD_FLOAT ),
 
Теперь нам надо добавить void CWeapon357::ItemBusyFrame( void ), ItemHolsterFrame и ItemPostFrame
И так приступим:
void CWeaponName::ItemBusyFrame( void )
{
CheckZoom();
BaseClass::ItemBusyFrame();
}

void CWeaponName::ItemHolsterFrame( void )
{
if (m_iZoomState != ZOOM_STATE_NORMAL)
{
CBasePlayer *pPlayer = ToBasePlayer( GetOwner() );

m_iZoomState = ZOOM_STATE_NORMAL;
pPlayer->SetFOV(this, 0, 0.1f);
}

BaseClass::ItemHolsterFrame();
}

void CWeaponName::ItemPostFrame( void )
{
CheckZoom();

BaseClass::ItemPostFrame();
}

И теперь последнее, создадим само приближение, которе вы сможете потом использовать:
 
void CWeaponName::CheckZoom( void )
{
CBasePlayer *pPlayer = ToBasePlayer( GetOwner() );

if (pPlayer == NULL)
return;

if ( (pPlayer->m_afButtonPressed & IN_ATTACK2) && (gpGlobals->curtime > m_flNextZoomTime) )
{
m_flNextZoomTime = gpGlobals->curtime + NEXT_ZOOM_TIME;

switch(m_iZoomState)
{
case ZOOM_STATE_NORMAL:
m_iZoomState = ZOOM_STATE_2X;
pPlayer->SetFOV(this, 20, 0.2f);
break;

case ZOOM_STATE_2X:
m_iZoomState = ZOOM_STATE_4X;
pPlayer->SetFOV(this, 10, 0.2f);
break;

case ZOOM_STATE_4X:
m_iZoomState = ZOOM_STATE_NORMAL;
pPlayer->SetFOV(this, 0, 0.2f);
break;

default:
break;
}
}
}

Вот и всё... теперь вы сможете добавить это во вторичный огонь, или дополнительные кнопки... удачи  © drnelson | P.S скоро будет код... ммм нового npc... которые может силой "разума" заставить врагов быть за него, а игрока скажем "застопорить" сделать "пьяный экран"

Источник: http://bbs.nashalife.ru/showthread.php?s=&threadid=12836
Категория: Туториалы по программированию (HL2) | Добавил: DetLeR (29.06.2007) | Автор: Fena
Просмотров: 1450 | Комментарии: 3 | Рейтинг: 5.0 |

Всего комментариев: 3
3 DetLeR  
0
Блин, чиф не тупи тут все понятно biggrin

2 Master_4if  
0

1 Master_4if  
0
Детлер, объясни плиз точно где и что изменять надо smile

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

Кто в Онлайн

Друзья сайта

Баннеры

  Сайт 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