Advertisement
Guest User

legodude

a guest
Jan 4th, 2011
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.70 KB | None | 0 0
  1. #define FILTERSCRIPT
  2.  
  3. #include <a_samp>
  4.  
  5. #define CALENDAR_X 470.0
  6. #define CALENDAR_Y 360.0
  7. #define TDS 42
  8. // 1 2 3 4 5 6 7 8 9 10 11 12
  9. new daysamonth[12] = {31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31};
  10. new startdayformonth[12] = {6 , 2 , 2 , 5 , 7 , 3 , 5 , 1 , 4 , 6 , 2 , 4 };
  11. new year,month,day,hour,minute,second;
  12. new Text:xtxd[TDS];
  13. new Text:background;
  14. new Text:Date;
  15. new showing[MAX_PLAYERS];
  16. new Text:days;
  17. public OnFilterScriptInit()
  18. {
  19. getdate(year,month,day);
  20. gettime(hour,minute,second);
  21. new str[3];
  22. valstr(str,minute);
  23. new bstr[30];
  24. if(strlen(str)==2)
  25. {
  26. format(bstr,sizeof(bstr),"%s %i - %i:%i",MonthName(month),year,hour,minute);
  27. }
  28. else if(strlen(str)==1)
  29. {
  30. format(bstr,sizeof(bstr),"%s %i - %i:0%i",MonthName(month),year,hour,minute);
  31. }
  32. Date = TextDrawCreate(460.0,340.0,bstr);
  33. background = TextDrawCreate(460.0,340.0,"_");
  34. TextDrawLetterSize(Date, 0.3 ,1);
  35.  
  36. TextDrawUseBox(background, 1);
  37. TextDrawTextSize(background,615.0,200.0);
  38. TextDrawBoxColor(background,0x000000AA);
  39. TextDrawLetterSize(background, 2.0 ,9.5);
  40.  
  41. days = TextDrawCreate(460.0,350.0,"Mon Tue Wed Thu Fri Sat Sun");
  42. TextDrawLetterSize(days, 0.29 ,1);
  43. TextDrawColor(days,0x333333AA);
  44. new count=0;
  45. new vcount=0;
  46. printf("INIT: %i/%i/%i %i:%i.%i",year,month,day,hour,minute,second);
  47. for(new i=0;i<TDS;i++)
  48. {
  49. if(count==7)
  50. {
  51. count=0;
  52. vcount++;
  53. }
  54. xtxd[i]=TextDrawCreate(CALENDAR_X+count*20.0,CALENDAR_Y+vcount*10.0,"_");
  55. TextDrawColor(xtxd[i],0xFFFFFFFF);
  56. TextDrawColor(xtxd[day+startdayformonth[month-1]-2] ,0xFF0000FF);
  57. TextDrawUseBox(xtxd[i], 0);
  58. TextDrawLetterSize(xtxd[i],0.3,1.0);
  59. TextDrawTextSize(xtxd[i],20.0,10.0);
  60. TextDrawFont(xtxd[i], 2);
  61. TextDrawSetShadow(xtxd[i],0);
  62. TextDrawSetOutline(xtxd[i],1);
  63. count++;
  64. }
  65. for(new i=0;i<=daysamonth[month-1]-1;i++)
  66. {
  67. format(str,sizeof(str),"%i",i+1);
  68. TextDrawSetString(xtxd[i+startdayformonth[month-1]-1],str);
  69. TextDrawColor(xtxd[i],0xFF0000FF);
  70. }
  71. SetTimer("Update",30000,true);
  72. Update();
  73. for(new i;i<MAX_PLAYERS;i++)
  74. {
  75. ShowCalendar(i);
  76. }
  77. return 1;
  78. }
  79.  
  80. public OnFilterScriptExit()
  81. {
  82. TextDrawHideForAll(Date);
  83. TextDrawDestroy(Date);
  84. TextDrawHideForAll(background);
  85. TextDrawDestroy(background);
  86. TextDrawHideForAll(days);
  87. TextDrawDestroy(days);
  88. getdate(year,month,day);
  89. gettime(hour,minute,second);
  90. printf("EXIT: %i/%i/%i %i:%i.%i",year,month,day,hour,minute,second);
  91. for(new i=0;i<TDS;i++)
  92. {
  93. TextDrawHideForAll(xtxd[i]);
  94. TextDrawDestroy(xtxd[i]);
  95. }
  96. return 1;
  97. }
  98.  
  99. forward Update();
  100.  
  101. public Update()
  102. {
  103. new str[3];
  104. new oldyear,oldmonth,oldday,oldhour,oldminute;
  105. getdate(year,month,day);
  106. gettime(hour,minute,second);
  107. if(oldhour!=hour||oldminute!=minute)
  108. {
  109. valstr(str,minute);
  110. new bstr[30];
  111. if(strlen(str)==2)
  112. {
  113. format(bstr,sizeof(bstr),"%s %i - %i:%i",MonthName(month),year,hour,minute);
  114. }
  115. else if(strlen(str)==1)
  116. {
  117. format(bstr,sizeof(bstr),"%s %i - %i:0%i",MonthName(month),year,hour,minute);
  118. }
  119. TextDrawSetString(Date,bstr);
  120. }
  121. if(oldyear!=year||oldmonth!=month||oldday!=day)
  122. {
  123. if(oldmonth!=month)
  124. {
  125. for(new i;i<TDS;i++)
  126. {
  127. TextDrawSetString(xtxd[i],"_");
  128. }
  129. valstr(str,minute);
  130. new bstr[30];
  131. if(strlen(str)==2)
  132. {
  133. format(bstr,sizeof(bstr),"%s %i - %i:%i",MonthName(month),year,hour,minute);
  134. }
  135. else if(strlen(str)==1)
  136. {
  137. format(bstr,sizeof(bstr),"%s %i - %i:0%i",MonthName(month),year,hour,minute);
  138. }
  139. TextDrawSetString(Date,bstr);
  140. }
  141. for(new i=0;i<=daysamonth[month-1]-1;i++)
  142. {
  143. format(str,sizeof(str),"%i",i+1);
  144. TextDrawSetString(xtxd[i+startdayformonth[month-1]-1],str);
  145. TextDrawColor(xtxd[i],0xFF0000FF);
  146. }
  147. for(new i=0;i<TDS;i++)
  148. {
  149. TextDrawColor(xtxd[i],0xFFFFFFFF);
  150. TextDrawColor(xtxd[day+startdayformonth[month-1]-2] ,0xFF0000FF);
  151. for(new j=0;j<MAX_PLAYERS;j++)
  152. {
  153. if(showing[j]==1)
  154. {
  155. TextDrawHideForPlayer(j,xtxd[i]);
  156. TextDrawHideForPlayer(j,Date);
  157. TextDrawShowForPlayer(j,xtxd[i]);
  158. TextDrawShowForPlayer(j,Date);
  159. }
  160. }
  161. }
  162. }
  163.  
  164. return 1;
  165. }
  166.  
  167. public OnPlayerSpawn(playerid)
  168. {
  169. ShowCalendar(playerid);
  170. return 1;
  171. }
  172.  
  173. public OnPlayerDeath(playerid,killerid,reason)
  174. {
  175. HideCalendar(playerid);
  176. return 1;
  177. }
  178.  
  179. MonthName(monthid)
  180. {
  181. new mn[10];
  182. switch(monthid)
  183. {
  184. case 1:format(mn,sizeof(mn),"January");
  185. case 2:format(mn,sizeof(mn),"February");
  186. case 3:format(mn,sizeof(mn),"March");
  187. case 4:format(mn,sizeof(mn),"April");
  188. case 5:format(mn,sizeof(mn),"May");
  189. case 6:format(mn,sizeof(mn),"June");
  190. case 7:format(mn,sizeof(mn),"July");
  191. case 8:format(mn,sizeof(mn),"August");
  192. case 9:format(mn,sizeof(mn),"September");
  193. case 10:format(mn,sizeof(mn),"October");
  194. case 11:format(mn,sizeof(mn),"November");
  195. case 12:format(mn,sizeof(mn),"December");
  196. }
  197. return mn;
  198. }
  199.  
  200. stock ShowCalendar(playerid)
  201. {
  202. for(new i=0;i<TDS;i++)
  203. {
  204. TextDrawShowForPlayer(playerid,xtxd[i]);
  205. }
  206. TextDrawShowForPlayer(playerid,background);
  207. TextDrawShowForPlayer(playerid,Date);
  208. TextDrawShowForPlayer(playerid,days);
  209. showing[playerid]=1;
  210. return 1;
  211. }
  212. stock HideCalendar(playerid)
  213. {
  214. for(new i=0;i<TDS;i++)
  215. {
  216. TextDrawHideForPlayer(playerid,xtxd[i]);
  217. }
  218. TextDrawHideForPlayer(playerid,background);
  219. TextDrawHideForPlayer(playerid,Date);
  220. TextDrawHideForPlayer(playerid,days);
  221. showing[playerid]=0;
  222. return 1;
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement