Author Sticky: Post Working Scripts Here
EtherDragon Posted: Thursday, 27 June 07:27PM
Hey, here's another good'n.

1. On_Disturb

2. Intended to be used on containers that have inventory. Causes Merchants to defend their containers.

3. Make sure there is an NPC in the area with the tag "MERCHANT".

NWScript:
/*

    On Disturbed Theft Detection Script

    by, EtherDragon, Jun 27, 2001.

    Message me at my Bioware account if you have

    any comments.

    This Script is designed to allow a near-by Merchant

    a chance to see the Player stealing items from

    their chests.

    Use: Placeable Containers, On Disturbed.

    Make sure the Chest or Container is part of the same

    faction that the Merchant is. If the player gets

    caught stealing enough, the Merchants will then no

    longer deal with them.

*/

void main()

{

    // Initialize Objects

    object oChest = OBJECT_SELF;

    object oPlayer = GetLastDisturbed();

    object oMerchant = GetNearestObjectByTag("MERCHANT");

    // Get the skill checks to see if the Merchant spotted the theft.

    int iPPSkillCheck = d20(1) + 1 + GetSkillRank(SKILL_PICK_POCKET, oPlayer);

    // The Merchant has a +2 circumstance bonus to spot.

    int iSpotCheck = d20(1) + 3 + GetSkillRank(SKILL_SPOT, oMerchant);

    // Make a text string to display to the Player.

    string sSkillCheck = "Pick Pocket " + IntToString(iPPSkillCheck) + " vs Spot " + IntToString(iSpotCheck);

    if (iPPSkillCheck > iSpotCheck)

    {

    // Theft not spotted.

        FloatingTextStringOnCreature(sSkillCheck + " - Success!", oPlayer);

        // Slightly worsen the rep with Merchants

        AdjustReputation(oPlayer, oChest, -5);

        return;

    }

    else

    {

    // Theft was spotted.

        FloatingTextStringOnCreature(sSkillCheck + " - Failed!", oPlayer);

        // Give the Player a bad rep with Merchants

        // and instruct the Merchant to attack the player.

        AdjustReputation(oPlayer, oChest, -20);

        AssignCommand(oMerchant, ActionAttack(oPlayer));

    }

}



~ED