Сложность: новичек. Создание приближения для оружия. Рассмотрим несколько примеров создания зум-режима. Для начала сделаем самый простой зум. Как у арбалета. Для нам потребуется код такого содержания: В классе оружия нам потребуется сама функция, к примеру назовем её просто zoom: void Zoom( void ); и небольшая переменная: bool m_bZoomed; Так же нам надо записать нашу переменную в DataDesk: DEFINE_FIELD( m_bZoomed, FIELD_BOOLEAN ), Теперь нам надо что б наш зум вызывался на ПКМ ( правая кнопка мыши ). Для этого мы идём в функцию ItemPostFrame и там напишем что-нибудь вроде этого: if ( pPlayer -> m_nButtons & IN_ATTACK2 ) // если игрок нажмет на правую кнопку мышы { Zoom(); // то будем вызывать нашу фукцию zoom } С этим покончено. Теперь непосредственно перейдем к самому приближению. Для этого создадим функцию: voidCWeaponTest::Zoom( void ) { CBasePlayer *pPlayer = ToBasePlayer( GetOwner() ); if ( pPlayer == NULL ) return; if ( m_bZoomed ) { pPlayer -> ShowViewModel( true ); // пока игрок не нажал на ПКМ, то вью модель оружия будет видна WeaponSound( SPECIAL2 ); // звук при нажатии pPlayer -> SetFOV( this, 0, 0.1f ); m_bZoomed = false; // m_bZoomed не активен } else { pPlayer -> ShowViewModel( false ); // вьюмодель будет уже скрыта, так как зум ативирован :) WeaponSound( SPECIAL1 ); // звук при нажатии pPlayer -> SetFOV( this, 35, 0.1f ); // 35 – значение насколько сильно приближение m_bZoomed = true; // m_bZoomed активен } } Если вам ненужны звуки при переключении Простой режим - зум и обратно, то просто удалите строки начинающиеся с WeaponSound. Ну вот собственно с самым легким зумом покончено На этом пока всё. To be continued…
|