Advertisement
Guest User

TaskManager.inc

a guest
Jul 26th, 2012
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.00 KB | None | 0 0
  1. #include <a_samp>
  2. #include <ptr>
  3.  
  4. /*
  5. #define NewTask<%0>(%1) \
  6.     static const __t_d_%0[][32]={%1}; \
  7.     for (new i_%0;i_%0<sizeof(__t_d_%0);i_%0++)SetTimer(__t_d_%0[i_%0],%0,true)
  8. */
  9.  
  10. #define NewTask<%0>(%1) \
  11.     static const __t_d_%0[][32]={%1}; \
  12.     static bool:__t_s_%0=false,__t_i_%0; \
  13.     if(!__t_s_%0)__t_s_%0=true,SetTimerEx("TaskManager",(%0)/(sizeof(__t_d_%0)),true,"iii",_:GetPointer(__t_d_%0[0][0]),sizeof(__t_d_%0),_:GetPointer(__t_i_%0))
  14.  
  15. forward __t_clf();
  16. public __t_clf()
  17. {
  18.     CallLocalFunction("", "");
  19. }
  20.  
  21. static stock const __t_null[] = "";
  22.  
  23. forward TaskManager(const Pointer:dataptr, const datasize, const Pointer:idxptr);
  24. public TaskManager(const Pointer:dataptr, const datasize, const Pointer:idxptr)
  25. {
  26.     new idx = GetData(idxptr);
  27.    
  28.     #emit LOAD.S.pri    idx
  29.     #emit SMUL.C        128
  30.     #emit LOAD.S.alt    dataptr
  31.     #emit ADD
  32.     #emit PUSH.C        __t_null
  33.     #emit PUSH.pri
  34.     #emit PUSH.C        8
  35.     #emit SYSREQ.C      CallLocalFunction
  36.     #emit STACK         12
  37.    
  38.     SetData(idxptr, (idx + 1) % datasize);
  39.     return;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement