HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 20 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- Steam патч для Invasion (https://hlfx.ru/forum/showthread.php?threadid=5890)


Отправлено Ku2zoff 20-08-2022 в 17:01:

Half-Life Steam патч для Invasion

Те, кто внимательно читают форум, знают, что Invasion является одним из моих любимых модов. В своё время (2005 или чуть позже) я был очень восхищён этим модом: в него и качественную музыку завезли, и красивые декали, и ленсфлаеры, и прострелы стен, и даже отстреливание частей тел монстров. И субтитры ещё.
Когда его сорцы стали доступны, я сразу же поглядел всё, что меня давно интересовало. Ориентируясь на французский код, точнее, используя его примерно на 80%, я написал спрайтовые декали, что сохраняются и ходят через уровни. К этому времени у меня накопилось несколько своих наработок, которые народ видел только на видео в ютубе. И тогда я подумал, что неплохо бы их встроить в какой-нибудь известный мод для обкатки, чтобы норот оценил, как оно в игре.

Наконец-то руки дошли. Я начал ворошить сорцы стим-патча для Инвазион. Ну, мягко говоря, не айс. Одна из самых бросающихся в глаза фич - декали и партикли, закомменчена с пометкой "пофикшу позже". Что автор собрался фиксить, мне не совсем понятно, ведь оно работает ровно так, как позволяет голдсорс. Естественно, в патче прикручены клиентские эвенты для пушек, опять же непонятно зачем, ведь в моде нет мультиплеера. Ещё одна пакость в том, что автор выкинул фмод, заботливо прикрученный французами, и перевесил музыку на встроенный в движок плеер. Который невозбранно глушит треки после чейнджлевела или загрузки сейва. Вишенкой на торте является то, что иногда скрипты могут слегка ломаться: с оригинальными дллками учёный при нападении грантов на лабораторию на карте l1m1_a2 умирает сразу возле окна, а с "пофикшенными" может бегать по комнате и не умереть. Поначалу я думал, что это мой косяк, потому что применил фикс DispatchAnimEvents, чтобы его протестировать в реальной игре. Но нет, с готовыми дллками из патча то же самое.

Итак, что уже готово:

1. MP3-плеер на основе fmod для windows и linux. Умеет менять громкость, ставиться на паузу, сохранять имя трека и позицию воспроизведения в сейв, восстанавливать это при загрузке сейва, поддерживает текстовые плейлисты из Инвазиона.

2. Сохраняемые спрайтовые декали. Ходят через чейнджлевелы, сохраняются в сейвы и загружаются из них. Есть небольшие проблемы с движущимися энтитями, возможно, это нерешаемо.

3. Выделение юзабельной энтити. Требует пройти всю игру, чтобы проверить, нет ли гигантских кнопок метр на два с половиной, как в блушифте.

4. Типа фикс DispatchAnimEvents. Дошёл до карты l2m3, заметил только один сломанный скрипт с учёным, упомянутый выше, и то не из-за этого, а вообще из-за нового сдк 2.4.

В планах поправить подбор некоторых предметов, например для ракет рпг не отображается спрайт. Если будет желание - поправить модели NPC, чтобы они не елозили ногами по полу в некоторых анимациях, да выкинуть хдпачного барника, а то он не сочетается с лоуполи учёными, грантами и снайперами.

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


Отправлено Дядя Миша 20-08-2022 в 19:04:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 21-08-2022 в 04:35:

Дядя Миша ну скорее не соображения, а предложения, что ещё включить в патч. Вполне возможно, я упустил некоторые моменты из-за синдрома утъонка и большой продолжительности мода. Навскидку, припомню разве что отстреливание частей тела мелкокалиберным оружием. Я бы сделал, чтобы такое было только от взрывов и мощных пушек.


Отправлено Дядя Миша 21-08-2022 в 06:45:

Вырежи защиту от читёров эту дурацкую.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 21-08-2022 в 08:45:

Дядя Миша а, ну это само собой. В документации нигде не написано ни про консольную команду test, ни про ключ командной строки -testmode. В юности это меня очень калило, некоторые места было трудно пройти, а при вводе читов мод вылетал. Вообще не понимаю, зачем это было нужно придумывать. В WON-халфе и так по-умолчанию консоль вообще не открывается, и ещё нужна команда sv_cheats и перезапуск карты. Защита в коде - это мелочи. Авторы TheGate пошли ещё дальше. Они разместили на каждой карте маленькую комнатку с триггером, который затемняет экран и пишет, что игрок читер. То есть, ходить между картами можно только через чейнджлевелы. Загрузить какую-то одну и протестить невозможно. Наверное это чтобы поиздеваться над игроками, потому что TheGate местами аццки сложный, сложнее Инвазиона. Но кинематографичный.


Отправлено Дядя Миша 21-08-2022 в 11:08:

Цитата:
Ku2zoff писал:
То есть, ходить между картами можно только через чейнджлевелы

А команду changelevel точно так же можно вбить в консоль. Главное знать имя ландмарка.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 21-08-2022 в 11:40:

Цитата:
Дядя Миша писал:
Главное знать имя ландмарка.

Откуда игрок его узнает?


Отправлено Дядя Миша 21-08-2022 в 12:01:

В ксаше-можно сдампить entpatch и подглядеть

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 21-08-2022 в 18:13:

Цитата:
Ku2zoff писал:
Вообще не понимаю, зачем это было нужно придумывать.

Цитата:
Ku2zoff писал:
Они разместили на каждой карте маленькую комнатку с триггером, который затемняет экран и пишет, что игрок читер.

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

Добавлено 21-08-2022 в 14:13:

Цитата:
Дядя Миша писал:
В ксаше-можно сдампить entpatch и подглядеть

Или можно просто открыть bsp-файл в блокноте...

__________________

xaerox on Vivino


Отправлено Дядя Миша 21-08-2022 в 19:20:

Цитата:
XaeroX писал:
Или можно просто открыть bsp-файл в блокноте...

Там же каша будет

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 21-08-2022 в 19:42:

Дядя Миша
Почему? Лумп энтитей текстовый. Просто ищешь там поиском trigger_changelevel и смотришь поля map и landmark.

__________________

xaerox on Vivino


Отправлено Дядя Миша 21-08-2022 в 20:11:

Потому что форматирование поедет. Неудобно в той каше ориентироваться.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Chyvachok 24-08-2022 в 20:19:

Цитата:
Ku2zoff писал:
Навскидку, припомню разве что отстреливание частей тела мелкокалиберным оружием. Я бы сделал, чтобы такое было только от взрывов и мощных пушек.


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


Отправлено Ku2zoff 29-08-2022 в 12:29:

С горем пополам разобрался с интерфейсом, то есть главным меню. Вообще бы туда не лез, но поскольку инвазион имеет в комплекте замечательную утилиту переключения языков и переводы аж на 4 языка (французский, английский, немецкий и испанский), я решил, что не стоит добру пропадать, и надо бы применить локализацию к главному меню. Заодно завести ещё русский перевод.

Так вот. Документации нифига нету, а та что есть - она для сорса, есть отличия. Пришлось ковыряться самому. Как устроена локализация меню в стим-халфе? VGUI2 и GameUI парсят res файлы, а так же kb_act.lst, settings.scr, user.scr. Если лейбелы в res'ах, и строчки в lst и scr начинаются с #, то движок пытается искать их локализованные версии в файлах valve/resource/gameui_english.txt, valve/resource/valve_english.txt, invasion/resource/gameui_english.txt, invasion/resource/valve_english.txt, invasion/resource/invasion_english.txt. Такой вот зоопарк получается.
Причём, invasion/resource/invasion_english.txt не обязательно содержать все строчки, которые требует меню, достаточно только те, которых нет valve/resource/valve_english.txt. А вот если нет каких-то строчек в invasion/resource/gameui_english.txt, то их и не будет, поскольку грузится только один файл, в отличие от предыдущего случая, где грузятся оба. Неважно, в каком из файлов gameui_english.txt или имямода_english.txt находятся локализованные строчки, меню в любом случае их подхватит. Разве что я ещё не проверял названия глав, что пишутся в кач-ве комментария в сейв. Думаю, что разницы нет.

Короче говоря, сделать волшебные файлики локализации меню для каждого из официальных языков мода, а так же для русского и положить их в папку invasion/resource - не проблема. Проблема - переключать язык уже внутри игры, чтобы менялись тексты титров и vgui-менюшек. Можно завести под каждый из языков свою папку типа invasion_french, invasion_russian, invasion_german, и положить туда соответствующие titles.txt и texts.txt. Но мне это категорически не нравится. Гораздо удобнее сделать автоматическое переключение языка, ведь все нужные текстовики имеются. В случае с текстами ничего мудрить не надо, файлы грузятся самой клиенткой. С титрами - другое дело, надо либо использовать парсер-локализатор (вчера написал), либо загружать титры прямо на клиентке в обход движка (можно невозбранно позаимствовать из ксаша). Так или иначе, нужен способ узнать, какой язык установлен для халфы в стиме.

Подскажите, есть ли какой-то экспорт, торчащий из стима, позволяющий узнать язык запущенной игры? Или это только искать в реестре? Опять же, в реестре я нашёл только язык стима, который может отличаться от языков установленных игр.


Отправлено FiEctro 29-08-2022 в 13:28:

Цитата:
Ku2zoff писал:
с оригинальными дллками учёный при нападении грантов на лабораторию на карте l1m1_a2 умирает сразу возле окна, а с "пофикшенными" может бегать по комнате и не умереть. Поначалу я думал, что это мой косяк, потому что применил фикс DispatchAnimEvents, чтобы его протестировать в реальной игре. Но нет, с готовыми дллками из патча то же самое.


Вот из-за подобных ошибок я в своё время и забросил этот мод. Как назло ещё сохранился в этом месте. Что в купе с их божественным "античитом" выглядело как издевательство.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Временная зона GMT. Текущее время 15:50. Страницы (2): [1] 2 »
Показать все 20 сообщений этой темы на одной странице

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