In Vincula.mrc add this code to the beginning of the on *:SOCKOPEN:msn.look.*: { event...
sockwrite -tn $sockname IRCVERS IRC8 MSN-OCX!9.02.0310.2401 $crlf AUTH GateKeeper I $+(:GKSSP\0\0\0,$chr(3),\0\0\0,$chr(1),\0\0\0)
look for the
on *:SOCKREAD:msn.look.*: {
line. Then, below it look for this...
if ($4 = :OK) sockwrite -n $sockname $1-3 $+(:,$msn.authkey,$chr(10),USER * * "*" :nick,$chr(10),$iif(%msnpp.subscriberinfo,PROP $ SUBSCRIBERINFO : $+ %msnpp.subscriberinfo))
Edit: the code in some vinculas might look different to the one above.
Replace that entire line with this...
if (:GKSSP* iswm $4) sockwrite -n $sockname $1-3 $mh.calc($4 $+ $sock($sockname).ip) elseif ($4 = :OK) sockwrite -n $sockname $1-3 $+(:,$msn.authkey,$chr(10),USER * * "*" :nick,$chr(10),$iif(%msnpp.subscriberinfo,PROP $ SUBSCRIBERINFO : $+ %msnpp.subscriberinfo))
Edit: Replace the first code with the ones above. This will help you connect even with non-sub accounts to the groups server.
Next, you will need the aliases to be able to use this. Just place these aliases into Vincula...
alias mh.calc {
if (*:GKSSP* iswm $1-) {
var %x, %re = .*:GKSSP\\0.*\\0\\0.*\\0\\0(.*), %y = $regsub($1-,%re,,%x)
tokenize 32 $regml(1)
}
var %m
bset &h1 1 101 100 112 123 125 101 124 119 120 114 100 115 101 125 125 117 $str(54 $+ $chr(32),48) $mh.tobin($1-)
bset &h2 1 15 14 26 17 23 15 22 29 18 24 14 25 15 23 23 31 $str(92 $+ $chr(32),48) $mh.hex2bin($md5(&h1,1))
return $+(:GKSSP\0\0\0,$chr(2),\0\0\0,$chr(3),\0\0\0,$mh.unhex($md5(&h2,1)))
}
alias mh.tobin {
var %l 1, %r
while (%l <= $len($1)) {
if ($mid($1,%l,1) == \) {
inc %l
if ($mid($1,%l,1) == 0) %r = %r 0
elseif ($mid($1,%l,1) == t) %r = %r 9
elseif ($mid($1,%l,1) == n) %r = %r 10
elseif ($mid($1,%l,1) == r) %r = %r 13
elseif ($mid($1,%l,1) == b) %r = %r 32
elseif ($mid($1,%l,1) == c) %r = %r 44
elseif ($mid($1,%l,1) == \) %r = %r 92
}
else %r = %r $asc($mid($1,%l,1))
inc %l
}
return %r
}
alias mh.hex2bin {
var %l 1, %r
while (%l <= $len($1)) {
%r = %r $base($mid($1,%l,2),16,10)
inc %l 2
}
return %r
}
alias mh.unhex {
var %l 1, %r, %x $remove($1-,$chr(32))
while (%l <= $len(%x)) {
if ($mid(%x,%l,2) == 00) %r = %r $+ \0
elseif ($mid(%x,%l,2) == 0A) %r = %r $+ \n
elseif ($mid(%x,%l,2) == 0D) %r = %r $+ \r
elseif ($mid(%x,%l,2) == 2C) %r = %r $+ \c
elseif ($mid(%x,%l,2) == 09) %r = %r $+ \t
elseif ($mid(%x,%l,2) == 5C) %r = %r $+ \\
elseif ($mid(%x,%l,2) == 20) %r = %r $+ \b
else %r = %r $+ $chr($base($mid(%x,%l,2),16,10))
inc %l 2
}
return %r
}
And that is it. Special thanks to eXonyte for making the tutorial that helped me, and The Gate Keeper for letting me use it.
P.S.: Look for the aliases (msn.hackocx, msn.msnocx, and msn.resetocx), and take them out of Vincula. Then, just scan through Vincula, and take out all instances of "msn.resetocx" so that way you won't get any errors.