void main()
{
  object oPC = GetEnteringObject();
 if( GetItemPossessedBy(oPC, "Shovel") == OBJECT_INVALID){return;}


        // replace this tag string with the tag string of your NPC.
        object oNPC = GetNearestObjectByTag("soil");

        // make sure we found the NPC.  May be dead, etc.

              if (GetIsPC(oPC)) {
                // check to make sure NPC isn't already talking to somebody.
                if (!IsInConversation(oNPC)) {

                        // stop whatever we were already doing.
                        AssignCommand(oNPC, ClearAllActions());

                        // walk NPC to the PC.  If you want NPC to run change FALSE to TRUE.

                        // start talking to PC.
                        AssignCommand(oNPC, ActionStartConversation(oPC));
                }
        }

        // if you want this script to only run the first time anybody
        // sets it off, uncomment the line below:
        //DestroyObject(OBJECT_SELF);
}