minigame.pwn 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. /*
  2. Minigame: Player Interaction
  3. - Jingles (September 2015)
  4. */
  5. #include <YSI\y_hooks>
  6. #define PVAR_INTERACT "1000"
  7. #define PVAR_INTERACT_CANTRIGGER "1001"
  8. #define INTERACT_TRUE "1002"
  9. new Text:TD_Interact[7];
  10. timer Interact_Timer[1000](playerid) {
  11. if(GetPVarType(playerid, PVAR_INTERACT)) {
  12. ProcessInteractSprites(playerid);
  13. defer Interact_Timer(playerid);
  14. }
  15. }
  16. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  17. if(newkeys & KEY_LEFT || newkeys & KEY_FIRE) {
  18. if(GetPVarType(playerid, PVAR_INTERACT_CANTRIGGER)) {
  19. if(newkeys & GetInteractSpriteKey(GetPVarInt(playerid, "I2"))) InteractSpriteProcess(playerid, true);
  20. else InteractSpriteProcess(playerid, false);
  21. DeletePVar(playerid, PVAR_INTERACT_CANTRIGGER);
  22. return 1;
  23. }
  24. }
  25. return 1;
  26. }
  27. hook OnGameModeInit()
  28. {
  29. TD_Interact[0] = TextDrawCreate(320.000000, 180.000000, "-");
  30. TextDrawAlignment(TD_Interact[0], 2);
  31. TextDrawBackgroundColor(TD_Interact[0], 255);
  32. TextDrawFont(TD_Interact[0], 1);
  33. TextDrawLetterSize(TD_Interact[0], 12.500013, 21.000000);
  34. TextDrawColor(TD_Interact[0], -196);
  35. TextDrawSetOutline(TD_Interact[0], 0);
  36. TextDrawSetProportional(TD_Interact[0], 1);
  37. TextDrawSetShadow(TD_Interact[0], 0);
  38. TextDrawSetSelectable(TD_Interact[0], 0);
  39. TD_Interact[1] = TextDrawCreate(299.000000, 279.000000, "LD_BEAT:cring");
  40. TextDrawBackgroundColor(TD_Interact[1], 255);
  41. TextDrawFont(TD_Interact[1], 4);
  42. TextDrawLetterSize(TD_Interact[1], 0.539999, 2.299999);
  43. TextDrawColor(TD_Interact[1], -1);
  44. TextDrawSetOutline(TD_Interact[1], 0);
  45. TextDrawSetProportional(TD_Interact[1], 1);
  46. TextDrawSetShadow(TD_Interact[1], 1);
  47. TextDrawUseBox(TD_Interact[1], 1);
  48. TextDrawBoxColor(TD_Interact[1], 255);
  49. TextDrawTextSize(TD_Interact[1], 42.000000, 44.000000);
  50. TextDrawSetSelectable(TD_Interact[1], 0);
  51. TD_Interact[2] = TextDrawCreate(262.000000, 292.000000, "LD_BEAT:up");
  52. TextDrawBackgroundColor(TD_Interact[2], 255);
  53. TextDrawFont(TD_Interact[2], 4);
  54. TextDrawLetterSize(TD_Interact[2], 0.539999, 2.299999);
  55. TextDrawColor(TD_Interact[2], -196);
  56. TextDrawSetOutline(TD_Interact[2], 0);
  57. TextDrawSetProportional(TD_Interact[2], 1);
  58. TextDrawSetShadow(TD_Interact[2], 1);
  59. TextDrawUseBox(TD_Interact[2], 1);
  60. TextDrawBoxColor(TD_Interact[2], 255);
  61. TextDrawTextSize(TD_Interact[2], 16.000000, 17.000000);
  62. TextDrawSetSelectable(TD_Interact[2], 0);
  63. TD_Interact[3] = TextDrawCreate(283.000000, 292.000000, "LD_BEAT:up");
  64. TextDrawBackgroundColor(TD_Interact[3], 255);
  65. TextDrawFont(TD_Interact[3], 4);
  66. TextDrawLetterSize(TD_Interact[3], 0.539999, 2.299999);
  67. TextDrawColor(TD_Interact[3], -96);
  68. TextDrawSetOutline(TD_Interact[3], 0);
  69. TextDrawSetProportional(TD_Interact[3], 1);
  70. TextDrawSetShadow(TD_Interact[3], 1);
  71. TextDrawUseBox(TD_Interact[3], 1);
  72. TextDrawBoxColor(TD_Interact[3], 255);
  73. TextDrawTextSize(TD_Interact[3], 16.000000, 17.000000);
  74. TextDrawSetSelectable(TD_Interact[3], 0);
  75. TD_Interact[4] = TextDrawCreate(312.000000, 292.000000, "LD_BEAT:up");
  76. TextDrawBackgroundColor(TD_Interact[4], 255);
  77. TextDrawFont(TD_Interact[4], 4);
  78. TextDrawLetterSize(TD_Interact[4], 0.539999, 2.299999);
  79. TextDrawColor(TD_Interact[4], -1);
  80. TextDrawSetOutline(TD_Interact[4], 0);
  81. TextDrawSetProportional(TD_Interact[4], 1);
  82. TextDrawSetShadow(TD_Interact[4], 1);
  83. TextDrawUseBox(TD_Interact[4], 1);
  84. TextDrawBoxColor(TD_Interact[4], 255);
  85. TextDrawTextSize(TD_Interact[4], 16.000000, 17.000000);
  86. TextDrawSetSelectable(TD_Interact[4], 0);
  87. TD_Interact[5] = TextDrawCreate(340.000000, 292.000000, "LD_BEAT:up");
  88. TextDrawBackgroundColor(TD_Interact[5], 255);
  89. TextDrawFont(TD_Interact[5], 4);
  90. TextDrawLetterSize(TD_Interact[5], 0.539999, 2.299999);
  91. TextDrawColor(TD_Interact[5], -96);
  92. TextDrawSetOutline(TD_Interact[5], 0);
  93. TextDrawSetProportional(TD_Interact[5], 1);
  94. TextDrawSetShadow(TD_Interact[5], 1);
  95. TextDrawUseBox(TD_Interact[5], 1);
  96. TextDrawBoxColor(TD_Interact[5], 255);
  97. TextDrawTextSize(TD_Interact[5], 16.000000, 17.000000);
  98. TextDrawSetSelectable(TD_Interact[5], 0);
  99. TD_Interact[6] = TextDrawCreate(362.000000, 292.000000, "LD_BEAT:up");
  100. TextDrawBackgroundColor(TD_Interact[6], 255);
  101. TextDrawFont(TD_Interact[6], 4);
  102. TextDrawLetterSize(TD_Interact[6], 0.539999, 2.299999);
  103. TextDrawColor(TD_Interact[6], -196);
  104. TextDrawSetOutline(TD_Interact[6], 0);
  105. TextDrawSetProportional(TD_Interact[6], 1);
  106. TextDrawSetShadow(TD_Interact[6], 1);
  107. TextDrawUseBox(TD_Interact[6], 1);
  108. TextDrawBoxColor(TD_Interact[6], -156);
  109. TextDrawTextSize(TD_Interact[6], 16.000000, 17.000000);
  110. TextDrawSetSelectable(TD_Interact[6], 0);
  111. }
  112. hook OnGameModeExit()
  113. {
  114. TextDrawHideForAll(TD_Interact[0]);
  115. TextDrawDestroy(TD_Interact[0]);
  116. TextDrawHideForAll(TD_Interact[1]);
  117. TextDrawDestroy(TD_Interact[1]);
  118. TextDrawHideForAll(TD_Interact[2]);
  119. TextDrawDestroy(TD_Interact[2]);
  120. TextDrawHideForAll(TD_Interact[3]);
  121. TextDrawDestroy(TD_Interact[3]);
  122. TextDrawHideForAll(TD_Interact[4]);
  123. TextDrawDestroy(TD_Interact[4]);
  124. TextDrawHideForAll(TD_Interact[5]);
  125. TextDrawDestroy(TD_Interact[5]);
  126. TextDrawHideForAll(TD_Interact[6]);
  127. TextDrawDestroy(TD_Interact[6]);
  128. }
  129. hook OnPlayerConnect(playerid)
  130. {
  131. DeletePVar(playerid, PVAR_INTERACT);
  132. }
  133. ProcessInteractSprites(playerid) {
  134. if(!GetPVarType(playerid, INTERACT_TRUE)) InteractSpriteProcess(playerid, false);
  135. SendClientMessage(playerid, -1, "trigger");
  136. new id[4];
  137. id[0] = GetPVarInt(playerid, "I0");
  138. id[1] = GetPVarInt(playerid, "I1");
  139. id[2] = GetPVarInt(playerid, "I2");
  140. id[3] = GetPVarInt(playerid, "I3");
  141. SetPVarInt(playerid, "I1", id[0]);
  142. SetPVarInt(playerid, "I2", id[1]);
  143. SetPVarInt(playerid, "I3", id[2]);
  144. TextDrawSetString(TD_Interact[3], GetInteractSpriteString(id[0]));
  145. TextDrawSetString(TD_Interact[4], GetInteractSpriteString(id[1]));
  146. TextDrawSetString(TD_Interact[5], GetInteractSpriteString(id[2]));
  147. TextDrawSetString(TD_Interact[6], GetInteractSpriteString(id[3]));
  148. id[0] = Random(1, 4);
  149. TextDrawSetString(TD_Interact[2], GetInteractSpriteString(id[0]));
  150. SetPVarInt(playerid, "I0", id[0]);
  151. TextDrawHideForPlayer(playerid, TD_Interact[2]);
  152. TextDrawHideForPlayer(playerid, TD_Interact[3]);
  153. TextDrawHideForPlayer(playerid, TD_Interact[4]);
  154. TextDrawHideForPlayer(playerid, TD_Interact[5]);
  155. TextDrawHideForPlayer(playerid, TD_Interact[6]);
  156. TextDrawShowForPlayer(playerid, TD_Interact[2]);
  157. TextDrawShowForPlayer(playerid, TD_Interact[3]);
  158. TextDrawShowForPlayer(playerid, TD_Interact[4]);
  159. TextDrawShowForPlayer(playerid, TD_Interact[5]);
  160. TextDrawShowForPlayer(playerid, TD_Interact[6]);
  161. DeletePVar(playerid, INTERACT_TRUE);
  162. SetPVarInt(playerid, PVAR_INTERACT_CANTRIGGER, 1);
  163. }
  164. GetInteractSpriteString(id) {
  165. new szString[20];
  166. switch(id) {
  167. case 0: {}
  168. case 1: szString = "LD_BEAT:left";
  169. case 2: szString = "pcbtns:right";
  170. default: szString = "hud:fist";
  171. }
  172. return szString;
  173. }
  174. GetInteractSpriteKey(id) {
  175. new iKeyID;
  176. switch(id) {
  177. case 0: {}
  178. case 1: iKeyID = KEY_LEFT;
  179. case 2: iKeyID = KEY_RIGHT;
  180. default: iKeyID = KEY_FIRE;
  181. }
  182. return iKeyID;
  183. }
  184. InteractSpriteProcess(playerid, bool:choice) {
  185. switch(choice) {
  186. case true: {
  187. SendClientMessage(playerid, 0x00FF00FF, "SUCCESS");
  188. TextDrawColor(TD_Interact[1], 0x00FF00FF);
  189. TextDrawHideForPlayer(playerid, TD_Interact[1]);
  190. TextDrawShowForPlayer(playerid, TD_Interact[1]);
  191. SetPVarInt(playerid, INTERACT_TRUE, 1);
  192. }
  193. default: {
  194. SendClientMessage(playerid, 0xFF0000FF, "FAIL");
  195. TextDrawColor(TD_Interact[1], 0xFF0000FF);
  196. TextDrawHideForPlayer(playerid, TD_Interact[1]);
  197. TextDrawShowForPlayer(playerid, TD_Interact[1]);
  198. }
  199. }
  200. }
  201. stock InteractSprites(playerid) {
  202. if(GetPVarType(playerid, PVAR_INTERACT))
  203. {
  204. TextDrawHideForPlayer(playerid, TD_Interact[0]);
  205. TextDrawHideForPlayer(playerid, TD_Interact[1]);
  206. TextDrawHideForPlayer(playerid, TD_Interact[2]);
  207. TextDrawHideForPlayer(playerid, TD_Interact[3]);
  208. TextDrawHideForPlayer(playerid, TD_Interact[4]);
  209. TextDrawHideForPlayer(playerid, TD_Interact[5]);
  210. TextDrawHideForPlayer(playerid, TD_Interact[6]);
  211. DeletePVar(playerid, PVAR_INTERACT);
  212. }
  213. else
  214. {
  215. SetPVarInt(playerid, PVAR_INTERACT, 1);
  216. TextDrawShowForPlayer(playerid, TD_Interact[0]);
  217. TextDrawShowForPlayer(playerid, TD_Interact[1]);
  218. TextDrawShowForPlayer(playerid, TD_Interact[2]);
  219. TextDrawShowForPlayer(playerid, TD_Interact[3]);
  220. TextDrawShowForPlayer(playerid, TD_Interact[4]);
  221. TextDrawShowForPlayer(playerid, TD_Interact[5]);
  222. TextDrawShowForPlayer(playerid, TD_Interact[6]);
  223. Interact_Timer(playerid);
  224. }
  225. }