HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Гейтсеквенции монстров
Размышления и вопросы
Страницы (12): « Первая ... « 7 8 9 10 [11] 12 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
ILZM
LAW

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

Рейтинг



Ku2zoff
Ах да. Я эту проблему для игрока решил запихав скорость игрока в vuser, и в delta передавал с сервера на клиент. Не знаю, ест ли много траффика, но зато эту скорость можно для боба и вообще для разных целей использовать. Мб тебе для каждого монстра открыть поле какое-нибудь в delta? Хотя тебе же нужна синхронизация для хитбоксов.
Мб тогда будешь передавать frame, sequence и gaitframe, gaitsequence? Таким образом тебе не нужно будет считать анимацию на клиенте и хитбоксы будут сихронизированы. Хотя инфу о переходах не передашь через сеть.
Тогда возникает новый вопрос. Вот у тебя с двух сторон одинаковый код просчета анимаций, но они точно идут в такт? Т. е. не надо там никаких предсказываний? Вдруг на клиенте анимация идет с мелким запозданием.

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

Старое сообщение 30-09-2015 17:56
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
ILZM писал:
Мб тебе для каждого монстра открыть поле какое-нибудь в delta? Хотя тебе же нужна синхронизация для хитбоксов.

Не-не-не. Нехороший подход. Правильный подход, это когда на клиенте делается зеркало для серверной функции. Ну и наоборот. Ну вот глянь сорцы халфовской клиентки и сорцы ксашдвижка. StduioModelRenderer сделан и на клиенте и в движке. И без всяких левых полей в дельте синхронизируется. И спользуются только те поля, которые нужны для работы ещё нескольких механизмов и вообще всей сети.
Цитата:
ILZM писал:
Мб тогда будешь передавать frame, sequence и gaitframe, gaitsequence?

Ты видел, как это работает у нелокального игрока? Работает настолько плохо, насколько высок пинг.
Цитата:
ILZM писал:
Тогда возникает новый вопрос. Вот у тебя с двух сторон одинаковый код просчета анимаций, но они точно идут в такт? Т. е. не надо там никаких предсказываний? Вдруг на клиенте анимация идет с мелким запозданием.

Она и так идёт с запозданием. Скопипасти код с китайской каэсочки. Серверный gaitframe будет отставать от клиентского. Но это ж никого не волнует. Каэсочка, вон, 15 лет уже спросом у задротов пользуется. И никто не жаловался, что серверные хитбоксы ног отстают от клиентской визуализации этих самых ног на полсекунды.

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

Старое сообщение 30-09-2015 18:03
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 31

Рейтинг



ILZM Зачем скорость игрока на клиент передавать, если она там уже есть?

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 30-09-2015 21:31
- За что?
ILZM
LAW

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

Рейтинг



PLut
Где? Честно искал, но не нашел. А может быть и нашел, но не сработало Эт я про XashXT

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

Старое сообщение 01-10-2015 04:19
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 31

Рейтинг



ILZM В view.cpp. В бдефе так боб работает, сохраняй speed куда угодно (если надо) и пользуйся.

C++ Source Code:
vec3_t velocity = pparams->simvel;
float speed = velocity.Length2D();

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 01-10-2015 07:54
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



Цитата:
PLut писал:
pparams->simvel;

Это не скорость игрока. Это скорость камеры. Поверти резко мышью в движении - скорость увеличится. Скорость игрока это player->curstate.velocity. Которая, кстати, не отлавливается в коде студиомодельрендерера. Поэтому там заведено такое говно как prevgaitorigin и est_velocity.

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

Старое сообщение 01-10-2015 08:04
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 31

Рейтинг



Ku2zoff Ну если зажать вперед и стрейф, то тоже увеличится, да и скорость игрока увеличивается по сути при поворотах мыши, а то зачем башкой вертеть при распрыгах? Вон взять кридз плагины на коэс и поглядеть изменение скорости игрока при стрейфах и направлении вперед/назад, а так же при повороте мышью.

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 01-10-2015 08:08
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



PLut эта скорость только для локального игрока. А мы говорили о студиомодельрендерере и о той скорости, которая передаётся через дельту в секции player_encode. Ну то есть она там как раз не передаётся

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

Старое сообщение 01-10-2015 08:28
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 31

Рейтинг



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

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 01-10-2015 08:35
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



PLut а можно было просто добавить поля

C++ Source Code:
DEFINE_DELTA( velocity[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
DEFINE_DELTA( velocity[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
DEFINE_DELTA( velocity[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),

в delta.lst в секцию entity_state_player_t gamedll Player_Encode. (Не забыв при этом строчку в client.cpp) И не мучиться с эвентами. Правда, это стоит делать, если velocity игроков нужна на клиенте постоянно, а не на пару секунд для партиклевого эффекта. Например, если gaitmovement надо считать. Но т.к. origin уже передаётся, то gaitmovement высчитывается из разницы ориджинов в текущем и предыдущем кадре.

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

Старое сообщение 01-10-2015 09:20
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 31

Рейтинг



Ku2zoff Мне на пару секунд это и нужно

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 01-10-2015 09:52
- За что?
~ X ~
offline

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

Рейтинг



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


Ku2zoff вполне грамотный подход.

PLut а почему Length2D()? У тебя в моде лестниц и падений не бывает?

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

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

Старое сообщение 02-10-2015 08:03
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



~ X ~ а зачем считать bob на лестницах? Когда я сделал собственный bob с раскачиванием пушки по двум осям, я отключил раскачивание по одной из осей, когда игрок плавает, прыгает или летит. Так красивее смотрится. Если уделять внимание таким мелочам, как раскачивание камеры и вьюмодели оружия, можно добавить неплохую динамику игре. Единственное, что я не сделал, не завёл квары для отключения. Бывает, что не всем нравится качание. Но мне нравится, я в первом анриле и УТ1 всегда на максимум ставлю.

Добавлено 02-10-2015 в 14:37:

Цитата:
~ X ~ писал:
вполне грамотный подход.

Ну это как сказать. Зачем передавать velocity игрока каждый кадр, если этот вектор нужен не всегда?

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

Старое сообщение 02-10-2015 08:37
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 31

Рейтинг



~ X ~ Держи ответ от самих вальве.

C++ Source Code:
// bob is proportional to simulated velocity in the xy plane
// (don't count Z, or jumping messes it up)
VectorCopy( pparams->simvel, vel );
vel[2] = 0;

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 02-10-2015 15:00
- За что?
~ X ~
offline

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

Рейтинг



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


PLut я не вальве спрашивал, а тебя. У вальве боб. А скорость на клиенте считается просто Length(). К тому же твой камент про simvel, а двумя постами выше уже сказали, что это вообще другая вещь.

Ku2zoff я не про боб а про линейную скорость игрока вообще.

Ku2zoff DELTA_UNSETBYINDEX

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

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

Старое сообщение 02-10-2015 16:05
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 01:18. Новая тема    Ответить
Страницы (12): « Первая ... « 7 8 9 10 [11] 12 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Гейтсеквенции монстров
Размышления и вопросы
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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