Купер 3 125 Опубликовано 15 Марта Поделиться Опубликовано 15 Марта Профиль NPC. Параметры: <money min="$" max="$" infinitive="$"/> См. пояснения к этим параметрам. 1 1 Ссылка на комментарий
DiSэmpL 0 Опубликовано 15 Марта Поделиться Опубликовано 15 Марта @Купер Аналогичный вопрос, как сделать любого нпс бессмертным? Добавлено Купер, 15 Марта Правила форума, п. 2.6 (оверквотинг). Рекомендуется к ознакомлению: здесь и здесь. Ссылка на комментарий
Купер 3 125 Опубликовано 15 Марта Поделиться Опубликовано 15 Марта @DiSэmpL , наиболее грамотный и технически правильный вариант: здесь. Там же упоминаются более простые, "костыльные" варианты. 1 1 1 Ссылка на комментарий
DiSэmpL 0 Опубликовано 16 Марта Поделиться Опубликовано 16 Марта Доброго время суток. Кто подскажет, где находится текстуры персонажей квестовых и простых нпс. Чтоб взять их из другого мода и создать квестовых нпс с этими текстурами у себя в моде. И подойдут ли они с чн на зп? Ссылка на комментарий
Norman Eisenherz 340 Опубликовано 16 Марта Поделиться Опубликовано 16 Марта Папка [textures\act\]. Костюмы одинаковые во всей трилогии, обычные головы в ЧН/ЗП идентичны. Головы именных NPC в ЧН/ЗП сделаны сходно, но зеркально и порядок расположения мелких частей другой – вряд ли совместимы. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Купер 3 125 Опубликовано 16 Марта Поделиться Опубликовано 16 Марта @DiSэmpL , используемые текстуры прописаны непосредственно в модели персонажа (файл. ogf). Сама модель для NPC задаётся в его профиле (см. сводную табл. выше): <visual>$</visual> Профили обычно находятся в файлах gamedata\configs\gameplay\character_desc_***. Как посмотреть текстуры, которые используются конкретной моделью? Вариантов на самом деле много на выбор. Достаточно утилит имеют подобный функционал, например: OGF Tool, OGF Data Changer (есть здесь, но с оговоркой и неоднозначной репутацией), или так, допустим, в своё время камрад @Starter делал тулзу с подобным функционалом (есть в личном архиве в подписи), непосредственно сам оф. SDK. Масса вариантов. + "по диагонали" здесь пробежаться. 1 1 Ссылка на комментарий
Erty123 0 Опубликовано 6 Апреля Поделиться Опубликовано 6 Апреля Подскажите пожалуйста, как спавнить какие то квестовые предметы (например, на столе на 2 этаже Скадовска) после определённого инфопоршня. Чтобы предмет спавнился только после взятия квеста. Ссылка на комментарий
Kirgudu 1 299 Опубликовано 6 Апреля Поделиться Опубликовано 6 Апреля @Erty123 один из самых простых скриптовых способов - дописать нужную проверку и действия в функцию actor_binder:info_callback(npc, info_id) модуля bind_stalker.script, например: function actor_binder:info_callback(npc, info_id) -- ...все предыдущие строки... if has_alife_info(info_id) then -- проверяем, что выдана нужная нам инфопорция alife():create("item_section", position, lvid, gvid) end endfunction actor_binder:info_callback(npc, info_id) -- ...все предыдущие строки... if has_alife_info(info_id) then -- проверяем, что выдана нужная нам инфопорция alife():create("item_section", position, lvid, gvid) end end А вообще способов что-то сделать после получения инфопорции много, как и заспавнить предмет. Рекомендую поизучать уроки и справочники, а также файлы оригинала, чтобы получить какую-то начальную базу. 1 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий
Erty123 0 Опубликовано 6 Апреля Поделиться Опубликовано 6 Апреля 06.04.2025 в 06:22, Kirgudu сказал: @Erty123 один из самых простых скриптовых способов - дописать нужную проверку и действия в функцию actor_binder:info_callback(npc, info_id) модуля bind_stalker.script ... alife():create("item_section", position, lvid, gvid)alife():create("item_section", position, lvid, gvid) В эту строчку что куда именно нужно вставлять кроме координат (у меня есть нужные)? Ссылка на комментарий
Kirgudu 1 299 Опубликовано 6 Апреля Поделиться Опубликовано 6 Апреля 06.04.2025 в 07:12, Erty123 сказал: что куда именно нужно вставлять position - координаты в виде объекта с типом vector, можно подставить как vector():set(x, y, z), где x, y, я - соотв. координаты по каждой из осей lvid - id level вертекса. Например, для текущего положения героя вычисляется функцией db.actor:level_vertex_id() gvid - id game вертекса. Например, для текущего положения героя вычисляется функцией db.actor:game_vertex_id() Конкретные значения? Откуда я знаю, это уже определять самостоятельно, смотря куда что должно заспавниться. А вообще, об это я и говорю. Всё вышеописанное - такие азы, без изучения и знания которых далеко продвинуться не удастся, а водить за ручку слишком накладно. Крайне рекомендую поизучать скрипты оригинала, тему "справочник по функциям и классам" здесь, на форуме, другие темы, и только после этого приходить с более сложными вопросами. 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий
Erty123 0 Опубликовано 7 Апреля Поделиться Опубликовано 7 Апреля Кто-нибудь знает как в ЗП спавнить тайник при получении инфопоршня(тайник в виде рюкзачка). Ссылка на комментарий
Баба ЯГА 12 Опубликовано 11 Апреля Поделиться Опубликовано 11 Апреля Как узнать что арт - одет на поясе? Искал по belt - нет такого параметра в скриптах. Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
Norman Eisenherz 340 Опубликовано 12 Апреля Поделиться Опубликовано 12 Апреля На старом движке есть только костыльный скрипт, привязанный к порядку перебора в inventory_for_each. На OGSR есть события callback.on_belt + on_ruck. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Баба ЯГА 12 Опубликовано 13 Апреля Поделиться Опубликовано 13 Апреля Возможно-ли скриптово, чтобы не ковырять all.spawn: 1) спавним некий объект, например: бочка 2) скриптово добавляем ему логику, что-то типа: custom="[logic]\ncfg = scripts\\my\\my_logic.ltx" Объект заспавнил: spawn_o("bochka", db.actor:position().x+2, db.actor:position().y, db.actor:position().z+2, 1010751, 19, 1)spawn_o("bochka", db.actor:position().x+2, db.actor:position().y, db.actor:position().z+2, 1010751, 19, 1) логику простейшую, для теста, написал: [logic] active = ph_idle@use [ph_idle@use] tips = hello[logic] active = ph_idle@use [ph_idle@use] tips = hello как скриптово это заставить работать, чтобы не лазить в СДК и all.spawn? Можно и во время игры и при начале новой игры. Форум перерыл, к сожалению, ничего не смог найти. Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
Norman Eisenherz 340 Опубликовано 14 Апреля Поделиться Опубликовано 14 Апреля Логика – часть custom_data, которая хранится в нетпакете объекта. Перезаписать через [m_netpk.script]. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Баба ЯГА 12 Опубликовано 14 Апреля Поделиться Опубликовано 14 Апреля (изменено) @Norman Eisenherz где взять этот [m_netpk.script] ? В оригинальных файлах игры нет... Можешь поделится? Я пробовал на Народной Солянке ТЧ, там всё работает, но там есть говый скрипт для перезаписи нетпакетов: spawn_restrictor.rewrite_restrictor(se_obj, custom, 5.0) Сделал так: function create_restr() local se_obj = alife():create("space_restrictor", vector():set(79.319160461426, -0.073770552873611, 462.92016601563), 373155, 199) local custom = "[logic]\ncfg = scripts\\my.ltx" --путь к логике рестриктора spawn_restrictor.rewrite_restrictor(se_obj, custom, 5.0) -- запись логики для рестриктора через нетпакет level.map_add_object_spot_ser(se_obj.id, "habar_location", se_obj:name().."\\n"..se_obj.id ) end create_restr()function create_restr() local se_obj = alife():create("space_restrictor", vector():set(79.319160461426, -0.073770552873611, 462.92016601563), 373155, 199) local custom = "[logic]\ncfg = scripts\\my.ltx" --путь к логике рестриктора spawn_restrictor.rewrite_restrictor(se_obj, custom, 5.0) -- запись логики для рестриктора через нетпакет level.map_add_object_spot_ser(se_obj.id, "habar_location", se_obj:name().."\\n"..se_obj.id ) end create_restr() также написал простейшую логику: [logic] active = sr_idle@wait [sr_idle@wait] on_actor_inside = sr_sound@1 [sr_sound@1] snd = characters_voice\human_03\bandit\help\wounded_thanx\thanx_2 on_timer = 5000 | sr_idle@nil [sr_idle@nil][logic] active = sr_idle@wait [sr_idle@wait] on_actor_inside = sr_sound@1 [sr_sound@1] snd = characters_voice\human_03\bandit\help\wounded_thanx\thanx_2 on_timer = 5000 | sr_idle@nil [sr_idle@nil] при входе в рестриктор играется звук. В ТЧ - всё работает. Попробовал перенести скрипт (spawn_restrictor.script) из ТЧ в ЗП, сделал всё тоже самое, но при заходе в рестриктор - вылет, видимо несовместимость в функции перезаписи нетпакетов, т.е. если я правильно понял, мне нужен скрипт для перезаписи нетпакетов для ЗП, как ты написал: [m_netpk.script] ? В оригинальных файлах игры такого скрипта нет... Можешь поделится? Сам не осилю... Сегодня до шести утра по форуму лазил, ничего подходящего не нашёл. П.С. Спустя три часа... Ковыряю... Понаходил разные скрипты для нетпакетов, ни один не подходит для CoP, либо вылеты, либо не все данные записывает в нетпакет, например, то пути не хватает, то параметра active-scheme и т.д. Нужна помощь, всё что хотел - сделал, загвоздка только в записи логики нетпакета для только-что созданного объекта/рестриктора. Комрады, выручайте! Изменено 14 Апреля пользователем Баба ЯГА Добавлено Купер, 14 Апреля Здесь. Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
WinCap 319 Опубликовано 14 Апреля Поделиться Опубликовано 14 Апреля @Баба ЯГА, логика для объектов задается в его секции параметром "custom_data". Например, объект [jup_b206_plant] в файле "configs\misc\quest_items.ltx" из оригинальной игры. Для него прописан файл: custom_data = models\objects\ignore_static.ltx Всё, что находится в этом файле, после спавна объекта, будет записано в его "custom_data", в том числе и секция [logic], если её там указать. Есть небольшой нюанс. Содержимое файла, указанного в параметре "custom_data", сохраняется в самом объекте и после спавна его уже не изменить. Для отладки это не очень удобно. Вместо этого в секции [logic] можно указать ссылку на файл с логикой: [logic] cfg=scripts\zaton\zat_bochka_logic.ltx А уже в этом файле прописывать все, что нужно. В этом случае можно производить отладку логики и после спавна объекта. Это работает не только с предметами, но и одиночными NPC (не в составе squad'а). 1 2 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти