Nie wiem jak zrobić taką rutynę

Wzoruje się na ZS_Guard bo chce aby NPC w tej rutynie obracał za nami / pilnował.
na początku myslałem ze wystarczy AI_UseItem lecz nie zadziałało
if (Npc_HasItems (self,ItLsTorch) <=1)
{
CreateInvItem ( self, ItLsTorch);
};
AI_UseItem (self, ItLsTorch);
Potem pomyślałem zeby na początku rutyny zmieniać Overlay MDS`a lecz teraz NPC jak sie na niego wejdzie ma pustą rękę uniesioną do góry.
Spoiler
func void ZS_Pochodnia ()
{
//PrintDebugNpc (PD_TA_FRAME,"ZS_Guard");
GuardPerception ();
Npc_PercEnable (self, PERC_ASSESSPLAYER, B_AssessSC);
AI_StandUp (self);
AI_SetWalkmode (self,NPC_WALK); // Walkmode für den Zustand
AI_GotoWP (self, self.wp); // Gehe zum Tagesablaufstart
B_InitArmor();
if (Npc_HasItems (self,ItLsTorch) <=1)
{
CreateInvItem ( self, ItLsTorch);
};
//AI_UseItem (self, ItLsTorch);
Mdl_ApplyOverlayMds (self,"HUMANS_TORCH.MDS");
};
func void ZS_Pochodnia_Loop ()
{
//PrintDebugNpc (PD_TA_LOOP,"ZS_Guard_Loop");
//B_GotoFP (self, "GUARD");
if (Npc_GetDistToNpc(self,hero)<800)
{
B_SmartTurnToNpc(self,hero);
}
else
{
//AI_AlignToFP (self);
};
B_PlayArmor ();
AI_Wait (self, 0.5);
};
func void ZS_Pochodnia_End ()
{
//PrintDebugNpc (PD_TA_FRAME,"ZS_Guard_End");
Mdl_RemoveOverlayMds (self,"HUMANS_TORCH.MDS");
B_ExitArmor();
};
aa i jaki warunek moge dać do podnoszenia pochodni ? no bo załóżmy po walce po upuszczeniu pochodni chcemy żeby podniósł swoją zgubę. Wykorzystam do tego AI_GotoItem i AI_TakeItem tylko nie mam pomysłu na warunek