HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Проблемы pitch игроков на клиенте
Stupid Quake Bug, SQB, s2c, angles, pitch, Half-Life, shit, naggers, mudkipz
Страницы (3): « 1 2 [3]   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
~ X ~ писал:
Чего я не могу понять - это нахрена заведено столько углов (enity->angles, curstate.angles и т.п.), и откуда, куда и как существуют?

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

Цитата:
~ X ~ писал:
От наличия оружия в руке зависит выполнение различного рекурсивного мерзокода халвы.

Ну и какой же код там рекурсивен?

Цитата:
~ X ~ писал:
Вопрос: каким ВСЁ-ТАКИ должен быть питч если смотришь вниз - 90 или -90!?

Вьюанглес от первого лица инвертировано по отношению к моделям игрока (но не к своей модели). Т.е. у тебя должна быть проверка на себя самого от третьего лица и проверка на остальных игроков. У локального и нелокальных разный питч. Возможно что из-за предиктинга, возможно что из-за восстановления вьюанглес на клиенте (то самое умножение на -3).
Там смысл в чём, вьюанглес приходит на сервер и делится на три, чтобы модель игрока наклонялась не слишком сильно, как бы ослабляет размах.
Но на мой взгляд модель игрока наклонять это ваще бред какой-то и не нужно, достаточно вьюанглес передавать в блендинги.
pev->v_angle.x = pev->angles.x * -3.0f;
но это только для локального игрока, для нелокальных инверсия уже не нужна. Впрочем это еще зависит от того, где ловишь, на клиенте или на сервере.

Цитата:
~ X ~ писал:
ДМ сам говорил, что там всё по-другому и пофикшено

Stupid Quake Bug невозможно профиксить до конца по определению, его корни начинаются уже при создании карты в редакторе. Можно его зарубить при загрузке уровня на сервер, что я собствено и сделал, т.к. он мешал нормальной работе парент-системы. Щас не мешает. А прям ваще-совсем его не победить. Это и формат моделей менять, между прочим надо, они же там все повернутые на 90 градусов и так скомпиленые. Вон в хл2 модельки уже не повернутые. Но и там я уверен, он кое-где еще пооставался.

Цитата:
XaeroX писал:
Ну инвертируй питч там, где требуется, в чём проблема?

Вот, руководствуясь в точности этим советом Кармак сотоварищи баг когда-то и посадили Любая инверсия питча загоняет проблему всё глубже и глубже, как осиновый банан в афедрон вероотступника.

Цитата:
~ X ~ писал:
почему-то оказалось, что углы на коиенте надо умножать не на 3, а на 9

Ничего там не оказалось, ты посадил еще один баг в свой любимый XDM, поздравляю. Уж помнится мы с Ксероксом когда-то в пьяном угаре доходили до того, что умножали на шесть (ШЕСТЬ, КАРЛ), но уж чтобы умножать на ДЕВЯТЬ, нам такое даже и близко в гологу не приходило.

Добавлено 06-01-2017 в 23:25:

Цитата:
XaeroX писал:
У меня, напомню, свой двиг есть, без всяких детских болезней

Модели повернуты на 90 градусов?

Цитата:
~ X ~ писал:
Прочитал бы его менее известную биографию, не связанную с компами что-ли.

Там про бананы?

Цитата:
XaeroX писал:
В новый год - только с адекватными форумчанами, я считаю.

И чтобы Крым был наш!

Добавлено 06-01-2017 в 23:30:

PS, может быть я не слишком понятно выразился, почему SQB невозможно полностью вычистить - он даже в cl_inputangles имеется, а матрицу поворота мира по Кармаку уже не переделаешь. Не думаю, что и Ксерокс её переделывал. Так что это всего лишь приятная иллюзия, что бага прям ваще-ваще нет. Какие-то остатки всегда будут присутствовать.
Чтобы его не было, надо вот прям с нуля движок писать и чтобы там обои были нескучные и аппаратная поддержка бананов.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 06-01-2017 20:30
-
~ X ~
offline

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

Рейтинг



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


Цитата:
XaeroX писал:
В новый год - только с адекватными форумчанами, я считаю

Тогда надо сразу полфорума в баню вписывать.

Цитата:
Дядя Миша писал:
Ну и какой же код там рекурсивен?

"Ну видишь, ты базовых вещей не понимаешь, самого элементарного..."

Цитата:
Дядя Миша писал:
Но на мой взгляд модель игрока наклонять это ваще бред какой-то и не нужно, достаточно вьюанглес передавать в блендинги.

Я бы не сказал, что бред, учитывая, что у половины анимаций блендингов нет. Кроме того, полёты с поворотами выглядят очень занятно.

Цитата:
Дядя Миша писал:

Ничего там не оказалось, ты посадил еще один баг в свой любимый XDM, поздравляю.

Нет, там другое. Там дважды умножалось на 3. Три в квадрате, Карл.

Я уже догадываюсь, что проблема не решается методом "умножил до движка, поделил после".
Я уже определил в треде про 3038, что проблемки начинаются ещё при движении КУРСОРА МЫШКИ. Или джойстика.
Короче, надо отслеживать углы ВЕЗДЕ. На сервере, в PlayerPreThink() надо pev->angles перед всем домножать на 3, чтобы углы считались нормально и не ехали.
Далее, на клиенте при приходе углов почему-то снова умножать на 3.
Но вот засада, что мразедвижок делит angles на 3 ПЕРЕД вызовом AddClientEntities(), и поправить это без кахов нельзя т.к. эта говнофункция в хл не вызывается для первого лица.
Далее - КреатеЕнтитис() - там я правлю фонарик. И тут - СНОВА меняются углы! НАХРЕНА ИХ СТОЛЬКО РАЗ МЕНЯТЬ?! ОДИН раз посчитал - и живи весь кадр - НЕЕЕЕЕТ! - надо всё засрать!
Затем - СтудиоМоделУгнетатор() - УГЛЫ СНОВА В ЖОПЕ, но тут всё поправимо.
Но знаете, что хуже всего?
Хуже всего эвенты с их углами.
Думаете, всё?
НЕЕЕЕЕЕТ - отвечает программер!
Почему не работает "привязка" РС, ПС, ТЕ и прочего говна к аттачментам? А потому что каким-то чудом в m_pLocalPlayer = GetAnonByIndex(); ВСЕ attachments[] == origin. Вот так. Наносекунду назад, в ШтудиоМодельЖопере() они посчитались - но зачем хранить, когда можно затереть?(ц)Вальве - а тут они уже тёртые на тёрке. Огей, сохраняем в вазелине.вузер1/2/3/10101. Что дальше? Дальше уже за компом просижено около 30 часов. Вальве и Кармаку пожелаю сами знаете чего.

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

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

Старое сообщение 08-01-2017 08:36
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



~ X ~ я повторяю вопрос - какой код на клиенте рекурсивен, покажи.

Цитата:
~ X ~ писал:
Там дважды умножалось на 3.

Там НЕ МОГЛО дважды умножаться на 3, это значит что как минимум один раз поделили на 3, просто ты этого не заметил.

На тебе для примера как из локального и нелокального игрока получить углы
C++ Source Code:
1
if(( pEnt->index - 1 ) == cl.playernum )
2
{
3
  // get the predicted angles
4
  AngleVectors( cl.refdef.cl_viewangles, forward, NULL, NULL );
5
}
6
else
7
{
8
  vec3_t	v_angle;
9
 
10
  // restore viewangles from angles
11
  v_angle[PITCH] = -pEnt->angles[PITCH] * 3;
12
  v_angle[YAW] = pEnt->angles[YAW];
13
  v_angle[ROLL] = 0; 	// no roll
14
 
15
  AngleVectors( v_angle, forward, NULL, NULL );
16
}


Цитата:
~ X ~ писал:
Почему не работает "привязка" РС, ПС, ТЕ и прочего говна к аттачментам? А потому что каким-то чудом в m_pLocalPlayer = GetAnonByIndex(); ВСЕ attachments[] == origin.

Всё там прекрасно работает и никто эти оригины не затирает.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 08-01-2017 08:43
-
~ X ~
offline

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

Рейтинг



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


Цитата:
Ghoul [BB] писал:
Остальные тут просто так, для мебели тусуются...

"Это стойкое чувство, что ты прав..."

