| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
| Форум сталкер S.T.A.L.K.E.R.: Школа моддинга Уроки, вопросы по созданию модов Вопросы по модостроению (Вопросы по модостроению игры S.T.A.L.K.E.R.) |
| Вопросы по модостроению |
|
Привет! Здесь вы получите ответ на любые ваши вопросы по модостроению игры S.T.A.L.K.E.R.
![]() Так же в этом разделе можете сами создать тему с вопросом по моддингу сталкер или задать вопрос тут в теме. Прикрепления:
6025849.jpg
(129.8 Kb)
|
|
Всем привет, создал в СДК рестриктор с логикой:
Я хочу что-бы при получении инфопоршня удалялся один НПС и один сквад, по итогу никак не реагирует, подобная логика но со спавном НПС и Сквада работает, пробовал различные скрипты для удаления НПС либо Сквада за день множество вариантов испробовал, ничего не работает. |
|
sovkastom, Привет ниже разъяснил как сделать)
Способ 1 — через kill_npc (самый простой) Если тебе не принципиально именно "удалить", а можно убить: Код on_info = {+give_skull} %=kill_npc(dark_skull)% sr_idle@nil Важно: dark_skull должен быть story_id, а не имя секции Способ 2 — через скрипт (рекомендуется) Вот это уже нормальный путь 👇 1. Создаёшь функцию в xr_effects.script: Код function remove_npc_and_squad(actor, npc, p) local npc_obj = alife():story_object(p[1]) if npc_obj then alife():release(npc_obj, true) end local squad = alife():story_object(p[2]) if squad then alife():release(squad, true) end end 2. Вызываешь в логике: Код on_info = {+give_skull} %=remove_npc_and_squad(dark_skull:dark_bandit_1_squad)% sr_idle@nil Обрати внимание: параметры передаются через: оба должны быть story_id Способ 3 — через alife():release (жёсткое удаление) Если хочешь максимально чисто удалить — это лучший вариант. Частые ошибки ✔️ 1. Есть ли story_id? В spawn должно быть: Код story_id = dark_skull и для сквада тоже ✔️ 2. Инфопоршень реально срабатывает? Проверь через: Код on_info = {+give_skull} %=dbg_log("WORKS")% ✔️ 3. НПС онлайн/оффлайн Иногда: онлайн → не удаляется оффлайн → удаляется 💡 Важный момент В S.T.A.L.K.E.R.: спавн работает через логику удаление почти всегда через Lua Поэтому ты всё делал правильно… но не туда копал. Итог Твой вариант не работает потому что: remove_npc не существует remove_squad не стандартная функция ✔️ Делай через: kill_npc (просто) или Lua (alife():release) — правильно
|
| |||
| |||