Advertisement
Guest User

Enquete

a guest
May 16th, 2015
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.38 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3.  
  4. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  5.  
  6.  
  7. #define Branco 0xFFFFFFAA
  8. #define Cinza 0xC0C0C0AA
  9. #define Amarelo 0xFFFF00FF
  10. #define Dourado 0xDDB66BFF
  11. #define Vermelho 0xFF0000AA
  12. #define VermelhoEscuro 0xfAA3333AA
  13. #define VerdeClaro 0x8BF63EFF
  14. #define AzulClaro 0x33CCFFAA
  15. #define AzulEscuro 0x057ABDAA
  16. #define Roxo 0xB96BF6FF
  17. #define Laranja 0xFF8000FF
  18.  
  19.  
  20. #define VotacaoDialog 487
  21.  
  22.  
  23. new bool:Enquete,bool:EnqueteVotou[MAX_PLAYERS],
  24. TotalEnqueteVotos,EnqueteVotosSim,EnqueteVotosNao,
  25. EnqueteMensagem[256],EnqueteMensagemDialog[256];
  26.  
  27.  
  28. public OnFilterScriptInit()
  29. {
  30. for(new i; i < GetMaxPlayers(); i++) EnqueteVotou[i] = false;
  31. Enquete = false;
  32. EnqueteVotosSim = 0;
  33. EnqueteVotosNao = 0;
  34. return 1;
  35. }
  36.  
  37.  
  38. public OnFilterScriptExit()
  39. {
  40. for(new i; i < GetMaxPlayers(); i++) EnqueteVotou[i] = false;
  41. Enquete = false;
  42. EnqueteVotosSim = 0;
  43. EnqueteVotosNao = 0;
  44. return 1;
  45. }
  46.  
  47.  
  48. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  49. {
  50. if(dialogid == VotacaoDialog) {
  51. if(response) {
  52. EnqueteVotou[playerid] = true;
  53. EnqueteVotosSim++;
  54. new SoundX,SoundY,SoundZ; PlayerPlaySound(playerid, 1057, SoundX, SoundY, SoundZ);
  55. SendClientMessage(playerid, Amarelo, "[INFO]: Seu voto \"sim\" foi registrado, obrigado por participar.");
  56. } else {
  57. EnqueteVotou[playerid] = true;
  58. EnqueteVotosNao++;
  59. new SoundX,SoundY,SoundZ; PlayerPlaySound(playerid, 1057, SoundX, SoundY, SoundZ);
  60. SendClientMessage(playerid, Amarelo, "[INFO]: Seu voto \"não\" foi registrado, obrigado por participar.");
  61. }
  62. return 1;
  63. }
  64. return 0;
  65. }
  66.  
  67.  
  68. dcmd_enquete(playerid,params[]) {
  69. if(CallRemoteFunction("GetPlayerAdminLevel","i",playerid) > 0){
  70. new StringEnquete[128],StringEnquete2[128];
  71. new EnqueteMsg[128],EnqueteMsgIndex; EnqueteMsg = strtok(params,EnqueteMsgIndex);
  72. if(!strlen(params)) return SendClientMessage(playerid, Cinza, "Uso: /Enquete [Enquete/Frase] | Encerrar");
  73. if(!strcmp(params,"encerrar",true)) {
  74. if(Enquete == true) {
  75. TotalEnqueteVotos = EnqueteVotosSim+EnqueteVotosNao;
  76. new AdministradorNick[MAX_PLAYER_NAME]; GetPlayerName(playerid, AdministradorNick, sizeof(AdministradorNick));
  77. SendClientMessageToAll(Branco, "=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=");
  78. format(StringEnquete, sizeof(StringEnquete), "> Administrador(a) %s encerrou a Enquete.", AdministradorNick);
  79. SendClientMessageToAll(Roxo, StringEnquete);
  80. SendClientMessageToAll(Branco, " ");
  81. SendClientMessageToAll(VerdeClaro, EnqueteMensagem);
  82. SendClientMessageToAll(Branco, " ");
  83. format(StringEnquete2, sizeof(StringEnquete2), "Votos: %d | Sim: %d (%d) | Não: %d (%d)", TotalEnqueteVotos, EnqueteVotosSim, EnqueteVotosSim*100/TotalEnqueteVotos, EnqueteVotosNao, EnqueteVotosNao*100/TotalEnqueteVotos);
  84. SendClientMessageToAll(Amarelo, StringEnquete2);
  85. SendClientMessageToAll(Branco, "=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=");
  86. for(new i; i < GetMaxPlayers(); i++){if(IsPlayerConnected(i))
  87. {
  88. new SoundX,SoundY,SoundZ; PlayerPlaySound(i, 1057, SoundX, SoundY, SoundZ);
  89. EnqueteVotou[i] = false;
  90. }}
  91. EnqueteVotosSim = 0;
  92. EnqueteVotosNao = 0;
  93. Enquete = false;
  94. return 1;
  95. } else return SendClientMessage(playerid, Vermelho, "[ERRO]: Não há nenhuma enquete aberta.");
  96. }
  97. else
  98. if(Enquete == false) {
  99. new AdministradorNick[MAX_PLAYER_NAME]; GetPlayerName(playerid, AdministradorNick, sizeof(AdministradorNick));
  100. SendClientMessageToAll(Branco, "=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=");
  101. format(StringEnquete, sizeof(StringEnquete), "> Administrador(a) %s iniciou uma Enquete.", AdministradorNick);
  102. SendClientMessageToAll(Roxo, StringEnquete);
  103. SendClientMessageToAll(Branco, " ");
  104. format(StringEnquete2, sizeof(StringEnquete2), "Enquete: %s", params);
  105. SendClientMessageToAll(VerdeClaro, StringEnquete2);
  106. SendClientMessageToAll(Branco, " ");
  107. SendClientMessageToAll(Amarelo, "Use para votar: /Sim & /Nao.");
  108. SendClientMessageToAll(Branco, "=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=");
  109. for(new i; i < GetMaxPlayers(); i++){if(IsPlayerConnected(i))
  110. {
  111. new SoundX,SoundY,SoundZ; PlayerPlaySound(i, 1056, SoundX, SoundY, SoundZ);
  112. EnqueteVotou[i] = false;
  113. }}
  114. EnqueteVotosSim = 0;
  115. EnqueteVotosNao = 0;
  116. Enquete = true;
  117. format(EnqueteMensagem, sizeof(EnqueteMensagem), "Enquete: %s", params);
  118. format(EnqueteMensagemDialog, sizeof(EnqueteMensagemDialog), "Enquete: %s\n\nSelecione uma opção de voto.", params);
  119. return 1;
  120. } else return SendClientMessage(playerid, Vermelho, "[ERRO]: Há uma enquete em andamento.");
  121. } else return 0;
  122. }
  123.  
  124. dcmd_sim(playerid,params[]) {
  125. #pragma unused params
  126. if(Enquete == true) {
  127. if(EnqueteVotou[playerid] == false) {
  128. EnqueteVotou[playerid] = true;
  129. EnqueteVotosSim++;
  130. new SoundX,SoundY,SoundZ; PlayerPlaySound(playerid, 1057, SoundX, SoundY, SoundZ);
  131. SendClientMessage(playerid, Amarelo, "> Seu voto \"sim\" foi registrado, obrigado por participar.");
  132. } else return SendClientMessage(playerid, Vermelho, "[ERRO]: Você já votou, aguarde o resultado da enquete.");
  133. } else return SendClientMessage(playerid, Vermelho, "[ERRO]: Não há nenhuma enquete aberta.");
  134. return 1;
  135. }
  136.  
  137. dcmd_nao(playerid,params[]) {
  138. #pragma unused params
  139. if(Enquete == true) {
  140. if(EnqueteVotou[playerid] == false) {
  141. EnqueteVotou[playerid] = true;
  142. EnqueteVotosNao++;
  143. new SoundX,SoundY,SoundZ; PlayerPlaySound(playerid, 1057, SoundX, SoundY, SoundZ);
  144. SendClientMessage(playerid, Amarelo, "> Seu voto \"não\" foi registrado, obrigado por participar.");
  145. } else return SendClientMessage(playerid, Vermelho, "Erro: Você já votou, aguarde o resultado da enquete.");
  146. } else return SendClientMessage(playerid, Vermelho, "Erro: Não há nenhuma enquete aberta.");
  147. return 1;
  148. }
  149.  
  150. /*dcmd_votar(playerid,params[]) {
  151. #pragma unused params
  152. if(Enquete == true) {
  153. if(EnqueteVotou[playerid] == false) {
  154. ShowPlayerDialog(playerid, VotacaoDialog, DIALOG_STYLE_MSGBOX, "Enquete - Votação", EnqueteMensagemDialog, "Sim", "Não");
  155. } else return SendClientMessage(playerid, Vermelho, "Erro: Você já votou, aguarde o resultado da enquete.");
  156. } else return SendClientMessage(playerid, Vermelho, "Erro: Não há nenhuma enquete aberta.");
  157. return 1;
  158. }*/
  159.  
  160.  
  161. public OnPlayerCommandText(playerid, cmdtext[])
  162. {
  163. dcmd(enquete,7,cmdtext);
  164. dcmd(sim,3,cmdtext);
  165. dcmd(nao,3,cmdtext);
  166. //dcmd(votar,5,cmdtext);
  167. return 0;
  168. }
  169.  
  170.  
  171. stock strtok(const string[], &index,seperator=' ')
  172. {
  173. new length = strlen(string);
  174. new offset = index;
  175. new result[128];
  176. while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
  177. {
  178. result[index - offset] = string[index];
  179. index++;
  180. }
  181.  
  182. result[index - offset] = EOS;
  183. if ((index < length) && (string[index] == seperator))
  184. {
  185. index++;
  186. }
  187. return result;
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement