HLFX.Ru Forum Страницы (56): « Первая ... « 38 39 40 41 [42] 43 44 45 46 » ... Последняя »
Показать все 832 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- XashXT/3D [Вопросы и ответы] (https://hlfx.ru/forum/showthread.php?threadid=3689)


Отправлено Aynekko 06-08-2021 в 16:07:

Цитата:
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 игрока. Какой-то движ у меня уже был насчет этого, видимо. Сейчас значение меняется.
Внешне вроде все хорошо, только в мультиплеере нет. Клиент начинает тоже ногами двигать, когда сервер ходит. В общем, то же самое что и на видео у товарища.

__________________
Мой мод на Xash


Отправлено Ku2zoff 06-08-2021 в 16:24:

Aynekko смотри индекс m_pCurrentEntity. Наверное, клиенту почему-то прилетает индекс игрока-сервера.


Отправлено Дядя Миша 06-08-2021 в 17:32:

Ну хорошо, что вы и без меня уже потихоньку во всём разбираетесь.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Aynekko 06-08-2021 в 18:13:

В общем вот такой спам в консоль. Выставил в StudioEstimateGaitFrame

C++ Source Code:
gEngfuncs.Con_Printf("number %i, fuser1 %f\n", m_pCurrentEntity->curstate.number, m_pCurrentEntity->curstate.fuser1);

Когда один игрок не видит другого в кадре, я вижу свой номер. Сервер 1, клиент 2. Когда второй игрок в кадре - тут как на скриншоте: пишутся оба.
А еще, когда клиент прыгает, fuser1 обнуляется, а у сервера нет.
Ну и еще баг. Когда идешь боком и стреляешь, игрока дергает в ту сторону, в которую идешь. Может особенность thirdperson.

__________________
Мой мод на Xash


Отправлено Ku2zoff 07-08-2021 в 05:18:

Цитата:
Aynekko писал:
пишутся оба

Так и должно быть. Индексы приходят верные. Надо смотреть студиомоделрендерер, отличия кода расширенного рендерера и обычного. Я бы закомментил и поотключал все расширения, и включал обратно по одному, т.к. не имею понятия, где искать причину проблемы. Сорцы ксашмода (клиентской части) я почти не смотрел, поэтому ничего подсказать больше не могу.


Отправлено Aynekko 07-08-2021 в 10:49:

Я сравнивал старый ксашмод с новым, в старом по большей части все как в хлсдк и там нормально работает (правда мультиплеер не смотрел). В новом там старый код перемешался с новым, что-то там про развесовку и прочее. Я в этом совсем ничего не смыслю, ну буду методом тыка разбираться, впрочем как и всегда

Добавлено 07-08-2021 в 12:23:

Закомментирование этого кода в StudioSetUpTransform действительно привело к тому, что теперь никто не двигает ногами, но и друг на друга клиент-сервер больше не влияют. Значит действительно надо на сервер переносить. Вопрос как?

C++ Source Code:
1
// calc blend (FXIME: move to the server)
2
//			StudioPlayerBlend( pseqdesc, iBlend, angles[PITCH] );
3
//			m_pCurrentEntity->curstate.blending[0] = iBlend;
4
//			m_pCurrentEntity->latched.prevblending[0] = iBlend;
5
//			m_pPlayerInfo->gaitsequence = m_iGaitSequence;


Добавлено 07-08-2021 в 13:49:

Вроде все починилось, лол. Правда все равно игрока чуть дергает при поворотах. Поменял одну строчку всего лишь.
C++ Source Code:
m_pPlayerInfo->gaitsequence = m_pCurrentEntity->curstate.gaitsequence;// m_iGaitSequence;

__________________
Мой мод на Xash


Отправлено Дядя Миша 07-08-2021 в 10:56:

Сравнивайте с параноей в спорных моментах.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Aynekko 07-08-2021 в 12:29:

C++ Source Code:
if( m_pCurrentEntity->curstate.renderfx != kRenderFxDeadPlayer )
  m_iGaitSequence = IEngineStudio.GetPlayerState(m_nPlayerIndex)->gaitsequence;

m_nPlayerIndex всегда равен нулю для обоих игроков, почему-то. Не могу понять, откуда он вообще берется.

Добавлено 07-08-2021 в 15:29:

m_pPlayerInfo->userid тоже 0 для обоих игроков

__________________
Мой мод на Xash


Отправлено Aynekko 07-08-2021 в 17:33:

Цитата:
Aynekko писал:
m_nPlayerIndex всегда равен нулю для обоих игроков

В общем задал вот так, тестил клиент и сервер, более менее все окей. Но не понимаю, почему же m_nPlayerIndex не достается.
Добавил тут первую строчку:
C++ Source Code:
m_nPlayerIndex = m_pCurrentEntity->curstate.number - 1;
m_pPlayerInfo = IEngineStudio.PlayerInfo(m_nPlayerIndex);

__________________
Мой мод на Xash


Отправлено Aynekko 08-08-2021 в 11:19:

Цитата:
Ku2zoff писал:
Next Day емнип, то в ксашмоде гейтфрейм считается на сервере, а после шлётся на клиент. Вот где-то уже на клиенте гейтфрейм и гейтсеквенция берутся из клиентдаты, а не из плейерстейта. Я бы попробовал отрезать новый механизм, и считать гейт по-старинке, лишь на клиенте.

Вот кстати да, я копался-копался и действительно, если отключить гейт на сервере, то renderer 0 работает без багов. Зачем его вообще на сервер перенесли?

__________________
Мой мод на Xash


Отправлено Дядя Миша 08-08-2021 в 11:56:

Цитата:
Aynekko писал:
Зачем его вообще на сервер перенесли?

Чтобы игрок, стоя на поворотной платформе не взбрыкивал ногами, когда она делает повороты, ну и не только для этого.

На клиенте он был по единственной причине - экономия траффика.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Aynekko 08-08-2021 в 14:51:

Почему такое происходит? Я только примерно понял где копать. Дальше не пойму. Тут сначала рендерер 1, потом 0.
https://www.youtube.com/watch?v=XDULytVRbY8

__________________
Мой мод на Xash


Отправлено Дядя Миша 08-08-2021 в 15:19:

Серверный гейт и так был недоделан, а вы его теперь окончательно доломали.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 08-08-2021 в 15:32:

Цитата:
Дядя Миша писал:
Серверный гейт и так был недоделан, а вы его теперь окончательно доломали.

Потому что по-хорошему, его надо делать сначала для монстров, а потом, как побочку, для игроков. Для последних это не критично. Норот почти 23 года играет в мультиплеер халфы, и до сих пор не в курсе, что никакого серверного гейта нет, и серверные хитбоксы ног не двигаются дальше нулевого кадра. Разве что в каэсочке, но это совсем другая история. И там нет синхронизации, насколько я могу судить по сорцам ReGameDLL.


Отправлено Aynekko 08-08-2021 в 17:48:

Цитата:
Дядя Миша писал:
Серверный гейт и так был недоделан, а вы его теперь окончательно доломали.

Ну вообще-то я не ломал ничего, все так и было. Точнее было еще хуже. А после того, как я добавил индекс игрока, сервер и клиент больше друг на друга не влияют. То, что на видео так и было до этого. Я понятия не имею как это фиксить. Вернуть клиентское не вариант, там вообще все переделано настолько, что проще доделать сервер видимо. Проще кому - другой вопрос. Я, увы, не смог разобраться.

__________________
Мой мод на Xash


Временная зона GMT. Текущее время 00:35. Страницы (56): « Первая ... « 38 39 40 41 [42] 43 44 45 46 » ... Последняя »
Показать все 832 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024