Taxi

Материал из GTAModding.ru
Перейти к: навигация, поиск
MISSION_START
// *******************************************************************************************
// *******************************************************************************************
// *************************************CRRRRRAZY TAXI****************************************
// *******************************LETS MAKE SOME CRRRRRAZY MONEY!*****************************
// *******************************************************************************************
// *******************************************************************************************
// *******************************************************************************************
 
// Mission start stuff
 
GOSUB mission_start_taxi1
 
GOSUB mission_cleanup_taxi1
 
MISSION_END
 
 
// Variables for mission
 
VAR_INT blip1_ct1 blip2_ct1 spray_blip_onscreen  
 
VAR_INT taxi_car1 taxi_countdown_already_started
 
VAR_INT taxi_ped1 taxi_passed_this_shot taxi_fucked_flag
 
//VAR_INT special_ped1 
 
VAR_INT taxi_countdown taxi_score taxi_distance_int taxi_distance_int_old
 
VAR_INT taxi_finish_time taxi_start_time total_taxi_time_taken 
 
VAR_FLOAT taxi_destx1 taxi_desty1 taxi_destz1
VAR_FLOAT taxi_destx2 taxi_desty2 taxi_destz2
VAR_FLOAT taxi_blipx taxi_blipy taxi_blipz 
 
VAR_FLOAT taxi_ped_x taxi_ped_y taxi_ped_z
VAR_FLOAT x_diff y_diff x_diff_sq y_diff_sq taxi_distance_sq taxi_distance 
VAR_INT score_for_this_fare	speedbonus in_a_row_cash in_a_row_number
 
// ***************************************Mission Start*************************************
 
mission_start_taxi1:
 
SCRIPT_NAME	TAXI
 
SET_DEATHARREST_STATE OFF // GSW - does deatharrest have to be switched off?  YES! well maybe...
 
flag_player_on_mission = 1
taxi_countdown_already_started = 0
taxi_countdown = 0
taxi_passed_this_shot = 0
taxi_score = 0
taxi_ped1 = -1
spray_blip_onscreen = 0
taxi_fucked_flag = 0
in_a_row_number = 5
in_a_row_cash = 2000
 
WAIT 0
 
DISPLAY_ONSCREEN_COUNTER_WITH_STRING taxi_passed_this_shot COUNTER_DISPLAY_NUMBER (FARES) //TEST STUFF!!!!!!!!!!!!!
 
IF NOT IS_PLAYER_PLAYING player
	GOTO mission_taxi1_failed
ENDIF
 
IF IS_PLAYER_IN_ANY_CAR player
	STORE_CAR_PLAYER_IS_IN player taxi_car1
ELSE
	GOTO mission_taxi1_failed
ENDIF
 
//SWITCH_TAXI_TIMER ON
SET_TAXI_LIGHTS taxi_car1 On
PRINT_NOW ( TAXI1 ) 1500 1 //Pick up a fare
//WAIT 1500
WAIT 0
 
Start_taxi_mission:
 
IF done_taxi_help = 0
	PRINT_HELP ( TAXIH1 )
	done_taxi_help = 1
ENDIF
 
score_for_this_fare = 0
 
IF NOT IS_PLAYER_PLAYING player
	GOTO mission_taxi1_failed
ENDIF
 
IF IS_CAR_DEAD taxi_car1
	GOTO mission_taxi1_failed
ENDIF
 
IF NOT IS_PLAYER_IN_CAR player taxi_car1
	GOTO mission_taxi1_failed
ENDIF
 
/*
IF taxi_passed = 0	   				//SPECIAL MISSIONS???
AND IS_PLAYER_IN_ZONE player REDLIGH
	GOTO special_ped_mission1
ENDIF
*/
 
//	random_ped_grabber:
 
	IF NOT controlmode = 3
		IF IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
		AND flag_player_on_mission = 1
			GOTO taxi_fail_button_pressed
		ENDIF
	ELSE
		IF IS_BUTTON_PRESSED PAD1 SQUARE
		AND flag_player_on_mission = 1
			GOTO taxi_fail_button_pressed
		ENDIF
	ENDIF
 
	IF taxi_countdown_already_started = 1
	AND taxi_countdown = 0
		//PRINT_NOW ( TAXI2 ) 5000 2 //You SUCK!
		GOTO mission_taxi1_failed
	ENDIF
 
IF IS_COLLISION_IN_MEMORY LEVEL_INDUSTRIAL 
	GET_RANDOM_CHAR_IN_ZONE IND_ZON taxi_ped1
ENDIF
 
IF IS_COLLISION_IN_MEMORY LEVEL_COMMERCIAL 
	GET_RANDOM_CHAR_IN_ZONE COM_ZON taxi_ped1
ENDIF
 
IF IS_COLLISION_IN_MEMORY LEVEL_SUBURBAN 
	GET_RANDOM_CHAR_IN_ZONE SUB_ZON taxi_ped1
ENDIF
//IF IS_PLAYER_IN_ZONE player SUB_ZON 
//	GET_RANDOM_CHAR_IN_ZONE IND_ZON taxi_ped1
//ENDIF
 
IF taxi_ped1 = -1
	WAIT 0
	GOTO Start_taxi_mission		//	random_ped_grabber
ENDIF
 
 
//been_in_taxi1_before = 7
 
// START OF TAXI MISSION
 
	CHAR_SET_IDLE taxi_ped1
	CLEAR_CHAR_THREAT_SEARCH taxi_ped1
	SET_CHAR_HEED_THREATS taxi_ped1 False
	ADD_BLIP_FOR_CHAR taxi_ped1 blip1_ct1
	SET_CHAR_OBJ_HAIL_TAXI taxi_ped1
 
	//PRINT_NOW ( TAXI1 ) 2000 2 //Pick up a fare
 
ped_get_in_taxi:
 
WHILE NOT LOCATE_PLAYER_IN_CAR_CHAR_3D Player taxi_ped1 7.0 7.0 2.0 FALSE //IF CLOSE TO THE CHAR
OR NOT IS_CAR_STOPPED taxi_car1
//	OR NOT IS_PLAYER_IN_CAR player taxi_car1 
 
 WAIT 0
 
	IF NOT IS_PLAYER_PLAYING player	// ok to fail if player is arrested?
		GOTO mission_taxi1_failed
	ENDIF
 
	IF IS_CAR_DEAD taxi_car1
		GOTO mission_taxi1_failed
	ENDIF
 
	IF IS_CHAR_DEAD taxi_ped1
		GOTO mission_taxi1_passed
	ENDIF
 
	IF NOT IS_PLAYER_IN_CAR player taxi_car1	    
		GOTO mission_taxi1_failed				
	ENDIF
 
	IF NOT LOCATE_PLAYER_IN_CAR_CHAR_3D Player taxi_ped1 90.0 90.0 20.0 FALSE
		GOTO mission_taxi1_passed
	ENDIF 
 
	IF NOT controlmode = 3
		IF IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
		AND flag_player_on_mission = 1
			GOTO taxi_fail_button_pressed
		ENDIF
	ELSE
		IF IS_BUTTON_PRESSED PAD1 SQUARE
		AND flag_player_on_mission = 1
			GOTO taxi_fail_button_pressed
		ENDIF
	ENDIF
 
	IF taxi_countdown_already_started = 1
	AND taxi_countdown = 0
		//PRINT_NOW ( TAXI2 ) 5000 2 //You SUCK!
		GOTO mission_taxi1_failed
	ENDIF
 
	IF IS_CAR_HEALTH_GREATER taxi_car1 500
	AND spray_blip_onscreen = 1
		REMOVE_BLIP spray_taxi
		spray_blip_onscreen = 0
		taxi_fucked_flag = 0
	ENDIF
 
	IF NOT IS_CHAR_DEAD taxi_ped1
		TURN_CHAR_TO_FACE_PLAYER taxi_ped1 Player
	ENDIF
 
ENDWHILE
 
 
IF NOT IS_CAR_HEALTH_GREATER taxi_car1 500
	PRINT_NOW ( TAXI7 ) 4000 1 //I ain't getting in that heap of shit!!
	IF spray_blip_onscreen = 0
		REMOVE_BLIP spray_taxi
		IF IS_COLLISION_IN_MEMORY LEVEL_INDUSTRIAL 
			ADD_SPRITE_BLIP_FOR_COORD 925.0 -359.5 -100.0 RADAR_SPRITE_SPRAY spray_taxi
		ENDIF
		IF IS_COLLISION_IN_MEMORY LEVEL_COMMERCIAL
			ADD_SPRITE_BLIP_FOR_COORD 379.0 -493.8 -100.0 RADAR_SPRITE_SPRAY spray_taxi
		ENDIF
		IF IS_COLLISION_IN_MEMORY LEVEL_SUBURBAN
			ADD_SPRITE_BLIP_FOR_COORD -1128.0 32.5.8 -100.0 RADAR_SPRITE_SPRAY spray_taxi
		ENDIF
		spray_blip_onscreen = 1
		taxi_fucked_flag = 1
	ENDIF
	GOTO mission_taxi1_passed
ENDIF
 
SET_CHAR_RUNNING taxi_ped1 TRUE
SET_CHAR_OBJ_ENTER_CAR_AS_PASSENGER taxi_ped1 taxi_car1	
 
 
WHILE NOT IS_CHAR_IN_CAR taxi_ped1 taxi_car1 
	WAIT 0
 
		IF NOT IS_PLAYER_PLAYING player
			GOTO mission_taxi1_failed
		ENDIF
 
		IF IS_CAR_DEAD taxi_car1
			GOTO mission_taxi1_failed
		ENDIF
 
	 	IF IS_CHAR_DEAD taxi_ped1
			GOTO mission_taxi1_passed
		ENDIF
 
		IF NOT IS_PLAYER_IN_CAR player taxi_car1	    
			GOTO mission_taxi1_failed				
		ENDIF
 
		IF NOT LOCATE_PLAYER_IN_CAR_CHAR_3D Player taxi_ped1 90.0 90.0 20.0 FALSE
			GOTO mission_taxi1_passed
		ENDIF
 
		IF NOT controlmode = 3
			IF IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
			AND flag_player_on_mission = 1
				GOTO taxi_fail_button_pressed
			ENDIF
		ELSE
			IF IS_BUTTON_PRESSED PAD1 SQUARE
			AND flag_player_on_mission = 1
				GOTO taxi_fail_button_pressed
			ENDIF
		ENDIF
 
		IF taxi_countdown_already_started = 1
		AND taxi_countdown = 0
			//PRINT_NOW ( TAXI2 ) 5000 2 //You SUCK!
			GOTO mission_taxi1_failed
		ENDIF
 
		IF IS_CAR_HEALTH_GREATER taxi_car1 500
		AND spray_blip_onscreen = 1
			REMOVE_BLIP spray_taxi
			spray_blip_onscreen = 0
		ENDIF
 
		IF NOT LOCATE_PLAYER_IN_CAR_CHAR_3D Player taxi_ped1 7.0 7.0 2.0 FALSE
			GOTO ped_get_in_taxi
		ENDIF		
 
ENDWHILE
 
GET_CHAR_COORDINATES taxi_ped1 taxi_ped_x taxi_ped_y taxi_ped_z
 
REMOVE_BLIP blip1_ct1
SET_TAXI_LIGHTS taxi_car1 Off
 
//GET_GAME_TIMER taxi_start_time
 
passenger_destination:
 
WAIT 0
 
	IF NOT IS_PLAYER_PLAYING player
		GOTO mission_taxi1_failed
	ENDIF
 
	IF IS_COLLISION_IN_MEMORY LEVEL_INDUSTRIAL //INDUSTRIAL*******************************************
	//OR IS_PLAYER_IN_ZONE player SUB_ZON
 
		GENERATE_RANDOM_INT_IN_RANGE 1 11 been_in_taxi1_before
 
		IF NOT IS_PLAYER_PLAYING player
			GOTO mission_taxi1_failed
		ENDIF
 
		IF been_in_taxi1_before = 1
				IF IS_PLAYER_IN_ZONE player REDLIGH
					GOTO passenger_destination
				ENDIF	
			PRINT_NOW ( FARE1 ) 5000 1 //Take me to Meeouch Sex Kitten Club
 
			taxi_destx1 = 936.3
			taxi_desty1 = -462.6
			taxi_destz1 = 14.4
 
			taxi_destx2 = 913.7
			taxi_desty2 = -456.0
			taxi_destz2 = 16.4
		ENDIF
 
		IF been_in_taxi1_before = 2
				IF IS_PLAYER_IN_ZONE player S_VIEW				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE2 ) 5000 1 //Take me to Supa Save
 
			taxi_destx1 = 1268.5
			taxi_desty1 = -616.4
			taxi_destz1 = 11.7
 
			taxi_destx2 = 1288.3
			taxi_desty2 = -627.6
			taxi_destz2 = 13.7
		ENDIF
 
		IF been_in_taxi1_before = 3
				IF IS_PLAYER_IN_ZONE player CHINA				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE3 ) 5000 1 //Take me to the old School hall
 
			taxi_destx1 = 1008.9
			taxi_desty1 = -871.9
			taxi_destz1 = 14.4
 
			taxi_destx2 = 995.3
			taxi_desty2 = -881.9
			taxi_destz2 = 16.4
		ENDIF
 
		IF been_in_taxi1_before = 4
				IF IS_PLAYER_IN_ZONE player PORT_W				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE4 ) 5000 1 //Take me to greasy Joes
 
			taxi_destx1 = 849.3
			taxi_desty1 = -990.1
			taxi_destz1 = 4.5
 
			taxi_destx2 = 869.4
			taxi_desty2 = -1002.6
			taxi_destz2 = 6.5
		ENDIF
 
		IF been_in_taxi1_before = 5
				IF IS_PLAYER_IN_ZONE player REDLIGH				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE5 ) 5000 1 //Take me to Ammo Nation
 
			taxi_destx1 = 1065.4
			taxi_desty1 = -394.1
			taxi_destz1 = 14.3
 
			taxi_destx2 = 1057.9
			taxi_desty2 = -408.9
			taxi_destz2 = 16.3
		ENDIF
 
		IF been_in_taxi1_before = 6
				IF IS_PLAYER_IN_ZONE player LITTLEI				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE6 ) 5000 1 //Take me to Easy Credit Autos
 
			taxi_destx1 = 1207.0
			taxi_desty1 = -122.0
			taxi_destz1 = 14.0
 
			taxi_destx2 = 1224.0
			taxi_desty2 = -108.0
			taxi_destz2 = 16.0
		ENDIF							   
 
		IF been_in_taxi1_before = 7
				IF IS_PLAYER_IN_ZONE player REDLIGH				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE7 ) 5000 1 //Take us to Woodys topless bar
 
			taxi_destx1 = 912.9
			taxi_desty1 = -419.0
			taxi_destz1 = 14.0
 
			taxi_destx2 = 919.5
			taxi_desty2 = -401.3
			taxi_destz2 = 16.0
		ENDIF
 
		IF been_in_taxi1_before = 8
				IF IS_PLAYER_IN_ZONE player LITTLEI				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE8 ) 5000 1 //Take me to The Bistro
 
			taxi_destx1 = 1345.8
			taxi_desty1 = -461.8
			taxi_destz1 = 49.4
 
			taxi_destx2 = 1334.7
			taxi_desty2 = -447.0
			taxi_destz2 = 51.4
		ENDIF
 
		IF been_in_taxi1_before = 9
				IF IS_PLAYER_IN_ZONE player PORT_E				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE9 ) 5000 1 //Take me to the Import/Export garage
 
			taxi_destx1 = 1475.0
			taxi_desty1 = -686.0
			taxi_destz1 = 11.3
 
			taxi_destx2 = 1485.3
			taxi_desty2 = -667.5
			taxi_destz2 = 13.3
		ENDIF
 
		IF been_in_taxi1_before = 10
				IF IS_PLAYER_IN_ZONE player CHINA				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE10 ) 5000 1 //Take me to the 'Punk Noodles'
 
			taxi_destx1 = 1039.1
			taxi_desty1 = -660.1
			taxi_destz1 = 14.4
 
			taxi_destx2 = 1043.9
			taxi_desty2 = -647.9
			taxi_destz2 = 16.4
		ENDIF
	ENDIF 
 
 
	IF IS_COLLISION_IN_MEMORY LEVEL_COMMERCIAL //COMERCIAL*******************************************
	//OR IS_PLAYER_IN_ZONE player SUB_ZON
 
		GENERATE_RANDOM_INT_IN_RANGE 11 21 been_in_taxi1_before
 
		IF NOT IS_PLAYER_PLAYING player
			GOTO mission_taxi1_failed
		ENDIF
 
		IF been_in_taxi1_before = 11
				IF IS_PLAYER_IN_ZONE player CONSTRU
					GOTO passenger_destination
				ENDIF	
			PRINT_NOW ( FARE11 ) 5000 1 //Take me to the constuction site
 
			taxi_destx1 = 441.86	   
			taxi_desty1 = -193.00
			taxi_destz1 = 20.36
 
			taxi_destx2 = 447.42 
			taxi_desty2 = -201.93 
			taxi_destz2 = 22.21
		ENDIF
 
		IF been_in_taxi1_before = 12
				IF IS_PLAYER_IN_ZONE player STADIUM				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE12 ) 5000 1 //Take me to the stadium 
 
			taxi_destx1 = -27.05   
			taxi_desty1 = -269.61 
			taxi_destz1 = 14.95
 
			taxi_destx2 = -11.73 
			taxi_desty2 = -278.88 
			taxi_destz2 = 16.93
		ENDIF
 
		IF been_in_taxi1_before = 13
				IF IS_PLAYER_IN_ZONE player SHOPING				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE13 ) 5000 1 //Take me to the Church 
 
			taxi_destx1 = 22.07   
			taxi_desty1 = -1136.95 
			taxi_destz1 = 25.14
 
			taxi_destx2 = 28.95 
			taxi_desty2 = -1125.66 
			taxi_destz2 = 27.12
		ENDIF
 
		IF been_in_taxi1_before = 14
				IF IS_PLAYER_IN_ZONE player YAKUSA				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE14 ) 5000 1 //Casino  
 
			taxi_destx1 = 421.42   
			taxi_desty1 = -1390.83 
			taxi_destz1 = 24.95
 
			taxi_destx2 = 415.45 
			taxi_desty2 = -1401.24 
			taxi_destz2 = 26.92
		ENDIF
 
		IF been_in_taxi1_before = 15
				IF IS_PLAYER_IN_ZONE player UNIVERS				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE15 ) 5000 1 //Uni 
 
			taxi_destx1 = 183.15   
			taxi_desty1 = -215.50 
			taxi_destz1 = 17.02
 
			taxi_destx2 = 167.21 
			taxi_desty2 = -221.22 
			taxi_destz2 = 19.29
		ENDIF
 
		IF been_in_taxi1_before = 16
				IF IS_PLAYER_IN_ZONE player PARK				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE16 ) 5000 1 //Shopping Mall 
 
			taxi_destx1 = 193.77   
			taxi_desty1 = -626.22 
			taxi_destz1 = 25.12
 
			taxi_destx2 = 180.83 
			taxi_desty2 = -616.51 
			taxi_destz2 = 27.12
		ENDIF							   
 
		IF been_in_taxi1_before = 17
				IF IS_PLAYER_IN_ZONE player COM_EAS				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE17 ) 5000 1 //Museum 
 
			taxi_destx1 = 326.1   
			taxi_desty1 = -1001.7 
			taxi_destz1 = 29.05
 
			taxi_destx2 = 316.3 
			taxi_desty2 = -1012.4 
			taxi_destz2 = 24.44
		ENDIF
 
		IF been_in_taxi1_before = 18
				IF IS_PLAYER_IN_ZONE player YAKUSA				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE18 ) 5000 1 //(AMco) 
 
			taxi_destx1 = 246.20 
			taxi_desty1 = -1192.75   
			taxi_destz1 = 24.71
 
			taxi_destx2 = 256.67 
			taxi_desty2 = -1184.17 
			taxi_destz2 = 26.71
		ENDIF
 
		IF been_in_taxi1_before = 19
				IF IS_PLAYER_IN_ZONE player SHOPING				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE19 ) 5000 1 //Bolt Burgers 
 
			taxi_destx1 = 28.69  
			taxi_desty1 = -1066.66 
			taxi_destz1 = 26.72
 
			taxi_destx2 = 34.07 
			taxi_desty2 = -1078.96 
			taxi_destz2 = 24.97
		ENDIF
 
		IF been_in_taxi1_before = 20
				IF IS_PLAYER_IN_ZONE player PARK				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE20 ) 5000 1 //Take me to the park  
 
			taxi_destx1 = 27.56  
			taxi_desty1 = -776.42 
			taxi_destz1 = 26.26
 
			taxi_destx2 = 38.79 
			taxi_desty2 = -765.06 
			taxi_destz2 = 28.57
		ENDIF
	ENDIF 
 
 
	IF IS_COLLISION_IN_MEMORY LEVEL_SUBURBAN //SUBURBIA*******************************************
 
		GENERATE_RANDOM_INT_IN_RANGE 21 27  been_in_taxi1_before
 
		IF NOT IS_PLAYER_PLAYING player
			GOTO mission_taxi1_failed
		ENDIF
 
		IF been_in_taxi1_before = 21
				IF IS_PLAYER_IN_ZONE player AIRPORT
					GOTO passenger_destination
				ENDIF	
			PRINT_NOW ( FARE21 ) 5000 1 //Take me to the Airport
 
			taxi_destx1 = -744.5	   
			taxi_desty1 = -598.6
			taxi_destz1 = 8.0
 
			taxi_destx2 = -752.0 
			taxi_desty2 = -617.2 
			taxi_destz2 = 15.0
		ENDIF
 
		IF been_in_taxi1_before = 22
				IF IS_PLAYER_IN_ZONE player BIG_DAM				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE22 ) 5000 1 //Take me to the DAM 
 
			taxi_destx1 = -1111.3   
			taxi_desty1 = 522.9 
			taxi_destz1 = 65.0
 
			taxi_destx2 = -1101.0 
			taxi_desty2 = 516.7 
			taxi_destz2 = 70.0
		ENDIF
 
		IF been_in_taxi1_before = 23
				IF IS_PLAYER_IN_ZONE player SUB_IND				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE23 ) 5000 1 //Take me to the Import/Export garage 
 
			taxi_destx1 = -1107.9   
			taxi_desty1 = 163.5 
			taxi_destz1 = 50.0
 
			taxi_destx2 = -1115.4 
			taxi_desty2 = 155.6 
			taxi_destz2 = 68.0
		ENDIF
 
		IF been_in_taxi1_before = 24
				IF IS_PLAYER_IN_ZONE player SUB_IND				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE24 ) 5000 1 //Take me to the Hospital 
 
			taxi_destx1 = -1253.0   
			taxi_desty1 = -136.6 
			taxi_destz1 = 55.0
 
			taxi_destx2 = -1260.3 
			taxi_desty2 = -148.4 
			taxi_destz2 = 62.0
		ENDIF
 
		IF been_in_taxi1_before = 25
				IF IS_PLAYER_IN_ZONE player SUB_ZO2
				OR IS_PLAYER_IN_ZONE player SUB_ZO3				
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE25 ) 5000 1 //Park 
 
			taxi_destx1 = -230.1   
			taxi_desty1 = 311.5 
			taxi_destz1 = 0.0
 
			taxi_destx2 = -220.2 
			taxi_desty2 = 322.5 
			taxi_destz2 = 10.0
		ENDIF
 
		IF been_in_taxi1_before = 26
				IF IS_PLAYER_IN_ZONE player PROJECT
				OR IS_PLAYER_IN_ZONE player SWANKS
					GOTO passenger_destination
				ENDIF
			PRINT_NOW ( FARE26 ) 5000 1 //Projects 
 
			taxi_destx1 = -682.5   
			taxi_desty1 = 95.3 
			taxi_destz1 = 10.0
 
			taxi_destx2 = -673.0 
			taxi_desty2 = 88.4 
			taxi_destz2 = 25.0
		ENDIF
 
 
	ENDIF
 
 
	taxi_blipx = taxi_destx1 + taxi_destx2
	taxi_blipx /= 2.0
 
	taxi_blipy = taxi_desty1 + taxi_desty2
	taxi_blipy /= 2.0
 
	ADD_BLIP_FOR_COORD taxi_blipx taxi_blipy -100.0 blip2_ct1
	CHANGE_BLIP_DISPLAY blip2_ct1 BLIP_ONLY
 
 
