Поэкспериментировал тут в pm_shared.c. Нагородить такой огород могли только Valve. Копипастил PM_Duck и PM_UnDuck, менял условия на свои, научил игрока падать и ползать. Напоролся на кучу проблем. Если не трогать переменную pmove->bInDuck, то не меняется view_ofs игрока. Почему, ХЗ. Если пользоваться чем-то своим, а не флагом FL_DUCKING, то хулл игрока уменьшается до нужного, но ориджин не опускается к земле. Тоже ХЗ почему. Может я что-то не дописал в коде. В целом, получается вполне неплохо, хулл лежачего игрока всё равно не сменишь как надо, т.к. коллижн бокс всегда повёрнут в одном направлении. Есдинственное, что можно было бы сделать, это уменьшить высоту, чтобы игрок пролезал в низкие щели. Буду копать дальше. В конце концов, в Day of Defeat размер лежачего игрока такой же, как и сидячего, и ведь играется номально у же вон сколько лет. Хотя я подумываю пересесть на Ксаш и завести дополнительный хулл, чтобы не изломать работу монстров и прочих энтить, и при этом сделать возможным ползание в низких вентиляциях, под машинами и проч.
Ku2zoff писал: Хотя я подумываю пересесть на Ксаш и завести дополнительный хулл
Вот, заодно и предиктинг там починишь.
Добавлено 26-04-2015 в 00:44:
Цитата:
Ku2zoff писал: Наверное да, потому что в сорсе тоже используются хуллы, судя по этим статьям:
Ну в волатиле тоже есть дефайны для разных хуллов. Однако они могут меняться налиту и не требуют перекомпиляции карты. То есть это просто константы для удобства. Может, и в сорсе так же?
А может все же останешься в рамках хл? Там не только предиктинг надо пилить но ещё и: менеджер загрузки ресурсов, мастер-сервер и не забывайте про VGUI
Cybermax vgui уже вроде кто-то пилит даже под прыщеглазикс, мастер-сервер уже не обязательно делать хл-совмеСТИМым. А что такое "менеджер загрузки ресурсов"?
Это система, позволяющая грузить в память на лету ресурсы конкретно для данной ситуации и выкидывать из памяти ненужные. Так где-то ДМ писал.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Cybermax писал: А может все же останешься в рамках хл?
Очень уж охота иметь безглючный мовевитч для создания брашевых конструкций. А так бы оно конечно да. В любом случае, буду на голдсорсе, пока не закончу геймплей, оружия и пару собственных карт. Потому что:
Цитата:
Cybermax писал: не только предиктинг ... менеджер загрузки ресурсов ... VGUI
Кстати, ДМ нас обнадёжил и пообещал, если обстоятельства сложатся подходящим образом, он будет работать в этом направлении.
Добавлено 26-04-2015 в 13:47:
И ещё одно обстоятельство, почему охота перейти на ксаш: большой размер карт и 3д скайбоксы.
Ku2zoff писал: Кстати, ДМ нас обнадёжил и пообещал, если обстоятельства сложатся подходящим образом, он будет работать в этом направлении.
Если обстоятельства сложатся подходящим образом, вы все скоро перейдёте на волатилу. Но... ох уж эти обстоятельства, сегодня такие, завтра эдакие.
Цитата:
Ghoul [BB] писал: Это система, позволяющая грузить в память на лету ресурсы конкретно для данной ситуации и выкидывать из памяти ненужные. Так где-то ДМ писал.
Я думаю, всё же имелась в виду система кастомизации и клиентского аплоада.
В ходе экспериментов с приседанием и попыток написать ползание, обнаружил, что pmove->usehull захардкодено в движке на флаг FL_DUCKING. По-другому просто не объяснить то, что игрок застревает полу, если не выставлять этот флаг, а только указывать pmove->usehull = 1. Ненавижу Valve.
Добавлено 27-04-2015 в 18:28:
Догадка подтвердилась. Достаточно поставить флаг FL_DUCKING и хулл нормально уменьшается. Чтож, это облегчает задачу. Теперь надо отделить специфические условия приседания от этого флага, и использовать его в только качестве указателя на маленький хулл. А уж присевший игрок или лежачий определять другим способом.
Тебя ввело в заблуждение название переменной usehull.
Разумеется, это чисто флаг ducking. Посмотри комментарий в entity_state.h, строка 91.
Возможно, когда-то планировались и другие хуллы, например, чтобы Фримон мог ползать на животе, но в итоге остались только приседания.
Добавлено 27-04-2015 в 18:47:
Прежде чем ненавидеть Valve, нужно как следует изучить SDK.