Объект logic_lineto используется для расчёта вектора между двумя любыми объектами.
Не обнаружены.
Этому объекту крайне сложно найти применение на карте, потому что в игре CS:S, да и вообще в движке Source в целом, очень мало функций и объектов, приспособленных для приёма вектор в качестве входного параметра. Наиболее логичным является использование объекта logic_lineto совместно с объектом func_breakable_surf, направляя выходной вектор объекта logic_lineto в функцию "Shatter" объекта func_breakable_surf. Но чтобы это применить нужно изрядно постараться. Смотрите как это сделано на карте-примере этого объекта.
csssdk_logic_lineto.vmf
Карта выполнена в ночном стиле. Эта карта сложна для изучения.
На карте установлено большое разбивающееся стекло, созданное при помощи объекта func_breakable_surf. Это стекло можно разбить только функцией "Shatter", потому что для него установлен фильтр повреждений filter_damage_type, делающий стекло "неуязвимым". Нажмите на кнопку пульта и посмотрите как на стекле будет рисоваться смайлик.
Все объекты (в том числе и logic_lineto), необходимые для разбивания стекла, создаются при помощи объектов point_template. Это сделано для того, чтобы объекты logic_lineto не разбивали окно преждевременно, а делали это только тогда, когда этого пожелает игрок. Каждый объект logic_lineto использует по два объекта для вычисления своего вектора: первый - info_target, второй - func_movelinear. Для получения нужного вектора, каждый объект func_movelinear должен находиться относительно своего logic_lineto в строго вымеренной точке. Итак, для функции "Shatter" объекта func_breakable_surf необходимо передать вектор в виде "X Y RADIUS", где "X" и "Y" должны варьироваться в диапазоне значений от 0 до 1, и определять координату точки на окне, в которой будет создана дыра радиусом "RADIUS". Применительно для объекта logic_lineto: "X Y RADIUS" – это расстояния между объектом info_target и func_movelinear по осям X, Y и Z соответственно. Сначала было установлено расстояние Z, тем самым сразу определившись с радиусом отверстий. Затем на виде сверху в редакторе Hammer был выбран минимальный размер сетки (Snap Grid), равный 1 юниту. Относительно объектов info_target, все объекты func_movelinear были выставлены в точке, соответствующей расположению дыр на окне. Достичь нужной точности помогло передвижение объектов func_movelinear с зажатой клавишей "ALT" на клавиатуре. В завершение, для объектов func_movelinear было указано направление и скорость их движений. Обратите внимание, что все клонируемые объекты после завершения своей работы удаляются функцией "Kill". Это сделано для того, чтобы объекты logic_lineto не создавали лишнюю нагрузку на сервер после выполнения своей задачи на карте.
Вы можете начать новый раунд, чтобы разбивать окно снова и снова. Для этого выполните в консоли команду "mp_restartgame 1".
Как можете заметить, применение объекта logic_lineto является довольно сложной процедурой, требующей от автора карты хорошего понимания принципа действия всех составляющих сцены, а так же определённой сноровки по манипулированию объектами.