В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Абсолютно согласен с уважаемым denis2000. У самого сейчас на правке лежит несколько лок, причем от оригинала ТЧ. Вот смотришь на АИ-сетку и видишь вылеты, которые обычно называют "зверушка зашла не туда". Вообще конечно надо бы посмотреть и на точки лоок. Вдруг там косячок. Насчет вылета я лично без понятия, сейчас столько движковых правок, что люди даже вылета по неправильному вертексу избегают.
Сообщение отредактировал _Val_ - Пятница, 04.12.2015, 16:17
Здесь тоже запощу, насчёт ОГСМ ЧН: Как мне ускорить появление артов в аномалиях после выброса (тайм-фактор 5, хочется всё-таки замедлить время ? - после ТДолины вернулся на Кордон, переждал второй выброс (или даже третий, на Свалке деньги уже отобрали, но на Агро ещё не ходил), пошёл на Свалку, вернулся в долину - нигде пока новых артов нет !
function cfg_get_mode(ini, section, npc) local modes = {} for k, v in ipairs(params) do modes[v] = utils.cfg_get_bool(ini, section, v, npc, false) end return modes end
function alife_control(obj, mode) -- Мертвые монстры сразу отпускаются под alife local active_scheme = db.storage[obj:id()].active_scheme local active_section = db.storage[obj:id()].active_section --' DEBUG printf("alife_control obj=[%s], sect=[%s], active_scheme=[%s] active_section [%s]", obj:name(), obj:section(), active_scheme, active_section) --local mode = db.storage[obj:id()][active_scheme].alife_mode if not (obj:alive() and mode) then xr_logic.mob_release(obj) return true end printf("alife_control: obj=[%s], sect=[%s] %s %s %s %s", obj:name(), obj:section(), mode.braindead, mode.friendly, mode.actor_friendly, mode.npc_friendly) if mode.braindead then -- Braindead монстры не уходят из под скрипта даже если их обстрелять xr_combat_ignore.fighting_with_actor_npcs[obj:id()] = nil --' Нужно-ли? return false end -- Монстры, у которых есть враг - также должны работать в alife local enemy = obj:get_enemy() if enemy then printf("_bp: got enemy") if not mode.friendly and (not mode.actor_friendly or enemy:id () ~= db.actor:id ()) and (not mode.npc_friendly or enemy:id() == db.actor:id()) then if db.storage[obj:id()].mob_combat then xr_logic.issue_event(obj, db.storage[obj:id()][active_scheme], "combat_callback") end xr_logic.mob_release(obj) return true end else xr_combat_ignore.fighting_with_actor_npcs[obj:id()] = nil --' На всякий случай :D end
-- Отпускать в alife монстров, которых обстреляли local h = obj:get_monster_hit_info() if h.who and h.time ~= 0 then xr_logic.mob_release(obj) return true end
-- Остальные монстры работают под схемой return false end
Затем добавил в апдейт mob_home и mob_walker
if mob_alife_mgr.alife_control(self.object, self.st.alife_mode) then return end
затем в bind_monster в hit_callback добавляю это: (перенёс сюда из из функции alife_control)
if self.st.active_section then xr_logic.issue_event(obj, self.st[self.st.active_scheme], "hit_callback", obj, amount, local_direction, who, bone_index) end local active_scheme = self.st.active_scheme if who and active_scheme then local mode = self.st[active_scheme].alife_mode if mode then if (who:id()==db.actor:id()) and mode.actor_friendly and not mode.braindead then mode.actor_friendly = false end end if self.st.mob_combat then xr_logic.issue_event(obj, self.st.mob_combat, "combat_callback") end end
и добавил xr_logic.mob_release(victim) в death_callback
И всё работает!
Пытаюсь перенести вызов функции alife_control из mob_home и mob_walker в биндер монстров
Как-то так:
-- Если есть враг переходим в комбат!!! --[[ if self.object:get_enemy() then xr_logic.mob_release(self.object) return else xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil end ]]
if mob_alife_mgr.alife_control(self.object, self.st[self.st.active_scheme].alife_mode) then return else xr_combat_ignore.fighting_with_actor_npcs[self.object:id()] = nil end
Но как-то не работает, вылетает attemp to index a nil value
На этой вот строчке if mob_alife_mgr.alife_control(self.object, self.st[self.st.active_scheme].alife_mode) then
Сделал рестриктор с логикой таймера, при получении поршня и перехода рестриктора в активное состояние таймер запускается и выводится на экран. А как убрать вывод таймера на экран и чтобы он считал игровое время, а не реальное? Зараннее спасибо!
Сообщение отредактировал _S_k_i_F_ - Пятница, 04.12.2015, 20:56
то есть если выставить 600 - то это будет 6 игровых минут?
Зачем задавать вопросы, на которые можно получить ответ путём эксперимента? Что мешает это проверить в игре? ( Вообще-то 60 * 6 = 360. У нас ещё и с математикой проблемы? )
Нужна помощь. Установил фотошоп, установил плагин для открытия dds, а он зараза не работает. Дома на компе тот же фотошоп и тот же плагин и всё работает. Правда дома 32битная система,а тут 64. Может из-за этого? И как теперь решить эту проблему?