Just pause the plugin or remove the task when it's done.
Efficient.
Here's another function you can use though i'm planning on improving it.
Code:
/* set_timetask (const Hour, const Minute, const Second, const function[], id = 0, const parameter[] = "", len = 0)
* Creates a task to execute function at given time.
* Does not repeat.
*/
stock set_timetask(const Hour, const Minute, const Second, const function[], id = 0, const parameter[] = "", len = 0) {
new curHour, curMinute, curSecond;
time(curHour, curMinute, curSecond);
new curTime = curHour * 3600 + curMinute * 60 + curSecond;
new goalTime = Hour * 3600 + Minute * 60 + Second;
new taskTime = goalTime - curTime;
if ( taskTime < 0 )
taskTime += 86400; // Tomorrow
return set_task(1.0 * taskTime, function, id, parameter, len);
}
__________________