This is my hash saver :), Just right click your background or type: /HashDialog
Result, you get a dialog with the little unchecked buttons, Check them, and you never lose your hash tables again :D! You can also save immeditly or load immeditly via the button :).
menu channel,Status {
Hash Saver: hashdialog
}
on *:exit: if ($hget(files, save) == on) hashsave
on *:start: {
hload files files/files.txt
if ($hget(Files, load) == on) hashload
}
alias hashsave {
if (!$exists(Files)) mkdir Files
if (!$hget(files)) hmake files 5
var %x $hget(0)
while (%x) {
hsave $hget(%x) $+(Files/,$hget(%x),.txt)
hadd Files $hget(%x) Hash Table
dec %x
}
hsave files files.txt
}
alias hashload {
if (!$hget(Files)) hmake files 5
hload files files/files.txt
var %x $hget(Files, 0).item
while (%x) {
if (!$regex($hget(files, %x).item,/load|sav|file/si)) {
if (!$hget($hget(files, %X).item)) hmake $hget(files,%x).item
hload $hget(Files,%x).item $+(Files/,$hget(Files, %x).item,.txt)
}
dec %x
}
}
alias hashdialog dialog -mo hashsaver hashsaver
Dialog HashSaver {
option dbu
size -l -l 120 130
title "Hash Saver - V1.0"
check "Automatically Save Files On Exit", 1, 10 45 90 10,
check "Automatically Load Files On Start", 3, 10 55 90 10,
check "Save files every 60 seconds.", 4, 10 65 90 10,
box "Options", 2, 5 35 100 45
List 5, 1 85 115 45,vshbar
button "Save Files" 6, 5 10 30 10
button "Load Files" 7, 35 10 30 10
}
on *:dialog:Hashsaver:*:*: {
if ($devent == init) {
if ($hget(files, save) == on) did -c $dname 1
if ($hget(files, load) == on) did -c $dname 3
if ($timer(savefiles)) did -c $dname 4
did -ra $dname 5 Hash Tables Saved.
var %x $findfile($mircdir $+ \files,*.txt,0)
while (%x) {
if (!$regex($remove($findfile($mircdir $+ \files,*.txt,%x),$mircdir $+ \files\,.txt),/files|save|load/si)) {
did -a $dname 5 $remove($findfile($mircdir $+ \files,*.txt,%x),$mircdir $+ \files\,.txt)
}
dec %x
}
}
elseif ($devent == sclick) {
if ($did == 1) {
if ($did(1).state) hadd files Save on
else hadd files save off
}
elseif ($did == 3) {
if ($did(3).state) hadd files Load on
else hadd files Load off
}
elseif ($did == 4) {
if ($did(4).state) .timersavefiles 0 60 hashsave
else .timersavefiles off
}
elseif ($did == 6) hashsave
elseif ($did == 7) {
hashload
did -ra $dname 5 Hash Tables Saved.
var %x $findfile($mircdir $+ \files,*.txt,0)
while (%x) {
if (!$regex($remove($findfile($mircdir $+ \files,*.txt,%x),$mircdir $+ \files\,.txt),/files|save|load/si)) {
did -a $dname 5 $remove($findfile($mircdir $+ \files,*.txt,%x),$mircdir $+ \files\,.txt)
}
dec %x
}
}
}
}