void main() { { object oLeaving=GetExitingObject(); if (!GetIsPC(oLeaving)) { return; } object oObject = GetFirstObjectInArea(); int nPCinArea=FALSE; location lLoc; object oItem; // first of all, check every object in the area and see if it is a PC. object oTest=GetFirstPC(); // Test to make sure the activator is a DM, or is a DM // controlling a creature. while (GetIsObjectValid(oTest) == TRUE) { if ((GetArea(oTest) == OBJECT_SELF)&&(!GetIsDM(oTest))) { nPCinArea = TRUE; return; } oTest=GetNextPC(); } //while (GetIsObjectValid(oObject)) // { // if (GetIsPC(oObject)) // { // nPCinArea = TRUE; // return; // } // oObject=GetNextObjectInArea(); // } // if not, then run the next bit of the script if (nPCinArea != TRUE) { object oRend=GetObjectByTag("jw_sigard_rend"); if (GetIsObjectValid(oRend)) { AssignCommand(oRend,ClearAllActions()); AssignCommand(oRend,JumpToLocation(GetLocation(GetWaypointByTag("POST_jw_sigard_rend")))); } location lLocation; int nIdx=0; string sString="lStoneLoc"; object oStone; oStone=GetObjectByTag("jw_sigard_stone"); while (GetIsObjectValid(oStone)) { SetPlotFlag(oStone,0); DestroyObject(oStone); nIdx++; oStone=GetObjectByTag("jw_sigard_stone",nIdx); } for (nIdx=0;nIdx<=GetLocalInt(OBJECT_SELF,"nStoneNumber");nIdx++) { lLocation=GetLocalLocation(OBJECT_SELF,"sString"+IntToString(nIdx)); oStone=CreateObject(OBJECT_TYPE_PLACEABLE,"jw_sigard_stone",lLocation); } oObject = GetFirstObjectInArea(); while (GetIsObjectValid(oObject) == TRUE) { // if (GetIsEncounterCreature(oObject)&&!GetPlotFlag(oObject)) // { // DestroyObject(oObject); // } // if (GetObjectType(oObject)==OBJECT_TYPE_TRIGGER) // { // SetEncounterActive(TRUE,oObject); // } if (GetTag(oObject) == "BodyBag") { oItem = GetFirstItemInInventory(oObject); while (GetIsObjectValid(oItem) == TRUE) { DestroyObject(oItem); oItem=GetNextItemInInventory(oObject); } SetPlotFlag(oObject,FALSE); DestroyObject(oObject); } if (GetResRef(oObject)=="jw_trap_trigger") { SetLocalInt(oObject,"Reset",1); } oObject=GetNextObjectInArea(); } } } }