В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга
• Не флудить • Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там • В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Лог вылета и последние 25 строк (помещать под спойлер).
Структура папок и файлов в корневом каталоге игры:
...\S.T.A.L.K.E.R\gamedata\anims – папка содержит исполнительные файлы эффектов (например от ПНВ).
...\S.T.A.L.K.E.R\gamedata\config – папка содержит основные конфигурационные файлы (т. е. большинство настроек игры)
...\S.T.A.L.K.E.R\gamedata\meshes – содержит модели игровых предметов и персонажей...
...\S.T.A.L.K.E.R\gamedata\scripts – папка со скриптами (рабочими файлами содержащими в себе наборы функций) – основная папка, отвечающая за ответные действия игры и действия производимых игроком в игре.
...\S.T.A.L.K.E.R\gamedata\shaders – папка содержит в себе конфигурационные файлы шейдеров.
...\S.T.A.L.K.E.R\gamedata\sounds – здесь находятся все звуки игры (разложены по своим каталогам и папкам)
...\S.T.A.L.K.E.R\gamedata\spawns – содержит файл спавна – очень важный файл – не трогать без нужды!!!
...\S.T.A.L.K.E.R\gamedata\textures – содержит разложенные по каталогам и папкам текстуры используемые в игре.
Теперь разберем папки в каталоге «config»
...\S.T.A.L.K.E.R\gamedata\config\creatures - содержит массу конфигурационных файлов, в основном отвечающих за взаимодействие Главного героя игры (в дальнейшем ГГ) и прочего окружения в игре и ТТХ самого ГГ.
...\S.T.A.L.K.E.R\gamedata\config\gameplay – содержит конфиг. файлы персонажей игры (НПС) отвечающие за внешний вид, статус, снаряжение. Файлы: character_desc_ххх (где ххх – название локации) и character_desc_general (отвечает за зомбированного персонажа). Также содержит файлы диалогов и профилей НПС.
…\S.T.A.L.K.E.R\gamedata\config\misc – конфиг.файлы торговцев (папки с именами торговцев), артефактов, брони, квестовых предметов, уникальных предметов, файл отвечающий за награды за автозадания, файл эффектов (алкоголизма, ранения, ПНВ и прочих)...
…\S.T.A.L.K.E.R\gamedata\config\mp – среди прочих содержит важный файл mp_ranks – отвечающий за выпадение оружия и патронов из рук ГГ и НПС – без прописывания добавляемого в игру оружия в этот файл при выпадении нового оружия из рук ГГ\НПС будут следовать вылеты.
…\S.T.A.L.K.E.R\gamedata\config\text\rus – содержит файлы описаний всего и вся находящегося в игре (брони, артефактов, оружия, предметов и прочего).
…\S.T.A.L.K.E.R\gamedata\config\weapons – содержит конфиг.файлы оружия и боеприпасов используемых в игре.
…\S.T.A.L.K.E.R\gamedata\config\weathers – содержит конфиг.файлы настройки погоды на локациях.
Теперь немного подробнее о файлах.
...\S.T.A.L.K.E.R\gamedata\config\misc:
Папка shop_ххх (ххх – имя торговца) – содержит конфиг.файлы ассортимента торговца.
outfits – содержит секции конфигов костюмов.
artefacts - содержит секции конфигов артефактов.
items - содержит секции конфигов предметов.
monster_items - содержит секции конфигов частей монстров
postprocess - содержит секции конфигов пост. процессов (например: ПНВ).
quest_items - содержит секции конфигов квестовых предметов.
task_manager - содержит секции наград за автоквесты.
unique_items - содержит секции конфигов уникального оружия и костюмов.
Сталкер зп. Есть ли нормальные уроки по привязке костей в milkshape 3d? Несколько месяцев назад забросил эту тему, сейчас решил опять вернуться. Проблема вот в чем. Не могу создавать или перепривязывать уже существующие сталкерские кости к моделям. Когда я выбираю кость, там показывается небольшая координатная сетка, в шарике кости. Так вот, когда я её выбираю, нажимаю move, чтобы передвинуть, и только начинаю сдвигать, как эта координатная сетка меняется, и совпадает с направлением общей. В милке другая координатная сетка, а в импортнутых меделях, к примеру бтр, повёрнутая, как в actor editor, 3d max, да и во всех нормальных редакторах. И потом, при экспорте, координаты естественно другие, и колёса поворачиваются не влево вправо, а вверх вниз. Но все, у кого я спрашивал, кто работает в милке, утверждают, что всё у них нормально работает. Прикладываю даже видео. Клац на ютуб
Сообщение отредактировал Major - Воскресенье, 23.04.2017, 10:24
Сталкер ЗП. GUI/ Необходимо создать область, в которую я буду попеременно в хаотичном порядке добавлять различные надписи, и эти надписи должны складываться колонкой сверху-вниз вне зависимости от того, в каком порядке они были добавлены. Например, есть три надписи, каждая из них имеет конкретное условие появление на gui-окне, но они добавляется уже по ранее известным координатам, поэтому получи я условие на появление 3 надписи, она появится в самом низу где-нибудь, а надо, чтобы она оказалась первая в списке наверху; следующая надпись должна уже следовать за ней ниже, и тд. Есть ли возможность это реализовать, и как?
Так вот, когда я её выбираю, нажимаю move, чтобы передвинуть, и только начинаю сдвигать, как эта координатная сетка меняется, и совпадает с направлением общей.
Двигать скелет НЕЛЬЗЯ. Иначе нужно переделывать ВСЕ анимации сделанные для него, поскольку исходные координаты и ориентация суставов в скелете влияют на любую анимацию.
Сообщение отредактировал denis2000 - Воскресенье, 23.04.2017, 11:18
Вариант 1: использовать для отображения надписей объект типа CUIListBox. Схема действий может быть такой: при появлении новой надписи чистим весь лист; цикл в нужном порядке (согласно условиям) заполняет лист всеми необходимыми надписями;
Вариант 2: если для надписей используются статичные объекты (CUIStatic), то можно воспользоваться методом SetWndPos. Он позволяет изменить координаты положения. Тип аргумента метода - двумерный вектор координат. Задача сводится к тому, чтобы составить алгоритм вычисления координаты y (если хотим расположить всё в столбик, то x остаётся постоянным) в зависимости от неких условий, по которым и должна происходить расстановка.
Suhar_, denis2000, про list_box я тоже слышал, но самостоятельно я не смог его реализовать, поэтому буду крайне благодарен, если вы продемонстрируйте рабочую функцию.
И не получится. В биндере анимационных объектов не предусмотрена возможность задать логику объекту. Эту возможность нужно добавить самому ( исправлять биндер bind_door_labx8.script ) Ну, или ставь кнопку на включение и выключение и используй её логику.
makdm, спасибо! И еще такой вопрос: можно ли как-то установить для заданного объекта заданную анимацию? И можно ли получить сигнал по завершению анимации у объекта?
Добавлено (23.04.2017, 14:34) --------------------------------------------- Поставил физик объект, из логики которого запускаю анимации - но при вызове anim_obj_forward анимация не проигрывается далее, только слышен звук как в лабе х8 когда двери открывались.
Добрый день. Чтобы проще было спавнить, декомпилировал все сингл уровни ТЧ в формат СДК, создал каждому уровню кросс-таблицу (каковой не оказалось изначально), затем в СДК убрал ГГ с кордона и поместил на свалку. Свалку полностью очистил - оставил нетронутыми только старые графпоинты и переходы на уровни. Скомпилил спавн, запустил игру - все работало. Но... Как только подхожу к переходу на другой уровень - безлоговый вылет. Только переход в бар работает исправно, ну и из бара на остальные локации. Подумал, может какой косяк на тех уровнях, куда не переходит? Перекинул ГГ по очереди на каждый такой уровень - игра запускается, а вот при переходе на свалку - опять безлоговый вылет. В чём дело, может знает кто?
-- Служебный класс элемента в списке class "list_box_source" (CUIListBoxItem) function list_box_source:__init(caption) super(caption) -- Переменная, содержащая текст элемента self.title = self:GetTextItem() self.title:SetEllipsis(true) -- Задаём элементу нужный текст self.title:SetText(game.translate_string(caption)) end
-- Класс вашего окна class "custom_window" (CUIScriptWnd) -- Функция инициализации окна function custom_window:__init() super() -- Инициализация xml-конфига local xml = CScriptXmlInit() xml:ParseFile("[[адрес файла, содержащего параметры GUI элементов]].xml") -- Инициализация листа из конфига self.data_list = xml:InitListBox("[[имя тэга в указанном файле, содержащего параметры листа]]", self) end -- Функция для добавления нового элемента в лист function custom_window:on_add_item() -- Очищаем лист self.data_list:Clear() -- Далее заполняем лист нужными надписями нужным способом; например - циклом local caption = "" for i= 1, n do caption = "[[текст вашей надписи]]" -- В лист можно занести объект класса CUIListBoxItem и никакой больше self.data_list:AddExistingItem(list_box_source(caption)) end end
Сообщение отредактировал Suhar_ - Воскресенье, 23.04.2017, 16:29