Dont know if this will help but we use a bit of a changed versin of the BioWare one.
On the Heart beat of the Mod we do a simple check and include.
#include "theft_functions"
void main()
//Paste below the void main in your own module heartbeat script
object oFem;
if(oPC!=OBJECT_INVALID && GetIsPC(oPC) && !GetIsDM(oPC))
{
if(GetCurrentAction(oPC)==ACTION_OPENLOCK)
{
//Theft_SpotThief(oPC,FALSE,oPC);
}
else if (GetCurrentAction(oPC)==ACTION_PICKPOCKET)
{
//Good chance the victom is closest
//If anybody knows a better way to do this let me know
object oVictom = GetNearestObject(OBJECT_TYPE_CREATURE,oPC);
//Theft_SpotThief(oPC,FALSE,oVictom);
}
else if((oFem = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC))!= OBJECT_INVALID)
{//v1.1 Familiar Check
if(GetCurrentAction(oFem)==ACTION_OPENLOCK)
{
//Theft_SpotThief(oFem,FALSE,oFem);
}
}
else if((oFem = GetHenchman(oPC))!= OBJECT_INVALID)
{ //v1.1 Henchmen Check
if(GetCurrentAction(oFem)==ACTION_OPENLOCK)
{
//Theft_SpotThief(oFem,FALSE,oFem);
}
}
On some spawned in NPCs that are NOT Guards
#include "theft_functions"
void main()
{
int nEvent = GetUserDefinedEventNumber();
if(nEvent == EVENT_HEARTBEAT)
{
if(GetLocalInt(OBJECT_SELF,"SPOTTED_THIEF"))
{
SetLocalInt(OBJECT_SELF,"SPOTTED_THIEF",0);
SpeakString("Thief!! GUARDS!!!");
Theft_AlertGuards(GetLocalObject(OBJECT_SELF,"THIEF"));
}
On Some that are Guards in case they are in the vincinity
//*************** THEFT CODE ***********************
int thief_alert = GetLocalInt(OBJECT_SELF,"SPOTTED_THIEF");
if(thief_alert)
{
SetLocalInt(OBJECT_SELF,"SPOTTED_THIEF",0);
object oThief = GetLocalObject(OBJECT_SELF,"THIEF");
if(oThief != OBJECT_INVALID)
{
SetLocalInt(OBJECT_SELF,"SPOTTED_THIEF",0);
ActionAttack(oThief);
DetermineCombatRound(oThief);
SpeakString("Thief!!!");//React to theft
//I saw the crime, Call for help.
if(thief_alert == SPOTTED_THIEF)
Theft_AlertGuards(oThief);
}
And then added this
#include "theft_functions"
to the same scripts listed above. I know it sounds complicated but it has allowed us to do some things for rogues and allow them some more functionality. If I explained it horrible I apologize as I always suck at explaining things.