P+ - Knuckles - Action - 0x11e

Entry Script

  1. UnknownEvent { namespace: 0x12, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: LongtermAccess, data_type: Int, address: 5 }), Variable(Variable { memory_type: LongtermAccess, data_type: Int, address: 98 })] }
  2. IntVariableSet { variable: LongtermAccessInt(FootstoolCount), value: 16 }
  3. IntVariableSet { variable: LongtermAccessInt (0x63), value: 0 }
  4. CallEveryFrame { thread_id: 9, script: 0x19624 }
  5. CreateInterrupt { interrupt_id: None, action: 0x121, requirement: (OnGround) }
  6. PreviousInterruptAddRequirement(TouchingAFloorWallOrCeiling value(4))
  7. PreviousInterruptAddRequirement((InternalConstantInt(CharacterDirection) GreaterThan scalar(0)))
  8. CreateInterrupt { interrupt_id: None, action: 0x121, requirement: (OnGround) }
  9. PreviousInterruptAddRequirement(TouchingAFloorWallOrCeiling value(2))
  10. PreviousInterruptAddRequirement((InternalConstantInt(CharacterDirection) LessThan scalar(0)))
  11. CreateInterrupt { interrupt_id: None, action: 0x11b, requirement: ((InternalConstantInt(HorizontalCharacterVelocity) LessThan scalar(0.25))) }
  12. PreviousInterruptAddRequirement((InternalConstantInt(VerticalCharacterVelocity) LessThan scalar(-0.5)))
  13. if (BoolIsTrue RandomAccessBool(SpecialsMovement))
    1. IfStatementAnd (not((InternalConstantInt(PreviousAction) Equal scalar(289))))
    2. CreateInterrupt { interrupt_id: None, action: 0x11f, requirement: (OnGround) }
    3. CreateInterrupt { interrupt_id: None, action: 0x11b, requirement: ((RandomAccessInt(ThrowDataParam2) LessThan scalar(50))) }
    4. PreviousInterruptAddRequirement(InAir)
    5. SetEdgeSlide(Airbourne)
    6. UnknownEvent { namespace: 0x9, code: 0x0, unk1: 0x0, arguments: [Value(2)] }
    7. SetAirGround(108)
    8. ChangeSubactionRestartFrame(SpecialSDashLw_1)
  14. else
    1. IntVariableSet { variable: LongtermAccessInt (0x60), value: 0 }
    2. UnknownEvent { namespace: 0x12, code: 0x2, unk1: 0x0, arguments: [Variable(Variable { memory_type: LongtermAccess, data_type: Int, address: 95 }), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 3 })] }
    3. CreateInterrupt { interrupt_id: None, action: 0x11f, requirement: (ButtonHeld value(3)) }
    4. PreviousInterruptAddRequirement(OnGround)
    5. CreateInterrupt { interrupt_id: None, action: 0x11f, requirement: ((RandomAccessInt(ThrowDataParam2) LessThanOrEqual scalar(0))) }
    6. PreviousInterruptAddRequirement(OnGround)
    7. CreateInterrupt { interrupt_id: None, action: 0x120, requirement: ((InternalConstantInt(ControlStickXAxisRelative) LessThanOrEqual InternalConstantInt (0xc31))) }
    8. PreviousInterruptAddRequirement(OnGround)
    9. Subroutine(0x1d094)
  15. loop Infinite times:
    1. if (OnGround)
      1. BoolVariableSetFalse { variable: LongtermAccessBool (0x71) }
      2. BoolVariableSetFalse { variable: LongtermAccessBool (0x7a) }
      3. IntVariableSet { variable: LongtermAccessInt(JumpsUsed), value: 0 }
      4. ChangeHurtBoxStateAll { state: Normal }
      5. SetEdgeSlide(StayOn)
      6. SetAirGround(107)
      7. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
    2. else
      1. SetEdgeSlide(Airbourne)
      2. SetAirGround(108)
      3. ChangeSubactionRestartFrame(SpecialSDashLw)
      4. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
    3. LoopRest

Exit Script

  1. if ((InternalConstantInt(CurrentAction) Equal scalar(12)))
    1. if (not(ThreadIsNull value(7)))
      1. RemoveIndependentSubroutine { thread_id: 7 }
    2. SetIndependentSubroutineThreadType { thread_id: 7, thread_type: 16 }
    3. IndependentSubroutine { thread_id: 7, script: 0x257e0 }
  2. else
    1. UnknownEvent { namespace: 0x12, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: LongtermAccess, data_type: Int, address: 98 }), Variable(Variable { memory_type: LongtermAccess, data_type: Int, address: 5 })] }