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 __td_%0[][32]={%1}; \
- static bool:__ts_%0=false,__ti_%0; \
- if(!__ts_%0)__ts_%0=true,SetTimerEx("TaskManager",(%0)/(sizeof(__td_%0)),true,"iii",_:GetPointer(__td_%0[0][0]),sizeof(__td_%0),_:GetPointer(__ti_%0))
- forward __t_clf();
- public __t_clf()
- {
- CallLocalFunction("", "");
- }
- static stock __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