В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
--/ ----------------------------------------------------------------- --/ VARIABLEs --/ ----------------------------------------------------------------- local TORRID_PARTICLE = "anomaly2\\generator\\anomaly_gen_dust" local TORRID_SOUND = "anomaly\\gen_electra_ball_idle" --/ -------------------------- local sModule = script_name() --/ ----------------------------------------------------------------- local log = function(fmt,...) _G.log(sModule..":"..tostring(fmt),...) end --/ ----------------------------------------------------------------- --/ CONSTRUCTION SCHEME --/ ----------------------------------------------------------------------------------------------- class "action_wave" --/ ----------------------------------------------------------------------------------------------- function action_wave:__init(obj, st) self.object = obj self.st = st self.particle = nil self.snd_obj = nil self.started = false self.trigger = 0 self.log = st.log end --/------------------------------------------------------------------ --/ RESET SCHEME --/------------------------------------------------------------------ function action_wave:reset_scheme() self.particle = particles_object(TORRID_PARTICLE) if not self.particle then abort("reset_scheme: particle '%s' is nil", TORRID_PARTICLE) end self.snd_obj = xr_sound.get_safe_sound_object(TORRID_SOUND) if not self.snd_obj then abort("reset_scheme: snd '%s.ogg' is nil", TORRID_SOUND) end self.started = false end --/------------------------------------------------------------------ --/ UPDATE --/------------------------------------------------------------------ function action_wave:update(delta) if xr_logic.try_switch_to_another_section(self.object, self.st, db.actor) then return end if self.trigger < time_global() then self.trigger = time_global() + 600 if self.object:inside(db.actor:position()) then if not self.started then self.particle:load_path(self.st.path) self.particle:start_path(true) self.particle:play() self.started = true end if not self.particle:playing() then self.particle:play() end if not self.snd_obj:playing() then self.snd_obj:play_no_feedback(self.object, sound_object.s3d, 0, self.object:position(), 1.0) end else if self.started then self.started = false if self.particle:playing() then self.particle:stop() end if self.snd_obj:playing() then self.snd_obj:stop() end end end end end --/------------------------------------------------------------------ --/ DEACTIVATE --/------------------------------------------------------------------ function action_wave:deactivate() if self.particle:playing() then self.particle:stop() end if self.snd_obj:playing() then self.snd_obj:stop() end self.particle = nil self.snd_obj = nil end --/ ----------------------------------------------------------------------------------------------- --/ BINDER --/ ----------------------------------------------------------------------------------------------- function add_to_binder (obj, ini, scheme, section, st) log("add_to_binder:Obj=[%s],scheme=[%s],section=[%s]", obj:name(), scheme, section, "") --/#~# local oNewAction = this.action_wave(obj, st) --/ регистрация 'action', для вызова метода 'reset_scheme' при изменении настроек схемы: xr_logic.subscribe_action_for_events (obj, st, oNewAction) end --/------------------------------------------------------------------ --/ SET SCHEME --/------------------------------------------------------------------ function set_scheme(obj, ini, scheme, section, gulag_name) local st = xr_logic.assign_storage_and_bind (obj, ini, scheme, section) st.logic = xr_logic.cfg_get_switch_conditions(ini, section, obj)
st.path = utils.cfg_get_string(ini, section, "path", obj, true, "", nil) if not st.path or st.path == "" then abort("invalid path name for %s", obj:name()) elseif not st.path:match("^gen_") then st.path = "gen_" .. st.path end st.path = st.path .. ".anm" end --/ -----------------------------------------------------------------------------------------------
Вопрос таков: Хочу на локацию добавить домики, к примеру те, что на Кордоне в Деревне новичков. Нужно модельку подгрузить в Макс, верно? Так вот, как подгрузить? Всмысле нужно брать .ogf модель дома из папки meshes, перегонять в .object и подгружать, или же брать как обьект из распакованного Кордона? Но если взять из распакованного Кордона тогда очень неудобно ставить. Та... штука, которой двигать и вращать, очень далеко. Я так понимаю просто сохранились координаты размещения дома на террейне Кордона.
Добавлено (10.05.2015, 18:21) --------------------------------------------- А нет, я придумал кое - что, ответ уже ненужен)
Я хочу чтобы все у всех нпс так было. Когда подходишь к неписям, они приветствуют, вот я так же хочу чтобы они как-то отвечали если они не хотят говорить.
Добавлено (10.05.2015, 23:25) --------------------------------------------- В script_sound'е прописал, но они всё равно не говорят.