:
Destination Time
:
Present Time
:
Last Time Departed
Sign in to follow this  
bluespace88

For Ashley

Recommended Posts

//add these along with the other create threads at the top

004F: create_thread @LabelScanner   

004F: create_thread @LabelWeapons 

004F: create_thread @LabelKnight	  

004F: create_thread @LabelKnightPursuit	 

004F: create_thread @LabelAutodrive

004F: create_thread @LabelEject   

004F: create_thread @LabelDraw





//add this right above the mission 0 thread

:LabelVoice	 

0006: 1@ = 200	

0004: 2@ = 0

0004: 3@ = 0

0050: gosub @LabelTimeCircuits3  

033F: set_text_draw_letter_width_height   7.5  25.0  

03E4: set_text_draw_align_right  1   

033E: text_draw  550.0  50.0 'PLIGHT'		   



:LabelVoiceReturn

0051: return  



:LabelScanner

03A4: name_thread 'SCAN'



:LabelScanner1S 

0001: wait  10 ms

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelScanner1S

00D6: if  

00DE:   player $PLAYER_CHAR driving_vehicle_type #BFINJECT	  

004D: jump_if_false @LabelScanner1S  

00D6: if  0  

0038:   $AUTOCRUISE ==  0  // integer values

004D: jump_if_false @LabelScanner1

040D: unload_wav  1				

00D6: if  0

0039:	14@ ==  0  // integer values

004D: jump_if_false @LabelScanner1S1

03CF: load_wav 'FUD_12' as  1   

0006: 14@ = 1  

0002: jump @LabelScanner1SA



:LabelScanner1S1

03CF: load_wav 'FUD_18' as  1 



:LabelScanner1SA 

0001: wait  0 ms

00D6: if  0

03D0:   wav  1 loaded

004D: jump_if_false @LabelScanner1SA

03D1: play_wav  1 



:LabelScanner1SB  

0001: wait  200 ms	  

00D6: if  0					   

00E0:   player $PLAYER_CHAR driving

004D: jump_if_false @LabelScanner1SC  

00D6: if  1

83D2:   NOT  wav 1 ended	 

03D0:   wav  1 loaded

004D: jump_if_false @LabelScanner1SC   

0050: gosub @LabelVoice

0002: jump @LabelScanner1SB 

  

:LabelScanner1SC  

040D: unload_wav  1  



:LabelScanner1SD  

0001: wait 10 ms

00D6: if							  

00DE:   player $PLAYER_CHAR driving vehicle type #BFINJECT

004D: jump_if_false @LabelScanner1S	   



:LabelScanner1   

0001: wait  10 ms

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelScanner1S   

00D6: if  0

0038:   $SPM ==  0  // integer values

004D: jump_if_false @LabelScanner1

00D6: if							  

00DE:   player $PLAYER_CHAR driving vehicle type #BFINJECT

004D: jump_if_false @LabelScanner1SD	

03C1: 0@ = player $PLAYER_CHAR car	 

0407: create coordinate 5@ 6@ 7@ from car 0@ offset  -10.0 -10.0  0.0 

0407: create coordinate 9@ 10@ 11@ from car 0@ offset   10.0  10.0  0.0

053E: 12@ = get_random_car_with_actors -1 in_area 5@ 6@ 9@ 10@  

00D6: if  0

8119:   NOT  car 12@ wrecked 

004D: jump_if_false @LabelScanner1AA  

00D6: if  1

8185:   NOT  car 12@ health >=  990

8137:   NOT  car 12@ id == #BFINJECT 

004D: jump_if_false @LabelScanner1AA  

0050: gosub @LabelCollision





:LabelScanner1AA  

0050: gosub @LabelSystems

00D6: if  1

00E1:   key_pressed  0  3

00E1:   key_pressed  0  18 

004D: jump_if_false @LabelScanner1



:LabelScanner1A 

0001: wait  10 ms				  

00D6: if  1	  

00E1:   key_pressed  0  3

00E1:   key_pressed  0  18 

004D: jump_if_false @LabelScanner2  

0002: jump @LabelScanner1A 



:LabelScanner2	 

00D6: if  21

03D2:   wav 1 ended   

83D0:   NOT  wav  1 loaded

004D: jump_if_false @LabelScanner3

040D: unload_wav  1

03CF: load_wav 'FUD_19' as  1  



:LabelScanner3

0001: wait  10 ms	  

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelScanner1	

00D6: if							  

00DE:   player $PLAYER_CHAR driving vehicle type #BFINJECT

004D: jump_if_false @LabelScanner3  

03D1: play_wav  1	 

00D6: if  1

00E1:   key_pressed  0  3

00E1:   key_pressed  0  18 

004D: jump_if_false @LabelScanner4AA 

0002: jump @LabelScanner8



:LabelScanner4AA

03C1: 0@ = player $PLAYER_CHAR car  

0407: create coordinate 5@ 6@ 7@ from car 0@ offset  -10.0 -10.0  0.0 

0407: create coordinate 9@ 10@ 11@ from car 0@ offset   10.0  10.0  0.0

053E: 12@ = get_random_car_with_actors -1 in_area 5@ 6@ 9@ 10@  

00D6: if  0

8119:   NOT  car 12@ wrecked 

004D: jump_if_false @LabelScanner4A  

00D6: if  1

8185:   NOT  car 12@ health >=  990

8137:   NOT  car 12@ id == #BFINJECT 

004D: jump_if_false @LabelScanner4A   

0050: gosub @LabelCollision  



:LabelScanner4A   

0050: gosub @LabelSystems

0002: jump @LabelScanner2 



:LabelScanner8	  

0001: wait 0 ms

00D6: if  21	  

80E1:   NOT  key_pressed  0  3

80E1:   NOT  key_pressed  0  18 

004D: jump_if_false @LabelScanner8	

0004: $SCAN = 0

040D: unload_wav  1

0002: jump @LabelScanner1	 



:LabelSystems

0209: 5@ = random_int  1  2000  

0208: 6@ = random_float   0.0  100.0 

00D6: if  0

0039:	5@ ==  1000  // integer values

004D: jump_if_false @LabelSystemsReturn

040D: unload_wav  1	

00D6: if  0

8021:	NOT  6@ >  87.5  // floating-point values

004D: jump_if_false @LabelSystems1  

00D6: if  0

8021:	NOT  6@ >  75.0  // floating-point values

004D: jump_if_false @LabelSystems2	  

00D6: if  0

8021:	NOT  6@ >  62.5  // floating-point values

004D: jump_if_false @LabelSystems3 

00D6: if  0

8021:	NOT  6@ >  50.0  // floating-point values

004D: jump_if_false @LabelSystems4 

00D6: if  0

8021:	NOT  6@ >  37.5  // floating-point values

004D: jump_if_false @LabelSystems5 

00D6: if  0

8021:	NOT  6@ >  25.0  // floating-point values

004D: jump_if_false @LabelSystems6 

00D6: if  0

8021:	NOT  6@ >  12.5  // floating-point values

004D: jump_if_false @LabelSystems7

03CF: load_wav 'FUD_14' as  1

0002: jump @LabelSystemsSA 



:LabelSystems1

03CF: load_wav 'FUD_03' as  1	 

0002: jump @LabelSystemsSA 



:LabelSystems2

03CF: load_wav 'FUD_05' as  1	

0002: jump @LabelSystemsSA 



:LabelSystems3

03CF: load_wav 'FUD_06' as  1  

0002: jump @LabelSystemsSA 



:LabelSystems4

03CF: load_wav 'FUD_07' as  1  

0002: jump @LabelSystemsSA 



:LabelSystems5

03CF: load_wav 'BAND_01' as  1  

0002: jump @LabelSystemsSA 



:LabelSystems6

03CF: load_wav 'FUD_08' as  1  

0002: jump @LabelSystemsSA 



:LabelSystems7

03CF: load_wav 'FUD_09' as  1  

0002: jump @LabelSystemsSA 



:LabelSystemsSA 

0001: wait  0 ms

00D6: if  0

03D0:   wav  1 loaded

004D: jump_if_false @LabelSystemsSA

03D1: play_wav  1 



:LabelSystemsSB  

0001: wait  200 ms  

00D6: if  

00DE:   player $PLAYER_CHAR driving vehicle type #BFINJECT

004D: jump_if_false @LabelSystemsSC  

00D6: if  1

83D2:   NOT  wav 1 ended	

03D0:   wav  1 loaded

004D: jump_if_false @LabelSystemsSC	 

0050: gosub @LabelVoice

0002: jump @LabelSystemsSB 



:LabelSystemsSC

040D: unload_wav  1  



:LabelSystemsReturn  

0051: return	



:LabelCollision  

0209: 5@ = random_int  1  1000  

0208: 6@ = random_float   0.0  100.0	

00D6: if  0

0039:	5@ ==  500  // integer values

004D: jump_if_false @LabelSystemsReturn

040D: unload_wav  1	

00D6: if  0

0021:	6@ >  50.0  // floating-point values

004D: jump_if_false @LabelCollision1

03CF: load_wav 'FUD_13' as  1  

0002: jump @LabelCollisionSA 



:LabelCollision1

03CF: load_wav 'FUD_15' as  1  



:LabelCollisionSA 

0001: wait  0 ms

00D6: if  0

03D0:   wav  1 loaded

004D: jump_if_false @LabelCollisionSA

03D1: play_wav  1 



:LabelCollisionSB  

0001: wait  200 ms   

00D6: if  

00DE:   player $PLAYER_CHAR driving vehicle type #BFINJECT

004D: jump_if_false @LabelCollisionSC  

00D6: if  1

83D2:   NOT  wav 1 ended  

03D0:   wav  1 loaded

004D: jump_if_false @LabelCollisionSC  

0050: gosub @LabelVoice

0002: jump @LabelCollisionSB 



:LabelCollisionSC

040D: unload_wav  1  



:LabelCollisionReturn  

0051: return  

 

:LabelEject

03A4: name_thread 'EJECT'

 

:LabelEject1

0001: wait  10 ms

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelEject1

00D6: if 

00DE:   player $PLAYER_CHAR driving_vehicle_type #BFINJECT 

004D: jump_if_false @LabelEject1  

03C1: 1@ = player $PLAYER_CHAR car 

00D6: if  1

00E1:   key_pressed  0  6

00E1:   key_pressed  0  3

004D: jump_if_false @LabelEject1

									  

:LabelEject2	 

0407: create_coordinate 2@ 3@ 4@ from_car 1@ offset  0.0  0.0  1.0	 

0087: 5@ =  4@  // floating-point values only	  

000B: 5@ +=  5.0  // floating-point values		

02AB: set_actor  $PLAYER_ACTOR immunities  1  1  1  1  1

012A: put_player $PLAYER_CHAR at  2@ 3@ 4@ and_remove_from_car 





:LabelEject3

0001: wait  10 ms

000B:  4@ +=  0.5  // floating-point values  

0055: put_player $PLAYER_CHAR at  2@ 3@ 4@ 

00D6: if  0

0025:   4@ > 5@  // floating-point values (never used in VC or GTA 3) 

004D: jump_if_false @LabelEject3		 

0001: wait  1000 ms 

02AB: set_actor  $PLAYER_ACTOR immunities  0  0  0  0  0

0002: jump @LabelEject1 



:LabelWeapons

03A4: name_thread 'WEAPON'  

 

:LabelWeapons1

0001: wait  10 ms

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelWeapons1

00D6: if  0

00DE:   player $PLAYER_CHAR driving_vehicle_type #BFINJECT	 

004D: jump_if_false @LabelWeapons1   

00D6: if  0  

0038:   $AUTOCRUISE ==  0  // integer values

004D: jump_if_false @LabelWeapons1

00D6: if  0

00E1:   key_pressed  0  19   

004D: jump_if_false @LabelWeapons2  

000A: $WEAPON +=  1  // integer values 



:LabelWeaponsA 

00D6: if  0

0039:	$WEAPON ==  1  // integer values

004D: jump_if_false @LabelWeaponsB 

00BC: text_highpriority 'MJAM'  1000 ms  1  //

0002: jump @LabelWeapons1A  



:LabelWeaponsB 

00D6: if  0

0039:	$WEAPON ==  2  // integer values

004D: jump_if_false @LabelWeaponsC 

00BC: text_highpriority 'KLASER'  1000 ms  1  // 

0002: jump @LabelWeapons1A   



:LabelWeaponsC 

00D6: if  0

0039:	$WEAPON ==  3  // integer values

004D: jump_if_false @LabelWeaponsE

00BC: text_highpriority 'ROCKET'  1000 ms  1  // 

0002: jump @LabelWeapons1A	



:LabelWeaponsE

00D6: if  0

0019:	$WEAPON >  3  // integer values

004D: jump_if_false @LabelWeapons1A

0006: $WEAPON = 0 

00BC: text_highpriority 'KOFF'  1000 ms  1  //	

0002: jump @LabelWeapons1A



:LabelWeapons1A

0001: wait 100 ms



:LabelWeapons2

00D6: if  0		

00E1:   key_pressed  0  17

004D: jump_if_false @LabelWeapons1 

00D6: if  0

0039:	$WEAPON ==  0  // integer values

004D: jump_if_false @LabelWeapons3 

0002: jump @LabelWeapons1



:LabelWeapons3 

00D6: if  0

0039:	$WEAPON ==  1  // integer values

004D: jump_if_false @LabelWeapons4  

0002: jump @LabelMicrojam



:LabelWeapons4 

00D6: if  0

0039:	$WEAPON ==  2  // integer values

004D: jump_if_false @LabelWeapons5  

0002: jump @LabelLasers	



:LabelWeapons5 

00D6: if  0

0039:	$WEAPON ==  3  // integer values

004D: jump_if_false @LabelWeapons1

0002: jump @LabelRockets   



:LabelMicrojam

004F: create_thread @LabelKnightEMP 

0002: jump @LabelWeaponsEnd



:LabelLasers  

004F: create_thread @LabelKnightLaser

0002: jump @LabelWeaponsEnd   



:LabelRockets  

004F: create_thread @LabelKnightRocket

0002: jump @LabelWeaponsEnd				 





:LabelWeaponsEnd

004E: end_thread



:LabelKnightEMP

03A4: name_thread 'EMPS' 

03C1: 1@ = player $PLAYER_CHAR car 

0006: 8@ = -1  

0407: create coordinate 2@ 3@ 4@ from car 1@ offset  -1.5  0.0  0.0 

0407: create coordinate 5@ 6@ 7@ from car 1@ offset   1.5  25.0  0.0	 

053E: 8@ = get_random_car_with_actors -1 in_area 2@ 3@ 5@ 6@

00D6: if  0				 

8039:   NOT  8@ ==  -1// integer values

004D: jump_if_false @LabelKnightEMPC	  

00D6: if  0				  

8137:   NOT  car 8@ id == #BFINJECT	   

004D: jump_if_false @LabelKnightEMPC 

03CF: load_wav 'FUD_04' as  2  



:LabelKnightEMPA

0001: wait  0 ms

00D6: if  0

03D0:   wav  2 loaded

004D: jump_if_false @LabelKnightEMPA

03D1: play_wav  2				 

00AD: set_car 8@ max_speed_to  0.0 

0477: set_car  8@ animation  5  3600000 ms 

02D4: unknown_turn_off_car 8@ engine	  

	 



:LabelKnightEMPB  

0001: wait  2500 ms

040D: unload_wav 2	 



:LabelKnightEMPC	

004F: create_thread @LabelWeapons

004E: end_thread	 





:LabelKnightLaser

03A4: name_thread 'LaserS' 

03C1: 1@ = player $PLAYER_CHAR car  

03CF: load_wav 'FUD_10' as  2 



:LabelKnightLaserA

0001: wait  0 ms

00D6: if  0

03D0:   wav  2 loaded 

004D: jump_if_false @LabelKnightLaserA

03D1: play_wav  2		 

0407: create coordinate 2@ 3@ 4@ from car 1@ offset   -10.0  2.5  -0.25

0407: create coordinate 5@ 6@ 7@ from car 1@ offset   10.0  150.0  -0.25	

0006: 8@ = -1  

053E: 8@ = get_random_car_with_actors -1 in_area 2@ 3@ 5@ 6@ 

00D6: if  0				 

8039:   NOT  8@ ==  -1// integer values

004D: jump_if_false @LabelKnightLaser1A	  

00D6: if  1				

80DC:   NOT   player $PLAYER_CHAR driving 8@	 

8119:   NOT  car 8@ wrecked  

004D: jump_if_false @LabelKnightLaser1A

0407: create coordinate 2@ 3@ 4@ from car 1@ offset   0.0  2.5  -0.25

0407: create coordinate 5@ 6@ 7@ from car 8@ offset   0.0  0.0  -0.25	 

0002: jump @LabelKnightLaser1B





:LabelKnightLaser1A 

0407: create coordinate 2@ 3@ 4@ from car 1@ offset   0.0  2.5  -0.25

0407: create coordinate 5@ 6@ 7@ from car 1@ offset   0.0  150.0  -0.25  





:LabelKnightLaser1B					 

0509: unknown 9@ = distance between point 2@  3@ and point 5@  6@ 

02E3: 10@ = car 1@ speed   

0015: 10@ /=  40.0  // floating-point values  

000B: 10@ +=  0.5

0063: 5@ -= 2@  // floating-point values (never used in VC or GTA 3)

0063: 6@ -= 3@  // floating-point values (never used in VC or GTA 3)   

0063: 7@ -= 4@  // floating-point values (never used in VC or GTA 3) 

0087: 12@ =  5@  // floating-point values only

0087: 13@ =  6@  // floating-point values only	

0087: 14@ =  7@  // floating-point values only	 

0073: 12@ /= 9@  // floating-point values (never used in VC or GTA 3)  

0073: 13@ /= 9@  // floating-point values (never used in VC or GTA 3)

0073: 14@ /= 9@  // floating-point values (never used in VC or GTA 3)   

0011: 12@ *=  10@ // floating-point values

0011: 13@ *=  10@ // floating-point values

0011: 14@ *=  10@  // floating-point values  

0013: 9@ *=  2.0 // floating-point values

0073: 5@ /= 9@  // floating-point values (never used in VC or GTA 3)

0073: 6@ /= 9@  // floating-point values (never used in VC or GTA 3)	 

0073: 7@ /= 9@  // floating-point values (never used in VC or GTA 3)

0007: 9@ = 300.0 



:LabelKnightLaserA1

0001: wait  0 ms

00D6: if  0

0021:	9@ >  0.0  // floating-point values

004D: jump_if_false @LabelKnightLaserB   

000F: 9@ -=  15.0	// integer values	   

0050: gosub @LabelKnightLaserCh

0050: gosub @LabelKnightLaserCh				 

0050: gosub @LabelKnightLaserCh				 

0050: gosub @LabelKnightLaserCh			  

0050: gosub @LabelKnightLaserCh	 

0050: gosub @LabelKnightLaserCh

0050: gosub @LabelKnightLaserCh				 

0050: gosub @LabelKnightLaserCh				 

0050: gosub @LabelKnightLaserCh			  

0050: gosub @LabelKnightLaserCh 

0050: gosub @LabelKnightLaserCh

0050: gosub @LabelKnightLaserCh				 

0050: gosub @LabelKnightLaserCh				 

0050: gosub @LabelKnightLaserCh			  

0050: gosub @LabelKnightLaserCh			

0002: jump @LabelKnightLaserA1			



:LabelKnightLaserCh

005b: 2@ += 5@  // floating-point values (never used in VC or GTA 3)

005b: 3@ += 6@  // floating-point values (never used in VC or GTA 3)   

005b: 4@ += 7@  // floating-point values (never used in VC or GTA 3) 

0437: scatter_particle  0  0.05 at 2@ 3@ 4@  12@  13@  14@   

0087: 0@ =  2@  // floating-point values only

0087: 1@ =  3@  // floating-point values only

0087: 10@ =  2@  // floating-point values only

0087: 11@ =  3@  // floating-point values only   

000B: 0@ +=  1.5  // floating-point values

000B: 1@ +=  1.5  // floating-point values  

000F: 10@ -=  1.5  // floating-point values

000F: 11@ -=  1.5  // floating-point values

0006: 8@ = -1  

053E: 8@ = get_random_car_with_actors -1 in_area 0@ 1@ 10@ 11@  

00D6: if  0				 

8039:   NOT  8@ ==  -1// integer values

004D: jump_if_false @LabelKnightLaserChR	  

00D6: if  1				  

8137:   NOT  car 8@ id == #BFINJECT	  

8119:   NOT  car 8@ wrecked  

004D: jump_if_false @LabelKnightLaserChR 

00D6: if  0				   

01AF:   car  8@  0 ()near_point  2@  3@  4@ radius  1.5  1.5  1.5				 

004D: jump_if_false @LabelKnightLaserChR				  

020B: explode_car 8@  

0002: jump @LabelKnightLaserB



:LabelKnightLaserB  

040D: unload_wav 2

	



:LabelKnightLaserC 

004F: create_thread @LabelWeapons 

004E: end_thread   



:LabelKnightLaserChR  

0051: return 



:LabelKnightRocket

03A4: name_thread 'ROCKET'	 

03CF: load_wav 'FUD_20' as  2  

0001: wait 0 ms		   

0006: 14@ = 0

0007: 9@ = 0.0

03C1: 1@ = player $PLAYER_CHAR car 





:LabelKnightRocketS

00D6: if  21	 

80E1:   NOT   key_pressed  0  5  

80E1:   NOT   key_pressed  0  7

004D: jump_if_false @LabelKnightRocketS1	

0407: create coordinate 2@ 3@ 4@ from car 1@ offset   -5.0  2.0  0.0

0407: create coordinate 5@ 6@ 7@ from car 1@ offset   5.0  100.0  0.0  

0002: jump @LabelKnightRocketS2 



:LabelKnightRocketS1			

0407: create coordinate 2@ 3@ 4@ from car 1@ offset   -5.0  -2.0  0.0

0407: create coordinate 5@ 6@ 7@ from car 1@ offset   5.0  -100.0  0.0  



:LabelKnightRocketS2

0006: 8@ = -1  

053E: 8@ = get_random_car_with_actors -1 in_area 2@ 3@ 5@ 6@	  

02E3: 13@ = car 1@ speed   

0015: 13@ /=  40.0  // floating-point values  

000B: 13@ +=  2.0





:LabelKnightRocketA   

0001: wait  0 ms

00D6: if  0  

03D0:   wav 2 loaded  

004D: jump_if_false @LabelKnightRocketA

03D1: play_wav 2

0407: create coordinate 2@ 3@ 4@ from car 1@ offset   0.0  -2.0  0.0   

00D6: if  1		

80DC:   NOT  player $PLAYER_CHAR driving  8@

8119:   NOT  car 8@ wrecked   

004D: jump_if_false @LabelKnightRocketC   

0006: 0@ = 1

0006: 16@ = 0	 



:LabelKnightRocketB   

0001: wait 10 ms  

00D6: if  1

8019:   NOT  16@ >  5000  // integer values  

81AF:   NOT  car  8@  0 ()near_point  2@  3@  4@ radius  1.5  1.5  1.5 

004D: jump_if_false @LabelKnightRocketE					  

0407: create coordinate 5@ 6@ 7@ from car 8@ offset   0.0  0.0  0.0 

0509: unknown 9@ = distance between point 2@ 3@ and point 5@ 6@  

0050: gosub @LabelKnightRocketCalc  

0002: jump @LabelKnightRocketB



:LabelKnightRocketC   

0006: 0@ = 0				   

0002: jump @LabelKnightRocketC2



:LabelKnightRocketC1

0407: create coordinate 5@ 6@ 7@ from car 1@ offset   0.0  -100.0  0.0 

0002: jump @LabelKnightRocketD



:LabelKnightRocketC2

00D6: if  21	 

80E1:   NOT   key_pressed  0  5  

80E1:   NOT   key_pressed  0  7

004D: jump_if_false @LabelKnightRocketC1		

0407: create coordinate 5@ 6@ 7@ from car 1@ offset   0.0  100.0  0.0   



:LabelKnightRocketD	  

0001: wait 10 ms

00D6: if  0 

8019:   NOT  14@ >  30  // integer values  

004D: jump_if_false @LabelKnightRocketE

0509: unknown 9@ = distance between point 2@ 3@ and point 5@ 6@	

0050: gosub @LabelKnightRocketCalc

000A:  14@ +=  1  // integer values   

0002: jump @LabelKnightRocketD				



:LabelKnightRocketCalc

0087: 10@ =  5@  // floating-point values only

0087: 11@ =  6@  // floating-point values only

0087: 12@ =  7@  // floating-point values only  

0063: 10@ -= 2@  // floating-point values (never used in VC or GTA 3)

0063: 11@ -= 3@  // floating-point values (never used in VC or GTA 3)

0063: 12@ -= 4@  // floating-point values (never used in VC or GTA 3) 

0073: 10@ /= 9@  // floating-point values (never used in VC or GTA 3)

0073: 11@ /= 9@  // floating-point values (never used in VC or GTA 3)

0073: 12@ /= 9@  // floating-point values (never used in VC or GTA 3) 

0069: 10@ *= 13@  // floating-point values

0069: 11@ *= 13@  // floating-point values

0069: 12@ *= 13@  // floating-point values

005b: 2@ += 10@  // floating-point values (never used in VC or GTA 3)

005b: 3@ += 11@  // floating-point values (never used in VC or GTA 3)

005b: 4@ += 12@  // floating-point values (never used in VC or GTA 3) 

0437: scatter_particle  75  1.0 at 2@ 3@ 4@  0  0  0		

04D5: create_corona_at 2@ 3@ 4@ radius  2.0 type  1 flare  1 RGB  255  255  255	  

0087: 10@ =  2@  // floating-point values only

0087: 11@ =  3@  // floating-point values only

0087: 12@ =  2@  // floating-point values only

0087: 15@ =  3@  // floating-point values only 

000B: 10@ +=  10.0  // floating-point values

000B: 11@ +=  10.0  // floating-point values  

000F: 12@ -=  10.0  // floating-point values

000F: 15@ -=  10.0  // floating-point values  

02CE: 9@ = ground_z 2@ 3@ 4@

00D6: if  0				 

8039:   NOT  9@ ==  -1// integer values

004D: jump_if_false @LabelKnightRocketE  

0006: 9@ = -1  

053E: 9@ = get_random_car_with_actors -1 in_area 10@ 11@ 12@ 15@

00D6: if  0				 

8039:   NOT  9@ ==  -1// integer values

004D: jump_if_false @LabelKnightRocketCalcEnd1	  

00D6: if  1			 

80DC:   NOT   player $PLAYER_CHAR driving 9@   

8119:   NOT  car 9@ wrecked  

004D: jump_if_false @LabelKnightRocketCalcEnd1 

00D6: if  0				   

01AF:   car  9@  0 ()near_point  2@  3@  4@ radius  1.5  1.5  1.5				 

004D: jump_if_false @LabelKnightRocketCalcEnd	 

0002: jump @LabelKnightRocketE



:LabelKnightRocketCalcEnd  

00D6: if  0  

0039:	0@ ==  0  // integer values

004D: jump_if_false @LabelKnightRocketCalcEnd1  

0006: 0@ = 1

0085: 8@ = 9@  // integer values and handles  

0002: jump @LabelKnightRocketB



:LabelKnightRocketCalcEnd1  

0051: return



:LabelKnightRocketE	  

040D: unload_wav 2

020C: create_explosion_with_radius  10 at  2@ 3@ 4@

0565: create_temporary_explosion_fire  2@ 3@ 4@  10  

0001: wait 100 ms

004F: create_thread @LabelWeapons

004E: end_thread	 



:LabelKnightPursuit

03A4: name_thread 'PURSUIT'



:LabelKnightPursuit1

0001: wait  10 ms

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelKnightPursuit1

00D6: if  0

00DE:   player $PLAYER_CHAR driving_vehicle_type #BFINJECT

004D: jump_if_false @LabelKnightPursuit1  

03C1: 0@ = player $PLAYER_CHAR car   

00D6: if  21

80E1:   NOT  key_pressed  0  3  

00E1:   key_pressed  0  17

004D: jump_if_false @LabelKnightPursuit1A  

00D6: if  0

0038:   $AUTODRIVE ==  0  // integer values

004D: jump_if_false @LabelKnightPursuit1B	   

0006: 1@ = 100

0004: 2@ = 255

0004: 3@ = 50

0050: gosub @LabelTimeCircuits3  

033F: set_text_draw_letter_width_height   7.5  25.0  

03E4: set_text_draw_align_right  1   

033E: text_draw  500.0 1.0 'PLIGHT'   

0006: 1@ = 255	

0006: 2@ = 255

0006: 3@ = 255

0050: gosub @LabelTimeCircuits3	 

03E4: set_text_draw_align_right  1  

033F: set_text_draw_letter_width_height  0.25  1.0

033E: text_draw  485.0  176.0 'NCRUISE' 

0002: jump @LabelKnightPursuit1  



:LabelKnightPursuit1B

0006: 1@ = 100

0004: 2@ = 255

0004: 3@ = 50

0050: gosub @LabelTimeCircuits3  

033F: set_text_draw_letter_width_height   7.5  25.0  

03E4: set_text_draw_align_right  1   

033E: text_draw  550.0 1.0 'PLIGHT'   

0006: 1@ = 255	

0006: 2@ = 255

0006: 3@ = 255

0050: gosub @LabelTimeCircuits3	 

03E4: set_text_draw_align_right  1  

033F: set_text_draw_letter_width_height  0.25  1.0

033E: text_draw  535.0  176.0 'ACRUISE' 

0002: jump @LabelKnightPursuit1  



:LabelKnightPursuit1A	 

00D6: if  0

0038:   $AUTODRIVE ==  0  // integer values

004D: jump_if_false @LabelKnightPursuit1	 

0459: end_thread_named 'WEAPON'

040D: unload_wav  2

03CF: load_wav 'FUD_17' as  2



