Хотите сделать приближение для своей пушки? нет проблем =) это можно использовать, как для sec attack, так и для других кнопок.... И так приступим... для начала создадим
#define у вашей пушки..., т.е после всех
#include пишем:
code:
#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). В нём добавляем:
code:void ItemPostFrame( void );
void ItemBusyFrame( void );
void ItemHolsterFrame( void );
и после
private: пишем:
code:
void CheckZoom( void );
float m_flNextZoomTime;
int m_iZoomState;
Так с классом всё... теперь спускаемся чуть ниже до строчки
BEGIN_DATADESC( CWeaponName ) и после
{ пишем:
code:DEFINE_FIELD( m_iZoomState, FIELD_INTEGER ),
DEFINE_FIELD( m_flNextZoomTime, FIELD_FLOAT ),
Теперь нам надо добавить
void CWeapon357::ItemBusyFrame( void ), ItemHolsterFrame и ItemPostFrame
И так приступим:
code:
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();
}
И теперь последнее, создадим само приближение, которе вы сможете потом использовать:
code:
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;
}
}
}
Вот и всё... теперь вы сможете добавить это во вторичный огонь, или дополнительные кнопки... удачи
![](images/smilies/smile.gif)
(c) drnelson | P.S скоро будет код... ммм нового npc... которые может силой "разума" заставить врагов быть за него, а игрока скажем "застопорить" сделать "пьяный экран"
_____________
Ах да... ещё скажу как дабавить в стартовое меню музыку... короче открываем файл "moddir\cfg\valve.rc" в нём пишем:
code:play media/namemp3.mp3
А сам файлик суём в moddir\sounds\media\. Гатова
![](images/smilies/wink.gif)