Scripte sind allgemein nicht so Performance-lastig, dass sollte also weniger das Problem sein.

Die umstehenden NPCs kannst du auf mehreren Wegen bekommen:
Zauber mit großer Reichweite auf den Spieler abfeuern (z.B. von einem Activator der vorher über dem Spieler platziert wird). Das Ziel in dem ScriptEffect (GetSelf) ist dann alles, was sich in der Reichweite befindet.

Mittels OBSE-Funktionen GetFirst/NextRef in einem Loop.


Alles muss in regelmäßigen Abständen überprüft werden, da die NPCs ja wandern.