IF IS_CAR_DEAD taxi_car1
	GOTO mission_taxi1_failed
ENDIF
 
x_diff = taxi_ped_x - taxi_blipx
y_diff = taxi_ped_y - taxi_blipy
 
x_diff_sq = x_diff * x_diff
y_diff_sq = y_diff * y_diff
 
taxi_distance_sq = x_diff_sq + y_diff_sq
SQRT taxi_distance_sq taxi_distance
taxi_distance_int =# taxi_distance
taxi_distance_int_old = taxi_distance_int 
 
 
IF IS_COLLISION_IN_MEMORY LEVEL_INDUSTRIAL
	IF taxi_passed_this_shot = 0
		taxi_distance_int = taxi_distance_int * 100
	ENDIF
ENDIF
 
IF IS_COLLISION_IN_MEMORY LEVEL_COMMERCIAL
	IF taxi_passed_this_shot = 0
		taxi_distance_int = taxi_distance_int * 95
	ENDIF
ENDIF
 
IF IS_COLLISION_IN_MEMORY LEVEL_SUBURBAN
	IF taxi_passed_this_shot = 0
		taxi_distance_int = taxi_distance_int * 115
	ENDIF
ENDIF
 
	IF taxi_passed_this_shot = 1
		taxi_distance_int = taxi_distance_int * 90
	ENDIF
 
	IF taxi_passed_this_shot = 2
		taxi_distance_int = taxi_distance_int * 85
	ENDIF
 
	IF taxi_passed_this_shot = 3
		taxi_distance_int = taxi_distance_int * 84
	ENDIF
 
	IF taxi_passed_this_shot = 4
		taxi_distance_int = taxi_distance_int * 83
	ENDIF
 
	IF taxi_passed_this_shot = 5
		taxi_distance_int = taxi_distance_int * 82
	ENDIF
 
	IF taxi_passed_this_shot > 5
	AND	taxi_passed_this_shot <= 10
	   taxi_distance_int = taxi_distance_int * 80
	ENDIF
 
	IF taxi_passed_this_shot > 11
	AND	taxi_passed_this_shot <= 20
	   taxi_distance_int = taxi_distance_int * 75
	ENDIF
 
	IF taxi_passed_this_shot > 20
	AND	taxi_passed_this_shot <= 50
	   taxi_distance_int = taxi_distance_int * 70
	ENDIF
 
	IF taxi_passed_this_shot > 50
	   taxi_distance_int = taxi_distance_int * 60
	ENDIF
 
taxi_countdown = taxi_countdown + taxi_distance_int
 
speedbonus = taxi_distance_int
speedbonus = speedbonus / 100
speedbonus = speedbonus * 65
 
TIMERB = 0
 
IF taxi_countdown_already_started = 0
	DISPLAY_ONSCREEN_TIMER taxi_countdown
	taxi_countdown_already_started = 1
ENDIF
 
 
IF IS_COLLISION_IN_MEMORY LEVEL_SUBURBAN //SUBURBIA*******************************************
	IF taxi_passed_this_shot = 0
		taxi_countdown = taxi_countdown + 15000
	ENDIF
ELSE
	IF taxi_passed_this_shot = 0
		taxi_countdown = taxi_countdown + 10000
	ENDIF
ENDIF
 
WHILE NOT IS_CAR_STOPPED_IN_AREA_3D taxi_car1 taxi_destx1 taxi_desty1 taxi_destz1 taxi_destx2 taxi_desty2 taxi_destz2 TRUE
	WAIT 0 
 
		IF NOT IS_PLAYER_PLAYING player
			GOTO mission_taxi1_failed
		ENDIF
 
		IF IS_CAR_DEAD taxi_car1
			GOTO mission_taxi1_failed
		ENDIF
 
		IF NOT IS_PLAYER_IN_CAR player taxi_car1	    
			GOTO mission_taxi1_failed				
		ENDIF
 
		GET_CONTROLLER_MODE controlmode
		IF NOT controlmode = 3
			IF IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
			AND flag_player_on_mission = 1
				GOTO taxi_fail_button_pressed
			ENDIF
		ELSE
			IF IS_BUTTON_PRESSED PAD1 SQUARE
			AND flag_player_on_mission = 1
				GOTO taxi_fail_button_pressed
			ENDIF
		ENDIF
 
		IF taxi_countdown = 0
			GOTO taxi_out_of_time
		ENDIF
 
		IF NOT IS_CAR_HEALTH_GREATER taxi_car1 500
			IF spray_blip_onscreen = 0
				REMOVE_BLIP spray_taxi
				IF IS_COLLISION_IN_MEMORY LEVEL_INDUSTRIAL 
					ADD_SPRITE_BLIP_FOR_COORD 925.0 -359.5 -100.0 RADAR_SPRITE_SPRAY spray_taxi
				ENDIF
				IF IS_COLLISION_IN_MEMORY LEVEL_COMMERCIAL
					ADD_SPRITE_BLIP_FOR_COORD 379.0 -493.8 -100.0 RADAR_SPRITE_SPRAY spray_taxi
				ENDIF
				IF IS_COLLISION_IN_MEMORY LEVEL_SUBURBAN
					ADD_SPRITE_BLIP_FOR_COORD -1128.0 32.5.8 -100.0 RADAR_SPRITE_SPRAY spray_taxi
				ENDIF
				spray_blip_onscreen = 1
				GOSUB taxi_fucked
				GOTO mission_taxi1_passed 
			ENDIF
		ENDIF
 
		IF NOT IS_CAR_DEAD taxi_car1
			IF IS_CAR_HEALTH_GREATER taxi_car1 500
			AND spray_blip_onscreen = 1
				REMOVE_BLIP spray_taxi
				spray_blip_onscreen = 0
				taxi_fucked_flag = 0
			ENDIF
		ENDIF
 
		IF IS_CAR_UPSIDEDOWN taxi_car1
		AND IS_CAR_STOPPED taxi_car1
			GOTO taxi_fucked
		ENDIF
 
ENDWHILE
 
 
score: 
 
IF IS_COLLISION_IN_MEMORY LEVEL_SUBURBAN //SUBURBIA*******************************************
 
	IF TIMERB > speedbonus
		score_for_this_fare = taxi_distance_int_old 
		PRINT_BIG ( TAXI4 ) 5000 5 //Fare delivered
	ELSE
		score_for_this_fare = taxi_distance_int_old	* 2
		PRINT_BIG ( TAXI5 ) 5000 5 //Speed Bonus!!
	ENDIF
 
ELSE
 
	IF TIMERB > speedbonus
		score_for_this_fare = taxi_distance_int_old / 2
		PRINT_BIG ( TAXI4 ) 5000 5 //Fare delivered
	ELSE
		score_for_this_fare = taxi_distance_int_old
		PRINT_BIG ( TAXI5 ) 5000 5 //Speed Bonus!!
	ENDIF
 
ENDIF
 
 
//score_for_this_fare = taxi_distance_int_old
 
 
	ADD_SCORE player score_for_this_fare
	PRINT_WITH_NUMBER_BIG ( TSCORE2 ) score_for_this_fare 6000 6 //Your score is...
	ADD_ONE_OFF_SOUND 0.0 0.0 0.0 SOUND_PART_MISSION_COMPLETE
	taxi_score = taxi_score + score_for_this_fare
 
	taxi_passed ++
	REGISTER_PASSENGER_DROPPED_OFF_TAXI
	taxi_passed_this_shot ++
 
	//CREATE NEW TAXI AFTER COMPLETING 100 TAXI MISSIONS 
	IF new_taxi_created_before = 0
	AND taxi_passed = 100
		ADD_PAGER_MESSAGE ( NEW_TAX ) 140 2 0
  		SWITCH_CAR_GENERATOR swank_taxi 101
		PLAYER_MADE_PROGRESS 1
  		new_taxi_created_before = 1 							
	ENDIF
 
	taxi_countdown = taxi_countdown + 10000
 
	GOSUB mission_taxi1_failed
 
	IF taxi_passed_this_shot = in_a_row_number
		PRINT_WITH_2_NUMBERS_BIG ( IN_ROW ) taxi_passed_this_shot in_a_row_cash 5000 6 //Bonus!
		ADD_SCORE player in_a_row_cash
		taxi_score = taxi_score + in_a_row_cash
		in_a_row_number = in_a_row_number + 5
		in_a_row_cash = in_a_row_cash + 2000
	ENDIF
 
	/*
	IF taxi_passed_this_shot = 10
		PRINT_WITH_2_NUMBERS_BIG  ( IN_ROW ) taxi_passed_this_shot 2000 6000 6 //Bonus!
		taxi_score = taxi_score + 2000
		ADD_SCORE player 1000
	ENDIF
 
	IF taxi_passed_this_shot = 15
		PRINT_WITH_2_NUMBERS_BIG  ( IN_ROW ) taxi_passed_this_shot 4000 6000 6 //Bonus!
		taxi_score = taxi_score + 4000
		ADD_SCORE player 2000
	ENDIF
 
	IF taxi_passed_this_shot = 20
		PRINT_WITH_2_NUMBERS_BIG  ( IN_ROW ) taxi_passed_this_shot 8000 6000 6 //Bonus!
		taxi_score = taxi_score + 8000
		ADD_SCORE player 4000
	ENDIF
 
	IF taxi_passed_this_shot = 25
		PRINT_WITH_2_NUMBERS_BIG  ( IN_ROW ) taxi_passed_this_shot 16000 6000 6 //Bonus!
		taxi_score = taxi_score + 16000
		ADD_SCORE player 8000
	ENDIF
 
 	IF taxi_passed_this_shot = 30
		PRINT_WITH_2_NUMBERS_BIG  ( IN_ROW ) taxi_passed_this_shot 32000 6000 6 //Bonus!
		taxi_score = taxi_score + 32000
		ADD_SCORE player 16000
	ENDIF
	*/
	GOTO mission_taxi1_passed
 
 
//Taxi_fail_conditions
 
taxi_out_of_time:
 
	PRINT_NOW ( TAXI2 ) 5000 1 //Out of time
 
	GOTO mission_taxi1_failed
 
taxi_fucked:
 
	WAIT 0
 
	PRINT_NOW ( TAXI3 ) 5000 1 //Taxi is trashed
 
		IF NOT IS_CHAR_DEAD	taxi_ped1
			//SET_CHAR_PERSONALITY taxi_ped1 PEDSTAT_TOURIST
			SET_CHAR_OBJ_FLEE_ON_FOOT_TILL_SAFE taxi_ped1
			//SET_CHAR_THREAT_SEARCH taxi_ped1 THREAT_PLAYER1
		ENDIF
		taxi_fucked_flag = 1
 
	GOTO mission_taxi1_failed
 
 
taxi_fail_button_pressed:
 
	GET_CONTROLLER_MODE controlmode
	IF NOT controlmode = 3
		WHILE IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
			WAIT 0
			IF NOT IS_PLAYER_PLAYING player	// ok to fail if player is arrested?
				GOTO mission_taxi1_failed
			ENDIF
		ENDWHILE
	ELSE
		WHILE IS_BUTTON_PRESSED PAD1 SQUARE
			WAIT 0
			IF NOT IS_PLAYER_PLAYING player	// ok to fail if player is arrested?
				GOTO mission_taxi1_failed
			ENDIF
		ENDWHILE
	ENDIF
 
	GOTO mission_taxi1_failed
 
 
// Mission taxi1 failed
/*
mission_taxi1_failed: 
 
GOSUB taxi_ped_leave
 
RETURN
*/
// mission taxi1 passed
 
mission_taxi1_passed:
 
	REMOVE_BLIP blip1_ct1
	REMOVE_BLIP blip2_ct1
	MARK_CHAR_AS_NO_LONGER_NEEDED taxi_ped1
 
	IF NOT IS_CAR_DEAD taxi_car1
		SET_TAXI_LIGHTS taxi_car1 On
	ENDIF
 
	//WAIT 1000
	WAIT 0
	PRINT_SOON ( TAXI1 ) 1500 1 //Pick up a fare
 
	GOTO Start_taxi_mission
RETURN
 