:LabelKnightPursuit1AL	 

0001: wait  0 ms

00D6: if  0

03D0:   wav  2 loaded

004D: jump_if_false @LabelKnightPursuit1AL

03D1: play_wav  2	   

					 

:LabelKnightPursuit2   

0001: wait 0 ms	

00D6: if  1

0256:   player $PLAYER_CHAR defined

8119:   NOT   car 0@ wrecked

004D: jump_if_false @LabelKnightPursuitU

00D6: if  0

00E0:   player $PLAYER_CHAR driving

004D: jump_if_false @LabelKnightPursuitU

00D6: if  0

00E1:   key_pressed  0  3

004D: jump_if_false @LabelKnightPursuitU

0006: 1@ = 255	

0004: 2@ = 200

0004: 3@ = 50

0050: gosub @LabelTimeCircuits3  

033F: set_text_draw_letter_width_height   7.5  25.0  

03E4: set_text_draw_align_right  1   

033E: text_draw  550.0 1.0 'PLIGHT'   

0006: 1@ = 255	

0006: 2@ = 255

0006: 3@ = 255

0050: gosub @LabelTimeCircuits3	 

03E4: set_text_draw_align_right  1  

033F: set_text_draw_letter_width_height  0.25  1.0 

033E: text_draw  534.0  176.0 'PURSUIT' 

02E3: 4@ = car 0@ speed				 

00D6: if  0

0021:	4@ >  15.00  // floating-point values

004D: jump_if_false @LabelKnightPursuit2A 



:LabelKnightPursuit2B	 

0011: 4@ *=  1.225  // floating-point values

00D6: if  0

0021:	4@ >  196.25	 // floating-point values

004D: jump_if_false @LabelKnightPursuit3  

0007: 4@ = 196.25   

0002: jump @LabelKnightPursuit3



:LabelKnightPursuit2A 

000B:  4@ +=  5.0  // floating-point values



:LabelKnightPursuit3  

00D6: if  1

81F3:   NOT   car 0@ airborne

81F4:   NOT   car 0@ flipped   

004D: jump_if_false @LabelKnightPursuit2  

04BA: set_car  0@ speed_instantly  4@	 

0003: shake_camera  50

00D6: if  0

03D2:   wav 2 ended

004D: jump_if_false @LabelKnightPursuit2	 

0002: jump @LabelKnightPursuit1A



:LabelKnightPursuitU  

004F: create_thread @LabelWeapons 

040D: unload_wav  2

0002: jump @LabelKnightPursuit1



:LabelKnight

03A4: name_thread 'KNIGHT' 



:LabelKnight1

0001: wait  10 ms

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelKnight1   

00D6: if  22	   

00E0:   player $PLAYER_CHAR driving

80E1:   NOT  key_pressed  0  16

80E1:   NOT  key_pressed  0  18

004D: jump_if_false @LabelKnightCreate   

00D6: if  0  

8119:   NOT   car 0@ wrecked

004D: jump_if_false @LabelKnight1S  

0224: set_car  0@ health_to  2000

02AC: set_car  0@ immunities  1  1  1  1  1

053F: set_car  0@ tires_vulnerable  0 

00D6: if  1  

00DC:   player $PLAYER_CHAR driving  0@  

80E1:   NOT   key_pressed  0  6

004D: jump_if_false @LabelKnightDoor

020A: set car 0@ door status to  2 

0002: jump @LabelKnight1S



:LabelKnightDoor

020A: set car 0@ door status to  1



:LabelKnight1S	

00D6: if	

00DE:   player $PLAYER_CHAR driving_vehicle_type #BFINJECT

004D: jump_if_false @LabelKnight1

03C1: 0@ = player $PLAYER_CHAR car 

0002: jump @LabelKnight1  



:LabelKnightCreate

00D6: if 0

8119:   not car $TRAIN wrecked

004D: jump_if_false @LabelKnightCreate1A

00D6: if  0

81FC:   not player $PLAYER_CHAR near_car $TRAIN radius 25.0 25.0 0

004D: jump_if_false @LabelKnight1

 

:LabelKnightCreate1A

00D6: if  0

0119:   car 0@ wrecked

004D: jump_if_false @LabelKnight1D

0247: request_model  #BFINJECT

038B: load_requested_models



:LabelKnightCreate1

0001: wait  10 ms

00D6: if  0

0248:   model  #BFINJECT  available 

004D: jump_if_false @LabelKnightCreate1   

0506: vehicle_model  #BFINJECT  set_next_variation 2  2 

04C4: create_coordinate  7@  8@  9@ from_actor $PLAYER_ACTOR offset  0.0  -10.0  0.0  

0172: 1@ = actor $PLAYER_ACTOR z_angle   

02CE: 9@ = ground_z 7@  8@  9@		 

00A5: 0@ = create_car  #BFINJECT  at  7@  8@  9@

0175: set_car  0@ z_angle_to  1@ 

02AC: set_car  0@ immunities  1  1  1  1  1

053F: set_car  0@ tires_vulnerable  0	 

0407: create_coordinate 1@ 2@ 3@ from_car 0@ offset  13@ 2.0 0.25	

0249: release_model  #BFINJECT	  

create_thread @TIME 0@ 0 0 0 0 0 0 -5000.0 $CTIME $CTIME1 0 0 $CTIME $CTIME1 -1 0   



:LabelKnight1D  

0001: wait  10 ms

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelKnight1

00D6: if  0

8119:   NOT   car 0@ wrecked  

004D: jump_if_false @LabelKnight1   

0224: set_car  0@ health_to  1000

02AC: set_car  0@ immunities  1  1  1  1  1

053F: set_car  0@ tires_vulnerable  0		

0054: store_player $PLAYER_CHAR position_to 4@ 5@ 6@	

00AA: store_car 0@ position_to 7@ 8@ 9@	

00D6: if  0  

8021:	NOT  9@ >  0.0  // floating-point values	

004D: jump_if_false @LabelKnightDA  

04C4: create_coordinate  7@  8@  9@ from_actor $PLAYER_ACTOR offset  0.0  -10.0  0.0  

02CE: 9@ = ground_z 7@  8@  9@		 

00AB: put_car  0@ at  7@  8@  9@   

		 

:LabelKnightDA

0509: unknown 10@ = distance between point 4@ 5@ and point 7@ 8@

00BC: text_highpriority 'AUTOC'  10 ms  1  // Auto-Cruise	  

00D6: if  0 

0021:	10@ >  25.0  // floating-point values

004D: jump_if_false @LabelKnightDI3		 

0007:  11@ = 50.0

0002: jump @LabelKnight1EF2 

											   

:LabelKnightDI3  

0007:  11@ = 15.0 



:LabelKnight1EF2	

00D6: if  0  

80E1:   NOT  key_pressed  0  4

004D: jump_if_false @LabelKnight1F 

00D6: if  0  

01FC:   player $PLAYER_CHAR near_car 0@ radius  10.0  10.0  0 

004D: jump_if_false @LabelKnight1E 

00AD: set_car 0@ max_speed_to  0.0 

00AF: set_car 0@ driver_behaviour_to  0  

00D6: if  0  

00DC:   player $PLAYER_CHAR driving  0@

004D: jump_if_false @LabelKnight1D 

0002: jump @LabelKnight1



:LabelKnight1E

00A8: set_car 0@ to_psycho_driver

00AE: unknown_set_car 0@ to_ignore_traffic_lights  2 

00AD: set_car 0@ max_speed_to  11@		   

00AF: set_car 0@ driver_behaviour_to  4

02C2: car  0@ drive_to  4@ 5@ 6@	  

00D6: if  0  

00DC:   player $PLAYER_CHAR driving  0@

004D: jump_if_false @LabelKnight1D 

0002: jump @LabelKnight1



:LabelKnight1F		  

00D6: if  0  

01FC:   player $PLAYER_CHAR near_car 0@ radius  10.0  10.0  0 

004D: jump_if_false @LabelKnight1

0247: request_model #WFYG2 

038B: load_requested_models 

03CF: load_wav 'FUD_01' as  1

02D4: unknown_turn_off_car 0@ engine 

 

:LabelKnightWait 

0001: wait  0 ms 

00D6: if  2  

03D0:   wav  1 loaded

0248:   model #WFYG2 available

01C1:   car 0@ stopped

004D: jump_if_false @LabelKnightWait 

0001: wait  50 ms 

00D6: if  0  

01C1:   car 0@ stopped

004D: jump_if_false @LabelKnightWait   

0129: 12@ = create_actor  5 #WFYG2 in_car  0@ driverseat   

0337: unknown_actor 12@ flag  0  

0332: set_actor  12@ bleeding_to  0 (false)  

0249: release_model #WFYG2

0321: kill_actor 12@   

03D1: play_wav  1	 

 

:LabelKnightWait1 

0001: wait  10 ms	  

00D6: if  0

80DF:   NOT  actor 12@ driving

004D: jump_if_false @LabelKnightWait1  

009B: destroy_actor_instantly 12@



:LabelKnightWait2  

0001: wait  0 ms

00D6: if  0

03D2:   wav 1 ended

004D: jump_if_false @LabelKnightWait2

040D: unload_wav  1 

0002: jump @LabelKnight1	



:LabelAutodrive

03A4: name_thread 'AUTO_D' 

0004: $AUTODRIVE = 0 

0004: $AUTOCRUISE = 0  

0006: 6@ = 50.0



:LabelAutodrive1	

0001: wait  10 ms

00D6: if  0

0256:   player $PLAYER_CHAR defined

004D: jump_if_false @LabelAutodrive1

00D6: if  

00DE:   player $PLAYER_CHAR driving_vehicle_type #BFINJECT  

004D: jump_if_false @LabelAutodrive1

00D6: if  1  

00E1:   key pressed  0  18

00E1:   key pressed  0  6

004D: jump_if_false @LabelAutodrive1   

040D: unload_wav 1

03CF: load_wav 'FUD_02' as 1



:LabelAutodrive1A	 

0001: wait  0 ms

00D6: if  0

03D0:   wav  1 loaded

004D: jump_if_false @LabelAutodrive1A

03D1: play_wav  1		   



:LabelAutodrive1B

0001: wait  200 ms	

00D6: if  

00DE:   player $PLAYER_CHAR driving_vehicle_type #BFINJECT

004D: jump_if_false @LabelAutodrive1

00D6: if  1

83D2:   NOT  wav 1 ended  

03D0:   wav  1 loaded

004D: jump_if_false @LabelAutodrive2   

0050: gosub @LabelVoice

0002: jump @LabelAutodrive1B



:LabelAutodrive2

040D: unload_wav 1   

0004: $AUTOCRUISE = 1 

0050: gosub @LabelLocation1	  

00D6: if  0  

8031:   NOT  8@ >= 0.0  // floating-point values (never used in VC or GTA 3) 

004D: jump_if_false @LabelAutodrive2A	 

00BC: text_highpriority 'INV_LOC'  1000 ms  1  

0001: wait 1000 ms

0002: jump @LabelAutodrive2 



:LabelAutodrive2A	

0001: wait 1000 ms	  

0004: $AUTOCRUISE = 0

00A8: set_car 0@ to_psycho_driver

00AE: unknown_set_car 0@ to_ignore_traffic_lights  2 

00AD: set_car 0@ max_speed_to  35.0	 

02C2: car  0@ drive_to_point  1@ 2@ 8@  



:LabelAutodrive3  

0001: wait  10 ms

00D6: if  21					  

01AF:   car  0@  0 ()near_point  1@ 2@ 8@ radius  5.0  5.0  5.0  

00E1:   key pressed  0  15

004D: jump_if_false @LabelAutodrive3			   

02D4: unknown_turn_off_car 0@ engine

00AD: set_car 0@ max_speed_to  0.0   

0001: wait  500 ms

01B4: set_player $PLAYER_CHAR frozen_state  1 (unfrozen)   



:LabelAutodrive4

0001: wait  10 ms 

00D6: if  0  

01C1:   car  0@ stopped

004D: jump_if_false @LabelAutodrive4   

040D: unload_wav  1

03CF: load_wav 'FUD_16' as  1



:LabelAutodrive5	 

