#1 10-04-2011 14:02

Luten
Registered: 10-04-2011
Posts: 1

Parchute script problem. He doesn't want to open.

Hi

I've problem with parachute script to San Andreas. I added external script correctly. In the game script works but not really. I can't open him, I was pressing all keys on my keyboard (mouse too) but nothing happens. I searched this forum for partchute script but nothing for me didn't work.

When I wanted to use original script.img I had problem with parachute script. Camera was to close player and the sam script wasn't working correctly. I had always crash game when I was landing on the ground or water.

I'm using SannyBuilder with CLEO4.

I've something like this:

{define mission an' stuff here}
DEFINE EXTERNAL_SCRIPTS 0
DEFINE SCRIPT PLAYER_PARACHUTE AT @PLCHUTE
{MAIN thread}
0005: $1500 = 5.0
0005: $1501 = -5.0
0005: $1503 = -1.5
0005: $1504 = -30.0
0005: $1505 = 32.0
0005: $1506 = 0.0
0004: $1512 = 0
0004: $FREEFALL_STAGE = 0
0004: $PARACHUTE_CREATION_STAGE = 0

:MAIN_755
wait 0
if
  Player.Defined($PLAYER_CHAR)
jf @MAIN_853
if
  Actor.HasWeapon($PLAYER_ACTOR, 46)
jf @MAIN_849
0926: $SCRIPT_STATUS = external_script_status 0 (PLAYER_PARACHUTE)
if
 $SCRIPT_STATUS == 0
jf @MAIN_842
08A9: load_external_script 0 (PLAYER_PARACHUTE)
if
08AB:   external_script 0 (PLAYER_PARACHUTE) loaded
jf @MAIN_842
0913: run_external_script 0 (PLAYER_PARACHUTE)  

:MAIN_842
jump @MAIN_853

:MAIN_849
090F: end_external_script 0 (PLAYER_PARACHUTE)

:MAIN_853
jump @MAIN_755

{other stuff}

end_thread

{other stuff}

{end of SCM}

//-------------External script 0 (PLAYER_PARACHUTE)---------------

:PLCHUTE
thread 'PLCHUTE'
Model.Load(#GUN_PARA)

:PLCHUTE_16
if
 not Model.Available(#GUN_PARA)
else_jump @PLCHUTE_43
wait 0
jump @PLCHUTE_16

:PLCHUTE_43
if
 not Actor.Dead($PLAYER_ACTOR)
else_jump @PLCHUTE_59

:PLCHUTE_59
$1498 = 0
$FREEFALL_STAGE = 0
$PARACHUTE_CREATION_STAGE = 0
if
$1498 == 999
else_jump @PLCHUTE_118
$PICKUP_PARACHUTE = Pickup.Create(#GUN_PARA, 3, $TEMPVAR_X_COORD, $TEMPVAR_Y_COORD, $TEMPVAR_Z_COORD)

:PLCHUTE_118
wait 0
if
 not Actor.Dead($PLAYER_ACTOR)
else_jump @PLCHUTE_5455
if
8800:   not in_two_players_mode
else_jump @PLCHUTE_5455
if
 not $FREEFALL_STAGE == 0
else_jump @PLCHUTE_176
0992: set_player $PLAYER_CHAR weapons_scrollable 0

:PLCHUTE_176
if
$PARACHUTE_CREATION_STAGE > 0
else_jump @PLCHUTE_219
if
 not Actor.HasWeapon($PLAYER_ACTOR, 46)
else_jump @PLCHUTE_219
gosub @PLCHUTE_5521

:PLCHUTE_219
if
$PARACHUTE_CREATION_STAGE == 0
else_jump @PLCHUTE_274
if
 Actor.HasWeapon($PLAYER_ACTOR, 46)
else_jump @PLCHUTE_274
Model.Load(#PARACHUTE)
$PARACHUTE_CREATION_STAGE = 1
$1498 = 0

:PLCHUTE_274
if
$PARACHUTE_CREATION_STAGE == 1
else_jump @PLCHUTE_377
if
 Model.Available(#PARACHUTE)
else_jump @PLCHUTE_377
17@ = Object.Create(#PARACHUTE, $TEMPVAR_X_COORD, $TEMPVAR_Y_COORD, $TEMPVAR_Z_COORD)
069B: attach_object 17@ to_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0
0750: set_object 17@ visibility 0
$PARACHUTE_CREATION_STAGE = 2

:PLCHUTE_377
if and
$PARACHUTE_CREATION_STAGE == 2
$FREEFALL_STAGE == 1
else_jump @PLCHUTE_409
$PARACHUTE_CREATION_STAGE = 3

:PLCHUTE_409
if and
$FREEFALL_STAGE == 0
$PARACHUTE_CREATION_STAGE > 0
else_jump @PLCHUTE_565
if
0818:   actor $PLAYER_ACTOR in_air
else_jump @PLCHUTE_565
083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ $1507 $1508 $1509
if
-10.0 > $1509
else_jump @PLCHUTE_565
0819: 7@ = actor $PLAYER_ACTOR distance_from_ground
if
7@ > 20.0
else_jump @PLCHUTE_565
097A: play_audio_at -1000.0 -1000.0 -1000.0 event 1037
$FREEFALL_STAGE = 1
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 46
0@ = 0
$8268 = 0.0

:PLCHUTE_565
if
$FREEFALL_STAGE == 1
else_jump @PLCHUTE_2386
if
0@ == 0
else_jump @PLCHUTE_608
0@ = 2

:PLCHUTE_608
if
0@ == 2
else_jump @PLCHUTE_729
062E: unknown_get_actor $PLAYER_ACTOR task 2066 status_store_to 27@ // ret 7 if not found
if
04A4:   27@ == 7 // @ == any
else_jump @PLCHUTE_729
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PED" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB
04ED: load_animation "PARACHUTE"
15@ = 1
1@ = Actor.Angle($PLAYER_ACTOR)
0@ = 3

:PLCHUTE_729
if
0@ == 3
else_jump @PLCHUTE_2386
062E: unknown_get_actor $PLAYER_ACTOR task 2066 status_store_to 27@ // ret 7 if not found
if
04A4:   27@ == 7 // @ == any
else_jump @PLCHUTE_815
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PED" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB

:PLCHUTE_815
0819: 7@ = actor $PLAYER_ACTOR distance_from_ground
if and
100.0 > 7@
7@ > 60.0
else_jump @PLCHUTE_912
if
04EE:   animation "PARACHUTE" loaded
else_jump @PLCHUTE_912
if
$ONMISSION == 0
else_jump @PLCHUTE_912
00BC: show_text_highpriority GXT 'PARA_01' time 1000 flag 1  // ~s~Open your parachute!

:PLCHUTE_912
0494: get_joystick 0 data_to 10@ 11@ 12@ 12@
if
$1511 == 1
else_jump @PLCHUTE_960
10@ = 0
11@ = 0

:PLCHUTE_960
0093: 21@ = integer 10@ to_float
21@ /= 4.267
0063: 21@ -= 2@ // (float)
21@ /= 20.0
005B: 2@ += 21@ // (float)
0087: 21@ = 2@ // (float)
21@ /= 5.0
0063: 1@ -= 21@ // (float)
if
1@ > 180.0
else_jump @PLCHUTE_1061
1@ -= 360.0

:PLCHUTE_1061
if
-180.0 > 1@
else_jump @PLCHUTE_1092
1@ += 360.0

:PLCHUTE_1092
0093: 22@ = integer 11@ to_float
22@ /= 4.267
0063: 22@ -= 3@ // (float)
22@ /= 20.0
005B: 3@ += 22@ // (float)
083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 8@ 9@ $1509
if
0024:   $1504 > $1509 // (float)
else_jump @PLCHUTE_1177
0086: $1509 = $1504 // (float)

:PLCHUTE_1177
if
0024:   $8268 > $1509 // (float)
else_jump @PLCHUTE_1204
0086: $8268 = $1509 // (float)

:PLCHUTE_1204
if
0024:   $1504 > $8268 // (float)
else_jump @PLCHUTE_1231
0086: $8268 = $1504 // (float)

:PLCHUTE_1231
if and
0024:   $1509 > $8268 // (float)
 not $1902 == 1
else_jump @PLCHUTE_1407
if
84AD:   not actor $PLAYER_ACTOR in_water
else_jump @PLCHUTE_1361
if
-20.0 > $8268
else_jump @PLCHUTE_1308
$FREEFALL_STAGE = 2
jump @PLCHUTE_1354

:PLCHUTE_1308
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PED" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time 100 // versionB
$FREEFALL_STAGE = 7

:PLCHUTE_1354
jump @PLCHUTE_1407

:PLCHUTE_1361
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PED" 1.0 loopA 1 lockX 0 lockY 0 lockF 0 time 100 // versionB
$FREEFALL_STAGE = 7

:PLCHUTE_1407
0087: 4@ = 3@ // (float)
4@ /= 30.0
006F: 4@ *= $1505 // (float)
02F6: $1507 = cosine 1@ // (float)
02F7: $1508 = sine 1@ // (float)
006D: $1507 *= 4@ // (float)
006D: $1508 *= 4@ // (float)
$1508 *= -1.0
0059: $1508 += $1506 // (float)
0087: 21@ = 8@ // (float)
0065: 21@ -= $1507 // (float)
21@ *= 0.01
0088: $1507 = 8@ // (float)
0067: $1507 -= 21@ // (float)
0087: 21@ = 9@ // (float)
0065: 21@ -= $1508 // (float)
21@ *= 0.01
0088: $1508 = 9@ // (float)
0067: $1508 -= 21@ // (float)
0085: 12@ = 10@ // (int)
0085: 13@ = 11@ // (int)
0095: make 12@ absolute_integer
0095: make 13@ absolute_integer
if or
12@ > 40
13@ > 40
else_jump @PLCHUTE_2109
if
001D:   12@ > 13@ // (int)
else_jump @PLCHUTE_1872
if
10@ >= 0
else_jump @PLCHUTE_1751
if
 not 15@ == 2
else_jump @PLCHUTE_1751
if
04EE:   animation "PARACHUTE" loaded
else_jump @PLCHUTE_1744
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_R" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB

:PLCHUTE_1744
15@ = 2

:PLCHUTE_1751
if
0 > 10@
else_jump @PLCHUTE_1865
if
 not 15@ == 3
else_jump @PLCHUTE_1865
if
04EE:   animation "PARACHUTE" loaded
else_jump @PLCHUTE_1858
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_L" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB

:PLCHUTE_1858
15@ = 3

:PLCHUTE_1865
jump @PLCHUTE_2102

:PLCHUTE_1872
if
11@ >= 0
else_jump @PLCHUTE_1984
if
 not 15@ == 4
else_jump @PLCHUTE_1984
if
04EE:   animation "PARACHUTE" loaded
else_jump @PLCHUTE_1977
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB

:PLCHUTE_1977
15@ = 4

:PLCHUTE_1984
if
0 > 11@
else_jump @PLCHUTE_2102
if
 not 15@ == 5
else_jump @PLCHUTE_2102
if
04EE:   animation "PARACHUTE" loaded
else_jump @PLCHUTE_2095
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_ACCEL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB

:PLCHUTE_2095
15@ = 5

:PLCHUTE_2102
jump @PLCHUTE_2203

:PLCHUTE_2109
if
 not 15@ == 1
else_jump @PLCHUTE_2203
if
04EE:   animation "PARACHUTE" loaded
else_jump @PLCHUTE_2203
0812: AS_actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
15@ = 1

:PLCHUTE_2203
if or
00E1:   player 0 pressed_key 17
$1512 == 1
else_jump @PLCHUTE_2386
if
 not $1902 == 1
else_jump @PLCHUTE_2386
if
04EE:   animation "PARACHUTE" loaded
else_jump @PLCHUTE_2386
if and
$PARACHUTE_CREATION_STAGE == 3
$1511 == 0
else_jump @PLCHUTE_2386
0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_OPEN" IFP_file "PARACHUTE" 8.0 loopA 0 lockX 0 lockY 0 lockF 1 time -2 // versionB
097A: play_audio_at -1000.0 -1000.0 -1000.0 event 1038
008A: $8270 = 32@ // (int)
$8270 += 1100
$FREEFALL_STAGE = 3
0@ = 0

:PLCHUTE_2386
if
$FREEFALL_STAGE == 2
else_jump @PLCHUTE_2504
if
04EE:   animation "PARACHUTE" loaded
else_jump @PLCHUTE_2492
Actor.Angle($PLAYER_ACTOR) = 1@
0829: actor $PLAYER_ACTOR perform_animation "FALL_SKYDIVE_DIE" IFP_file "PARACHUTE" 1000.0 time 0 and_dies
09F1: play_audio_at_actor $PLAYER_ACTOR event 1189
jump @PLCHUTE_2497

:PLCHUTE_2492
05BE: AS_kill_actor $PLAYER_ACTOR

:PLCHUTE_2497
gosub @PLCHUTE_5521

:PLCHUTE_2504
if
$FREEFALL_STAGE == 3
else_jump @PLCHUTE_4781
if
$8270 > 0
else_jump @PLCHUTE_2586
if
001F:   32@ > $8270 // (int)
else_jump @PLCHUTE_2586
097A: play_audio_at -1000.0 -1000.0 -1000.0 event 1039
$8270 = 0

:PLCHUTE_2586
if
0@ == 0
else_jump @PLCHUTE_2689
0087: 25@ = 3@ // (float)
25@ /= 500.0
0087: 26@ = 2@ // (float)
26@ /= 500.0
0085: 18@ = 32@ // (int)
0085: 19@ = 32@ // (int)
0087: 5@ = 4@ // (float)
5@ *= -1.0
0089: 6@ = $1509 // (float)
0@ = 1

:PLCHUTE_2689
if
0@ == 1
else_jump @PLCHUTE_2856
0085: 10@ = 32@ // (int)
0062: 10@ -= 19@ // (int)
if
500 > 10@
else_jump @PLCHUTE_2829
0085: 10@ = 32@ // (int)
0062: 10@ -= 18@ // (int)
0085: 18@ = 32@ // (int)
0093: 21@ = integer 10@ to_float
0087: 22@ = 25@ // (float)
006B: 22@ *= 21@ // (float)
0087: 23@ = 26@ // (float)
006B: 23@ *= 21@ // (float)
0063: 3@ -= 22@ // (float)
0063: 2@ -= 23@ // (float)
jump @PLCHUTE_2856

:PLCHUTE_2829
2@ = 0.0
3@ = 0.0
0@ = 2

:PLCHUTE_2856
if
0@ == 2
else_jump @PLCHUTE_2964
if
03CA:   object 17@ exists
else_jump @PLCHUTE_2964
0750: set_object 17@ visibility 1
08D2: object 17@ scale_model 0.0
0085: 19@ = 32@ // (int)
wait 0
075A: set_object 17@ animation "PARA_OPEN_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
0@ = 3

:PLCHUTE_2964
if
0@ == 3
else_jump @PLCHUTE_3067
0085: 10@ = 32@ // (int)
0062: 10@ -= 19@ // (int)
if
500 > 10@
else_jump @PLCHUTE_3050
0093: 21@ = integer 10@ to_float
21@ /= 500.0
08D2: object 17@ scale_model 21@
jump @PLCHUTE_3067

:PLCHUTE_3050
08D2: object 17@ scale_model 1.0
0@ = 4

:PLCHUTE_3067
if
0@ == 5
else_jump @PLCHUTE_3136
20@ = Object.Create(#PARA_COLLISION, 0.0, 0.0, 0.0)
0750: set_object 20@ visibility 0
Object.ToggleInMovingList(20@) = True
04D9: object 20@ set_scripted_collision_check 1
0@ = 6

:PLCHUTE_3136
if
0@ == 6
else_jump @PLCHUTE_4354
0494: get_joystick 0 data_to 10@ 11@ 12@ 12@
if
$1511 == 1
else_jump @PLCHUTE_3202
10@ = 0
11@ = 0

:PLCHUTE_3202
0093: 21@ = integer 10@ to_float
21@ /= 4.267
0063: 21@ -= 2@ // (float)
21@ /= 20.0
005B: 2@ += 21@ // (float)
0087: 21@ = 2@ // (float)
21@ /= 15.0
0063: 1@ -= 21@ // (float)
if
1@ > 180.0
else_jump @PLCHUTE_3303
1@ -= 360.0

:PLCHUTE_3303
if
-180.0 > 1@
else_jump @PLCHUTE_3334
1@ += 360.0

:PLCHUTE_3334
02F6: $1507 = cosine 1@ // (float)
02F7: $1508 = sine 1@ // (float)
0069: $1507 *= $1500 // (float)
0069: $1508 *= $1500 // (float)
$1507 *= -1.0
0085: 12@ = 10@ // (int)
0085: 13@ = 11@ // (int)
0095: make 12@ absolute_integer
0095: make 13@ absolute_integer
if or
12@ > 40
13@ > 40
else_jump @PLCHUTE_4066
if
001D:   12@ > 13@ // (int)
else_jump @PLCHUTE_3741
0089: 21@ = $1501 // (float)
0065: 21@ -= $1509 // (float)
21@ /= 20.0
005F: $1509 += 21@ // (float)
if
10@ >= 0
else_jump @PLCHUTE_3607
if
 not 15@ == 2
else_jump @PLCHUTE_3607
0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_STEERR" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
075A: set_object 17@ animation "PARA_STEERR_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
15@ = 2

:PLCHUTE_3607
if
0 > 10@
else_jump @PLCHUTE_3734
if
 not 15@ == 3
else_jump @PLCHUTE_3734
0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_STEERL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
075A: set_object 17@ animation "PARA_STEERL_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
15@ = 3

:PLCHUTE_3734
jump @PLCHUTE_4059

:PLCHUTE_3741
if
11@ >= 0
else_jump @PLCHUTE_3900
0089: 21@ = $1503 // (float)
0065: 21@ -= $1509 // (float)
21@ /= 20.0
005F: $1509 += 21@ // (float)
if
 not 15@ == 4
else_jump @PLCHUTE_3900
0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_DECEL" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
075A: set_object 17@ animation "PARA_DECEL_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
15@ = 4

:PLCHUTE_3900
if
0 > 11@
else_jump @PLCHUTE_4059
0089: 21@ = $1501 // (float)
0065: 21@ -= $1509 // (float)
21@ /= 20.0
005F: $1509 += 21@ // (float)
if
 not 15@ == 5
else_jump @PLCHUTE_4059
0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_FLOAT" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
075A: set_object 17@ animation "PARA_FLOAT_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
15@ = 5

:PLCHUTE_4059
jump @PLCHUTE_4225

:PLCHUTE_4066
0089: 21@ = $1501 // (float)
0065: 21@ -= $1509 // (float)
21@ /= 20.0
005F: $1509 += 21@ // (float)
if
 not 15@ == 5
else_jump @PLCHUTE_4225
if
 not 15@ == 1
else_jump @PLCHUTE_4225
0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_FLOAT" IFP_file "PARACHUTE" 1.0 loopA 1 lockX 0 lockY 0 lockF 1 time -2 // versionB
075A: set_object 17@ animation "PARA_FLOAT_O" IFP_file "PARACHUTE" 1.0 lockF 1 loop 1 // IF AND SET
15@ = 1

:PLCHUTE_4225
Object.StorePos(17@, $TEMPVAR_FLOAT_1, $TEMPVAR_FLOAT_2, $TEMPVAR_FLOAT_3)
0815: put_object 20@ at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 and_keep_rotation
if
04DA:   has_object 20@ collided
else_jump @PLCHUTE_4318
075A: set_object 17@ animation "PARA_RIP_LOOP_O" IFP_file "PARACHUTE" 8.0 lockF 1 loop 1 // IF AND SET
0@ = 7

:PLCHUTE_4318
if
00E1:   player 0 pressed_key 15
else_jump @PLCHUTE_4354
0792: disembark_instantly_actor $PLAYER_ACTOR
$FREEFALL_STAGE = 6
$1498 = 3

:PLCHUTE_4354
if
03CA:   object 17@ exists
else_jump @PLCHUTE_4593
if
0837:   object 17@ animation == "PARA_OPEN_O"
else_jump @PLCHUTE_4593
0839: get_object 17@ animation "PARA_OPEN_O" progress_to 21@
0087: 22@ = 6@ // (float)
0065: 22@ -= $1501 // (float)
0087: 23@ = 22@ // (float)
006B: 23@ *= 21@ // (float)
0088: $1509 = 6@ // (float)
0067: $1509 -= 23@ // (float)
0087: 22@ = 5@ // (float)
0065: 22@ -= $1500 // (float)
0087: 23@ = 22@ // (float)
006B: 23@ *= 21@ // (float)
0087: 4@ = 5@ // (float)
0063: 4@ -= 23@ // (float)
02F6: $1507 = cosine 1@ // (float)
02F7: $1508 = sine 1@ // (float)
006D: $1507 *= 4@ // (float)
006D: $1508 *= 4@ // (float)
$1507 *= -1.0
if and
21@ == 1.0
0@ == 4
else_jump @PLCHUTE_4593
0@ = 5

:PLCHUTE_4593
if
 not Actor.Dead($PLAYER_ACTOR)
else_jump @PLCHUTE_4781
if
04AD:   actor $PLAYER_ACTOR in_water
else_jump @PLCHUTE_4732
0812: AS_actor $PLAYER_ACTOR perform_animation "PARA_LAND_WATER" IFP_file "PARACHUTE" 8.0 loopA 1 lockX 1 lockY 0 lockF 0 time 1000 // versionB
075A: set_object 17@ animation "PARA_LAND_WATER_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
$FREEFALL_STAGE = 5
0@ = 0

:PLCHUTE_4732
083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 21@ 21@ 23@
if
23@ > -0.1
else_jump @PLCHUTE_4781
$FREEFALL_STAGE = 4
0@ = 0

:PLCHUTE_4781
if
$FREEFALL_STAGE == 4
else_jump @PLCHUTE_5271
if
0@ == 0
else_jump @PLCHUTE_5168
$1498 = 1
Actor.StorePos($PLAYER_ACTOR, $TEMPVAR_X_COORD, $TEMPVAR_Y_COORD, $TEMPVAR_Z_COORD)
$TEMPVAR_Z_COORD -= 1.0
Actor.PutAt($PLAYER_ACTOR, $TEMPVAR_X_COORD, $TEMPVAR_Y_COORD, $TEMPVAR_Z_COORD)
083E: set_actor $PLAYER_ACTOR rotation 0.0 0.0 1@ while_in_air
if
-10.0 > $1509
else_jump @PLCHUTE_4922
$FREEFALL_STAGE = 2
0@ = 0
jump @PLCHUTE_5092

:PLCHUTE_4922
if
-4.0 > $1509
else_jump @PLCHUTE_5047
0615: define_AS_pack_begin 14@
0812: AS_actor -1 perform_animation "FALL_FRONT" IFP_file "PED" 20.0 loopA 0 lockX 0 lockY 0 lockF 1 time 700 // versionB
0812: AS_actor -1 perform_animation "GETUP_FRONT" IFP_file "PED" 8.0 loopA 0 lockX 1 lockY 0 lockF 0 time -2 // versionB
0616: define_AS_pack_end 14@
0618: assign_actor $PLAYER_ACTOR to_AS_pack 14@
061B: remove_references_to_AS_pack 14@
jump @PLCHUTE_5085

:PLCHUTE_5047
0812: AS_actor $PLAYER_ACTOR perform_animation "RUN_PLAYER" IFP_file "PED" 8.0 loopA 1 lockX 1 lockY 0 lockF 0 time 1000 // versionB

:PLCHUTE_5085
0@ = 1

:PLCHUTE_5092
075A: set_object 17@ animation "PARA_LAND_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
0682: detach_object 17@ 0.0 0.0 0.0 collision_detection 0
0085: 18@ = 32@ // (int)
18@ += 1000

:PLCHUTE_5168
if
0@ == 1
else_jump @PLCHUTE_5271
if
0837:   object 17@ animation == "PARA_LAND_O"
else_jump @PLCHUTE_5271
0839: get_object 17@ animation "PARA_LAND_O" progress_to 21@
if
21@ == 1.0
else_jump @PLCHUTE_5271
$1498 = 2
gosub @PLCHUTE_5521

:PLCHUTE_5271
if
$FREEFALL_STAGE == 5
else_jump @PLCHUTE_5328
$1498 = 1
if
0@ == 0
else_jump @PLCHUTE_5328
$1498 = 2
gosub @PLCHUTE_5521

:PLCHUTE_5328
if and
$FREEFALL_STAGE > 0
4 > $FREEFALL_STAGE
else_jump @PLCHUTE_5405
if
 not Actor.Dead($PLAYER_ACTOR)
else_jump @PLCHUTE_5405
083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ $1507 $1508 $1509
Actor.Angle($PLAYER_ACTOR) = 1@
083E: set_actor $PLAYER_ACTOR rotation 3@ 2@ 1@ while_in_air

:PLCHUTE_5405
if
$FREEFALL_STAGE == 6
else_jump @PLCHUTE_5430
gosub @PLCHUTE_5521

:PLCHUTE_5430
if
$FREEFALL_STAGE == 7
else_jump @PLCHUTE_5455
gosub @PLCHUTE_5462

:PLCHUTE_5455
jump @PLCHUTE_118

:PLCHUTE_5462
$FREEFALL_STAGE = 0
0@ = 0
Model.Destroy(#PARACHUTE)
04EF: release_animation "PARACHUTE"
083E: set_actor $PLAYER_ACTOR rotation 0.0 0.0 1@ while_in_air
0992: set_player $PLAYER_CHAR weapons_scrollable 1
return

:PLCHUTE_5521
0682: detach_object 17@ 0.0 0.0 0.0 collision_detection 0
09A2: destroy_object_with_fade 17@
Object.Destroy(20@)
0555: remove_weapon 46 from_actor $PLAYER_ACTOR
$FREEFALL_STAGE = 0
$PARACHUTE_CREATION_STAGE = 0
0@ = 0
Model.Destroy(#PARACHUTE)
04EF: release_animation "PARACHUTE"
Model.Destroy(#GUN_PARA)
083E: set_actor $PLAYER_ACTOR rotation 0.0 0.0 1@ while_in_air
0992: set_player $PLAYER_CHAR weapons_scrollable 1
end_thread

Last edited by Luten (10-04-2011 14:03)

Offline

Board footer

Powered by FluxBB