Как мне контролировать выдачу навыков и умений?
вроде бы никак нельзя. Есть костыльная возможность запретить что-то совсем нежелательное - мониторить что у героя появился определенный навык, с помощью чита удалять его, и тогда игроку будет автоматически предложено выбрать навык снова. Выглядит ужасно, работает коряво, так что лучше не связываться с этим.
И как их выделить, чтобы игрок знал, что это место для выдачи задачи.
Имхо, интересней когда квест появляется неожиданно, но, если хотите, есть несколько способов:
Можно убирать "юбку" у юнита, чтобы он отличался от обычных монстров:
SetDisabledObjectMode(npc, DISABLED_INTERACT);
sleep(1)
SetMonsterSelectionType(npc, 0);
Можно повесить над ним какой-нибудь эффект, например свет от артефактов, как в карте "Наёмники":
PlayVisualEffect("/Effects/_(Effect)/Artefacts/General/Blue.xdb#xpointer(/Effect)", ...)
Можно просто изменить имена юнитов, чтобы можно было узнать о квесте по правой кнопке.