P+ - Knuckles - Action - 0x117

Entry Script

  1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam2), value: 0 }
  2. BoolVariableSetFalse { variable: RandomAccessBool(EnableActionTransition) }
  3. SetAirGround(10)
  4. SetEdgeSlide(Airbourne)
  5. BoolVariableSetTrue { variable: LongtermAccessBool(CanNotTeeter) }
  6. SetVelocity { x_vel: 0.0, y_vel: 0.0 }
  7. BoolVariableSetFalse { variable: LongtermAccessBool(CanNotTeeter) }
  8. DisableMovement(DisableVertical)
  9. CreateInterrupt { interrupt_id: None, action: LandingLight, requirement: (OnGround) }
  10. CreateInterrupt { interrupt_id: None, action: Fall, requirement: ((RandomAccessInt (0x5) GreaterThanOrEqual scalar(180))) }
  11. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (not(TouchingAFloorWallOrCeiling value(6))) }
  12. PreviousInterruptAddRequirement((RandomAccessInt(ThrowDataParam2) GreaterThanOrEqual scalar(5)))
  13. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (TouchingAFloorWallOrCeiling value(1)) }
  14. CreateInterrupt { interrupt_id: None, action: Walljump, requirement: (ButtonPress value(2)) }
  15. CreateInterrupt { interrupt_id: None, action: WallclingEnd, requirement: ((InternalConstantInt(ControlStickXAxisRelativeReverse) GreaterThanOrEqual InternalConstantInt (0xc97))) }
  16. CreateInterrupt { interrupt_id: None, action: Fall, requirement: ((RandomAccessInt (0x6) GreaterThanOrEqual scalar(4))) }
  17. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 7 }
  18. EnableInterruptGroup(AirItemThrow)
  19. EnableInterruptGroup(AirAttack)
  20. CallEveryFrame { thread_id: 9, script: 0x296c8 }
  21. loop Infinite times:
    1. UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 2 })] }
    2. Case(0)
    3. ChangeSubactionRestartFrame(WallClimbUpStart)
    4. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
    5. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(0), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
    6. Case(1)
    7. ChangeSubactionRestartFrame(WallClimbUp)
    8. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(0), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
    9. Case(2)
    10. ChangeSubactionRestartFrame(WallClimbUpEnd1)
    11. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
    12. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(4), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
    13. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
    14. Case(3)
    15. ChangeSubactionRestartFrame(WallClimbUpEnd2)
    16. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
    17. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(4), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
    18. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
    19. Case(4)
    20. ChangeSubactionRestartFrame(WallClimbDownStart)
    21. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
    22. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(5), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
    23. Case(5)
    24. ChangeSubactionRestartFrame(WallClimbDown)
    25. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(5), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
    26. Case(6)
    27. ChangeSubactionRestartFrame(WallClimbDownEnd)
    28. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
    29. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(4), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
    30. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
    31. Case(7)
    32. if (not(BoolIsTrue RandomAccessInt (0x10)))
      1. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      2. ChangeSubactionRestartFrame(WallClimbWait_1)
    33. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(4), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3134 })] }
    34. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1018 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3136 })] }
    35. EndSwitch
    36. LoopRest
    37. UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 2 })] }
    38. Case(0)
    39. if (AnimationEnd)
      1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 1 }
    40. else
      1. if ((InternalConstantInt(ControlStickYAxis) LessThan InternalConstantInt(CrawlControlStickXOffsetMax)))
        1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 2 }
    41. Case(1)
    42. if ((InternalConstantInt(ControlStickYAxis) LessThan InternalConstantInt(CrawlControlStickXOffsetMax)))
      1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 2 }
    43. Case(2)
    44. if (AnimationEnd)
      1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 7 }
    45. else
      1. if ((InternalConstantInt(ControlStickYAxis) LessThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMin)))
        1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
      2. else
        1. if ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMax)))
          1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
    46. Case(3)
    47. if (AnimationEnd)
      1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 7 }
    48. else
      1. if ((InternalConstantInt(ControlStickYAxis) LessThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMin)))
        1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
      2. else
        1. if ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMax)))
          1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
    49. Case(4)
    50. if (AnimationEnd)
      1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 5 }
    51. else
      1. if ((InternalConstantInt(ControlStickYAxis) LessThan InternalConstantInt(CrawlControlStickXOffsetMax)))
        1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 6 }
    52. Case(5)
    53. if ((InternalConstantInt(ControlStickYAxis) GreaterThan InternalConstantInt(CrawlControlStickXOffsetMin)))
      1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 6 }
    54. Case(6)
    55. if (AnimationEnd)
      1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 7 }
    56. else
      1. if ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMax)))
        1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
      2. else
        1. if ((InternalConstantInt(ControlStickYAxis) LessThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMin)))
          1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
    57. Case(7)
    58. if ((InternalConstantInt(ControlStickYAxis) GreaterThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMax)))
      1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
    59. else
      1. if ((InternalConstantInt(ControlStickYAxis) LessThanOrEqual InternalConstantInt(CrawlControlStickXOffsetMin)))
        1. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
    60. EndSwitch

Exit Script

  1. if ((InternalConstantInt(CurrentAction) NotEqual scalar(275)))
    1. IfStatementAnd ((InternalConstantInt(CurrentAction) NotEqual scalar(281)))
    2. IfStatementAnd (not(BoolIsTrue LongtermAccessBool (0x4b)))
    3. AddVelocity { x_vel: Constant(-1.25), y_vel: Constant(0.0) }
  2. if ((InternalConstantInt(CurrentAction) Equal scalar(103)))
    1. ReverseDirection
    2. Posture(4)
  3. BoolVariableSetFalse { variable: LongtermAccessBool (0x4b) }