Author Sticky: Post Working Scripts Here
Karthal Posted: Wednesday, 03 July 06:20PM
Here are a couple of scripts that make a guard the temporary enemy of a player when they step outside of their cell. When they return to their cell, they are made temporary friends. The friend state decays back to neutral.

How to use:

1. Create a guard (tag: GUARD) which is stationed outside of the cell of the prisoner. Make sure they are usually neutral to the character.
2. Draw a generic trigger polygon around the area considered the prison cell.
3. Make this script the onExit script (named: cs_leave_cell):
NWScript:
// cs_leave_cell makes the PC an enemy of the guards when they exit a particular

//      area. The script is reversed by calling cs_enter_cell.

void main()

{

    object oPC = GetExitingObject();

    if (GetIsPC(oPC))

    {

        object oGuard1 = GetObjectByTag("GUARD");

        SetIsTemporaryEnemy(oPC, oGuard1);

        SendMessageToPC(oPC, "WATCH OUT FOR THE GUARDS!");

    }

}


4. Make this the onEnter script (named: cs_enter_cell)

NWScript:
// cs_enter_cell makes the PC an friend of the guards when they return to an

//      area. The script is reversed by calling cs_leave_cell.

void main()

{

    object oPC = GetEnteringObject();

    if (GetIsPC(oPC))

    {

        object oGuard1 = GetObjectByTag("GUARD");

        SetIsTemporaryFriend(oPC, oGuard1, TRUE, 15.0);

        SendMessageToPC(oPC, "You should be safe again.");

    }

}


This works better if the guard is patrolling some waypoints. They should go back to their patrol when they are friendly to the NPC again.