// hc_track_start // Starts tracking of creatures // Archaegeo 17 Aug, 2002 #include "hc_inc_track" #include "hc_text_track" void main() { int nDC; object oTracker=OBJECT_SELF; //object oTrackPlc=GetNearestObjectByTag("Tracker"); //if(GetIsObjectValid(oTrackPlc)) nDC=10; //if(!nDC || !GetIsObjectValid(oTrackPlc)) // { // SendMessageToPC(oTracker,NOTPOSSIBLE); // return; // } object oCritter; object oArea=GetArea(oTracker); int nLevel=GetLevelByClass(CLASS_TYPE_RANGER, oTracker); int nCnt=1; float fDistance; int nDCAdj; int nDCbyHD; vector vCritter; oCritter=GetNearestObject(OBJECT_TYPE_CREATURE, oTracker, nCnt); while(GetIsObjectValid(oCritter) && GetArea(oCritter)==oArea) { fDistance=GetDistanceBetween(oCritter, oTracker); nDCAdj=FloatToInt(fDistance/10.0); nDCbyHD=GetHitDice(oCritter); if((d20()+nLevel) > (nDC+nDCAdj+nDCbyHD) && (!GetLocalInt(oCritter,"NOTRACK") && !GetHasFeat(FEAT_TRACKLESS_STEP, oCritter))) { vCritter=GetPosition(oCritter); AssignCommand(oTracker,SetFacingPoint (vCritter)); AssignCommand(oTracker,GetDirection(GetFacing(oTracker),oTracker, oCritter)); } nCnt++; oCritter=GetNearestObject(OBJECT_TYPE_CREATURE, oTracker, nCnt); } /////Witch Wake: Added feedback to completion in case no creatures were found. DelayCommand(0.5, SendMessageToPC(oTracker, "Tracking Completed.")); return; }