Code: Select all
PLAYER_PED player1 = (84.6, 172.7, 2.1) 17 180
PLAYER_PED player2 = (85.5, 172.7, 2.1) 15 180
PLAYER_PED player3 = (85.2, 172.7, 255.0) 17 180
PLAYER_PED player4 = (84.9, 172.7, 2.1) 15 180
PLAYER_PED player5 = (84.2, 172.7, 2.1) 7 180
PLAYER_PED player6 = (85.8, 172.7, 255.0) 0 180
CHAR_DATA busgang1 // 9 BOTS USED FOR CRANE BUS GANG TO HELP PLAYER WHOM ACTIVATES IT
CHAR_DATA busgang2
CHAR_DATA busgang3
CHAR_DATA busgang4
CHAR_DATA busgang5
CHAR_DATA busgang6
CHAR_DATA busgang7
CHAR_DATA busgang8
CHAR_DATA busgang9
////////////////////////////////////////////////////////////////////////////////////////////////////
// BUSGANG SUBROUTINES //
////////////////////////////////////////////////////////////////////////////////////////////////////
// SUBROUTINE TO KILL THE BUSGANG
killbusgang:
IF ( CHECK_CHARACTER_HEALTH ( busgang1 , 0 ) ) // KILL AND MARK TO DELETE CHARACTER IN QUEUE IF ALREADY PREVIOUSLY SPAWNED
KILL_CHAR ( busgang1 ) // MAKE CHARACTER DIE
DELETE_ITEM ( busgang1 ) // PUT DEAD CHARACTER IN DELETE QUEUE
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang2 , 0 ) )
KILL_CHAR ( busgang2 )
DELETE_ITEM ( busgang2 )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang3 , 0 ) )
KILL_CHAR ( busgang3 )
DELETE_ITEM ( busgang3 )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang4 , 0 ) )
KILL_CHAR ( busgang4 )
DELETE_ITEM ( busgang4 )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang5 , 0 ) )
KILL_CHAR ( busgang5 )
DELETE_ITEM ( busgang5 )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang6 , 0 ) )
KILL_CHAR ( busgang6 )
DELETE_ITEM ( busgang6 )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang7 , 0 ) )
KILL_CHAR ( busgang7 )
DELETE_ITEM ( busgang7 )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang8 , 0 ) )
KILL_CHAR ( busgang8 )
DELETE_ITEM ( busgang8 )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang9 , 0 ) )
KILL_CHAR ( busgang9 )
DELETE_ITEM ( busgang9 )
ENDIF
RETURN
// ROUTINE TO SPAWN A NEW BUSGANG OF 9 CHARACTERS AND SET UP THEIR CHARACTERISTICS ///////////////
COUNTER busgangflag = 0
spawnbusgang:
busgang1 = CREATE_CHAR (63.5, 184.0) 28 90 PSYCHO END // SPAWN 9 BUSGANGx MEMBERS
busgang2 = CREATE_CHAR (62.0, 184.4) 29 90 PSYCHO END
busgang3 = CREATE_CHAR (63.3, 184.6) 30 90 PSYCHO END
busgang4 = CREATE_CHAR (62.8, 183.2) 31 90 PSYCHO END
busgang5 = CREATE_CHAR (62.8, 184.2) 32 90 PSYCHO END
busgang6 = CREATE_CHAR (62.8, 185.2) 33 90 PSYCHO END
busgang7 = CREATE_CHAR (62.1, 183.6) 49 90 PSYCHO END
busgang8 = CREATE_CHAR (62.3, 185.0) 51 90 PSYCHO END
busgang9 = CREATE_CHAR (63.3, 185.1) 51 90 PSYCHO END
IF ( CHECK_CHARACTER_HEALTH ( busgang1 , 0 ) ) // SET BUSGANG MEMBERS ATTRIBUTES
SET_CHAR_GRAPHIC_TYPE ( busgang1 , DUMMY_GRAPHIC , 28 )
SET_CHAR_THREAT_REACTION ( busgang1 , NO_REACTION )
SET_CHAR_INVINCIBLE ( busgang1 , ON )
GIVE_WEAPON ( busgang1 , ELECTRO_BATON )
SET_CHAR_THREAT_SEARCH ( busgang1 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang1 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang1 , NORMAL_SHOT )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang2 , 0 ) )
SET_CHAR_GRAPHIC_TYPE ( busgang2 , DUMMY_GRAPHIC , 29 )
SET_CHAR_THREAT_REACTION ( busgang2 , NO_REACTION )
SET_CHAR_INVINCIBLE ( busgang2 , ON )
GIVE_WEAPON ( busgang2 , ROCKET_LAUNCHER )
SET_CHAR_THREAT_SEARCH ( busgang2 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang2 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang2 , NORMAL_SHOT )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang3 , 0 ) )
SET_CHAR_GRAPHIC_TYPE ( busgang3 , DUMMY_GRAPHIC , 30 )
SET_CHAR_THREAT_REACTION ( busgang3 , NO_REACTION )
SET_CHAR_INVINCIBLE ( busgang3 , ON )
GIVE_WEAPON ( busgang3 , FLAME_THROWER )
SET_CHAR_THREAT_SEARCH ( busgang3 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang3 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang3 , NORMAL_SHOT )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang4 , 0 ) )
SET_CHAR_GRAPHIC_TYPE ( busgang4 , DUMMY_GRAPHIC , 31 )
SET_CHAR_THREAT_REACTION ( busgang4 , NO_REACTION )
SET_CHAR_INVINCIBLE ( busgang4 , ON )
GIVE_WEAPON ( busgang4 , MOLOTOV )
SET_CHAR_THREAT_SEARCH ( busgang4 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang4 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang4 , NORMAL_SHOT )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang5 , 0 ) )
SET_CHAR_GRAPHIC_TYPE ( busgang5 , DUMMY_GRAPHIC , 32 )
SET_CHAR_THREAT_REACTION ( busgang5 , NO_REACTION )
SET_CHAR_INVINCIBLE ( busgang5 , ON )
GIVE_WEAPON ( busgang5 , GRENADE )
SET_CHAR_THREAT_SEARCH ( busgang5 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang5 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang5 , NORMAL_SHOT )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang6 , 0 ) )
SET_CHAR_GRAPHIC_TYPE ( busgang6 , DUMMY_GRAPHIC , 33 )
SET_CHAR_INVINCIBLE ( busgang6 , ON )
GIVE_WEAPON ( busgang6 , SILENCED_MACHINE_GUN )
SET_CHAR_THREAT_SEARCH ( busgang6 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang6 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang6 , NORMAL_SHOT )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang7 , 0 ) )
SET_CHAR_GRAPHIC_TYPE ( busgang7 , DUMMY_GRAPHIC , 49 )
SET_CHAR_THREAT_REACTION ( busgang7 , NO_REACTION )
SET_CHAR_INVINCIBLE ( busgang7 , ON )
GIVE_WEAPON ( busgang7 , MACHINE_GUN )
SET_CHAR_THREAT_SEARCH ( busgang7 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang7 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang7 , NORMAL_SHOT )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang8 , 0 ) )
SET_CHAR_GRAPHIC_TYPE ( busgang8 , DUMMY_GRAPHIC , 51 )
SET_CHAR_THREAT_REACTION ( busgang8 , NO_REACTION )
SET_CHAR_INVINCIBLE ( busgang8 , ON )
GIVE_WEAPON ( busgang8 , SHOTGUN )
SET_CHAR_THREAT_SEARCH ( busgang8 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang8 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang8 , NORMAL_SHOT )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( busgang9 , 0 ) )
SET_CHAR_GRAPHIC_TYPE ( busgang9 , DUMMY_GRAPHIC , 51 )
SET_CHAR_THREAT_REACTION ( busgang9 , NO_REACTION )
SET_CHAR_INVINCIBLE ( busgang9 , ON )
GIVE_WEAPON ( busgang9 , PISTOL )
SET_CHAR_THREAT_SEARCH ( busgang9 , AREA_PLAYER_ONLY )
SET_CHAR_BRAVERY_LEVEL ( busgang9 , LOONY )
SET_CHAR_SHOOTING_SKILL ( busgang9 , NORMAL_SHOT )
ENDIF
ADD_GROUP_TO_CHARACTER ( busgang1, 0 ) // MAKE BUSGANG1 MEMBER THE INITIAL LEADER OF GROUP - PLAYER IS MADE LEADER IN MAIN LOOP
ADD_EXISTING_CHAR_TO_GROUP ( busgang1, busgang2 ) // ADD THE REST OF BUSGANGx MEMBERS TO LEADER busgang1 GROUP
ADD_EXISTING_CHAR_TO_GROUP ( busgang1, busgang3 )
ADD_EXISTING_CHAR_TO_GROUP ( busgang1, busgang4 )
ADD_EXISTING_CHAR_TO_GROUP ( busgang1, busgang5 )
ADD_EXISTING_CHAR_TO_GROUP ( busgang1, busgang6 )
ADD_EXISTING_CHAR_TO_GROUP ( busgang1, busgang7 )
ADD_EXISTING_CHAR_TO_GROUP ( busgang1, busgang8 )
ADD_EXISTING_CHAR_TO_GROUP ( busgang1, busgang9 )
RETURN
// Code Looping:
COUNTER loopage = 1
LEVELSTART
SET_SHADING_LEVEL ( 27 )
SET_AMBIENT_LEVEL ( 0.4 , 0 )
SWITCH_GENERATOR ( s_mac , ON )
SWITCH_GENERATOR ( pistol2 , ON )
SWITCH_GENERATOR ( dualpistol , ON )
SWITCH_GENERATOR ( mac1 , ON )
SWITCH_GENERATOR ( mac2 , ON )
SWITCH_GENERATOR ( shotgun , ON )
SWITCH_GENERATOR ( flamer , ON )
SWITCH_GENERATOR ( electro , ON )
SWITCH_GENERATOR ( bagoom , ON )
SWITCH_GENERATOR ( grenades , ON )
SWITCH_GENERATOR ( molotovs2 , ON )
SWITCH_GENERATOR ( vehmines , ON )
SWITCH_GENERATOR ( vehoil , ON )
SWITCH_GENERATOR ( vehmac , ON )
SWITCH_GENERATOR ( health , ON )
SWITCH_GENERATOR ( armor , ON )
//SWITCH_GENERATOR ( gang , ON )
// the loop
WHILE_EXEC (loopage = 1)
IF ( (LOCATE_CHARACTER_ANY_MEANS ( player1 , 63.0, 184.0, 2.0 , 1.0 , 1.0 )) AND ( busgangflag = 0 ) )
//GOSUB killbusgang: // KILL ANY PRE-EXISTING BUSGANG MEMBERS IF PRESENTLY ALIVE
GOSUB spawnbusgang: // SPAWN NEW BUSGANG MEMBERS
MAKE_NEW_LEADER_OF_GROUP ( busgang1, player1 ) // SET PLAYER AS NEW LEADER OF BUSGANG GROUP FROM ORIGINAL LEADER busgang1 MEMBER
SET busgangflag = 1 // BUSGANG FLAG SET GANG EXISTS FOR PLAYER1
ENDIF
IF ( (LOCATE_CHARACTER_ANY_MEANS ( player1 , 63.0, 184.0, 2.0 , 1.0 , 1.0 )) AND ( NOT ( busgangflag = 1 ) ))
IF ( busgangflag = 2 ) // IF PRSENT BUSGANG LEADER FLAG IS PLAYER2
MAKE_NEW_LEADER_OF_GROUP ( player2, player1 ) // SET PLAYER1 AS NEW LEADER OF BUSGANG GROUP FROM PREVIOUS LEADER
REMOVE_CHAR_FROM_GROUP ( player1 , player2 ) // UNBIND PREVIOUS PLAYER LEADER FROM GROUP FUNCTION
ENDIF
IF ( busgangflag = 3 ) // IF PRESENT BUSGANG LEADER FLAG IS PLAYER3
MAKE_NEW_LEADER_OF_GROUP ( player3, player1 ) // SET PLAYER1 AS NEW LEADER OF BUSGANG GROUP FROM PREVIOUS LEADER
REMOVE_CHAR_FROM_GROUP ( player1 , player3 )
ENDIF
IF ( busgangflag = 4 ) // IF PRESENT BUSGANG LEADER FLAG IS PLAYER4
MAKE_NEW_LEADER_OF_GROUP ( player4, player1 ) // SET PLAYER1 AS NEW LEADER OF BUSGANG GROUP FROM PREVIOUS LEADER
REMOVE_CHAR_FROM_GROUP ( player1 , player4 )
ENDIF
IF ( busgangflag = 5 ) // IF PRESENT BUSGANG LEADER FLAG IS PLAYER5
MAKE_NEW_LEADER_OF_GROUP ( player5, player1 ) // SET PLAYER1 AS NEW LEADER OF BUSGANG GROUP FROM PREVIOUS LEADER
REMOVE_CHAR_FROM_GROUP ( player1 , player5)
ENDIF
IF ( busgangflag = 6 ) // IF PRESENT BUSGANG LEADER FLAG IS PLAYER6
MAKE_NEW_LEADER_OF_GROUP ( player6, player1 ) // SET PLAYER1 AS NEW LEADER OF BUSGANG GROUP FROM PREVIOUS LEADER
REMOVE_CHAR_FROM_GROUP ( player1 , player6 )
ENDIF
SET busgangflag = 1 // BUSGANG FLAG SET GANG IS NOW LEAD BY PLAYER1
ENDIF
ENDWHILE
LEVELEND