![]() |
Страницы (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)
Ku2zoff
Ты потом хотя бы не тутор, а общие соображения напиши, пожалуйста. Ключевые моменты, так сказать. А код мы сами напишем.
__________________
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, я хз, нужен ли он вообще в халфе. Разве что при стрельбе из арбалета по монстру, который медленно идёт, и ноги у него медленно анимируются.
__________________
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
__________________
XaeroX а как? Я пока не думал над этим.
Ku2zoff
Плавнее стало переключение между, например, ходьбой и прыжком, ходьбой и idle. Монстрам это тоже должно помочь. Хотя смотря что вы понимаете под "дёрганно".
__________________
XaeroX Рывками, покадрово будто.
__________________
Base Defense on Steam, ModDB
Смотри, значит, как gaitframe считается.
__________________
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Ku2zoff в любом случае буду рад видеть результаты твоей работы! Главное чтоб подводные ка..мни не выплыли за ночь до (или после) релиза.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
модели менять тоже придется для этооо?
Добавлено 22-07-2015 в 00:59:
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: 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