Assuming you're working with a mod that uses the Main campaign.
1) Make a global box trigger. Generate your definitions in the editor. Create a sub goal of _Start to put your logic in. Call it "SheepQuest" or something. In the INIT section of that goal add your trigger to the DB_ExplorationZones database. It'll look like this: DB_ExplorationZones(TRIGGER_<YourTrigger>,1,<your_level>,<your_gain>);
<YourTrigger> will be the name of the global trigger you placed. <your_level> will be the level of the player you expect. This goes from 1 to 20. <your_gain> is a number from 1 to 10 to indicate how special that zone is. 1 is not very special. The XP your party get depends on those 2 numbers.
2) Create a global box trigger. Generate your definitions in the editor. In the INIT section of the SheepQuest goal we made in 1), add your trigger to the OneShotPlayerTrigger database. It'll look like this:
OneShotPlayerTrigger(TRIGGER_<yoursheeptrigger>);
Now in the KB section of your SheepQuest goal. React to the players walking into the trigger like this:
PROC
ProcOneShotTriggerEntered((CHARACTER)_,(TRIGGER)TRIGGER_<yoursheeptrigger>)
THEN
QuestUpdate("SheepQuest","FoundSheep");
QuestClose("SheepQuest");
GlobalSetEvent("FoundSheep"); //in case you want to check this in a dialog somewhere