Тогда уж давайте глобально - придумаем протокол синхронизации инвентаря и протокол согласования клиентских пушек. Вернее, первое реально, а второе в халве без веапондаты невозможно... так что, кажись, всё пропало...
mittorn в быдлоконтрЕ сделано так как у меня было раньше - CHudAmmo::Think()
{
if (!(oldweaponbits & weapon) && (newbits & weapon))
Pickup(weapon);
...
}
Аналогично и Remove. Только я хотел отказаться от этих сраных битов. Кстати, а как же тогда товарищи школохакеры добавляют оружия? Тут же явно 32 бита максимум!
Перекинул получение инвентаря в ф-ю TxferPredictionData() - UpdateLocalInventory(pwd); - теперь веапон_кровбар добавляется и удаляется из инаентаря каждые полсекунды. ВОТ ЗЕ ФАК?!?! Я еще давно как-то замечал, что данные приходят в каком-то страшном интерливе. mittorn, погляди мои каменты посреди фкнуции HUD_ProcessPlayerState().
Добавлено 03-11-2016 в 19:59:
Разкомментил копирование структур - всё стало по-старому: при коннекте оружие "подбирается" (т.е. структуры заполнены) один раз, а в следующие разы всё по нулям (и клиентский ХУД, есснно, думает, что пушки выкинули).
~ X ~ писал: Только я хотел отказаться от этих сраных битов. Кстати, а как же тогда товарищи школохакеры добавляют оружия? Тут же явно 32 бита максимум!
Ну и пусть будет 32 оружия. Вон, в кс их, ЕМНИП, целых 29. Сколько реально используются про- и нормальными игроками? Ну половина, не больше. Можно ведь ещё хитрить, и через какой-нибудь энтварс самого оружия менять его скорострельность, внешний вид и проч. Только на боеприпасы и то, что прописано в ItemInfo это не повлияет. Ну и пофиг. Зато можно на базе одной пушки создавать однотипные. Прям как в Xash Weapon System. Я хотел попробовать сделать так с СМГ-шками у себя в моде, но потом пришлось отказаться, т.к. размер магазина разный. Но, думаю, какая разница, пусть будет одинаковый.
Дядя Миша а зачем предиктинг 32 пушек? Предиктинг нужен для того оружия, что находится в руках (ну это все знают).
Ku2zoff возвращаюсь на сраные биты, которые Гхоуль так ненавидит. Благо в XDM достаточно включить USE_WEAPONBITS...
Хотелось сладкой жизни нахаляву, а получили ушат просроченной халвы.
Костыли, такие костыли. Больше 32 как бы изначально не заложено ни в дллках, ни в движке, т.к. всё упирается в биты, что передаются в pev->weapons. Можно конечно обвешать всё это дело мессагами и лишними проверками со всех сторон, но игра не стоит свеч. Как я писал выше, можно посредством других костылей (не затрагивая глобальную систему пушек и предиктинг) делать разные вариации одного и того же ствола, если очень надо.
Добавлено 04-11-2016 в 13:39:
Вы только представьте: 32 уникальных оружия + часть из них имеют клоны с небольшими изменениями. Это ж столько моделей надо ещё найти. Я кстати, когда экспериментировал с разделением одного класса на два оружия столкнулся лишь с одной трудностью - загрузкой спрайтов из weapon_оружие.txt - оно же происходит один раз при инициализации худа, и на ходу спрайтовые иконки заменить невозможно. В перспективе планирую отказаться от спрайтов вообще, и рисовать иконки для худа моделями. Наверное, возможно будет менять ItemInfo на лету, я просто не пробовал. Не факт, что будет работать правильно, но попробовать стоит. Будет время - попытаюсь.
А, вру. Ещё одна трудность была. Номер слота остаётся один и тот же. То есть не получится одновременно таскать при себе и оригинал и клон.
понятно. Вообще можно запилить свои спрайты с анимациями и куртизанками вместо халфовых и свой счётчик патронов. А таскать как бы одну оружку (с точки зрения протокола)
mittorn идея интересная. Можно даже использовать одну общую модель рук, а модели пушек аттачить к ней. Но это уже изврат какой-то. Хотя, если найдётся моделлер, который всё заанимирует, почему бы и нет?