AddToFullPack на сервере проверь, возможно, там vuser4 не копируется.
HUD_ProcessPlayerState нужен, если юзать IEngineStudio.GetPlayerState, а он юзает обычный curstate.
Добавлено 28-05-2014 в 03:26:
Второй вариант - покрутить UpdateClientData на сервере и HUD_TxferLocalOverrides на клиенте.
~ X ~, недостоин я. Всего лишь полукровка-скриптер...
Спасибо вам за советы.
Но, к сожалению, ничего не выходит! Главное пишышь, пишышь инновации, которых девственный ХЛ никогда не касался, а тут вот такая глупая фигня, которая по сравнению с этими инновациями ничто.
Мб я делаю что-то не так?
Мне надо, чтобы у не локальных игроков, двигались ноги. Свои ноги от третьего лица работают, не зависимо от того что было заюзано. В обычном ХЛ всё норм же, а вот в Xash'e они не двигаются!!1!1!! Почему ?!
Чтобы проверять дополнительного игрока, запускаю 2 клиента: один просто хостует, а другой через SandBox. Один из них бегает, другой смотрит. В этом ничего подозрительного нету, потому-что это имитация игры по ланке.
Как говорилось, у локального игрока скорость принимается, а у других - нет!!
Пробовал вот так vecPlVel = m_pCurrentEntity->curstate.velocity;, вот так
C++ Source Code:
player = *(IEngineStudio.GetPlayerState( m_nPlayerIndex ))
vecPlVel = player.velocity;
И просто через entity_state_t *pplayer, которую принимает ф-я vecPlVel = player->velocity;
Сравнил с обычным ХЛ. Там есть одно лишь различие в HUD_TxferLocalOverrides в том, что нету state->velocity = client->velocity;, а в XashXT есть. Ну я и закомментил. И в результате даже у локального игрока скорость не принимается! delta.lst вроде бы идентичный.
Пожалуйста, покажите полностью что нужно делать, а то нуб по-ходу.
Конечно, это понятно. Одно отправляет, другое принимает. Но зачем эти расширения в delta.lst, которые повторяются? Ведь это значит, что одна и та же инфа отправляется. Не так ли?
ILZM писал: Но зачем эти расширения в delta.lst, которые повторяются? Ведь это значит, что одна и та же инфа отправляется. Не так ли?
Дык тут же отдельно для обычных энтить, для игрока и для клиентдаты (правда, я не совсем понимаю, что это такое, клиентдата, потому что сетью толком не занимался и в инете не шарил). Каждое для своих задач сделано. То есть, мы можем не передавать какие-то энтварсы игрока на клиент, если в этом нет нужды, экономить сетевой траффик в мультиплеере. ILZM я не могу понять, как у тебя может не передаваться велосити с сервера на клиент... Ты её пытаешься передать через vuser? Попробуй каждый из трёх компонентов вектора передать через fuser, может быть решит проблему.
И ещё. На сервере-то проверял? Может быть ты vuser4 приравниваешь к какому-то фуфлу, типа null.
ILZM писал: В обычном ХЛ всё норм же, а вот в Xash'e они не двигаются!!1!1!! Почему ?!
Ахем. Клиентдата более точная, часто передаваемая и предиктабельная. Короче, она нужна. Вопрос у меня в другом - КАК игроки двигаются, если у них нет велосити?! Ну ведь наверняка она есть, хоть в пм_шаред на клиенте. Хотя, мб я чего-то не понял. Задачу, например.
На самом деле она не нужна, но в халфе есть - и с этим приходится мириться.
В халфовском сетевом коде на самом деле много чудачеств. Видимо, его много лет писали, отлаживали, тестировали разные идеи и т.д. Вот и получили мы всякие клиент-даты в результате, дублирующие энтити-стейт.
Цитата:
~ X ~ писал: Ну ведь наверняка она есть, хоть в пм_шаред на клиенте.