MuhammadZeeshan

ddasdsadd

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