//-------------MAIN---------------
thread 'ROPE'
:ROPE_11
wait 0
if
Player.Defined($PLAYER_CHAR)
else_jump @ROPE_11
wait 0
00E1: player 0 pressed_key 16
00E1: player 0 pressed_key 18
else_jump @ROPE_11
Model.Load(#NULL)
:ROPE_58
wait 0
if
Model.Available(#NULL)
else_jump @ROPE_58
04C4: store_coords_to 2@ 3@ 4@ from_actor $PLAYER_ACTOR with_offset 0.0 2.0 0.0
04C4: store_coords_to 5@ 6@ 7@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0
04C4: store_coords_to 24@ 25@ 26@ from_actor $PLAYER_ACTOR with_offset 2.0 3.0 1.0
04C4: store_coords_to 27@ 28@ 29@ from_actor $PLAYER_ACTOR with_offset 0.0 2.0 -10.0
02CE: 8@ = ground_z_at 2@ 3@ 4@
050A: 31@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 2@ 3@ 8@
if
0818: actor $PLAYER_ACTOR in_air
else_jump @ROPE_253
jump @ROPE_11
:ROPE_253
wait 0
if
31@ >= 5.0
else_jump @ROPE_11
0087: 23@ = 7@ // (float)
23@ += 50.0
Actor.PutAt($PLAYER_ACTOR, 5@, 6@, 23@)
Actor.LockInCurrentPosition($PLAYER_ACTOR) = True
0503: create_actor_on_rope_with_pedtype 8 model #NULL at 2@ 3@ 4@ handle_as 9@
Camera.SetPosition(24@, 25@, 26@, 0.0, 0.0, 0.0)
Camera.PointAt(27@, 28@, 29@, 2)
:ROPE_374
wait 0
04C4: store_coords_to 14@ 15@ 16@ from_actor 9@ with_offset 0.0 0.0 0.0
02CE: 17@ = ground_z_at 14@ 15@ 16@
050A: 18@ = distance_between_XYZ 14@ 15@ 16@ and_XYZ 14@ 15@ 17@
if or
not 18@ >= 2.0
00E1: player 0 pressed_key 16
04AD: actor 9@ in_water
else_jump @ROPE_374
04C4: store_coords_to 20@ 21@ 22@ from_actor 9@ with_offset 0.0 0.0 0.0
Actor.DestroyInstantly(9@)
Actor.RemoveReferences(9@)
Actor.LockInCurrentPosition($PLAYER_ACTOR) = False
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
Camera.Restore_WithJumpCut
wait 1000
Model.Destroy(#NULL)
jump @ROPE_11