Проблема 146% не в этом. Разговаривать может даже болванка, умеющая только стоять на месте.
		
		
	 
Угу. В используемых состояниях 
написанных для хуманов ZS_STAND_WP и функциях завязанных на 
набор восприятий людей могут быть 
прописаны анимации, которых у всяких монстров просто нет, что при отработке такого состояния чревато. Поэтому для диалогов с демоном Ксардаса, овцами, варгами и прочими Йодами из Странника (кстати тоже гоблин) и множества других из различных модов пишут собственные состояния, примеров навалом.
func void ZS_Stand_WP()
{
   
Perception_Set_Normal();
   B_ResetAll(self);
   AI_SetWalkMode(self,NPC_WALK);
   AI_GotoWP(self,self.wp);
   AI_AlignToWP(self);
   self.aivar[AIV_TAPOSITION] = NOTINPOS;
};
func int ZS_Stand_WP_loop()
{
   var int random;
   if(self.aivar[AIV_TAPOSITION] == NOTINPOS)
   {
     
AI_PlayAni(self,"T_STAND_2_LGUARD");
     self.aivar[AIV_TAPOSITION] = ISINPOS;
   };
   if((Npc_GetStateTime(self) > 5) && (self.aivar[AIV_TAPOSITION] == ISINPOS))
   {
     random = Hlp_Random(10);
     if(random == 0)
     {
       
AI_PlayAni(self,"T_LGUARD_SCRATCH");
     }
     else if(random == 1)
     {
       
AI_PlayAni(self,"T_LGUARD_STRETCH");
     }
     else if(random == 2)
     {
       
AI_PlayAni(self,"T_LGUARD_CHANGELEG");
     };
     Npc_SetStateTime(self,0);
   };
   return LOOP_CONTINUE;
};
func void ZS_Stand_WP_end()
{
   
AI_PlayAni(self,"T_LGUARD_2_STAND");
};
Все функции прописанные ниже в наборе восприятий используются в основном хуманами и в каждой из них могут быть прописаны функции совместимые только с хуманами.
func void 
Perception_Set_Normal()
{
   self.senses = SENSE_HEAR | SENSE_SEE;
   self.senses_range = PERC_DIST_ACTIVE_MAX;
   if(Npc_KnowsInfo(self,1) || C_NpcIsGateGuard(self))
   {
     Npc_SetPercTime(self,0.3);
   }
   else
   {
     Npc_SetPercTime(self,1);
   };
   Npc_PercEnable(self,PERC_ASSESSPLAYER,B_AssessPlayer);
   Npc_PercEnable(self,PERC_ASSESSENEMY,B_AssessEnemy);
   Npc_PercEnable(self,PERC_ASSESSMAGIC,B_AssessMagic);
   Npc_PercEnable(self,PERC_ASSESSDAMAGE,B_AssessDamage);
   Npc_PercEnable(self,PERC_ASSESSMURDER,B_AssessMurder);
   Npc_PercEnable(self,PERC_ASSESSTHEFT,B_AssessTheft);
   Npc_PercEnable(self,PERC_ASSESSUSEMOB,B_AssessUseMob);
   Npc_PercEnable(self,PERC_ASSESSENTERROOM,B_AssessPortalCollision);
   Npc_PercEnable(self,PERC_ASSESSTHREAT,B_AssessThreat);
   Npc_PercEnable(self,PERC_DRAWWEAPON,B_AssessDrawWeapon);
   Npc_PercEnable(self,PERC_ASSESSFIGHTSOUND,B_AssessFightSound);
   Npc_PercEnable(self,PERC_ASSESSQUIETSOUND,B_AssessQuietSound);
   Npc_PercEnable(self,PERC_ASSESSWARN,B_AssessWarn);
   Npc_PercEnable(self,PERC_ASSESSTALK,B_AssessTalk);
   Npc_PercEnable(self,PERC_MOVEMOB,B_MoveMob);
};