// Someone cast an unlock spell
IfOrdered
  tmpx = selforder
  tmpy = 491  // The unique code for an unlock order
  IfXIsEqualToY
    // Is it closed?
    tmpargument = 0
    IfStateIs
      // Open it up
      tmpargument = ACTIONMG
      DoAction
        tmpargument = 1
        SetState
        tmpargument = 60
        SetBumpHeight
        KeepAction
        tmpargument = 0
        tmpdistance = 11025
        PlaySound
        // Wait a while
        tmpargument = 40
        SetTime
        // Tell the players...
        tmpargument = 5
        SendMessageNear

// Someone is trying to open it
IfBumped
  // Can they open the chest?
  SetTargetToWhoeverBumped
  IfTargetCanOpenStuff

    // Is it closed?
    tmpargument = 0
    IfStateIs

      // Are they in front?
      IfFacingTarget

        // Make target crouch
        tmpargument = ACTIONMG
        TargetDoAction

        // Give some experience
        tmpargument = 5
        tmpdistance = EXPDARE
        GiveExperienceToTarget

        // Open it up
        tmpargument = ACTIONMG
        DoAction
          tmpargument = 1
          SetState
          tmpargument = 60
          SetBumpHeight
          KeepAction
          tmpargument = 0
          tmpdistance = 11025
          PlaySound
          // Wait a while
          tmpargument = 40
          SetTime
          // Tell the players...
          tmpargument = 6
          SendMessageNear
    Else
      // Wait before allowing a swap
      IfTimeOut
        // Reset the timer
        tmpargument = 40
        SetTime

        // Make target crouch
        tmpargument = ACTIONMG
        TargetDoAction

        // Can the target use this armor (Paladin)
        tmpargument = 0
        IfArmorIs
          tmpargument = [PALA]
          IfTargetHasID
            // Swap armor
            GetContent
            ChangeTargetArmor
            SetContent
            tmpargument = tmpx
            SendMessageNear
          Else
            // Say it's for someone else
            tmpargument = 4
            SendMessageNear

        // Can the target use this armor (Wizard)
        tmpargument = 1
        IfArmorIs
          tmpargument = [WIZA]
          IfTargetHasID
            // Swap armor
            GetContent
            ChangeTargetArmor
            SetContent
            tmpargument = tmpx
            SendMessageNear
          Else
            // Say it's for someone else
            tmpargument = 7
            SendMessageNear

// All done
End
