Script crashing game

Anything to do with GTA1/GTA2 modding (tools, scripts and more).
Post Reply
User avatar
Gustavob
Immortal
Posts: 407
Joined: 18 May 2009, 21:40
GH nick: Gustavob
|Gustavob|
Location: Nowhere.
Contact:

Script crashing game

Post by Gustavob »

Hi

My friend is making a map and I'm helping him with it. I added 9 bots to the map, and they are supposed to respawn. The code seems to be OK since it compiles with no errors, but it crashes game 2 seconds after it started somewhy. As I can see, all health checks seem to be OK but it still crashes game somewhy. Can anyone help me?

Edit - partially solved with help from Pyro. It was the ADD_GROUP_TO_CHARACTER ( NEbot1 , 9 ) command, changed 9 to 0 and now it works. But the game crashes when a bot is respawned

Code: Select all

//Players
PLAYER_PED player1 = ( 51.5 , 102.5 , 2.0 ) -1 90
PLAYER_PED player2 = ( 52.5 , 102.5 , 2.0 ) -1 270

//---------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------Cars---------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------
//Player cars
PARKED_CAR_DATA car1 = ( 51.5 , 101.5 , 2.0 ) 2 90 GT24640
PARKED_CAR_DATA car2 = ( 52.5 , 101.5 , 2.0 ) 2 90 GT24640
//Parking 1
PARKED_CAR_DATA michelli1 = ( 148.5 , 141.5 , 2.0 ) 5 0 T2000GT
PARKED_CAR_DATA ztype1 = ( 152.5 , 137.5 , 2.0 ) 10 180 VTYPE
PARKED_CAR_DATA btype1 = ( 145.5 , 140.5 , 2.0 ) 15 45 STYPE
PARKED_CAR_DATA benson1 = ( 160.5 , 135.5 , 2.0 ) 33 225 MERC
PARKED_CAR_DATA furore1 = ( 156.5 , 139.5 , 2.0 ) 28 0 ZCX5
PARKED_CAR_DATA beamer1 = ( 155.5 , 135.5 , 2.0 ) 2 0 BMW
PARKED_CAR_DATA aniston1 = ( 152.5 , 145.5 , 2.0 ) 24 315 AMDB4
//Parking 2
PARKED_CAR_DATA hachura1 = ( 150.5 , 153.5 , 2.0 ) 5 0 STRIPETB
PARKED_CAR_DATA bigbug1 = ( 145.5 , 149.5 , 2.0 ) 0 45 MONSTER
PARKED_CAR_DATA bug1 = ( 155.5 , 159.5 , 2.0 ) 8 180 BUG
PARKED_CAR_DATA atype1 = ( 160.5 , 150.5 , 2.0 ) 11 255 RTYPE
PARKED_CAR_DATA dementia1 = ( 145.5 , 153.5 , 2.0 ) 12 255 ISETTA
PARKED_CAR_DATA bulwark1 = ( 151.5 , 157.5 , 2.0 ) 6 180 BUICK
PARKED_CAR_DATA meteor1 = ( 157.5 , 151.5 , 2.0 ) 10 180 STRATOSB
PARKED_CAR_DATA eddy1 = ( 147.5 , 159.5 , 2.0 ) 12 0 EDSEL
PARKED_CAR_DATA miara1 = ( 152.5 , 147.5 , 2.0 ) 15 135 MIURA
//Roller Coaster
PARKED_CAR_DATA furore2 = ( 239.5 , 60.5 , 2.0 ) 5 180 ZCX5

//Sounds
SOUND church = ( 79.5 , 104.5 , 5.0 ) CHURCH_SINGING PLAY_FOREVER
SOUND water1 = ( 252.5 , 116.5 , 1.0 ) WATERFALL PLAY_FOREVER
SOUND water2 = ( 252.5 , 117.5 , 1.0 ) WATERFALL PLAY_FOREVER
SOUND water3 = ( 252.5 , 118.5 , 1.0 ) WATERFALL PLAY_FOREVER
SOUND water4 = ( 252.5 , 119.5 , 1.0 ) WATERFALL PLAY_FOREVER

//Objects
OBJ_DATA footy1 = ( 177.0 , 147.0 , 2.0 ) 0 FOOTY
OBJ_DATA maxpaynt1 = ( 24.5 , 108.0 , 2.0 ) 0 CAR_SHOP 5
OBJ_DATA maxpaynt2 = ( 238.5 , 61.5 , 2.0 ) 0 CAR_SHOP 5
OBJ_DATA maxpaint3 = ( 239.5 , 61.5 , 2.0 ) 0 CAR_SHOP 5

//Characters
CHAR_DATA NEbot1
CHAR_DATA NEbot2
CHAR_DATA NEbot3
CHAR_DATA NEbot4
CHAR_DATA NEbot5
CHAR_DATA NEbot6
CHAR_DATA NEbot7
CHAR_DATA NEbot8
CHAR_DATA NEbot9

//COUNTERs
COUNTER loop = 1
COUNTER respawnNE1 = 0
COUNTER respawnNE2 = 0
COUNTER respawnNE3 = 0
COUNTER respawnNE4 = 0
COUNTER respawnNE5 = 0
COUNTER respawnNE6 = 0
COUNTER respawnNE7 = 0
COUNTER respawnNE8 = 0
COUNTER respawnNE9 = 0

//GENERATORs
GENERATOR pistol1 = ( 82.5 , 70.5 , 7.0 ) 0 COLLECT_00 0000 0000 10
GENERATOR macgun1 = ( 35.5 , 171.5 , 5.0 ) 0 COLLECT_01 0000 0000 30
GENERATOR macgun2 = ( 70.5 , 71.5 , 5.0 ) 0 COLLECT_01 0000 0000 30
GENERATOR zooka1 = ( 90.5 , 102.5 , 5.0 ) 0 COLLECT_02 0000 0000 20
GENERATOR zooka2 = ( 34.5 , 171.5 , 5.0 ) 0 COLLECT_02 0000 0000 20
GENERATOR flamer1 = ( 25.0 , 142.0 , 5.0 ) 0 COLLECT_08 0000 0000 15


LEVELSTART

NEbot1 = CREATE_CHAR ( 110.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
NEbot2 = CREATE_CHAR ( 111.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
NEbot3 = CREATE_CHAR ( 112.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
NEbot4 = CREATE_CHAR ( 113.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
NEbot5 = CREATE_CHAR ( 114.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
NEbot6 = CREATE_CHAR ( 114.5 , 17.5 , 2.0 ) 8 0 PSYCHO END
NEbot7 = CREATE_CHAR ( 114.5 , 16.5 , 2.0 ) 8 0 PSYCHO END
NEbot8 = CREATE_CHAR ( 115.5 , 16.5 , 2.0 ) 8 0 PSYCHO END
NEbot9 = CREATE_CHAR ( 116.5 , 16.5 , 2.0 ) 8 0 PSYCHO END

IF ( CHECK_CHARACTER_HEALTH ( NEbot1 , 0 ) )
GIVE_WEAPON ( NEbot1 , FLAME_THROWER )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( NEbot2 , 0 ) )
GIVE_WEAPON ( NEbot2 , ELECTRO_BATON )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( NEbot3 , 0 ) )
GIVE_WEAPON ( NEbot3 , ROCKET_LAUNCHER )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( NEbot4 , 0 ) )
GIVE_WEAPON ( NEbot4 , MACHINE_GUN )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( NEbot5 , 0 ) )
GIVE_WEAPON ( NEbot5 , MOLOTOV )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( NEbot6 , 0 ) )
GIVE_WEAPON ( NEbot6 , GRENADE )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( NEbot7 , 0 ) )
GIVE_WEAPON ( NEbot7 , SHOTGUN )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( NEbot8 , 0 ) )
GIVE_WEAPON ( NEbot8 , DUAL_PISTOL )
ENDIF
IF ( CHECK_CHARACTER_HEALTH ( NEbot9 , 0 ) )
GIVE_WEAPON ( NEbot9 , SILENCED_MACHINE_GUN )
ENDIF

ADD_GROUP_TO_CHARACTER ( NEbot1 , 0 )
ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot2 )
ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot3 )
ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot4 )
ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot5 )
ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot6 )
ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot7 )
ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot8 )
ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot9 )

SET_CHAR_THREAT_SEARCH ( NEbot1 , AREA )
SET_CHAR_THREAT_SEARCH ( NEbot2 , AREA )
SET_CHAR_THREAT_SEARCH ( NEbot3 , AREA )
SET_CHAR_THREAT_SEARCH ( NEbot4 , AREA )
SET_CHAR_THREAT_SEARCH ( NEbot5 , AREA )
SET_CHAR_THREAT_SEARCH ( NEbot6 , AREA )
SET_CHAR_THREAT_SEARCH ( NEbot7 , AREA )
SET_CHAR_THREAT_SEARCH ( NEbot8 , AREA )
SET_CHAR_THREAT_SEARCH ( NEbot9 , AREA )
SET_CHAR_THREAT_REACTION ( NEbot1 , REACT_AS_NORMAL )
SET_CHAR_THREAT_REACTION ( NEbot2 , REACT_AS_NORMAL )
SET_CHAR_THREAT_REACTION ( NEbot3 , REACT_AS_NORMAL )
SET_CHAR_THREAT_REACTION ( NEbot4 , REACT_AS_NORMAL )
SET_CHAR_THREAT_REACTION ( NEbot5 , REACT_AS_NORMAL )
SET_CHAR_THREAT_REACTION ( NEbot6 , REACT_AS_NORMAL )
SET_CHAR_THREAT_REACTION ( NEbot7 , REACT_AS_NORMAL )
SET_CHAR_THREAT_REACTION ( NEbot8 , REACT_AS_NORMAL )
SET_CHAR_THREAT_REACTION ( NEbot9 , REACT_AS_NORMAL )

SET_CAR_NUMBER_GRAPHIC ( car1 , 1 )
SET_CAR_NUMBER_GRAPHIC ( car2 , 2 )

SET_STATION_INFO ( trak00 , 4 , 0 , 1 )
SET_STATION_INFO ( trak10 , 4 , 0 , 1 )

WHILE_EXEC ( loop = 1 )

IF ( CHECK_CHARACTER_HEALTH ( player1 , 0 ) )
GIVE_WEAPON ( player1 , PISTOL , 20 )
GIVE_WEAPON ( player1 , MACHINE_GUN , 20 )
GIVE_WEAPON ( player1 , ROCKET_LAUNCHER , 20 )
GIVE_WEAPON ( player1 , ELECTRO_GUN , 20 )
GIVE_WEAPON ( player1 , MOLOTOV , 20 )
GIVE_WEAPON ( player1 , GRENADE , 20 )
GIVE_WEAPON ( player1 , SHOTGUN , 20 )
GIVE_WEAPON ( player1 , ELECTRO_BATON , 20 )
GIVE_WEAPON ( player1 , FLAME_THROWER , 20 )
GIVE_WEAPON ( player1 , SILENCED_MACHINE_GUN , 20 )
GIVE_WEAPON ( player1 , DUAL_PISTOL , 20 )
SET_CHAR_GRAPHIC_TYPE ( player1 , DUMMY_GRAPHIC , -1 )
ADD_SCORE ( player1 , 9999999 )
ENDIF

