В данной теме вы можете задавать любые вопросы касательно 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 заставить эту ф-цию работать? dialogs.relocate_moneys(npc, all_money_actor, "out") Проблема в том, что происходит абстрактное ограбление, без участия нпс, и при таком варианте использования:
Код
function money_out(actor, nps) local actor = db.actor all_money_actor = actor:money() if actor and npc then dialogs.relocate_moneys(npc, all_money_actor, "out") end end
происходит вылет: attempt to index local 'npc' (a nil value)
Что касается ЗП, звук нужно регистрировать в configs/misc/script_sound_...ltx. А вот почему не работает, это вопрос другой. Я бы попробовал поставить флажок на соответствующий поинт look.
Добавлено (21.09.2013, 11:56) --------------------------------------------- ins33, а тебе именно эта функция нужна? Или выдача денег вообще?
Сообщение отредактировал FantomICW - Суббота, 21.09.2013, 12:05
Как через скрипт проиграть анимацию, для: нпс, или другого спавн элемента
Никто анимации не проигрывает скриптом, это будет , для этого есть логика, а еще лучше точки пути, по которым бродят нпс. Зачем себе жизнь усложнять.
Цитата (wanes101)
И тоже относительно, как прикрепить объект из секции спавн к кости нпс или к кости друго спавн элемента
объект, который заспавнился, никто с ним больше ничего не делает, кроме актера, которому все интересно (стреляет по ящиках, по лампочкам, смотрит какая здесь физика). Нпс этого не делает, они ходят туда сюда и все. Так, что прикрепить объект с спавна невозможно, по крайней мере сейчас.
Цитата (wanes101)
К примеру каким образом у неписей к спине прекрепляется оружие
за это отвечает скрипт state_mgr_weapon.script та STRAP PARAMETERS настройках оружия, возможно еще что-то.
PS:Здесь лучше привести пример водки, колбасы, хлеба чем оружия. Вот такая штука используется н-р в аниме eat_energy
Код
into = { [0] = {"item_5_draw_0", {a="energy_drink"}, "item_5_draw_1"} }, out = { [0] = {"item_5_holster_0", {d="energy_drink"}, "item_5_holster_1"} },
поэтому нпс берут энергетик и пьют, если конечно он есть в рюкзаке, если нет, то воздух пьют.
Сообщение отредактировал stalker-MiX - Суббота, 21.09.2013, 12:23
ins33, в этом случае могу посоветовать глянуть на алгоритм забирания денег у ГГ в ЧН, когда ГГ грабят бандиты в подвале барахолки. Проделано это через логику, то есть рестрикторы. Сначала ГГ попадает в рестриктор configs/scripts/garbage/gar_space_restrictor_ambush_door.ltx, в котором выдается инфопорция gar_story_came_to_ambush_door. Тогда срабатывает рестриктор gar_space_restrictor_fang_pda_cellar.ltx:
Обрати внимание, в секции [sr_idle@unconscious_talk_4_time] задействована некая функция:
Код
=take_money(all)
Да, это то, что нам нужно. Полное забирание денег у ГГ. А если функция вызывается через логику, значит находится в xr_effects.script. Да, она там действительно есть:
Код
function take_money(actor, npc, p) local num = p[1] if num == "all" or db.actor:money() < num then num = db.actor:money() end db.actor:give_money(-num) game_stats.money_quest_update(-num) xr_statistic.inc_spent_money_counter(num) news_manager.relocate_money(db.actor, "out", num) end
Итого, через скрипт будет вызываться как-то так:
Код
xr_effects.take_money(db.actor, nil, {all})
А через логику, как и в ЧНовском рестрикторе:
Код
=take_money(all)
Добавлено (21.09.2013, 13:13) --------------------------------------------- Забыл добавить. В ЗП и ТЧ функции take_money нету, нужно добавить в xr_effects.script.
Сообщение отредактировал FantomICW - Суббота, 21.09.2013, 13:08
function money_out(actor, object) local actor = db.actor local all_money_actor = actor:money() db.actor:give_money(-all_money_actor) news_manager.relocate_money(db.actor, "out", all_money_actor) end
%=money_out% - у рестрикторе
*news_manager.relocate_money(db.actor, "out", all_money_actor) - на всех сталкерах
Сообщение отредактировал stalker-MiX - Суббота, 21.09.2013, 14:12
FantomICW, СПС, для простого кидка её стоит сократить до
Код
function take_money(actor, npc, p) local num = p[1] if num == "all" or db.actor:money() < num then num = db.actor:money() end db.actor:give_money(-num) end
stalker-MiX, СПС, сложность тут оправдана, т.к. есть возможность забирать определённую сумму.
Код
=take_money(number)
Но в отличае от твоего варианта, потеряна возможность вызова из скрипта.
В итоге есть 2 варианта, первый для вызова из логики, второй из скрипта.
Народ, подскажите, как бы отловить машину в рестрикторе, или что-то типа того. Пока не могу придумать, как реализовать квест пригнать машину, а точнее отследить выполнение условия. П.С. Работаю в ТЧ.
Всем доброго времени суток. Прочитал это, погуглил ещё, но так и не понял какую логику надо задавать спейс рестиктору, дабы при попадании ГГ в этот спейс рестиктор, аномалии, что находятся внутри него активировались. Это возможно?
saxar, Я с сдк не очень. Плюс там вроде анимки разные. Корн, Аномалия, это своеобразный спейсрестриктор, и его активировать не надо. Похоже ты просто хочешь заспавнить аномалию, посмотри, как это сделано в оригинале. А если ты хочешь нанести хит при входе в спейсрестриктор, то используй схему [sr_idle] с проверкой on_actor_inside = %=функция_нанесения_хита%