Guest User

Race boats v1.2

a guest
Dec 2nd, 2012
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.50 KB | None | 0 0
  1. /*
  2. #
  3. #-------------------------------------
  4. # Race Boat version v1.2 by HavingGood
  5. #-------------------------------------
  6. #
  7. # Commands:
  8. # /sbrace - Start race Only Admin
  9. # /resrace - Reset race Only Admin
  10. # /brace - Signup for the race for players
  11. # /fix - Fix car for players
  12. #
  13. */
  14. //------Include------
  15. #include <a_samp>
  16. #include <zcmd>
  17.  
  18. //---definitions---
  19. #define COLOR_GREEN 0x339966
  20.  
  21. //---New---
  22. new
  23. RBoats,
  24. SaveBoat[MAX_PLAYERS],
  25. BoatPeople = 6,
  26. TimeBoats,
  27. TimerBoat,
  28. BoatsStarted,
  29. sh3,
  30. Boat1,
  31. Boat2,
  32. Boat3,
  33. Boat4,
  34. Boat5,
  35. Boat6,
  36. SaBoat2,
  37. Float:x3, Float:y3, Float:z3,
  38. PlayerObject[9];
  39.  
  40. public OnPlayerConnect(playerid)
  41. {
  42. SaveBoat[playerid] = 0;
  43. return 1;}
  44.  
  45. public OnPlayerCommandReceived(playerid, cmdtext[])
  46. {
  47. if(strfind(cmdtext, "/fix") == -1)
  48. if(SaveBoat[playerid] == 1) return SendClientMessage(playerid, 0xff0000ff, "You cannot use the command!");
  49. return 0;}
  50.  
  51. CMD:brace(playerid, params[])
  52. {
  53. #pragma unused params
  54. if(BoatPeople > 0)
  55. {
  56. if(RBoats == 1)
  57. {
  58. if(SaveBoat[playerid] == 0)
  59. {
  60. GetPlayerPos(playerid, x3, y3, z3);
  61. SendClientMessage(playerid, 0xff0000ff, "You joined in RaceBoat");
  62. SaveBoat[playerid] = 1;
  63. BoatPeople--;
  64. SaBoat2++;
  65. }
  66. else
  67. {
  68. SendClientMessage(playerid, 0xff0000ff, "Already you signed up on race");
  69. }
  70. }
  71. else
  72. {
  73. SendClientMessage(playerid, 0xff0000ff, "No ongoing subscription for race!");
  74. }
  75. }
  76. else
  77. {
  78. SendClientMessage(playerid, 0xff0000ff, "No place for race!");
  79. }
  80. return 1;}
  81.  
  82. CMD:resrace(playerid, params[])
  83. {
  84. #pragma unused params
  85. if(IsPlayerAdmin(playerid)){
  86. new string[28];
  87. if(RBoats == 0){
  88. SaveBoat[playerid] = 0;
  89. BoatsStarted = 0;
  90. Deleteq(playerid);
  91. KillTimer(TimerBoat);
  92. format(string, sizeof(string), "~r~Admin %s ~y~Has been reset race", Player(playerid));}
  93. }
  94. return 1;}
  95.  
  96. CMD:fix(playerid, params[])
  97. {
  98. #pragma unused params
  99. if(IsPlayerInAnyVehicle(playerid))
  100. SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
  101. RepairVehicle(GetPlayerVehicleID(playerid));
  102. SendClientMessage(playerid, COLOR_GREEN, "You repair boat");
  103. return 1;}
  104.  
  105. CMD:sbrace(playerid, params[])
  106. {
  107. #pragma unused params
  108. if(RBoats == 0)
  109. {
  110. if(IsPlayerAdmin(playerid))
  111. {
  112. if(BoatsStarted == 0)
  113. {
  114. RBoats = 1;
  115. TimerBoat = SetTimer("Startbrace", 1000, 1);
  116. TimeBoats = 30;
  117. BoatPeople = 6;
  118. sh3 = 0;
  119. SaBoat2 = 0;
  120. }
  121. else
  122. {
  123. SendClientMessage(playerid, 0xff0000ff, "Race on!");
  124. }
  125. }
  126. else
  127. {
  128. SendClientMessage(playerid, 0xff0000ff, "No permission");
  129. }
  130. }
  131. else
  132. {
  133. SendClientMessage(playerid, 0xff0000ff, "One race is already underway!");
  134. }
  135. return 1;}
  136.  
  137. forward Startbrace();
  138. public Startbrace()
  139. {
  140. TimeBoats--;
  141. new string[256];
  142. format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~w~Race boats!~n~To subscribe write /brace~n~~g~Free places: %d ~n~~p~Will start in %d sec.", BoatPeople, TimeBoats);
  143. GameTextForAll(string, 1000, 3);
  144. if(TimeBoats == 0)
  145. {
  146. KillTimer(TimerBoat);
  147. RBoats = 0;
  148. BoatsStarted = 1;
  149. }
  150. if(TimeBoats == 0)
  151. {
  152. if(SaBoat2 <=0)
  153. {
  154. SendClientMessageToAll(0xff0000ff, "No people in race!");
  155. BoatsStarted = 0;
  156. }
  157. }
  158. for(new i=0; i<GetMaxPlayers(); i++)
  159. {
  160. if(TimeBoats == 0)
  161. {
  162. if(SaveBoat[i] == 1)
  163. {
  164. SetPlayerCheckpoint(i, -41.8892,-598.3351,-0.1207, 15.0);
  165. sh3 = random(6);
  166. if(sh3 == 0)
  167. {
  168. Boat1 = AddStaticVehicle(493,1942.417,-251.958,1.366,349.0,-1,-1);
  169. PutPlayerInVehicle(i, Boat1, 0);
  170. }
  171. else if(sh3 == 1)
  172. {
  173. Boat2 = AddStaticVehicle(493,1951.182,-253.128,1.388,349.0,-1,-1);
  174. PutPlayerInVehicle(i, Boat2, 0);
  175. }
  176. else if(sh3 == 2)
  177. {
  178. Boat3 = AddStaticVehicle(493,1955.429,-230.359,1.426,349.0,-1,-1);
  179. PutPlayerInVehicle(i, Boat3, 0);
  180. }
  181. else if(sh3 == 3)
  182. {
  183. Boat4 = AddStaticVehicle(493,1946.536,-228.397,1.402,349.0,-1,-1);
  184. PutPlayerInVehicle(i, Boat4, 0);
  185. }
  186. else if(sh3 == 4)
  187. {
  188. Boat5 = AddStaticVehicle(493,1961.798,-254.666,1.335,349.0,-1,-1);
  189. PutPlayerInVehicle(i, Boat5, 0);
  190. }
  191. else if(sh3 == 5)
  192. {
  193. Boat6 = AddStaticVehicle(493,1964.774,-231.862,1.401,349.0,-1,-1);
  194. PutPlayerInVehicle(i, Boat6, 0);
  195. }
  196. if(PlayerOnTele(i))
  197. PlayerObject[0] = CreatePlayerObject(i,1655, 1933.348, -158.0981, 1.2938, 0, 0, 11.25);
  198. PlayerObject[1] = CreatePlayerObject(i,1655, 1941.9407, -156.4904, 1.2853, 0, 0, 11.25);
  199. PlayerObject[2] = CreatePlayerObject(i,1655, 1825.3428, -44.8284, 1.2946, 0, 0, 67.5);
  200. PlayerObject[3] = CreatePlayerObject(i,1655, 1685.3217, -16.1496, 1.285, 0, 0, 78.75);
  201. PlayerObject[4] = CreatePlayerObject(i,1655, 1603.8607, -102.9386, 1.2732, 0, 0, 180);
  202. PlayerObject[5] = CreatePlayerObject(i,1634, 1399.4585, -254.9023, 1.2896, 0, 0, 90);
  203. PlayerObject[6] = CreatePlayerObject(i,1634, 1399.4789, -250.7029, 1.3193, 0, 0, 90);
  204. PlayerObject[7] = CreatePlayerObject(i,1655, 1098.5001, -111.0342, 1.3009, 0, 0, 98.5943);
  205. PlayerObject[8] = CreatePlayerObject(i,1655, 676.477, -226.1338, 0.9883, 0, 0, 90);
  206. }
  207. }
  208. }
  209. return 1;}
  210.  
  211. public OnPlayerEnterCheckpoint(playerid)
  212. {
  213. if(BoatsStarted == 1)
  214. {
  215. if(SaveBoat[playerid] == 1)
  216. {
  217. new string[128];
  218. format(string, sizeof(string), "{CCFF99}Player {CCFFCC}%s{CCFF99} won the race, He receives{FF66CC} 100000$!", Player(playerid));
  219. GivePlayerMoney(playerid, 100000);
  220. SendClientMessageToAll(0xff0000ff, string);
  221. BoatsStarted = 0;
  222. ResetRBoats(playerid);
  223. Deleteq(playerid);
  224. }
  225. for(new i=0; i<GetMaxPlayers(); i++)
  226. {
  227. SetPlayerPos(i, x3, y3, z3);
  228. SaveBoat[i] = 0;
  229. DisablePlayerCheckpoint(i);
  230. }
  231. }
  232. return 1;}
  233.  
  234. PlayerOnTele(PlayerId)
  235. {
  236. TogglePlayerControllable(PlayerId, 0);
  237. SetTimerEx("UnfreezePlayer", 2999, false, "d", PlayerId);
  238. return true;}
  239.  
  240.  
  241. forward UnfreezePlayer(PlayerId);
  242. public UnfreezePlayer(PlayerId)
  243. {
  244. TogglePlayerControllable(PlayerId, 1);
  245. GameTextForPlayer(PlayerId, "~r~Go~p~-Go!", 2499, 3);
  246. return 1;}
  247.  
  248. forward ResetRBoats(playerid);
  249. public ResetRBoats(playerid)
  250. {
  251. DestroyVehicle(Boat1);
  252. DestroyVehicle(Boat2);
  253. DestroyVehicle(Boat3);
  254. DestroyVehicle(Boat4);
  255. DestroyVehicle(Boat5);
  256. DestroyVehicle(Boat6);
  257. return 1;}
  258.  
  259. stock Deleteq(playerid)
  260. {
  261. for(new o; o != 9; o++)
  262. DestroyPlayerObject(playerid, PlayerObject[o]);}
  263.  
  264. Player(playerid)
  265. {
  266. new player[MAX_PLAYER_NAME];
  267. GetPlayerName(playerid, player, sizeof(player));
  268. return player;}
  269.  
  270. public OnPlayerStateChange(playerid, newstate, oldstate)
  271. {
  272. if(oldstate == PLAYER_STATE_DRIVER && SaveBoat[playerid] != -1)
  273. {
  274. BoatPeople--;
  275. SaveBoat[playerid] = 0;
  276. DisablePlayerCheckpoint(playerid);
  277. Deleteq(playerid);
  278. }
  279. return 1;}
Advertisement
Add Comment
Please, Sign In to add comment