Advertisement
Guest User

Lottery System | By BroZeus

a guest
Mar 19th, 2014
2,102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* ===========================================================================================
  2.                   ************* Lottery System with ticket nunber system* ****************
  3.                   ************************MADE BY - BroZeus****************************
  4.                   Credits--
  5.                   SAMP Team -- For Making SAMP
  6.                   YSI       -- For sscanf2 and foreach
  7.                   Zeex      -- For ZCMD
  8.                   BroZeus   -- For scipting
  9.                  
  10.                   Please Do Not Remove The Credits Or Redistrubate.
  11. ==============================================================================================*/
  12.  
  13. #include <a_samp>
  14. #include <zcmd>
  15. #include <sscanf2>
  16. #include <foreach>
  17.  
  18.  
  19. #define lottoadd 50000  //<------Specifies the amount from which the lottery beguns when /startlotto
  20.                         //or when a player wins and also the amount of money to add to lotto at every lotto
  21. #define ticketprice 500  //<----Price of taking a ticket
  22. #define numrange 150  //<-----For number range to specify the winning nuber should be between 0-numrange
  23. #define lottogap 1   //<-----For the time gap between lottery [the valuse should be in minutes] [NO DECIMAL VALUES]
  24. #define minlottoadd 100  //<----Specifies the minimum amount of money a player can add to lotto
  25.  
  26. #if defined FILTERSCRIPT
  27.  
  28.     public OnFilterScriptInit()
  29.     {
  30.  
  31.     print("******************************************************************************** ");
  32.     print("                                        Lottrey System - Version 1.0 Loaded                                            ");
  33.     print("                                                  Made By- BroZeus                                          ");
  34.     print(" ");                                                                                                                                                                ");
  35.    print("                                       Please Do Not Remove The Credits Or   ");                                              ");
  36.     print("                                                         Redistrubate.                                                                           ");
  37.     print("******************************************************************************** ");
  38.  
  39.     return 1;
  40.     }
  41.     public OnFilterScriptExit()
  42.     {
  43.  
  44.     print("******************************************************************************** ");
  45.     print("                       Lottorey System - Version 1.0 Un-Loaded");                                            ");
  46.    print("                                 Made By- BroZeus");
  47.  
  48. return 1;
  49.    }
  50. #endif
  51.  
  52. new ticketnum[MAX_PLAYERS],takenticket[MAX_PLAYERS]=0;
  53. new lotto_timer;
  54. new bool:IsLottoStarted=false;
  55. new totallotto=lottoadd;
  56.  
  57. forward draw();
  58.  
  59. stock IsNumTaken(n)
  60. {
  61. new m;
  62. foreach(m:Player)
  63. {
  64. if(takenticket[m]==1)
  65. {
  66. if(ticketnum[m]==n)return 1;
  67. }}
  68. return 0;
  69. }
  70.  
  71.  
  72. public draw()
  73. {
  74. new m,win,winname[MAX_PLAYER_NAME],wmes[300],iswin=0;
  75. win=random(numrange);
  76. SendClientMessageToAll(0xCCFF00,"LOTTERY DRAW-----------");
  77. format(wmes,sizeof(wmes),"The winning number is %i",win);
  78. SendClientMessageToAll(0xCCFF00,wmes);
  79. foreach(m:Player)
  80. {
  81. if(takenticket[m]==1)
  82. {
  83. takenticket[m]=0;
  84. if(ticketnum[m]==win)
  85. {
  86. GetPlayerName(m,winname,sizeof(winname));
  87. format(wmes,sizeof(wmes),"%s(%i) has win the lottery and gets a total prize of %i $",winname,m,totallotto);
  88. SendClientMessageToAll(0xCCFF00,wmes);
  89. GivePlayerMoney(m,totallotto);
  90. format(wmes,sizeof(wmes),"Congratulations!! You have won total prize of %i $ from lotto",totallotto);
  91. SendClientMessage(m,0xCCFF00,wmes);
  92. totallotto=lottoadd;
  93. format(wmes,sizeof(wmes),"The lotto money has been reseted to %i $",totallotto);
  94. SendClientMessageToAll(0xCCFF00,wmes);
  95. iswin=1;
  96. }
  97. ticketnum[m]=20000;//resets the no. if ticket to value that cannot be taken in /ticket
  98. }
  99. }
  100. if(iswin==0)
  101. {
  102. totallotto+=lottoadd;
  103. format(wmes,sizeof(wmes),"No one has won the lottery and the total lotto prize now is %i $",totallotto);
  104. SendClientMessageToAll(0xCCFF00,wmes);
  105. }
  106. return 1;}
  107.  
  108.  
  109. CMD:startlotto(playerid,params[])
  110. {
  111. new startername[MAX_PLAYER_NAME],stri[200];
  112. if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1, "{ff0000}You are not authorized to use this command");
  113. if(IsLottoStarted==true)return SendClientMessage(playerid, 0xFF4500AA, "Lottery has already been started");
  114. IsLottoStarted=true;
  115. GetPlayerName(playerid,startername,sizeof(startername));
  116. format(stri,sizeof(stri),"%s has started Lottery",startername);
  117. SendClientMessageToAll(0xCCFF00,stri);
  118. format(stri,sizeof(stri),"It will be drawed after %i minutes.",lottogap);
  119. SendClientMessageToAll(0xCCFF00,stri);
  120. format(stri,sizeof(stri),"Current lottery is of %i $",lottoadd);
  121. SendClientMessageToAll(0xCCFF00,stri);
  122. format(stri,sizeof(stri),"Do /ticket [your number] to take a ticket | The number should be in range of 0-%i",numrange);
  123. SendClientMessageToAll(0xCCFF00,stri);
  124. lotto_timer=SetTimer("draw",1000*60*lottogap,true);
  125. return 1;
  126. }
  127.  
  128.  
  129. CMD:ticket(playerid,params[])
  130. {
  131. new ru[200],ti;
  132. if(IsLottoStarted==false)return SendClientMessage(playerid, 0xFF4500AA, "Lottery has not been started yet.");
  133. if(sscanf(params,"i",ti))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage of command | Correct Usage : /ticket [your number]");
  134. format(ru,sizeof(ru),"The nuber should be in range of 0-%i",numrange);
  135. if(ti > numrange || ti < 0)return SendClientMessage(playerid,0xFF4500AA,ru);
  136. format(ru,sizeof(ru),"You need to have %i $ to buy ticket.",ticketprice);
  137. if(GetPlayerMoney(playerid)<ticketprice)return SendClientMessage(playerid,0xFF4500AA,ru);
  138. if(takenticket[playerid]==1)return SendClientMessage(playerid,0xFF4500AA,"You have already taken a lottrey ticket.");
  139. if(IsNumTaken(ti))return SendClientMessage(playerid,0xFF4500AA,"The number has already been chosen by other user. | Please chose other number");
  140. takenticket[playerid]=1;
  141. GivePlayerMoney(playerid,-ticketprice);
  142. ticketnum[playerid]=ti;
  143. format(ru,sizeof(ru),"You have chosen %i as your lucky number!!",ti);
  144. SendClientMessage(playerid,0xCCFF00,ru);
  145. return 1;
  146. }
  147.  
  148.  
  149. CMD:stoplotto(playerid,params[])
  150. {
  151. if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1, "{ff0000}You are not authorized to use this command.");
  152. if(IsLottoStarted!=true)return SendClientMessage(playerid,0xFF4500AA,"No lottery is currently going on.");
  153. new m;
  154. IsLottoStarted=false;
  155. KillTimer(lotto_timer);
  156. SendClientMessageToAll(0xFF4500AA,"The lottery has been stopped by an admin");
  157. foreach(m:Player)
  158. {
  159. takenticket[m]=0;
  160. ticketnum[m]=20000;//resets the no. if ticket to value that cannot be taken in /ticket
  161. }
  162.  
  163. return 1;
  164. }
  165.  
  166. CMD:lotto(playerid,params[])
  167. {
  168. if(IsLottoStarted!=true)return SendClientMessage(playerid,0xFF4500AA,"No lottery is currently going on");
  169. new rm[200];
  170. format(rm,200,"Current lottery prize is %i $",totallotto);
  171. SendClientMessage(playerid,0xCCFF00,rm);
  172. if(takenticket[playerid]==1)format(rm,200,"Your Current number is %i",ticketnum[playerid]);
  173. else format(rm,200,"Do /ticket [your number] to take a lottery ticket",ticketnum[playerid]);
  174. SendClientMessage(playerid,0xCCFF00,rm);
  175. return 1;
  176. }
  177.  
  178. CMD:addlotto(playerid,params[])
  179. {
  180. new adm,oo[120],playername[MAX_PLAYER_NAME];
  181. if(IsLottoStarted!=true)return SendClientMessage(playerid,0xFF4500AA,"No lottery is currently going on");
  182. if(sscanf(params,"i",adm))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage | Correct Usage : /addlotto [amount of money to add]");
  183. if(GetPlayerMoney(playerid)<adm)return SendClientMessage(playerid,0xFF4500AA,"Not enough money to donate.");
  184. format(oo,sizeof(oo),"You cannot doante less than %i $.",minlottoadd);
  185. if(adm<minlottoadd)return SendClientMessage(playerid,0xFF4500AA,oo);
  186. GivePlayerMoney(playerid,-adm);
  187. GetPlayerName(playerid,playername,sizeof(playername));
  188. format(oo,sizeof(oo),"%s(%i) has doanted %i $ to lottery.",playername,playerid,adm);
  189. SendClientMessageToAll(0xCCFF00,oo);
  190. totallotto+=adm;
  191. format(oo,sizeof(oo),"Now the total lotto prize has become %i $",totallotto);
  192. SendClientMessageToAll(0xCCFF00,oo);
  193. return 1;
  194. }
  195.  
  196. CMD:lottohelp(playerid,params[])
  197. {
  198. new show[300];
  199. if(IsPlayerAdmin(playerid))format(show,sizeof(show),"{9ACD32}/startlotto\t\tStarts a lottery\n/stoplotto\t\tStops a lottery\n/ticket [your number]\tSelect your lucky number for lottery\n/lotto\t\t\tShows the current lotto prize and your lucky number if selected\n/addlotto [amount]\tUse to Doante to lottery");
  200. else format(show,sizeof(show),"{9ACD32}/ticket [your number]\tSelect your lucky number for lottery\n/lotto\t\t\tShows the current lotto prize and your lucky number if selected\n/addlotto [amount]\tUse to Doante to lottery");
  201. ShowPlayerDialog(playerid, 110, DIALOG_STYLE_MSGBOX, "{00BFFF}Available Lottery commands",show, "Cool", "");
  202. return 1;
  203. }
  204.  
  205. /* ===========================================================================================
  206.                   ************* Lottery System with ticket number system****************
  207.                   ************************MADE BY - BroZeus****************************
  208.                   Credits--
  209.                   SAMP Team -- For Making SAMP
  210.                   YSI       -- For sscanf2 and foreach
  211.                   Zeex      -- For ZCMD
  212.                   BroZeus   -- For scipting
  213.  
  214.                   Please Do Not Remove The Credits Or Redistrubate.
  215. ==============================================================================================*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement