Hello, you'll want to use regular expression for that.

First, the best way to do such a badword script in mIRC is to use an hash table with regex and the R switch of $hfind.

So let's take the letter 'e', and suppose you want to account for different variation of it

In regular expression, [abc] matches either a, b, or c, so you would define letter with that in mind. We'll assume lowercase/uppercase are the same.

e = [eéèêEÉÊ] (you would complete these lists.)

Code:
alias regvar_E return [eéèêEÉÊ]
alias regvar_A return [aààA]


Now, here is a quick example of an hash table usage with $hfind

Code:
/hmake table
/hadd table firstbadword test
/hadd table secondbadword duck
/hadd table thirdbadword raccoon

now given the sentence "wow look a raccoon":
$hfind(table,wow look a raccoon,1,R).data would return thirdbadword, inside an on text event you would just check $hfind(table,$1-,1,R).data

Now when you add an item to the table with /hadd, you would use an alias which would use all the defined variation for any character you defined:

Code:
alias addbadword hadd table $calc($hget(table,0).item + 1) $regsubex($1-,/(*UTF8)(.)/g,$iif($isalias(regvar_\1),$($+($,regvar_\1),2),\1)
This alias is usinsg $regsubex which is nothing less than a while loop on each character of the text passed to the alias
"/addbadword testa" would end up doing "/hadd table 1 t[eéèêEÉÊ]st[aààA]" which would account for the variation you want.

Regular expression are powerful because you can tell it match very precise string.

This should help.


#mircscripting @ irc.swiftirc.net == the best mIRC help channel