HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Скорость всех игроков в CStudioModelRender.
XashXT
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
ILZM
LAW

Дата регистрации: Oct 2011
Проживает: Mega City One
Сообщений: 301

Рейтинг



Скорость всех игроков в CStudioModelRender.

Сам топик отсюда http://cs-mapping.com.ua/forum/show...406#post860406.
Вот передаётся скорость через vuser4. Но на клиенте не понятно у какой энтити она изменяется.
На сервере:

C++ Source Code:
1
void CBasePlayer::PostThink()
2
{
3
  ...
4
 
5
  pev->vuser4 = GetAbsVelocity ( );
6
  ...
7
}


На клиенте:
C++ Source Code:
1
void CStudioModelRenderer :: StudioProcessGait ( entity_state_t *pplayer )
2
{
3
  ...
4
 
5
  Vector				vecPlVel;
6
 
7
  //cl_entity_t *player;
8
  // get copy of player
9
  //player = GET_LOCAL_PLAYER();
10
 
11
  //entity_state_t player;
12
  //player = *(IEngineStudio.GetPlayerState( m_nPlayerIndex ))
13
  //vecPlVel = player->curstate.vuser4;
14
 
15
  vecPlVel = m_pCurrentEntity->curstate.vuser4;
16
  ...
17
}

И ни в одном из этих vuser4 нет этих значений с сервера, даже если GET_LOCAL_PLAYER(). В HL норм же идёт, а тут что не так?

Сообщить модератору | IP: Записан
Сообщение: 138202

Старое сообщение 27-05-2014 18:11
- За что?
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


ILZM delta.lst, HUD_ProcessPlayerState, HUD_TxferLocalOverrides.
Если не понятно, то ты не достоин быть моддером сакрального Г-сорца (шутка, типа).

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | IP: Записан
Сообщение: 138206

Старое сообщение 27-05-2014 18:42
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


AddToFullPack на сервере проверь, возможно, там vuser4 не копируется.
HUD_ProcessPlayerState нужен, если юзать IEngineStudio.GetPlayerState, а он юзает обычный curstate.

Добавлено 28-05-2014 в 03:26:

Второй вариант - покрутить UpdateClientData на сервере и HUD_TxferLocalOverrides на клиенте.

Добавлено 28-05-2014 в 03:27:

А хотя нет, vuser4 у клиентдаты уже заюзан.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138209

Старое сообщение 27-05-2014 20:27
-
ILZM
LAW

Дата регистрации: Oct 2011
Проживает: Mega City One
Сообщений: 301

Рейтинг



~ 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 вроде бы идентичный.

Пожалуйста, покажите полностью что нужно делать, а то нуб по-ходу.

Сообщить модератору | IP: Записан
Сообщение: 138215

Старое сообщение 28-05-2014 06:29
- За что?
ILZM
LAW

Дата регистрации: Oct 2011
Проживает: Mega City One
Сообщений: 301

Рейтинг



Как говорят, поспешишь - людей насмешишь . Но загадка со с полем velocity всё равно остаётся...

Зачем все эти clientdata, HUD_ProcessPlayerState, HUD_TxferLocalOverrides, если уже есть addtofullpack? Передаётся ли инфа дважды?

Сообщить модератору | IP: Записан
Сообщение: 138217

Старое сообщение 28-05-2014 12:56
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
ILZM писал:
Зачем все эти clientdata, HUD_ProcessPlayerState, HUD_TxferLocalOverrides, если уже есть addtofullpack? Передаётся ли инфа дважды?

Зачем клиентские функции, если есть серверные? Ну, подумай.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138218

Старое сообщение 28-05-2014 13:06
-
ILZM
LAW

Дата регистрации: Oct 2011
Проживает: Mega City One
Сообщений: 301

Рейтинг



Конечно, это понятно. Одно отправляет, другое принимает. Но зачем эти расширения в delta.lst, которые повторяются? Ведь это значит, что одна и та же инфа отправляется. Не так ли?

C++ Source Code:
1
clientdata_t none
2
{
3
  DEFINE_DELTA( flTimeStepSound, DT_INTEGER, 10, 1.0 ),
4
  DEFINE_DELTA( origin[0], DT_SIGNED | DT_FLOAT, 24, 128.0 ),
5
  DEFINE_DELTA( origin[1], DT_SIGNED | DT_FLOAT, 24, 128.0 ),
6
  DEFINE_DELTA( velocity[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
7
  DEFINE_DELTA( velocity[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
8
 
9
  ...
10
}

C++ Source Code:
1
entity_state_t gamedll Entity_Encode
2
{
3
  DEFINE_DELTA( animtime, DT_TIMEWINDOW_8, 8, 1.0 ),
4
  DEFINE_DELTA( frame, DT_FLOAT, 10, 4.0 ),
5
  DEFINE_DELTA( origin[0], DT_SIGNED | DT_FLOAT, 24, 128.0 ),
6
  DEFINE_DELTA( angles[0], DT_ANGLE, 16, 1.0 ),
7
  DEFINE_DELTA( angles[1], DT_ANGLE, 16, 1.0 ),
8
  DEFINE_DELTA( origin[1], DT_SIGNED | DT_FLOAT, 24, 128.0 ),
9
  DEFINE_DELTA( origin[2], DT_SIGNED | DT_FLOAT, 24, 128.0 ),
10
  ...
11
}

C++ Source Code:
1
entity_state_player_t gamedll Player_Encode
2
{
3
  DEFINE_DELTA( animtime, DT_TIMEWINDOW_8, 8, 1.0 ),
4
  DEFINE_DELTA( frame, DT_FLOAT, 8, 1.0 ),
5
  DEFINE_DELTA( origin[0], DT_SIGNED | DT_FLOAT, 24, 128.0 ),
6
  DEFINE_DELTA( angles[0], DT_ANGLE, 16, 1.0 ),
7
  DEFINE_DELTA( angles[1], DT_ANGLE, 16, 1.0 ),
8
  DEFINE_DELTA( origin[1], DT_SIGNED | DT_FLOAT, 24, 128.0 ),
9
  DEFINE_DELTA( origin[2], DT_SIGNED | DT_FLOAT, 24, 128.0 ),
10
  ...
11
}

Сообщить модератору | IP: Записан
Сообщение: 138222

Старое сообщение 28-05-2014 14:23
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6843
Возраст: 34

Рейтинг



Цитата:
ILZM писал:
Но зачем эти расширения в delta.lst, которые повторяются? Ведь это значит, что одна и та же инфа отправляется. Не так ли?

Дык тут же отдельно для обычных энтить, для игрока и для клиентдаты (правда, я не совсем понимаю, что это такое, клиентдата, потому что сетью толком не занимался и в инете не шарил). Каждое для своих задач сделано. То есть, мы можем не передавать какие-то энтварсы игрока на клиент, если в этом нет нужды, экономить сетевой траффик в мультиплеере.
ILZM я не могу понять, как у тебя может не передаваться велосити с сервера на клиент... Ты её пытаешься передать через vuser? Попробуй каждый из трёх компонентов вектора передать через fuser, может быть решит проблему.
И ещё. На сервере-то проверял? Может быть ты vuser4 приравниваешь к какому-то фуфлу, типа null.

Сообщить модератору | IP: Записан
Сообщение: 138226

Старое сообщение 28-05-2014 17:27
- За что?
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Цитата:
ILZM писал:
В обычном ХЛ всё норм же, а вот в Xash'e они не двигаются!!1!1!! Почему ?!



Ахем. Клиентдата более точная, часто передаваемая и предиктабельная. Короче, она нужна. Вопрос у меня в другом - КАК игроки двигаются, если у них нет велосити?! Ну ведь наверняка она есть, хоть в пм_шаред на клиенте. Хотя, мб я чего-то не понял. Задачу, например.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

Сообщить модератору | IP: Записан
Сообщение: 138233

Старое сообщение 28-05-2014 19:17
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35012
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
~ X ~ писал:
Короче, она нужна.

На самом деле она не нужна, но в халфе есть - и с этим приходится мириться.
В халфовском сетевом коде на самом деле много чудачеств. Видимо, его много лет писали, отлаживали, тестировали разные идеи и т.д. Вот и получили мы всякие клиент-даты в результате, дублирующие энтити-стейт.
Цитата:
~ X ~ писал:
Ну ведь наверняка она есть, хоть в пм_шаред на клиенте.

На клиенте есть позишен-хистори.

__________________

Сообщить модератору | IP: Записан
Сообщение: 138234

Старое сообщение 28-05-2014 19:23
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 07:28. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Скорость всех игроков в CStudioModelRender.
XashXT
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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