В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
if strn_id ~= 65535 then local strn = sim:object( strn_id ) local need_setup_logic = strn.gulag.Object_begin_job[obj:id()] and not loaded local need_setup_restrictors = strn.gulag.Object_begin_job[obj:id()]
ColR_iT, через СДК нашел долговца на заставе, потом в \gamedata\config\misc открыл файл gulag_garbage, нашел вот эту логику и взял из неё секцию meet, которая, как я думаю, и отвечает за то, что мне надо. Вот то, что я примерно понял из всего этого:
Quote
[logic@gar_dolg_blokpost_zoneguard2] active = walker@gar_dolg_blokpost_zoneguard2 --активная логика
[meet@zoneguard2]--в этой схеме, собственно, ничего не понял. meet_state = 7|{-gar_free_pass} threat@gar_dolg_blokpost, guard@talk_hello meet_state_wpn = 7|{-gar_free_pass} threat@gar_dolg_blokpost, guard@talk_hello victim = 7|actor victim_wpn = 7|actor use = true use_wpn = true zone = gar_dolg_blokpost_zone_warn|{-gar_free_pass}threat@{-gar_free_pass}gar_dolg_blokpost|gar_dolg_blokpost_zone_guard|{-gar_free_pass}true@{-gar _free_pass}gar_dolg_blokpost meet_dialog = gar_dolg_blokpost
Т.к. на психах снёс оба рестриктора и самого сталкера, то получившуюся логику показать не могу... Кстати, может это не сработало ещё из-за того, что нужно какой-то тип рестриктора надо указывать?
Сообщение отредактировал Uyman358 - Суббота, 27.10.2012, 14:45
dinsekt, как я и говорил, игра не может установить какому-то НПС логику, вот и происходит вылет. Как исправить сказать сложно, если вообще возможно... Uyman358, неясно, почему ты не разобрался с параметрами секции встречи, ведь на Wiki есть нормальная статья по логике, там есть описание этих параметров. Ну да ладно... Чтобы наставляли оружие, нужно действительно использовать секцию meet. Конкретно тебя должны интересовать два параметра: meet_state и meet_state_wpn, первый определяет, что произойдёт если актор подойдёт на указанное расстояние без оружия, второе с оружием в руках. Т.е. тебе нужно сделать так:
"Условие" - это собственно условие (простой пример наличие/отсутствие инфопорции), которое будет свидетельствовать, что на ГГ нужно наставлять оружие. "threat" - это анимация наставления оружия. Если что-то не до конца ясно, вот ссылка на статью: >>Click Me<<
Сообщение отредактировал ColR_iT - Суббота, 27.10.2012, 21:33
Опять скрипты( При активации одного инфопоршня, надо вызвать ещё 2, но где и как проверять функцию(ни в квесте, ни в других функциях прописывать не надо) я не понимаю. Пробовал вставлять в bind_stalker.script - update(delta), но кроме того, что актор = nil, ничего не получил.
Quote
function razborki(task, info) if (db.actor:has_info("dar_ushel")) then return db.actor:give_info_portion("spawn_group_som") and return db.actor:give_info_portion("spawn_dolg_group") end return false end
Uyman358, как все любят все усложнять... Если ГГ выдается 1 инфопоршень, так почему не дать ему еще 2 других сразу-же? Функция в бинде будет осуществлять такой-же результат. А по бинду - проверяйте сначала наличие ГГ (db.actor ~= nil)
BOVER, actor, во всех 3-ех играх серии не был NPC => Не мог управляться какими-либо схемами логики
Добавлено (28.10.2012, 16:02) --------------------------------------------- СЕРА, игра не нашла секцию "af_rusty_sea-urchin", используйте Google для поиска подобных вылетов (Ваш вылет случается очень-очень часто), и используйте переводчики, они тоже часто дают ответ на вопрос
Добавлял новые анимки... Вроде они таки работают но после выброса, если подойти до НПС который использует эту анимку, то получаем от такой вылет:
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ... Ïðèïÿòè\gamedata\scripts\state_mgr_animation.script:248: attempt to index local 'state' (a nil value)
я бы с радостью это сделал, но т.к. этот Единственный и неповторимый поршень выдается через логику сталкера, а чтобы выдавали через логику сразу несколько поршней я не выдел и не слышал. А вот если вписывать в поршень функцию, то происходит вылет без лога.