В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга.
Не флудить
Предварительно просматривайте раздел. Ответ на ваш вопрос может быть там.
В своем вопросе указывайте платформу моддинга - Тень Чернобыля, Чистое небо или Зов Припяти.
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Конфиг компа. 5. Лог вылета и последние 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 - содержит секции конфигов уникального оружия и костюмов.
У кого есть желание, создать FAQ по основным вопросам моддинга - обращаемся в ЛС.
Еще один сорри сложный вопрос , касающийся разработки модели поведения Я так понимаю что при активизации модели поведения (из гулага или просто кастомдаты), которые были зарегистрированны в скрипте modules,они активизируются/ деактивизируются из xr_logic и функций enable_genrics_chemes/disable_genrics_chemes. А параметры модели поведения определяются, создаваемыми евулаторами и action (работами) в скрипте модели поведения в функции add_to_binder. А то как движок определяет по секциям в кастомдате какую включить логику? (это загадка ну и не важно), главное то что он при индентификации модели поведения, оперирует зарегистрированными моделями в mudules и я предполагаю, что он просто сравнивает название активной секции содержащую параметры схемы с теми названиями, которые зарегистрированны, ну и потом вызывает метод add_to_binde, модуля с нужной логикой.
Деактивизация/ активизация схемы происходит при необходимости движка сменить логику?
Еще один сорри сложный вопрос , касающийся разработки модели поведения Я так понимаю что при активизации модели поведения (из гулага или просто кастомдаты), которые были зарегистрированны в скрипте modules,они активизируются/ деактивизируются из xr_logic и функций enable_genrics_chemes/disable_genrics_chemes. А параметры модели поведения определяются, создаваемыми евулаторами и action (работами) в скрипте модели поведения в функции add_to_binder. А то как движок определяет по секциям в кастомдате какую включить логику? (это загадка ну и не важно), главное то что он при индентификации модели поведения, оперирует зарегистрированными моделями в mudules и я предполагаю, что он просто сравнивает название активной секции содержащую параметры схемы с теми названиями, которые зарегистрированны, ну и потом вызывает метод add_to_binde, модуля с нужной логикой.
Деактивизация/ активизация схемы происходит при необходимости движка сменить логику?
Еше по части эвулатора, получается, что он имеет id, его цель вычислять условия и возвращать true/false в функции evaluate, так же вызывает свой метод execute если evaluate возвращает true. Но в логике кемпера и по мойму в других тоже execute не используется. В кемпере вызывается метод execute объекта action, тогда когда эвулатор возвращает нужное значение, это может быть как true так false. По части action, в нем выходит следующее( я предполагаю): в word_property(id,true/false) сравнивается последнее значение, которое вернул евулатор c соответсвующим id, с значением, которое идет следующим аргументом word_property, в результате имеем true или false Ну а у action есть, что то что определяет его состояние - ожидания выполнения условия (пред условия добавляются методом add_precondition), или если все условия выполнены он будет вызывать свой метод execute если у него есть такое указание, которое можно добавить через метод add_effect - это тоже как пред условие но оно если два его аргумента равны и выполнены предусловия, то он будет вызывать execute, пока аргументы не станут разными или пока не станет ложным предусловие.
скажите плиз в чем я прав в чем нет
Добавлено (29.08.2013, 16:40) --------------------------------------------- и из всего выше сказанного, пришел к выводу, что свойства lua так и в сталкере реализованы в виде эвулаторов. Те проверки, которые есть для кемпера (предусолвия для action) это обращение к свойствам, к числу таких свойств относятся живой ли НПС, есть ли опасности и т.д
Добавлено (29.08.2013, 17:09) --------------------------------------------- Ну и вопрос напрямую касающийся моддинга, как узнать позицию waipointa если известно его имя
Сообщение отредактировал wanes101 - Четверг, 29.08.2013, 16:41
Не пойму эту функцию из модуля utils ослать stalker в заданную точку patrol_path(path_point) function stalker_go_to_waypoint(stalker, patrol_path, path_point)
function Startbleeding local ble2 = false if db.actor:get_bleeding() > 0.4 and ble2 ~= true then level.add_pp_effector("твой.ppe",2015,true) ble2 = true end if db.actor:get_bleeding() < 0.2 and ble2 ~= false then level.remove_pp_effector(2015) ble2 = false end
Сообщение отредактировал cxcxShaman - Четверг, 29.08.2013, 18:21
Ребят я кажется разобрался С тем как работает логика, как прописать свою логику. Но перед тем как её писать нужно уметь управлять НПс, допустим: как сделать чтобы через скрипт нпс шел по waipoint, или как заставить НПС пойти убить другого нпс, или как заставить проиграть анимацию?
wanes101, Просто пересмотри статьи по логике на инсайде, там и про remark увидишь, который отыграет тебе любую анимацию. Ты же вроде уже прочитал там всё, зачем тогда спрашиваешь? ?
Сообщение отредактировал ArturVilla - Четверг, 29.08.2013, 19:08
wanes101, Просто пересмотри статьи по логике на инсайде, там и про remark увидишь, который отыграет тебе любую анимацию. Ты же вроде уже прочитал там всё, зачем тогда спрашиваешь?
Я через скрипт хочу сделать для своей логики. хотя думаю придется копаться в прописанной логики (remark welk и тд
как узнать позицию waipointa если известно его имя
Открываем файлы way_название_локации.ltx из распакованного all.spawn. Там нажимаем Ctrl+F и ищем тегом (названием вейпоинта).
Цитата (wanes101)
что означают patrol_path path_point
Думаю, что название патрульного пути и номер вейпоинта.
Цитата (wanes101)
как сделать чтобы через скрипт нпс шел по waipoint
Подробней, пожалуйста. Это как?
Цитата (wanes101)
или как заставить НПС пойти убить другого нпс, или как заставить проиграть анимацию?
Можно поссорить двух НПС функциями из xr_effects.script и game_relations.script, можно поставить одному анику стрельбы и направить на другого, если же они из враждующих фракций, то и так стреляться будут. Анимку квестовую можно проиграть через анимпоинт. Создать смарт кавер (анимпоинт) в алл.спавн:
Код
[765] ; cse_abstract properties section_name = smart_cover name = test_cover position = 183.463,-0.000123,-327.810 direction = 0.145,0,-0.989
Задать анимацию обычную (state_lib.script, state_mgr_animation_list.script, state_mgr_animstate.script) можно и через remark, как сказал ArturVilla, но ни в коем случае не ставь ремарк в активную схему. Заспвань с валкером, а там переход на ремарк. В ремарке анимка задается так:
Код
anim = название_анимации
Кстати, через патрульный путь тоже можно задать анимку, только из раздела "Стоячие состояния" и "Сидячие состояния" в state_lib.script. Тогда в параметр вейпоинта ставиться:
в ЗП на карте отмечается дислокации типа Аномалия Соснодуб, ВНЗ круг. Как сделать это и ТЧ
заспавни рестриктор, задай ему стори-ид, а потом селай метку на карте ссылаясь на этот рестриктор по стори-ид. Думаю как то так...
Добавлено (29.08.2013, 20:35) --------------------------------------------- у меня такой вопрос, можно ли сделать такое: Идет нпс, где то по середине пути говорит какую нибудь фразу и продолжает идти. Нужно чтобы эту фразу он произносил не останавливаясь.