Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <ptr>
- /*
- #define NewTask<%0>(%1) \
- static const __t_d_%0[][32]={%1}; \
- for (new i_%0;i_%0<sizeof(__t_d_%0);i_%0++)SetTimer(__t_d_%0[i_%0],%0,true)
- */
- #define NewTask<%0>(%1) \
- static const __t_d_%0[][32]={%1}; \
- static bool:__t_s_%0=false,__t_i_%0; \
- 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))
- forward __t_clf();
- public __t_clf()
- {
- CallLocalFunction("", "");
- }
- static stock const __t_null[] = "";
- forward TaskManager(const Pointer:dataptr, const datasize, const Pointer:idxptr);
- public TaskManager(const Pointer:dataptr, const datasize, const Pointer:idxptr)
- {
- new idx = GetData(idxptr);
- #emit LOAD.S.pri idx
- #emit SMUL.C 128
- #emit LOAD.S.alt dataptr
- #emit ADD
- #emit PUSH.C __t_null
- #emit PUSH.pri
- #emit PUSH.C 8
- #emit SYSREQ.C CallLocalFunction
- #emit STACK 12
- SetData(idxptr, (idx + 1) % datasize);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement