PM3.02 - Snake - Action - 0x112 SpecialN

Entry Script

  1. if (HoldingItem)
    1. ItemDrop
  2. if (ArticleExists value(13))
    1. CreateInterrupt { interrupt_id: None, action: 0x12d, requirement: (ButtonTap) }
    2. Return
  3. FloatVariableSet { variable: RandomAccessFloat (0x8), value: -1 }
  4. CreateInterrupt { interrupt_id: None, action: 0x12d, requirement: (AnimationEnd) }
  5. PreviousInterruptAddRequirement(BoolIsTrue RandomAccessBool(EnableActionTransition))
  6. CreateInterrupt { interrupt_id: None, action: 0x122, requirement: (AnimationEnd) }
  7. PreviousInterruptAddRequirement(OnGround)
  8. CreateInterrupt { interrupt_id: None, action: 0x12b, requirement: (AnimationEnd) }
  9. PreviousInterruptAddRequirement(InAir)
  10. CallEveryFrame { thread_id: 9, script: 0x1b1b4 }
  11. IntVariableSet { variable: RandomAccessInt (0x0), value: 477 }
  12. IntVariableSet { variable: RandomAccessInt (0x1), value: 483 }
  13. loop Infinite times:
    1. if (OnGround)
      1. Subroutine(0x19058)
      2. if ((InternalConstantInt(CurrentSubaction) Equal RandomAccessInt (0x1)))
        1. UnknownEvent { namespace: 0x4, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 }), Bool(true)] }
        2. UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(12), Value(0), Bool(true)] }
      3. else
        1. UnknownEvent { namespace: 0x4, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
        2. UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(12), Value(0)] }
      4. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
      5. EnableInterrupt(10000)
      6. DisableInterrupt(10002)
    2. else
      1. Subroutine(0x190b0)
      2. if ((InternalConstantInt(CurrentSubaction) Equal RandomAccessInt (0x0)))
        1. UnknownEvent { namespace: 0x4, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 1 }), Bool(true)] }
        2. UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(12), Value(1), Bool(true)] }
      3. else
        1. UnknownEvent { namespace: 0x4, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 1 })] }
        2. UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(12), Value(1)] }
      4. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
      5. DisableInterrupt(10000)
      6. EnableInterrupt(10002)
    3. LoopRest

Exit Script

  1. if ((InternalConstantInt(CurrentAction) Equal scalar(301)))
    1. FloatVariableSet { variable: RandomAccessFloat (0x8), value: InternalConstantInt(ControlStickXAxisRelative) }
  2. ArticleRemove(12)
  3. Subroutine(0x1b0f4)