HLFX.Ru Forum Страницы (12): « 1 2 3 4 [5] 6 7 8 9 » ... Последняя »
Показать все 178 сообщений этой темы на одной странице

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=4629)


Отправлено XaeroX 12-07-2015 в 21:00:

Ku2zoff
Ты потом хотя бы не тутор, а общие соображения напиши, пожалуйста. Ключевые моменты, так сказать. А код мы сами напишем.

__________________

xaerox on Vivino


Отправлено Ku2zoff 12-07-2015 в 21:37:

XaeroX а какие соображения? Я и сейчас напишу.

1. Нужно отвязать движение от секвенции, то есть исключить использование StduioFrameAdvance в функции CBaseMonster::Move, где оно юзается по дефолту. Делается это очень легко: нужно всего лишь задать монстру значение m_flGroundSpeed. Для бега выше, для ходьбы ниже. Как и у игрока в юнит/сек. Лучше всего это сделать в функции MonsterThink, оверрайдить её для конкретного монстра.

2. Нужно назначать гейтсеквенции для активностей движения. Оверрайдим SetActivity для конкретного монстра. Если NewActivity = m_movementActivity, то эту активность делаем гейтсеквенцией. Если нет, то простой секвенцией.

3. Самая сложная часть. Нужно отредактировать существующие таски, или написать новые. К примеру, я убрал TASK_STOP_MOVING из Task_t tlAGruntRangeAttack1[], тем самым отучив его останавливаться, когда он стреляет. Ну потом конечно написал отдельный таск для стрельбы в движении. И сделал переключение между ними в функции выбора скедъюлей Schedule_t* CAGrunt :: GetScheduleOfType ( int Type ) в зависимости от расстояния до противника. Тут всё ограничивается лишь полётом фантазии.

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

4. Расчёт гейтсеквенции монстрам на клиенте. Аналогично игроку, с той лишь разницей, что скорость фиксированная, и нам не нужна никакая m_flGaitMovement. Только m_flGaitFrame нужно рассчитывать. Здесь я напоролся на то, что для КАЖДОГО отдельного монстра нужно считать свой гейтфрейм (для игрока юзается индивидуальная структура m_pPlayerInfo, поэтому там проблем нету). Сначала я ради эксперимента сделал так: float m_flGaitframeMonster[1024]; ну понятно, максимум 1024 монстра, в качестве идентификатора - индекс энтити. Говнокод кароч. Потом заюзал пустой энтварс под гейтфрейм, и всё стало нормально.

5. Передача гейтсеквенции по сети. В маленькое изменение в client.cpp и новая строчка в delta.lst.

6. Серверные хитбоксы. Рассчёт m_flGaitFrame для гейтсеквенции на сервере, как в кс. Пока не делал, т.к. серверный кадр не синхронен с клиентским.

Пункты 2 и 3 ещё требуют доработки, чтобы не было дёрганий на ровном месте и искр над башкой. Пункт 6, я хз, нужен ли он вообще в халфе. Разве что при стрельбе из арбалета по монстру, который медленно идёт, и ноги у него медленно анимируются.


Отправлено XaeroX 12-07-2015 в 21:44:

Цитата:
Ku2zoff писал:
А если вчитаться в их код, то вообще о-го-го, чего там есть К примеру, стрейф в халфе вполне себе реализован.

Да, в халфе очень многое реализовано.
Спасибо за список, примерно так себе это и представлял.

__________________

xaerox on Vivino


Отправлено ~ X ~ 14-07-2015 в 08:26:

Цитата:
Cybermax писал:
А вообще я не помню что-бы я когда то ставил 1 из 10 кому то.

Я помню. Потому что мне. И потому что от дикого баттхёрта.
Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.


Ku2zoff ты усиленно превращиешь монстров в ботов. Way to go. Не мог бы на мои вопросы ответить? Про модели, например.

Цитата:
Ku2zoff писал:
Серверные хитбоксы.

таки надо.

PS: ждём гейтсеквенсов для tentacle2.mdl

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


Отправлено XaeroX 14-07-2015 в 08:34:

Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

Цитата:
~ X ~ писал:
ждём гейтсеквенсов для tentacle2.mdl

Ну ведь по глазам вижу, что не ждёшь!
Зачем же писать такое?

__________________

xaerox on Vivino


Отправлено Ku2zoff 15-07-2015 в 20:09:

Цитата:
~ X ~ писал:
таки надо.

