HoS_PRC8/_mod/_module/nss/npcact_ext_pick.nss
Jaysyn904 e2f4ba74d5 Merged redundant hak files
Merged redundant hak files.  Moved hak scripts into module.  Updated gitignore.  Full Compile.  Added release folder & archive.
2024-12-12 15:02:17 -05:00

80 lines
3.1 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
// npcact_ext_pick - NPC ACTIVITIES 6.0 Pick Pockets external command
//------------------------------------------------------------------------------
// By Deva Bryson Winblood 06/13/2004
//------------------------------------------------------------------------------
// Last Modified By: Deva Bryson Winblood
// Last Modified Date: 06/13/2004
////////////////////////////////////////////////////////////////////////////////
void NPCACTPP(object oTarget)
{
float fDist=GetDistanceBetween(oTarget,OBJECT_SELF);
if (fDist<3.0&&fDist!=0.0)
{
int nCheck= (d20()+(GetSkillRank(SKILL_PICK_POCKET, OBJECT_SELF))) - (d20()+(GetSkillRank(SKILL_SPOT,oTarget)));
if (nCheck>0)
{ // success
TakeGoldFromCreature(Random(20)+1,oTarget,FALSE);
if(GetIsPC(oTarget))
DelayCommand(60.0,SendMessageToPC(oTarget,"You have been robbed."));
ActionMoveAwayFromObject(oTarget,FALSE,20.0);
} // success
else if (nCheck<-2)
{ // failed and noticed
if (GetIsPC(oTarget))
SendMessageToPC(oTarget,GetName(OBJECT_SELF)+" attempted to pick your pocket.");
else
{ // NPC noticed
ActionMoveAwayFromObject(oTarget,TRUE,20.0);
string sRandStatement="That's right run away you scoundrel!";
switch(Random(4))
{ // switch
case 0: sRandStatement="You thief!! Next time I see you I'll...";
break;
case 1: sRandStatement="Stop! That thief just tried to rob me.";
break;
case 2: sRandStatement="You highway robber! I'm warning the authorities about you.";
default: break;
}// switch
AssignCommand(oTarget,ActionPlayAnimation(ANIMATION_LOOPING_TALK_FORCEFUL,1.0,2.0));
AssignCommand(oTarget,ActionSpeakString(sRandStatement));
} // NPC Noticed
} // failed and noticed
}
} // NPCACTPP - PickPockets Support
void main()
{ // takes random 1-20 gold pieces
object oTarget;
int nLoop=1;
float fDelay=0.2;
//SendMessageToPC(GetFirstPC(),"PickPockets was called");
if (GetHasSkill(SKILL_PICK_POCKET,OBJECT_SELF)!=0)
{ // has skill
//SendMessageToPC(GetFirstPC(),"[====PICK POCKETS====]");
while(nLoop<10)
{ // while
oTarget=GetNearestCreature(CREATURE_TYPE_IS_ALIVE,TRUE,OBJECT_SELF,nLoop,CREATURE_TYPE_PERCEPTION,PERCEPTION_SEEN);
if (oTarget!=OBJECT_INVALID&&GetDistanceBetween(oTarget,OBJECT_SELF)<=12.0)
{ // !OI
//SendMessageToPC(GetFirstPC(),"[==TEST:"+GetName(oTarget)+"==]");
if ((GetIsPC(oTarget))||(!GetFactionEqual(oTarget)))
nLoop=12;
} // !OI
if (nLoop!=12) nLoop++;
} // while
if (nLoop==12)
{ // Found a victim
//SendMessageToPC(GetFirstPC(),"Victim found");
//ActionSpeakString("My victim is "+GetName(oTarget));
fDelay=18.0;
if(GetHasSkill(SKILL_HIDE,OBJECT_SELF))
ActionUseSkill(SKILL_HIDE,OBJECT_SELF);
ActionForceMoveToObject(oTarget,FALSE,0.5);
ActionDoCommand(NPCACTPP(oTarget));
} // Found a victim
} // has skill
SetLocalFloat(OBJECT_SELF,"fDelay",fDelay);
} // NPCActionPickPockets()