HLFX.Ru Forum
Показать все 26 сообщений этой темы на одной странице

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:

Half-Life 2 Неавтоматический огонь.

У меня вопрос, как сделать для оружия в ХЛ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 )
2
{
3
  if(! ( m_pPlayer->m_afButtonPressed & IN_ATTACK ))
4
    return;
5
 
6
  GlockFire( 0.01, 0.3, TRUE );
7
 
8
}


я так понял нужно на клиенте в 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:
1
// пустая обойма
2
if (m_iClip <= 0)
3
{
4
  PlayEmptySound();
5
  m_flNextPrimaryAttack = 0.2;
6
  return;
7
}


и 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:

Talking

marikcool
Спс помогло


Временная зона GMT. Текущее время 07:38.
Показать все 26 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024