В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Люди есть ли годный тутор по созданию нового NPS для Чистого Неба? В просторах интернета только на ТЧ и ЗП. Я понимаю что они все схожи с ЧН но нужно именно для ЧН) Буду очень благодарен!
Добавлено (25.12.2014, 14:34) --------------------------------------------- И да подразделение - спавн через скрипт.. ибо с all.spawn не дружу.
FromplanetEarth, если ты про зомби-нпс (не гражданский зомби), то в скрипте xr_motivator.script есть функция motivator_binder:use_callback(obj, who):
Код
function motivator_binder:use_callback(obj, who) printf("motivator_binder:use_callback(obj, who)") if self.object:alive() then inventory_upgrades.need_victim(obj) xr_meet.notify_on_use(obj, who) dialog_manager.disabled_phrases[obj:id()] = nil if self.st.active_section then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "use_callback", obj, who) end end end
Для справки: здесь обрабатываются действия, которые происходят при юзе НПС. НПС бывает живой и мёртвый. Как видишь, сейчас здесь обрабатывается только состояние живого НПС:
Код
if self.object:alive() then
Значит, во-первых, нужно добавить второе условие: НПС мёртв. Так как условий всего два, можем использовать выражение else. К этому вернемся чуть позже. Во-вторых, нам нужна проверка, что объект принадлежит к группировке зомби. Делается это так:
Код
if character_community(self.object) == "zombied" then
Не подумай, что вот это самое self.object работает во всех скриптах. xr_motivator.script - это скрипт биндера motivator_binder, self.object - "собственный" объект биндера. Дальше надо сделать актеру пси-удар. Составим действие:
Код
local h = hit() h.direction = vector():set(0,0,0) h.draftsman = db.actor --ударяем именно актера h.type = hit.telepatic h:bone("bip01_head") --выставь кость, в которую наносится удар h.power = 0.001 --выставь силу h.impulse = 0.001 --выставь импульс db.actor:hit(h)
Теперь соберем воедино:
Код
function motivator_binder:use_callback(obj, who) printf("motivator_binder:use_callback(obj, who)") if self.object:alive() then inventory_upgrades.need_victim(obj) xr_meet.notify_on_use(obj, who) dialog_manager.disabled_phrases[obj:id()] = nil if self.st.active_section then xr_logic.issue_event(self.object, self.st[self.st.active_scheme], "use_callback", obj, who) end else --Добавляем для инициализации второго (оставшегося) состояния НПС (НПС мёртв) if character_community(self.object) == "zombied" then --Если НПС - зомбак, то... --делаем хит: local h = hit() h.direction = vector():set(0,0,0) h.draftsman = db.actor --ударяем именно актера h.type = hit.telepatic h:bone("bip01_head") --выставь кость, в которую наносится удар h.power = 0.001 --выставь силу h.impulse = 0.001 --выставь импульс db.actor:hit(h) end end end
Как-то так.
P.S. Господа скриптеры, если где-то допустил ошибку или о чем-то некорректно сказал, прошу поправить.
Удалил лампочку в сдк, теперь вылетает при компиляции, что делать?
Лампочка наверняка была групповым объектом и надо было удалять именно его, а не какие то его составляющие объекты. Теперь похоже придется искать эту группу методом тыка у удалять ее.
ЦитатаX_A_M_E_L_E_O_N ()
Люди есть ли годный тутор по созданию нового NPS для Чистого Неба? В просторах интернета только на ТЧ и ЗП.
Не проблема. Смотри ЗП-шный тутор, он при спавне через скрипт не чем не отличается от ЧН.
Сообщение отредактировал denis2000 - Четверг, 25.12.2014, 18:07
Лампочка наверняка была групповым объектом и надо было удалять именно его, а не какие то его составляющие объекты. Теперь похоже придется искать эту группу методом тыка у удалять ее.
Удалял группу, проблема решилась, когда я удалил все освещение, включая костры.
Образец-47, Кардинально конечно, на будущее помни, что SDK всегда сохраняет предыдущую версию файлов добавляя тильду перед расширением файла, так что всегда можно откатить изменения сделанные в интервале между последними сейвами.