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 должно быть:
и для сквада тоже
✔️ 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) — правильно