MuhammadZeeshan

dasdasdasdas

Jun 8th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.65 KB | None | 0 0
  1. /************** ***********
  2. * *
  3. *Race system by Zeeshan & *
  4. * Decent_946 *
  5. *************** ***********
  6. *
  7. */
  8.  
  9.  
  10. class PlayerStats
  11. {
  12. raceplayer = false;
  13. racestart = false;
  14. pcount = 0;
  15. RaceLastpos = null;
  16. World = null;
  17. Car = null;
  18. }
  19.  
  20. RandomTrack <- [201, 202, 203, 204, 205, 206 ]
  21. RandomCar <- [236, 141, 132, 223]
  22.  
  23.  
  24.  
  25.  
  26. function onScriptLoad()
  27. {
  28. status <- array(GetMaxPlayers(), null );
  29. racecount <- 0;
  30.  
  31. print( "Race system by Zeeshan & Decent loaded" );
  32. }
  33. function onPlayerJoin( player )
  34. {
  35. status[ player.ID ] = PlayerStats();
  36.  
  37. MessagePlayer( "Welcome to Race System by Zeeshan.Bhatti", player );
  38. }
  39. function onPlayerCommand( player, cmd, text )
  40. {
  41.  
  42. if ( cmd == "startrace" )
  43. {
  44.  
  45. if ( status[ player.ID ].racestart == true ) MessagePlayer( "Race is already started, type /joinrace to join.", player );
  46. else
  47. {
  48. MessagePlayer( "You have successfully started race", player );
  49. StartRace( player );
  50. status[ player.ID ].racestart = true;
  51.  
  52. }
  53. }
  54. else if ( cmd == "joinrace" )
  55. {
  56. if ( status[ player.ID ].racestart == false ) MessagePlayer( "Race is not started yet", player );
  57. else if ( status[ player.ID ].pcount > 10 ) MessagePlayer( "You can't join race now, slots are full", player );
  58. else if ( status[ player.ID ].raceplayer == true ) MessagePlayer( "You are already in race", player );
  59. else
  60. {
  61. MessagePlayer( "You have successfully joined the Race. Type /igiveup to exit.", player );
  62. status[ player.ID ].racestart = true;
  63. status[ player.ID ].RaceLastpos = player.Pos;
  64. racecount++;
  65. status[ player.ID ].raceplayer = true;
  66. Message( player+" has joined the race. There are "+racecount+" players currently in race" );
  67. local racecar = status[ player.ID ].Car, racetrack = status[ player.ID ].World;
  68. CreateVehicle( racecar, racetrack, Vector( 496.465, 1102.01 , 16.9096 ) 3.10706., 1, 1 );
  69. player.IsFrozen = true;
  70.  
  71. }
  72.  
  73. }
  74. else if ( cmd == "igiveup" )
  75. {
  76. if ( status[ player.ID ].raceplayer == false ) MessagePlayer( "You need to be in race to use this command", player );
  77. else{
  78. if ( racecount > 1 )
  79. {
  80. MessagePlayer( "You have given up.", player );
  81. status[ player.ID ].raceplayer = false;
  82. status[ player.ID ].Car = null;
  83. player.Pos = status[ player.ID ].RaceLastpos;
  84. racecount--;
  85. Message( player+" has given up! There are "+racecount+" players in race." );
  86. }
  87. else GiveUp();
  88. }
  89. }
  90.  
  91. }
  92.  
  93.  
  94.  
  95. // ================== R A C E --- F U N C T I O N S =============
  96. function StartRace( player )
  97. {
  98. local car = RandomCar[ rand()%RandomCar.len() ];
  99. local track = RandomTrack[ rand()%RandomTrack.len() ];
  100.  
  101. Message( player.Name + " has started the race, type /joinrace to join, race entry will be closed in 30 seconds" );
  102. Message( "Race Track: "+RaceTrack()+", Vehicle: "+RaceCar() );
  103.  
  104. NewTimer( "BeginRace", 30000, 1 );
  105.  
  106. }
  107. function JoinRace( player )
  108. {
  109. if ( racecount > 1 )
  110. {
  111. BeginRace();
  112. }
  113. else CloseRace();
  114. }
  115. function BeginRace()
  116. {
  117.  
  118. for ( local i = 0; i <= 10; i++ )
  119. {
  120. local player = FindPlayer( i );
  121.  
  122. if ( player && status[ player.ID ].raceplayer == true )
  123. {
  124. MessagePlayer( "Race will be started in 3 seconds", player );
  125. NewTimer( "Announce", 1000, 1, "~o~= 3 =",player.ID );
  126. NewTimer( "Announce", 2000, 1, "~o~= 2 =",player.ID );
  127. NewTimer( "Announce", 3000, 1, "~o~= 1 =",player.ID );
  128. NewTimer( "Announce", 3000, 1, "~o~= GO GO GO =",player.ID );
  129. }
  130. }
  131. }
  132. function RaceTrack()
  133. {
  134. local player = FindPlayer();
  135.  
  136. if ( status[ player.ID ].World == 201 ) return "#Track 1";
  137. else if ( status[ player.ID ].World == 202 ) return "#Track 2";
  138. else if ( status[ player.ID ].World == 203 ) return "#Track 3";
  139. else if ( status[ player.ID ].World == 204 ) return "#Track 4";
  140. else if ( status[ player.ID ].World == 205 ) return "#Track 5";
  141. else if ( status[ player.ID ].World == 206 ) return "#Track 6";
  142. }
  143.  
  144. function RaceCar()
  145. {
  146. local player = FindPlayer();
  147.  
  148. if ( status[ player.ID ].Car == 236 ) return "Hotring Racer #3";
  149. else if ( status[ player.ID ].Car == 141 ) return "Infernus";
  150. else if ( status[ player.ID ].Car == 132 ) return "Stinger";
  151. else if ( status[ player.ID ].Car == 223 ) return "Hotring Racer #1";
  152. }
  153. function CloseRace()
  154. {
  155. local player = FindPlayer();
  156.  
  157. Message( "Race has been cancelled, lack of players" );
  158. status[ player.ID ].racestart = false;
  159. status[ player.ID ].raceplayer = false;
  160. racecount = 0;
  161. local plr;
  162. for( local i=0; i <= GetMaxPlayers(); i++ ){
  163. {
  164. plr = FindPlayer( i );
  165. if ( plr )
  166. {
  167. if( status[ plr.ID ].raceplayer )
  168. {
  169. status[ plr.ID ].raceplayer = false;
  170. plr.IsFrozen = false;
  171. plr.Pos = status[ plr.ID ].RaceLastpos;
  172. }
  173. }
  174. }
  175. }
  176. function EndRace( player )
  177. {
  178. Message( player+" has won the race! Shutting the race down.")
  179. player.Cash += 50000;
  180. status[ player.ID ].raceplayer = false;
  181. status[ player.ID ].racestart = false;
  182. status[ player.ID ].Car.Remove();
  183. player.Pos = status[ player.ID ].RaceLastpos;
  184. racecount = 0;
  185. EndRaceAll();
  186. }
  187. function EndRaceAll()
  188. {
  189. for ( local i = 0; i <= 10; i++ )
  190. {
  191. local player = FindPlayer( i );
  192.  
  193. if ( player && status[ player.ID ].raceplayer == true )
  194. {
  195. status[ player.ID ].racestart = false;
  196. status[ player.ID ].Car.Remove();
  197. player.Pos = status[ player.ID ].RaceLastpos;
  198. }
  199. }
  200. }
  201. function GiveUp()
  202. {
  203. Message( player+" has given up! There are "+RaceStats.Count+" players in race." );
  204. EndRace( player );
  205. }
  206.  
  207. }
Add Comment
Please, Sign In to add comment