Heres a barter script i have, hope this helps you.
Code:
use uo;
use os;
CONST WAIT_TIME := 60;
program Barter(mobile, text)
var last_barter := CInt(GetObjProperty(mobile, "#LastBarter"));
if ( last_barter && (Polcore().systime - last_barter) < WAIT_TIME )
SendSysMessage(mobile, "You must wait at least "+WAIT_TIME+" seconds before bartering again.");
return 0;
else
SetObjProperty(mobile, "#LastBarter", Polcore().systime);
endif
Broadcast( mobile.name + " barters: " + text, 0, 41);
endprogram
So basicly, change the wait time, then add what you want it to do when they have no wait time right befor endprogram(in place of broadcast)