В данной теме вы можете задавать любые вопросы касательно 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 - содержит секции конфигов уникального оружия и костюмов.
Нужно ставить на месте лестницы рестриктор и при попадании в него ГГ проигрывать скриптом нужный звук.
Ясно. Без рестриктора никак значит... А как его поставить? В модах многим действиям и вещам придают озвучку, там тоже рестрикторы ставят?
Цитатаdenis2000 ()
Если имеете ввиду что-то кроме стандартного звука шагов по лестнице, то готового решения естественно нет.
Имею в виду, вот например, на Агропроме есть вышка смотровая высоченная недалеко от тоннеля ж/д и если на неё забираться, то звука вообще нет никакого.
как добавить в ПДА (Зов Припяти) новые пункты меню
Я понимаю, что вы фанат готовых решений которые нужно просто вставить. Но таких решений для вас не будет. Поэтому объясняю на пальцах: 1. Ищите готовый файл с правкой движка - выдача инфопорции с именем нажатого раздела в ПДА. 2. Вносите изменения в вид ПДА добавив две кнопки разделов в файлы pda.xml и pda_16.xml 3. В биндере ГГ bind_stalker.script в функции обработки колбека на получения порций actor_binder:info_callback ловите нажатие кнопки в ПДА, закрываете движковый ПДА и скриптами рисуете свой с необходимой начинкой.
Цитатаkiller_mutants ()
В модах многим действиям и вещам придают озвучку, там тоже рестрикторы ставят?
По ситуации, где движек знает, что звук нужно проиграть, где скрипты или рестрикторы.
Цитатаkiller_mutants ()
Имею в виду, вот например, на Агропроме есть вышка смотровая высоченная недалеко от тоннеля ж/д и если на неё забираться, то звука вообще нет никакого.
Ну так с этого нужно начинать было, товарищ разведчик. Вернемся к основам. В файле gamemtl.xr определены пары материалов и звуки их взаимодействия, в частности например у пары materials/asphalt и creatures/actor залдан параметр Step Sounds который и определяет звук который проигрывает движек при перемещении ГГ по этому самому асфальту (material\actor\step\n_default_1). Теперь значит вам нужно определить что за материал используется в этом месте локации и при помощи SDK ShaderEditor проверить и правильно настроить этот параметр. mmihaill, Пробуйте:
Код
function remove_item_num(actor, npc, p) if (p and p[1] and p[2]) == nil then abort("Wrong parameters in function 'remove_item_num'!!!") end local item = p[1] local num = tonumber(p[2]) for i = 1,num do local obj = db.actor:object(item) if obj ~= nil then alife():release(alife():object(obj:id()), true) news_manager.relocate_item(db.actor, "out", item) end end end
Сообщение отредактировал denis2000 - Четверг, 16.02.2017, 19:14
Нужно ставить на месте лестницы рестриктор и при попадании в него ГГ проигрывать скриптом нужный звук.
Не самое мудрое решение. Рестр поставим, ГГ подойдёт к лестнице и встанет.... подумать на секунд 10, но КАК определить что он по ней лезет наверх или спускается ? Никак. А звук шагов между тем, будет проигрываться. Не, ну может и можно отследить местоположение по координатам, но это уже такой винигрет получится, что лучше и не пытаться это сделать, ради какой-то драной ржавой лесенки. Так что никак нельзя поставить звук на лесенку.
Цитатаkiller_mutants ()
В модах многим действиям и вещам придают озвучку, там тоже рестрикторы ставят?
Да. Везде ставят рестры. Некоторые отыгрывают звук одноразово, некоторые рандомный звук, некоторые постоянно пиликают. Иначе никак.
Не самое мудрое решение... А звук шагов между тем, будет проигрываться.
А к то вам, на минуточку, сказал, что проигрываться должен звук шагов!? В первоначальной постановке вопроса никаких шагов не было! Я вообще звук сирены предполагал, а вы что подумали?
Цитата_S_k_i_F_ ()
а как их определить?
Через промежуточные переменные определяйте. Напрямую не передать.
Сообщение отредактировал denis2000 - Четверг, 16.02.2017, 19:59
Прям последние два дня сплошные проблемы с SDK... В SDK 0.4 отображаются все нужyые элементы. File - save, Compile - make game... Потом собираю aiwrapper геймграф и спавн. При заходе в игру половину объектов пропадает, вылетов нет. Объясните что делать? Может компилятор другой? Использую готовую локацию...
mmihaill, Пробуйте: Код function remove_item_num(actor, npc, p) if (p and p[1] and p[2]) == nil then abort("Wrong parameters in function 'remove_item_num'!!!") end local item = p[1] local num = tonumber(p[2]) for i = 1,num do local obj = db.actor:object(item) if obj ~= nil then alife():release(alife():object(obj:id()), true) news_manager.relocate_item(db.actor, "out", item) end end end
function remove_item_num(actor, npc, p) local item = p[1] local num = tonumber(p[2]) local function remove_object_item(obj) if (obj:section() == item) and (num > 0) then alife():release(alife():object(obj:id()), true) num = num - 1 news_manager.relocate_item(db.actor, "out", item) end end db.actor:inventory_for_each(remove_object_item) end
В файле gamemtl.xr определены пары материалов и звуки их взаимодействия, в частности например у пары materials/asphalt и creatures/actor залдан параметр Step Sounds который и определяет звук который проигрывает движек при перемещении ГГ по этому самому асфальту (material\actor\step\n_default_1).
Понятно, большое спасибо!
ЦитатаLukaMudishchev ()
А звук шагов между тем, будет проигрываться. Не, ну может и можно отследить местоположение по координатам, но это уже такой винигрет получится, что лучше и не пытаться это сделать, ради какой-то драной ржавой лесенки. Так что никак нельзя поставить звук на лесенку.
Ясно. Да, вообще-то интересовал именно звук шагов. Выходит, уж очень это сложно. Но информация, которую в ответах узнал, для меня, как минимум, интересна и полезна. Так что благодарю! =====================
Простой вопрос: я не понимаю, откуда документ af_params берёт текстуры? В нём написано, допустим, что используется для одного из значков свойств артефакта ui_inv_icon_explosion_immunity, но такой текстуры в папке ui нет. Я всю игру распаковал, но не могу её найти. Тут какой-то подвох? PS: всё это разбираю в моде ОП-2, хотя тоже самое наблюдал и в прочих проектах по Солянке.
Сообщение отредактировал killer_mutants - Пятница, 17.02.2017, 15:47
killer_mutants, это элемент, который берется из единого текстурного файла ui_hud.dds, в ui_hud.xml регистрируется идентификатор этого элемента, и ему задаются соответствующие значения: координаты, ширина, высота и т.д.
Добрый день. Такой вот вопрос: какие параметры отвечают за респавн в ЗП? Например: как сделать так чтобы НПС и мутанты респавнились один раз за два дня игрового времени.
как сделать так чтобы НПС и мутанты респавнились один раз за два дня игрового времени.
А куда они (сквады) будут деваться после этого? Например, gamedata\configs\scripts\zaton\smart\zat_b28 - здесь происходит респавн снорков после получения инфопорции. Насчёт просчёта времени. Это дело уже другое, ведь нужно как-то связать с условием респавна. Можно пустить таймеры с выдачей и удалением инфопорций. В общем, дело надо просчитывать. А вообще лучше использовать времена суток: =is_day или =zat_b7_is_night - уже готовые функции, только воткнуть их нужно вместо той инфопорции.
function smart_terrain_on_update(smart) check_traders(smart) end function target_capture(smart, squad) printf("squad =%s ", squad:name()) printf("smart =%s ", smart:name()) end
Файл simulation_squad
Код
function squad_on_update(squad) simulation_smart.target_capture(smart, squad) end
Проблема в том , что squad приходит в функцию нормально, а smart как nil.(сама функция в файле simulation_smart) Почему smart получается nil?
Сообщение отредактировал xr_Sanya - Пятница, 17.02.2017, 18:42