Jump to content

[SA]Parachute integreren in stripped SCM


Recommended Posts

Geplaatst:

Om mijn mods te testen gebruik ik een stripped SCM, maar nu wil ik een mod maken waar parachutespringen in voorkomt, maar in een lege SCM zit het script om te springen niet. Welke objecten/scripts/enz. moet ik allemaal importeren/toevoegen in mijn stripped SCM om parachutes werkend te maken?

Geplaatst:

Dit heb ik ook een keer geprobeerd. Je moet het script van de parachute uit de originele main.scm halen en in je eigen versie zetten. Het script is een zogenaamd external script, zo noemt de main.scm het in ieder geval. Als je de originele main.scm opent zie je ,wanneer je wat naar onderen scrolt, de volgende codes staan:

DEFINE EXTERNAL_SCRIPTS 78 // Use -1 in order not to compile AAA script
DEFINE SCRIPT PLAYER_PARACHUTE AT @PLCHUTE // 0

Nu moet je dus in je stripped main.scm dit script invoeren. Verander simpelweg DEFINE EXTERNAL_SCRIPTS 78 naar DEFINE EXTERNAL_SCRIPTS 1 en plaats onder deze regel de code voor de parachute. Nu scrol je helemaal naar beneden in de originele main.scm totdat je bij :PLCHUTE komt. Nu kopieer je de hele thread totdat deze ophoud, dus wanneer een nieuw script begint. De gekopieerde code plak je in je eigen main.scm en testen.

Als ik me niet vergis heb ik dit al eens geprobeerd maar zonder succes, het is waarschijnlijk een kwestie van uitproberen en testen. Veel succes.

Geplaatst:

Ik heb het nog nooit geprobeerd, maar ik zou ook het external script

DEFINE SCRIPT PARACHUTE AT @PARACH     // 1

toevoegen. Ook zie je soms in de main.scm staan dat een external script gestart en gestopt wordt, dit is denk ik alleen nodig wanneer je iemand gescript wil laten parachute springen maar dit weet ik ook niet zeker.

Geplaatst: (bewerkt)

Allebei geïmporteerd, CJ valt gewoon zoals normaal zonder para en roept (zoals vaker) 'I hate gravity!' Opvallend is dat de hoogtemeter het wel doet. Ik zal eens proberen ook alle objectverwijzingen te importeren in het bestand, misschien is dat ook nodig.

Edit: Ik denk dat het daar aan ligt, ik zag namelijk dat een #PARACHUTE en een #PARA_PACK gebruikt werden, en deze zijn te importeren.

Edit2: Na het importeren van alle objecten met 'PARA' in de naam doet hij het nog steeds niet.

Tot nu toe geïmporteerd (nummers zijn die nummers wat rechts als commentaar geschreven zijn):

Extern script PLAYER_PARACHUTE (origineel nr. 0 en @PLCHUTE)

Extern script PARACHUTE (origineel nr. 1 en @PARACH)

Object KMB_PARACHUTE (origineel nr. 252)

Object PARA_PACK (origineel nr. 304)

Object PARACHUTE (origineel nr. 307)

Object PARA_COLLISION (origineel nr. 336)

Bewerkt: door Donald F. Duck
Geplaatst:

Vreemd, misschien is het handig om deze vraag ook op GTAForums.com te stellen aangezien hier weinig mensen zijn die van dit soort dingen weinig verstand hebben of niet weten hoe ze met dit onderdeel overweg moeten.

Geplaatst:

Wat is het nou precies dat niet werkt? Het hele parachute springen gebeuren, of actors/speler laten parachute springen via het script?

Geplaatst:

Het probleem is dat, wanneer ik CJ met parachute van een gebouw af laat springen (ik, de speler zelf), de parachute niet naar behoren werkt, CJ valt gewoon naar beneden zoals bij een gewone val.

Geplaatst:

@RD: echt een super advies, ga maar naar een ander forum. :tu:

ZAZ heeft ooit een mooi script gemaakt, een stripped main.scm mét o.a. een parachute. Probeer hem eens uit en kijk wat het doet, zou ik zeggen.

DEFINE OBJECTS 10
DEFINE OBJECT (zazmahall.de)      
DEFINE OBJECT INFO                     // Object number -1
DEFINE OBJECT KEYCARD                  // Object number -2
DEFINE OBJECT PICKUPSAVE               // Object number -3
DEFINE OBJECT BODYARMOUR               // Object number -4
DEFINE OBJECT BRIBE                    // Object number -5
DEFINE OBJECT KMB_PARACHUTE            // Object number -6
DEFINE OBJECT PARA_PACK                // Object number -7
DEFINE OBJECT PARACHUTE                // Object number -8
DEFINE OBJECT PARA_COLLISION           // Object number -9

DEFINE MISSIONS 1
DEFINE MISSION 0 AT @INITIAL           // Initial 1

DEFINE EXTERNAL_SCRIPTS 1
DEFINE SCRIPT PLAYER_PARACHUTE AT @PLCHUTE // 0

DEFINE UNKNOWN_EMPTY_SEGMENT 0

DEFINE UNKNOWN_THREADS_MEMORY 0

//-------------MAIN---------------
03A4: name_thread 'MAIN'
016A: fade 0 time 0
042C: set_total_missions_to 0
030D: set_max_progress 0
01F0: set_max_wanted_level_to 6
0111: set_wasted_busted_check 0
00C0: set_current_time_hours_to 10 minutes_to 0
04E4: unknown_refresh_game_renderer_at -6.6101 0.584
03CB: set_rendering_origin_at -6.6101 0.5846 24.9985
0053: $PLAYER_CHAR = create_player #NULL at -6.6101 0.5846 24.9985
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group
01F5: $PLAYER_ACTOR = get_player_actor $PLAYER_CHAR
0173: set_actor $PLAYER_ACTOR Z_angle_to 180.0
0373: set_camera_directly_behind_player
0629: change_integer_stat 181 to 4
0998: add_respect 1000
062A: change_float_stat 165 to 800.0
062A: change_float_stat 23 to 100.0
062A: change_float_stat 21 to 200.0
062A: change_float_stat 160 to 1000.0
062A: change_float_stat 223 to 1000.0
062A: change_float_stat 229 to 1000.0
062A: change_float_stat 230 to 1000.0
0629: change_integer_stat 225 to 1000
0629: change_integer_stat 22 to 1000
0629: change_integer_stat 156 to 1000
062A: change_float_stat 81 to 1000.0
0629: change_integer_stat 64 to 1000
0629: change_integer_stat 65 to 1000
062A: change_float_stat 69 to 1000.0
062A: change_float_stat 70 to 1000.0
062A: change_float_stat 71 to 1000.0
062A: change_float_stat 72 to 1000.0
062A: change_float_stat 73 to 1000.0
062A: change_float_stat 74 to 1000.0
062A: change_float_stat 75 to 1000.0
062A: change_float_stat 76 to 1000.0
062A: change_float_stat 77 to 1000.0
062A: change_float_stat 78 to 1000.0
062A: change_float_stat 79 to 1000.0
0629: change_integer_stat 181 to 4
0A1F: increase_float_stat 24 by 500.0
055E: set_player $PLAYER_CHAR max_health += 150
055F: set_player $PLAYER_CHAR max_armour += 150
0223: set_actor $PLAYER_ACTOR health_to 250
035F: actor $PLAYER_ACTOR armour += 250
0330: set_player $PLAYER_CHAR infinite_run 1
07FE: set_actor $PLAYER_ACTOR fighting_style_to 6 6
0572: enable_taxi_nitros 1
087B: set_player $PLAYER_CHAR clothes_texture "BBALLJACKRSTAR" model "BBJACK" body_part 0
087B: set_player $PLAYER_CHAR clothes_texture "JEANSDENIM" model "JEANS" body_part 2
087B: set_player $PLAYER_CHAR clothes_texture "SNEAKERBINCBLK" model "SNEAKER" body_part 3
087B: set_player $PLAYER_CHAR clothes_texture "PLAYER_FACE" model "HEAD" body_part 1
070D: rebuild_player $PLAYER_CHAR
0109: player $PLAYER_CHAR money += 500000
08DE: lose_stuff_after_busted 0
08DD: lose_stuff_after_wasted 0
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here
02FA: set_garage 'BODLAWN' type 38
02FA: set_garage 'MODLAST' type 36
02FA: set_garage 'MDSSFSE' type 38
02FA: set_garage 'MDS1SFS' type 37
02FA: set_garage 'VECMOD' type 38
02FA: set_garage 'MICHDR' type 5
02FA: set_garage 'HBGDSFS' type 19
0237: set_gang 1 weapons_to 30 32 24
0004: $1903 = 1
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
0914: NOP 0
01B6: set_weather 1
04BB: select_interior 0
01B4: set_player $PLAYER_CHAR can_move 1
01B7: release_weather
016C: restart_if_wasted_at -6.6101 0.5846 24.9985 angle 180.0 town_number 0
016D: restart_if_busted_at -6.6101 0.5846 24.9985 angle 180.0 town_number 0

0417: start_mission 0  ///------------- starts mission 0 (Initial 1) to setup stuff like parked cars or pickups
004F: create_thread @SAVE///----------starts the thread script to make a savegame

