//////////////////////////////////////////////////////////////////////////////// // npcact_ext_turn - NPC ACTIVITIES 6.0 Turn Undead external command //------------------------------------------------------------------------------ // By Deva Bryson Winblood 06/13/2004 //------------------------------------------------------------------------------ // Last Modified By: Deva Bryson Winblood // Last Modified Date: 06/13/2004 //////////////////////////////////////////////////////////////////////////////// int fnCheckIsUndead(object oTarget) { // Test to see if undead int nRet=FALSE; if (GetClassByPosition(1,oTarget)==CLASS_TYPE_UNDEAD) nRet=TRUE; else if (GetClassByPosition(2,oTarget)==CLASS_TYPE_UNDEAD) nRet=TRUE; else if (GetClassByPosition(3,oTarget)==CLASS_TYPE_UNDEAD) nRet=TRUE; return nRet; } //fnCheckIsUndead() //-------------------------------------------------[ TURN ]------------------ void NPCActionTurnUndead() { int nLoop=1; object oTarget=GetNearestCreature(CREATURE_TYPE_IS_ALIVE,TRUE,OBJECT_SELF,nLoop,CREATURE_TYPE_PERCEPTION,PERCEPTION_SEEN); float fDelay=0.2; if (GetHasFeat(FEAT_TURN_UNDEAD,OBJECT_SELF)) {// has turn undead while(oTarget!=OBJECT_INVALID&&GetDistanceBetween(oTarget,OBJECT_SELF)<=10.0) { //!OI if(fnCheckIsUndead(oTarget)) { // It is an undead ActionMoveToObject(oTarget,TRUE,2.0); ActionUseFeat(FEAT_TURN_UNDEAD,oTarget); SetIsTemporaryEnemy(oTarget,OBJECT_SELF); SetIsTemporaryEnemy(OBJECT_SELF,oTarget); fDelay=fDelay+7.8; } // It is an undead nLoop++; oTarget=GetNearestCreature(CREATURE_TYPE_IS_ALIVE,TRUE,OBJECT_SELF,nLoop,CREATURE_TYPE_PERCEPTION,PERCEPTION_SEEN); } //!OI }// has turn undead SetLocalFloat(OBJECT_SELF,"fDelay",fDelay); } // NPCActionTurnUndead()