Код в клиенте - это где студиомоделрендерер затирает свои внутренние переменные класса, чтобы, вызывая отрисовку из отрисовки, не звтёрлась модель игрока. У меня кода сейчас нет. Помню только, что там меня убило наповал нечто типа:
cl_entity_t backup = *drawing_entity;
DrawSomeShit();// drawing_entity здесь пропускают через миксеры(тм)
*drawing_entity = backup;

Цитата:
Дядя Миша писал:
Всё там прекрасно работает и никто эти оригины не затирает.

нажми F9 в HUD_TempEntsUpdate() (или как оно там) и погляди, чему равны аттачменты у игрока. Лучше даже сделай так: поставь pEfxAPI->MuzzleFlush(attachment, someshit); в этйо функции для игроков. Я не знаю, как оно в ксаше, но в Калве к этому моменту все аттачменты равны ориджину. Халва не последняя, если что.

Проблема в том, что углы в client_entity::curstate::angles портятся от функции к функции. Если я их поправил в самом начале (ProcessPlayerData() или как оно там), это не значит, что в StudioAnalRenderer() они будут такими же. Что наводит на размышления:
если углы с сервера приходили в формате 30г (т.е. 90/3), а я испрвил до 90г, а в следующем месте они снова 30г, то значит, в оригинале они здесь былы 10г!!! (30/3=10)
Дремучее мракобесие этот SQB.

[i]Добавлено 08-01-2017 в 12:00:


Вот ещё что вспомнил: с огнемётом мне насолила ещё одна рпоблема: помимио attachments[] обнуляется curstate.velocity == 000, в результате чего снарядам не добавляется скорость игрока.

Вспоминается песенка от Буллсквида с ХЛру:
- Ой, что это?
- ЖОООПААААА

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

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

Старое сообщение 08-01-2017 09:00
- За что?
 XaeroX
Crystice Softworks

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

Рейтинг



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


Цитата:
~ X ~ писал:
Помню только, что там меня убило наповал нечто типа:
cl_entity_t backup = *drawing_entity;
DrawSomeShit();// drawing_entity здесь пропускают через миксеры(тм)
*drawing_entity = backup;

Вот как реагировать на такое? Это опять какой-то тонкий юмор, который я не понял? Или в этом коде есть действительно что-то невероятно смешное?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

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

Старое сообщение 08-01-2017 09:07
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
~ X ~ писал:
меня убило наповал нечто типа:
cl_entity_t backup = *drawing_entity;
DrawSomeShit();// drawing_entity здесь пропускают через миксеры(тм)
*drawing_entity = backup;

Это отрисовка випон-модели, которая не имеет своей энтити. От нее вообще только имя модели известно и больше ничего.

Цитата:
~ X ~ писал:
client_entity::curstate::angles портятся от функции к функции. Если я их поправил в самом начале (ProcessPlayerData() или как оно там), это не значит, что в StudioAnalRenderer() они будут такими же. Что наводит на размышления:

Не трогай curstate.angles

Цитата:
~ X ~ писал:
помимио attachments[] обнуляется curstate.velocity == 000

velocity не передаётся в халфе на клиент.

И я повторяю вопрос - где ты в клиенте увидел рекурсивный код, который выполняется в зависимости от наличия оружия в руке.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 08-01-2017 09:09
-
~ X ~
offline

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

Рейтинг



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


Цитата:
Дядя Миша писал:
Не трогай curstate.angles

а что ещё не трогать?

Цитата:
Дядя Миша писал:
velocity не передаётся в халфе на клиент.

не передаётся, значит её нет? А как без велосити предикшен живёт? Придётся, сцуко, пеердавать.

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

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

Старое сообщение 08-01-2017 09:57
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
~ X ~ писал:
А как без велосити предикшен живёт?

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 08-01-2017 10:06
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4415
Возраст: 34

Рейтинг



Цитата:
Дядя Миша писал:
Это и формат моделей менять, между прочим надо, они же там все повернутые на 90 градусов и так скомпиленые.

я вот когда с чтением с джойстика возился, перепутал оси Х и У и у меня игрок стал ходить на 90 градусов вбок относительно указанного направления.

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

Старое сообщение 03-04-2017 11:59
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 10:09. Новая тема    Ответить
Страницы (3): « 1 2 [3]   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Проблемы pitch игроков на клиенте
Stupid Quake Bug, SQB, s2c, angles, pitch, Half-Life, shit, naggers, mudkipz
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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