Предлагаю в этой теме обсуждать маппинг под Xash.
Начну сразу. Хочу предложить важные штуки, которые упустили разработчики HL, но которые на мой взгляд вполне реально реализовать:
Декали:
На данный момент их использование возможно только из "decals.wad", текстуры декалей, находящиеся в других WAD файлах будут проигнорированы, по этому предлагаю понимать текстуру на карте как декаль по ее имени с такой маской:
code:{*_DECAL
Например:
code:{my_bullet_hole_DECAL
В идеале было бы удобно без "{" символа.
Звучащие текстуры:
Опять же, все звучащие текстуры (их типы) прописаны в "sound\materials.txt" файле. Использовать их имена в своих картах будет убого по многим причинам. По этому предлагаю опять же использовать маску по имени:
Для полного счастья было бы классно видеть как эти материалы могут работать на брашевых ентитях (func_wall и др.).
Текстуры-инструменты:
Мне всегда не хватало браша, который мог бы быть материальным для item'ов (оружия, патроны, все, что может поднять/кинуть игрок), но пустотелым для всего остального кроме игрока, т.е. копия CLIP'а, за исключением блокировки предметов. Такое, на сколько мне известно, реализовано в Source.
Название предлагаю простое:
code:CLIP_ITEMS
Разное:
Ентитю "func_illusionary" было бы круто модифицировать добавив флаг, при котором она могла бы быть пустотелой только для игрока, а для остального (пули, гранаты и т.п.) нет. Конечно в случае столкновения с пулей надо рисовать декаль.
Надо бы исправить баг, когда одинаковые по имени текстуры на нескольких картах будут выглядеть так, как была загружена первая из них. Надеюсь понятно объяснил, надо сделать принудительную загрузку текстур при загрузке уровня.
Как обстоят дела с w_poly, e_poly ограничениями? Они такие же, или же могут быть выше?
Дядя Миша, тогда убирай возможность использования кастомных декалей !
Тут кстати заметил, что после выхода из "trigger_push'а" камера игрока дергается в сторону, куда смотрит эта ентитя, в HL такого нет. Тестовая карта во вложении.
Вложение: xash_push.zip (10.0 кб)
Этот файл был скачан 283 раз.
Заметил, что физические ентити, которые падают на карту, в Xash'е появляются как-то по другому. В Xash'е при первом появлении на карте можно увидеть как падает оружие на землю, а в HL при появлении оно уже лежит на ней.
Так же на snark_pit карте снарки появляются в трубе и не падают в низ, а застревают в ней.
Тестовая карта во вложении, там в нижней плоскости браша спрятаны снарки, надо подразнить, что бы они вылетели на тебя . А в HL собственно они появляются на земле.
Цитата:
Дядя Миша писал: декали анимированные поддерживаются, кстати.
Попшикай спрей-паинтом, если еще не видел.
Выглядит круто, правда я подумал, что так сделано только для всех спреев, типа игрок баллончиком рисует на глазах .
Цитата:
Дядя Миша писал: дык набери в консоли movie (имя видео из папки media) будет полноэкранное видео со звуком.
Но это только для ксаша конечно
Классная возможность, по любому надо добавить триггер ентитю, которая показывала бы видео игроку при ее активации.
Цитата:
Дядя Миша писал: скрипты по типу "как тебе удобно"
Я уверен, что возможности, которые я предложил пожелает каждый адекватный GoldSource картостроитель.
Вложение: xash_snarks.zip (9.5 кб)
Этот файл был скачан 271 раз.
qpAHToMAS писал: Классная возможность, по любому надо добавить триггер ентитю, которая показывала бы видео игроку при ее активации.
игра кончается, когда видео начинает проигрываться.
Цитата:
qpAHToMAS писал: Я уверен, что возможности, которые я предложил пожелает каждый адекватный GoldSource картостроитель.
не надо думать за всех. Где эти адекватные пользователи, которым так не хватало такой возможности? Сделай опрос и убедись что всем пофигу.
ЗЫ. не надо мне кидать тестовые карты пока.
У меня уже ДРУГОЙ ксаш, не тот что у тебя.
>> Звучащие текстуры:
Опять же, все звучащие текстуры (их типы) прописаны в "sound\materials.txt" файле. Использовать их имена в своих картах будет убого по многим причинам. По этому предлагаю опять же использовать маску по имени:
Вот эта да, неплохо бы вынести в шойдеры, вот тока придется писать шойдер для каждой текстуры из хл.вад, одним словом хеморой.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: вот тока придется писать шойдер для каждой текстуры из хл.вад, одним словом хеморой
А материалы для текстур в halflife.wad ведь в materials.txt хранятся? Можно легко перевести в желаемый вид для добавления в код игры.
Цитата:
Дядя Миша писал: FiEctro qpAHToMAS сформируйте идею более углубленно.
Все просто: в HL нет нормальной поддержи звуковых текстур для пользовательских карт. От materials.txt надо отказываться и делать это через имена текстур, как я и предложил изначально.
Да и вообще, по логике вещей, пользователь не должен иметь возможности изменять материалы текстур редактируя простой файл. Это должен делать разработчик карты раз и на всегда.
Если интересно, то посмотри какую лазейку нашли CS мапперы для придания материальности своим текстурам:
Цитата:
Выход есть и он довольно простой. Как мы знаем, движок Half-Life, выбирая материал текстуры, учитывает только первые 12 знаков её названия. А максимальная длина названия текстуры — 15 знаков. Значит, у нас есть 3 знака в запасе. Этого хватит на любую карту — ведь используя, например, эти три знака для чисел, примерно так:
zvukitexturi001
zvukitexturi002
zvukitexturi003
... мы можем получить 999 разных текстур одного типа звучания. А ведь можно использовать ещё и буквы... Так что, этих трех символов нам хватит.
То есть, нам нужно найти в стандартном materials.txt названия текстур, которые составляют 12 или более символов. Оставляем 12 первых, а оставшиеся 3 находятся в нашем распоряжении.
qpAHToMAS
Хранить параметры текстуры в её имени - просто не нужно, да и совсем не удобно. Поддержку всяких +, !, { сделали тока ради того чтоб было как в хл. Ибо сломаешь голову писать для каждой, индивидуальный шейдер, учитывая что только одна + текстура может использоваться как для простых анимированых текстур, так и для кнопок и ламп. А так смысла их использовать - нет. Потом у параметров в имени есть огромный минус, это несовместимость их друг с другом. К примеру не может быть текстуры !{glass или -+1animate и т.п.
В данном случае как вариант можно сделать всо материалами, как в сорсе "$surfaceprop", но опять все будут плеваться почему не держит вады и т.п.
>> сформируйте идею более углубленно.
Да и materials.txt нормально, но если мод мультиплеерный, и имеет множество кастромных карт, то уже своих звучащих текстур без замены оригинального не добавить, хотя тут еще может спасти архивация всего этого дела в .pk3.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!