В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
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 --/ ----------------------------------------------------------------------
создай нового нпс, создай новую групировку, обзови ее так же, но в схеме сделай дружественную, к тебе и к той группировке.
Не вздумай. Это ЗОВ ПРИПЯТИ!!! Спавни всех НПС через сквады! Потом делай, что хошь. Можно регулировать отношение к Актору в скваде,как я писал вчера: relationship = {+условие} friend, neutral Можно в логике рестриктора: [logic] active = sr_idle [sr_idle] on_info = {+условие} sr_idle@nil %=set_squad_enemy_to_actor(название сквада) % [sr_idle@nil] Можно нейтралом или другом: =set_squad_neutral_to_actor =set_squad_friend_to_actor Раз игра сделана так, то так и надо делать,если конечно вы не программист и не затеяли что-то своё. Попробуй в логике своего НПС поставить: relationship = actor_neutral
Сообщение отредактировал Arist - Понедельник, 31.12.2012, 12:26
if note and type(note) == "number" then if not level.object_by_id(note) then level.start_stop_menu(interfase.ui_repair(), true) --запускаем меню alife():create("repair_kit", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end note = nil end if note and type(note) == "userdata" then note = note:id() else note = nil end end
Решил поменять иконки. Координаты снял, добавил в нужный файл, размер картинки 128х128, а не как в ТЧ 165х108. Где надо прописать эти 128х128, чтоб не было так:
П.С.: Всех с наступившим 2013 годом!!!
Сообщение отредактировал 6poHR777 - Вторник, 01.01.2013, 03:49
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ... call of pripyat\gamedata\scripts\sound_theme.script:786: attempt to index global 'db' (a nil value)
помогите! поставил мод где полоску радиции на худ выводит. при запусте вылет
Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ... publishing\s.t.a.l.k.e.r\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
Добавлено (01.01.2013, 14:40) --------------------------------------------- вырезал из lwtod инвентарь. покупаю у сидоровича пару предметов и ловлю су*а вылет
Expression : 0 Function : CUICellContainer::FindFreeCell File : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UIDragDropListEx.cpp Line : 508 Description : there are no free room to place item