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=3457)
Отправлено Lev 08-08-2012 в 08:03:
Такой вопрос - как можно сделать, чтоб во время перезарядки любого оружия, нельзя было переключиться на другое, до тех пор, пока перезарядка не завершится - то есть ни через меню оружия, ни через кнопку Q?
Отправлено HAWK0044 08-08-2012 в 08:11:
Lev
Идёшь в player.cpp находишь там
C++ Source Code:
void CBasePlayer::SelectItem(const char *pstr) |
и в самом начале после
C++ Source Code:
вставляешь это
C++ Source Code:
3 | CBasePlayerWeapon *wpn = (CBasePlayerWeapon*)m_pActiveItem; |
5 | if(wpn && wpn->m_fInReload) |
потом ищешь
C++ Source Code:
void CBasePlayer::SelectLastItem(void) |
там после
C++ Source Code:
6 | if ( m_pActiveItem && !m_pActiveItem->CanHolster() ) |
вставляешь
C++ Source Code:
3 | CBasePlayerWeapon *wpn = (CBasePlayerWeapon*)m_pActiveItem; |
5 | if(wpn && wpn->m_fInReload) |
Отправлено Lev 08-08-2012 в 08:48:
Спасибо
Отправлено Lev 23-08-2012 в 08:10:
В атаке у любого ствола есть параметр отвечающий за частоту вызова этой функции - например
C++ Source Code:
m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1; |
Как сделать, чтобы при одном нажатии на мышь производился один выстрел - и новый можно было сделать только при повторном нажатии?
Отправлено PLut 23-08-2012 в 08:32:
Lev По форуму бы поискал...
В начало функции стрельбы.
C++ Source Code:
if(!(m_pPlayer->m_afButtonPressed & IN_ATTACK)) |
А промежуток между выстрелами сделай меньше, например было 0.1, сделай 0.01.__________________
Base Defense on Steam, ModDB
Отправлено Lev 23-08-2012 в 08:36:
Если 0.01 - то можно как из автомата стрелять)
Отправлено qpAHToMAS 23-08-2012 в 08:40:
Он хочет пистолет как в CS, а не как Glock в HL, который при +attack стреляет пока не кончатся патроны (а в CS будет лишь 1 выстрел).
Отправлено Lev 23-08-2012 в 08:45:
Да не только - мне ещё нужно третью атаку сделать (в Параное уже две есть) - хочу переключать режим стрельбы. Кстати - где кнопку можно забиндить для этого?
Отправлено qpAHToMAS 23-08-2012 в 08:49:
Цитата:
Lev писал:
где кнопку можно забиндить для этого?
code:
bind "mouse3" "+attack3"
Иначе говоря, нажатие на колесико мыши.
Отправлено Lev 23-08-2012 в 09:13:
Да я проще хотел сделать - чтобы не писать полноценную третью атаку - создать переменную, забиндить на неё кнопку - если нажатать один раз то один режим огня, если ещё раз - то следующий
Отправлено KiQ 23-08-2012 в 09:30:
Lev на импульс сделай
__________________
-Brain is dead-
Отправлено Lev 23-08-2012 в 09:39:
Это как?
Добавлено 23-08-2012 в 15:39:
Вот к примеру переменная
int firemode
Отправлено KiQ 23-08-2012 в 09:47:
емнип, в player.cpp в свитче импульсных команд ставишь свое число (например, 555) и пишешь, допустим:
C++ Source Code:
firemode = (firemode == 0) ? 1 : 0; |
потом биндишь на любую клавишу impulse 555
Добавлено 23-08-2012 в 13:47:
P.S. только не в Cheat Commands, иначе будет работать только с sv_cheats 1__________________
-Brain is dead-
Отправлено Lev 23-08-2012 в 10:55:
Фигня какая-то - всё сделал, но клавиша не работает. Написал в конвиге
bind "b" "impulse 45" - бестолку, хотя если через консоль - то всё работает(sv_cheats 1 не ввожу - просто impulse 45)
Добавлено 23-08-2012 в 16:55:
Да - ещё одно - это значение будет меняться глобально - то есть для всего оружия сразу - можно как-нибудь сохранять это значение для каждой пушки отдельно? Там, завести новую переменную, или ещё как
Отправлено Lev 23-08-2012 в 15:04:
Так - с клавишей разобрался. Теперь хочу вывести сообщение на экран - из CBasePlayer::ImpulseCommands всё выводится нормально
C++ Source Code:
5 | UTIL_ShowMessage("#FIRE_MODE_SINGLE", this ); |
10 | UTIL_ShowMessage("#FIRE_MODE_AUTO", this ); |
- но мне нужно делать это из каждого ствола отдельно. Написал функцию - но не работает
C++ Source Code:
6 | UTIL_ShowMessage("#FIRE_MODE_SINGLE", m_pPlayer ); |
9 | UTIL_ShowMessage("#FIRE_MODE_AUTO", m_pPlayer ); |
- хотя если вызвать UTIL_ShowMessage из любой другой функции в классе оружия - то всё работает
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024