В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
valeras_98, на всякий случай,в all.spawn,e в кастом_дате добавь НПС : [smart_terrains] none = true Профили,esc_bandit_attack, само собой есть. А если оставить одного? И что это за флаг? 0xffffffbb У меня,везде,у сталкеров:object_flags = 0xffffffbf
Помогите товарищи! На ТЧ 1.0004 у меня в один момент прекратили выбираться диалоги с НПС. Курсором могу наводить на любой, но выбрать не могу, просто не нажимается как-будто. Что делать? Голову ломаю, всё посмотрел, вроде бы хорошо с файлами.
как то так, или в КАЖДУЮ логическую схему combat_ignore_cond. з.ы. НПС с ГГ разговаривать то не будет, т.к. ГГ враг, а у тебя стоит use = {=actor_enemy} false, true
Arist, нет, я ему делал квест , где при условии появляются 6 нпс бандитов у вагончика. Я никогда не сталкивался с таким вылетом, они заняли смарт террайн , но это не должно привести к вылетам, касающихся гулагов.
LaRento, вот же часть лога: attempt to index field 'gulag' (a nil value) . Может ранг мастера, а на Кордоне их нет.Чтоб не гадать на кофейной гуще, используй скрипт Artos'a.Временно,для получения суперполного лога, в _g.script закоментируй:
--function printf(fmt,...) -- log(string.format(fmt,...)) --end и
-- Крешнуть игру (после вывода сообщения об ошибке в лог) -- function abort(fmt, ...) -- local reason = string.format(fmt, ...) -- assert("ERROR: " .. reason) -- printf("ERROR: " .. reason) -- printf("%s") --end и добавь скрипт мастера(у меня он после строк --function printf(fmt,...)
Код
--/------------------------------------------------------------------ --/ Functions for Print-Log by Artos --/------------------------------------------------------------------ --/ конвертер вывода строки лога function fFormatToString(fmt,...) --/ локальная функция: перевод аргумента в стринг local to_str = function(val,typ) if typ == 'string' then return val --/> elseif typ == 'number' then return tostring(val) --/> elseif typ == 'boolean' then return tostring(val) --/> elseif typ == 'table' or typ == 'userdata' then if tonumber(val.x) and tonumber(val.y) and tonumber(val.z) then if typ == 'table' then return string.format('tbl{x=%.3f:y=%.3f:z=%.3f}',val.x,val.y,val.z) --/> end return string.format('vec(x=%.3f:y=%.3f:z=%.3f)',val.x,val.y,val.z) --/> end end return "<"..typ..">" --/> end --/ основное тело функции: парсинг исходной строки if type(fmt) == 'string' then if fmt:match('%\%[s|d]') then --/ есть патерн(ы) if next({...}) then --/ есть аргумент(ы)? local arg,val,typ,i = {...},nil,nil,nil for i=1,#arg do val = arg[i] --/ значение текущего аргумента typ = type(val) --/ тип текущего аргумента if typ == 'string' then fmt = fmt:gsub('%\%s',val,1) elseif typ == 'number' then if fmt:match('%\%d') then fmt = fmt:gsub('%\%d',val,1) else fmt = fmt:gsub('%\%s',val,1) end else fmt = fmt:gsub('%\%s',to_str(val,typ),1) end end end fmt = fmt:gsub('%\%[s|d]',"<NOT_arg!>") --/ заглушка от отсутствия аргументов end else fmt = to_str(fmt,type(fmt)) end --/ с заменой обычных пробелов (sym_space='\032') на печатные ('\160') return fmt:gsub('%s','\160') --/> end --/------------------------------------------------------------------ --/ printf (функция вывода информации в лог игры) --/------------------------------------------------------------------ local console = get_console()
function printf(fmt, ...) if not console then console = get_console() end console:execute("*INFO:"..string.sub(fFormatToString(fmt,...),1,250)) --/ +префикс строки лога (STCS|SCoP: "load ~:") console:execute("flush") --/ команда записи буфера лога в файл (в игре можно закомментиировать!) end --/------------------------------------------------------------------ --/ Abort (функция принудительного прерывания игры) --/------------------------------------------------------------------ function abort(fmt, ...) printf("ВНИМАНИЕ! Ошибка! Информация по ошибке в строках ниже !") printf(string.gsub("ERROR!: "..string.sub(fFormatToString(fmt,...),1,250),'%s','\160')) assert(false,"ВНИМАНИЕ! Игра прервана! Информация в строках выше.") --/ прерываем с выводом строки на консоль exit() --/> прерываем игру при фатальных ошибках end --/ ----------------------------------------------------------------------