This has been done before. Use the search feature.
on !1:join:#chan1,#chan2:{
var %x = $hget(welcomed. $+ $chan,0).item
while (%x) {
if ($hget(welcomed. $+ $chan,%x).item iswm $fulladdress) {
return
}
dec %x
}
hadd -mu1800 welcomed. $+ $chan $wildsite
.notice $nick Welcome to $+($chan,!)
}
That will send a message once every 30 minutes, and match their hostmask instead of nickname. Of course, you'll need to change #chan1,#chan2 to your channel, and add it to your remotes (ALT + R).
You can change the "hadd -mu1800 ..." to "hadd -mu86400 ..." for 24 hours, etc. The number is in seconds, so you'll have to calculate it a bit to find the value.