016A: fade 1 time 1000
0001: wait 100 ms
03E6: remove_text_box
0004: $SCRIPT_STATUS = 0

:MAIN_860//--------- permanent Loop of the main thread  includes the extern script starter for parachuting
0001: wait 0 ms
00D6: if
0256:   player $PLAYER_CHAR defined
004D: jump_if_false @MAIN_958
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 46
004D: jump_if_false @MAIN_954
0926: $SCRIPT_STATUS = external_script_status 0 (PLAYER_PARACHUTE)
00D6: if
0038:   $SCRIPT_STATUS == 0
004D: jump_if_false @MAIN_947
08A9: load_external_script 0 (PLAYER_PARACHUTE)
00D6: if
08AB:   external_script 0 (PLAYER_PARACHUTE) loaded
004D: jump_if_false @MAIN_947
0913: run_external_script 0 (PLAYER_PARACHUTE)  

:MAIN_947
0002: jump @MAIN_958

:MAIN_954
090F: end_external_script 0 (PLAYER_PARACHUTE)

:MAIN_958
0002: jump @MAIN_860//--------- permanent Loop of the main thread


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


:SAVE//----------------------thread script to make a savegame
03A4: name_thread 'SAVE'
0570: $SV02 = create_asset_radar_marker_with_icon 35 at -14.4657 -13.4386 25.2415
018B: set_marker $SV02 radar_mode 2

:SAVE_40
0001: wait 0 ms
0213: $SV01 = create_pickup #PICKUPSAVE type 3 at -14.4657 -13.4386 25.2415

:SAVE_68
0001: wait 0 ms
00D6: if
0256:   player $PLAYER_CHAR defined
004D: jump_if_false @SAVE_68
00D6: if
0214:   pickup $SV01 picked_up
004D: jump_if_false @SAVE_68
0050: gosub @SAVE_118
0002: jump @SAVE_40

:SAVE_118
00D6: if
0038:   $ONMISSION == 0
004D: jump_if_false @SAVE_227
0004: $ONMISSION = 1
01B4: set_player $PLAYER_CHAR can_move 0
0001: wait 350 ms
03D8: show_save_screen

:SAVE_157
00D6: if
83D9:   not save_done
004D: jump_if_false @SAVE_181
0001: wait 0 ms
0002: jump @SAVE_157

:SAVE_181
00A1: put_actor $PLAYER_ACTOR at -6.6101 0.5846 24.9985
01B4: set_player $PLAYER_CHAR can_move 1
0004: $ONMISSION = 1
0001: wait 350 ms
0004: $ONMISSION = 0

:SAVE_227
0051: return


//-------------Mission 0---------------
// Originally: Initial 1

:INITIAL
03A4: name_thread 'INITIAL'
014B: $MR1 = init_parked_car_generator #PCJ600 color 0 17 1 alarm 0 door_lock 0 0 10000 at -3.5 -1.7 25.1 angle 0.0
014C: set_parked_car_generator $MR1 cars_to_generate_to 101
032B: $WP1 = create_weapon_pickup #AK47 group 15 ammo 3000 at 13.5 4.5 30.1
032B: $WP2 = create_weapon_pickup #JETPACK group 15 ammo 0 at 13.5 6.5 30.1
0213: $OP1 = create_pickup #BODYARMOUR type 15 at 13.5 8.5 30.1
0213: $OP2 = create_pickup #GUN_PARA type 15 at 13.5 10.5 30.1
0213: $OP3 = create_pickup #BRIBE type 15 at 13.5 12.5 30.1
004E: end_thread






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

:PLCHUTE
03A4: name_thread 'PLCHUTE'
0247: load_model #GUN_PARA

:PLCHUTE_16
00D6: if
8248:   not model #GUN_PARA available
004D: jump_if_false @PLCHUTE_43
0001: wait 0 ms
0002: jump @PLCHUTE_16

:PLCHUTE_43
00D6: if
8118:   not actor $PLAYER_ACTOR dead
004D: jump_if_false @PLCHUTE_59

:PLCHUTE_59
0004: $1498 = 0
0004: $FREEFALL_STAGE = 0
0004: $PARACHUTE_CREATION_STAGE = 0
00D6: if
0038:   $1498 == 999
004D: jump_if_false @PLCHUTE_118
0213: $PICKUP_PARACHUTE = create_pickup #GUN_PARA type 3 at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD

:PLCHUTE_118
0001: wait 0 ms
00D6: if
8118:   not actor $PLAYER_ACTOR dead
004D: jump_if_false @PLCHUTE_5451
00D6: if
8800:   not in_two_players_mode
004D: jump_if_false @PLCHUTE_5451
00D6: if
8038:   not  $FREEFALL_STAGE == 0
004D: jump_if_false @PLCHUTE_176
0992: set_player $PLAYER_CHAR weapons_scrollable 0

:PLCHUTE_176
00D6: if
0018:   $PARACHUTE_CREATION_STAGE > 0
004D: jump_if_false @PLCHUTE_219
00D6: if
8491:   not actor $PLAYER_ACTOR has_weapon 46
004D: jump_if_false @PLCHUTE_219
0050: gosub @PLCHUTE_5516

:PLCHUTE_219
00D6: if
0038:   $PARACHUTE_CREATION_STAGE == 0
004D: jump_if_false @PLCHUTE_273
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 46
004D: jump_if_false @PLCHUTE_273
0247: load_model #PARACHUTE
0004: $PARACHUTE_CREATION_STAGE = 1
0004: $1498 = 0

:PLCHUTE_273
00D6: if
0038:   $PARACHUTE_CREATION_STAGE == 1
004D: jump_if_false @PLCHUTE_374
00D6: if
0248:   model #PARACHUTE available
004D: jump_if_false @PLCHUTE_374
0107: 17@ = create_object #PARACHUTE at $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
0004: $PARACHUTE_CREATION_STAGE = 2

:PLCHUTE_374
00D6: if and
0038:   $PARACHUTE_CREATION_STAGE == 2
0038:   $FREEFALL_STAGE == 1
004D: jump_if_false @PLCHUTE_406
0004: $PARACHUTE_CREATION_STAGE = 3

:PLCHUTE_406
00D6: if and
0038:   $FREEFALL_STAGE == 0
0018:   $PARACHUTE_CREATION_STAGE > 0
004D: jump_if_false @PLCHUTE_562
00D6: if
0818:   actor $PLAYER_ACTOR in_air
004D: jump_if_false @PLCHUTE_562
083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ $1507 $1508 $1509
00D6: if
0022:   -10.0 > $1509
004D: jump_if_false @PLCHUTE_562
0819: 7@ = actor $PLAYER_ACTOR distance_from_ground
00D6: if
0021:   7@ > 20.0
004D: jump_if_false @PLCHUTE_562
097A: play_audio_at -1000.0 -1000.0 -1000.0 event 1037
0004: $FREEFALL_STAGE = 1
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 46
0006: 0@ = 0
0005: $8268 = 0.0

:PLCHUTE_562
00D6: if
0038:   $FREEFALL_STAGE == 1
004D: jump_if_false @PLCHUTE_2383
00D6: if
0039:   0@ == 0
004D: jump_if_false @PLCHUTE_605
0006: 0@ = 2

:PLCHUTE_605
00D6: if
0039:   0@ == 2
004D: jump_if_false @PLCHUTE_726
062E: unknown_get_actor $PLAYER_ACTOR task 2066 status_store_to 27@ // ret 7 if not found
00D6: if
04A4:   27@ == 7 // @ == any
004D: jump_if_false @PLCHUTE_726
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"
0006: 15@ = 1
0172: 1@ = actor $PLAYER_ACTOR Z_angle
0006: 0@ = 3

:PLCHUTE_726
00D6: if
0039:   0@ == 3
004D: jump_if_false @PLCHUTE_2383
062E: unknown_get_actor $PLAYER_ACTOR task 2066 status_store_to 27@ // ret 7 if not found
00D6: if
04A4:   27@ == 7 // @ == any
004D: jump_if_false @PLCHUTE_812
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_812
0819: 7@ = actor $PLAYER_ACTOR distance_from_ground
00D6: if and
0023:   100.0 > 7@
0021:   7@ > 60.0
004D: jump_if_false @PLCHUTE_909
00D6: if
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false @PLCHUTE_909
00D6: if
0038:   $ONMISSION == 0
004D: jump_if_false @PLCHUTE_909
00BC: show_text_highpriority GXT 'PARA_01' time 1000 flag 1  // ~s~Open your parachute!

:PLCHUTE_909
0494: get_joystick 0 data_to 10@ 11@ 12@ 12@
00D6: if
0038:   $1511 == 1
004D: jump_if_false @PLCHUTE_957
0006: 10@ = 0
0006: 11@ = 0

:PLCHUTE_957
0093: 21@ = integer 10@ to_float
0017: 21@ /= 4.267
0063: 21@ -= 2@ // (float)
0017: 21@ /= 20.0
005B: 2@ += 21@ // (float)
0087: 21@ = 2@ // (float)
0017: 21@ /= 5.0
0063: 1@ -= 21@ // (float)
00D6: if
0021:   1@ > 180.0
004D: jump_if_false @PLCHUTE_1058
000F: 1@ -= 360.0

:PLCHUTE_1058
00D6: if
0023:   -180.0 > 1@
004D: jump_if_false @PLCHUTE_1089
000B: 1@ += 360.0

:PLCHUTE_1089
0093: 22@ = integer 11@ to_float
0017: 22@ /= 4.267
0063: 22@ -= 3@ // (float)
0017: 22@ /= 20.0
005B: 3@ += 22@ // (float)
083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 8@ 9@ $1509
00D6: if
0024:   $1504 > $1509 // (float)
004D: jump_if_false @PLCHUTE_1174
0086: $1509 = $1504 // (float)

:PLCHUTE_1174
00D6: if
0024:   $8268 > $1509 // (float)
004D: jump_if_false @PLCHUTE_1201
0086: $8268 = $1509 // (float)

:PLCHUTE_1201
00D6: if
0024:   $1504 > $8268 // (float)
004D: jump_if_false @PLCHUTE_1228
0086: $8268 = $1504 // (float)

:PLCHUTE_1228
00D6: if and
0024:   $1509 > $8268 // (float)
8038:   not  $1902 == 1
004D: jump_if_false @PLCHUTE_1404
00D6: if
84AD:   not actor $PLAYER_ACTOR in_water
004D: jump_if_false @PLCHUTE_1358
00D6: if
0022:   -20.0 > $8268
004D: jump_if_false @PLCHUTE_1305
0004: $FREEFALL_STAGE = 2
0002: jump @PLCHUTE_1351

:PLCHUTE_1305
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
0004: $FREEFALL_STAGE = 7

:PLCHUTE_1351
0002: jump @PLCHUTE_1404

:PLCHUTE_1358
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
0004: $FREEFALL_STAGE = 7

:PLCHUTE_1404
0087: 4@ = 3@ // (float)
0017: 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)
0011: $1508 *= -1.0
0059: $1508 += $1506 // (float)
0087: 21@ = 8@ // (float)
0065: 21@ -= $1507 // (float)
0013: 21@ *= 0.01
0088: $1507 = 8@ // (float)
0067: $1507 -= 21@ // (float)
0087: 21@ = 9@ // (float)
0065: 21@ -= $1508 // (float)
0013: 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
00D6: if or
0019:   12@ > 40
0019:   13@ > 40
004D: jump_if_false @PLCHUTE_2106
00D6: if
001D:   12@ > 13@ // (int)
004D: jump_if_false @PLCHUTE_1869
00D6: if
0029:   10@ >= 0
004D: jump_if_false @PLCHUTE_1748
00D6: if
8039:   not  15@ == 2
004D: jump_if_false @PLCHUTE_1748
00D6: if
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false @PLCHUTE_1741
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_1741
0006: 15@ = 2

:PLCHUTE_1748
00D6: if
001B:   0 > 10@
004D: jump_if_false @PLCHUTE_1862
00D6: if
8039:   not  15@ == 3
004D: jump_if_false @PLCHUTE_1862
00D6: if
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false @PLCHUTE_1855
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_1855
0006: 15@ = 3

:PLCHUTE_1862
0002: jump @PLCHUTE_2099

:PLCHUTE_1869
00D6: if
0029:   11@ >= 0
004D: jump_if_false @PLCHUTE_1981
00D6: if
8039:   not  15@ == 4
004D: jump_if_false @PLCHUTE_1981
00D6: if
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false @PLCHUTE_1974
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_1974
0006: 15@ = 4

:PLCHUTE_1981
00D6: if
001B:   0 > 11@
004D: jump_if_false @PLCHUTE_2099
00D6: if
8039:   not  15@ == 5
004D: jump_if_false @PLCHUTE_2099
00D6: if
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false @PLCHUTE_2092
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_2092
0006: 15@ = 5

:PLCHUTE_2099
0002: jump @PLCHUTE_2200

:PLCHUTE_2106
00D6: if
8039:   not  15@ == 1
004D: jump_if_false @PLCHUTE_2200
00D6: if
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false @PLCHUTE_2200
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
0006: 15@ = 1

:PLCHUTE_2200
00D6: if or
00E1:   player 0 pressed_key 17
0038:   $1512 == 1
004D: jump_if_false @PLCHUTE_2383
00D6: if
8038:   not  $1902 == 1
004D: jump_if_false @PLCHUTE_2383
00D6: if
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false @PLCHUTE_2383
00D6: if and
0038:   $PARACHUTE_CREATION_STAGE == 3
0038:   $1511 == 0
004D: jump_if_false @PLCHUTE_2383
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)
0008: $8270 += 1100
0004: $FREEFALL_STAGE = 3
0006: 0@ = 0

:PLCHUTE_2383
00D6: if
0038:   $FREEFALL_STAGE == 2
004D: jump_if_false @PLCHUTE_2501
00D6: if
04EE:   animation "PARACHUTE" loaded
004D: jump_if_false @PLCHUTE_2489
0173: set_actor $PLAYER_ACTOR Z_angle_to 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
0002: jump @PLCHUTE_2494

:PLCHUTE_2489
05BE: AS_kill_actor $PLAYER_ACTOR

:PLCHUTE_2494
0050: gosub @PLCHUTE_5516

:PLCHUTE_2501
00D6: if
0038:   $FREEFALL_STAGE == 3
004D: jump_if_false @PLCHUTE_4777
00D6: if
0018:   $8270 > 0
004D: jump_if_false @PLCHUTE_2583
00D6: if
001F:   32@ > $8270 // (int)
004D: jump_if_false @PLCHUTE_2583
097A: play_audio_at -1000.0 -1000.0 -1000.0 event 1039
0004: $8270 = 0

:PLCHUTE_2583
00D6: if
0039:   0@ == 0
004D: jump_if_false @PLCHUTE_2686
0087: 25@ = 3@ // (float)
0017: 25@ /= 500.0
0087: 26@ = 2@ // (float)
0017: 26@ /= 500.0
0085: 18@ = 32@ // (int)
0085: 19@ = 32@ // (int)
0087: 5@ = 4@ // (float)
0013: 5@ *= -1.0
0089: 6@ = $1509 // (float)
0006: 0@ = 1

:PLCHUTE_2686
00D6: if
0039:   0@ == 1
004D: jump_if_false @PLCHUTE_2853
0085: 10@ = 32@ // (int)
0062: 10@ -= 19@ // (int)
00D6: if
001B:   500 > 10@
004D: jump_if_false @PLCHUTE_2826
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)
0002: jump @PLCHUTE_2853

:PLCHUTE_2826
0007: 2@ = 0.0
0007: 3@ = 0.0
0006: 0@ = 2

:PLCHUTE_2853
00D6: if
0039:   0@ == 2
004D: jump_if_false @PLCHUTE_2961
00D6: if
03CA:   object 17@ exists
004D: jump_if_false @PLCHUTE_2961
0750: set_object 17@ visibility 1
08D2: object 17@ scale_model 0.0
0085: 19@ = 32@ // (int)
0001: wait 0 ms
075A: set_object 17@ animation "PARA_OPEN_O" IFP_file "PARACHUTE" 1000.0 lockF 0 loop 1 // IF AND SET
0006: 0@ = 3

:PLCHUTE_2961
00D6: if
0039:   0@ == 3
004D: jump_if_false @PLCHUTE_3064
0085: 10@ = 32@ // (int)
0062: 10@ -= 19@ // (int)
00D6: if
001B:   500 > 10@
004D: jump_if_false @PLCHUTE_3047
0093: 21@ = integer 10@ to_float
0017: 21@ /= 500.0
08D2: object 17@ scale_model 21@
0002: jump @PLCHUTE_3064

:PLCHUTE_3047
08D2: object 17@ scale_model 1.0
0006: 0@ = 4

:PLCHUTE_3064
00D6: if
0039:   0@ == 5
004D: jump_if_false @PLCHUTE_3132
0107: 20@ = create_object #PARA_COLLISION at 0.0 0.0 0.0
0750: set_object 20@ visibility 0
0392: make_object 20@ moveable 1
04D9: object 20@ set_scripted_collision_check 1
0006: 0@ = 6

:PLCHUTE_3132
00D6: if
0039:   0@ == 6
004D: jump_if_false @PLCHUTE_4350
0494: get_joystick 0 data_to 10@ 11@ 12@ 12@
00D6: if
0038:   $1511 == 1
004D: jump_if_false @PLCHUTE_3198
0006: 10@ = 0
0006: 11@ = 0

:PLCHUTE_3198
0093: 21@ = integer 10@ to_float
0017: 21@ /= 4.267
0063: 21@ -= 2@ // (float)
0017: 21@ /= 20.0
005B: 2@ += 21@ // (float)
0087: 21@ = 2@ // (float)
0017: 21@ /= 15.0
0063: 1@ -= 21@ // (float)
00D6: if
0021:   1@ > 180.0
004D: jump_if_false @PLCHUTE_3299
000F: 1@ -= 360.0

:PLCHUTE_3299
00D6: if
0023:   -180.0 > 1@
004D: jump_if_false @PLCHUTE_3330
000B: 1@ += 360.0

:PLCHUTE_3330
02F6: $1507 = cosine 1@ // (float)
02F7: $1508 = sine 1@ // (float)
0069: $1507 *= $1500 // (float)
0069: $1508 *= $1500 // (float)
0011: $1507 *= -1.0
0085: 12@ = 10@ // (int)
0085: 13@ = 11@ // (int)
0095: make 12@ absolute_integer
0095: make 13@ absolute_integer
00D6: if or
0019:   12@ > 40
0019:   13@ > 40
004D: jump_if_false @PLCHUTE_4062
00D6: if
001D:   12@ > 13@ // (int)
004D: jump_if_false @PLCHUTE_3737
0089: 21@ = $1501 // (float)
0065: 21@ -= $1509 // (float)
0017: 21@ /= 20.0
005F: $1509 += 21@ // (float)
00D6: if
0029:   10@ >= 0
004D: jump_if_false @PLCHUTE_3603
00D6: if
8039:   not  15@ == 2
004D: jump_if_false @PLCHUTE_3603
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
0006: 15@ = 2

:PLCHUTE_3603
00D6: if
001B:   0 > 10@
004D: jump_if_false @PLCHUTE_3730
00D6: if
8039:   not  15@ == 3
004D: jump_if_false @PLCHUTE_3730
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
0006: 15@ = 3

:PLCHUTE_3730
0002: jump @PLCHUTE_4055

:PLCHUTE_3737
00D6: if
0029:   11@ >= 0
004D: jump_if_false @PLCHUTE_3896
0089: 21@ = $1503 // (float)
0065: 21@ -= $1509 // (float)
0017: 21@ /= 20.0
005F: $1509 += 21@ // (float)
00D6: if
8039:   not  15@ == 4
004D: jump_if_false @PLCHUTE_3896
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
0006: 15@ = 4

:PLCHUTE_3896
00D6: if
001B:   0 > 11@
004D: jump_if_false @PLCHUTE_4055
0089: 21@ = $1501 // (float)
0065: 21@ -= $1509 // (float)
0017: 21@ /= 20.0
005F: $1509 += 21@ // (float)
00D6: if
8039:   not  15@ == 5
004D: jump_if_false @PLCHUTE_4055
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
0006: 15@ = 5

:PLCHUTE_4055
0002: jump @PLCHUTE_4221

:PLCHUTE_4062
0089: 21@ = $1501 // (float)
0065: 21@ -= $1509 // (float)
0017: 21@ /= 20.0
005F: $1509 += 21@ // (float)
00D6: if
8039:   not  15@ == 5
004D: jump_if_false @PLCHUTE_4221
00D6: if
8039:   not  15@ == 1
004D: jump_if_false @PLCHUTE_4221
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
0006: 15@ = 1

:PLCHUTE_4221
01BB: store_object 17@ position_to $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
00D6: if
04DA:   has_object 20@ collided
004D: jump_if_false @PLCHUTE_4314
075A: set_object 17@ animation "PARA_RIP_LOOP_O" IFP_file "PARACHUTE" 8.0 lockF 1 loop 1 // IF AND SET
0006: 0@ = 7

:PLCHUTE_4314
00D6: if
00E1:   player 0 pressed_key 15
004D: jump_if_false @PLCHUTE_4350
0792: disembark_instantly_actor $PLAYER_ACTOR
0004: $FREEFALL_STAGE = 6
0004: $1498 = 3

:PLCHUTE_4350
00D6: if
03CA:   object 17@ exists
004D: jump_if_false @PLCHUTE_4589
00D6: if
0837:   object 17@ animation == "PARA_OPEN_O"
004D: jump_if_false @PLCHUTE_4589
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)
0011: $1507 *= -1.0
00D6: if and
0043:   21@ == 1.0
0039:   0@ == 4
004D: jump_if_false @PLCHUTE_4589
0006: 0@ = 5

:PLCHUTE_4589
00D6: if
8118:   not actor $PLAYER_ACTOR dead
004D: jump_if_false @PLCHUTE_4777
00D6: if
04AD:   actor $PLAYER_ACTOR in_water
004D: jump_if_false @PLCHUTE_4728
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
0004: $FREEFALL_STAGE = 5
0006: 0@ = 0

:PLCHUTE_4728
083D: get_actor $PLAYER_ACTOR velocity_in_direction_XYZ 21@ 21@ 23@
00D6: if
0021:   23@ > -0.1
004D: jump_if_false @PLCHUTE_4777
0004: $FREEFALL_STAGE = 4
0006: 0@ = 0

:PLCHUTE_4777
00D6: if
0038:   $FREEFALL_STAGE == 4
004D: jump_if_false @PLCHUTE_5267
00D6: if
0039:   0@ == 0
004D: jump_if_false @PLCHUTE_5164
0004: $1498 = 1
00A0: store_actor $PLAYER_ACTOR position_to $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
000D: $TEMPVAR_Z_COORD -= 1.0
00A1: put_actor $PLAYER_ACTOR at $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD
083E: set_actor $PLAYER_ACTOR rotation 0.0 0.0 1@ while_in_air
00D6: if
0022:   -10.0 > $1509
004D: jump_if_false @PLCHUTE_4918
0004: $FREEFALL_STAGE = 2
0006: 0@ = 0
0002: jump @PLCHUTE_5088

