Перейти к основному содержимому

Как отключить агрессивное поведение НПС, чтобы они реагировали только на игрока?

Вопрос

Как отключить агрессивное поведение НПС, чтобы они реагировали только на игрока?

Ответ

Для отключения агрессивного поведения НПС и обеспечения реакции только на игрока можно использовать следующий подход:

1. Откройте или создайте файл скрипта, например `custom_combat_ignore.script`.
2. В этом файле добавьте следующую логику:
```script
function onEvent(eventType, eventValue)
if eventType == 'actor_received_pistol' then
for i = 1, alife():object_count() do
local npc = alife():object(i)
if npc and (npc:is_actor() or npc:is_player()) then
npc:set_relation(-20, -20) -- устанавливает враждебность к игроку
npc:disable_combat_ignore()
end
end
elseif eventType == 'actor_received_info_pistol' then
for i = 1, alife():object_count() do
local npc = alife():object(i)
if npc and (npc:is_actor() or npc:is_player()) then
npc:set_relation(0) -- убирает враждебность
npc:enable_combat_ignore()
end
end
end
end```
3. Пропишите этот скрипт в `xr_combat_ignore.script` для его активации.
4. Убедитесь, что у НПС есть необходимые условия (например, кондиторские списки) для вызова этих событий.