mIRC Home    About    Download    Register    News    Help

Print Thread
#49816 17/09/03 12:28 AM
Joined: Dec 2002
Posts: 397
A
ATMA Offline OP
Fjord artisan
OP Offline
Fjord artisan
A
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 =/
Code:
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 
}


Need amazing web design for low price: http://www.matrixn3t.net
#49817 17/09/03 03:54 AM
Joined: Jan 2003
Posts: 3,012
Hoopy frood
Offline
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
#49818 17/09/03 09:14 AM
Joined: Dec 2002
Posts: 774
T
Hoopy frood
Offline
Hoopy frood
T
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,...)

Code:
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.

Code:
//if ( khaled isgod ) echo yes | else echo no

Link Copied to Clipboard