Формат патчей - w23/xash3d-fwgs GitHub Wiki

Откуда брать информацию

  • Получить surface id можно через r_infotool 1, либо через newbspguy (панель debug info пункт face id или CTRL+C на выбранных поверхностях).
  • Получить entity id можно через newbspguy (панель debug info пункт entity id).

Патчи располагаются в modname/luchiki/maps/mapname.patch где modname имя мода (valve для HL), mapname имя целевой карты. Примеры лежат в ref/vk/data/valve/luchiki.

Формат похож на Формат PBR материалов, отличаются только ключи.

Перезагрузить на лету патчи можно через команду rt_debug_reload_patches. Можно забиндить это на клавишу, например bind g rt_debug_reload_patches.

Список возможностей

Изменить для карты порог сглаживания нормалей
{
"_xvk_smoothing_threshold" "50" // угол в градусах, по умолчанию 45
}
Задать сглаживание нормалей для всех граней энтити
{
"_xvk_ent_id" "id" // целевая энтити, может быть множество идов через пробел
"_xvk_smooth_entire_model" "1" // сгладить все грани энтити
}
Задать сглаживание нормалей для граней
{
"_xvk_smoothing_group" "id id" // целевые грани, может быть множество идов через пробел
}
Снять сглаживание нормалей полностью для грани возле её соседей
{
"_xvk_smoothing_excluded "id" // целевая грань, может быть множество идов через пробел
}
Снять сглаживание нормалей между гранями
{
"_xvk_smoothing_excluded_pairs" "id id" // целевые грани, может быть множество идов через пробел
}
Изменить текстуру на грани
{
"_xvk_surface_id" "id" // целевая грань, может быть множество идов через пробел
"_xvk_material" "materialname" // или существующее на карте имя текстуры
}
Изменить текстуру у энтити на материал
{
"_xvk_ent_id" "id"
"_xvk_map_material" "from_texture to_material" // или "from_texture1 to_material1 from_texture2 to_material2"
}
Изменить текстурные координаты на грани (размер, сдвиг, поворот)
{
"_xvk_surface_id" "id" // целевая грань, может быть множество идов через пробел
"_xvk_tex_rotate" "90" // имейте ввиду поворот не по центру и нужна коррекция сдвига после него
"_xvk_tex_offset" "100 100"
"_xvk_tex_scale" "1 1"
}
Добавить или изменить светимость у текстуры
{
"_xvk_surface_id" "id" // целевая грань, может быть множество идов через пробел
"_light" "R G B V"
}
Удалить грань
{
"_xvk_surface_id" "id" // целевая грань, может быть множество идов через пробел
}
// как альтернатива можно указать пустую текстуру через "_xvk_texture" ""
Удалить все поверхности неба
{
"_xvk_remove_all_sky_surfaces" "1"
}
Добавить энтити
{
"classname" "light" // вместо light может быть любой из halflife.fgd но сейчас поддерживаются только источники света
"ключ" "значение" // нужные ключи которые надо присвоить энтити
}
Подвинуть func-браш энтити
{
"_xvk_ent_id" "id" // целевая энтити, может быть множество идов через пробел
"origin" "X Y Z" // изменить позицию энтити (относительно)
}
Изменить энтити
{
"_xvk_ent_id" "id" // целевая энтити, какой-то источник света, может быть множество идов через пробел
"_light" "R G B V" // перезаписать параметры света на свои
"origin" "X Y Z" // изменить позицию энтити
}
Изменить телесный угол солнца
{
"_xvk_ent_id" "id" // целевая энтити light_environment, может быть множество идов через пробел
"_xvk_solid_angle" "V" // угол в стерадианах (регулирует размытость теней от light_environment)
}
Удалить энтити
{
"_xvk_ent_id" "id" // целевая энтити, может быть множество идов через пробел
}
Изменить радиус источника света чтобы пройти сквозь мешающие грани
{
"_xvk_ent_id" "id" // целевая энтити света, может быть множество идов через пробел
"_xvk_radius" "100" // значение радиуса, ключ "radius" будет игнорироваться (см. #259)
}
Изменить rendermode
{
"_xvk_ent_id" "id" // целевая энтити, может быть множество идов через пробел
"rendermode" "0" // номер rendermode (0: "Normal", 1: "Color", 2: "Texture", 3: "Glow", 4: "Solid", 5: "Additive")
}