Guest User

Simple Clock System v2.0 By [BR]Zorono

a guest
Sep 20th, 2016
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 24.47 KB | None | 0 0
  1. //==============================================================================
  2. /*
  3. * This Filterscript was scripted by [BR]Zorono
  4. * Feel Free to Edit/Use it but please keep my credits and don't remove it
  5. * SA-MP Forum Theard: http://forum.sa-mp.com/showthread.php?t=614109
  6. * It Has been Updated on 20 September 2016 to Version 2.0
  7. ********************************************************************************
  8. * New Features:-
  9. 1- Added Events Gift System
  10. 2- Fixed Some Bugs on Events Loading System
  11. 3- Added /events to see Today's Evens
  12. 4- Fixed mini Bug on /cevent
  13. 5- Added feature to check for events when every player join and if there is a event it will auto give him/her a gift (score/money)
  14. 6- Textdraws Design has been updated
  15. 7- When time updates its auto set player's Time
  16. and much more you can find IN-GAME
  17. */
  18. //==============================================================================
  19. #include <a_samp> // Credits to SA-MP Team
  20. #include <izcmd> // Credits to Zeax & Yashas
  21. #include <dini> // Credits to Dracoblue
  22. //==============================================================================
  23. #define Events_Save_Path "Events/save/%d.ini"
  24. #define Events_Config_Path "Events/settings/"
  25. #define ENABLE_EVENTS_GIFT true // Comment 'true' to enable Events Gift System or 'faalse' to Disabble it
  26.  
  27. new Text:Date;
  28. new Text:Time;
  29. new events;
  30. //==============================================================================
  31. #define red 0xFF0000AA
  32. #define blue1 0x00FFFFAA
  33. //==============================================================================
  34. enum EventInfo
  35. {
  36.   EvName[35],
  37.   Day,
  38.   Month,
  39. }
  40.  
  41. // Official Holidays (unchangeable)
  42. new Events[][EventInfo] =
  43. {
  44.  {"New Year's Day", 1, 1},
  45.  {"Martin Luther King Day", 8, 1},
  46.  {"Valentine's Day", 14, 2},
  47.  {"Presidents's Day", 15, 2},
  48.  {"Easter Sunday", 3, 27},
  49.  {"Thomas Jefferson's Birthday", 13, 4},
  50.  {"Mother's Day", 8, 5},
  51.  {"Memorial Day", 30, 5},
  52.  {"Father's Day", 16, 6},
  53.  {"Independence Day", 4, 7},
  54.  {"Labor Day", 5, 9},
  55.  {"Columbos Day", 10, 10},
  56.  {"Halloween", 31, 10},
  57.  {"Election Day", 8, 11},
  58.  {"Veterans Day", 11, 11},
  59.  {"Christmas Eve", 24, 12},
  60.  {"Christmas Day", 25, 12},
  61.  {"Christmas Day Observed", 26, 12},
  62.  {"New Year's Eve", 31, 12}
  63. };
  64.  
  65. enum EventConfigs
  66. {
  67.   maxevents,
  68.   holidays,
  69.   use12hours,
  70. }
  71.  
  72. new EventsData[EventConfigs];
  73.  //==============================================================================
  74. public OnFilterScriptInit()
  75. {
  76.     LoadConfigs();
  77.     LoadEvents();
  78.     SetTimer("SetTime", 1000,1); // After Every Second time will get changed
  79.     SetTimer("SetDate", 86400000,1); // After Every 24 Hour Date will get changed
  80.     print("\n--------------------------------------");
  81.     print(" Clock System v2.0 By [BR]Zorono");
  82.     print("--------------------------------------\n");
  83.  
  84.     Time = TextDrawCreate(605.000000,25.000000,zGetTime());
  85.     TextDrawAlignment(Time,3);
  86.     TextDrawBackgroundColor(Time,0x000000FF);
  87.     TextDrawFont(Time,3);
  88.     TextDrawLetterSize(Time,0.535,2.2);
  89.     TextDrawColor(Time,0xFFFFFFFF);
  90.     TextDrawSetOutline(Time,2);
  91.     TextDrawSetProportional(Time,1);
  92.     TextDrawSetShadow(Time,1);
  93.  
  94.     Date = TextDrawCreate(610.000000,7.000000,zGetDate());
  95.     TextDrawUseBox(Date,0);
  96.     TextDrawFont(Date,3);
  97.     TextDrawLetterSize(Date,0.6,1.5);
  98.     TextDrawSetShadow(Date,1);
  99.     TextDrawSetOutline(Date ,0);
  100.     TextDrawBackgroundColor(Date, 0x000000FF);
  101.     TextDrawBoxColor(Date,0x00000066);
  102.     TextDrawColor(Date,0xFFFFFFFF);
  103.     TextDrawTextSize(Date , -1880.0, -1880.0);
  104.     TextDrawAlignment(Date,3);
  105.     TextDrawSetOutline(Date,1);
  106.     return 1;
  107. }
  108.  
  109. public OnFilterScriptExit()
  110. {
  111.     return 1;
  112. }
  113.  
  114. GivePlayerScore(playerid, score)
  115. {
  116.   SetPlayerScore(playerid, score+GetPlayerScore(playerid));
  117.   return 1;
  118. }
  119. GivePlayerGift(playerid, action, amount)
  120. {
  121.   new string[300];
  122.   if(action == 1) // if 1 = money gift
  123.   {
  124.     GivePlayerMoney(playerid, amount);
  125.     format(string, sizeof(string), "Enjoy your NEW Event Gift: $%d Cash", amount);
  126.     SendClientMessage(playerid,-1, string);
  127.   }
  128.   if(action == 2) // if 2 = score gift
  129.   {
  130.     GivePlayerScore(playerid, amount);
  131.     format(string, sizeof(string), "Enjoy your NEW Event Gift: %d Score", amount);
  132.     SendClientMessage(playerid,-1, string);
  133.   }
  134.   return 1;
  135. }
  136. LoadEvents()
  137. {
  138.    new file[200], sTr[245], done;
  139.    new day, month, year, string[300];
  140.    getdate(year, month, day);
  141.    for(new i = 0; i < EventsData[maxevents]; i++)
  142.    {
  143.    format(file, sizeof(file), Events_Save_Path, i);
  144.    if(!dini_Exists(file))
  145.    {
  146.           if(EventsData[holidays] == 1)
  147.           {
  148.              dini_Create(file);
  149.              dini_IntSet(file, "evtext", Events[i][EvName]);
  150.              dini_IntSet(file, "evmonth", Events[i][Month]);
  151.              dini_IntSet(file, "evday", Events[i][Day]);
  152.              format(sTr, sizeof(sTr), "\n [Events]: %s Successfully Created & Loaded", Events[i][EvName]);
  153.              print(sTr); events++;
  154.           }
  155.    }
  156.    else if(dini_Exists(file))
  157.    {
  158.           Events[i][EvName] = dini_Int(file,"evtext");
  159.           Events[i][Month] = dini_Int(file,"evmonth");
  160.           Events[i][Day] = dini_Int(file,"evday");
  161.           format(sTr, sizeof(sTr), "\n [Events]: %s Successfully Loaded", Events[i][EvName]);
  162.           print(sTr); events++;
  163.    }
  164.    if(month == dini_Int(file, "evmonth") && day == dini_Int(file, "evday"))
  165.    {
  166.           if(Events[i][EvName] != 0 && Events[i][Day] != 0 && Events[i][Month] != 0)
  167.           {
  168.              for(new p = 0; p < GetMaxPlayers(); p++)
  169.              {
  170.                 if(IsPlayerConnected(p))
  171.                 {
  172.                     if(year == 2016 && done != 1)
  173.                     {
  174.                        format(string, sizeof(string), "[BOT]: Happy %s (%02d/%02d)", dini_Int(file, "evtext"), GetDay(day,month), GetMonth(month));
  175.                     }
  176.                     else
  177.                     {
  178.                        format(string, sizeof(string), "[BOT]: Happy %s (%02d/%02d)", dini_Int(file, "evtext"), ReturnDayName(GetDayOfWeek(year, month, day)), GetMonth(month));
  179.                     }
  180.                     SendClientMessage(p,-1, string); done++;
  181.                     format(Events[i][EvName], 129, "%s", dini_Int(file, "evtext"));
  182.                 }
  183.              }
  184.           }
  185.        }
  186.    }
  187.    return 1;
  188. }
  189.  
  190. LoadConfigs()
  191. {
  192.    new file[200];
  193.    format(file, sizeof(file), Events_Config_Path, "config.ini");
  194.    if(dini_Exists(file))
  195.    {
  196.       EventsData[maxevents] = dini_Int(file,"MaxEvents");
  197.       EventsData[holidays] = dini_Int(file,"EnableHolidays");
  198.       EventsData[use12hours] = dini_Int(file,"Use12Hours");
  199.       print("\n [Events]: Configuration Settings Successfully Loaded");
  200.    }
  201.    else if(!dini_Exists(file))
  202.    {
  203.       dini_Create(file);
  204.       if(!dini_Isset(file,"MaxEvents"))
  205.       {
  206.          dini_IntSet(file,"MaxEvents",40);
  207.          format(EventsData[maxevents], 129, "%d",40);
  208.       }
  209.       if(!dini_Isset(file,"EnableHolidays"))
  210.       {
  211.          dini_IntSet(file,"EnableHolidays",0);
  212.          format(EventsData[holidays], 129, "%d",0);
  213.       }
  214.       if(!dini_Isset(file,"Use12Hours"))
  215.       {
  216.          dini_IntSet(file,"Use12Hours",1);
  217.          format(EventsData[use12hours], 129, "%d",0);
  218.       }
  219.       print("\n [Events]: Configuration File Successfully Created");
  220.    }
  221.    return 1;
  222. }
  223.  
  224. forward SetTime();
  225. public SetTime() {
  226. TextDrawSetString(Time, zGetTime());
  227. return 1;
  228. }
  229.  
  230. forward SetDate();
  231. public SetDate() {
  232.  
  233. TextDrawSetString(Date, zGetDate());
  234. return 1;
  235. }
  236.  
  237. zGetDate()
  238. {
  239. new string[300];
  240. new day, month, year; getdate(year, month, day);
  241. if(year == 2016) // Sorry but 'GetDay' function returns 2016's DayOfWeek only! (Thanks To Gammix For his Suggestion)
  242. {
  243.    format(string, sizeof(string), "%s/%s/%d", GetDay(day,month), GetMonth(month), year);
  244. }
  245. else
  246. {
  247.    format(string, sizeof(string), "%s/%s/%d", ReturnDayName(GetDayOfWeek(year, month, day)), GetMonth(month), year);
  248. }
  249. return string;
  250. }
  251.  
  252. zGetTime()
  253. {
  254.     new hour, minute, second, string[400];
  255.     gettime(hour, minute, second);
  256.     if(EventsData[use12hours] == 0)
  257.     {
  258.         format(string, sizeof(string), "%02d:%02d:%02d", hour, minute, second);
  259.     }
  260.     else
  261.     {
  262.         format(string, sizeof(string), "%s", ConvertTime(hour, minute, second));
  263.     }
  264.     for(new i = 0; i < GetMaxPlayers(); i++)
  265.     {
  266.         if(IsPlayerConnected(i))
  267.         {
  268.             SetPlayerTime(i, hour, minute);
  269.         }
  270.     }
  271.     return string;
  272. }
  273. GetDay(dd,mm)
  274. {
  275. new Str[265];
  276. if(mm == 1) {
  277. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Friday");
  278. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Saturday");
  279. if(dd == 3 || dd == 10 || dd == 17 || dd == 24 || dd == 31) format(Str, sizeof(Str),"Sunday");
  280. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Monday");
  281. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Tuesday");
  282. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Wednesday");
  283. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Thursday");
  284. }
  285. if(mm == 2) {
  286. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Sunday");
  287. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Monday");
  288. if(dd == 2 || dd == 9 || dd == 16 || dd == 23) format(Str, sizeof(Str),"Tuesday");
  289. if(dd == 3 || dd == 10 || dd == 17 || dd == 24) format(Str, sizeof(Str),"Wednesday");
  290. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Thursday");
  291. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Friday");
  292. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Saturday");
  293. }
  294. if(mm == 3) {
  295. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Sunday");
  296. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Monday");
  297. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Tuesday");
  298. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Wednesday");
  299. if(dd == 3 || dd == 10 || dd == 17 || dd == 24 || dd == 31) format(Str, sizeof(Str),"Thursday");
  300. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Friday");
  301. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Saturday");
  302. }
  303. if(mm == 4) {
  304. if(dd == 3 || dd == 10 || dd == 17 || dd == 24) format(Str, sizeof(Str),"Sunday");
  305. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Monday");
  306. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Tuesday");
  307. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Wednesday");
  308. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Thursday");
  309. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Friday");
  310. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Saturday");
  311. }
  312. if(mm == 5) {
  313. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Sunday");
  314. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Monday");
  315. if(dd == 3 || dd == 10 || dd == 17 || dd == 24 || dd == 31) format(Str, sizeof(Str),"Tuesday");
  316. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Wednesday");
  317. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Thursday");
  318. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Friday");
  319. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Saturday");
  320. }
  321. if(mm == 6) {
  322. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Sunday");
  323. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Monday");
  324. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Tuesday");
  325. if(dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Wednesday");
  326. if(dd == 1 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Thursday");
  327. if(dd == 2 || dd == 10 || dd == 17 || dd == 24) format(Str, sizeof(Str),"Friday");
  328. if(dd == 3 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Saturday");
  329. }
  330. if(mm == 7) {
  331. if(dd == 3 || dd == 10 || dd == 17 || dd == 24 || dd == 31) format(Str, sizeof(Str),"Sunday");
  332. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Monday");
  333. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Tuesday");
  334. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Wednesday");
  335. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Thursday");
  336. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Friday");
  337. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Saturday");
  338. }
  339. if(mm == 8) {
  340. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Sunday");
  341. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Monday");
  342. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Tuesday");
  343. if(dd == 3 || dd == 10 || dd == 17 || dd == 24 || dd == 31) format(Str, sizeof(Str),"Wednesday");
  344. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Thursday");
  345. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Friday");
  346. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Saturday");
  347. }
  348. if(mm == 9) {
  349. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Sunday");
  350. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Monday");
  351. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Tuesday");
  352. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Wednesday");
  353. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Thursday");
  354. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Friday");
  355. if(dd == 3 || dd == 10 || dd == 17 || dd == 24) format(Str, sizeof(Str),"Saturday");
  356. }
  357. if(mm == 10) {
  358. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Sunday");
  359. if(dd == 3 || dd == 10 || dd == 17 || dd == 24 || dd == 31) format(Str, sizeof(Str),"Monday");
  360. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Tuesday");
  361. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Wednesday");
  362. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Thursday");
  363. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Friday");
  364. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Saturday");
  365. }
  366. if(mm == 11) {
  367. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Sunday");
  368. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Monday");
  369. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Tuesday");
  370. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Wednesday");
  371. if(dd == 3 || dd == 10 || dd == 17 || dd == 24) format(Str, sizeof(Str),"Thursday");
  372. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Friday");
  373. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Saturday");
  374. }
  375. if(mm == 12) {
  376. if(dd == 4 || dd == 11 || dd == 18 || dd == 25) format(Str, sizeof(Str),"Sunday");
  377. if(dd == 5 || dd == 12 || dd == 19 || dd == 26) format(Str, sizeof(Str),"Monday");
  378. if(dd == 6 || dd == 13 || dd == 20 || dd == 27) format(Str, sizeof(Str),"Tuesday");
  379. if(dd == 7 || dd == 14 || dd == 21 || dd == 28) format(Str, sizeof(Str),"Wednesday");
  380. if(dd == 1 || dd == 8 || dd == 15 || dd == 22 || dd == 29) format(Str, sizeof(Str),"Thursday");
  381. if(dd == 2 || dd == 9 || dd == 16 || dd == 23 || dd == 30) format(Str, sizeof(Str),"Friday");
  382. if(dd == 3 || dd == 10 || dd == 17 || dd == 24 || dd == 31) format(Str, sizeof(Str),"Saturday");
  383. }
  384. return Str;
  385. }
  386.  
  387. GetMonth(mm)
  388. {
  389. new Str[265];
  390. if(mm == 1) format(Str, sizeof(Str),"January");
  391. if(mm == 2) format(Str, sizeof(Str),"February");
  392. if(mm == 3) format(Str, sizeof(Str),"March");
  393. if(mm == 4) format(Str, sizeof(Str),"April");
  394. if(mm == 5) format(Str, sizeof(Str),"May");
  395. if(mm == 6) format(Str, sizeof(Str),"June");
  396. if(mm == 7) format(Str, sizeof(Str),"July");
  397. if(mm == 8) format(Str, sizeof(Str),"August");
  398. if(mm == 9) format(Str, sizeof(Str),"September");
  399. if(mm == 10) format(Str, sizeof(Str),"October");
  400. if(mm == 11) format(Str, sizeof(Str),"November");
  401. if(mm == 12) format(Str, sizeof(Str),"December");
  402. return Str;
  403. }
  404.  
  405. GetDayOfWeek(year, month, day)
  406. {
  407.     new a = floatround((14-month) / 12);
  408.     new y = (year-a);
  409.     new m = ((month + (12*a)) - 2);
  410.     new d = ((day + y + (y/4) - (y/100) + (y/400) + ((31*m)/12)) % 7);
  411.     return d;
  412. }
  413.  
  414. ReturnDayName(dayofweek)
  415. {
  416.     new day[15];
  417.     switch (dayofweek)
  418.     {
  419.         case 0: day = "Sunday";
  420.         case 1: day = "Monday";
  421.         case 2: day = "Tuesday";
  422.         case 3: day = "Wednesday";
  423.         case 4: day = "Thursday";
  424.         case 5: day = "Friday";
  425.         case 6: day = "Saturday";
  426.         default: day = "Unknown";
  427.     }
  428.     return day;
  429. }
  430.  
  431. strtok(const string[], &index)
  432. {
  433.     new length = strlen(string);
  434.     while ((index < length) && (string[index] <= ' '))
  435.     {
  436.         index++;
  437.     }
  438.  
  439.     new offset = index;
  440.     new result[20];
  441.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  442.     {
  443.         result[index - offset] = string[index];
  444.         index++;
  445.     }
  446.     result[index - offset] = EOS;
  447.     return result;
  448. }
  449.  
  450. ConvertTime(hh,mm,ss)
  451. {
  452. new hourS,dinfo[60],ntime[128];
  453.  
  454. if(hh == 00) hourS = 12; dinfo = "AM";
  455. if(hh == 01) hourS = 1; dinfo = "AM";
  456. if(hh == 02) hourS = 2; dinfo = "AM";
  457. if(hh == 03) hourS = 3; dinfo = "AM";
  458. if(hh == 04) hourS = 4; dinfo = "AM";
  459. if(hh == 05) hourS = 5; dinfo = "AM";
  460. if(hh == 06) hourS = 6; dinfo = "AM";
  461. if(hh == 07) hourS = 7; dinfo = "AM";
  462. if(hh == 08) hourS = 8; dinfo = "AM";
  463. if(hh == 09) hourS = 9; dinfo = "AM";
  464. if(hh == 10) hourS = 10; dinfo = "AM";
  465. if(hh == 11) hourS = 11; dinfo = "AM";
  466. if(hh == 12) hourS = 12; dinfo = "AM";
  467. if(hh == 13) hourS = 1; dinfo = "PM";
  468. if(hh == 14) hourS = 2; dinfo = "PM";
  469. if(hh == 15) hourS = 3; dinfo = "PM";
  470. if(hh == 16) hourS = 4; dinfo = "PM";
  471. if(hh == 17) hourS = 5; dinfo = "PM";
  472. if(hh == 18) hourS = 6; dinfo = "PM";
  473. if(hh == 19) hourS = 7; dinfo = "PM";
  474. if(hh == 20) hourS = 8; dinfo = "PM";
  475. if(hh == 21) hourS = 9; dinfo = "PM";
  476. if(hh == 22) hourS = 10; dinfo = "PM";
  477. if(hh == 23) hourS = 11; dinfo = "PM";
  478. if(hh == 24) hourS = 12; dinfo = "PM";
  479. format(ntime, sizeof(ntime), "%02d:%02d:%02d %s", hourS, mm, ss, dinfo);
  480. return ntime;
  481. }
  482. public OnPlayerConnect(playerid)
  483. {
  484.    new egift = random(2);
  485.    new emoney = random(2000); // you can ddefine it to what you need
  486.    new escore = random(10); // you can ddefine it to what you need
  487.    new day, month, year, string[300];
  488.    getdate(year, month, day);
  489.    for(new i = 0; i < EventsData[maxevents]; i++)
  490.    {
  491.       if(day == Events[i][Day] && month == Events[i][Month])
  492.       {
  493.          format(string, sizeof(string), "[BOT]: Happy %s (%02d/%02d)", Events[i][EvName], GetDay(day,month), GetMonth(month));
  494.          SendClientMessage(playerid,-1, string);
  495.          #if ENABLE_EVENTS_GIFT == true
  496.          switch(egift)
  497.          {
  498.             case 0: GivePlayerGift(playerid, 1, emoney);
  499.             case 1: GivePlayerGift(playerid, 2, escore);
  500.          }
  501.          #endif
  502.       }
  503.    }
  504.    return 1;
  505. }
  506.  
  507. public OnPlayerDisconnect(playerid, reason)
  508. {
  509.     TextDrawHideForPlayer(playerid, Time), TextDrawHideForPlayer(playerid, Date);
  510.     return 1;
  511. }
  512.  
  513. public OnPlayerSpawn(playerid)
  514. {
  515.     TextDrawShowForPlayer(playerid, Time), TextDrawShowForPlayer(playerid, Date);
  516.     return 1;
  517. }
  518.  
  519. public OnPlayerDeath(playerid, killerid, reason)
  520. {
  521.     return 1;
  522. }
  523.  
  524. public OnVehicleSpawn(vehicleid)
  525. {
  526.     return 1;
  527. }
  528.  
  529. public OnVehicleDeath(vehicleid, killerid)
  530. {
  531.     return 1;
  532. }
  533.  
  534. public OnPlayerText(playerid, text[])
  535. {
  536.     return 1;
  537. }
  538.  
  539.  
  540. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  541. {
  542.     return 1;
  543. }
  544.  
  545. public OnPlayerExitVehicle(playerid, vehicleid)
  546. {
  547.     return 1;
  548. }
  549.  
  550. public OnPlayerStateChange(playerid, newstate, oldstate)
  551. {
  552.     return 1;
  553. }
  554.  
  555. public OnPlayerEnterCheckpoint(playerid)
  556. {
  557.     return 1;
  558. }
  559.  
  560. public OnPlayerLeaveCheckpoint(playerid)
  561. {
  562.     return 1;
  563. }
  564.  
  565. public OnPlayerEnterRaceCheckpoint(playerid)
  566. {
  567.     return 1;
  568. }
  569.  
  570. public OnPlayerLeaveRaceCheckpoint(playerid)
  571. {
  572.     return 1;
  573. }
  574.  
  575. public OnRconCommand(cmd[])
  576. {
  577.     return 1;
  578. }
  579.  
  580. public OnPlayerRequestSpawn(playerid)
  581. {
  582.     return 1;
  583. }
  584.  
  585. public OnObjectMoved(objectid)
  586. {
  587.     return 1;
  588. }
  589.  
  590. public OnPlayerObjectMoved(playerid, objectid)
  591. {
  592.     return 1;
  593. }
  594.  
  595. public OnPlayerPickUpPickup(playerid, pickupid)
  596. {
  597.     return 1;
  598. }
  599.  
  600. public OnVehicleMod(playerid, vehicleid, componentid)
  601. {
  602.     return 1;
  603. }
  604.  
  605. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  606. {
  607.     return 1;
  608. }
  609.  
  610. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  611. {
  612.     return 1;
  613. }
  614.  
  615. public OnPlayerSelectedMenuRow(playerid, row)
  616. {
  617.     return 1;
  618. }
  619.  
  620. public OnPlayerExitedMenu(playerid)
  621. {
  622.     return 1;
  623. }
  624.  
  625. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  626. {
  627.     return 1;
  628. }
  629.  
  630. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  631. {
  632.     return 1;
  633. }
  634.  
  635. public OnRconLoginAttempt(ip[], password[], success)
  636. {
  637.     return 1;
  638. }
  639.  
  640. public OnPlayerUpdate(playerid)
  641. {
  642.     return 1;
  643. }
  644.  
  645. public OnPlayerStreamIn(playerid, forplayerid)
  646. {
  647.     return 1;
  648. }
  649.  
  650. public OnPlayerStreamOut(playerid, forplayerid)
  651. {
  652.     return 1;
  653. }
  654.  
  655. public OnVehicleStreamIn(vehicleid, forplayerid)
  656. {
  657.     return 1;
  658. }
  659.  
  660. public OnVehicleStreamOut(vehicleid, forplayerid)
  661. {
  662.     return 1;
  663. }
  664.  
  665. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  666. {
  667.     return 1;
  668. }
  669.  
  670. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  671. {
  672.     return 1;
  673. }
  674.  
  675. CMD:cevent(playerid, params[])
  676. {
  677.     new Index;
  678.     new tmp[256];  tmp  = strtok(params,Index);
  679.     new tmp2[256]; tmp2 = strtok(params,Index);
  680.     new tmp3[256]; tmp3 = strtok(params,Index);
  681.     if(isnull(tmp) || isnull(tmp2) || isnull(tmp3)) return SendClientMessage(playerid, red, "Usage: /cevent [event text] [event month] [event day]");
  682.     new evetext = strval(tmp),evemonth = strlen(tmp2),eveday = strlen(tmp3);
  683.     new file[200]; for(new i = 0; i < EventsData[maxevents]; i++) {format(file, sizeof(file), Events_Save_Path, i);}
  684.     if(events > EventsData[maxevents]) return SendClientMessage(playerid, red, "ERROR: Max Events Reached!");
  685.     if(dini_Exists(file)) return SendClientMessage(playerid, red, "ERROR: There's already event with this details found on our Database!");
  686.     for(new i = 0; i < EventsData[maxevents]; i++)
  687.     {
  688.         new sTr[200];
  689.         dini_Create(file);
  690.         dini_IntSet(file, "evtext", evetext); format(Events[i][EvName], 129, "%s",evetext);
  691.         dini_IntSet(file, "evmonth", evemonth); format(Events[i][Month], 129, "%d",evemonth);
  692.         dini_IntSet(file, "evday", eveday); format(Events[i][Day], 129, "%d",eveday);
  693.         events++;
  694.         SendClientMessage(playerid,blue1, "[Events]: you have Successfully Created event");
  695.         format(sTr, sizeof(sTr), "Event ID: %d || Event Text: %s", events, evetext);
  696.         SendClientMessage(playerid,blue1, sTr);
  697.         format(sTr, sizeof(sTr), "Event Day: %d || Event Month: %d", eveday, evemonth);
  698.         SendClientMessage(playerid,blue1, sTr);
  699.     }
  700.     return 1;
  701. }
  702. CMD:revent(playerid, params[])
  703. {
  704.     new Index;
  705.     new tmp[256];  tmp  = strtok(params,Index);
  706.     if(isnull(tmp)) return SendClientMessage(playerid, red, "Usage: /revent [event ID]");
  707.     new eveid = strval(tmp);
  708.     new file[200]; for(new i = 0; i < EventsData[maxevents]; i++) {format(file, sizeof(file), Events_Save_Path, eveid);}
  709.     if(!dini_Exists(file)) SendClientMessage(playerid,red, "ERROR: this event isn't exists on our Database");
  710.     dini_Remove(file);
  711.     events--;
  712.     new sTr[200];
  713.     format(sTr, sizeof(sTr), "[Events]: you have Successfully Removed event ID: %d", eveid);
  714.     SendClientMessage(playerid,blue1, sTr);
  715.     return 1;
  716. }
  717. CMD:events(playerid,params[])
  718. {
  719.     new count = 0;
  720.     new string[2900];
  721.     new day, month, year; getdate(year, month, day);
  722.     for(new i = 0; i < EventsData[maxevents]; i++)
  723.     {
  724.         if(day == Events[i][Day] && month == Events[i][Month])
  725.         {
  726.             format(string, sizeof(string), "Event: %s |-| Date %d/%d \n", Events[i][EvName], Events[i][Month], Events[i][Day]);
  727.             count ++;
  728.         }
  729.     }
  730.     if (count == 0)
  731.     {
  732.         ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX,"[BR]Zorono's Clock System" ,"No Events in the list.", "OK", "");
  733.     }
  734.     else
  735.     {
  736.         ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX,"[BR]Zorono's Clock System",string, "OK", "");
  737.     }
  738.     return 1;
  739. }
  740. //==============================================================================
Advertisement
Add Comment
Please, Sign In to add comment