0001: wait  0 ms

00D6: if  0

03D0:   wav  1 loaded

004D: jump_if_false @LabelAutodrive5

03D1: play_wav  1		   



:LabelAutodrive6

0001: wait  200 ms	  

00D6: if  1

83D2:   NOT  wav 1 ended 

03D0:   wav  1 loaded

004D: jump_if_false @LabelAutoDrive7   

0050: gosub @LabelVoice

0002: jump @LabelAutodrive6



:LabelAutoDrive7	

040D: unload_wav 1

0369: put_player $PLAYER_CHAR in_car  0@ 

0004: $AUTODRIVE = 0  

0002: jump @LabelAutodrive1



:LabelLocation1

0004: $AUTODRIVE = 1

03C1: 0@ = player $PLAYER_CHAR car   

01B4: set_player $PLAYER_CHAR frozen_state  0 (frozen)

0407: create_coordinate 1@ 2@ 3@ from_car 0@ offset  0.0  0.0  6@ 

0087: 7@ =  2@  // floating-point values only 

000B: 7@ +=  1.0  // floating-point values	

02CE: 8@ = ground_z 1@ 2@ 3@	   

0087: 9@ =  3@  // floating-point values only 

000F: 9@ -=  5.0  // floating-point values	

0087: 11@ =  3@  // floating-point values only 

000B: 11@ +=  10.0  // floating-point values

012A: put_player $PLAYER_CHAR at  1@ 2@ 11@ and_remove_from_car

015F: set_camera_position  1@ 2@ 3@  0.0  0.0  0.0

0160: point_camera  1@ 7@ 8@  1   

0001: wait 500 ms



:LabelLocation2

0001: wait  10 ms			

0087: 10@ =  6@  // floating-point values only	 

0017: 10@ /= 20.0  // floating-point values (never used in VC or GTA 3) 

0087: 9@ =  3@  // floating-point values only 

000F: 9@ -=  5.0  // floating-point values 

0087: 11@ =  3@  // floating-point values only 

000B: 11@ +=  10.0  // floating-point values   

0055: put_player $PLAYER_CHAR at  1@ 2@ 11@

015F: set_camera_position  1@ 2@ 3@  0.0  0.0  0.0

0160: point_camera  1@ 7@ 8@  2 

04D5: create_corona_at 1@ 2@ 9@ radius  0.05 type  1 flare  0 RGB  255  0  0

04D5: create_corona_at 1@ 2@ 9@ radius  0.05 type  1 flare  0 RGB  255  0  0  

00D6: if  1  

00E1:   key pressed  0  11  

8031:   NOT  1@ >= 2000.0  // floating-point values (never used in VC or GTA 3)

004D: jump_if_false @LabelLocation2A 

005b: 1@ += 10@  // floating-point values (never used in VC or GTA 3)	



:LabelLocation2A

00D6: if  1  

00E1:   key pressed  0  10	

0031:   1@ >= -2000.0  // floating-point values (never used in VC or GTA 3)

004D: jump_if_false @LabelLocation2B		

0063: 1@ -= 10@  // floating-point values (never used in VC or GTA 3)	



:LabelLocation2B  

00D6: if  1  

00E1:   key pressed  0  8

8031:   NOT  2@ >= 2000.0  // floating-point values (never used in VC or GTA 3)

004D: jump_if_false @LabelLocation2C

005b: 2@ += 10@  // floating-point values (never used in VC or GTA 3)

005b: 7@ += 10@  // floating-point values (never used in VC or GTA 3)

					   

:LabelLocation2C  

00D6: if  1 

00E1:   key pressed  0  9

0031:   2@ >= -2000.0  // floating-point values (never used in VC or GTA 3)

004D: jump_if_false @LabelLocation2D

0063: 2@ -= 10@  // floating-point values (never used in VC or GTA 3)	

0063: 7@ -= 10@  // floating-point values (never used in VC or GTA 3)							   



:LabelLocation2D 

00D6: if  1  

00E1:   key pressed  0  7 

8031:   NOT  3@ >= 500.0  // floating-point values (never used in VC or GTA 3)  

004D: jump_if_false @LabelLocation2E 

005b: 3@ += 10@  // floating-point values (never used in VC or GTA 3)	

005b: 6@ += 10@  // floating-point values (never used in VC or GTA 3)		  

005b: 3@ += 10@  // floating-point values (never used in VC or GTA 3)	

005b: 6@ += 10@  // floating-point values (never used in VC or GTA 3)



:LabelLocation2E

00D6: if  1  

00E1:   key pressed  0  5   

0031:   3@ >= 20.0  // floating-point values (never used in VC or GTA 3)

004D: jump_if_false @LabelLocation2F		

0063: 3@ -= 10@  // floating-point values (never used in VC or GTA 3)   

0063: 6@ -= 10@  // floating-point values (never used in VC or GTA 3)	

0063: 3@ -= 10@  // floating-point values (never used in VC or GTA 3)   

0063: 6@ -= 10@  // floating-point values (never used in VC or GTA 3)  



:LabelLocation2F

00D6: if  0

00E1:   key_pressed  0  17

004D: jump_if_false @LabelLocation2   

00AA: store_car 0@ position_to 12@ 13@ 14@

0055: put_player $PLAYER_CHAR at  12@ 13@ 11@	

0001: wait 100 ms

0369: put_player $PLAYER_CHAR in_car  0@ 

015A: restore_camera

0373: set_camera_directly_behind_player



:LabelLocationEnd

0051: return	 



:LabelTimeCircuits3

0340: set_text_draw_color  1@ 2@ 3@  255

0341: unknown_text_stuff  1

03E4: set_text_draw_align_right  0

0343: set_text_linewidth  5000.0

0348: set_text_draw_proportional  1

0342: set_text_draw_centered  0 

0345: set_text_draw_in_box  0

033F: set_text_draw_letter_width_height  0.5  1.8	

0051: return					   



:LabelDraw			   

0001: wait 10 ms

03F0: text_draw_toggle  0 

0002: jump @LabelDraw

Edited by Mini-Me
boxed

Share this post


Link to post
Share on other sites

Thanks Blue :)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this