В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
как можно сделать подмен предметов в инвентаре? например сьел консерву в инвентаре вместо банки консерв появилась пустая банка?
Вариант первый(Скрипт Singapur22) Съел хлеб,заспавнилась водка:
local item = nil function njam_njam() -- это ставим на актор апдейт(actor_binder:update(delta)) if item and type(item) == "number" then if not level.object_by_id(item) then alife():create("vodka", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end item = nil end if item and type(item) == "userdata" then item = item:id() else item = nil end end
function use_drop(obj) -- это ставим на on_item_drop if obj:section() == "bread" then item = obj end end
Вариан второй(тоже давно известный)
В bind_stalker.script добавляем коллбек в скрипт: function actor_binder:net_destroy() self.object:set_callback(callback.use_object, nil)
И в скрипт function actor_binder:reinit() второй коллбек: self.object:set_callback(callback.use_object, self.use_item, self)
Ниже(после функции actor_binder:reinit()) пишешь:
Код
function actor_binder:use_item(obj, who) if obj then if obj:section() == "bread" then alife():create("vodka", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end
Если прописать скрипт в самом низу - не срабатывает. Что лучше - не знаю. Решать тебе.
function drop_item_to_inventory(number) local actor = db.actor local item = actor:item_in_slot(6) if item then actor:drop_item(item) local sobj = alife():create(item:section(),actor:position(),actor:level_vertex_id(),actor:game_vertex_id(),0) actor:transfer_item(item,actor) alife():release(sobj,true) end end
Сообщение отредактировал Arist - Среда, 19.06.2013, 22:19
Парни, подскажите, как сделать так, чтобы дверь в бункер Сидоровича всегда была открытой? Что-то наподобие вот этого:
Кажется нужно править логику, я в этом деле не ахти, но могу только сделать так, чтобы вначале ГГ мог открывать свободно дверь, без необходимости разговора с Сидоровичем.
Добавлено (20.06.2013, 00:49) --------------------------------------------- А хотя, скажи как называется мод, я посмотрю как там сделано и попробую тебе сделать.
Добавлено (20.06.2013, 01:06) --------------------------------------------- Streels, может всё таки не стоит качать? Зная, насколько ты человек занятой, не хотелось бы тебя утруждать.
<dialog id="escape_trader_oops"> <phrase_list> <phrase id="0"> <text>escape_trader_oops_0</text> <next>1</next> </phrase> <phrase id="1"> <text>escape_trader_oops_1</text> <next>2</next> </phrase> <phrase id="2"> <text>escape_trader_oops_2</text> <next>1</next> </phrase> <phrase id="3"> <text>escape_trader_oops_3</text> </phrase> </phrase_list> </dialog> Смотрите , вот мой диалог ^. Как сделать , чтобы в третьем дилоге был ответ "Нет" ? Чтобы при выборе третьего - диалог исчезал ?
Сообщение отредактировал satanian - Четверг, 20.06.2013, 02:02
Wo1fRam, стёр строчку - теперь дверь вообще не открывается! Даже после разговора с Сидоровичем. Comador, прописал логику - дверь теперь "артефакт", т.е. можно толкать, но если она захлопнулась - открыть её будет невозможно, так как отсутствует функция "Открыть (kF)". Это явно не то, братцы. Есть ещё предложения по этому поводу?
По умолчанию дверь закрыта,но не заперта будет,можно будет открывать и закрывать ее. На выходе из бункера стоит рестриктор, который будет закрывать дверь при уходе.
Сообщение отредактировал BeeRsek - Четверг, 20.06.2013, 07:32