Прежде всего, выберем оружие - лучше Глок - в нём это делается проще всего. Находим функцию void CGlock::GlockFire И в самом начале пишем: //CA if ((gpGlobals->time - last_shot) < 1.6)//если прошло меньше полутора секунд { if ( 5 > caSpread - (last_shot - gpGlobals->time)*0.01)//если лимит не превышен (6 градусов в каждую сторону) { caSpread = caSpread - (last_shot - gpGlobals->time)*0.01;//Увеличиваем разброс пуль } } else { caSpread = flSpread; }//Возвращаем исходное значение, из аргументов функции //\CA Затем меняем параметры m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, Vector( flSpread, flSpread, flSpread ), 8192, BULLET_PLAYER_9MM, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed ); на m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, Vector( caSpread, caSpread, caSpread ), 8192, BULLET_PLAYER_9MM, 0, 0, m_pPlayer->pev, m_pPlayer->random_seed );
После этих строчек добавляем новую и пишем: last_shot = gpGlobals->time;//CA
Затем открываем файл weapons.h: Там находим определение класса CGlock И в private части добавляем следующее: float caSpread;//Текущий разброс пуль int last_shot;//Время последнего выстрела
Всё - компилим и наслаждаемся разбросом, кроме того ещё нужно как нибудь сделать анимированный спрайт который бы увеличивался и уменьшался. Добавлю в ближайшее время. Или вы можете предложить свои варианты???