Jaysyn904 04165202c0 Initial upload
Initial upload
2024-11-25 19:36:07 -05:00

45 lines
2.0 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
// 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));
}