В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга
• Не флудить • Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там • В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Лог вылета и последние 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 - содержит секции конфигов уникального оружия и костюмов.
У меня "детский" вопросик: Есть ли ограничения при выборе/использовании функции в диалогах? Т.е. например: При вызове функции/скрипта через <precondition>, функция обязана вернуть True или False? Так? И вообще, функции которые можно юзать в диалогах должны иметь 2 входных параметра (first_person, second_person)?
Короче говоря, хочу сделать фильтр для проги по всем функциям, дабы отсеять ненужные при редактировании диалогов. А если еще короче, то какого вида функции "хавает" диалог со своими фразами? Спасибо!
KomeR, насколько я помню, функции в precondition выполняются в любом случае, однако если там не возвращается True, ветка с данным условием не работает.
ЦитатаKomeR ()
И вообще, функции которые можно юзать в диалогах должны иметь 2 входных параметра (first_person, second_person)?
Вовсе необязательно. Пример:
Код
function night_star_not_have() if not db.actor:object("af_night_star") then return true end return false end
Сообщение отредактировал antonnkz76 - Четверг, 11.08.2016, 09:04
Короче говоря, хочу сделать фильтр для проги по всем функциям, дабы отсеять ненужные при редактировании диалогов. А если еще короче, то какого вида функции "хавает" диалог со своими фразами?
Беда в том, что в принципе любого. Они могут быть расположены в произвольном скрипте и не иметь входных параметров в принципе, а если заявлено параметров более двух, то не значит что работать такая функция не будет. Единственное функции в precondition обязаны возвращать true или false, возможно даже nil будет принят как false. Тогда вообще никаких критериев по которым их можно фильтровать.
ПС: Удачи вам в вашей работе.
Сообщение отредактировал denis2000 - Четверг, 11.08.2016, 09:10
Получается, что можно вызвать любую функцию? А как на счет "системных" (как понять что она системная)? -----
Цитатаantonnkz76 ()
Вовсе необязательно. Пример:
Эту функцию в action не запишешь(она будет бесполезной). Так? Только в преконд. ----- по каким критериям Вы выбираете функцию? Я понимаю что смотрится тело функции(что она делает) и при необходимости отсеивается или выбирается, но всё-таки, какие-то критерии все равно есть. Даже перед тем как смотреть что она делает, как мы понимаем что она нам не нужна? ____ Сложная тема однако :D
"Тогда вообще никаких критериев по которым их можно фильтровать." печалька.
Сообщение отредактировал KomeR - Четверг, 11.08.2016, 09:31
Подскажите , как сделать пропуск спавна сквада нпс на смарте если они спавнятся близко к актору? А то появляются прямо перед актором и из за этого пролагивает , мб их спавн можно както отменить или сдвинуть?
Сообщение отредактировал xr_Sanya - Четверг, 11.08.2016, 11:23
Выбрасываем медузу рядом с аномалией... В ф-ию check_section приходят: objs = zone_mosquito_bald_weak obj = af_medusa
Код
local tbl = {["zone_mosquito_bald_weak"] = {"af_medusa","af_cristall_flower","af_night_star","af_kostyashka","af_mebius" }, *, *}
часть кода без последующих проверок:
function check_section(obj,objs) local osect = obj:section() -- Определяем секцию obj -->> В данном примере это af_medusa for a, b in ipairs(tbl) do -- Перебираем таблицу tbl (в надежде получить a или b. В данном примере b) if b then -- b почемуто всегда = nil if b == osect then -- Тут надо бы сделать проверку: если вторая часть таблицы = секции af_medusa. НО! b = nil todo end end end
Подскажите, как получить из таблицы секции артефактов, что бы потом сравнить с osect.
Сообщение отредактировал ins33 - Четверг, 11.08.2016, 19:58
Подскажите , как сделать пропуск спавна сквада нпс на смарте если они спавнятся близко к актору?
Как спавните?
ЦитатаKomeR ()
А как на счет "системных" (как понять что она системная)?
А что вы подразумеваете под термином системная функция? Если имеется ввиду не скриптовая, но движковая функция, то она вызываться не будет. А попытка скорее всего вызовет вылет.
Кстати, на самом деле параметров передаваемых функции из поля action не два, а четыре: 1. Объект, кто говорит фразу 2. Объект, кто слушает фразу 3. Число, ид-диалога 4. Число, ид-фразы А в procondition не два, а пять: 1. Объект, кто слушает фразу 2. Объект, кто говорит фразу 3. Число, ид-диалога 4. Число, ид-фразы 5. Число, ид-следующей фразы
ЦитатаKomeR ()
по каким критериям Вы выбираете функцию?
Я бы выбирал функции из скриптов, которые начинаются на dialogs...
Сообщение отредактировал denis2000 - Четверг, 11.08.2016, 21:01
Здоров всем! Делается у меня мод технически сейчас, и нужна ваша помощь. Иногда в модах встречается фича, когда при осмотре инвентаря убирается оружие. Как можно проделать такое?
NewValveCom, Тебе надо поймать момент открытия\закрытия инвентаря. Это можно отловить поршнями ui_inventory\ui_inventory_hide. Оружие убирается ф-ей db.actor:hide_weapon(). Достаётся: db.actor:restore_weapon() Вызов из actor_binder:info_callback(npc, info_id)
Код
function on_inventory_info(info_id) if info_id == "ui_inventory" then db.actor:hide_weapon() elseif info_id == "ui_inventory_hide" then db.actor:restore_weapon() end end
Сообщение отредактировал ins33 - Четверг, 11.08.2016, 21:35
Вот пытаюсь подогнать начинку ПДА из ЗП под вариант из ТЧ. При 1024 на 768 такая картина (не доделал всё ещё, того некоторые детали стоят не на своих местах)
Вроде всё более-менее, но при другом расширении наблюдается такая картина (1980х10280)
Получается что на широкоформатных не работает. Или нужно подгонять под каждый размер ПДА или есть другой вариант?
Сообщение отредактировал PARTFINGER - Четверг, 11.08.2016, 22:25