mission_taxi1_failed: //taxi_ped_leave:
 
	IF NOT IS_CHAR_DEAD taxi_ped1
		IF NOT IS_CAR_DEAD taxi_car1
			IF IS_CHAR_IN_CAR taxi_ped1 taxi_car1
				SET_CHAR_OBJ_LEAVE_CAR taxi_ped1 taxi_car1
				IF IS_PLAYER_PLAYING player
					SET_PLAYER_CONTROL Player OFF
				ENDIF
 
				WHILE IS_CHAR_IN_CAR taxi_ped1 taxi_car1
			 		WAIT 0
 
					IF IS_CHAR_DEAD taxi_ped1
					OR IS_CAR_DEAD taxi_car1
						GOTO taxi_ped_leave2
					ENDIF
 
					IF NOT IS_PLAYER_PLAYING player
						GOTO taxi_ped_leave2
					ENDIF
 
					IF NOT IS_PLAYER_IN_CAR player taxi_car1	    
						GOTO taxi_ped_leave2				
					ENDIF
 
					GET_CONTROLLER_MODE controlmode
					IF NOT controlmode = 3
						IF IS_BUTTON_PRESSED PAD1 RIGHTSHOCK
						AND flag_player_on_mission = 1
							GOTO taxi_ped_leave2
						ENDIF
					ELSE
						IF IS_BUTTON_PRESSED PAD1 SQUARE
						AND flag_player_on_mission = 1
							GOTO taxi_ped_leave2
						ENDIF
					ENDIF
 
				ENDWHILE
 
			ENDIF
		ENDIF
	ENDIF
 
IF IS_PLAYER_PLAYING player
	SET_PLAYER_CONTROL Player ON
ENDIF
 
IF taxi_fucked_flag = 1
	RETURN
ENDIF
 
taxi_ped_leave2:
 
	WAIT 0
 
	IF NOT IS_CHAR_DEAD taxi_ped1
		IF NOT IS_CAR_DEAD taxi_car1
			IF NOT IS_CHAR_IN_CAR taxi_ped1 taxi_car1
				CHAR_WANDER_DIR taxi_ped1 0
				MARK_CHAR_AS_NO_LONGER_NEEDED taxi_ped1
			ENDIF
		ENDIF
	ENDIF
 
	IF IS_PLAYER_PLAYING player
		SET_PLAYER_CONTROL Player ON
	ENDIF
 
RETURN
 
// mission cleanup
 
mission_cleanup_taxi1:
CLEAR_ONSCREEN_TIMER taxi_countdown
CLEAR_ONSCREEN_COUNTER taxi_passed_this_shot //TEST STUFF!!!!!!!!
IF NOT IS_CAR_DEAD taxi_car1
	SET_TAXI_LIGHTS taxi_car1 Off
ENDIF
//SWITCH_TAXI_TIMER OFF
REMOVE_BLIP blip1_ct1
REMOVE_BLIP blip2_ct1
REMOVE_BLIP spray_taxi
MARK_CHAR_AS_NO_LONGER_NEEDED taxi_ped1
PRINT_BIG ( TAXI6 ) 5000 5 //Taxi mission over
PRINT_WITH_NUMBER_BIG ( TSCORE ) taxi_score 6000 6 //Your score is...
REGISTER_MONEY_MADE_TAXI taxi_score
SET_DEATHARREST_STATE on
flag_player_on_mission = 0
flag_taxi1_mission_launched = 0
IF IS_PLAYER_PLAYING player
	SET_PLAYER_CONTROL Player ON
ENDIF
CLEAR_HELP
MISSION_HAS_FINISHED
RETURN
п · о · р
GTA III Grand Theft Auto III
Форматы файлов.b.a3d.anm.col.cfg.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.sc.scm.set.txd.zon
Документацияcarcols.datCHASE.DATCULLZONE.DATcuts.imgdefault.datfistfite.datflight.datgta3.exegta3.dat
gta3.imggta3.zonhandling.cfgmain.scmmap.datmap.zonobject.datparticle.cfgped.datpedgrp.dat
pedstats.datsfx.rawsurface.datTimeCyc.DATtracks.dattrain.datwater.datwaterpro.datweapon.dat
ИнструментыCLEOClump ViewerCol-IO‎Collision File Editor IIData toolDFF Viewerdffxbox2pcG-ToolsGTA Garage Mod Manager
GXT EditorGTA3 Limit AdjusterGTA3 Mission BuilderGTA3 PatcherIMG ToolKam's Max ScriptsMap Editor
Mod GeneratorMod InstallerMoo MapperPS2 TXD ModPS2 TXD ViewerResourse HackerRotation Calculator
RW AnalyzeViceTXDWater EditorSanny BuilderTXD ToolTXD WorkshopYAIEZModeler
Туториалыраздел в разработке
Классические МодыGPS RadarBye-Bye BikiniUltimate Stunt ParkThe SphereMiss LibertyIllandoIntercity HighwayShoreside Bridge
Rockstar HeightsLighthouse BridgeBlade FunparkOrbital CityLakeside IslandLiberty PenitentiaryJEM Island
Illando HelixCliff Climbing Mountain
Глобальные МодыReal GTA3Twenty TenSnow CityFrosted WinterUltimateBeta modX-box modBad BusinessGTA3 HDUltra mod
OpenTunnelsBack to the Future
МультиплеерMulti Theft AutoLiberty Unleashed
Исходники4x48ballambulanceasukaasusbcameracar_gencatcopcardebugdemodiablofiretruckfrankgates
genstufhealthhjhoodimportintrojoeykenjiloveluigimayhemmeatpickupsrampagerayrcswitch
taxitoniusjwantedyard