//////////////////////////////////////////////////////////////////////////////// // Deva's Random Actions - This is used with encounters for something better than // actionrandomwalk(); // By Deva Bryson Winblood. 12/24/2003 //////////////////////////////////////////////////////////////////////////////// #include "antistuck_h" void main() { object oMe=OBJECT_SELF; object oOb; int nR=d6(); if (nR<5) { // wander oOb=GetNearestObject(OBJECT_TYPE_WAYPOINT,oMe,d20()); if (oOb==OBJECT_INVALID) oOb=GetNearestObject(OBJECT_TYPE_PLACEABLE,oMe,d4()); if (oOb==OBJECT_INVALID) oOb=GetNearestObject(OBJECT_TYPE_WAYPOINT,oMe,d6()); if (oOb==OBJECT_INVALID) oOb=GetNearestObject(OBJECT_TYPE_WAYPOINT,oMe,1); AssignCommand(oMe,ASActionMoveToObject(oOb,FALSE,1.0)); } // wander else if (nR==5) { // act environment nR=d6(); AssignCommand(oMe,ClearAllActions()); if (nR==1) ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK,1.0,3.0); else if (nR==2) ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_BORED,1.0,5.0); else if (nR==3) ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD,1.0,5.0); else if (nR==4) ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW,1.0,6.0); else if (nR==5) ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS,1.0,20.0); else { ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_TIRED,1.0,8.0); } } // act environment else if (nR==6) { // act NPC oOb=GetNearestCreature(CREATURE_TYPE_PERCEPTION,PERCEPTION_SEEN,oMe,1,CREATURE_TYPE_REPUTATION,REPUTATION_TYPE_FRIEND); if (oOb==OBJECT_INVALID) oOb=GetNearestCreature(CREATURE_TYPE_PERCEPTION,PERCEPTION_SEEN,oMe,1,CREATURE_TYPE_REPUTATION,REPUTATION_TYPE_NEUTRAL); if (oOb!=OBJECT_INVALID) { // talk to target AssignCommand(oMe,ClearAllActions()); AssignCommand(oMe,ActionMoveToObject(oOb,FALSE,3.0)); AssignCommand(oMe,ActionPlayAnimation(ANIMATION_LOOPING_TALK_NORMAL,1.0,8.0)); } // talk to target } // act NPC DelayCommand(24.0,ExecuteScript("dbw_randomact",oMe)); }