В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Хочу уточнить функционал гулага. На мой взгляд он определяет логику (или работу ) для НПС при определенном его состоянии. И я думаю он просто подходит для вычисления состояний и назначения логики, при вычисленном состоянии. Правильно изложил концепцию гулага?
wanes101, ох... зачем так сложно то? В целом - да, но можно и проще: Гулаг - место сосредоточения работ для НПС - всё. С помощью состояний можно лишь разнообразить работы, в том плане, что сделать дневные, ночные, оборона, атака и т.д., зависит от фантазии. Принцип назначения логики для НПС таков: спавнится НПС, в мотиваторе в методе on_spawn происходит попытка установит для него логику. Так считывается его custom_data и уже исходя из её настроек происходит либо становка логики из этой самой custom_data, либо если это гулаг, то происходит проверка, а подходит ли НПС для этого гулага, если да, то назначается свободная работа, при этом, если работы нет, а НПС был заспавнен через респавнер для этого гулага, сам респавнер и удалит этого НПС. Если никакой логики в custom_data нет или НПС не подходит для данного гулага, то скрипты ищут первый подходящий для этого НПС гулаг со свободной работой.
С помощью состояний можно лишь разнообразить работы, в том плане, что сделать дневные, ночные, оборона, атака и т.д., зависит от фантазии.
По мой му это неполное изложение функционала, ведь для определения состояния гулага вызывается функция, которая определяет текущее состояние гулага, через возвращаемое значение. (эта функция апдейтиться?) А эта функция может как угодно вычислять состояние, тут все зависит от фантазии
Сообщение отредактировал wanes101 - Среда, 28.08.2013, 20:25
для определения состояния гулага вызывается функция, которая определяет текущее состояние гулага, через возвращаемое значение
Эммм... определяет состояние гулага, через возвращаемое значение, определяющее состояние гулага? Ты точно это хотел написать? Функция load_states, в настройках гулага, это яркий пример замыкания - она возвращает ссылку на безымянную функцию, которая, да, периодически вызывается, возвращая число, определяющее то или иное состояние, в зависимости от заданных условий. Это косметический функционал и нужен исключительно для придания "жизненности" лагерям: смена караула ночью и днём, изменение поведения во время нападения (сюжетного) либо обороны (сюжетной), под "сюжетным" имеется ввиду запланированная сценка, наподобие атаки наёмников на Деревню Новичков. Если честно, мне не совсем ясно, что ты хочешь для себя определить. Имеет ли смысл в принципе использовать гулаги в сравнении логики в custom_data? Стоит, можешь не задумываться. Здесь есть несколько жирнющих плюсов. Во-первых, гулаги предоставляют не одноразовые работы, т.е. в случае ухода одного НПС из гулага (причина не важна: смерть, скрипт, глюк) его место займёт другой НПС и будет выполнять туже работу. Во-вторых, НПС в гулагах могут работать в оффлайне, что невозможно (почти) для обычных НПС, а это в умелых руках сильный плюс.
ColR_iT, Может глянешь? Конечно не правильно. Не смог найти.
local cond6 = db.actor:item_in_slot(6):condition() local item = db.actor:item_in_slot(6) if item and item:name() and string.find(item:name(),"outfit") and item:condition() >=0.70 then cond6 = db.actor:item_in_slot(6):condition() db.actor:iterate_inventory( function(dummy,item) if item:section()=="outfit" then alife():release(alife():object(item:id())) end end , db.actor) alife():create("outfit2", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id()) end if item and item:name() and string.find(item:name(),"outfit2") then cond6:condition() end end