Это популярное сообщение. Kirgudu 1 204 Опубликовано 10 Февраля Это популярное сообщение. Поделиться Опубликовано 10 Февраля (изменено) ИНСТРУМЕНТ Авторы: @Kirgudu, @monk Краткое описание: реинкарнация Повелителя зоны Платформа: Тени Чернобыля (1.0006 и 1.0004), OGSR x64 v2.1.416 (+), Чистое небо (1.5.10), Зов Припяти (1.6.02) Ссылка на общее хранилище: https://disk.yandex.ru/d/iK_zA5HmIreu-g Дата сборки: 2024-10-31 Скрытый текст 1. В подпапке Ready - готовые комплекты для: оригинальных версий Теней Чернобыля (1.0006 и 1.0004) и Чистого Неба (1.5.10) и Зова Припяти (1.6.02); OGSR x64 v2.1.416; Объединённого Пака v2.2 patch 2023-03-15; Фотографа оригинального и Фотографа selfmade. 2. The.Tool.SoC.Constructor.rar, The.Tool.CS.Constructor.rar и The.Tool.CoP.Constructor.rar - архивы с конструктором Инструмента для модов на платформах ТЧ/OGSR, ЧН и ЗП соответственно. 3. readme.SoC.txt, readme.CS.txt и readme.CoP.txt - описание и инструкция для ТЧ, ЧН и ЗП соответственно. Скрытый текст Да, этот инструмент во многом вдохновлён именно Повелителем зоны, но и не только. В каждом моде, в работе над которым мне довелось принять участие, авторами всегда добавлялись те или иные средства управления героем, объектами, временем, событиями и прочими игровыми составляющими. Это удобно, поскольку позволяет разработчику быстро проверить ту или иную правку для мода без необходимости проходить всю игру вплоть до того момента, когда правка должна проявиться. Вот и в моде STALKER CS Final Stroke (новое название бывшего OGSM CS 1.8 CE Fixes) от @monk такие средства тоже есть, они появились там ещё во времена первого OGSM, и с тех пор постоянно использовались. Примерно тогда же, может раньше, вышел Повелитель. Спустя ещё какое-то время в OGSM добавился механизм выбора произвольной точки и телепортации на неё с помощью облёта. Был реализован показ на худе отладочной информации об игроке, затем добавлен вывод вместо подсказки информации об НПС, на которого смотрит прицел. Всё это было интегрировано в Final Stroke и с разной частотой и успехом использовалось при работе над дальнейшим улучшением мода. В какой-то момент возникла мысль весь этот зоопарк отладочных средств от разных авторов объединить в одном новом моде, привести его в современный вид, добавить удобства и, возможно, каких-то новых возможностей, ранее никем не реализованных. Результат перед вами, причём теперь не только для Чистого Неба, но и для Теней Чернобыля и Зова Припяти. А поскольку с его помощью можно многое сделать, подкрутить или починить, мод получает соответствующее рабочее название: Инструмент. Скрытый текст Мод имеет модульную структуру, при которой каждый раздел Инструмента реализован в своём, отдельном, скриптовом файле, подключаемом к общему файлу-менеджеру. Настройка производится в конфигурационном файле configs\misc\tool.ltx, а именно: В секции [settings] можно настроить раздел по умолчанию, включить или выключить сохранение состояния диалога, а также настроить расположение кнопок разделов. В секции [tabs] можно каждый из модулей включить или выключить, поменять их порядок, расположение кнопки в диалоге (см. скриншоты ниже). В секции [key_bindings] можно настроить клавиши, которые будут автоматически назначены для внутриигрового вызова диалога Инструмента, а также показа отладочной информации. Ниже идёт описание каждого модуля в отдельности. Скрытый текст Раздел предназначен для быстрого перемещения в разные точки Зоны. Дополнительная настройка модуля: configs\misc\tool\teleport.ltx Можно выбрать целевую локацию (список слева), в пределах каждой локации доступен как список стандартных смартов, так и список произвольных точек, заранее перечисленных в конфигурационном файле модуля. Перемещение происходит по нажатию кнопки Перейти или при двойном клике мышью на выбранную точку в списке. Телепорт - особый подраздел в списке локаций слева, предназначенный для быстрого телепорта по произвольным координатам. Их можно вписать в соответствующие поля вручную, взять из текущего положения игрока а также воспользоваться режимом облёта камеры (кроме ЗП), нажав на "глаз", найти нужную целевую точку, выйти из режима облёта путём нажатия на клавишу Esc и автоматически получить конечные координаты облёта после чего произвести перемещение по указанным координатам, нажав кнопку Перейти. Произвольные точки можно сохранять и удалять, а также восстанавливать из них сохранённые координаты. Точки сохраняются в отдельном конфиге: configs\misc\tool\teleport_custom.ltx (вариант для Чистого Неба, Зова Припяти или Теней Чернобыля с поддержкой пространства имён IO) или очищаются после загрузки (вариант для оригинальных Теней Чернобыля без поддержки IO). Список произвольных точек поддерживает двойной клик мышью на элементе списка, при этом координаты выбранной точки будут подставлены в соотв. поля аналогично нажатию кнопки Загрузить. Также доступен автоматический прыжок героя на указанное в специальном поле расстояние в направлении вперёд, назад, влево или вправо от текущего положения. Таким образом можно, например, выйти за забор базы Чистого Неба на Болотах, не прибегая к услугам проводника и не используя другие способы перемещения. В варианте Инструмента для Чистого Неба особенный смысл имеет поле "Симулировать историю при смене локации". В некоторых случаях при переходе на другую локацию разработчику мода бывает необходимо воспроизвести также все события, которые должны были предшествовать этому переходу в том случае, если бы игра шла штатным образом. Также бывает, что при быстром телепорте в точку, находящуюся рядом с враждебными игроку НПС, из-за того, что симуляция войны группировок ещё не была запущена, происходит сбой логики этих НПС, конфликт, вызванный враждебным к игроку отношением с одной стороны, и отсутствием симуляционных инструкций с другой. Во многих случаях это приводит к вылету. Чтобы избежать симуляционного вылета, или чтобы воспроизвести плавное течение истории при быстром переходе, для этого и следует ставить отметку в поле "симулировать историю". Поиск объекта - ещё один специальный подраздел, позволяющий осуществить поиск объектов по их серверному или человекопонятному имени, а также переместиться к выбранному объекту. Поиск можно осуществить по всем локациям или только по текущей, а также с учётом или без учёта содержимого любых контейнеров. Для поиска доступны: НПС (сталкеры и торговцы), монстры, оружие, броня, патроны, медикаменты, еда, детекторы и артефакты. Скрытый текст Раздел предназначен для создания разных игровых объектов в разных состояниях в инвентаре героя или в окружающем мире. Дополнительная настройка модуля: configs\misc\tool\spawn.ltx Предустановленный список типов и секций спавна содержится в конфигурационном файле модуля. В диалоге доступен поиск нужного предмета по секции или его наименованию. НПС (персонажей и монстров) можно создавать как живыми, так и виде трупов. Предметы (броню, оружие, боеприпасы, артефакты и т. д.) можно создавать в окружающем мире или складывать в инвентарь, также можно указывать их кол-во. Аномалиям при их создании можно задать радиус. По умолчанию для спавна объектов в окружающем мире берётся точка в нескольких метрах впереди текущего положения героя, автоматически проставленные в соотв. полях координаты можно изменить вручную или воспользоваться стрелками автоматического сдвига координат на указанное расстояние в одном из четырёх направлений относительно направления взгляда. В варианте Инструмента для Чистого Неба добавлена возможность создавать отряды, список секций которых автоматически читается из распакованных конфигурационных файлов \configs\misc\squad_descr*.ltx. Создание отряда будет происходить в пределах выбранной территории (смарта) из списка всех зарегистрированных игровых территорий. При желании можно автоматически выбрать ближайшую к игроку территорию, нажав на кнопку "Найти рядом". Во избежание вылетов из игры принят ряд условий, соблюдающихся при создании отряда, а именно: одна территория (смарт) не может быть заселена отрядами, принадлежащими к разным группировкам, даже дружественным друг к другу; на одной территории не может быть создано отрядов больше, чем максимальное количество отрядов, которые территория может вместить; отряд с определённым идентификатором секции не может быть создан, если в игре уже существует отряд с аналогичным идентификатором. При возникновении одного из этих условий игроку будет выведено соответствующее предупреждение, а в случае с дублем секции отряда - диалог с выбором дальнейших действий. Скрытый текст Раздел предназначен для просмотра полного списка предметов, находящихся в настоящий момент в инвентаре героя (включая слоты), а также их состояния (цветовая дифференциация). Каждый предмет можно удалить (произойдёт полное удаление объекта из игры), для оружия и брони можно просмотреть текущее состояние и установить новое. Для любого предмета, состояние которого изменяется, можно поставить отметку в поле Фиксировать - тогда выбранное значение будет заморожено и не изменится в процессе игры вплоть до ближайшей загрузки или до момента, когда флажок Фиксировать будет снят и снова нажата кнопка Установить, либо когда предмет станет недоступен онлайн в результате продажи, удаления или перемещения за пределы Alife-радиуса. Скрытый текст Раздел предназначен для управления взаимоотношениями героя со всеми группировками, присутствующими в игре. В группировку можно вступить (только ЧН), отношение группировки к герою при этом автоматически изменится на дружеское. Из группировки можно выйти, отношение при этом изменится на нейтральное (если не произошло одновременного вхождения во враждебную группировку, в этом случае и отношение сменится на враждебное). Кроме того, можно изменить числовое отношение любой группировки к игроку. Скрытый текст Раздел предназначен для управления личными параметрами героя. Дополнительная настройка модуля: configs\misc\tool\actor.ltx Доступны для изменения: деньги, ранг, репутация, здоровье, пси-здоровье, энергия, уровень облучения (радиация). При установке значений здоровья, пси-здоровья, энергии и радиации можно поставить отметку в соотв. поле Фиксировать - тогда выбранное значение будет заморожено и не изменится в процессе игры вплоть до ближайшей загрузки или до момента, когда флажок Фиксировать будет снят и снова нажата кнопка Установить. Кнопка "ЧИТБОКС" служит для автоматического создания в инвентаре игрока заранее составленного списка предметов. Скрытый текст Раздел предназначен для управления игровыми инфопорциями. В варианте Инструмента для оригинальных Теней Чернобыля список доступных инфопорций представлен в конфигурационном файле config\misc\tool\info.ltx и взят из файлов оригинальной игры config\gameplay\info_*.xml. В случае Инструмента для Чистого Неба или Теней Чернобыля с модифицированным движком, поддерживающим пространство имён IO, необходимо иметь в виду один важный момент. Для чтения списка инфопорций применяется скриптовый xml парсер, который умеет работать только с распакованными физическими копиями xml, подробнее см. тут: Попытка прочесть файлы, находящиеся в игровых архивах, на ванильном движке приводит к немедленному вылету. Поэтому для того, чтобы иметь возможность прочесть инфопорции, необходимо все xml файлы, их содержащие, распаковать из игровых архивов и положить в папку \configs\gameplay\. При этом полный список инфопорций, который можно прочитать из этих файлов, очень большой. Если читать их в UI список полностью, это приводит к неоправданным задержкам в отрисовке диалога, доходящим до десятка секунд и более. Чтобы этого избежать, был добавлен фильтр, требующий ввода трёх и более символов для показа отфильтрованного списка инфопорций. Можно вводить любую часть наименования, поиск будет произведён по вхождению в любой части строки. Статус инфопорций в списке будет показан цветом (выданные - зелёные). Любую инфопорцию можно выбрать и затем выдать или отменить, воздействуя таким образом на течение сюжетной линии. Список инфопорций поддерживает двойной клик мышью на элементе списка, при этом состояние выбранной инфопорции будет переключено на противоположное: выданная отменится, а невыданная будет активирована. Скрытый текст Раздел предназначен для быстрой установки любого типа погоды, включая характерные для выброса. Предустановленный список погодных типов содержится в конфигурационном файле модуля: configs\misc\tool\weather.ltx Список погоды поддерживает двойной клик мышью на элементе списка, при этом выбранная погода будет активирована аналогично действию кнопки Установить. Нажатие кнопки Выброс приведёт к немедленному запуску катаклизма вместе со всеми сопровождающими его событиями (изменение заданий, поиск укрытия и т. д.). Скрытый текст Раздел предназначен для второстепенных или чисто информационных вещей и в настоящее время содержит в себе три подраздела. Дополнительная настройка модуля: configs\misc\tool\misc.ltx Время: можно установить любой таймфактор (но имеются предельные границы), ускорить или замедлить с учётом выбранного коэффициента, а также сбросить на игровое значение по умолчанию. Музыка: можно принудительно запустить на проигрывание любой музыкальный фрагмент из списка, предустановленный список содержится в конфигурационном файле модуля. Доступен двойной клик мышью на элементе списка, при котором выбранный музыкальный фрагмент будет запущен или остановлен в зависимости от его текущего состояния. Видео: можно принудительно запустить на проигрывание любой видео фрагмент из списка, предустановленный список содержится в конфигурационном файле модуля. Доступен двойной клик мышью на элементе списка, при котором выбранный видео фрагмент будет запущен аналогично нажатию кнопки Запустить. Скрытый текст Порядок установки готового комплекта Содержимое соответствующего архива записать в папку игры с заменой имеющихся файлов (если есть).Порядок работы с конструктором для модов 1. Содержимое папки gamedata_REPLACE из архива скопировать как есть в папку gamedata игры. Если Инструмент устанавливается поверх другого мода, в который уже интегрированы модули от @Artos (модуль нет-пакетов m_netpk, вспомогательные модули lua_extension и lua_helper) и/или кейлоггер от @Charsi (модуль keylogger) - перезаписать их поверх или, если имеющиеся файлы изменены после авторов, совместить правки. 1.1. Если Инструмент устанавливается для Теней Чернобыля, но при этом не на движке OGSR, содержимое папки gamedata_EXCEPT_OGSR из архива скопировать как есть в папку gamedata игры. Напротив, в OGSR модуль m_netpk не только интегрирован, но и модифицирован, поэтому его замена модулем из Инструмента в OGSR запрещена. 2. Вытащить из игровых архивов и записать в папку gamedata\configs\gameplay файлы инфопорций info_*.xml, а в папку gamedata\configs\misc (кроме STALKER Тени Чернобыля) - конфигурационные файлы отрядов squad_descr*.ltx. В архиве Инструмента в папках gamedata_OPTIONAL\configs\gameplay и gamedata_OPTIONAL\configs\misc (кроме STALKER Тени Чернобыля) лежат файлы из оригинальной игры - можно взять их, но соответствие списка инфопорций и секций отрядов вашему моду в таком случае не гарантируется. 3. В отдельные файлы оригинальной игры или вашего мода внести изменения согласно примерам, перечисленным в папке архива gamedata_ADD. А именно: Скрытый текст 3.1. В файле gamedata\scripts\_g.script в конце функции start_game_callback() перед закрывающим end добавить: -- for The Tool xr_s.init() -- портирование фреймворка событий из STALKER CS lua_helper.attach() -- если вспомогательный модуль Артоса ещё не подключён m_netpk.attach() -- не требуется (но и не мешает при повторном подключении) для OGSR (m_netpk уже есть в составе) if keylogger then keylogger.init() end -- если кейлоггер Чарси ещё не подключён if tool then tool.init() end -- обязательно Если вспомогательные модули Артоса ещё не подключены, в файле gamedata\scripts\_g.script в самом конце добавить: -- for The Tool --/------------------------------------------------------------------- --/#+# initialize modules [lua_helper/lua_extensions] --/------------------------------------------------------------------- prefetch("lua_extension") --/#+# подключение модуля расширений Lua prefetch("lua_helper") --/#+# подключение модуля 'общих' хелп-функций --/ ------------------------------------------------------------------ --/ print-log (вывод отладочной информации) --/------------------------------------------------------------------- local console --/ функция вывода сообщения в игровую консоль to_log = function(fmt,...) if not console then console = get_console() end console:execute("load ~:"..string.exformat(fmt,...)) end --/------------------------------------------------------------------- --/ Принудительное прерывание игры при фатальных ошибках --/------------------------------------------------------------------- abort = function(fmt,...) to_log(string.rep("~",86)) to_log("[error]ABORT CALLED:\n" .. string.exformat(fmt, ...)) to_log("ATTENTION! Game is interrupted! The information in lines above.") to_log(string.rep("~",86)) get_console():execute('flush') exit() --/#!# interrupt game in case of fatal errors end --/ ------------------------------------------------------------------ 3.2. В файле gamedata\scripts\bind_stalker.script в конце функции actor_binder:net_spawn(data) перед конечным return true добавить: -- for The Tool xr_s.on_game_load() В конце функции actor_binder:net_destroy() перед закрывающим end добавить: -- for The Tool xr_s.on_actor_destroy() В конце функции actor_binder:update(delta) перед закрывающим end добавить: -- for The Tool xr_s.on_actor_update(delta) В самом начале функции actor_binder:save(packet) добавить: -- for The Tool xr_s.on_event("actor_save") Если вспомогательные модули Артоса ещё не подключены, в конце функции actor_binder:reinit() перед закрывающим end добавить: -- for The Tool --/#+# [lua_helper] ------------------------------------------------ if lua_helper.Init_ActorPStor then lua_helper.Init_ActorPStor() end --/< --------------------------------------------------------------- 3.3. В файле gamedata\scripts\smart_terrain.script в самом конце добавить: -- for The Tool function get_smart_terrains() return smart_terrains --/> end function get_smart_terrains_by_name() return smart_terrains_by_name --/> end 3.4. В файле gamedata\scripts\xr_motivator.script в конце функции motivator_binder:update(delta) перед закрывающим end добавить: -- for The Tool xr_s.on_event("npc_update", {obj = self.object}) 3.5. В файле gamedata\config\ui\game_tutorials.xml в конце файла перед закрывающим тегом </window> добавить: <!-- for The Tool --> #include "ui\tool\game_movies.xml" 3.6. В файле gamedata\config\ui\ui_custom_msgs.xml в конце файла перед закрывающим тегом </header> добавить: <!-- for The Tool --> <cs_debug x="200" y="10" width="600" height="100" complex_mode="1"> <text font="graffiti22" r="240" g="217" b="182" a="255" align="l"/> </cs_debug> 3.7. В файле gamedata\config\localization.ltx в опции files в начале или конце добавить новое значение st_tool: ;список xml файлов, содержащих таблицы символов files = st_tool, ; + все остальные элементы списка 3.8. В файле gamedata\config\system.ltx в секции [texture_desc] в опции files в начале или конце добавить новые значения ui_common_2 и ui_pda2_noice: [texture_desc] files = ui_common_2, ui_pda2_noice, ; + все остальные элементы списка 3.9. В корневой папке игры в файле fsgame.ltx добавить синонимы для прямого нерекурсивного доступа к папкам gamedata\configs\gameplay и gamedata\configs\misc: $tool_gameplay$ = false| false| $game_config$| gameplay\ $tool_misc$ = false| false| $game_config$| misc\ Пример добавки приведён в архиве в файле fsgame_ADD.ltx Скрытый текст 3.1. В файле gamedata\scripts\_g.script в конце функции start_game_callback() перед закрывающим end добавить: -- for The Tool lua_helper.attach() -- если вспомогательный модуль Артоса ещё не подключён m_netpk.attach() -- если модуль нет-пакетов Артоса ещё не подключён if keylogger then keylogger.init() end -- если кейлоггер Чарси ещё не подключён if tool then tool.init() end -- обязательно Если вспомогательные модули Артоса ещё не подключены, в файле gamedata\scripts\_g.script в самом конце добавить: -- for The Tool --/------------------------------------------------------------------- --/#+# initialize modules [lua_helper/lua_extensions] --/------------------------------------------------------------------- prefetch("lua_extension") --/#+# подключение модуля расширений Lua prefetch("lua_helper") --/#+# подключение модуля 'общих' хелп-функций --/ ------------------------------------------------------------------ --/ print-log (вывод отладочной информации) --/------------------------------------------------------------------- local console --/ функция вывода сообщения в игровую консоль to_log = function(fmt,...) if not console then console = get_console() end console:execute("load ~:"..string.exformat(fmt,...)) end --/------------------------------------------------------------------- --/ Принудительное прерывание игры при фатальных ошибках --/------------------------------------------------------------------- abort = function(fmt,...) to_log(string.rep("~",86)) to_log("[error]ABORT CALLED:\n" .. string.exformat(fmt, ...)) to_log("ATTENTION! Game is interrupted! The information in lines above.") to_log(string.rep("~",86)) get_console():execute('flush') exit() --/#!# interrupt game in case of fatal errors end --/ ------------------------------------------------------------------ 3.2. В файле gamedata\scripts\actor_menu.script в самом конце добавить: -- for The Tool function get_menu_mode() return last_mode end 3.3. В файле gamedata\scripts\bind_stalker.script в самом начале функции actor_binder:save(packet) добавить: -- for The Tool xr_s.on_event("actor_save") Если вспомогательные модули Артоса ещё не подключены, в конце функции actor_binder:reinit() перед закрывающим end добавить: --/#+# [lua_helper] ------------------------------------------------ if lua_helper.Init_ActorPStor then lua_helper.Init_ActorPStor() end --/< --------------------------------------------------------------- 3.4. В файле gamedata\scripts\xr_motivator.script в конце функции motivator_binder:update(delta) перед закрывающим end добавить: -- for The Tool xr_s.on_event("npc_update", {obj = object}) --/#+# >событие: 'npc_update' 3.5. В файле gamedata\scripts\xr_s.script содержимое функции register_callback(name,func,userobj) заменить на это: function register_callback(name,func,userobj) -- + поддержка произвольных событий (замена оригинальной функции) if callbacks[name]==nil then -- abort("register_callback: callback name '%s' is unknown.", name) callbacks[name] = {} -- создаём новый массив для произвольного события с указанным именем end callbacks[name][func]={userobj=userobj} -- Чтобы можно было регистрировать каллбэки с userobj==nil end Там же в конце файла добавить новую функцию: function on_event(name, data) -- произвольное событие if not name or not callbacks[name] then return end --/> нет зарегистрированных коллбэков for func,o in pairs(callbacks[name]) do func(o.userobj, data) end end 3.6. В файле gamedata\configs\ui\game_tutorials.xml в конце файла перед закрывающим тегом </window> добавить: <!-- for The Tool --> #include "ui\tool\game_movies.xml" 3.7. В файле gamedata\configs\ui\ui_custom_msgs.xml в конце файла перед закрывающим тегом </header> добавить: <!-- for The Tool --> <cs_debug x="200" y="10" width="600" height="100" complex_mode="1"> <text font="graffiti22" r="240" g="217" b="182" a="255" align="l"/> </cs_debug> 3.8. В корневой папке игры в файле fsgame.ltx добавить синонимы для прямого нерекурсивного доступа к папкам gamedata\configs\gameplay и gamedata\configs\misc: $tool_gameplay$ = false| false| $game_config$| gameplay\ $tool_misc$ = false| false| $game_config$| misc\ Пример добавки приведён в архиве в файле fsgame_ADD.ltx Скрытый текст 3.1. В файле gamedata\scripts\_g.script в конце функции start_game_callback() перед закрывающим end добавить: -- for The Tool lua_helper.attach() -- если вспомогательный модуль Артоса ещё не подключён m_netpk.attach() -- если модуль нет-пакетов Артоса ещё не подключён if keylogger then keylogger.init() end -- если кейлоггер Чарси ещё не подключён if tool then tool.init() end -- обязательно Если вспомогательные модули Артоса ещё не подключены, в файле gamedata\scripts\_g.script в самом конце добавить: -- for The Tool --/------------------------------------------------------------------- --/#+# initialize modules [lua_helper/lua_extensions] --/------------------------------------------------------------------- prefetch("lua_extension") --/#+# подключение модуля расширений Lua prefetch("lua_helper") --/#+# подключение модуля 'общих' хелп-функций --/ ------------------------------------------------------------------ --/ print-log (вывод отладочной информации) --/------------------------------------------------------------------- local console --/ функция вывода сообщения в игровую консоль to_log = function(fmt,...) if not console then console = get_console() end console:execute("load ~:"..string.exformat(fmt,...)) end --/------------------------------------------------------------------- --/ Принудительное прерывание игры при фатальных ошибках --/------------------------------------------------------------------- abort = function(fmt,...) to_log(string.rep("~",86)) to_log("[error]ABORT CALLED:\n" .. string.exformat(fmt, ...)) to_log("ATTENTION! Game is interrupted! The information in lines above.") to_log(string.rep("~",86)) get_console():execute('flush') exit() --/#!# interrupt game in case of fatal errors end --/ ------------------------------------------------------------------ 3.2. В файле gamedata\scripts\actor_menu.script в самом конце добавить: -- for The Tool function get_menu_mode() return last_mode end 3.3. В файле gamedata\scripts\bind_stalker.script в самом начале функции actor_binder:save(packet) добавить: -- for The Tool xr_s.on_event("actor_save") Если вспомогательные модули Артоса ещё не подключены, в конце функции actor_binder:reinit() перед закрывающим end добавить: --/#+# [lua_helper] ------------------------------------------------ if lua_helper.Init_ActorPStor then lua_helper.Init_ActorPStor() end --/< --------------------------------------------------------------- 3.4. В файле gamedata\scripts\xr_meet.script в конце функции Cmeet_manager:update() перед закрывающим end добавить: -- for The Tool xr_s.on_event("on_meet", {obj = self.npc}) --/#+# >событие: 'on_meet' 3.5. В файле gamedata\scripts\xr_s.script содержимое функции register_callback(name,func,userobj) заменить на это: function register_callback(name,func,userobj) -- + поддержка произвольных событий (замена оригинальной функции) if callbacks[name]==nil then -- abort("register_callback: callback name '%s' is unknown.", name) callbacks[name] = {} -- создаём новый массив для произвольного события с указанным именем end callbacks[name][func]={userobj=userobj} -- Чтобы можно было регистрировать каллбэки с userobj==nil end Там же в конце файла добавить новую функцию: function on_event(name, data) -- произвольное событие if not name or not callbacks[name] then return end --/> нет зарегистрированных коллбэков for func,o in pairs(callbacks[name]) do func(o.userobj, data) end end 3.6. В файле gamedata\configs\ui\game_tutorials.xml в конце файла перед закрывающим тегом </window> добавить: <!-- for The Tool --> #include "ui\tool\game_movies.xml" 3.7. В файле gamedata\configs\ui\ui_custom_msgs.xml в конце файла перед закрывающим тегом </header> добавить: <!-- for The Tool --> <cs_debug x="200" y="10" width="600" height="100" complex_mode="1"> <text font="graffiti22" r="240" g="217" b="182" a="255" align="l"/> </cs_debug> 3.8. В корневой папке игры в файле fsgame.ltx добавить синонимы для прямого нерекурсивного доступа к папкам gamedata\configs\gameplay и gamedata\configs\misc: $tool_gameplay$ = false| false| $game_config$| gameplay\ $tool_misc$ = false| false| $game_config$| misc\ Пример добавки приведён в архиве в файле fsgame_ADD.ltx Скрытый текст При настройках горячих клавиш по умолчанию (менять в misc\tool.ltx): "J" - показ диалога Инструмента "K" - показ/скрытие отладочной информации на худе "T" (Тени Чернобыля) или "H" (Чистое Небо, Зов Припяти) - показ/скрытие отладочной информации об НПС вместо подсказки Скрытый текст @monk - за возможность разрабатывать Инструмент на площадке сборника и за бесконечное терпение при тестировании внедрённых в Инструмент и отбракованных механизмов. @*Shoker* - за Повелителя зоны, давшего львиную долю идей и примеров. @Artos - за модуль работы с нет-пакетами и вспомогательные модули. @Charsi - за кейлоггер, русификацию ввода в ТЧ и альтернативный метод записи редактируемых точек в файл. VENOM - за метод показа информации об НПС. OGSM Team - за некоторые другие использованные в Инструменте хитрости. А также всем остальным, чьи работы полностью или частично могли быть использованы в Инструменте, но кого по незнанию или забывчивости не упомянул. Изменено 31 Октября пользователем Kirgudu Версия от 2024-10-31 6 11 21 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 13 Февраля Автор Это популярное сообщение. Поделиться Опубликовано 13 Февраля (изменено) Было бы, конечно, здорово получить обратную связь от тех, кто уже скачал Инструмент и опробовал его в игре. Буду благодарен не только сообщениям о багах (надеюсь, таковых будет минимум), но и предложениям по дальнейшему улучшению, внедрению новых фич. В любом случае бросать Инструмент в обозримом будущем я пока не собираюсь. Есть пара новых идей, озвучивать которые пока рановато, поскольку их реализация вполне может натолкнуться на то, что я не смогу это сделать. Кроме того, не исключено, что рано или поздно появятся версии, адаптированные для ТЧ и ЗП, или же общий универсальный вариант на три игры сразу. Посмотрим. Всё будет зависеть от качества и востребованности того, что уже сейчас сделано для ЧН. Изменено 13 Февраля пользователем Kirgudu 2 5 1 1 Инструмент Ссылка на комментарий
Купер 2 827 Опубликовано 13 Февраля Поделиться Опубликовано 13 Февраля Что-то "местечковое"? Оригинальная ЧН ради чистоты эксперимента. Версия движка - GOG. "J" - показ диалога Инструмента. Первый запуск 5:4 (1280x1024) "Холодная" перезагрузка 16:9 (1280x768) Игровые скриншоты. Функционал: Насколько технически сложно/возможно в условиях оригинальных движков трилогии динамически получить объект по направлению взгляда ГГ? тынц. Суть идеи: получаем текущий объект и динамически выводим на HUD (в лог) необходимые нам параметры этого объекта, например, логику при наличии, игровые параметры (cslid, геометрические координаты и т.п.). Примеры реализаций тынц, тынц (ТЧ, "наследники" X-Ray Extensions). 1 2 Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 14 Февраля Автор Это популярное сообщение. Поделиться Опубликовано 14 Февраля (изменено) То, что на скриншоте, связано скорее всего с тем, что не произошло отключение кнопки раздела, для чистой игры не предназначенного. Исправлю. Что же касается вывода информации об объекте по направлению взгляда, я думал об этом ещё лет 5 назад или больше, но не смог найти 100% работающий способ без использования движковых модификаций. К сожалению, и в приведённых примерах ничего нового, используются добавленные в движке или расширении методы. Update: Ошибка наслоения кнопки отключённого раздела исправлена, архив перезалит. Ссылка та же. По существу изменены файлы tool.script и tool.ltx - можно подменить только их. Изменено 14 Февраля пользователем Kirgudu 2 3 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 20 Февраля Автор Это популярное сообщение. Поделиться Опубликовано 20 Февраля Обновлён модуль "Инвентарь". Добавлена "читерская" возможность зафиксировать состояние любого предмета при установке нужного значения, поставив флажок в поле Фиксировать. Выбранное значение будет заморожено и не изменится в процессе игры вплоть до ближайшей загрузки или до момента, когда флажок Фиксировать будет снят и снова нажата кнопка Установить, либо когда предмет станет недоступен онлайн в результате продажи, перемещения за пределы Alife-радиуса или полного удаления. Фиксировать состояние можно какого угодно количества предметов одновременно. Архив в шапке перезалит, ссылка та же. Изменённые файлы (если Инструмент уже установлен, можно обновить у себя только их): scripts\tool_inventory.script, configs\ui\tool\inventory.xml, configs\ui\tool\inventory_16.xml, configs\text\rus\st_tool.xml 1 3 2 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 25 Февраля Автор Это популярное сообщение. Поделиться Опубликовано 25 Февраля Новая версия Инструмента от 2024-02-25 Скрытый текст Переработан механизм чтения xml и других распакованных файлов оригинальной игры. Убрана необходимость редактировать/дополнять файл fsgame.ltx, теперь в комплект Инструмента будет входить только папка gamedata, fsgame.ltx изменять больше не обязательно. Устаревшие рекомендации удалены из порядка установки Инструмента. В раздел Объекты первым подразделом добавлено создание отрядов с учётом всех важных для спавна условий (популяция смарта, принадлежность смарта группировке, наличие отряда с тем же id и т. д.). Спавн будет происходить в смарт, который находится на той же локации и при этом является ближайшим к указанным для спавна координатам (по умолчанию берутся из текущего положения героя). Исправлено удаление предметов из инвентаря в соотв. разделе. Доработан диалог сохранения кастомной точки телепорта: теперь он не является полупрозрачным, все органы управления под диалогом блокируются, пока он открыт. Исправлена запись в лог при непредвиденном аборте - теперь туда будет попадать больше нужных сведений (раньше они глотались из-за неправильной команды). Попутно исправлен ряд других ошибок, ранее не замеченных либо непроизвольно добавленных в предыдущих версиях Инструмента, проделан ряд оптимизаций и улучшений технического характера. Архив обновлён, ссылка в шапке для скачивания прежняя. Поскольку изменениям подверглось достаточно много файлов, а также из-за добавления в комплект ряда конфигурационных файлов оригинальной игры, рекомендуется пройти несложный процесс установки Инструмента заново, следуя каждому из пунктов. Инструкция в шапке обновлена, кроме того, она приложена внутри архива. Приятного использования! 1 4 2 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 28 Февраля Автор Это популярное сообщение. Поделиться Опубликовано 28 Февраля (изменено) Новая версия Инструмента от 2024-02-28 Переработал создание отрядов в модуле Инструмента "Объекты". Теперь для спавна отряда можно выбрать любой смарт из известных игре, в том числе на другой локации. Ранее безальтернативно использовался смарт, ближайший к указанным координатам. Архив обновлён, ссылка в шапке прежняя. На этом мои задумки иссякли, реализовал всё, что хотел и что было осуществимо без правки движка. Если будут баги - исправлю. Приятного использования. P.S. В ближайшие месяц-два сосредоточусь, насколько будет возможность, на мультиплатформенности Инструмента. Изменено 1 Марта пользователем Kirgudu 1 6 2 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 1 Марта Автор Это популярное сообщение. Поделиться Опубликовано 1 Марта Новая версия Инструмента от 2024-03-01 Архив обновлён, ссылка в шапке прежняя. Это техническая сборка, исправляющая ошибки и кое-что оптимизирующая. Настоятельно рекомендуется к установке взамен любой сборки, взятой после 2024-02-20 и до 2024-02-28 включительно. Главное (но не единственное) изменение в следующем: 25.02.2024 в 18:37, Kirgudu сказал: Переработан механизм чтения xml и других распакованных файлов оригинальной игры. Убрана необходимость редактировать/дополнять файл fsgame.ltx, теперь в комплект Инструмента будет входить только папка gamedata, fsgame.ltx изменять больше не обязательно. Устаревшие рекомендации удалены из порядка установки Инструмента. К сожалению, пришлось отказаться от этого улучшения, поскольку оно приводило к непредвиденно плохим эффектам, а именно либо к сворачиванию окна игры при загрузке и последующему безлоговому вылету, либо к вылету из-за невозможности прочесть отдельные конфиги игры. Соответственно, возвращена необходимость редактировать файл fsgame.ltx для полноценной работы Инструмента. Подробности в шапке (порядок установки) и в readme внутри архива. 3 2 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 4 Марта Автор Это популярное сообщение. Поделиться Опубликовано 4 Марта Рад сообщить, что у меня почти готова первая версия Инструмента для Теней Чернобыля. Пока в усечённом виде: на данный момент перенесены, адаптированы и более-менее проверены 3 раздела из тех, что есть в Инструменте для ЧН. Тем не менее, я уже готов результатом поделиться. Однако прежде чем публиковать Инструмент для ТЧ, хотелось бы определиться с тем, где именно это стоит сделать. Вести одну тему на все версии мне будет, конечно, гораздо удобней, чем отдельные. Но тогда ей не место в Мастерской ЧН, надо будет переместить в какой-то более универсальный раздел форума. Могу, конечно, и 2 разных темы (а в перспективе 3) поддерживать, хоть это и будет посложнее. Товарищи администраторы-модераторы, что скажете? 3 2 Инструмент Ссылка на комментарий
abramcumner 1 145 Опубликовано 4 Марта Поделиться Опубликовано 4 Марта Вроде раздел Школа моддинга/Инструментарий идеально подходит для твоего инструмента 1 3 Ссылка на комментарий
Kirgudu 1 204 Опубликовано 4 Марта Автор Поделиться Опубликовано 4 Марта Действительно, не сообразил. Тогда прошу перенести туда. Шапку, теги и проч. поправлю в конце недели, вместе с выкладкой архива для ТЧ. Добавлено Опричник, 4 Марта Готово. 1 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 8 Марта Автор Это популярное сообщение. Поделиться Опубликовано 8 Марта Представляю Инструмент для STALKER Тени Чернобыля Ссылка на архив: https://disk.yandex.ru/d/7M7GKDv9r8dotw Описание в шапке темы обновлено и теперь включает в себя информацию по обеим версиям Инструмента. По сравнению с версией для Чистого Неба отсутствует раздел Фракции (по понятным причинам - нет войны группировок), а в разделе Объекты убрано создание отрядов. Также некоторому упрощению подверглись разделы Инфо и Переход, в частности из-за невозможности использования в ТЧ пространства имён IO и, соответственно, чтения и записи в файл. Полную информацию см. в readme внутри архива и в шапке темы. Известный баг: Инструмент для ТЧ почти всегда перестаёт правильно работать (реагировать на клавиши), если свернуть игру на рабочий стол. В ряде случаев бага можно избежать, если предварительно открыть главное меню, однако это не всегда помогает. Если из игры никуда не переключаться вплоть до выхода, Инструмент работает стабильно. Причину возникновения ошибки я пока не нашёл, а в версии для ЧН ошибка не повторяется. Приятного использования. Администрацию прошу убрать приставку [ЧН] из ссылки на Инструмент в шапке форума. 5 4 Инструмент Ссылка на комментарий
Marafon6540 757 Опубликовано 8 Марта Поделиться Опубликовано 8 Марта Что говорить? Ждал именно версию для ТЧ. Скачал сразу после создания темы. Но... ЧН. Как вышло, один раз запущено/пройдено и, благополучно, забыто. Файлы просмотрены, изучены (в силу моих познаний) и отложены. При наличии свободного времени попробую потестировать и дать баг-репорт, если получится. 2 часа назад, Kirgudu сказал: Известный баг: Честно говоря, в первый раз про такое слышу. Бывало, что клава переставала работать. Но, наоборот, альт-таб возвращал управление. Надо будет попробовать. Как хотелка. Чистый ТЧ вряд ли кто использует. Это я толсто намекаю про 2 часа назад, Kirgudu сказал: невозможности использования в ТЧ пространства имён IO и, соответственно, чтения и записи в файл. ОГСР или правки движка? В любом случае - очень нужная прога. Особенно для начинающих - вообще супер будет! 1 1 Трилогия Апокалипсис. Упавшая звезда. Честь наемника. v. 1.2 УЗЧН v.1.3 + ОГСРх64 Последний сталкер v. 1.2 ПС v. 1.3 + ОГСРх64 Ссылка на комментарий
Kirgudu 1 204 Опубликовано 9 Марта Автор Поделиться Опубликовано 9 Марта (изменено) 09.03.2024 в 01:16, Marafon6540 сказал: ОГСР или правки движка? Можно попробовать. Есть у меня пунктик: работаю только со скриптами оригинальной игры насколько они это позволяют, в движок, хотя и могу, не лезу, ибо не интересно. Но тут речь идёт только об использовании возможностей при их наличии, и вроде как ничто не мешает задействовать вилки вида if io then ... else ... end для универсальности. Подумаю. Заодно можно теперь сделать и то, о чём писал выше @Купер. 09.03.2024 в 01:16, Marafon6540 сказал: Честно говоря, в первый раз про такое слышу. Есть подозрение, что после сворачивания перестаёт правильно фильтровать консольные команды кейлоггер @Charsi, задействованный в моде для обеспечения работы горячих клавиш. В результате не переключается показ инфы на худе и, главное, не вызывается весь диалог Инструмента, однако сама клавиатура при этом работает. Не сказать, что это критичный баг, но он всё равно стоит у меня в очереди на исправление. Изменено 11 Марта пользователем Murarius 1 1 1 Инструмент Ссылка на комментарий
RayTwitty 492 Опубликовано 11 Марта Поделиться Опубликовано 11 Марта Прикольная вещь. В Anomaly есть подобный функционал, может понравятся какие-то идеи для реализации. Нечто подобное и у меня есть, но оно как и в случае с Anomaly прибито гвоздями к движку https://disk.yandex.ru/i/wV90IqHxeH_H8Q 3 Ссылка на комментарий
Kirgudu 1 204 Опубликовано 11 Марта Автор Поделиться Опубликовано 11 Марта 16 минут назад, RayTwitty сказал: может понравятся какие-то идеи для реализации Не исключено. Пару любопытных вещей я подметил, хотя, конечно, есть и то, что невозможно реализовать без движковых правок. Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 17 Марта Автор Это популярное сообщение. Поделиться Опубликовано 17 Марта (изменено) Новая версия Инструмента для Теней Чернобыля от 2024-03-17 Теперь с поддержкой OGSR x64 Архив обновлён, ссылка в шапке прежняя. Основные изменения: - Инструмент адаптирован для использования как в оригинальных Тенях Чернобыля, так и с движком OGSR x64. Комплект один и тот же, необходимые переключения возможностей делаются автоматически. - Для OGSR-подобных движков ТЧ с поддержкой IO возвращён механизм чтения xml и других распакованных файлов оригинальной игры. - Для OGSR-подобных движков ТЧ с вырезанным мультиплеером способ запуска функций Инструмента посредством кейлоггера (прямо из игры) заменён на запуск по тем же горячим клавишам из главного меню. Подробности в шапке ("порядок установки" и "использование в игре") и в readme внутри архива. Изменено 18 Марта пользователем Kirgudu 3 4 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 23 Марта Автор Это популярное сообщение. Поделиться Опубликовано 23 Марта Новая сборка Инструмента для ТЧ/OGSR и ЧН от 2024-03-23 Основное изменение: в OGSR (как до этого в ТЧ и ЧН) реализован моментальный запуск функций Инструмента при нажатии горячих клавиш без необходимости выхода в главное меню. Спасибо @Charsi, который заинтересовался вопросом и доработал свой кейлоггер так, чтобы он не зависел на все сто от вырезанной мультиплеерной консольной команды. Кроме того, во всех версиях Инструмента проведён ряд менее значимых оптимизаций и исправлений. Ссылки на скачивание те же, инструкция по установке обновлена в шапке и в архивах. 5 2 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 29 Марта Автор Это популярное сообщение. Поделиться Опубликовано 29 Марта (изменено) Новая сборка Инструмента для ТЧ/OGSR и ЧН от 2024-03-29 Скрытый текст 1. В некоторых списках (где это целесообразно) реализован двойной клик мышкой. Теперь можно будет при двойном нажатии на пункт списка, без использования отдельной кнопки: активировать и отменять инфопорцию; запускать, переключать на другую и останавливать музыку; запускать видео; устанавливать погоду; осуществлять переход на фиксированные точки, прописанные в конфиге (раздел Переход, кроме подраздела Телепорт). подставлять координаты редактируемых точек в соотв. поля (раздел Переход, подраздел Телепорт). 2. Реализована возможность сохранять последний активный раздел и восстанавливать его при следующем открытии диалога (см. описание). 3. Показ инфы об НПС вместо подсказки будет делаться только для тех НПС, которые находятся далее 3 метров от героя. Ранее подсказка заменялась вообще для всех НПС в игре, что, очевидно, было ресурсоёмко. 4. После окончания проигрывания видеоролика снова будет открываться Инструмент с автовыбором этого раздела и ролика. Кроме того, теперь будет единая ссылка на хранилище (см. шапку темы). Внутри будут лежать архивы с конструктором для произвольных модов, а в подпапке Ready - готовые, полностью собранные комплекты для разных базовых версий игры. Изменено 29 Марта пользователем Kirgudu 2 3 Инструмент Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 204 Опубликовано 31 Марта Автор Это популярное сообщение. Поделиться Опубликовано 31 Марта (изменено) По просьбе игроков добавил готовый комплект Инструмента для ОП 2.2 (патч 2023-03-15) - см. папку Development в общем хранилище. Эту же папку буду использовать для размещения других комплектов Инструмента в процессе их разработки. Готовность комплекта для ОП пока не полная, парочка не самых значимых фич не работает, наблюдаются огрехи в визуальном оформлении (отсутствуют использованные в Инструменте текстуры или их описания), однако процентов на 90-95 Инструмент работоспособен уже сейчас. В будущем планирую добить его до полноценного состояния. Разные списки в конфигах Инструмента (инфопорции, секции спавна, погода и т. д.) тоже пока не актуализированы. Если кто-то из апологетов ОП может и хочет помочь с их наполнением - буду рад. Update: комплект для ОП 2.2 доведён до полностью рабочего состояния. Визуальные недочёты исправлены, в конфигурационных файлах списки спавна, инфопорций, погоды, музыки и видео заполнены из файлов мода. Дальнейшие уточнения могут делаться игроками в ОП самостоятельно. Архив перемещён в папку Ready. Изменено 1 Апреля пользователем Kirgudu 1 1 4 Инструмент Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти