Advertisement
Guest User

Alarm

a guest
Dec 5th, 2021
529
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.92 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3.  
  4. enum adata
  5. {
  6.     alarmobavjest[20],
  7.     vrijeme[6],
  8.     bool:alarmaktivan
  9. }
  10. new alarminfo[MAX_PLAYERS][adata];
  11.  
  12. new Text:alarmtd[4];
  13.  
  14. new PlayerText:alarmobavjesttd[MAX_PLAYERS];
  15.  
  16. new nuliranje;
  17.  
  18. public OnGameModeInit()
  19. {
  20.     alarmtd[0] = TextDrawCreate(601.000000, 204.966674, "usebox");
  21.     TextDrawLetterSize(alarmtd[0], 0.000000, 7.530862);
  22.     TextDrawTextSize(alarmtd[0], 497.000000, 0.000000);
  23.     TextDrawAlignment(alarmtd[0], 1);
  24.     TextDrawColor(alarmtd[0], 0);
  25.     TextDrawUseBox(alarmtd[0], true);
  26.     TextDrawBoxColor(alarmtd[0], 102);
  27.     TextDrawSetShadow(alarmtd[0], 0);
  28.     TextDrawSetOutline(alarmtd[0], 0);
  29.     TextDrawFont(alarmtd[0], 0);
  30.  
  31.     alarmtd[1] = TextDrawCreate(498.500000, 193.511093, "LD_SPAC:white");
  32.     TextDrawLetterSize(alarmtd[1], 0.000000, 0.000000);
  33.     TextDrawTextSize(alarmtd[1], 101.500000, 15.555565);
  34.     TextDrawAlignment(alarmtd[1], 1);
  35.     TextDrawColor(alarmtd[1], -16776961);
  36.     TextDrawSetShadow(alarmtd[1], 0);
  37.     TextDrawSetOutline(alarmtd[1], 0);
  38.     TextDrawFont(alarmtd[1], 4);
  39.  
  40.     alarmtd[2] = TextDrawCreate(524.000000, 193.511108, "ALARM");
  41.     TextDrawLetterSize(alarmtd[2], 0.504999, 1.587555);
  42.     TextDrawAlignment(alarmtd[2], 1);
  43.     TextDrawColor(alarmtd[2], -65281);
  44.     TextDrawSetShadow(alarmtd[2], 0);
  45.     TextDrawSetOutline(alarmtd[2], 1);
  46.     TextDrawBackgroundColor(alarmtd[2], 51);
  47.     TextDrawFont(alarmtd[2], 2);
  48.     TextDrawSetProportional(alarmtd[2], 1);
  49.  
  50.     alarmtd[3] = TextDrawCreate(499.000000, 194.133346, "ld_grav:timer");
  51.     TextDrawLetterSize(alarmtd[3], 0.449999, 1.600000);
  52.     TextDrawTextSize(alarmtd[3], 23.000000, 13.688889);
  53.     TextDrawAlignment(alarmtd[3], 1);
  54.     TextDrawColor(alarmtd[3], -1);
  55.     TextDrawSetShadow(alarmtd[3], 0);
  56.     TextDrawSetOutline(alarmtd[3], 1);
  57.     TextDrawBackgroundColor(alarmtd[3], 51);
  58.     TextDrawFont(alarmtd[3], 4);
  59.     TextDrawSetProportional(alarmtd[3], 1);
  60.    
  61.     nuliranje = SetTimer("find0",1000,true);
  62.     return 1;
  63. }
  64. public OnPlayerConnect(playerid)
  65. {
  66.     alarmobavjesttd[playerid] = CreatePlayerTextDraw(playerid, 500.500000, 209.688903, "OBAVJEST");
  67.     PlayerTextDrawLetterSize(playerid, alarmobavjesttd[playerid], 0.307999, 1.183111);
  68.     PlayerTextDrawTextSize(playerid, alarmobavjesttd[playerid], 598.500000, 147.466690);
  69.     PlayerTextDrawAlignment(playerid, alarmobavjesttd[playerid], 1);
  70.     PlayerTextDrawColor(playerid, alarmobavjesttd[playerid], -1);
  71.     PlayerTextDrawUseBox(playerid, alarmobavjesttd[playerid], true);
  72.     PlayerTextDrawBoxColor(playerid, alarmobavjesttd[playerid], 0);
  73.     PlayerTextDrawSetShadow(playerid, alarmobavjesttd[playerid], 0);
  74.     PlayerTextDrawSetOutline(playerid, alarmobavjesttd[playerid], 1);
  75.     PlayerTextDrawFont(playerid, alarmobavjesttd[playerid], 2);
  76.     PlayerTextDrawSetProportional(playerid, alarmobavjesttd[playerid], 1);
  77.     return 1;
  78. }
  79. public OnPlayerDisconnect(playerid, reason)
  80. {
  81.     if(alarminfo[playerid][alarmaktivan]) { ResetAlarmVar(playerid); }
  82.     return 1;
  83. }
  84. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  85. {
  86.     if(newkeys & KEY_YES)
  87.     {
  88.         if(GetPVarInt(playerid,"AlarmZvoni") == 1)
  89.         {
  90.             for(new i; i < 4; i++)
  91.             {
  92.                 TextDrawHideForPlayer(playerid,alarmtd[i]);
  93.             }
  94.            
  95.             PlayerTextDrawHide(playerid,alarmobavjesttd[playerid]);
  96.  
  97.             SetPVarInt(playerid,"AlarmZvoni",0);
  98.             return 1;
  99.         }
  100.         if(!alarminfo[playerid][alarmaktivan]) return ShowPlayerDialog(playerid, 9940, DIALOG_STYLE_INPUT, "Alarm", "Unesite vrijeme i obavjest\nVrijeme u formatu 18 45\nPrimjer: 18 45 Uplati lotto", "Unesi", "Odustani");
  101.     }
  102.     return 1;
  103. }
  104. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  105. {
  106.     if(response)
  107.     {
  108.         if(dialogid == 9940) // da ne bi dolazilo do mjesanja dialoga iz moda i dialoga iz inc
  109.         {
  110.             new sat, minuta, obavjest[20], tajm[6], string[80];
  111.  
  112.             if(sscanf(inputtext, "dds[20]", sat,minuta,obavjest)) return ShowPlayerDialog(playerid, 9940, DIALOG_STYLE_INPUT, "Alarm", "Unesite vrijeme i obavjest\nVrijeme u formatu 18 \nPrimjer: 18 45 Uplati lotto", "Unesi", "Odustani");
  113.  
  114.             if(sat < 0 || sat > 23) return ShowPlayerDialog(playerid, 9940, DIALOG_STYLE_INPUT, "Alarm", "Pogresan unos vremenskog formata\nVrijeme u formatu 18 45\nPrimjer: 18 45 Uplati lotto", "Unesi", "Odustani");
  115.  
  116.             if(0 > minuta > 60) return ShowPlayerDialog(playerid, 9940, DIALOG_STYLE_INPUT, "Alarm", "Pogresan unos vremenskog formata\nVrijeme u formatu 18 45\nPrimjer: 18 45 Uplati lotto", "Unesi", "Odustani");
  117.  
  118.             alarminfo[playerid][alarmaktivan] = true;
  119.  
  120.             format(tajm,sizeof(tajm),"%d:%d",sat,minuta);
  121.  
  122.             strmid(alarminfo[playerid][vrijeme],tajm,0,strlen(tajm),6);
  123.  
  124.             strmid(alarminfo[playerid][alarmobavjest],obavjest,0,strlen(obavjest),20);
  125.  
  126.             format(string,sizeof(string),"Uspjesno si podesio alarm. Vrijeme: %s. Obavjest: %s",tajm,obavjest);
  127.  
  128.             SendClientMessage(playerid,-1,string);
  129.             return 1;
  130.         }
  131.     }
  132.     return 1;
  133. }
  134. forward find0();
  135. public find0()
  136. {
  137.     new hour,minute,second;
  138.     gettime(hour,minute,second);
  139.     if(second == 00)
  140.     {
  141.         KillTimer(nuliranje);
  142.         SetTimer("alarmprovjera",60000,true);
  143.     }
  144.     return 1;
  145. }
  146. forward alarmprovjera();
  147. public alarmprovjera()
  148. {
  149.     new hour,minute,second,string[6];
  150.     gettime(hour,minute,second);
  151.     format(string,sizeof(string),"%d:%d",hour,minute);
  152.     for(new i; i < MAX_PLAYERS; i++)
  153.     {
  154.         if(alarminfo[i][alarmaktivan])
  155.         {
  156.             if(!strcmp(string, alarminfo[i][vrijeme]))
  157.             {
  158.                 for(new tid; tid < 4; tid++)
  159.                 {
  160.                     TextDrawShowForPlayer(i,alarmtd[tid]);
  161.                 }
  162.                 PlayerTextDrawSetString(i,alarmobavjesttd[i],alarminfo[i][alarmobavjest]);
  163.                 PlayerTextDrawShow(i,alarmobavjesttd[i]);
  164.                 SetPVarInt(i,"AlarmZvoni",1);
  165.                 SendClientMessage(i,-1,"Da ugasite alarm pritisnite 'Y'");
  166.                 ResetAlarmVar(i);
  167.             }
  168.         }
  169.     }
  170.     return 1;
  171. }
  172. ResetAlarmVar(i)
  173. {
  174.     strmid(alarminfo[i][vrijeme],"00:00",0,strlen("00:00"),6);
  175.     strmid(alarminfo[i][alarmobavjest],"nema obavjesti",0,strlen("nema obavjesti"),20);
  176.     alarminfo[i][alarmaktivan] = false;
  177.     return 1;
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement