Malandrinus 615 Опубликовано 27 Января 2012 Поделиться Опубликовано 27 Января 2012 (изменено) Zones Editor ссылка Предназначен для показа формы различных игровых объектов-зон, имеющих шейп: аномалий, рестрикторов, респавнеров, переходов, лестниц и др. Позволяет смотреть объекты, имеющие сложные составные шейпы, состоящие из набора сфер и произвольно ориентированных боксов. Позволяет редактировать форму шейпов, добавлять и удалять отдельные элементарные шейпы (сферы и боксы). Особая благодарность amik-у за неоценимую помощь с партиклами! Версия игры ТЧ 1.0006 Для работы нужна последняя версия xrGame.dll из проекта X-Ray extensions. Пропатченного файла в проекте нет и не будет, но со страницы скачивания проекта можно взять комплект для патча. Партиклы прилагаются в разобранном виде, только то, что нужно для работы утилиты. Для адаптации можно использовать petool, брать здесь. В комплекте также прилагается версия библиотеки для работы с нетпакетами за авторством xStream (файл xs_netpk_545.script). Не пытайтесь её обновлять! Последняя версия не годится, надо использовать именно ту старую, что идёт в архиве. Работа во многом полагается на колбеки на нажатия клавиш, введённые с новой xrgame.dll. Главное окно вызывается и закрывается нажатием ENTER. Сверху категории объёктов, для фильтрации списка всех доступных объектов. В основном это разные классы объектов. Там есть одна особенная категория "saved zones". Это специальный рестриктор с секцией "zone_editor_restrictor", в котором можно сохранить результаты редактирования. Ниже окна фильтров два окна: слева список объектов, соответствующих фильтру, справа - редактор составного шейпа. Слева выбираете в списке объект, справа появляется список его шейпов. Общие операции: показать/скрыть все элементарные шейпы, добавить новый бокс/сферу (в базовой точке [0,0,0] с размерами 1 игровой метр). Остальные операции выполняются на редакторе каждого конкретного элементарного шейпа. Галка show включает отображения шейпа партиклами, а размеры и цвет частиц выбираются из списка там же. Галка edit включает интерактивный режим редактирования данного шейпа (клавишами). Для редактирования бокса доступны: сдвиг (положение относительно базовой точки объекта, также суть компоненты матрицы перемещения), коэффициенты масштабирования (суть размеры бокса, для генерации матрицы масштабирования) и углы поворота (для генерации матрицы вращения). Трансформация сдвига, с помощью которой можно сделать из бокса произвольный параллелепипед, не используется, хотя внутри присутствует. Для редактирования сферы доступны координаты центра и радиус. Можно установить всё вручную и нажать set. Можно обнулить вращение, используя align, можно удалить данный шейп с помощью del и клонировать его с помощью clone. Можно также перейти в интерактивный режим и редактировать указанные выше компоненты с помощью кнопок на цифровой клавиатуре: 79 46 58. Просто нажатие меняет смещение, с зажатым left alt - вращает, с зажатым right alt - меняет размеры. Можно сохранить то, что вы редактируете в специальном рестрикторе (кнопка save). Только не забудьте сохранить игру, чтобы это не пропало. К сожалению, имя задавать нельзя, так что придётся потом искать последний сохранённый в списке. Можно экспортировать отредактированный составной шейп в текстовом виде (кнопка export). Экспорт выполняется в лог игры. Оттуда его надо вставить копипастой в all.spawn. Изменено 28 Января 2012 пользователем malandrinus 2 2 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Сяк 59 Опубликовано 27 Января 2012 Поделиться Опубликовано 27 Января 2012 Очень полезный и очень необходимый в арсенале каждого модмейкера инструмент. Очень жаль, что нет никакого описания и правленного xrGame.dll в комплекте. В указанной к обсуждению теме нет заявленного собранного файла. (возможно я не нашел). Ссылка на комментарий
abramcumner 1 142 Опубликовано 27 Января 2012 Поделиться Опубликовано 27 Января 2012 Там насколько я понял, надо еще и particles.xr собирать. Тоже странно, что без инструкции. Ссылка на комментарий
Malandrinus 615 Опубликовано 28 Января 2012 Автор Поделиться Опубликовано 28 Января 2012 (изменено) Шапку обновил. Новая ссылка с добавленными парой полезных для адаптации файлов. Новое видео с примером работы с составным шейпом. Также дано краткое описание работы. Изменено 28 Января 2012 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
*Shoker* 322 Опубликовано 28 Января 2012 Поделиться Опубликовано 28 Января 2012 Вот это полезнейшая вещь, сам недавно шейпы менял, пришлось локацию в СДК разбирать и спавн с ними делать, а тут прям в игре. И самое главное - визуально на уровне сделано. Партиклы и интерфейс отличный. Вопрос: правленный DLL нужен тока для отлова нажатий клавишь? А то я хочу попробовать перенести это на ЧН\ЗП. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Сяк 59 Опубликовано 28 Января 2012 Поделиться Опубликовано 28 Января 2012 [error]Arguments : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\ogse_signals.script:174: attempt to call global 'check_module' (a nil value) Недовложено? И папка configs названа - случайно? Ссылка на комментарий
Malandrinus 615 Опубликовано 28 Января 2012 Автор Поделиться Опубликовано 28 Января 2012 *Shoker*, Вопрос: правленный DLL нужен тока для отлова нажатий клавишь? Там ещё пара функций для работы с векторами/матрицами. В частности умножения вектора на матрицу. Можно конечно скриптами имитировать, но это отдельный геморрой. Сяк, [error]Arguments : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\ogse_signals.script:174: attempt to call global 'check_module' (a nil value) Недовложено? В фале _g.script local fs = getFS() function check_module(module_name) local script_name = fs:update_path("$game_scripts$", module_name..".script") local res, err = loadfile(script_name) if res then log1("module: '"..script_name.."' is correct") else log1("module: "..script_name.."\nerror: "..err) end return res, err end И папка configs названа - случайно? Именовал вручную, мог и ошибиться. К сожалению, сделано исходно под мою сборку OGSE, и я уже сам не помню, что от чего зависит. Мог и ещё что-то забыть, так что придётся так постепенно с вашей помощью делать адаптацию под чистую игру. Кстати, менеджер сигналов там в общем-то не сильно и нужен. При желании можно прописать все вызовы прямо из биндера актора. Их там всего четыре штуки кажется. Была идея для интерактивного режима сделать отдельное окошко с кнопками операций вращения/размеров/смещения, но на это уже сил не хватило. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Сяк 59 Опубликовано 28 Января 2012 Поделиться Опубликовано 28 Января 2012 (изменено) Хм. Не вызывается окно редактора по "ENTER" ... xrGame пропатчен до 20. malandrinus Огромное спасибо! Всё работает... Изменено 28 Января 2012 пользователем Сяк Ссылка на комментарий
Malandrinus 615 Опубликовано 28 Января 2012 Автор Поделиться Опубликовано 28 Января 2012 подправил http://rghost.net/36172916 в комплекте несколько недостающих текстур и шейдеры из комплекта OGSE 0692. Это то, что нужно для партиклов. Партиклы исходно сделал amik, он и шейдеры в них настраивал. Я в них потом подкрутил только некоторые параметры, но в целом я в партиклах не разбираюсь, поэтому вопросы, как их адаптировать под совсем чистую игру - не ко мне. Обращаю внимание на косяк в файле bind_stalker ещё с оригинала. В конце нестандартные комментарии, после них код не распознаётся. Добавлено через 33 мин.: Вот ещё вспомнил, зачем там используется изменённая xrgame.dll. Там из объекта получается его матрица трансформации с помощью чтения числа по смещению от адреса. Это особенно важно для объектов, которые повёрнуты от исходного положения, а таких может быть немало. Без этой функции я не знаю, как получить этот поворот. Может и можно чистыми скриптами, но разбираться по любому лениво. Добавлено через 7 мин.: Ещё, чтобы не пугались. Инструмент может вызывать спонтанные вылеты с рендером. У меня это происходит нечасто, но бывало. У кого-то может из-за этого не заработать вовсе. Проблема может быть в партиклах, и я решить её не в состоянии, поскольку в партиклах не разбираюсь. Также инструмент замечен в утечках памяти. Это означает, что при слишком долгой работе могут быть вылеты из-за перерасхода каких-либо ресурсов. Я в этом проблемы не вижу, инструмент внутренний - не для игроков, а для разработчиков. Перезапустить игру разрабу несложно. Исправлять я это тоже не буду. Если заглянете внутрь, то думаю поймёте меня. С другой стороны, если инструмент не вызывать, то и проблем он не вызывает. Т.е. его простое присутствие в вашей игре ни на чём не скажется. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Rastaman_vip74 46 Опубликовано 28 Августа 2012 Поделиться Опубликовано 28 Августа 2012 а обновить ссылку можно ? Ссылка на комментарий
amik 253 Опубликовано 31 Августа 2012 Поделиться Опубликовано 31 Августа 2012 Rastaman_vip74 Поддерживаю. Мой архив Сталкером не занимаюсь. Ссылка на комментарий
FLUDMAN 7 Опубликовано 5 Октября 2012 Поделиться Опубликовано 5 Октября 2012 Нашёл у себя на компе Zone Editor. Не знаю какая там версия, но вероятнее всего последняя. Залил на народ. http://narod.ru/disk...Editor.zip.html 3 Ссылка на комментарий
*Shoker* 322 Опубликовано 11 Сентября 2013 Поделиться Опубликовано 11 Сентября 2013 (изменено) Все ссылки померли за давностью, если кто нибудь сохранил последнюю выложенную версию, пож-ста залейте её куда-нибудь. Зарание спасибо. Изменено 11 Сентября 2013 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Malandrinus 615 Опубликовано 12 Сентября 2013 Автор Поделиться Опубликовано 12 Сентября 2013 http://rusfolder.com/37996041 в архиве также готовая адаптация под шестой патч (старая версия) 3 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
*Shoker* 322 Опубликовано 12 Сентября 2013 Поделиться Опубликовано 12 Сентября 2013 (изменено) Спасибо что нашёл время и выложил, а новая версия уже не требует правленого движка? А то в адаптации от 6-го патча нашёл новый xrLua и прочие мелочи. И кроме адаптации под 6-ой патч - будет-ли работать всё остальное если просто кинуть в чистую игру все файлы из архива или нужно вручную подключать? Изменено 12 Сентября 2013 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Malandrinus 615 Опубликовано 12 Сентября 2013 Автор Поделиться Опубликовано 12 Сентября 2013 Shoker,требует. Можно оттуда убрать колбеки и сделать вызов общего интерфейса не по клавише, а как-то иначе, однако всё равно остаются функции, используемые для получения данных из объектов. Признаться, уже не помню что и где там используется.Ещё момент. В последней версии редактирование поломано. Поскольку почти не используется, то и чинить не стал. Просмотр и экспорт тем не менее работают полностью. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Artos 99 Опубликовано 12 Сентября 2013 Поделиться Опубликовано 12 Сентября 2013 (изменено) @Malandrinus, правки движка (помимо колбэков на клавиши) необходимы для добавления двух функций, обеспечивающих получение данных объекта: obj.get_go_float и matrix().mul_43. Если бы ты дал немного больше информации о том, что можно было бы сделать скриптами (т.е. что требуется от доп.функций) то можно реализовать это уже доступными способами. obj.get_go_float - мною уже почти реализовано при помощи нет-пакетов, неясны остались индексы 1,4,5,6 (из 0...15). Можешь, уточнить что они должны означать в контексте векторов позиции и направления? И уточни, плз, что должен делать метод matrix().mul_43 по сравнению с уже имеющимся mul. Тогда можно сделать не привязанный к движку вариант zone-информера (даже под CS/CoP), позволяющего в игре наблюдать размеры/положения различных зон-объектов, что при тестах/отладках игры порою сильно помогает (особенно когда не известны параметры заспавненных зон/аномалий, а справляться в all.spawn'e иль SDK - потеря времени). Изменено 12 Сентября 2013 пользователем Artos 1 "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Malandrinus 615 Опубликовано 12 Сентября 2013 Автор Поделиться Опубликовано 12 Сентября 2013 (изменено) @Artos,get_go_float нужен для получения XFORM объекта, или иными словами его матрицы трансформации. В большинстве случаев можно было бы обойтись без этого и использовать только смещение объекта, которое можно узнать штатными средствами (функция position). В целом нет никакой нужды поворачивать объект зоны, поскольку можно крутить как хочешь отдельные шейпы, но иногда таки повёрнута вся зона, а положение шейпа высчитывается в локальных координатах объекта и для получения финальной формы и положения шейпа нужно знать поворот всей зоны. К сожалению, такое бывает, как я убедился на практике. Не так уж часто, но вполне случается.Ну а матрица имеет 16 значений, которые получаются по смещению от нуля до 15 от базовой позиции внутри объекта.mul_43 умножает две матрицы не почленно, а матричным умножением, т.е. переводит вторую матрицу в систему координат, заданную первой.Я сейчас глянул скрипты. Я там, как выясняется, поставил заглушки на случай отсутствия этих функций. Без mul_43 вполне можно и так работать, там просто будет вычислять скриптами, делая ровно тоже самое. Просто будет немного медленней работать. Ну а с получением матрицы трансформации ничего поделать не могу. Если нет, то будет использоваться предположение о невращении объекта. В ряде случаев это будет давать некорректный результат. Да кстати, поскольку трансформация сдвига в игре не используется, то можно восстановить матрицу трансформации на основе позиции и вектора поворота (direction т.е.). Надо будет как-нибудь сделать. Изменено 12 Сентября 2013 пользователем malandrinus 1 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Artos 99 Опубликовано 12 Сентября 2013 Поделиться Опубликовано 12 Сентября 2013 Спасибо за пояснения. Собственно замену get_go_float уже попытался реализовать, но именно предположения о возможных искажениях при сдвигах объекта дали повод сомнениям. Вот как выглядит заглушка: local function get_floats(obj) local floats = {} if type(obj.get_go_float) == 'function' then --/#!# for i=0,15 do floats = obj:get_go_float(80 + i*4) end else --/ stub local pos, dir = obj:position(), obj:direction() --log("get_floats: obj=[%s] pos=[%s] dir=[%s]", obj:name(), pos, dir, "") --/#~# floats = { [ 0]=math.abs(dir.z), [ 1]=-0 , [ 2]=math.abs(dir.x), [ 3]=0, --/ 1:? [ 4]= 0, [ 5]= 1 , [ 6]= 0, [ 7]=0, --/ 4:? , 5:? , 6:? [ 8]= dir.x, [ 9]=dir.y, [10]= dir.z, [11]=0, [12]= pos.x, [13]=pos.y, [14]= pos.z, [15]=1 } end return floats --/> end достаточно ли это корректно или могут быть значительные искажения отображения от реального положения объекта? "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Malandrinus 615 Опубликовано 13 Сентября 2013 Автор Поделиться Опубликовано 13 Сентября 2013 @Artos, насчёт возможности восстановить матрицу трансформации по направлению я вообще говоря был неправ. Этой информации недостаточно, поскольку направление - это одна ось координат, а нужно две. Вот если есть поле серверного объекта angle, то тогда можно. Поскольку там углы поворота, и по ним уже можно восстанавливать матрицу поворота (это центральная часть 3х3 всей матрицы трансформации). К сожалению, это поле есть только в ЗП (и может в ЧН), но не в ТЧ. Как вариант, это поле можно вытащить из нетпакета при загрузке объекта. Это будет поле direction из части cse_abstract. Придётся конечно мудрить, поскольку это не в любой момент можно сделать, но другого выхода для ТЧ я не вижу. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти