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)
Отправлено 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
Спс помогло