Тут стоило бы использовать m_flNextTertiaryAttack.
Для чего вообще нужна третичная атака? В халфе не у каждого оружия есть даже вторичная. Хотя, на неё можно поставить вкл/выкл лазер, айронсайт, удар прикладом, наконец.
Добавлено 28-02-2021 в 12:08:
Сейчас попробовал - больше 16 кнопок не добавить. Всё, что выше (1 << 15) игнорится. То есть, у илья2 скореборд в мультиплеере показывается только лишь потому, что из функций IN_ScoreDown и IN_ScoreUp в input.cpp вызываются функции вгуи_вьпорта. Байт IN_SCORE для кнопок не назначается. Ну это я ещё delta.lst не трогал, мб. там надо увеличить число.
Ku2zoff писал:
Сейчас попробовал - больше 16 кнопок не добавить
Как-то это можно обойти на ксаше? У меня уже добавлен бег (тебе спасибо), потом я еще добавил дэш - но, так как по кнопкам лимит, мне пришлось заюзать turnleft (все равно он никому не нужен). Еще turnright остался, для чего-нибудь. Но, на этом все.
Не знаю. Надо спросить Дядю Мишу про это ограничение.
Цитата:
Aynekko писал: потом я еще добавил дэш - но, так как по кнопкам лимит, мне пришлось заюзать turnleft
А как же IN_ALT1? Вроде бы нигде не юзается. Ещё есть IN_CANCEL. Думаю, оба байта свободны. Ну это надо сорцы ксашдвижка глядеть, чтобы точно убедиться.
IN_LEFT, кстати, используется внутри движка, по крайней мере в ксаше, для режима создания overview.
Добавлено 28-02-2021 в 12:48:
Байты кнопок нужны для тех команд, которые нужно шарить между клиентом и сервером, а ещё быстро передавать по сети. Во всех остальных случаях можно обойтись ClientCommand на сервере. Собсно, я поэтому и не стал морочиться с этим в туторе по ползанию.
илья2 не оно. Посмотри структуру usercmd_s. Дядя Миша подписал, что в unsigned short buttons больше 16 бит не влезает. И никак ты это не изменишь без перекомпиляции движка (Импотенциально ещё и сетевой код нужно будет править, т.к. размер структуры вырастет). Так что, свободных бита три: IN_RUN, IN_ALT1, IN_CANCEL. Ровно на три команды. Ну ещё можно IN_SCORE четвёртым взять, он по сути не нужен нигде, кроме как в PlayerDeathThink. И то, только для того, чтобы дохлый игрок не респавнился, когда открывает скоребоард. Остальное либо через ClientCommand, либо командами с клиента (cl_movespeedkey и +speed как пример), там есть доступ к инпуту.