Advertisement
Guest User

Lowrider minigame FS

a guest
Jul 3rd, 2023
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.48 KB | None | 0 0
  1. /*
  2. @title Low-Rider Mini-Game.
  3. @author Carlton
  4. @copyright 2010
  5. @description Perform a lowriding mini-game similar to singleplayer's one.
  6.  
  7. */
  8.  
  9. #include <a_samp>
  10.  
  11. #define _WHITE 0xFFFFFFFF
  12. #define CameraAngles // Comment this if you would like to disable the camera when you've finished a note.
  13.  
  14. #if !defined PRESSED
  15. #define PRESSED(%0) \
  16. (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  17. #endif
  18.  
  19. new
  20. bool:ContestToggled = true,
  21. bool:InContest[MAX_PLAYERS],
  22. CurrentNote[MAX_PLAYERS],
  23. Text:ContestText,
  24. MoneyEarned[MAX_PLAYERS],
  25. bool:JustJoined[MAX_PLAYERS],
  26. Float:Pos[4];
  27.  
  28. public OnPlayerDisconnect(playerid) {
  29. InContest[playerid] = false;
  30. CurrentNote[playerid] = -1;
  31. MoneyEarned[playerid] = 0;
  32. JustJoined[playerid] = false;
  33. return 1;
  34. }
  35.  
  36. public OnFilterScriptInit() {
  37. ContestText = TextDrawCreate(230.000000,309.000000,"_");
  38. TextDrawAlignment(ContestText,0);
  39. TextDrawBackgroundColor(ContestText,0x000000ff);
  40. TextDrawFont(ContestText,2);
  41. TextDrawLetterSize(ContestText,0.899999,2.599999);
  42. TextDrawColor(ContestText,0xffff00ff);
  43. TextDrawSetOutline(ContestText,1);
  44. TextDrawSetProportional(ContestText,1);
  45. TextDrawSetShadow(ContestText,1);
  46. return 1;
  47. }
  48.  
  49. public OnFilterScriptExit() {
  50. TextDrawDestroy(ContestText);
  51. return 1;
  52. }
  53.  
  54. public OnPlayerCommandText(playerid, cmdtext[]) {
  55. if (strcmp("/togglecontest", cmdtext, true, 10) == 0) {
  56. if(IsPlayerAdmin(playerid)) {
  57. if(ContestToggled == true) {
  58. ContestToggled = false;
  59. }
  60. else {
  61. ContestToggled = true;
  62. }
  63. }
  64. return 1;
  65. }
  66. if (strcmp("/joincontest", cmdtext, true, 10) == 0) {
  67. if(ContestToggled == false) return SendClientMessage(playerid, _WHITE, "The contest is not toggled, ask a admin to toggle it.");
  68. if(InContest[playerid] == false) {
  69. SetPlayerCheckpoint(playerid, 1792.2076,-1909.4030,13.2685, 9.0);
  70. InContest[playerid] = true;
  71. JustJoined[playerid] = true;
  72. }
  73. else {
  74. InContest[playerid] = false;
  75. JustJoined[playerid] = false;
  76. TextDrawHideForPlayer(playerid, ContestText);
  77. GivePlayerMoney(playerid, MoneyEarned[playerid]);
  78. DisablePlayerCheckpoint(playerid);
  79. SetCameraBehindPlayer(playerid);
  80. CurrentNote[playerid] = -1;
  81. ClearAnimations(playerid);
  82. }
  83. return 1;
  84. }
  85. return 0;
  86. }
  87.  
  88. public OnPlayerEnterCheckpoint(playerid) {
  89. if(InContest[playerid] == true) {
  90. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, _WHITE, "You're not in a vehicle.");
  91. if(GetVehicleComponentInSlot(GetPlayerVehicleID(playerid),GetVehicleComponentType(1087)) == 1087) {
  92. BeginContestForPlayer(playerid);
  93. }
  94. else return SendClientMessage(playerid, _WHITE, "Your vehicle does not have hydraulics.");
  95. }
  96. return 1;
  97. }
  98.  
  99. stock BeginContestForPlayer(playerid) {
  100. GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
  101. SetPlayerCameraPos(playerid, Pos[0]+5,Pos[1],Pos[2]+1);
  102. SetPlayerCameraLookAt(playerid, Pos[0],Pos[1],Pos[2]);
  103. DisablePlayerCheckpoint(playerid);
  104. SendClientMessage(playerid, _WHITE, "The contest is starting, make sure you're in the camera, so you can see!");
  105. SetTimerEx("SendNoteForPlayer", 5000, 0, "d", playerid);
  106. GameTextForPlayer(playerid, "~r~Information~n~~n~~>~ Right~n~~<~ Left~n~~up~ Up~n~~down~Down", 4000, 5);
  107. return 1;
  108. }
  109.  
  110. forward SendNoteForPlayer(playerid);
  111. public SendNoteForPlayer(playerid) {
  112. new
  113. array[128],
  114. earned,
  115. note,
  116. randanim,
  117. randomcamera;
  118.  
  119. PlayerPlaySound(playerid, 1130, 0.0, 0.0, 10.0);
  120. TextDrawHideForPlayer(playerid, ContestText);
  121. GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
  122.  
  123. earned = random(20);
  124. note = random(4);
  125. randanim = random(3);
  126.  
  127. #if !defined CameraAngles
  128. #pragma unused randomcamera
  129. #endif
  130.  
  131. #if defined CameraAngles
  132. randomcamera = random(6);
  133. #endif
  134.  
  135. if(JustJoined[playerid] == false) {
  136. MoneyEarned[playerid] += earned;
  137. format(array, 128, "Money Earned: ~g~$%d", MoneyEarned[playerid]);
  138. GameTextForPlayer(playerid, array, 8000, 4);
  139. }
  140. if(JustJoined[playerid] == true) JustJoined[playerid] = false;
  141.  
  142. switch(note) {
  143. case 0:{
  144. TextDrawSetString(ContestText, "New note~n~~n~ ~up~");
  145. CurrentNote[playerid] = 0;
  146. }
  147. case 1:{
  148. TextDrawSetString(ContestText, "New note~n~~n~ ~down~");
  149. CurrentNote[playerid] = 1;
  150. }
  151. case 2:{
  152. TextDrawSetString(ContestText, "New note~n~~n~ ~>~");
  153. CurrentNote[playerid] = 2;
  154. }
  155. case 3:{
  156. TextDrawSetString(ContestText, "New note~n~~n~ ~<~");
  157. CurrentNote[playerid] = 3;
  158. }
  159. }
  160. switch(randanim) {
  161. case 0: {
  162. ApplyAnimation(playerid, "LOWRIDER", "lrgirl_l3_loop", 4.0, 1, 0, 0, 0, 0);
  163. }
  164. case 1: {
  165. ApplyAnimation(playerid, "LOWRIDER", "lrgirl_l4_loop", 4.0, 1, 0, 0, 0, 0);
  166. }
  167. case 2: {
  168. ApplyAnimation(playerid, "LOWRIDER", "lrgirl_l5_loop", 4.0, 1, 0, 0, 0, 0);
  169. }
  170. }
  171. #if defined CameraAngles
  172. switch(randomcamera) {
  173. case 0: {
  174. SetPlayerCameraPos(playerid, Pos[0]+5,Pos[1],Pos[2]+1);
  175. SetPlayerCameraLookAt(playerid, Pos[0],Pos[1],Pos[2]);
  176. }
  177. case 1: {
  178. SetPlayerCameraPos(playerid, Pos[0]+5,Pos[1]+4,Pos[2]+1);
  179. SetPlayerCameraLookAt(playerid, Pos[0],Pos[1],Pos[2]);
  180. }
  181. case 2: {
  182. SetPlayerCameraPos(playerid, Pos[0]+3,Pos[1],Pos[2]+1);
  183. SetPlayerCameraLookAt(playerid, Pos[0],Pos[1],Pos[2]);
  184. }
  185. case 3: {
  186. SetPlayerCameraPos(playerid, Pos[0]+3,Pos[1],Pos[2]+2);
  187. SetPlayerCameraLookAt(playerid, Pos[0],Pos[1],Pos[2]);
  188. }
  189. case 4: {
  190. SetPlayerCameraPos(playerid, Pos[0],Pos[1]+2,Pos[2]+9);
  191. SetPlayerCameraLookAt(playerid, Pos[0],Pos[1],Pos[2]);
  192. }
  193. case 5: {
  194. SetPlayerCameraPos(playerid, Pos[0],Pos[1]+2,Pos[2]+2);
  195. SetPlayerCameraLookAt(playerid, Pos[0],Pos[1],Pos[2]);
  196. }
  197. }
  198. #endif
  199. TextDrawShowForPlayer(playerid, ContestText);
  200. return 1;
  201. }
  202.  
  203. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  204. if (newkeys & KEY_ANALOG_UP && CurrentNote[playerid] == 0) {
  205. SendNoteForPlayer(playerid);
  206. }
  207. if (newkeys & KEY_ANALOG_DOWN && CurrentNote[playerid] == 1) {
  208. SendNoteForPlayer(playerid);
  209. }
  210. if (newkeys & KEY_ANALOG_RIGHT && CurrentNote[playerid] == 2) {
  211. SendNoteForPlayer(playerid);
  212. }
  213. if (newkeys & KEY_ANALOG_LEFT && CurrentNote[playerid] == 3) {
  214. SendNoteForPlayer(playerid);
  215. }
  216. return 1;
  217. }
  218.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement