|
Joined: Dec 2002
Posts: 397
Fjord artisan
|
OP
Fjord artisan
Joined: Dec 2002
Posts: 397 |
ok i made this little script but when ever i use it sometimes the $replace with mess around with other stuff like it will keep changing a letter over and over tell it means nothing to what it means =/
alias /right {
set %ctmsg $1-
set %ctmsg $replace(%ctmsg,a,s)
set %ctmsg $replace(%ctmsg,b,n)
set %ctmsg $replace(%ctmsg,c,v)
set %ctmsg $replace(%ctmsg,d,f)
set %ctmsg $replace(%ctmsg,e,r)
set %ctmsg $replace(%ctmsg,f,g)
set %ctmsg $replace(%ctmsg,g,h)
set %ctmsg $replace(%ctmsg,h,j)
set %ctmsg $replace(%ctmsg,i,o)
set %ctmsg $replace(%ctmsg,j,k)
set %ctmsg $replace(%ctmsg,k,l)
set %ctmsg $replace(%ctmsg,l,;)
set %ctmsg $replace(%ctmsg,m,$chr(300))
set %ctmsg $replace(%ctmsg,n,m)
set %ctmsg $replace(%ctmsg,o,p)
set %ctmsg $replace(%ctmsg,p,[)
set %ctmsg $replace(%ctmsg,q,w)
set %ctmsg $replace(%ctmsg,r,t)
set %ctmsg $replace(%ctmsg,s,d)
set %ctmsg $replace(%ctmsg,t,y)
set %ctmsg $replace(%ctmsg,u,i)
set %ctmsg $replace(%ctmsg,v,b)
set %ctmsg $replace(%ctmsg,w,e)
set %ctmsg $replace(%ctmsg,x,c)
set %ctmsg $replace(%ctmsg,y,u)
set %ctmsg $replace(%ctmsg,z,x)
say ## %ctmsg
}
on *:text:##*:*: {
set %ctmsg $1-
set %ctmsg $replace(%ctmsg,a,s)
set %ctmsg $replace(%ctmsg,b,n)
set %ctmsg $replace(%ctmsg,c,v)
set %ctmsg $replace(%ctmsg,d,f)
set %ctmsg $replace(%ctmsg,e,r)
set %ctmsg $replace(%ctmsg,f,g)
set %ctmsg $replace(%ctmsg,g,h)
set %ctmsg $replace(%ctmsg,h,j)
set %ctmsg $replace(%ctmsg,i,o)
set %ctmsg $replace(%ctmsg,j,k)
set %ctmsg $replace(%ctmsg,k,l)
set %ctmsg $replace(%ctmsg,l,;)
set %ctmsg $replace(%ctmsg,m,$chr(300))
set %ctmsg $replace(%ctmsg,n,m)
set %ctmsg $replace(%ctmsg,o,p)
set %ctmsg $replace(%ctmsg,p,[)
set %ctmsg $replace(%ctmsg,q,w)
set %ctmsg $replace(%ctmsg,r,t)
set %ctmsg $replace(%ctmsg,s,d)
set %ctmsg $replace(%ctmsg,t,y)
set %ctmsg $replace(%ctmsg,u,i)
set %ctmsg $replace(%ctmsg,v,b)
set %ctmsg $replace(%ctmsg,w,e)
set %ctmsg $replace(%ctmsg,x,c)
set %ctmsg $replace(%ctmsg,y,u)
set %ctmsg $replace(%ctmsg,z,x)
echo < $+ $nick $+ > $remove($1,##) %ctmsg
}
|
|
|
|
Joined: Jan 2003
Posts: 3,012
Hoopy frood
|
Hoopy frood
Joined: Jan 2003
Posts: 3,012 |
look at it this way... if you had....
%ctmsg = abcdefg
Now you use your replace...
set %ctmsg $replace(%ctmsg,a,s) %ctmsg = sbcdefg
set %ctmsg $replace(%ctmsg,b,n) %ctmsg = sncdefg
set %ctmsg $replace(%ctmsg,c,v) %ctmsg = bnvcdefg
set %ctmsg $replace(%ctmsg,d,f) %ctmsg = bnvfdefg
set %ctmsg $replace(%ctmsg,e,r) %ctmsg = bnvfrfg
set %ctmsg $replace(%ctmsg,f,g) %ctmsg = bnvfrgg
set %ctmsg $replace(%ctmsg,g,h) %ctmsg = bnvfrhh
Now wait a second.. We wanted the f to become a g, but now its an h? See, this is your problem. the replaces happen in order, so a letter is replacing 1, 2, maybe even 6 times over because of the way u have the replaces. I'd go further with this to show you how serious it can get, but frankly im too tired. Hope this helps.
-KingTomato
|
|
|
|
Joined: Dec 2002
Posts: 774
Hoopy frood
|
Hoopy frood
Joined: Dec 2002
Posts: 774 |
set %ctmsg $1- set %ctmsg $replace(%ctmsg,a,s) set %ctmsg $replace(%ctmsg,b,n) can be written as: set %ctmsg $replace($1-,a,s,b,n) Something I made while back when some1 whined how $replace keeps on replacing stuff... $replace(abc,a,b,b,c,c,a) == aaa $replace2(abc,a,b,b,c,c,a) == bca So you have to use: $replace2($1-,a,s,b,n,c,v,...)
replace2 {
if ( $isid ) {
var %temp = $1
var %check
var %i = 1
while ( %i <= $calc($0 / 2) ) {
var %replace = [ [ $+( $ , $calc( %i * 2 ) ) ] ]
var %replace2 = [ [ $+( $ , $calc( %i * 2 + 1 ) ) ] ]
var %j = 1
while ( $pos( $1 , %replace , %j ) ) {
var %pos = $pos( $1 , %replace , %j )
var %replacecheck = $calc( %pos + $replacecheck( %check , %pos) )
var %replacecheck = $iif(%replacecheck < 0,0,%replacecheck)
var %mid1 = $iif(( %pos > 1 ),$mid( %temp , 0 , $calc( %replacecheck - 1 ) ) )
var %mid2 = $mid( %temp , $calc( %replacecheck + $len( %replace ) ) , $mid( %temp , %replacecheck , 0 ) )
var %temp = $+( %mid1 , %replace2 , %mid2 )
var %check = $+( %check , %pos , . , $len( %replace2 ) , . , $len( %replace ) , - )
inc %j
}
inc %i
}
return %temp
}
else echo $color(info) -a REPLACE2 is identifier
}
replacecheck {
var %temp = 0
if (( isid ) && ( $1 )) {
var %pos = $2
var %i = 1
while ( $gettok($1,%i,45) ) {
if ( $gettok($gettok($1,%i,45),1,46) <= %pos ) {
%temp = %temp + $gettok($gettok($1,%i,45),2,46)
%temp = %temp - $gettok($gettok($1,%i,45),3,46)
}
inc %i
}
}
return %temp
edit: bug
Last edited by theRat; 17/09/03 09:17 AM.
//if ( khaled isgod ) echo yes | else echo no
|
|
|
|
|