Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /************** ***********
- * *
- *Race system by Zeeshan & *
- * Decent_946 *
- *************** ***********
- *
- */
- class PlayerStats
- {
- raceplayer = false;
- racestart = false;
- RaceLastpos = null;
- World = null;
- Car = null;
- }
- RandomTrack <- [201, 202, 203, 204, 205, 206 ]
- RandomCar <- [236, 141, 132, 223]
- function onScriptLoad()
- {
- status <- array(GetMaxPlayers(), null );
- racecount <- 0;
- print( "Race system by Zeeshan & Decent loaded" );
- }
- function onPlayerJoin( player )
- {
- status[ player.ID ] = PlayerStats();
- MessagePlayer( "Welcome to Race System by Zeeshan.Bhatti", player );
- }
- function onPlayerCommand( player, cmd, text )
- {
- if ( cmd == "startrace" )
- {
- if ( status[ player.ID ].racestart == true ) MessagePlayer( "Race is already started, type /joinrace to join.", player );
- else
- {
- MessagePlayer( "You have successfully started race", player );
- StartRace( player );
- status[ player.ID ].racestart = true;
- }
- }
- else if ( cmd == "joinrace" )
- {
- if ( status[ player.ID ].racestart == false ) MessagePlayer( "Race is not started yet", player );
- else if ( racecount > 10 ) MessagePlayer( "You can't join race now, slots are full", player );
- else if ( status[ player.ID ].raceplayer == true ) MessagePlayer( "You are already in race", player );
- else
- {
- MessagePlayer( "You have successfully joined the Race. Type /igiveup to exit.", player );
- status[ player.ID ].racestart = true;
- status[ player.ID ].RaceLastpos = player.Pos;
- racecount++;
- status[ player.ID ].raceplayer = true;
- Message( player+" has joined the race. There are "+racecount+" players currently in race" );
- local racecar = status[ player.ID ].Car, racetrack = status[ player.ID ].World;
- CreateVehicle( racecar, racetrack, Vector( 496.465, 1102.01 , 16.9096 ) 3.10706., 1, 1 );
- player.IsFrozen = true;
- }
- }
- else if ( cmd == "igiveup" )
- {
- if ( status[ player.ID ].raceplayer == false ) MessagePlayer( "You need to be in race to use this command", player );
- else{
- if ( racecount > 1 )
- {
- MessagePlayer( "You have given up.", player );
- status[ player.ID ].raceplayer = false;
- status[ player.ID ].Car = null;
- player.Pos = status[ player.ID ].RaceLastpos;
- racecount--;
- Message( player+" has given up! There are "+racecount+" players in race." );
- }
- else GiveUp(player);
- }
- }
- }
- // ================== R A C E --- F U N C T I O N S =============
- function StartRace( player )
- {
- local car = RandomCar[ rand()%RandomCar.len() ];
- local track = RandomTrack[ rand()%RandomTrack.len() ];
- Message( player.Name + " has started the race, type /joinrace to join, race entry will be closed in 30 seconds" );
- Message( "Race Track: "+RaceTrack(player)+", Vehicle: "+RaceCar(player) );
- NewTimer( "BeginRace", 30000, 1 );
- }
- function JoinRace( player )
- {
- if ( racecount > 1 )
- {
- BeginRace();
- }
- else CloseRace();
- }
- function BeginRace()
- {
- for ( local i = 0; i <= 10; i++ )
- {
- local player = FindPlayer( i );
- if ( player && status[ player.ID ].raceplayer == true )
- {
- MessagePlayer( "Race will be started in 3 seconds", player );
- NewTimer( "Announce", 1000, 1, "~o~= 3 =",player.ID );
- NewTimer( "Announce", 2000, 1, "~o~= 2 =",player.ID );
- NewTimer( "Announce", 3000, 1, "~o~= 1 =",player.ID );
- NewTimer( "Announce", 4000, 1, "~o~= GO GO GO =",player.ID );
- player.IsFrozen = false;
- }
- }
- }
- function GiveUp( player )
- {
- Message( player+" has given up! There are "+racecount+" players in race." );
- EndRace( player );
- }
- function RaceTrack(player)
- {
- if ( status[ player.ID ].World == 201 ) return "#Track 1";
- else if ( status[ player.ID ].World == 202 ) return "#Track 2";
- else if ( status[ player.ID ].World == 203 ) return "#Track 3";
- else if ( status[ player.ID ].World == 204 ) return "#Track 4";
- else if ( status[ player.ID ].World == 205 ) return "#Track 5";
- else if ( status[ player.ID ].World == 206 ) return "#Track 6";
- }
- function RaceCar(player)
- {
- if ( status[ player.ID ].Car == 236 ) return "Hotring Racer #3";
- else if ( status[ player.ID ].Car == 141 ) return "Infernus";
- else if ( status[ player.ID ].Car == 132 ) return "Stinger";
- else if ( status[ player.ID ].Car == 223 ) return "Hotring Racer #1";
- }
- function CloseRace(player)
- {
- Message( "Race has been cancelled, lack of players" );
- status[ player.ID ].racestart = false;
- status[ player.ID ].raceplayer = false;
- racecount = 0;
- local plr;
- for( local i=0; i <= GetMaxPlayers(); i++ ){
- {
- plr = FindPlayer( i );
- if ( plr )
- {
- if( status[ plr.ID ].raceplayer )
- {
- status[ plr.ID ].raceplayer = false;
- plr.IsFrozen = false;
- plr.Pos = status[ plr.ID ].RaceLastpos;
- }
- }
- }
- }
- function EndRace( player )
- {
- Message( player+" has won the race! Shutting the race down.")
- player.Cash += 50000;
- status[ player.ID ].raceplayer = false;
- status[ player.ID ].racestart = false;
- status[ player.ID ].Car.Remove();
- player.Pos = status[ player.ID ].RaceLastpos;
- racecount = 0;
- EndRaceAll();
- }
- function EndRaceAll()
- {
- for ( local i = 0; i <= 10; i++ )
- {
- local player = FindPlayer( i );
- if ( player && status[ player.ID ].raceplayer == true )
- {
- status[ player.ID ].racestart = false;
- status[ player.ID ].Car.Remove();
- player.Pos = status[ player.ID ].RaceLastpos;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment