//////////////////////////////////////////////////////////////////////////////// // Lock and Unlock City Gates // opw_lock_unlock // By Don Anderson // dandersonru@msn.com // // Place this script in the Switch OnUsed Event // //////////////////////////////////////////////////////////////////////////////// void ActivateSwitch() { DelayCommand(0.1, PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)); DelayCommand(2.0, PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE)); } void main() { object oMech = OBJECT_SELF; location lLoc = GetLocation(oMech); string sGate; object oGate; object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 10.0, lLoc, TRUE, OBJECT_TYPE_DOOR); while (GetIsObjectValid(oTarget)) { sGate = GetName(oTarget); if(sGate == "ORS_CityGate") { oGate = oTarget; break; } oTarget = GetNextObjectInShape(SHAPE_SPHERE, 10.0, lLoc, TRUE, OBJECT_TYPE_DOOR); } float fDist = GetDistanceBetween(oMech,oGate); if(fDist <= 10.0) { ActivateSwitch(); string sLink = GetLocalString(oGate,"LINKED"); object oLinkedGate = GetObjectByTag(sLink); int nLocked = GetLocked(oGate); if(nLocked == FALSE) { SetLocked(oGate,TRUE); SetLocked(oLinkedGate,TRUE); SpeakString("City Gate is Locked!"); } if(nLocked == TRUE) { SetLocked(oGate,FALSE); SetLocked(oLinkedGate,FALSE); SpeakString("City Gate is Unlocked!"); } } }