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

Наш опрос
Очистить ли форум от всех сообщений и начать всё с чистого листа?
Всего ответов: 536

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

Динамичсикий разброс пуль
Прежде всего, выберем оружие - лучше Глок - в нём это делается проще всего.
Находим функцию 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;//Время последнего выстрела

Всё - компилим и наслаждаемся разбросом, кроме того ещё нужно как нибудь сделать анимированный спрайт который бы увеличивался и уменьшался. Добавлю в ближайшее время. Или вы можете предложить свои варианты???

Источник: http://crazyarts.do.am/publ/1-1-0-8

Категория: Туториалы по программированию (HL1) | Добавил: MadKing (26.06.2009)
Просмотров: 992 | Комментарии: 1 | Рейтинг: 0.0 |

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

Кто в Онлайн

Друзья сайта

Баннеры

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