IF ( CHECK_CHARACTER_HEALTH ( player2 , 0 ) )
GIVE_WEAPON ( player2 , PISTOL , 20 )
GIVE_WEAPON ( player2 , MACHINE_GUN , 20 )
GIVE_WEAPON ( player2 , ROCKET_LAUNCHER , 20 )
GIVE_WEAPON ( player2 , ELECTRO_GUN , 20 )
GIVE_WEAPON ( player2 , MOLOTOV , 20 )
GIVE_WEAPON ( player2 , GRENADE , 20 )
GIVE_WEAPON ( player2 , SHOTGUN , 20 )
GIVE_WEAPON ( player2 , ELECTRO_BATON , 20 )
GIVE_WEAPON ( player2 , FLAME_THROWER , 20 )
GIVE_WEAPON ( player2 , SILENCED_MACHINE_GUN , 20 )
GIVE_WEAPON ( player2 , DUAL_PISTOL , 20 )
ADD_SCORE ( player2 , 9999999 )
ENDIF

SWITCH_GENERATOR ( pistol1 , ON )
SWITCH_GENERATOR ( macgun1 , ON )
SWITCH_GENERATOR ( macgun2 , ON )
SWITCH_GENERATOR ( zooka1 , ON )
SWITCH_GENERATOR ( zooka2 , ON )
SWITCH_GENERATOR ( flamer1 , ON )


 IF ( HAS_CHARACTER_DIED ( NEbot1 ) )
  NEbot1 = CREATE_CHAR ( 110.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
  SET respawnNE1 = 1
  IF ( respawnNE1 = 1 )
  IF ( NOT ( DELAY_HERE (20) ) )
  GIVE_WEAPON ( NEbot1 , FLAME_THROWER )
  ADD_GROUP_TO_CHARACTER ( NEbot1 , 0 )
  SET_CHAR_THREAT_SEARCH ( NEbot1 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot1 , REACT_AS_NORMAL )
  SET respawnNE1 = 0
  ENDIF
  ENDIF
 ENDIF
 
 IF ( HAS_CHARACTER_DIED ( NEbot2 ) )
  NEbot1 = CREATE_CHAR ( 111.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
    SET respawnNE2 = 1
  IF ( respawnNE2 = 1 )
  IF ( NOT ( DELAY_HERE (20) ) )
  GIVE_WEAPON ( NEbot2 , ELECTRO_BATON )
  ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot2 )
    SET_CHAR_THREAT_SEARCH ( NEbot2 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot2 , REACT_AS_NORMAL )
  SET respawnNE2 = 0
  ENDIF
  ENDIF
 ENDIF
 
  IF ( HAS_CHARACTER_DIED ( NEbot3 ) )
  NEbot1 = CREATE_CHAR ( 112.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
    SET respawnNE3 = 1
  IF ( respawnNE3 = 1 )
  IF ( NOT ( DELAY_HERE (20) ) )
  GIVE_WEAPON ( NEbot3 , ROCKET_LAUNCHER )
  ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot3 )
    SET_CHAR_THREAT_SEARCH ( NEbot3 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot3 , REACT_AS_NORMAL )
  SET respawnNE3 = 0
  ENDIF
  ENDIF
 ENDIF
 
  IF ( HAS_CHARACTER_DIED ( NEbot4 ) )
  NEbot1 = CREATE_CHAR ( 113.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
    SET respawnNE4 = 1
  IF ( respawnNE4 = 1 )
  IF ( NOT ( DELAY_HERE (20) ) )
  GIVE_WEAPON ( NEbot4 , MACHINE_GUN )
  ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot4 )
    SET_CHAR_THREAT_SEARCH ( NEbot4 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot4 , REACT_AS_NORMAL )
  SET respawnNE4 = 0
  ENDIF
  ENDIF
 ENDIF
 
  IF ( HAS_CHARACTER_DIED ( NEbot5 ) )
  NEbot1 = CREATE_CHAR ( 114.5 , 18.5 , 2.0 ) 8 0 PSYCHO END
    SET respawnNE5 = 1
  IF ( respawnNE5 = 1 )
  IF ( NOT ( DELAY_HERE (20) ) )
  GIVE_WEAPON ( NEbot5 , MOLOTOV )
  ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot5 )
    SET_CHAR_THREAT_SEARCH ( NEbot5 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot5 , REACT_AS_NORMAL )
  SET respawnNE5 = 0
  ENDIF
  ENDIF
 ENDIF
 
  IF ( HAS_CHARACTER_DIED ( NEbot6 ) )
  NEbot1 = CREATE_CHAR ( 114.5 , 17.5 , 2.0 ) 8 0 PSYCHO END
    SET respawnNE6 = 1
  IF ( respawnNE6 = 1 )
  IF ( NOT ( DELAY_HERE (20) ) )
  GIVE_WEAPON ( NEbot6 , GRENADE )
  ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot6 )
    SET_CHAR_THREAT_SEARCH ( NEbot6 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot6 , REACT_AS_NORMAL )
  SET respawnNE6 = 0
  ENDIF
  ENDIF
 ENDIF
 
  IF ( HAS_CHARACTER_DIED ( NEbot7 ) )
  NEbot1 = CREATE_CHAR ( 114.5 , 16.5 , 2.0 ) 8 0 PSYCHO END
    SET respawnNE7 = 1
  IF ( respawnNE7 = 1 )
  IF ( NOT ( DELAY_HERE (20) ) )
  GIVE_WEAPON ( NEbot7 , SHOTGUN )
  ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot7 )
    SET_CHAR_THREAT_SEARCH ( NEbot7 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot7 , REACT_AS_NORMAL )
  SET respawnNE7 = 0
  ENDIF
  ENDIF
 ENDIF
 
 IF ( HAS_CHARACTER_DIED ( NEbot8 ) )
  NEbot1 = CREATE_CHAR ( 115.5 , 16.5 , 2.0 ) 8 0 PSYCHO END
    SET respawnNE8 = 1
  IF ( respawnNE8 = 1 )
    IF ( NOT ( DELAY_HERE (20) ) )
  GIVE_WEAPON ( NEbot8 , DUAL_PISTOL )
  ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot8 )
    SET_CHAR_THREAT_SEARCH ( NEbot8 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot8 , REACT_AS_NORMAL )
  SET respawnNE8 = 0
  ENDIF
  ENDIF
 ENDIF
 
  IF ( HAS_CHARACTER_DIED ( NEbot9 ) )
  IF ( NOT ( DELAY_HERE (20) ) )
  NEbot1 = CREATE_CHAR ( 116.5 , 16.5 , 2.0 ) 8 0 PSYCHO END
    SET respawnNE9 = 1
  IF ( respawnNE9 = 1 )
  GIVE_WEAPON ( NEbot9 , SILENCED_MACHINE_GUN )
  ADD_EXISTING_CHAR_TO_GROUP ( NEbot1 , NEbot9 )
    SET_CHAR_THREAT_SEARCH ( NEbot9 , AREA )
  SET_CHAR_THREAT_REACTION ( NEbot9 , REACT_AS_NORMAL )
  SET respawnNE9 = 0
  ENDIF
  ENDIF
 ENDIF

ENDWHILE

LEVELEND
TIA

EDIT - I have two while loops there because I got that code from Ben's respawning characters tutorial, but only now I noticed that that may be causing the error but I'm not sure, just need somebody's confirmation

EDIT2 - It wasnt a problem with the loop. I added all the code to the WHILE ( loop = 1 ) loop and it still crashes the game. Can anyone help me?

EDIT... again.. - "Fixed" the counters (added SET respawnNE1/2/[...] = 0 lines) but didnt work. If I use a WHILE loop, simply lots of same bot will respawn and run away when I shoot. If I use a WHILE_EXEC loop, lots of the same bot will respawn causing the game to crash in ~2 seconds after the bot respawned
You just lost the game.
Post Reply