Guest User

Untitled

a guest
May 4th, 2012
616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.68 KB | None | 0 0
  1. /*
  2.  
  3. POLL SYSTEM BY BRITAS / DEIVIDAS
  4. 2012 METØ DARBAS
  5.  
  6. SKYPE: WIKIS666
  7.  
  8. */
  9.  
  10. #include <a_samp>
  11. #include <zcmd>
  12. //
  13. #define RED 0xFF0000FF
  14. #define YELLOW 0xFFFF00FF
  15. #define WHITE 0xFFFFFFFF
  16. #define MAX_QUESTION_SIZE 24
  17. #define MAX_VARIANT_SIZE 15
  18. #define GUI_DIALOG_ID 10
  19.  
  20. new Text:Textdraw0 [MAX_PLAYERS],
  21. bool:Balsavo [MAX_PLAYERS];
  22. enum PollVariables
  23. {
  24. yVariantas[MAX_VARIANT_SIZE],
  25. nVariantas[MAX_VARIANT_SIZE],
  26. Klausimas[MAX_QUESTION_SIZE],
  27. bool:Pradeta,
  28. yKiekis,
  29. nKiekis,
  30. BalsuSkaicius,
  31. Organizatorius
  32. }
  33. new Poll[PollVariables];
  34.  
  35. public OnFilterScriptInit()
  36. {
  37. NullVariables();
  38. for(new i; i < MAX_PLAYERS; i++)
  39. {
  40. Textdraw0[i] = TextDrawCreate(434.000000, 110.000000, " ~y~:: ~w~APKLAUSA ~y~::~n~~n~~r~(?):~w~ Ka jus?~n~~n~~p~(Y)~w~ Nieko.~n~~p~(N)~w~ Eik nx!~n~~n~Spausk ~y~Y~w~ arba ~y~N");
  41. TextDrawBackgroundColor(Textdraw0[i], 255);
  42. TextDrawFont(Textdraw0[i], 2);
  43. TextDrawLetterSize(Textdraw0[i], 0.320000, 0.899999);
  44. TextDrawColor(Textdraw0[i], -1);
  45. TextDrawSetOutline(Textdraw0[i], 0);
  46. TextDrawSetProportional(Textdraw0[i], 1);
  47. TextDrawSetShadow(Textdraw0[i], 0);
  48. TextDrawUseBox(Textdraw0[i], 1);
  49. TextDrawBoxColor(Textdraw0[i], 572661640);
  50. TextDrawTextSize(Textdraw0[i], 647.000000, 0.000000);
  51. }
  52. return 1;
  53. }
  54.  
  55. public OnFilterScriptExit()
  56. {
  57. return 1;
  58. }
  59.  
  60. COMMAND:start(playerid,params[])
  61. {
  62. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, RED, "[]: {ffffff}Ði komanda tik RCON administratoriams.");
  63. new Masyvas[((265 + MAX_VARIANT_SIZE) + MAX_VARIANT_SIZE) + MAX_QUESTION_SIZE];
  64. format(Masyvas,sizeof Masyvas,"{ffff00}1.{ffffff} Nustatyti apklausos klausimà. ({ff0000}%s{ffffff})\n{ffff00}2.{ffffff} Nustatyti Y variantà. ({ff0000}%s{ffffff})\n{ffff00}3.{ffffff} Nustatyti N variantà. ({ff0000}%s{ffffff})\n{ffff00}4.{ffffff} %s.\n{ffff00}5.{ffffff} Anuliuoti parametrus.",Poll[Klausimas],Poll[yVariantas],Poll[nVariantas],(Poll[Pradeta]) ? ("Nutraukti apklausà") : ("Pradëti apklausà"));
  65. ShowPlayerDialog(playerid, GUI_DIALOG_ID, DIALOG_STYLE_LIST, "{ffffff}Apklausos nustatymai", Masyvas, "Rinktis", "Uþdaryti");
  66. return 1;
  67. }
  68.  
  69. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  70. {
  71. switch(dialogid)
  72. {
  73. case GUI_DIALOG_ID:
  74. {
  75. switch(listitem)
  76. {
  77. case 0: if(response) return ShowPlayerDialog(playerid, (GUI_DIALOG_ID + 1), DIALOG_STYLE_INPUT, "{ffffff}Apklausos klausimas", "{ffffff}Áveskite norimà apklausos klausimà.\n{ff0000}[!] - Turi bûti neilgesnis kaip 24 simboliai.", "Nustatyti", "Uþdaryti");
  78. case 1: if(response) return ShowPlayerDialog(playerid, (GUI_DIALOG_ID + 2), DIALOG_STYLE_INPUT, "{ffffff}Y variantas", "{ffffff}Áveskite norimà Y variantà.\n{ff0000}[!] - Turi bûti neilgesnis kaip 15 simboliø.", "Nustatyti", "Uþdaryti");
  79. case 2: if(response) return ShowPlayerDialog(playerid, (GUI_DIALOG_ID + 3), DIALOG_STYLE_INPUT, "{ffffff}N variantas", "{ffffff}Áveskite norimà N variantà.\n{ff0000}[!] - Turi bûti neilgesnis kaip 15 simboliai.", "Nustatyti", "Uþdaryti");
  80. case 3:
  81. {
  82. if(response)
  83. {
  84. new Masyvas[169];
  85. if(Poll[Pradeta])
  86. {
  87. Poll[Pradeta] = false;
  88. format(Masyvas,135,"{ffff00}Uþ Y variantà prabalsavo: {ff0000}%d {ffff00}þmoniø(-ës).\n{ffff00}Uþ N variantà prabalsavo: {ff0000}%d {ffff00}þmoniø(-ës).",Poll[yKiekis],Poll[nKiekis]);
  89. ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{ffffff}Rezultatai", Masyvas, " ", "");
  90. for(new i; i < MAX_PLAYERS; i++)
  91. {
  92. if(IsPlayerConnected(i)) TextDrawHideForPlayer(i, Textdraw0[i]);
  93. }
  94. NullVariables();
  95. return 1;
  96. }
  97. else
  98. {
  99. if(!strcmp(Poll[Klausimas],"Nenurodytas",true)) return SendClientMessage(playerid, RED, "[]: {ffffff}Nenurodëte klausimo.");
  100. else if(!strcmp(Poll[yVariantas],"Nenurodyta",true)) return SendClientMessage(playerid, RED, "[]: {ffffff}Nenurodëte Y varianto.");
  101. else if(!strcmp(Poll[nVariantas],"Nenurodyta",true)) return SendClientMessage(playerid, RED, "[]: {ffffff}Nenurodëte N varianto.");
  102. Poll[Pradeta] = true;
  103. SendClientMessageToAll(WHITE, "[ . ]: {ffff00}Pradëta apklausa, praðome kiekvieno prabalsuoti.");
  104. Poll[Organizatorius] = playerid;
  105. for(new i; i < MAX_PLAYERS; i++)
  106. {
  107. if(IsPlayerConnected(i))
  108. {
  109. TextDrawShowForPlayer(playerid, Textdraw0[i]);
  110. format(Masyvas,169," ~y~:: ~w~APKLAUSA ~y~::~n~~n~~r~(?):~w~ %s~n~~n~~p~(Y)~w~ %s~n~~p~(N)~w~ %s~n~~n~Spausk ~y~Y~w~ arba ~y~N",Poll[Klausimas],Poll[yVariantas],Poll[nVariantas]);
  111. TextDrawSetString(Textdraw0[i], Masyvas);
  112. Poll[BalsuSkaicius]++;
  113. }
  114. }
  115. }
  116. }
  117. }
  118. case 4:
  119. {
  120. if(response)
  121. {
  122. NullVariables();
  123. SendClientMessage(playerid, YELLOW, "[ * ]: {ffffff} Parametrai anuliuoti.");
  124. }
  125. }
  126. }
  127. }
  128. case (GUI_DIALOG_ID + 1):
  129. {
  130. if(response)
  131. {
  132. if(isnull(inputtext)) return ShowPlayerDialog(playerid, (GUI_DIALOG_ID + 1), DIALOG_STYLE_INPUT, "{ffffff}Apklausos klausimas", "{ffffff}Áveskite norimà apklausos klausimà.\n{ff0000}[!] - Turi bûti neilgesnis kaip 24 simboliai.", "Nustatyti", "Uþdaryti");
  133. else if(strlen(inputtext) > MAX_QUESTION_SIZE) return SendClientMessage(playerid, RED, "[]: {ffffff}Per ilgas klausimas.");
  134.  
  135. format(Poll[Klausimas], strlen(inputtext) + 1, "%s", inputtext);
  136. SendClientMessage(playerid, YELLOW, "[ * ]: {ffffff} Apklausos klausimas nustatytas.");
  137. }
  138. }
  139. case (GUI_DIALOG_ID + 2):
  140. {
  141. if(response)
  142. {
  143. if(isnull(inputtext)) return ShowPlayerDialog(playerid, (GUI_DIALOG_ID + 2), DIALOG_STYLE_INPUT, "{ffffff}Y variantas", "{ffffff}Áveskite norimà Y variantà.\n{ff0000}[!] - Turi bûti neilgesnis kaip 15 simboliø.", "Nustatyti", "Uþdaryti");
  144. else if(strlen(inputtext) > MAX_VARIANT_SIZE) return SendClientMessage(playerid, RED, "[]: {ffffff}Per ilgas tekstas.");
  145.  
  146. format(Poll[yVariantas], strlen(inputtext) + 1, "%s", inputtext);
  147. SendClientMessage(playerid, YELLOW, "[ * ]: {ffffff} Y variantas nustatytas.");
  148. }
  149. }
  150. case (GUI_DIALOG_ID + 3):
  151. {
  152. if(response)
  153. {
  154. if(isnull(inputtext)) return ShowPlayerDialog(playerid, (GUI_DIALOG_ID + 2), DIALOG_STYLE_INPUT, "{ffffff}N variantas", "{ffffff}Áveskite norimà N variantà.\n{ff0000}[!] - Turi bûti neilgesnis kaip 15 simboliø.", "Nustatyti", "Uþdaryti");
  155. else if(strlen(inputtext) > MAX_VARIANT_SIZE) return SendClientMessage(playerid, RED, "[]: {ffffff}Per ilgas tekstas.");
  156.  
  157. format(Poll[nVariantas], strlen(inputtext) + 1, "%s", inputtext);
  158. SendClientMessage(playerid, YELLOW, "[ * ]: {ffffff} N variantas nustatytas.");
  159. }
  160. }
  161. }
  162. return 1;
  163. }
  164.  
  165. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  166. {
  167. if(Poll[Pradeta])
  168. {
  169. if(!Balsavo[playerid])
  170. {
  171. if(newkeys == KEY_YES)
  172. {
  173. Poll[yKiekis]++;
  174. Balsavo[playerid] = false;
  175. if((Poll[yKiekis] + Poll[nKiekis]) == Poll[BalsuSkaicius])
  176. {
  177. new Masyvas[135];
  178. Poll[Pradeta] = false;
  179. format(Masyvas,135,"{ffff00}Uþ Y variantà prabalsavo: {ff0000}%d {ffff00}þmoniø(-ës).\n{ffff00}Uþ N variantà prabalsavo: {ff0000}%d {ffff00}þmoniø(-ës).",Poll[yKiekis],Poll[nKiekis]);
  180. ShowPlayerDialog(Poll[Organizatorius], 0, DIALOG_STYLE_MSGBOX, "{ffffff}Rezultatai", Masyvas, " ", "");
  181. for(new i; i < MAX_PLAYERS; i++)
  182. {
  183. if(IsPlayerConnected(i)) TextDrawHideForPlayer(i, Textdraw0[i]);
  184. }
  185. NullVariables();
  186. }
  187. }
  188. else if(newkeys == KEY_NO)
  189. {
  190. Poll[nKiekis]++;
  191. Balsavo[playerid] = false;
  192. if((Poll[yKiekis] + Poll[nKiekis]) == Poll[BalsuSkaicius])
  193. {
  194. new Masyvas[135];
  195. Poll[Pradeta] = false;
  196. format(Masyvas,135,"{ffff00}Uþ Y variantà prabalsavo: {ff0000}%d {ffff00}þmoniø(-ës).\n{ffff00}Uþ N variantà prabalsavo: {ff0000}%d {ffff00}þmoniø(-ës).",Poll[yKiekis],Poll[nKiekis]);
  197. ShowPlayerDialog(Poll[Organizatorius], 0, DIALOG_STYLE_MSGBOX, "{ffffff}Rezultatai", Masyvas, " ", "");
  198. for(new i; i < MAX_PLAYERS; i++)
  199. {
  200. if(IsPlayerConnected(i)) TextDrawHideForPlayer(i, Textdraw0[i]);
  201. }
  202. NullVariables();
  203. }
  204. }
  205. }
  206. }
  207. return 1;
  208. }
  209.  
  210. stock NullVariables()
  211. {
  212. format(Poll[yVariantas], 12, "Nenustatyta");
  213. format(Poll[nVariantas], 12, "Nenustatyta");
  214. format(Poll[Klausimas], 13, "Nenustatytas");
  215. Poll[Pradeta] = false;
  216. Poll[yKiekis] = 0;
  217. Poll[nKiekis] = 0;
  218. Poll[BalsuSkaicius] = 0;
  219. Poll[Organizatorius] = INVALID_PLAYER_ID;
  220. }
Advertisement
Add Comment
Please, Sign In to add comment