I won't write all of the code for you, but there's a trick you can do with set_task. If you look at the
documentation for set_task, you'll notice you can set an ID for the task.
A common practice to execute tasks repeatedly per-player is to do something like..
Code:
#define TASK_LOOP_CREDITS 200 // <-- task it
show_credits(id)// <-- player id
{
set_task("0.5", "loop_credits", TASK_LOOP_CREDITS + id, _, _, "b", _);
}
public loop_credits(id) { //<-- task id
new pId = id - TASK_LOOP_CREDITS; // task id - playerid - task id..or player id
//do stuff
}
Hopefully you can understand the code there.
*Edit
WYSYG editing sucks.