{ saved_Control5[0] saved_Gate[0] Init[ (s) { SetName(1547); SetUsable( true ); if(saved_Gate = 0) { SetUseText(1547); } else { SetUseText(3755); } } ] OnUse[ () { GetPlayer().OpenMenu("GlcrCrwl\\\\Gate5"); }] OnReallyUsed1[ (s) { Level.Log("pre-key"); Key = GetPlayer().FindInventory("frozen_key"); Level.Log("pre-if"); if(saved_Control5 = 0) { Level.Log("if"); if(Key != null) { Gate = Level.GetEntity("gate5"); Gate.RaiseDoor(); if (not IsMultiplayerClient()) { GetPlayer().OpenMenu("GlcrCrwl\\\\OpenGate"); } saved_Control5 = 1; GetPlayer().RemoveItem(Key, false); SetUseText(3755); saved_Gate = 1; } else { if (not IsMultiplayerClient()) { GetPlayer().OpenMenu("GlcrCrwl\\\\NoKey"); } } } else { Level.Log("else"); saved_Control5 = 0; Item = Level.CreateEntity( 805 ); GetPlayer().PickupItem( Item ); Gate = Level.GetEntity("gate5"); Gate.LowerDoor(); if (not IsMultiplayerClient()) { GetPlayer().OpenMenu("GlcrCrwl\\\\CloseGate"); } SetUseText(1547); saved_Gate = 0; } } ] OnReallyUsed2[ (s) { Level.Log("pre-key"); Key = GetPlayer().FindInventory("frozen_key"); Level.Log("pre-if"); if(saved_Control5 = 0) { Level.Log("if"); if(Key != null) { Gate = Level.GetEntity("gate5"); Gate.RaiseDoor(); if (not IsMultiplayerClient()) { GetPlayer().OpenMenu("GlcrCrwl\\\\OpenGate"); } saved_Control5 = 1; GetPlayer().RemoveItem(Key, false); SetUseText(3755); saved_Gate = 1; } else { if (not IsMultiplayerClient()) { GetPlayer().OpenMenu("GlcrCrwl\\\\NoKey"); } } } else { Level.Log("else"); saved_Control5 = 0; Item = Level.CreateEntity( 805 ); GetPlayer().PickupItem( Item ); Gate = Level.GetEntity("gate5"); Gate.LowerDoor(); if (not IsMultiplayerClient()) { GetPlayer().OpenMenu("GlcrCrwl\\\\CloseGate"); } SetUseText(1547); saved_Gate = 0; } } ] }