Advertisement
Guest User

SendTimeMessage (c) by Kaliber

a guest
Feb 19th, 2013
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.59 KB | None | 0 0
  1. /* Sa-Mp Include SendTimeMessage
  2.  *
  3.  * (c) by Kaliber, 2013
  4.  *
  5.  */
  6. #include <a_samp>
  7. #if defined k_tm
  8.     #endinput
  9. #endif
  10. #define k_tm
  11. #if !defined MAX_ARGS
  12.     #define MAX_ARGS 10
  13. #endif
  14. #define INVALID_ID MAX_ARGS+1
  15. #if !defined MAX_STRING
  16.     #define MAX_STRING 64
  17. #endif
  18. static TM_String[MAX_PLAYERS][MAX_ARGS][MAX_STRING],TM_AllString[MAX_ARGS][MAX_STRING];
  19. forward bool:TM_Timer(playerid,color,time,x);
  20. forward bool:TM_TimerAll(color,time,x);
  21. forward OnLocalMessageSend(playerid,text[]);
  22. forward OnGlobalMessageSend(text[]);
  23. public bool:TM_TimerAll(color,time,x) {
  24.     if(!TM_AllString[x-1][0]) x = INVALID_ID;
  25.     switch(x) {
  26.         case 0: return false;
  27.         case INVALID_ID: { x = 0; ClearMemoryAll(); return true; }
  28.     }
  29.     if(!CallRemoteFunction("OnGlobalMessageSend","s",TM_AllString[x-1])) {
  30.         print("Cleard !"); x = 0; ClearMemoryAll(); return true;
  31.     }
  32.     SendClientMessageToAll(color,TM_AllString[x-1]);
  33.     x++;
  34.     SetTimerEx("TM_TimerAll",time*1000,0,"dddd",color,time,x);
  35.     return true;
  36. }
  37. public bool:TM_Timer(playerid,color,time,x) {
  38.     if(!IsPlayerConnected(playerid)) x = INVALID_ID;
  39.     if(!TM_String[playerid][x-1][0]) x = INVALID_ID;
  40.     switch(x) {
  41.         case 0: return false;
  42.         case INVALID_ID: { x = 0; ClearMemory(playerid); return true; }
  43.     }
  44.     if(!CallRemoteFunction("OnLocalMessageSend","is",playerid,TM_String[playerid][x-1])) {
  45.         x = 0;
  46.         ClearMemory(playerid);
  47.         return true;
  48.     }
  49.     SendClientMessage(playerid,color,TM_String[playerid][x-1]);
  50.     x++;
  51.     SetTimerEx("TM_Timer",time*1000,0,"dddd",playerid,color,time,x);
  52.     return true;
  53. }
  54. stock bool:SendTimeMessage(...) {
  55.     new s=0,playerid = getarg(0,0),color = getarg(1,0),time=getarg(2,0),buffer[MAX_ARGS+3][MAX_STRING],num=numargs();
  56.     for(new n=3; n<num; n++) {
  57.         for(new i; i<MAX_STRING; i++) if((buffer[n][i] = getarg(n,i)) == '\0') break;
  58.     }
  59.     for(new i; i<MAX_ARGS; i++) {
  60.         s = i+3;
  61.         format(TM_String[playerid][i],MAX_STRING,buffer[s]);
  62.     }
  63.     TM_Timer(playerid,color,time,1);
  64.     return true;
  65. }
  66. stock bool:SendTimeMessageToAll(...) {
  67.     new s=0,color = getarg(0,0),time=getarg(1,0),buffer[MAX_ARGS+2][MAX_STRING],num=numargs();
  68.     for(new n=2; n<num; n++) {
  69.         for(new i; i<MAX_STRING; i++) if((buffer[n][i] = getarg(n,i)) == '\0') break;
  70.     }
  71.     for(new i; i<MAX_ARGS; i++) {
  72.         s = i+2;
  73.         format(TM_AllString[i],MAX_STRING,buffer[s]);
  74.     }
  75.     TM_TimerAll(color,time,1);
  76.     return true;
  77. }
  78. stock ClearMemoryAll() {
  79.     for(new i; i<MAX_ARGS; i++) strdel(TM_AllString[i],0,strlen(TM_AllString[i]));
  80. }
  81. stock ClearMemory(playerid) {
  82.     for(new i; i<MAX_ARGS; i++) strdel(TM_String[playerid][i],0,strlen(TM_String[playerid][i]));
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement