Hey morning all
why this script does'nt save the badwords i put on it?
(when i go exit and then i open my Mirc script the words that i put on it they dont exist - dont save - hash problem? )
here is the script =>

On *:start: {
hmake badwords 50
if ( $isfile($+(",$scriptdirbadwords.hsh,")) ) {
hload badwords $+(",$scriptdirbadwords.hsh,")
}
}
on *:exit: {
hsave -ob badwords $+(",$scriptdirbadwords.hsh,")
hfree badwords
}
dialog badwords {
title "Bad Words List"
size -1 -1 170 160
option dbu
button "OK", 10, 62 144 37 12, ok cancel
tab "Words", 30, 0 -2 169 141
edit "Enter Your Bad Word To Add", 1, 4 14 124 10, tab 30
box "Current Bad Words list. Double Click a word to remove it.", 3, 2 26 166 112, tab 30
button "Add Word", 11, 130 14 37 10, tab 30
list 2, 4 34 162 102, tab 30 sort size
tab "Options", 31
check "Warn Before Kicking or Banning", 40, 2 16 134 10, tab 31
check "Kick User", 41, 2 26 38 10, tab 31
check "Kick/Ban User", 42, 2 36 54 10, tab 31
edit "5 Minutes", 43, 116 36 50 10, tab 31
text "Ban Time In Minutes:", 50, 64 38 51 8, tab 31
edit "Please Watch Your language.", 45, 50 70 116 20, tab 31 multi autohs
text "Ban/Kick Reason:", 4, 2 70 43 8, tab 31
text "Channels to Monitor:", 52, 2 96 163 8, tab 31
edit "Use # to indicate all channels. Seperate Multiple channels by spaces. IE: #channel1 #channel2 #channel3", 46, 2 104 166 22, tab 31 multi autovs
text "Warning Message:", 53, 2 48 47 8, tab 31
edit "Please Watch Your Language. Further abuse will cause actions to be taken.", 47, 50 46 116 20, tab 31 multi
}
alias badwords {
if ( !$hget(badwords) ) hmake badwords 100
dialog -m Badwords Badwords
}
on *:dialog:badwords:init:0: {
if ( $hget(badwords) != $null ) {
var %x 1
did -r badwords 2
while ( %x <= $hget(badwords,0).item ) {
did -a badwords 2 $hget(badwords,%x).item
inc %x
}
}
if ( $ini($+(",$scriptdirsettings.ini),Badwords) != $null ) {
if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Warn) == 1 ) did -c badwords 40
if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Kick) == 1 ) did -c badwords 41
if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Ban) == 1 ) did -c badwords 42
if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Bantime) != $null ) did -ra badwords 43 $calc( $readini($+(",$scriptdirsettings.ini,"),Badwords,Bantime) / 60 ) Minutes
if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Reason) != $null ) did -ra badwords 45 $readini($+(",$scriptdirsettings.ini,"),Badwords,Reason)
if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Warnmsg) != $null ) did -ra badwords 47 $readini($+(",$scriptdirsettings.ini,"),Badwords,Warnmsg)
if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Channels) != $null ) did -ra badwords 46 $replace($readini($+(",$scriptdirsettings.ini,"),Badwords,Channels),$chr(44),$chr(32))
}
}
on *:dialog:badwords:dclick:2: {
hdel badwords $did(badwords,2).seltext
did -d badwords 2 $did(badwords,2).sel
}

on *:dialog:badwords:sclick:11: {
if ( $did(badwords,1).text == $null ) {
did -ra badwords 1 Please Enter Text
halt
}
if ( $hfind(badwords,$did(badwords,1).text,1) == $null ) {
if ( $did(badwords,1).edited == $true ) {
hadd badwords $did(badwords,1).text
did -a badwords 2 $did(badwords,1).text
did -j badwords 1
}
else {
did -ra badwords 1 You Must edit this text before clicking add.
did -j badwords 1
}
}
else {
did -ra badwords 1 $+(",$did(badwords,1).text,") Already Exists in the List.
did -j badwords 1
}
}
on *:dialog:badwords:sclick:41: {
if ( $did(badwords,41).state == 1 ) && ( $did(badwords,42).state == 1 ) {
did -u badwords 42
}
}
on *:dialog:badwords:sclick:42: {
if ( $did(badwords,42).state == 1 ) && ( $did(badwords,41).state == 1 ) {
did -u badwords 41
}
}
on *:dialog:badwords:sclick:10: {
.writeini $+(",$scriptdirsettings.ini,") Badwords Warn $did(badwords,40).state
.writeini $+(",$scriptdirsettings.ini,") Badwords Kick $did(badwords,41).state
.writeini $+(",$scriptdirsettings.ini,") Badwords Ban $did(badwords,42).state
var %x 1
if ( $did(badwords,45).text != $null ) {
while ( %x <= $did(badwords,45).lines ) {
set %badwords.reason %badwords.reason $did(badwords,45,%x).text
inc %x
}
.writeini $+(",$scriptdirsettings.ini,") Badwords Reason %badwords.reason
unset %badwords.reason
}
else {
.remini $+(",$scriptdirsettings.ini,") Badwords Reason
}
var %x 1
if ( $did(badwords,47).text != $null ) {
while ( %x <= $did(badwords,47).lines ) {
set %badwords.warnmsg %badwords.warnmsg $did(badwords,47,%x).text
inc %x
}
.writeini $+(",$scriptdirsettings.ini,") Badwords Warnmsg %badwords.warnmsg
unset %badwords.warnmsg
}
else {
.remini $+(",$scriptdirsettings.ini,") Badwords Warnmsg
}
$iif( $did(badwords,43).text != $null , .writeini $+(",$scriptdirsettings.ini,") Badwords Bantime $calc( $int($did(badwords,43).text) * 60 ) , .remini $+(",$scriptdirsettings.ini,") Badwords Bantime )
if ( $did(badwords,46).edited ) && ( $did(badwords,46).text != $null ) {
var %x 1
while ( %x <= $did(badwords,46).lines ) {
set %badwords.channels %badwords.channels $did(badwords,46,%x).text
inc %x
}
.writeini $+(",$scriptdirsettings.ini,") Badwords Channels $replace(%badwords.channels,$chr(32),$chr(44))
unset %badwords.channels
}
else {
.remini $+(",$scriptdirsettings.ini,") Badwords Channels
}
}

;;;;;;;;on text script section;;;;;;;;;;;;;;
on @*:text:*:$($readini($+(",$scriptdirsettings.ini,"), Badwords, Channels)): {
var %x 1
while ( %x <= $numtok($1-,32) ) {
if ( $hfind(badwords,$gettok($1-,%x,32),1,W) != $null ) {
;;warn;;
if ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Warn) == 1 ) {
if ( $hget(badwordswarn,$+($nick,.,$chan)) == $null ) {
hinc -m badwordswarn $+($nick,.,$chan)
.Notice $nick $chan $readini($+(",$scriptdirsettings.ini,"), Badwords, Warnmsg)
}
else {
hinc -m badwordswarn $+($nick,.,$chan)
}
;;warned kick;;
if ( $hget(badwordswarn,$+($nick,.,$chan)) > 1 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Kick) == 1 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Ban) == 0 ) {
.kick $chan $nick $readini($+(",$scriptdirsettings.ini,"), Badwords, Reason )
hdel badwordswarn $+($nick,.,$chan)
}
;;warned kickban;;
elseif ( $hget(badwordswarn,$+($nick,.,$chan)) > 1 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Kick) == 0 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Ban) == 1 ) {
.ban $+(-ku,$readini($+(",$scriptdirsettings.ini,"), Badwords, Bantime)) $chan $nick $readini($+(",$scriptdirsettings.ini,"), Badwords, Reason ) $calc( $readini($+(",$scriptdirsettings.ini,"),Badwords,Bantime) / 60 ) Minutes
hdel badwordswarn $+($nick,.,$chan)
}
}
}
;;no warn;;
if ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Warn) == 0 ) {
;;;no warn kick;;;
if ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Kick) == 1 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Ban) == 0 ) {
.kick $chan $nick $readini($+(",$scriptdirsettings.ini,"), Badwords, Reason )
}
;;;no warn kickban
elseif ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Kick) == 0 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Ban) == 1 ) {
.ban $+(-ku,$readini($+(",$scriptdirsettings.ini,"), Badwords, Bantime) $chan $nick $readini($+(",$scriptdirsettings.ini,"), Badwords, Reason ) Banned: $calc( $readini($+(",$scriptdirsettings.ini,"),Badwords,Bantime) / 60 ) Minutes
}
}
inc %x
}
}