:PLCHUTE_4918
00D6: if
0022:   -4.0 > $1509
004D: jump_if_false @PLCHUTE_5043
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@
0002: jump @PLCHUTE_5081

:PLCHUTE_5043
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_5081
0006: 0@ = 1

:PLCHUTE_5088
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)
000A: 18@ += 1000

:PLCHUTE_5164
00D6: if
0039:   0@ == 1
004D: jump_if_false @PLCHUTE_5267
00D6: if
0837:   object 17@ animation == "PARA_LAND_O"
004D: jump_if_false @PLCHUTE_5267
0839: get_object 17@ animation "PARA_LAND_O" progress_to 21@
00D6: if
0043:   21@ == 1.0
004D: jump_if_false @PLCHUTE_5267
0004: $1498 = 2
0050: gosub @PLCHUTE_5516

:PLCHUTE_5267
00D6: if
0038:   $FREEFALL_STAGE == 5
004D: jump_if_false @PLCHUTE_5324
0004: $1498 = 1
00D6: if
0039:   0@ == 0
004D: jump_if_false @PLCHUTE_5324
0004: $1498 = 2
0050: gosub @PLCHUTE_5516

:PLCHUTE_5324
00D6: if and
0018:   $FREEFALL_STAGE > 0
001A:   4 > $FREEFALL_STAGE
004D: jump_if_false @PLCHUTE_5401
00D6: if
8118:   not actor $PLAYER_ACTOR dead
004D: jump_if_false @PLCHUTE_5401
083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ $1507 $1508 $1509
0173: set_actor $PLAYER_ACTOR Z_angle_to 1@
083E: set_actor $PLAYER_ACTOR rotation 3@ 2@ 1@ while_in_air

:PLCHUTE_5401
00D6: if
0038:   $FREEFALL_STAGE == 6
004D: jump_if_false @PLCHUTE_5426
0050: gosub @PLCHUTE_5516

:PLCHUTE_5426
00D6: if
0038:   $FREEFALL_STAGE == 7
004D: jump_if_false @PLCHUTE_5451
0050: gosub @PLCHUTE_5458

:PLCHUTE_5451
0002: jump @PLCHUTE_118

:PLCHUTE_5458
0004: $FREEFALL_STAGE = 0
0006: 0@ = 0
0249: release_model #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
0051: return

:PLCHUTE_5516
0682: detach_object 17@ 0.0 0.0 0.0 collision_detection 0
09A2: destroy_object_with_fade 17@
0108: destroy_object 20@
0555: remove_weapon 46 from_actor $PLAYER_ACTOR
0004: $FREEFALL_STAGE = 0
0004: $PARACHUTE_CREATION_STAGE = 0
0006: 0@ = 0
0249: release_model #PARACHUTE
04EF: release_animation "PARACHUTE"
0249: release_model #GUN_PARA
083E: set_actor $PLAYER_ACTOR rotation 0.0 0.0 1@ while_in_air
0992: set_player $PLAYER_CHAR weapons_scrollable 1
004E: end_thread

Geplaatst: (bewerkt)

Dat lijkt me wel een handig script, ik zal het proberen en dan dadelijk zeggen of het iets is geworden.

Edit: Perfect, de parachute doet het :)

Bewerkt: door Donald F. Duck
Geplaatst:

@RD: echt een super advies, ga maar naar een ander forum. :tu:

Dat was sarcastisch bedoelt hoop ik... :duh:

Geplaatst:

@RD: echt een super advies, ga maar naar een ander forum. :tu:

Dat was sarcastisch bedoelt hoop ik... :duh:

Dat was inderdaad sarcastisch. Wilde er juist mee zeggen dat het helemaal geen zin heeft om te reageren "ik weet het niet, ik zou het op gtaforums vragen". Toevallig zitten hier wel degelijk leden die bezig zijn geweest met external scripts.

Geplaatst:

@RD: echt een super advies, ga maar naar een ander forum. :tu:

Dat was sarcastisch bedoelt hoop ik... :duh:

Dat was inderdaad sarcastisch. Wilde er juist mee zeggen dat het helemaal geen zin heeft om te reageren "ik weet het niet, ik zou het op gtaforums vragen". Toevallig zitten hier wel degelijk leden die bezig zijn geweest met external scripts.

Oke, mijn excuses daarvoor. Ik had helemaal geen idee dat hier mensen daarmee bezig zijn, op jou na dan.

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...