SNMetamorph писал: в дельте для aiment не хватало битов
Ага. А я искал…
C++ Source Code:
DEFINE_DELTA( aiment, DT_INTEGER, 11, 1.0 ),
Теперь хочу разобраться с этим. Тут человек спрашивал, но т.к. мне тоже нужно, я тоже занялся.
Цитата:
Next Day писал: Всем привет делая свой мод /игру на Xash xt 0.8 я заметил что в мультиплеере есть глюк гейт секвенций при параметре gl_render 1, в версиях Xash xt 0.6 такова нет там все в порядке
Вот видео пример сервер https://youtu.be/OM6dJF07Qfk
А вот клиент https://youtu.be/jGzBBH2Wzvk
Цитата:
Дядя Миша писал: в EstimateGaitFrame надо смотреть чему равен m_pCurrentEntity->curstate.fuser1;
он должен меняться, когда игрок бегает. И в сингле и в мульте.
Вот для начала проверь это.
Проверил. Он всегда 0.
Добавлено 06-08-2021 в 19:07:
Так. У меня был закомментирован StudioGaitFrameAdvance в PostThink игрока. Какой-то движ у меня уже был насчет этого, видимо. Сейчас значение меняется.
Внешне вроде все хорошо, только в мультиплеере нет. Клиент начинает тоже ногами двигать, когда сервер ходит. В общем, то же самое что и на видео у товарища.
Когда один игрок не видит другого в кадре, я вижу свой номер. Сервер 1, клиент 2. Когда второй игрок в кадре - тут как на скриншоте: пишутся оба.
А еще, когда клиент прыгает, fuser1 обнуляется, а у сервера нет.
Ну и еще баг. Когда идешь боком и стреляешь, игрока дергает в ту сторону, в которую идешь. Может особенность thirdperson.
Так и должно быть. Индексы приходят верные. Надо смотреть студиомоделрендерер, отличия кода расширенного рендерера и обычного. Я бы закомментил и поотключал все расширения, и включал обратно по одному, т.к. не имею понятия, где искать причину проблемы. Сорцы ксашмода (клиентской части) я почти не смотрел, поэтому ничего подсказать больше не могу.
Я сравнивал старый ксашмод с новым, в старом по большей части все как в хлсдк и там нормально работает (правда мультиплеер не смотрел). В новом там старый код перемешался с новым, что-то там про развесовку и прочее. Я в этом совсем ничего не смыслю, ну буду методом тыка разбираться, впрочем как и всегда
Добавлено 07-08-2021 в 12:23:
Закомментирование этого кода в StudioSetUpTransform действительно привело к тому, что теперь никто не двигает ногами, но и друг на друга клиент-сервер больше не влияют. Значит действительно надо на сервер переносить. Вопрос как?
Ku2zoff писал: Next Day емнип, то в ксашмоде гейтфрейм считается на сервере, а после шлётся на клиент. Вот где-то уже на клиенте гейтфрейм и гейтсеквенция берутся из клиентдаты, а не из плейерстейта. Я бы попробовал отрезать новый механизм, и считать гейт по-старинке, лишь на клиенте.
Вот кстати да, я копался-копался и действительно, если отключить гейт на сервере, то renderer 0 работает без багов. Зачем его вообще на сервер перенесли?
Дядя Миша писал: Серверный гейт и так был недоделан, а вы его теперь окончательно доломали.
Потому что по-хорошему, его надо делать сначала для монстров, а потом, как побочку, для игроков. Для последних это не критично. Норот почти 23 года играет в мультиплеер халфы, и до сих пор не в курсе, что никакого серверного гейта нет, и серверные хитбоксы ног не двигаются дальше нулевого кадра. Разве что в каэсочке, но это совсем другая история. И там нет синхронизации, насколько я могу судить по сорцам ReGameDLL.
Дядя Миша писал: Серверный гейт и так был недоделан, а вы его теперь окончательно доломали.
Ну вообще-то я не ломал ничего, все так и было. Точнее было еще хуже. А после того, как я добавил индекс игрока, сервер и клиент больше друг на друга не влияют. То, что на видео так и было до этого. Я понятия не имею как это фиксить. Вернуть клиентское не вариант, там вообще все переделано настолько, что проще доделать сервер видимо. Проще кому - другой вопрос. Я, увы, не смог разобраться.