void main() { string sDialValue = GetLocalString(GetPCSpeaker(), "DialValue1") + GetLocalString(GetPCSpeaker(), "DialValue2") + GetLocalString(GetPCSpeaker(), "DialValue3"); string sLandGateDest = "LandGate" + sDialValue; string sLandGateNote = "LandGateNote" + sDialValue; object oLandGateDest = GetObjectByTag(sLandGateDest); object oLandGatePortal = GetNearestObjectByTag("LandGatePortal"); if ((oLandGateDest != OBJECT_INVALID) && (GetItemPossessedBy(GetPCSpeaker(), sLandGateNote) != OBJECT_INVALID)) { SetLocalString(oLandGatePortal, "CurrentDest", sLandGateDest); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect (VFX_IMP_CHARM), oLandGatePortal); AssignCommand(oLandGatePortal, PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE, 0.5, 1.0)); SpeakString("LandGate Initialized... Enter When Ready..."); SetLocalInt(GetNearestObjectByTag("LandGatePortal"), "iActivated", 1); } else { if (sDialValue != "") SpeakString("System Error - Bad LandGate Destination or not memorised."); } }