HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Неавтоматический огонь. (https://hlfx.ru/forum/showthread.php?threadid=2942)
Отправлено Chyvachok 05-08-2011 в 14:30:
Неавтоматический огонь.
У меня вопрос, как сделать для оружия в ХЛ2 неавтоматический огонь? Просто все оружие в ХЛ2 ведет автоматический огонь - зажимаешь клавишу стрельбы и дробовик или пистолет стреляет сам, а я хочу сделать так - нажал один раз - выстрелил один раз, правда я не знаю как это сделать.
И еще как научть оружие использовать другие анимации(idle, draw и т.д.) когда оружие израсходует весь боезапас в маназине?
Отправлено Дядя Миша 05-08-2011 в 14:48:
общие алгоритмы можно расписать, но тебе, я так понимаю, нужен именно готовый пример? У нас по хл2 нету специалистов.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 05-08-2011 в 15:22:
Chyvachok
А револьвер, базука?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено IPwnMice 05-08-2011 в 15:57:
Цитата:
FiEctro писал:
Chyvachok
А револьвер, базука?
Они автоматы тоже.
Отправлено marikcool 05-08-2011 в 18:24:
bind mouse1 "+attack;wait;-attack"
Отправлено Government-Man 05-08-2011 в 19:28:
marikcool а если кто-то перебиндит? 
Отправлено marikcool 05-08-2011 в 20:27:
Цитата:
Government-Man писал:
если это мод то положить в autoexec.cfg ))
+перебиндивалку в меню убрать))
а вообще надо задержку между выстрелами увиличить на 250мс гдето)
Отправлено Government-Man 08-08-2011 в 14:15:
Цитата:
marikcool писал:
+перебиндивалку в меню убрать))
А если нужно будет что-то другое перебиндить? Или хотя бы повесить тот же выстрел на другую клавишу?
Отправлено marikcool 09-08-2011 в 05:51:
Цитата:
Government-Man писал:
А если нужно будет что-то другое перебиндить? Или хотя бы повесить тот же выстрел на другую клавишу?
в меню перебиндивается алиас)
Отправлено HAWK0044 09-08-2011 в 07:05:
охх...
В хл1 в классе игрока есть m_afButtonPressed , и можно было делать в Primary Attack вот так:
if(!(m_pPlayer->m_afButtonPressed & IN_ATTACK))
return;
и тогда всё было очень даже хорошо и работало , а вы тут себе мозгодолбством мапперским занимаетесь.
Отправлено marikcool 09-08-2011 в 17:58:
Цитата:
HAWK0044 писал:
мы просто о таком незнаем) и сдк под рукой нет)
а если быстро кликать что будет в таком случае? сейчас большинство разработчиков забывают раствлять задержки между нажатиями, и в большинство играх типо COD и Gears of War можно быстро стрелять)
Отправлено Ku2zoff 10-08-2011 в 02:19:
Цитата:
marikcool писал:
а если быстро кликать что будет в таком случае?
Следующий выстрел всё равно произойдёт не раньше, чем истечёт время m_flNextPrimaryAttack. Собсно, в КС это время для пистолетов довольно маленькое.
Отправлено HAWK0044 10-08-2011 в 22:00:
Ku2zoff
Да, так и есть.
marikcool
А вот он у меня всегда под рукой (сдк) , так что , учитесь хотя бы с нубов ,таких как я , пока что...
Отправлено IPwnMice 11-08-2011 в 09:55:
Цитата:
marikcool писал:
забывают раствлять задержки между нажатиями
Не совсем. В CoD у полуавтоматов разработчики сами ставят задержку либо 0.05 с, либо 0.1 с.
Отправлено marikcool 11-08-2011 в 21:04:
Цитата:
IPwnMice писал:
http://www.youtube.com/watch?v=38dD1lVqhUg
Отправлено Danger 26-10-2011 в 15:30:
Я на примере глока зделал как тут написано:
Цитата:
HAWK0044 писал:
охх...
В хл1 в классе игрока есть m_afButtonPressed , и можно было делать в Primary Attack вот так:
if(!(m_pPlayer->m_afButtonPressed & IN_ATTACK))
return;
и тогда всё было очень даже хорошо и работало , а вы тут себе мозгодолбством мапперским занимаетесь.
Ано то работает, но когда оставляешь клавишу зажатой, первый выстрел все норм, а дальше после задержки: m_flNextPrimaryAttack из глока начинают бесконечно и без задержки в m_flNextPrimaryAttack вылетают гильзы и рисовать декали на стене. Я так понял проблем с клиентом.
Как это исправить??
Отправлено Дядя Миша 26-10-2011 в 15:47:
Danger в хл2 возможно эта переменная называется по другому.
Кроме того клиент тоже надо перекомпилить, там же предиктинг.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Danger 26-10-2011 в 16:55:
я под хл 1 делаю, так я клиент тоже перекомпилить всеровно неработает
на сервере етот код работает, а на клиенте нет.
А другим методом может както зделать??
Отправлено marikcool 26-10-2011 в 16:59:
Цитата:
Danger писал:
проверка на пустоту обоймы есть?
Отправлено Danger 26-10-2011 в 17:12:
Цитата:
marikcool писал:
Все есть я ничего в коде не изменял просто добавил код:
C++ Source Code:
1 | void CGlock::PrimaryAttack( void ) |
3 | if(! ( m_pPlayer->m_afButtonPressed & IN_ATTACK )) |
6 | GlockFire( 0.01, 0.3, TRUE ); |
я так понял нужно на клиенте в ev_hldm.cpp
там где функция void EV_FireGlock1 сделать аналогичную проверку на нажатие клавиши, только я не знаю как это зделать на клиенте.
Отправлено marikcool 26-10-2011 в 17:19:
Цитата:
Danger писал:
я так понял нужно на клиенте в ev_hldm.cpp
там где функция void EV_FireGlock1 сделать аналогичную проверку на нажатие клавиши, только я не знаю как это зделать на клиенте. [/B]
если этого кода нет, то добавь его перед GlockFire( 0.01, 0.3, TRUE );
C++ Source Code:
5 | m_flNextPrimaryAttack = 0.2; |
и client.dll каждый раз пересобирай
в ev_hldm не лезь это уже отрисовка самого выстрела, нужно срезать условиями до отправки эвента клиентам.
Отправлено Danger 26-10-2011 в 17:50:
Цитата:
marikcool писал:
// пустая обойма
if (m_iClip <= 0)
{
PlayEmptySound();
m_flNextPrimaryAttack = 0.2;
return;
}
Та причем тут ето, яж говарю что в коде нечего не удалял, и не изменял
просто в стандартный код глока хл1: hl_wpn_glock.cpp добавил ето
if(! ( m_pPlayer->m_afButtonPressed & IN_ATTACK ))
return;
когда зажымаеш клавишу на сервери происходит 1 вистрел как и надо, а на клиенте просто бесконечно и без задержек сыпятся гильзы и декали на стенах. тоисть визульно не так как на самом деле. Перекомпилил и сервер и клиент.
можешь сам попробовать.
[i]Добавлено 26-10-2011 в 21:50:
Цитата:
marikcool писал:
....
и client.dll каждый раз пересобирай
в ev_hldm не лезь это уже отрисовка самого выстрела, нужно срезать условиями до отправки эвента клиентам. [/B]
так вот имено нужно 1 вистрел отресовать он бесконечно отресовует.
Отправлено marikcool 26-10-2011 в 17:58:
у меня все пистолеты в моде не автоматические, таких глюков нет.
Отправлено Danger 26-10-2011 в 18:15:
Я нашел в чом проблема, ето проблем в Xashe всетаки, а не вмоде.
А на халве работает, такого глюка нету.
Отправлено marikcool 26-10-2011 в 18:19:
Цитата:
Danger писал:
на ксаше с cl_lw 0 проверял?
Отправлено Danger 26-10-2011 в 18:22:
marikcool
Спс помогло