No need for timers here
And I'd add something before the nick as the variable, you don't want someone called i throw off your global counter variable %i do you smile

You can leave out the green part if you don't like/understand it, it's just some extra checking that you don't say hi when someone starts with 'hilight me plz' or something smile

on 1:JOIN:#: {
set -u60 %chanjoin. $+ $nick 1
}
on 1:TEXT:hi*:#: {
if (%chanjoin. [ $+ [ $nick ] ] && $regex($1-,/^hi\b/is) ) {
.msg # Hiya $nick
unset %chanjoin. $+ $nick
}
}