I rather deal with an 'on start' than a '-m' switch.
My timer is a waste of resources?!?! ..
The entire 'saving the hash table on a nick change' is just horrid in my eyes.. look at the big picture.. Assume this script is going to run FOREVER. What happens when that hash table starts to hit ~100,000 items? mIRC will of by now started having lag because its having to waste pointless time to save a hash table the the disk on every little nick change. ... vs a timer that is called once or twice a day...
$network $+ $site == ' foobarKindOne.meh'
$network $+ $wildsite == 'foobar!@KindOne.meh'
I like the $wildsite better.. because i can EASILY see what network its on.. when looking at the tables.
Please start creating hash tables with ~100,000 or even ~500,000 items then run this script while on 100+ channels. I'd love to see your mIRC grind to a halt every second vs a few times out of the day with my timer idea.
Slight issue(s).
Does not check if hash table exists while loading.
No 'on unload' to save hash table/unload.
No 'on exit' to save the hash table.
Not multi-network friendly. (id suggest ' $network $+ $wildsite' , instead of '$site').
hsave .. inside a nick event.. That just screams mIRC lag when it starts to grow.. In my opinion, id gut that..
I'd create a timer to save on occasion (id do a save every 24 hours or 12). (save it into a 'nickChange.hsh.bak')
Make 'on start' check for file size and compare the size of files and load the biggest one $file(foobar.hsh).size .. could use $calc
I am running mIRC 7.19, unaltered copy of your script.
My timestamp format is "HH:nn:ss" "17:56:16"
It seems whenever someone does a VERSION in me, I get "7:56:16 [SomeOne VERSION]" in my channel window. It looks like the script cuts off the "1" in the timestamp.
Is there a way to make the script not display the "7:56:16 [SomeOne VERSION]" not display in the channel?