mIRC Home    About    Download    Register    News    Help

Print Thread
Page 1 of 3 1 2 3
#188628 26/10/07 11:20 PM
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
I made a small dialog for private offensive words and I cant get the trigger to work?

Code:
 
dialog spamdetect {
  title "Private Offensive"
  size -1 -1 88 75
  option dbu
  list 1, 2 3 50 59, size
  button "Add", 2, 57 6 24 9,flat
  button "Del", 3, 57 18 24 9,flat
  box "", 5, 53 0 33 60
  button "List", 6, 57 30 24 9,flat
  button "Close", 11, 57 42 24 9,flat,ok,cancel
}
on *:dialog:spamdetect:sclick:2:{
  .write spamdetect.txt $?="Spam Word To Add"
  dialog -x $dname
  dialog -dmn spamdetect spamdetect
}
on *:dialog:spamdetect:sclick:3:{
.write -ds $+ $?="Spam Word To Delete" spamdetect.txt
dialog -x $dname
dialog -dmn spamdetect spamdetect
}
on *:dialog:spamdetect:sclick:6:{
.run spamdetect.txt
}
on *:dialog:spamdetect:init:*:{ 
loadbuf -o $dname 1 $+(",$mircdir/spamdetect.txt,")
}

on *:open:?:*: {
var %Spamword = 1
while (%Spamword <= $lines(spamdetect.txt)) {
if ($+(*,$read(spamdetect.txt,%Spamword),*)  iswm $1-) {
.kick # $nick Private Offensive Language
.mode # +b $nick 2
    }
   inc %Spamword
  }
}
on ^*:notice:*:?: {
  var %Spamword = 1
while (%Spamword <= $lines(spamdetect.txt)) {
if ($+(*,$read(spamdetect.txt,%Spamword),*)  iswm $1-) {
      haltdef
    }
   inc %Spamword
  }
}
alias spamdetect {
inc %i
if (%i == 1) write spamdetect.txt
dialog -dmn spamdetect spamdetect
}



Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
I don't see an issue your looping through your text file ok, it should pull up line by line Unless the entries are like

ajdjd ajjdad then i could see why its not working but if its

ajdjd
ajjdad

then everything should be fine

I can suggest this...

Code:
on *:open:?:*: {
  if ($regex($1-,/(myword|nextword|wow|I|can|choose|alot)/g) == 1) {
    .kick # $nick Private Offensive Language
    .mode # +b $nick 2
  }
}





Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
Not working

Joined: Dec 2002
Posts: 503
B
Fjord artisan
Offline
Fjord artisan
B
Joined: Dec 2002
Posts: 503
'Not Working' is really not very helpful.

Read through this and give us some more details as to what is 'not working'.

Bekar #188642 27/10/07 02:02 AM
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
I did say before that it wont trigger unless its something else dunno, thats why i am asking help from real scripters.

Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
Does it atleast kick users out of channels? if not then its based on your events?


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
If I use on *:TEXT:*:#:{ yes it does kick from the channel but I want to use it for private spamwords so I want to use on *:open:?:*: { and on ^*:notice:*:?: {

Last edited by bcancer; 27/10/07 02:17 AM.
Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
Ok so A) your kicking using # it will not work since your not on the channel...

I mean use .kick #channel because on OPEN:?: << is for privmsg the OP can be on #mirc and msg you and you will not have the ability to kick him..


EDIT: Also try it this method too from earlier.

Code:
on *:open:?:*: {
  if ($regex($1-,/(myword|nextword|wow|I|can|choose|alot)/g) == 1) {
    .kick #mychannel $nick Private Offensive Language
    .mode #my channel +b $nick 2
  }
}



Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
Ok thanks guys.

Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
I cant seem to get ban type 2 to work, any ideal why it wont?

Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
.ban #mychannel $nick 2


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
Thax I must be going blind.

Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
yw


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
I found this swear script thats better then mine so I was wondering if it can be use for private swear spam instead of channel swear spam?
Can we just change:
on @!*:TEXT:*:#: {
to
on @!*:OPEN:?:*: {

Code:
alias swear { dialog -dmr sweard sweard }

dialog sweard {
  title " Swear"
  size -1 -1 342 330
  button "&Close",1, 205 305 60 20, cancel,flat
  list 2, 15 20 140 110, sort size  
  box "Swear Words",3, 5 5 160 153
  button "Add",4,  15 133 60 21,flat
  button "Remove",5, 80 133 74 20, autohs,flat
  box "Exempt Channels:",6, 170 5 161 153
  list 7, 180 20 140 110, sort size  
  button "Add",8, 180 133 60 21,flat
  button "Remove",9, 246 133 73 20, autohs,flat
  check "Kick Message:",10, 13 179 84 20
  box "Other Options",11, 5 156 326 142
  edit "",12, 99 179 225 20, autohs
  button "Ok",13, 270 305 60 20, ok,flat
  check "Exempt The Ops in the Channel", 14, 13 205 175 10 
  check "Exempt The Voices in the Channel", 15, 13 224 185 10
  edit "", 16, 112 238 50 20, autohs
  check "Set Ban Length:", 17, 13 240 99 20
  text "Seconds", 18, 165 240 50 20
  combo 19, 112 265 151 89, edit drop autohs 
  text "Select Ban Time", 21, 13 268 99 30  
}

on *:dialog:sweard:*:*:{
  if ($devent == init) {
    if ($readini($keke,options,ban)) { did -c $dname 17 }    
    if ($readini($keke,options,message)) { did -c $dname 10 }  
    if ($readini($keke,options,ops)) { did -c $dname 14 }
    if ($readini($keke,options,vops)) { did -c $dname 15 }
    did -a $dname 12 $readini($keke,options,message)    
    if ($readini($keke,options,secs)) { did -c $dname 17 }
    did -a $dname 16 $readini($keke,options,secs)
    did -i $dname 19 0 $readini($keke,options,punish)    
    .dlist 2 swear words 
    .dlist 7 exempt chan 
    did -f $dname 13
    did -a sweard 19 Kick
    did -a sweard 19 Kick and Ban 
    did -a sweard 19 None

  }    
  if ($devent == sclick) {
    if ($did(14).state == 1) { op_c }
    if ($did(15).state == 1) { vo_c }
    if ($did == 4) {
      var %t = $$?="Enter swear word $crlf $+ Separate multiple entries with a comma:"
      if ($numtok(%t,32) > 1) { %t = $replace(%t,$chr(32),$chr(160)) }
      .writeini $keke swear words $iif($readini($keke,swear,words),$+($ifmatch,$chr(44),%t),%t)
      dlist 2 swear words    
    }
    if ($did == 5) {
      var %tmp = $did(2).seltext
      if (%tmp) {
        if ($remtok($readini($keke,swear,words),%tmp,44)) { 
          .writeini $keke swear words $ifmatch 
        }
        else .remini $keke swear words
        .dlist 2 swear words      
      }
    }
    if ($did == 8) {
      var %t = $$?="Enter Channel Name $crlf $+ Separate multiple entries with a comma:"
      if ($chr(32) !isin %t) {
        .writeini $keke exempt chan $iif($readini($keke,exempt,chan),$+($ifmatch,$chr(44),%t),%t)
        dlist 7 exempt chan      
      }
    }
    if ($did == 9) {
      var %tmp = $did(7).seltext
      if (%tmp) {
        if ($remtok($readini($keke,exempt,chan),%tmp,44)) { 
          .writeini $keke exempt chan $ifmatch 
        }
        else .remini $keke exempt chan
        .dlist 7 exempt chan      
      }
    }


    if ($did == 13) {
      ; OK button,flat

      .writeini $keke options kick $iif($did(10).state == 1,$true,$false)
      .writeini $keke options message $iif($did(12),$ifmatch,$readini($keke,options,message))
      .writeini $keke options secs $iif($did(16) isnum 1-,$ifmatch,$readini($keke,options,secs))
      .writeini $keke options ops $iif($did(14).state == 1,$true,$false)
      .writeini $keke options vops $iif($did(15).state == 1,$true,$false)
      .writeini $keke options ban $iif($did(17).state == 1,$true,$false)
      .writeini $keke options punish $iif($did(19),$ifmatch,$readini($keke,options,punish))
    }
  }
}

on @!*:TEXT:*:#: {
  %swear.punish = $readini($keke,options,punish))
  if ($ischan) { return }  
  if ($readini($keke,options,ops)) { op_c }
  if ($readini($keke,options,vops)) { vo_c }
  if ($readini($keke,swear,words)) && ($match_text($1-)) {
    if (None isin %swear.punish) { return }    
    if (kick isin %swear.punish) {
      if (ban isin %swear.punish) {
        .raw kick $chan $nick $+(:,$readini($keke,options,message)) $+ $cr $+ mode $chan +b $mask($fulladdress,2)
        .timerswearunban 1 $readini($keke,options,secs) mode $chan -b $mask($fulladdress,2)
      }
      else { .raw kick $chan $nick $+(:,$readini($keke,options,message)) }
    }
  }
}

alias -l keke return $+(",$scriptdirswear.ini,")

alias -l ischan {
  var %i = $numtok($readini($keke,exempt,chan),44),%j
  while (%i > 0) {
    %j = $gettok($readini($keke,exempt,chan),%i,44)
    if (%j isin $chan) || ($2 == %j) { return $true }
    dec %i
  }
  return $false
}

alias -l match_text {
  var %i = $numtok($readini($keke,swear,words),44),%swear
  while (%i > 0) {
    %swear = $+(*,$replace($gettok($readini($keke,swear,words),%i,44),$chr(160),$chr(32)),*) 
    if ($wildtok($1-,%swear,1,44)) {
      return $true
    }
    dec %i
  }
}

alias op_c {
  if ($nick isop $chan) { halt }
}

alias vo_c {
  if ($nick isvo $chan) { halt }
}
alias -l dlist {
  var %a = 1
  did -r $dname $1
  while ($gettok($readini($keke,$2,$3),%a,44)) {
    did -az $dname $1 $ifmatch
    inc %a
  }
}

Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
What a lengthy and intimidating script.

so I won't go deep into it because this basically has unless junk in it but first...

on @!*:TEXT:*:#: {
%swear.punish = $readini($keke,options,punish))
if ($ischan) { return }
if ($readini($keke,options,ops)) { op_c }
if ($readini($keke,options,vops)) { vo_c }
if ($readini($keke,swear,words)) && ($match_text($1-)) {
if (None isin %swear.punish) { return }
if (kick isin %swear.punish) {
if (ban isin %swear.punish) {
.raw kick $chan $nick $+(:,$readini($keke,options,message)) $+ $cr $+ mode $chan +b $mask($fulladdress,2)
.timerswearunban 1 $readini($keke,options,secs) mode $chan -b $mask($fulladdress,2)
}
else { .raw kick $chan $nick $+(:,$readini($keke,options,message)) }
}
}
}

What i've highlighted in red is an alias that's local that is called within the script that detects an exempt list of channel calculations.

>

Code:
alias -l ischan {
  var %i = $numtok($readini($keke,exempt,chan),44),%j
  while (%i > 0) {
    %j = $gettok($readini($keke,exempt,chan),%i,44)
    if (%j isin $chan) || ($2 == %j) { return $true }
    dec %i
  }
  return $false
}


This alias calls an ini file by another alias $keke which is usually because its a quote of $scriptdirpathfile Obviously the script is outdated or just simply wants to continue using the old method of quoting while $qt($cmd) could of simply be done.. as you can also see this script is abusing alias(es).

So if you did change On text to on open you run into factors A) the $ischan alias is completly useless. B) Simply regex matches can cut down the size of the script and the use of certain alias calls.

Either or, im not sure were you pick this script off from, It's good for on text event but in your case its useless without re-writting part of it.


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
Ok tkanks for trying.

Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
Well here you can have this just change the variable on top of the alias swear call with your own channel

Code:
alias swear { dialog -dmr sweard sweard | %s.chan = #mychannel }

dialog sweard {
  title " Swear"
  size -1 -1 342 330
  option pixels
  button "&Close", 1, 205 305 60 20, flat cancel
  list 2, 15 20 309 110, sort size
  box "Swear Words", 3, 5 6 325 153
  button "Add", 4, 109 133 60 21, flat
  button "Remove", 5, 173 133 74 20, flat
  check "Kick Message:", 10, 13 179 84 20
  box "Other Options", 11, 5 156 326 142
  edit "", 12, 99 179 225 20, autohs
  button "Ok", 13, 270 305 60 20, flat ok
  check "Exempt The Ops in the Channel", 14, 13 205 175 10
  check "Exempt The Voices in the Channel", 15, 13 224 185 10
  edit "", 16, 112 238 50 20, autohs
  check "Set Ban Length:", 17, 13 240 99 20
  text "Seconds", 18, 165 240 50 20
  combo 19, 112 265 151 89, edit drop
  text "Select Ban Time", 21, 13 268 99 30
}

on *:dialog:sweard:*:*:{
  if ($devent == init) {
    if ($readini($keke,options,ban)) { did -c $dname 17 }    
    if ($readini($keke,options,message)) { did -c $dname 10 }  
    if ($readini($keke,options,ops)) { did -c $dname 14 }
    if ($readini($keke,options,vops)) { did -c $dname 15 }
    did -a $dname 12 $readini($keke,options,message)    
    if ($readini($keke,options,secs)) { did -c $dname 17 }
    did -a $dname 16 $readini($keke,options,secs)
    did -i $dname 19 0 $readini($keke,options,punish)    
    .dlist 2 swear words 
    .dlist 7 exempt chan 
    did -f $dname 13
    did -a sweard 19 Kick
    did -a sweard 19 Kick and Ban 
    did -a sweard 19 None

  }    
  if ($devent == sclick) {
    if ($did(14).state == 1) { op_c }
    if ($did(15).state == 1) { vo_c }
    if ($did == 4) {
      var %t = $$?="Enter swear word $crlf $+ Separate multiple entries with a comma:"
      if ($numtok(%t,32) > 1) { %t = $replace(%t,$chr(32),$chr(160)) }
      .writeini $keke swear words $iif($readini($keke,swear,words),$+($ifmatch,$chr(44),%t),%t)
      dlist 2 swear words    
    }
    if ($did == 5) {
      var %tmp = $did(2).seltext
      if (%tmp) {
        if ($remtok($readini($keke,swear,words),%tmp,44)) { 
          .writeini $keke swear words $ifmatch 
        }
        else .remini $keke swear words
        .dlist 2 swear words      
      }
    }
    if ($did == 8) {
      var %t = $$?="Enter Channel Name $crlf $+ Separate multiple entries with a comma:"
      if ($chr(32) !isin %t) {
        .writeini $keke exempt chan $iif($readini($keke,exempt,chan),$+($ifmatch,$chr(44),%t),%t)
        dlist 7 exempt chan      
      }
    }
    if ($did == 9) {
      var %tmp = $did(7).seltext
      if (%tmp) {
        if ($remtok($readini($keke,exempt,chan),%tmp,44)) { 
          .writeini $keke exempt chan $ifmatch 
        }
        else .remini $keke exempt chan
        .dlist 7 exempt chan      
      }
    }


    if ($did == 13) {
      ; OK button,flat

      .writeini $keke options kick $iif($did(10).state == 1,$true,$false)
      .writeini $keke options message $iif($did(12),$ifmatch,$readini($keke,options,message))
      .writeini $keke options secs $iif($did(16) isnum 1-,$ifmatch,$readini($keke,options,secs))
      .writeini $keke options ops $iif($did(14).state == 1,$true,$false)
      .writeini $keke options vops $iif($did(15).state == 1,$true,$false)
      .writeini $keke options ban $iif($did(17).state == 1,$true,$false)
      .writeini $keke options punish $iif($did(19),$ifmatch,$readini($keke,options,punish))
    }
  }
}

on *:OPEN:?:*: {
  %swear.punish = $readini($keke,options,punish)) 
  if ($readini($keke,options,ops)) { op_c }
  if ($readini($keke,options,vops)) { vo_c }
  if ($readini($keke,swear,words)) && ($match_text($1-)) {
    if (None isin %swear.punish) { return }    
    if (kick isin %swear.punish) {
      if (ban isin %swear.punish) {
        .raw kick %s.chan $nick $+(:,$readini($keke,options,message)) $+ $cr $+ ban %s.chan $nick $mask($fulladdress,2)
        .ban $+(-u,$readini($keke,options,secs)) %s.chan $nick $mask($fulladdress,2)
      }
      else { .raw kick %s.chan $nick $+(:,$readini($keke,options,message)) }
    }
  }
}

alias -l keke return $+(",$scriptdirswear.ini,")

alias -l match_text {
  var %i = $numtok($readini($keke,swear,words),44),%swear
  while (%i > 0) {
    %swear = $+(*,$replace($gettok($readini($keke,swear,words),%i,44),$chr(160),$chr(32)),*) 
    if ($wildtok($1-,%swear,1,44)) {
      return $true
    }
    dec %i
  }
}

alias op_c {
  if ($nick isop %s.chan) { halt }
}

alias vo_c {
  if ($nick isvo %s.chan) { halt }
}
alias -l dlist {
  var %a = 1
  did -r $dname $1
  while ($gettok($readini($keke,$2,$3),%a,44)) {
    did -az $dname $1 $ifmatch
    inc %a
  }
}


I removed the exempt


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
Cool thx.
I get this error:

* /did: 'sweard' invalid id '7' (line 133, dialog75.mrc)

Joined: Aug 2005
Posts: 1,052
L
Hoopy frood
Offline
Hoopy frood
L
Joined: Aug 2005
Posts: 1,052
Um in this event..

Code:
on *:dialog:sweard:*:*:{
  if ($devent == init) {
    if ($readini($keke,options,ban)) { did -c $dname 17 }    
    if ($readini($keke,options,message)) { did -c $dname 10 }  
    if ($readini($keke,options,ops)) { did -c $dname 14 }
    if ($readini($keke,options,vops)) { did -c $dname 15 }
    did -a $dname 12 $readini($keke,options,message)    
    if ($readini($keke,options,secs)) { did -c $dname 17 }
    did -a $dname 16 $readini($keke,options,secs)
    did -i $dname 19 0 $readini($keke,options,punish)    
    .dlist 2 swear words 
    .dlist 7 exempt chan 


Remove .dlist 7 exempt chan


Code:
if $reality > $fiction { set %sanity Sane }
Else { echo -a *voices* }
Joined: Oct 2007
Posts: 102
B
bcancer Offline OP
Vogon poet
OP Offline
Vogon poet
B
Joined: Oct 2007
Posts: 102
I get a new error:

* [test44] No such channel
* Error: /BAN is an unknown command.

Page 1 of 3 1 2 3

Link Copied to Clipboard