You can use this:
// By: Joey
prontera,155,155,3 script Timer 66,{
if(questdelay < gettimetick(2)){ // Check timer, if over it will allow you to continue.
mes "You are able to do the quest again. Congratulations.";
close;
}
set questdelay,gettimetick(2)+10800; // Sets timer.
if(questdelay > gettimetick(2)){ // Checks timer, if active it will block you from doing the quest.
set .@delayremaining,(((questdelay-gettimetick(2))+1)/60);
mes "Please wait "+.@delayremaining+" minutes longer.";
close;
}
}
It will work even if the player logs out. (Permanant character variable.)
If you wish to make it temporary, where logging out will remove the timer, add an @ sign infront of each "questdelay" variable.
Here's one that's set to the account:
// By: Joey
prontera,155,155,3 script Timer 66,{
if(#questdelay < gettimetick(2)){ // Check timer, if over it will allow you to continue.
mes "You are able to do the quest again. Congratulations.";
close;
}
set #questdelay,gettimetick(2)+10800; // Sets Timer.
if(#questdelay > gettimetick(2)){ // Checks timer, if active it will block you from doing the quest.
set .@delayremaining,(((#questdelay-gettimetick(2))+1)/60);
mes "Please wait "+.@delayremaining+" minutes longer.";
close;
}
}
If you wish to be able to do the quest after the timer triggers, you'd need to set .takeQuest to 0 at the end of the timer.
Change:
.takeQuest, 1;
To:
set .takeQuest, 0;