Можно сделать, только NON_ATTACKABLE тут часть общего плана. И кстати для теграка и геры будет достаточно прописать именно NON_ATTACKABLE, я так и сделал у ся на серве, и всё прекрасно работает. Для остальных нпс чуть повозится надо будет.
Вобщем вся фишка в
MonsterController и
NpcController , а именно в методе
doReward, в контролере для нпс он небыл переопределён, а значит остался таким же как и для обшего класса
CreatureController, а вот в монстер контролере он был переопределён, посему все объекты которые спавнятся как монстры и наследуют монстер контролер могут выдавать ревард(дроп).
Собсно тут есть два пути:
1) глобальный

, поскольку
MonsterController extends NpcController тобиш расширяет класс нпсконтролера, можно перенести метод
doReward из монстерконтролера в нпсконтролер, далее придётся править нюансы во всей иерархии использования монстерконтролера.
В результате получим возможность сбора дропа с любого нпс.
2) локальный

, больше подходит для обработки отдельных нпс, например боссов, порталов и других специфичных объектов. Т.е. просто в при спавне указать какие npcid мы хочем сделать монстрами, и тогда только с них можно будет собрать дроп.
Это уже делается в
SpawnEngine в методе
SpawnObject .