Проблема в том, что серверный gaitframe у игрока не совпадает с клиентским, отсюда рассинхрон серверных хитбоксов ног с видимой моделью. (Только в движении. Код на сервере идентичен клиентскому, но, видимо, здесь играет роль то, что сервер тчинкает реже клиента). Я тебе сорцы дам, ты сможешь в XDM потестить и найти способ синхронизировать? Я ещё прогу подскажу, которая рисует серверные хитбоксы. Только осторожно, её античиты не любят, авторы очень особо об этом напоминают каждый раз при запуске
Цитата:
~ X ~ писал:
Не мог бы на мои вопросы ответить? Про модели, например.

Спрашивай.

Я тут пораскинул мозгами, и вот что решил: PLut попробовал алиен грантов в бдефе. Сказал, что двигаются дёрганно. Я сильно со свенкоопом не сравнивал, но таки есть что-то. Видимо, придётся сделать гейт на сервере. А соответственно написать StudioFrameAdvance для гейта. Тогда проблема с подбором скоростей отпадёт, и, теоретически, монстры будут двигаться так же, как и при обычных анимациях. А ещё я думаю, что надо будет сделать монстрам нулевую секвенцию, которая не будет юзаться. Как и у игрока. Чтобы действовало условие if (pev->gaitsequence == 0).


Отправлено XaeroX 15-07-2015 в 20:11:

Цитата:
Ku2zoff писал:
Сказал, что двигаются дёрганно.

А ты гейт интерполируешь с обычной анимацией?
По дефолту в халфе такого нет, а я в волатиле сделал.

__________________

xaerox on Vivino


Отправлено Ku2zoff 15-07-2015 в 20:14:

XaeroX а как? Я пока не думал над этим.


Отправлено XaeroX 15-07-2015 в 20:36:

Ku2zoff
Плавнее стало переключение между, например, ходьбой и прыжком, ходьбой и idle. Монстрам это тоже должно помочь. Хотя смотря что вы понимаете под "дёрганно".

__________________

xaerox on Vivino


Отправлено PLut 15-07-2015 в 20:42:

XaeroX Рывками, покадрово будто.

__________________
Base Defense on Steam, ModDB


Отправлено XaeroX 15-07-2015 в 20:53:

Смотри, значит, как gaitframe считается.

__________________

xaerox on Vivino


Отправлено ~ X ~ 18-07-2015 в 09:43:

Цитата:
Ku2zoff писал:

Спрашивай.

двумя постами выше:
Цитата:
~ X ~ писал:
По теме: модели все тоже новые клепать? Частично оставить старых монстров можно будет? pev->weaponmodel тоже, может, задействовать? (чтоб не клепать десяток bodygroup для оружий)


Если серверные хитбоксы решат проблему с непонятно куда тыканьем монтировкой по дохлым монстрам - я буду счастлив.
Я пока не буду брать у тебя код (ПОКА!) потому что у меня обнаружился сетевой баг с монстрами, оторый мне надо сначала решить.

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


Отправлено Ku2zoff 18-07-2015 в 09:51:

Цитата:
~ X ~ писал:
Если серверные хитбоксы решат проблему с непонятно куда тыканьем монтировкой по дохлым монстрам - я буду счастлив.

Хм. Тут не в этом причина.
Модели клепать новые не надо, всё со стандартными работает. Я пока ещё в процессе. Нем могу решить несколько проблем.


Отправлено ~ X ~ 18-07-2015 в 17:10:

Ku2zoff в любом случае буду рад видеть результаты твоей работы! Главное чтоб подводные ка..мни не выплыли за ночь до (или после) релиза.

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


Отправлено Ghoul [BB] 21-07-2015 в 22:01:

модели менять тоже придется для этооо?

Добавлено 22-07-2015 в 00:59:

Цитата:
Ku2zoff писал:
отреверсившим серверную дллку кс 1.6. Почитали отреверсенный код и поисправляли несколько неточностей в коде ксаша.

Что ж все никак клиентку не отреверсят? Смысла только от серверной мало....

Добавлено 22-07-2015 в 01:01:

Цитата:
~ X ~ писал:
Чиво? ДМише собрали 200к?? Может, мне так объявить о сборе средств на фичу???



Я давно предлагал. И не говори, что не помнишь!!!

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Временная зона GMT. Текущее время 07:41. Страницы (12): « 1 2 3 4 [5] 6 7 8 9 » ... Последняя »
Показать все 178 сообщений этой темы на одной странице

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