Advertisement
Guest User

rVote - Voting Script

a guest
Dec 20th, 2010
652
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.74 KB | None | 0 0
  1. /*
  2. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  3. |            rVote - Voting System                    |
  4. |            Made By AlExEy/XePloiT                   |
  5. |          Do What Ever You Want With It!!!           |
  6. | Just, Don't Remove Or Change The Credits, Thanks :) |
  7. *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
  8. */
  9. #include <a_samp>
  10. #include <sscanf2>
  11. #include <foreach>
  12. #include <zcmd>
  13. #define dVote 1200
  14. #define END_TIME 120000 // 2 Minutes
  15. #define MAX_ANSWERS 4
  16. #define White 0xFFFFFFAA
  17. public OnFilterScriptInit()
  18. {
  19.     print("\n*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*");
  20.     print("| rVote System Made By AlExEy/XePloiT |");
  21.     print("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");
  22.     return 1;
  23. }
  24. new Que[128],vStart=0,qTime,Sst[128],Ans[MAX_ANSWERS][128],FrstAns=1;
  25. new i=0,pAns[MAX_ANSWERS];
  26. new IsVoted[MAX_PLAYERS];
  27. public OnPlayerText(playerid, text[])
  28. {
  29.     return 1;
  30. }
  31.  
  32. forward EndTime(playerid);
  33. public EndTime(playerid)
  34. {
  35.     new str[128],gmText[128];
  36.     SendClientMessageToAll(White,Que);
  37.     format(gmText,128,Que);
  38.     for(new j=0;j<i;j++)
  39.     {
  40.         format(str,sizeof(str),"[%d] %s.",pAns[j],Ans[j]);
  41.         format(gmText,sizeof(gmText),"%s~n~~b~[~w~%d] ~g~%s",gmText,pAns[j],Ans[j]);
  42.         SendClientMessageToAll(White,str);
  43.     }
  44.     GameTextForAll(gmText,8000,3);
  45.     format(Sst,sizeof(Sst),"");
  46.     foreach(Player,h)
  47.         IsVoted[h]=0;
  48.     for(new h=0;h<MAX_ANSWERS;h++)
  49.     {
  50.         format(Ans[h],128,"");
  51.         pAns[h]=0;
  52.     }
  53.     vStart=0;
  54.     return KillTimer(qTime);
  55. }
  56. stock EndVote(playerid)
  57. {
  58.     for(new j=0;j<i;j++)
  59.         format(Sst,sizeof(Sst),"%s\n%s\n",Sst,Ans[j]);
  60.     new str[128];
  61.     format(str,sizeof(str),"~g~%s~n~~w~Type '~r~/Vote Ans~w~' To Answer~n~You Got ~b~2 Minutes ~w~to Answer",Que);
  62.     GameTextForAll(str,5000,3);
  63.     SendClientMessageToAll(White,Que);
  64.     SendClientMessageToAll(White,"[ 2 Mins To Answer! ]");
  65.     SendClientMessageToAll(White,"type '/Vote Ans' to Answer.");
  66.     return qTime=SetTimerEx("EndTime",END_TIME,false,"i",playerid);
  67. }
  68. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  69. {
  70.     switch(dialogid)
  71.     {
  72.         case dVote:
  73.         {
  74.             if(!response) {vStart=0; return SendClientMessage(playerid,White,"You Canceled");}
  75.             format(Que,sizeof(Que),"%s",inputtext);
  76.             FrstAns=1;
  77.             return ShowPlayerDialog(playerid,dVote+1,DIALOG_STYLE_INPUT,"Answer","Answer 1:","Add","Cancel");
  78.         }
  79.         case dVote+1:
  80.         {
  81.             if(!response && FrstAns==1) {vStart=0; return SendClientMessage(playerid,White,"Vote Canceled.");}
  82.             if(!response || i==MAX_ANSWERS) return EndVote(playerid);
  83.             new answer[128],eAns[128];
  84.             format(answer,128,"Answer %d:",i+2);
  85.             if(FrstAns==1) format(eAns,128,"Answer 1: [ Can't Be EMPTY! ]");
  86.             else format(eAns,128,"Answer %d: [ Can't Be EMPTY! ]",i+1);
  87.             if(!strlen(inputtext))
  88.                 if(FrstAns==1) return ShowPlayerDialog(playerid,dVote+1,DIALOG_STYLE_INPUT,"Answer was Empty!",eAns,"Add","Cancel");
  89.                 else return ShowPlayerDialog(playerid,dVote+1,DIALOG_STYLE_INPUT,"Answer was Empty!",eAns,"Add","Start Vote");
  90.             format(Ans[i],128,"%s",inputtext);
  91.             i++;
  92.             if((i+1)>MAX_ANSWERS) return EndVote(playerid);
  93.             else FrstAns=0;
  94.             return ShowPlayerDialog(playerid,dVote+1,DIALOG_STYLE_INPUT,"Answer",answer,"Add","Start Vote");
  95.         }
  96.         case dVote+2:
  97.         {
  98.             if(!response) return SendClientMessage(playerid,White,"You Canceled");
  99.             for(new j=0;j<i;j++)
  100.                 if(listitem==j)
  101.                     pAns[j]++;
  102.         }
  103.     }
  104.     return 0;
  105. }
  106. CMD:vote(playerid,params[])
  107. {
  108.     new cmd[24];
  109.     if(sscanf(params,"s[24]",cmd))
  110.     {
  111.         if(IsPlayerAdmin(playerid))
  112.         {
  113.             SendClientMessage(playerid,White,"/Vote Start - To Start a Vote.");
  114.             SendClientMessage(playerid,White,"/Vote End - To End a Vote.");
  115.         }
  116.         return SendClientMessage(playerid,White,"/Vote Ans - To Answer The Vote.");
  117.     }
  118.     if(!strcmp(cmd,"start",true))
  119.     {
  120.         if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,White,"You Are Not and Admin!");
  121.         if(vStart==1) return SendClientMessage(playerid,White,"There is Vote Started");
  122.         vStart=1;
  123.         i=0;
  124.         return ShowPlayerDialog(playerid,dVote,DIALOG_STYLE_INPUT,"Choose the Question","The Question:","Ask","Cancel");
  125.     }
  126.     else if(!strcmp(cmd,"ans",true))
  127.     {
  128.         if(vStart==0) return SendClientMessage(playerid,White,"No Vote.");
  129.         if(IsVoted[playerid]==1) return SendClientMessage(playerid,White,"You Already Voted");
  130.         IsVoted[playerid]=1;
  131.         return ShowPlayerDialog(playerid,dVote+2,DIALOG_STYLE_LIST,Que,Sst,"Pick","Cancel");
  132.     }
  133.     else if(!strcmp(cmd,"end",true))
  134.     {
  135.         if(vStart==0) return SendClientMessage(playerid,White,"There is No Vote.");
  136.         return EndTime(playerid);
  137.     }
  138.     if(IsPlayerAdmin(playerid))
  139.     {
  140.         SendClientMessage(playerid,White,"/Vote Start - To Start a Vote.");
  141.         SendClientMessage(playerid,White,"/Vote End - To End a Vote.");
  142.     }
  143.     return SendClientMessage(playerid,White,"/Vote Ans - To Answer The Vote.");
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement