В данной теме вы можете задавать любые вопросы касательно 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 - содержит секции конфигов уникального оружия и костюмов.
buffy, я так понял, он предлагает создать новый коллбэк специально для конкретных предметов чтобы не писать каждый раз проверку на секцию. Даже если дописать внутрь actor_on_item_use как тогда остальные предметы проверяться будут?
function reg_use_inv_item_callback( name, sect, func, userobj ) intercepts[name][sect][func]={userobj=userobj} end
function unreg_use_inv_item_callback( name, sect, func ) intercepts[name][sect][func]=nil end
function use_inventory_item( section ) if intercepts.use_inventory_item[section] == nil then return end for func,o in pairs( intercepts.use_inventory_item[section] ) do func( section, o.userobj ) end end
А вот это куда и зачем?
Код
function init() init_module_if_exists("use_item_callbacks") end
Судя по
Код
local flist = f:file_list_open_ex("$game_scripts$",bit_or(FS.FS_ListFiles,FS.FS_RootOnly),"*.script")
скрипты и так автоматом грузятся Дальше в campfire_manager
Код
function on_game_start() axr_main.reg_use_inv_item_callback( "use_inventory_item", "c_matches", c_matches, nil ) end
И
Код
function c_matches( section ) section:set_remaining_uses(section:get_remaining_uses()+1) -- log("rain: "..rainy_is()) get_hud():HideActorMenu() get_hud():HidePdaMenu() if not campfire_distance() then return elseif rainy_is() ~= 1 then SetHudMsg(game.translate_string("Погода хреновая, костёр не разжигается"),3) xr_sound.set_sound_play(db.actor:id(),"campfire_fail_rain") section:set_remaining_uses(section:get_remaining_uses()-1) -- local snd_obj = sound_object("interface\\inv_cf_fail_rain") -- snd_obj:play(db.actor,0,sound_object.s2d) return end local roll = math.random(1,2) if roll == 1 then campfire_on() section:set_remaining_uses(section:get_remaining_uses()-1) bind_campfire.use_campfire() else section:set_remaining_uses(section:get_remaining_uses()-1) SetHudMsg(game.translate_string("Спички отсырели"),3) xr_sound.set_sound_play(db.actor:id(),"campfire_fail") end end
В итоге при использовании спичек ничего не происходит.
Сообщение отредактировал yobakun - Суббота, 04.11.2017, 15:53
но разве на схему для физ. объекта нельзя цеплять калбэк, вот, например, в той же схеме ph_idle, hit_callback работает нормально, а в моей схеме для физ. объекта ничего не работает
Коллбек на хит для физ объектов обрабатывается (не поверите) bind_physic_object.hit_callback, если у тебя объект не на этом биндере, то и в логике ничего работать не будет.
buffy, Итак тип объекта выяснили, класс объекта известен. Теперь вопрос как регистрировали колбек и главное зачем если он итак уже автоматом регистрируется в bind_physic_object.script и даже целые схемы его обработки у физических объектов есть (ph_hit, ph_on_hit).
Сообщение отредактировал denis2000 - Суббота, 04.11.2017, 19:42
Приветствую. Стоит задача скомпилить локи с наличием инвалид фейсов. Думаю многие знают про специальные компиляторы, которые обходят данную проблему и позволяют скомпилить локацию. Там вылазило окошко с текстом "бла-бла-бла, локация содержит 100500 инвалидфейсов" и достаточно было нажать "Продолжить" и компиляция запускалась. Сейчас решил использовать эти же компиляторы, но теперь где должно появиться окошко с текстом и кнопкой "Продолжить" вылетает ошибка
Причем этот nodefault reached повторился более 50 раз и наконец вылезло окно о завершении программы. Такая фигня, как я заметил, появляется на винде 8-10. На хрюше и семерке было всё нормально. Что можно сделать с этой проблемой? Может какие то фиксы,компиляторы есть новые? Вариант с переустановкой винды не предлагать.
Сообщение отредактировал BeeRsek - Суббота, 04.11.2017, 19:54
WolfHeart, у x64 версии компиляторов - ставиться ключ "-skipinvalid", а x32 - без ключа, там специальный батник, который подменяет компилятор на компил с обходом (запускаем, жмякаем 1 или 2, зависит от того что нужно)
Добавлено (04.11.2017, 20:18) --------------------------------------------- BeeRsek, что-то такого компила не припомню.
Ребята, как в ЧН перенести часы в другое место, которые высвечиваются в инвентаре? В custom_msgs и inventory_new_16 параметр связанный с временем убирал\двигал - бестолку.
Сообщение отредактировал alanbrose - Суббота, 04.11.2017, 20:27
у x64 версии компиляторов - ставиться ключ "-skipinvalid", а x32 - без ключа, там специальный батник, который подменяет компилятор на компил с обходом (запускаем, жмякаем 1 или 2, зависит от того что нужно)
Так я про это знаю, такие компиляторы и у меня. Я по чему и спросил у BeeRsek, какие у него компиляторы, что там какие-то кнопки при компиле появляются.
Сообщение отредактировал WolfHeart - Суббота, 04.11.2017, 20:29
проверка осуществляется, просто она немного завуалирована именем ключа таблицы.
Ты все прекрасно понял. Не нужно цепляться за мелочи. Проще сделать одну проверку на секцию, чем стопицот проверок , пока не будет вызван нужный колбек.
Цитатаbuffy ()
в том как раз таки и странность, use_callback отлично обрабатывается, а hit_callback - нет.
Не нужно ломать копья. В движке COP 1.6.0.2. отключена проверка на HIT физ.объектов. Поэтому евенты не работают в схемах.
BeeRsek, возможно не те компиляторы, либо не прописали ключ. Лично я скомпилировал более трех уровней, один причем полностью с нуля — и никаких проблем. А если проблемы и были, а их было масса, — они решались.