![]() |
Страницы (16): « Первая ... « 9 10 11 12 [13] 14 15 16 » Показать все 232 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Глобальное изменение масштаба (https://hlfx.ru/forum/showthread.php?threadid=4593)
Дядя Миша я не очень понимаю, что делаю. Вроде бы оно должно работать. Но тут же, я чувствую, что движок - это не дллки, и кое-где нужны исправления. Ну вот хотя бы с модельиндексами. model_precache нужно обнулять при смене карты (когда грузится именно другой bsp-файл, чтобы модельиндексы моделей, загруженных в движке совпадали с модельиндексами моделей, заргуженных в дллке).
Натыкаю алертов и посмотрю, что не так. Надеюсь, что-то получится в итоге.
Так, кое-в чём разобрался. MOVETYPE_NOCLIP прекрасно работает. Значит, дело либо в функции SV_Move, либо в хуллах студиомодели.
Добавлено 31-03-2017 в 23:21:
Есть подозрение, что проблема в векторах. Идёт конфликт с классом Vector, описанным в vector.h и движковым vec3_t. Из-за этого трейсы работают неправильно. Раздефайнил vec3_t, задефайнил снова, но уже как в движке: граната теперь не застревает в воздухе, как в солиде (раньше издавала звуки ударов об мир), а просто висит, не получая ускорения и воздействия гравитации. Буду копать дальше.
Самое главное, что кастомная физика вполне себе работает. Что видно на примере MOVETYPE_NOCLIP. А значит вся эта возня не зря, нужно только победить оставшиеся проблемы.
Добавлено 01-04-2017 в 00:02:
Готово! Гранаты залетали как надо. Это я дурак, нефиг комментить куски кода, не разобравшись, зачем они нужны Сейчас очередь за монстрами.
Добавлено 01-04-2017 в 00:54:
Ну и сдаётся мне, что придётся ещё тащить куски pmove в дллку, чтобы игрок взаимодействовал с энтитями. А то они стали весьма несолидными для него. Гранаты, например, толкают пушабли, а игрок нет. Но используя кнопку use, игрок может тягать и толкать пушабли. Лишь бы всё это дело работало по сети и с предиктингом, т.к. весьма неохота ещё что-то ковырять в клиенте. И есть ещё проблема: брашевые энтити с movetype_push. Им ещё в добавок придётся выставлять SOLID_NOT, чтобы движок не ругался на SOLID_BSP without MOVETYPE_PUSH.
Короче, скоро будет какой-нибудь результат. Я надеюсь на это. Демку с исходником карты, где всё уменьшено в два раза, точно приложу.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
// это оригинальный код: |
mins = VEC_HULL_MIN; |
maxs = VEC_HULL_MAX; |
// а это правильный код: |
VEC_HULL_MIN.CopyToArray( mins ); |
VEC_HULL_MAX.CopyToArray( maxs ); |
Похоже, придётся ещё лезть в клиент из-за брашевых энтить, которые не могут быть без MOVETYPE_PUSH или MOVETYPE_PUSHSTEP. Чтобы конкретно обмануть движок, этим энтитям надо выставить SOLID_NOT. Если на сервере всё более-менее решаемо, и везде, где надо можно подсунуть iuser1 вместо movetype, а iuser2 вместо solid, то на клиенте кажется с этим посложнее. Но, в принципе, можно сделать обманку в функции HUD_Frame по аналогии с StartFrame на сервере. Ну это станет видно, когда прочие энтити заработают нормально, и я проверю их взаимодействие с энитями, у которых SOLID_BSP, которые пока обрабатывает движок.
Интересно, как в HLFX 0.7 решена эта проблема? Ведь почти все брашевые энтити имеют SOLID_BSP. Кроме триггеров и пушаблей.
Маленький отчёт о проделанной работе, эдакое резюме по 10 страницам темы, после того как я активно заинтересовался масштабированием:
Сделана загрузка моделей серверной дллкой и построение своей собственной index replacement table. v.modelindex какого-либо эдикта указывает на одинаковые модели из движковой и из собственной таблицы. Ну то есть не совсем одинаковые. В дллке я выбросил загрузку некоторых компонентов моделей, таких как текстуры или инфа об освещении и видимости, т.к. для кода физики и движения это не нужно.
Произведена грубая копипаста кода физики для некоторых мувтипов. Как из ксаша, так и из rehlds. На первый взгляд разницы нет (но в ксаше код грамотнее и читаемее), нужно тестировать и править недочёты. На данный момент получилось заставить нормально работать пушабли, гранаты и учёных.
Я как раз дошёл до того самого момента, где физика энтить взаимодействует с физикой игрока. И вот тут наткнулся на интересную вещь. Нужно грамотным образом изменить player_mins и player_maxs, для правильной колоизации игрока и энтить. Когда я это одолею, можно будет сказать, что задача решена. И только тестировать код в поисках мелких багов и в работе по сети. Демку я обязательно дам вам на растерзание, но как скоро не знаю.
Добавлено 05-04-2017 в 16:29:
З.Ы. Всё для обычной халфы, конечно. Юзая ксаш, можно изменить размеры хуллов в гейминфо и поставить квар sv_quakehulls 2. И не делать всего этого.
З.З.Ы. Для чего это нужно в халфе (в ксаше не нужно, т.к. карты там можно делать гораздо больше 8192х8192х8192): не увеличивая размер карты, увеличить её размер относительно игрока и энтить, для создания больших пространств или карт с поездами (типа AS-HiSpeed), например.
Строго говоря, если бы требовалось только поменять размер хуллов, я бы просто на клиенте получил все модели перебором и позаменял бы там корочи hull_mins и hull_maxs, как я это проделывал в римейке кваки.
А то что в SV_HullForBsp код немного не такой - это по большому счёту, плевать. Оно было критично для халфы, а не для кваки. Иными словами, если юзать этот код из кваки для халфы, там да - сидящие доктора и пушабли будут застревать. Для кваки же халфовский вариант прекрасно подходит.
Так что по суте всё бы ограничилось одной простенькой функцией подмены значений в хуллах. Но мыж лёгих путей неищем. Нам надо полгода копипастить из движка в дллку ради какой-то ерунды.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
~ X ~ ну, собственно, это и придётся сделать. Это даже плюсом будет - переделать все эффекты на RS.
Что-то Гуль пропал из этой темы. Ему стоит попробовать сделать патч для Тириана с изменением размеров хуллов по типу римейка кваки. Может быть все проджектайли починятся.
Ku2zoff он уехавший. Кроме того, он перешёл на тему зомбятника. А вообще - да, мы хотели запилить масштабы. Но так может дойти и до переписывания движка в ДЛЛках.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
Временная зона GMT. Текущее время 17:50. | Страницы (16): « Первая ... « 9 10 11 12 [13] 14 15 16 » Показать все 232 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024