--------------- Coding ----------------
Below is the coding on the vincula script that has been editted for the FHN servers. If you find any mistakes please tell me.
;--- Vincula Neo (v4.9)
;--- http://exonyte.dyndns.org
;--- Tnx to Exonyte. Fixed for SIRCxServer (FHN/LOGChat/Napulee)
;--- by SiberianSTAR and further edited by Iniquity
;--- Aliases
if ($group(#debug).status == on) {
alias msn.sockwrite {
sockwrite $1-
if ($msn.ini(debug)) echo @debug sockwrite $1-
}
}
on *:exit:{
sockclose *
}
raw KNOCK:*: {
if ($2 == 913) echo $colour(info) -t $1 * Knock: $msn.ifdecode($nick) ( $+ $address $+ ) (Access Ban): $nick
elseif ($2 == 471) echo $colour(info) -t $1 * Knock: $msn.ifdecode($nick) ( $+ $address $+ ) (Room is full): $nick
elseif ($2 == 473) echo $colour(info) -t $1 * Knock: $msn.ifdecode($nick) ( $+ $address $+ ) (Room is invite only): $nick
elseif ($2 == 474) echo $colour(info) -t $1 * Knock: $msn.ifdecode($nick) ( $+ $address $+ ) (Banned): $nick
elseif ($2 == 475) echo $colour(info) -t $1 * Knock: $msn.ifdecode($nick) ( $+ $address $+ ) (Need room key): $nick
else echo $colour(info) -t $1 * Knock: $msn.ifdecode($nick) ( $+ $address $+ ) (Numeric: $2 $+ ): $nick
haltdef
}
if ($group(#debug).status == on) {
alias msndebug {
window @debug | msn.ini debug $true
}
}
alias msn {
if ($sock(msn.look.main) == $null) {
echo $color(info2) -at * Lookup servers resetting, please wait a moment and try again
msn.lookcon
return
}
if ($msn.ini(selpp) == $null) {
if ($1 == -c) tokenize 32 -cg $2-
elseif ($1 !isin -g -cg -gc) tokenize 32 -g $1-
}
var %x $1, %y $2, %g $false, %c $false, %s, %n
if ($server == $null) %msnc.newcon = $cid
else unset %msnc.newcon
if ($1 == -g) {
if ($len($remove($2,$chr(37) $+ $chr(35))) > 198) { echo $color(info2) -at * Couldn't join the room, the name is too long (must be 200 characters or less) | return }
else {
%n = %msnc.connick
%x = $$2
%y = $3
%g = $true
}
}
elseif ($1 == -c) {
if ($len($remove($2,$chr(37) $+ $chr(35))) > 198) { echo $color(info2) -at * Couldn't join the room, the name is too long (must be 200 characters or less) | return }
else {
%n = $msn.getnick(p)
%x = $$2
%y = $3
%c = $true
if (($calc($msn.ppdata($msn.ini(selpp),updated) + ($msn.ini(autouptime) * 3600)) < $ctime) && ($msn.ini(autoup))) {
%msnc.noask = $true
%msnc.connick = %n
%msnc.doconnect = msn -c $1-
msn.getpp
return
}
}
}
elseif (($1 == -cg) || ($1 == -gc)) {
if ($len($remove($2,$chr(37) $+ $chr(35))) > 198) { echo $color(info2) -at * Couldn't join the room, the name is too long (must be 200 characters or less) | return }
else {
%n = $msn.getnick(g)
%x = $$2
%y = $3
%g = $true
%c = $true
}
}
else {
if ($len($remove($1,$chr(37) $+ $chr(35))) > 198) { echo $color(info2) -at * Couldn't join the room, the name is too long (must be 200 characters or less) | return }
else {
if (($calc($msn.ppdata($msn.ini(selpp),updated) + ($msn.ini(autouptime) * 3600)) < $ctime) && ($msn.ini(autoup))) {
%msnc.noask = $true
%msnc.connick = %n
%msnc.doconnect = msn $1-
msn.getpp
return
}
}
}
if (?#* !iswm %x) %x = $+($chr(37),$chr(35),%x)
if ($hget(msn.999)) hfree msn.999
unset %msn*.999
unset %msnc.*
%msnc.jointime = $ticks
%msnc.looktime = $ticks
sockclose *.999
if ($server == $null) %msnc.newcon = $cid
else unset %msnc.newcon
hmake msn.999 1
if (%g) msn.set 999 guest %g
if (%n) msn.set 999 nick %n
msn.set 999 room $chr(37) $+ $chr(35) $+ $right($right(%x,-2),88)
msn.set 999 fullroom %x
msn.set 999 shortroom $left($chr(37) $+ $chr(35) $+ $right($right(%x,-2),88),60)
if (%y) msn.set 999 pass %y
msn.set 999 fname $msn.ini(font)
msn.set 999 fcolor $msn.ini(fcolor)
msn.set 999 fstyle $msn.ini(fstyle)
msn.set 999 fscriptf $msn.ini(script)
msn.set 999 fscript $gettok($msn.ini(script),$numtok($msn.ini(script),32),32)
if ($msn.ini(frand)) msn.set 999 frand $msn.ini(frand)
if ($msn.ini(decode)) msn.set 999 decode $msn.ini(decode)
if ($msn.ini(encode)) msn.set 999 encode $msn.ini(encode)
if ($msn.ini(docolor)) msn.set 999 docolor $true
if ($msn.ini(hjoin)) msn.set 999 hjoin $msn.ini(hjoin)
if ($msn.ini(hpart)) msn.set 999 hpart $msn.ini(hpart)
if ($msn.ini(hkick)) msn.set 999 hkick $msn.ini(hkick)
unset %msn*.999
sockclose msn*.999
if (%y) %msnp.qkey. [ $+ [ $right($msn.get(999,room),-2) ] ] = %y
if ((!%g) && (!%c)) msn.recent msn $right(%x,-2)
elseif ((%g) && (!%c)) msn.recent msn -g $right(%x,-2)
elseif ((!%g) && (%c)) msn.recent msn -c $right(%x,-2)
elseif ((%g) && (%c)) msn.recent msn -cg $right(%x,-2)
if (!%c) sockwrite -tn msn.look.main FINDS %x
else sockwrite -tn msn.look.comm FINDS %x
}
alias clone {
if ($sock(msn.look.main) == $null) {
echo $color(info2) -at * Lookup servers resetting, please wait a moment and try again
msn.lookcon
return
}
var %x $1, %y $2, %g $false, %c $false, %s, %n
%g = $msn.get($cid,guest)
%x = $msn.get($cid,fullroom)
if ($1 == -c) {
%n = $2
%y = $3
%c = $true
if (($calc($msn.ppdata($msn.ini(selpp),updated) + ($msn.ini(autouptime) * 3600)) < $ctime) && ($msn.ini(autoup)) && (!%g)) {
%msnc.doconnect = clone $1-
msn.getpp
return
}
}
else {
%n = $1
%y = $2
if (($calc($msn.ppdata($msn.ini(selpp),updated) + ($msn.ini(autouptime) * 3600)) < $ctime) && ($msn.ini(autoup)) && (!%g)) {
%msnc.doconnect = clone $1-
msn.getpp
return
}
}
if ($hget(msn.999)) hfree msn.999
unset %msn*.999
unset %msnc.*
%msnc.jointime = $ticks
%msnc.looktime = $ticks
sockclose *.999
hmake msn.999 1
if (%g) msn.set 999 guest %g
if (%n) msn.set 999 nick %n
msn.set 999 room $chr(37) $+ $chr(35) $+ $right($right(%x,-2),88)
msn.set 999 fullroom %x
msn.set 999 shortroom $left($chr(37) $+ $chr(35) $+ $right($right(%x,-2),88),60)
if (%y) msn.set 999 pass %y
msn.set 999 fname $msn.ini(font)
msn.set 999 fcolor $msn.ini(fcolor)
msn.set 999 fstyle $msn.ini(fstyle)
msn.set 999 fscriptf $msn.ini(script)
msn.set 999 fscript $gettok($msn.ini(script),$numtok($msn.ini(script),32),32)
if ($msn.ini(frand)) msn.set 999 frand $msn.ini(frand)
if ($msn.ini(decode)) msn.set 999 decode $msn.ini(decode)
if ($msn.ini(encode)) msn.set 999 encode $msn.ini(encode)
if ($msn.ini(hjoin)) msn.set 999 hjoin $msn.ini(hjoin)
if ($msn.ini(hpart)) msn.set 999 hpart $msn.ini(hpart)
if ($msn.ini(hkick)) msn.set 999 hkick $msn.ini(hkick)
disconnect
%msnc.newcon = $cid
if (%y) %msnp.qkey. [ $+ [ $right($msn.get(999,room),-2) ] ] = %y
if (!%c) sockwrite -tn msn.look.main FINDS %x
else sockwrite -tn msn.look.comm FINDS %x
}
; msn.ipjoin $cid roomip $me $msn.get(%s,fullroom)
alias msn.ipjoin {
if ($4) var %c = $1, %ip = $2, %n = $3, %g, %x = $$4
else var %ip = $1, %n = $2, %g, %x = $$3
if (>* iswm %n) %g = $true
if ($hget(msn.999)) hfree msn.999
unset %msn*.999
unset %msnc.*
%msnc.jointime = $ticks
sockclose *.999
hmake msn.999 1
if (%g) msn.set 999 guest %g
if (%n) msn.set 999 nick %n
msn.set 999 room $chr(37) $+ $chr(35) $+ $right($right(%x,-2),88)
msn.set 999 fullroom %x
msn.set 999 shortroom $left($chr(37) $+ $chr(35) $+ $right($right(%x,-2),88),60)
if (%y) msn.set 999 pass %y
msn.set 999 fname $msn.ini(font)
msn.set 999 fcolor $msn.ini(fcolor)
msn.set 999 fstyle $msn.ini(fstyle)
msn.set 999 fscriptf $msn.ini(script)
msn.set 999 fscript $gettok($msn.ini(script),$numtok($msn.ini(script),32),32)
if ($msn.ini(frand)) msn.set 999 frand $msn.ini(frand)
if ($msn.ini(decode)) msn.set 999 decode $msn.ini(decode)
if ($msn.ini(encode)) msn.set 999 encode $msn.ini(encode)
if ($msn.ini(docolor)) msn.set 999 docolor $true
if ($msn.ini(hjoin)) msn.set 999 hjoin $msn.ini(hjoin)
if ($msn.ini(hpart)) msn.set 999 hpart $msn.ini(hpart)
if ($msn.ini(hkick)) msn.set 999 hkick $msn.ini(hkick)
unset %msn*.999
sockclose msn*.999
if (%c) %msnc.newcon = %c
else unset %msnc.newcon
socklisten msn.mirc.in $rand(10000,30000)
if (%msnc.newcon) scid %msnc.newcon server 127.0.0.1 $sock(msn.mirc.in).port
else server -m 127.0.0.1 $sock(msn.mirc.in).port
sockopen msn.server.999 %ip 6668
var %port = $rand(2000,9000)
while (!$portfree(%port)) inc %port
socklisten msn.client.rmc %port
}
alias join {
if ((!$server) || (($msn.get($cid,fullroom) != $1) && ($sock(msn.server. $+ $cid)))) msn $1-
else join $1-
}
alias joinhex {
if (($1 == -g) || ($1 == -c) || ($1 == -cg) || ($1 == -gc)) msn $1 $msn.unhex($2) $3
else msn $msn.unhex($1) $2
}
alias joins {
if ($msn.decode($1-) == $1-) tokenize 32 $msn.encode($1-)
if ($1 == -k) msn $replace($3-,$chr(32),\
$2
elseif (($1 == -g) || ($1 == -c) || ($1 == -cg) || ($1 == -gc)) msn $1 $replace($2-,$chr(32),\b,$chr(44),\c)
elseif (($1 == -gk) || ($1 == -kg)) msn -c $replace($3-,$chr(32),\b,$chr(44),\c) $2
elseif (($1 == -ck) || ($1 == -kc)) msn -c $replace($3-,$chr(32),\b,$chr(44),\c) $2
elseif ((-??? iswm $1) && (c isin $1) && (g isin $1) && (k isin $1)) msn -cg $replace($3-,$chr(32),\b,$chr(44),\c) $2
else msn $replace($1-,$chr(32),\b,$chr(44),\c)
}
alias joinurl {
if (($1 == -g) || ($1 == -c) || ($1 == -cg) || ($1 == -gc)) {
var %x = $replace($msn.urldecode($2-),$chr(32),\
if (rhx= isin $gettok(%x,2-,63)) joinhex $1 $remove($wildtok($gettok(%x,2-,63),rhx=*,1,38),rhx=) $3
elseif (rm= isin $gettok(%x,2-,63)) msn $1 $remove($wildtok($gettok(%x,2-,63),rm=*,1,38),rm=) $3
else echo $color(info) -ta * Couldn't find a room name in the URL
}
else {
var %x = $replace($msn.urldecode($1-),$chr(32),\
if ($isid) {
if (rhx= isin $gettok(%x,2-,63)) return $remove($wildtok($gettok(%x,2-,63),rhx=*,1,38),rhx=)
elseif (rm= isin $gettok(%x,2-,63)) return $msn.tohex($remove($wildtok($gettok(%x,2-,63),rm=*,1,38),rm=))
}
else {
if (rhx= isin $gettok(%x,2-,63)) joinhex $remove($wildtok($gettok(%x,2-,63),rhx=*,1,38),rhx=) $2
elseif (rm= isin $gettok(%x,2-,63)) msn $remove($wildtok($gettok(%x,2-,63),rm=*,1,38),rm=) $2
else echo $color(info) -ta * Couldn't find a room name in the URL
}
}
}
alias hop {
if ($window($msn.get($cid,room))) sockwrite -tn msn.server. $+ $cid PART $msn.get($cid,fullroom)
if ($msn.ini(usepass)) var %p = $msn.roompass($msn.get($cid,room))
sockwrite -tn msn.server. $+ $cid JOIN $msn.get($cid,fullroom) %p
}
alias find {
if (!$1) dialog -m msn.faf msn.faf
else {
%msnc.findnick = $1-
sockwrite -tn msn.look.main FINDU $1-
}
}
alias msndecode {
if ($1 == on) msn.set $cid decode $true
else msn.unset $cid decode
echo $color(info2) -ta * MSN Decode is now $iif($msn.get($cid,decode),on,off)
}
alias msnencode {
if ($1 == on) msn.set $cid encode $true
else msn.unset $cid encode
echo $color(info2) -ta * MSN Encode is now $iif($msn.get($cid,encode),on,off)
}
alias msncolor {
if ($1 == on) msn.set $cid docolor $true
else msn.unset $cid docolor
echo $color(info2) -ta * MSN Colorizing is now $iif($msn.get($cid,docolor),on,off)
}
alias msncolour msncolor $1-
alias msn.recent {
if ($isid) {
if ($2 == 1) {
if (-g == $gettok(%msnr. [ $+ [ $1 ] ] ,2,32)) {
if ($len($gettok(%msnr. [ $+ [ $1 ] ] ,3,32)) > 60) return $chr(160) $+ ... $+ $right($gettok(%msnr. [ $+ [ $1 ] ] ,3,32),60) (guest)
else return $$gettok(%msnr. [ $+ [ $1 ] ] ,3,32) (guest)
}
elseif (-c == $gettok(%msnr. [ $+ [ $1 ] ] ,2,32)) {
if ($len($gettok(%msnr. [ $+ [ $1 ] ] ,3,32)) > 60) return $chr(160) $+ ... $+ $right($gettok(%msnr. [ $+ [ $1 ] ] ,3,32),60) (groups)
else return $$gettok(%msnr. [ $+ [ $1 ] ] ,3,32) (groups)
}
elseif ((-cg == $gettok(%msnr. [ $+ [ $1 ] ] ,2,32)) || (-gc == $gettok(%msnr. [ $+ [ $1 ] ] ,2,32))) {
if ($len($gettok(%msnr. [ $+ [ $1 ] ] ,3,32)) > 60) return $chr(160) $+ ... $+ $right($gettok(%msnr. [ $+ [ $1 ] ] ,3,32),60) (groups, guest)
else return $$gettok(%msnr. [ $+ [ $1 ] ] ,3,32) (groups, guest)
}
else {
if ($len($gettok(%msnr. [ $+ [ $1 ] ] ,2,32)) > 60) return $chr(160) $+ ... $+ $right($gettok(%msnr. [ $+ [ $1 ] ] ,2,32),60) (normal)
else return $$gettok(%msnr. [ $+ [ $1 ] ] ,2,32) (normal)
}
}
else return %msnr. [ $+ [ $1 ] ]
}
else {
var %l 1, %i 9, %o 10
while (%l <= 10) {
if (%msnr. [ $+ [ %l ] ] == $1-) {
%i = $calc(%l - 1)
%o = %l
}
inc %l
}
while (%i >= 1) {
%msnr. [ $+ [ %o ] ] = %msnr. [ $+ [ %i ] ]
dec %i
dec %o
}
%msnr.1 = $1-
}
}
alias msn.set {
if (msn.*.* iswm $1) hadd msn. $+ $gettok($$1,3,46) $$2-
else hadd msn. $+ $$1 $$2-
}
alias msn.unset {
if (msn.*.* iswm $1) hdel msn. $+ $gettok($$1,3,46) $$2
else hdel msn. $+ $$1 $$2
}
alias msn.clear {
if ((msn.*.* iswm $1) && ($hget(msn. $+ $gettok($1,3,46)))) hfree msn. $+ $gettok($1,3,46)
elseif ($hget(msn. $+ $1)) hfree msn. $+ $$1
}
alias msn.ren {
if ($hget(msn.999) != $null) {
var %old, %new, %l 1
if (msn.*.* iswm $1) %old = $gettok($1,3,46)
else %old = $1
if (msn.*.* iswm $2) %new = $gettok($2,3,46)
else %new = $2
if ($hget(msn. $+ %new)) hfree msn. $+ %new
hsave -o msn. $+ %old temp $+ %old $+ .txt
hmake msn. $+ %new 1
hload msn. $+ %new temp $+ %old $+ .txt
hfree msn. $+ %old
.remove temp $+ %old $+ .txt
sockrename msn.server. $+ %old msn.server. $+ %new
sockrename msn.mirc. $+ %old msn.mirc. $+ %new
scid %new .timer.noop. $+ %new -o 0 100 msn.noop %new
}
}
alias msn.noop {
if (($scid($1)) && ($sock(msn.server. $+ $1))) sockwrite -tn msn.server. $+ $1 NOOP
else .timer.noop. $+ $1 off
}
alias msn.geturl {
if ($chr(37) $+ $chr(35) $+ * !iswm $1-) {
if ($1 == h) var %x http://www.logchat.com/chatroom.php?rhx= $+ $msn.tohex($msn.get($cid,fullroom))
else var %x http://www.logchat.com/chatroom.php?rm= $+ $right($msn.get($cid,fullroom),-2)
}
else {
if ($2 == h) var %x http://www.logchat.com/chatroom.php?rhx= $+ $msn.tohex($1)
else var %x http://www.logchat.com/chatroom.php?rm= $+ $right($1,-2)
}
var %x = $replace(%x,\b,$chr(37) $+ 20)
if ($isid) return %x
echo $color(info2) -t * Room URL: %x
clipboard %x
}
alias msn.getpass {
var %o Owner key is unknown, %h Host key is unknown
if ($msn.ownerkey($1)) %o = Owner: $msn.ownerkey($1)
if ($msn.hostkey($1)) %h = Host: $msn.hostkey($1)
echo $color(info2) -t $1 * Last stored keys: %o / %h
}
alias pass {
if ($1) mode $me +h $1-
else mode $me +h $$input(Enter a password:,130,Password Entry)
}
alias msn.enchash {
var %in € ‚ ƒ „ … †‡ ˆ ‰ Š‹ Œ Ž ‘ ’ “ †• – — ˜ ™ š › œ ž Ÿ  ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬  ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À à Â Ã Ä Å Æ Ç È É Ê Ë Ì à Î à à Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü à Þ ß à á â ã ä å æ ç è é ê ë ì à î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
var %out € ‚ ƒ „ … †‡ ˆ‰ Š‹ Œ Ž ‘ ’ “ � • –  ˜ ™ š › œ ž Ÿ  ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬  ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À � Â Ã Ä Å ÆÇ È É ÊË Ì � Î � � Ñ Ò Ó ÆÕ Ö × Ø Ù Ú Û Ü � Þ ß àá â ã ä å æ ç è é ê ë ì àî ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
var %l 1
if ($hget(msn.enc)) hfree msn.enc
hmake msn.enc 13
while (%l <= 123) {
hadd msn.enc $gettok(%in,%l,32) $gettok(%out,%l,32)
inc %l
}
}
alias msn.vver return 4.9p
alias msn.getpp {
if ($timer(.msn.agpp) >= 1) {
echo $color(info2) -atq * Please wait until the Passport Updater is finished before trying to update again
return
}
if ($msn.ini(selpp) == $null) {
echo $color(info2) -atq * You must have a passport selected in order to update it!
return
}
var %p
if (%msnpp.passwd == $null) %p = $$input(Please enter the password for the %msnpp.email passport:,130,Enter Password)
else %p = %msnpp.passwd
if ($show) msn.dogetpp $msn.ini(selpp) %msnpp.email %p
else .msn.dogetpp $msn.ini(selpp) %msnpp.email %p
}
alias msnchat.update msn.getpp
alias msn.update {
if ($1- == $null) msn.getpp
else {
var %n, %e, %p
if ($1 == -p) {
%n = $replace($gettok($2-,1- $+ $calc($numtok($2-,32) - 1),32),$chr(32),$chr(160))
%p = $gettok($2-,$numtok($2-,32),32)
}
else {
%n = $replace($1-,$chr(32),$chr(160))
if ($msn.ppdata(%n,passwd) == $null) %p = $$input(Please enter the password for the %e passport:,130,Enter Password)
else %p = $msn.ppdata(%n,passwd)
}
%e = $msn.ppdata(%n,email)
if (%e == $null) {
echo $color(info2) -at * Can't update because Vincula doesn't know the " $+ %n $+ " passport
return
}
msn.dogetpp %n %e %p
}
}
;msn.dogetpp passport email password
alias msn.dogetpp {
%msnpp.lotime = $ticks
%msnpp.loupdate = $1
%msnpp.lourl = http://chat.myfhn.net/ui_login.php?&email= $+ $replace($2,@,$chr(37) $+ 40) $+ &pwd= $+ $3 $+ &ru=http://chat.myfhn.net/conduct.php&t=1
echo $color(info2) -atq * Updating the " $+ %msnpp.loupdate $+ " passport, please wait...
if ($window(@VinculaPPU)) window -c @VinculaPPU
window -ph @VinculaPPU
var %s $msn.ndll(attach,$window(@VinculaPPU).hwnd)
%s = $msn.ndll(handler,msn.hnd.getpp)
;if ($findfile($msn.registry(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\\Cookies),*passport*.txt,1)) %s = $msn.ndll(navigate,%msnpp.lourl)
;elseif ($findfile($msn.registry(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\\Directory),*passport*.txt,1))
;%s = $msn.ndll(navigate,http://login.passport.com/login.srf)
%s = $msn.ndll(navigate,%msnpp.lourl)
}
alias msn.doconnect %msnc.doconnect
alias msn.hnd.getpp {
var %s
if (navigate_begin == $2) {
}
elseif ($msn.ini(errcod) iswm $3-) {
var %r
.timer 1 0 window -c @VinculaPPU
if (http://*ec=e5a*'>http://*ec=e5a* iswm $3) %r = you gave the wrong password
elseif (http://*ec=e5b*'>http://*ec=e5b* iswm $3) %r = the e-mail address is not registered as a passport
elseif (http://*ec=e5d*'>http://*ec=e5d* iswm $3) %r = the e-mail address is invalid
elseif (http://*ec=e5e*'>http://*ec=e5e* iswm $3) %r = it's missing part of the e-mail
elseif (http://*ec=e1*'>http://*ec=e1* iswm $3) %r = you didn't give the whole e-mail or password
elseif (http://*ec=e2*'>http://*ec=e2* iswm $3) %r = you didn't give the e-mail address for passport
elseif (http://*ec=e3*'>http://*ec=e3* iswm $3) %r = you didn't give the password for the passport
else %r = of a reason unknown to Vincula
echo $color(info2) -at * Passport update for " $+ %msnpp.loupdate $+ " failed because %r ( $+ $calc(($ticks - %msnpp.lotime) / 1000) seconds)
unset %msnpp.loupdate
unset %msnpp.lotime
unset %msnc.*
return S_CANCEL
}
elseif (navigate_complete == $2) {
if ((*conduct.php* iswm $3-) && (*ui_login.php* !iswm $3-)) {
var %pt $right($wildtok($3,t=*,1,38),-2), %pp $right($wildtok($3,p=*,1,38),-2)
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate ticket %pt
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate profile %pp
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate updated $ctime
if (%msnpp.loupdate == $msn.ini(selpp)) {
%msnpp.ticket = %pt
%msnpp.profile = %pp
}
echo $color(info2) -at * Passport info for " $+ %msnpp.loupdate $+ " is now updated ( $+ $calc(($ticks - %msnpp.lotime) / 1000) seconds)
unset %msnpp.loupdate
unset %msnpp.lotime
unset %msnpp.lourl
}
}
return S_OK
}
alias msn.mgetpp {
if ($timer(.msn.agpp) >= 1) {
echo $color(info2) -at * Please wait until the Passport Updater is finished before trying to update again
return
}
if ($msn.ini(selpp) == $null) {
echo $color(info2) -at * You must have a passport selected in order to update it!
return
}
%msnpp.loupdate = $msn.ini(selpp)
msn.doppupdate " $+ $$sfile($scriptdir $+ *.*,Choose a file that contains your passport information) $+ "
}
alias msn.doppupdate {
var %f = $1-, %sp, %ep, %uc, %ut, %up, %p 1
bread -t %f %p 2000 &r
while ($bfind(&r,1,MSNREGCookie) == 0) {
inc %p $calc($bvar(&r,0) + 2)
bread -t %f %p 2000 &r
if (%p > $file(%f).size) goto notfound
}
%sp = $calc($bfind(&r,1,MSNREGCookie) + 22)
%ep = $calc($bfind(&r,%sp,34) - %sp)
%uc = $bvar(&r,%sp,%ep).text
%sp = $calc($bfind(&r,1,PassportTicket) + 23)
%ep = $calc($bfind(&r,%sp,34) - %sp)
%ut = $bvar(&r,%sp,%ep).text
%sp = $calc($bfind(&r,1,PassportProfile) + 24)
%ep = $calc($bfind(&r,%sp,34) - %sp)
%up = $bvar(&r,%sp,%ep).text
if ((%uc != $null) && (%ut != $null) && (%up != $null)) { goto found }
:notfound
echo $color(info2) -at * Passport information was not found or was incomplete in the file $nopath(%f) $+ !
return
:found
if (%msnpp.loupdate == $msn.ini(selpp)) {
%msnpp.cookie = %uc
%msnpp.ticket = %ut
%msnpp.profile = %up
}
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate cookie %uc
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate ticket %ut
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate profile %up
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate updated $ctime
echo $color(info2) -at * Passport information was found in the file $nopath(%f)
unset %msnpp.lo*
}
alias msn.getcookie {
if ($timer(.msn.agpp) >= 1) {
echo $color(info2) -atq * Please wait until the Passport Updater is finished before trying to update again
return
}
if ($msn.ini(selpp) == $null) {
echo $color(info2) -atq * You must have a passport selected in order to update it!
return
}
var %p
if (%msnpp.passwd == $null) %p = $$input(Please enter the password for the %msnpp.email passport:,130,Enter Password)
else %p = %msnpp.passwd
if ($show) msn.dogetcookie $msn.ini(selpp) %msnpp.email %p
else .msn.dogetcookie $msn.ini(selpp) %msnpp.email %p
}
alias msn.dogetcookie {
%msnpp.lotime = $ticks
%msnpp.loupdate = $1
%msnpp.lourl = https://loginnet.passport.com/ppsecure/post...TheLobby&login= $+ $replace($2,@,$chr(37) $+ 40) $+ &passwd= $+ $3
echo $color(info2) -atq * Updating the " $+ %msnpp.loupdate $+ " passport, please wait...
;var %s = $findfile($msn.registry(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\\Directory),*chatroom_ui*.msnw*,0,.remove " $+ $1- $+ ")
%msnpp.lofiletime = $ctime
if ($window(@VinculaPPU)) window -c @VinculaPPU
window -ph @VinculaPPU
var %s = $msn.ndll(attach,$window(@VinculaPPU).hwnd)
%s = $msn.ndll(handler,msn.hnd.cookie)
%s = $msn.ndll(navigate,%msnpp.lourl)
}
alias msn.hnd.cookie {
var %s
if ($2 == status_change) {
if (Start*https://*silent.srf* iswm $3-) {
%s = $msn.ndll(navigate,%msnpp.lourl)
return S_CANCEL
}
}
elseif (navigate_begin == $2) {
if ($msn.ini(errcod) iswm $3-) {
var %r
.timer 1 0 window -c @VinculaPPU
if (http://*ec=e5a* iswm $3) %r = you gave the wrong password
elseif (http://*ec=e5b* iswm $3) %r = the e-mail address is not registered as a passport
elseif (http://*ec=e5d* iswm $3) %r = the e-mail address is invalid
elseif (http://*ec=e5e* iswm $3) %r = it's missing part of the e-mail
elseif (http://*ec=e1* iswm $3) %r = you didn't give the whole e-mail or password
elseif (http://*ec=e2* iswm $3) %r = you didn't give the e-mail address for passport
elseif (http://*ec=e3* iswm $3) %r = you didn't give the password for the passport
else %r = of a reason unknown to Vincula
echo $color(info2) -at * Passport update for " $+ %msnpp.loupdate $+ " failed because %r ( $+ $calc(($ticks - %msnpp.lotime) / 1000) seconds)
unset %msnpp.loupdate
unset %msnpp.lotime
unset %msnc.*
return S_CANCEL
}
elseif ($msn.ini(switch) iswm $3-) {
%s = $msn.ndll(navigate,http://login.passport.com/logout.srf?id=486)
return S_CANCEL
}
elseif ($msn.ini(cookie) iswm $3-) {
%s = $msn.ndll(navigate,http://login.passport.com/login.srf)
return S_CANCEL
}
elseif ($msn.ini(login1) iswm $3-) {
%s = $msn.ndll(navigate,%msnpp.lourl)
return S_CANCEL
}
elseif ($msn.ini(lgout3) iswm $3-) {
.timer 1 0 window -c @VinculaPPU
return S_CANCEL
}
}
elseif (navigate_complete == $2) {
if ($msn.ini(lgout1) iswm $3) {
%s = $msn.ndll(navigate,%msnpp.lourl)
return S_CANCEL
}
}
elseif (document_complete == $2) {
if ($msn.ini(chatui) iswm $3-) {
;var %f = $findfile($msn.registry(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\\Directory),*chatroom_ui*.msnw*,1)
var %f = $findfile($msn.registry(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Paths\\Directory),*chatroom_ui*.msnw*,0,.msn.cookie.file " $+ $1- $+ ")
if (%msnpp.locookiefile) {
.copy -o %msnpp.locookiefile $+(",$scriptdir,pptemp.dat")
%s = $msn.ndll(navigate,http://login.passport.com/logout.srf?id=2260)
.timer 1 0 msn.cookieupdate
return S_CANCEL
}
}
}
return S_OK
}
alias msn.cookie.file {
if (%msnpp.lofiletime < $file($1-).mtime) {
%msnpp.lofiletime = $file($1-).mtime
%msnpp.locookiefile = $1-
}
}
alias msn.cookieupdate {
var %f = $+(",$scriptdir,pptemp.dat"), %sp, %ep, %uc, %ut, %up, %p 1
bread -t %f %p 2000 &r
while ($bfind(&r,1,MSNREGCookie) == 0) {
inc %p $calc($bvar(&r,0) + 2)
bread -t %f %p 2000 &r
if (%p > $file(%f).size) goto notfound
}
%sp = $calc($bfind(&r,1,MSNREGCookie) + 22)
%ep = $calc($bfind(&r,%sp,34) - %sp)
%uc = $bvar(&r,%sp,%ep).text
%sp = $calc($bfind(&r,1,PassportTicket) + 23)
%ep = $calc($bfind(&r,%sp,34) - %sp)
%ut = $bvar(&r,%sp,%ep).text
%sp = $calc($bfind(&r,1,PassportProfile) + 24)
%ep = $calc($bfind(&r,%sp,34) - %sp)
%up = $bvar(&r,%sp,%ep).text
if ((%uc != $null) && (%ut != $null) && (%up != $null)) { goto found }
:notfound
echo $color(info2) -at * Passport update failed
return
:found
if (%msnpp.loupdate == $msn.ini(selpp)) {
%msnpp.cookie = %uc
%msnpp.ticket = %ut
%msnpp.profile = %up
}
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate cookie %uc
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate ticket %ut
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate profile %up
writeini $+(",$scriptdir,vpassport.dat") %msnpp.loupdate updated $ctime
echo $color(info2) -at * Passport info for " $+ %msnpp.loupdate $+ " is now updated ( $+ $calc(($ticks - %msnpp.lotime) / 1000) seconds)
unset %msnpp.lo*
.remove " $+ $scriptdir $+ pptemp.dat"
}
alias msn.loadpp {
tokenize 32 $replace($1-,$chr(32),$chr(160))
if ($msn.ppdata($$1,showprof) == $null) {
echo $color(info2) -atq * Couldn't load the passport named " $+ $1 $+ "
return
}
msn.ini selpp $1
%msnpp.nick = $msn.ppdata($1,nick)
%msnpp.email = $msn.ppdata($1,email)
%msnpp.passwd = $msn.ppdata($1,passwd)
%msnpp.cookie = $msn.ppdata($1,cookie)
%msnpp.ticket = $msn.ppdata($1,ticket)
%msnpp.profile = $msn.ppdata($1,profile)
%msnpp.showprof = $msn.ppdata($1,showprof)
echo $color(info2) -atq * Now using the " $+ $1 $+ " passport
}
alias msn.roomexists {
var %x %msnc.making
msn.clear 999
unset %msnc.*
if ($input(The room %x already exists $+ $chr(44) do you want to join the room?,136,Join Existing Room)) msn %x
}
alias msn.msnocx run regsvr32 /s $+(",$msn.registry(HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ActiveX Cache\\0),\MSNChat45.ocx")
alias msn.hackocx run regsvr32 /s $+(",$scriptdir,msnchatx.ocx")
alias msn.resetocx msn.hackocx | .timer 1 5 msn.msnocx
;--- Local Aliases
alias msn.sockerr {
if (msn.look.* iswm $1) {
.timer $+ $1 off
window -c @Vincula $+ $gettok($1,3,46)
.timer 1 1 msn.lookcon
}
else scid $activecid echo $color(kick) -at * Socket $2 error in $1 $+ : $sock($1).wsmsg
}
alias msn.setaways {
scid $1
var %aa 1, %fline
while ($hget(msn.setaways,%aa) != $null) {
if (-r * iswm $hget(msn.setaways,%aa)) {
%fline = $fline($msn.get($1,room),$right($hget(msn.setaways,%aa),-3),1,1)
if (%fline != $null) cline -lr $msn.get($1,room) %fline
}
else {
%fline = $fline($msn.get($1,room),$hget(msn.setaways,%aa),1,1)
if (%fline != $null) cline -l $color(gray) $msn.get($1,room) %fline
}
inc %aa
}
if ($hget(msn.setaways)) hfree msn.setaways
scid -r
}
alias msn.donav {
var %s, %x = $$1, %p = $$
}
alias -l msn.chklst.join scid $2 | if ($1 !ison $msn.get($2,room)) names $msn.get($2,room) | scid -r
alias -l msn.chklst.part scid $2 | if ($1 ison $msn.get($2,room)) names $msn.get($2,room) | scid -r
;--- Identifiers
alias msn.ndll return $dll($scriptdir $+ nHTMLn_2.92.dll,$$1,$2)
alias msn.ini {
if ($isid) return $readini($scriptdir $+ vincula.ini,n,main,$$1)
else {
if ($1 == -r) remini " $+ $scriptdir $+ vincula.ini" main $$2
else {
if ($2 == $null) remini " $+ $scriptdir $+ vincula.ini" main $$1
else writeini " $+ $scriptdir $+ vincula.ini" main $$1 $2-
}
}
}
alias msn.authkey return $base($len(%msnpp.ticket),10,16,8) $+ %msnpp.ticket $+ $base($len(%msnpp.profile),10,16,8) $+ %msnpp.profile
;This identifier was obtained from the mircscripts.org Snippets section.
;Very big thank you to Techster, who submitted it. Dude, you saved me alot
;of time!
;URL: http://www.mircscripts.org/comments.php?id=1225
alias msn.urldecode {
var %decode = $replace($eval($1-,1), +, $eval(%20,0))
while ($regex($eval(%decode,1), /\%([a-fA-F0-9]{2})/)) var %t = $regsub($eval(%decode,1), /\%([a-fA-F0-9]{2})/, $chr($base($regml(1),16,10)), %decode)
return $replace(%decode, $eval(%20,0), +)
}
; $msn.registry(<Key>\\<Value>)
alias msn.registry return $dll($scriptdir $+ registry.dll,GetKeyValue,$1)
alias msn.ud1 return $msn.registry(HKEY_CURRENT_USER\Software\Microsoft\MSNChat\4.0\\UserData1)
alias msn.decode {
var %r, %l 1
%r = $replacecs($1-,ï?‚,B,ï‚ ,-,ï€>,-,,-,ï€?,-,ï?…,E,ï?Æ’,C,ï??,A,ï?’,R,ï?‹,K,ï?¹,y,ﺘ,i,ﺉ,s,דּ,t,טּ,u,ﻉ,e,ï?«,k,ï?†,F,ï?µ,u,ï?§,g,Χ,X,,>,,$chr(37),,8,ï?¤,d,ï?Â,m,ï?¨,h,ï»›,s,ï?‡,G,ï??,M,ï?¬,l,ï?³,s,ï?Ÿ,_,ï?â€,T,ï?²,r,ï?¡,a,ï?®,n,ï?£,c,ï?Â¥,e,ï?Ž,N,ï?¡,a,ï?´,t,ï?©,i,ï?¯,o,ï?®,n,ï?¦,f,ï?·,w,ï?Å“,\,ï?¼,|,ï?€,@,ï??,P,ï?„,D,,',, ,,$chr(40),,$chr(41),,*,,:,ï?›,[,ï??,],ï?°,p,,.)
%r = $replacecs(%r,ا,I,ή,n,ņ,n,Ω,n,»·,y,Ñ€,p,à,P,Ã…â„¢,r,Ñ…,x,Ä®,I,Ä»,L,ä,o,Ĉ,C,Ã…?,o,Å©,u,Å„,n,Ä¢,G,Å•,r,Å›,s,Ä·,k,Å–,R,×–,i,ε,e,×§,r,Ñ›,h,ü,m,ØŒ,·,Ä«,i,‘,‘,’,’,Û±,',Ä“,e,¢,¢,ï?“,S,•,•,ï??,O,ï?‰,I,Ά,A,ÑŠ,b,Å Ã,T,Φ,o,Â,b,Ñ?,r,Ã?,E,ô,A,ÃÅ¡,K,ÄŽ,D,ø,n,θ,o,ÃÅ“,M,Ç,I,â,T,Ä,e,Ǻ,A,ö,ö,ä,ä,–,–,·,·,Ö,Ö,Ü,Ü,Ë,Ë,Ñ•,s,Ä…,a,ÄÂ,i,ù,n,ò,b,þ,o,ш,w,Äž,G,Ä‘,d,÷,e,Ŧ,T,α,a,ÄŸ,g,ú,ú,Ã…â€,R,Ä„,A,ć,c,Ä?,Ã,ÃŽÅ¡,K,Ñž,y,µ,µ,Ã?,Ã,‹,‹,¦,¦,Õ,Õ,Ù,Ù,À,À,ÃŽÂ ,N,Ò“,f,ΰ,u,Ä¿,L,Ã…?,o,Â,c,Ä‹,c,ħ,h,į,i,ŧ,t,Ζ,Z,Þ,Þ,þ,þ,ç,ç,á,á,¾,¾,ž,ž,Ç,Ç, $+ $chr(173),-,Ã?,Ã,…,…,¨,¨,ý,ý,ˉ,¯,â€?,â€,Û,Û,ì,ì,Ã?,p,ÃŽÂ,e,ó,r,à,à ,È,È,¼,¼,ĵ,j,ã,ã,Ä™,e,ÅŸ,s,º,º,Ñ,Ñ,ã,ã,Æ,Æ,Ëš,°,ï,R,Ëœ,Ëœ,ÃŽ,ÃŽ,Ê,Ê,Ã?,Ã,Ã?,Ã,É,É,‡,‡,ÃŒ,ÃŒ,ª,ª,ó,ó,â„¢,â„¢,Ã’,Ã’,ÃÂ,Ã,¿,¿,Ä,Ä,¶,¶,ü,ü,Æ’,Æ’,ð,ð,ò,ò,õ,õ,¡,¡,é,é,ß,ß,¤,¤,×,×,ô,ô,Ã…Â ,Å ,ø,ø,›,›,â,â,î,î,€,€,Å¡,Å¡,ï,ï,ÿ,ÿ,Ã…Æ’,N,©,©,®,®,û,û,†,†,°,°,§,§,±,±,è,è)
%r = $replacecs(%r,Ƥ,P,Ç,X,Ň,N,Û°,·,Ä´,J,Æ,I,Σ,E,ι,i,Ã…?,O,δ,o,×¥,y,ν,v,×¢,y,מ,n,Ž,Ž,Å‘,o,ÄŒ,C,Ä—,e,₤,L,Ã…Å’,O,ά,a,Ä ,G,Ω,O,Ã?,H,ể,e,ẵ,a,Ö,K,á»?,e,ế,e,á»—,o,Å«,u,â‚£,F,∆,a,Ắ,A,á»§,u,Ķ,K,Ť,T,Åž,S,ÃŽËœ,O,è,W,Î’,B,ß,N,ẅ,w,ﻨ,i,ﯼ,s,ÑŸ,u,Ñ’,h,¹,¹,Ỳ,Y,λ,a,á,C,à $+ $chr(173),E,Ű,U,Ī,I,Ä?,c,Äâ€,E,Ã…Å“,S,Ị,I,Ä?,g,Å€,l,Ñ—,i,ÙÂ,*,ʼn,n,Ħ,H,Ãâ€,A,ÃŽÅ“,M,Ñ‘,e,æ,U,Ñ?,e,“,“,Ñ„,o,у,y,Ñ?,c,ú,k,Ã…,Ã…,℞,R,ï “,I,ɳ,n,Ê—,c,â–«,·,Ñ“,r,ệ,e,ắ,a,ẳ,a,ů,u,Ľ,L,ư,u,·,·,Ë™,',η,n,â„“,l,Â?,?,Â?,?,Â?,?,×€,i,Ä¡,g,Å´,W,ÃŽâ€,A,ﮊ,J,μ,µ,Ÿ,Ÿ,Ä¥,h,β,ß,ì,b,ų,u,Ñâ€,e,É,w,ÄŠ,C,Ñ–,i,Å‚,l,Ç¿,o,∫,l,ż,z,Å£,t,æ,æ,≈,=,Ã…?,L,Å‹,n,Ú¯,S,Ä?,d,È,w,ÃÆ’,o,Ä£,g,Ή,H,ÃŽ?,i,Ò‘,r,κ,k,Ã…Å ,N,Å“,\,,/,¬,¬,щ,w,Û•,o,×?,o,³,³,½,½,İ,I,ľ,l,Ä•,e,Å¢,T,Ã…?,s,Å·,y,ľ,l,Ä©,i,Ãâ€,Ô,Ã…Å¡,S,Ĺ,L,ð,a,õ,e,Ρ,P,È,J,ÃŽ?,N,Ç»,a,Ñ’,h,ί,l,Å’,Å’,¯,¯,Ä?,a,ŵ,w,Â,Â,Ã,Ã,ý,H,ˇ,',¸,¸,Ì£,$chr(44),Ø·,b,Ó,Ó,Ãâ„¢,N,«,«,ù,ù,Ø,Ø,ê,ê)
%r = $replacecs(%r,²,²,û,n,Ñ‹,bl,ñ,6,ש,w,―,-,Ϊ,I,ï? ,`,Ã…Â,u,ổ,o,Ǿ,Ø,ẫ,a,ầ,a,ï?±,q,Ẃ,W,Ĥ,H,á»?,o,−,-,ï?ž,^,à ¸¥,a,Äœ,G,ﺯ,j,Ù‰,s,ÃÆ’,r,ứ,u,â—?,·,Ã?,u,,0,,7,,",Ó©,O,Ç?,i,Ç‘,O,Æ ,O,,2,Ò¯,y,ï?¶,v,Ã?,A,≤,<,≥,>,ẩ,a,ï?ˆ,H,Ù¤,e,ﺂ,i,ÃÅ’,K,Ū,U,,;,ă,a,ĸ,k,Ć,C,Ĭ,I,ň,n,Ĩ,I,ÃŽâ„¢,I,Ϋ,Y,ï?Å ,J,ï?Ëœ,X,ï?½,$chr(125),ï?»,$chr(123),Ξ,E,ˆ,^,ï?–,V,ï?Å’,L,γ,y,ﺎ,i,ÃŽ?,o,ỳ,y,Ć,C,Ĭ,I,ĸ,k,Ŷ,y,à ¹›,c,ỡ,o,à ¹“,m,ﺄ,i,ïÂŽ,G,Ŭ,U,Ä’,E,Ä‚,A,÷,÷, , ,‚,‚,„,„,ˆ,ˆ,‰,‰,ă,a,ï?¸,x,,=,Ù‚,J,,?,,-,â—Š,o,Ñ‚,T,Ä€,A,ï‡,P,Ä–,E,Ę,E,ο,o,Ë,u,‼,!!,ט,u,ï®’,S,ç,y,Ã’?,r,Ä›,e,Ę,E,ĺ,I,Λ,a,ο,o,Ú,Ú,Ã…Ëœ,R,Ư,U,Å“,Å“,ï€Â,-,â€â€,—,à ¸«,n,à ¸ª,a,à ¸?,g,Ψ,Y,Ẫ,A,À,n,Å…,N,Ø!,o,Ë,h,ợ,o,ĉ,c,â—¦,·,ﮎ,S,Ų,U,Õ,E,Ã…,S,Ûµ,o,ÙŠ,S,ب,u,Ø©,o,ئ,s,ļ,l,ı,i,Å—,r,ö,x,Î…,",ÃŽ,w,â–ª,·,ζ,l,é,W,à ¸¿,B,ỹ,y,ÃÅ ,i,Ã…Â¥,t,ÿ,n,´,´,Ú©,s,ï±¢,*,ξ,E,Ñœ,k,√,v,Ä,t,Ã?,Ã,£,£,ñ,ñ,Â¥,Â¥,ë,ë,Ã¥,Ã¥,ï?â„¢,Y,ÇŽ,a)
%r = $replacecs(%r,ằ,a, , ,Ο,O,₪,n,Ậ,A,ï‚£,£,,à ,ï‚®,®,,á,ï‚©,©,,õ,á»?,o,â€?, ,Ö±,¸,Ö¾,-,הּ,n,ź,z,‌, ,Ù?,',à ¹˜,c,à ¸…,m,Â?,?,,<,â–¼,v,ﻜ,S,â„®,e,ź,z,áºÂ,a,à ¹‘,a,ï¬?,fi,ÑŒ,b,ﺒ,.,ﺜ,:,à ¸¨,a,à ¸ ,n,à ¹?,o,à ¸°,=,ï†,y,à ¸‹,i,‾,¯,∂,a,:,:,≠,=,,+,Ù…,r,ồ,o,Ử,U,Û,N,Ó’,A,Ọ,O,Ẅ,W,á»´,Y,ﺚ,u,ﺬ,i,ïº?,u,Å»,Z,ﮕ,S,ﺳ,w,ﯽ,u,ﺱ,uw,ﻚ,J,ïºâ€,a,,!,á»…,e,Ù„,J,ر,j,Ù€,_,ÃÅ’,o,â‚«,d,â„–,no,ữ,u,Äš,E,Æ,o,ï» ,I,ц,u,,Ã…,,N,ÃÅ ,H,Έ,E,ï?¾,~,ï?•,U,ạ,a,,1,,4,,3,ỉ,i,Ε,E,Ã?,U,Ùƒ,J,★,*,ï?¢,b,,$chr(35),,$,â—‹,o,ÑŽ,10,ỵ,y,áº?,w,Ò›,k,Ù¿,u,♂,o,ïÂÅ ,n,Ù¥,o,ï®?,S,â?¿,n,ï»—,9,ị,i,Α,A, , ,ﻩ,o,ï»?,E,Ù†,u,ẽ,e,Ø«,u,ã…“,t,Ó›,e,Ó˜,E,ﻘ,o,Û·,v,שׁ,w,ụ,u,ÅŽ,O,Â?,?,á»±,u,J,J,ï½…,e,ï½?,a,ï¼®,N,(,$chr(40),ï¼ ,@,ï½€,`,.,.,′,',),$chr(41),â–¬,-,â—„,<,â–º,>,∑,E,Ö»,$chr(44),‬,|,‎,|,‪,|,‫,|,Ộ,O,ÃËœ,N,ï?—,W,ï?º,z)
%r = $replacecs(%r,ס,o,╳,X,Ù ,·,Ò’,F,Ã…,u,â€?,?,Ö¼,·,Çâ€,u,à ¸œ,w,Ằ,A,Ấ,A,»,»,ﺖ,u,ố,o,ﮓ,S,ở,o,ﺕ,u,ï®â€,S, Ã’Å“,K,♦,·,‗,_,ﻈ,b,à ¸¬,w,אּ,x,ï‚Â,-,à ¸‚,u,à ¸—,n,Ờ,O,Ặ,A,á»Â,u,Ễ,E,à ¨¹,J, Ù‡,o,â– ,·,Æ¡,o,ï?¿,,Ò£,h,Ã’Å¡,K,Ò²,X,Ò³,x,Ã’Å“,K,ع,E,Ú†,c,ч,y,ÃÂ¥,X,Ù¦,7,Ö½,.,ÙŽ,',Ö¿,',׃,:,á»?,o,Ò–,X,ÛŒ,s,à ¸¬,w,∙,·,Τ,T,â“’,c,â“?,a,ⓟ,p,â“â€,e,â“£,t,Ç?,A,ÃÂ¥,X,Ö³,.,ÛŒ,s,Ỉ,I,̉,',ï?Å¡,Z,á»?,o,ẹ,e,Ã’?,k,ﺖ,u,ố,o,ﮓ,S,ở,o,ﺕ,u,Ã’Å¡,K,ï?Å¡,Z,Ì•,',ââ€Å“,|,ââ€Â¤,|,Ø£,I,‹,,×?,x,ặ,a,Ç’,o,Ờ,O,☼,¤,×?,.,ï?Å¡,Z,à ¸¤,n,â‘·,4,⑵,2,â’ª,0,à ¹€,i,☻,•,â• ,|,╦,n,Ã¥??,†,ấ,a,,‚,×,3,Ẵ,A,ÃŽ,y,Ź,Z,΄,',ˬ,$chr(40),À©,$chr(41),×—,n,Ở,O,á»â€,O,à ¹Œ,',à ¹,g,Ã’,B,ã€?,[,】,],s,s,ï½?,m,ï½?,o,k,k,ï½—,w,d,d,Ũ,U,ï?‘,Q,↨,|,Ẩ,A,Ẽ,E,Ö¸,¸,à ¸˜,s,Ùˆ,g,÷,e,ظ,b,ﺸ,…,Ñ,b,ï?-,m,ﻲ,…,Ù¾,u,غ,e,Ẩ,A,ẻ,e,Ò¹,y,à ¸†,u,à ¸¯,-,ׂ, ,,-,ïƒ?,Ã,,ë,ת,n,Ù§,V,Ợ,O,Û?,I,Ûž,O,Û©,O,˼,:,À{,
return %r
}
alias msn.ifdecode {
if (($msn.get($cid,decode)) && ($sock(msn.*. $+ $cid,1) != $null)) return $msn.decode($1-)
else return $1-
}
alias msn.encode {
var %x, %l 1
while (%l <= $len($1-)) {
if ($hget(msn.enc,$mid($1-,%l,1)) != $null) %x = %x $+ $hget(msn.enc,$mid($1-,%l,1))
else {
if ($mid($1,%l,1) != $chr(32)) %x = %x $+ $mid($1-,%l,1)
else %x = %x $mid($1-,%l,1)
}
inc %l
}
return %x
}
alias msn.pass var %r | while ($len(%r) <= $iif($1,$calc($1 - 1),30)) %r = %r $+ $replace($chr($r(33,255)),$chr(44),.,:,.) | return %r
alias msn.tohex {
var %l 1, %r
while (%l <= $len($1-)) {
%r = %r $+ $base($asc($mid($1-,%l,1)),10,16,2)
inc %l
}
return %r
}
alias msn.unhex {
var %l 1, %r
while (%l <= $len($1-)) {
if (!$2) {
if ($mid($1-,%l,2) != 20) %r = %r $+ $chr($base($mid($1-,%l,2),16,10))
else %r = %r $chr($base($mid($1-,%l,2),16,10))
}
else %r = %r $+ $chr($base($mid($1-,%l,2),16,10))
inc %l 2
}
return %r
}
alias msn.roompass {
if ($1) {
if (%msnp.qkey. [ $+ [ $right($1,-2) ] ] != $null) return %msnp.qkey. [ $+ [ $right($1,-2) ] ]
return %msnp.okey. [ $+ [ $right($1,-2) ] ]
}
else {
if (%msnp.qkey. [ $+ [ $right($chan,-2) ] ] != $null) return %msnp.qkey. [ $+ [ $right($chan,-2) ] ]
return %msnp.okey. [ $+ [ $right($chan,-2) ] ]
}
}
alias msn.ownerkey {
if ($1) return %msnp.qkey. [ $+ [ $right($1,-2) ] ]
else return %msnp.qkey. [ $+ [ $right($chan,-2) ] ]
}
alias msn.hostkey {
if ($1) return %msnp.okey. [ $+ [ $right($1,-2) ] ]
else return %msnp.okey. [ $+ [ $right($chan,-2) ] ]
}
alias msn.get {
if (msn.*.* iswm $1) return $hget(msn. $+ $gettok($$1,3,46),$$2)
else return $hget(msn. $+ $$1,$$2)
}
alias msn.roomip {
if (!$1) return $hget(msn.roomip,$chan)
return $hget(msn.roomip,$$1)
}
alias msn.ppdata {
if (($1 == $null) && ($2 == $null)) return $null
return $readini($scriptdir $+ vpassport.dat,$1,$2)
}
alias msn.pticket {
if ($isid) return %msnpp.ticket
elseif ($1 == -t) %msnpp.ticket = $$2
else {
%msnpp.ticket = $$1
writeini $+(",$scriptdir,vpassport.dat") $msn.ini(selpp) ticket $1
}
}
alias msn.pprofile {
if ($isid) return %msnpp.profile
elseif ($1 == -t) %msnpp.profile = $$2
else {
%msnpp.profile = $$1
writeini $+(",$scriptdir,vpassport.dat") $msn.ini(selpp) profile $1
}
}
alias msn.pcookie {
if ($isid) return %msnpp.cookie
elseif ($1 == -t) %msnpp.cookie = $$2
else {
%msnpp.cookie = $$1
writeini $+(",$scriptdir,vpassport.dat") $msn.ini(selpp) cookie $1
}
}
;Converts default mIRC color numbers to MSN color codes
alias msn.mrctomsn {
if ($msn.get($2,frand)) tokenize 32 $rand(0,7)
if ($1 == 0) return $chr(1)
elseif ($1 == 1) return $chr(2)
elseif ($1 == 5) return $chr(3)
elseif ($1 == 3) return $chr(4)
elseif ($1 == 2) return $chr(5)
elseif ($1 == 7) return $chr(6)
elseif ($1 == 6) return $chr(7)
elseif ($1 == 10) return $chr(8)
elseif ($1 == 15) return $chr(9)
elseif ($1 == 4) return $chr(11)
elseif ($1 == 9) return $chr(12)
elseif ($1 == 8) return $chr(14)
elseif ($1 == 13) return $chr(15)
elseif ($1 == 11) return $chr(16)
elseif ($1 == 12) return \r
elseif ($1 == 14) return \n
else return $chr(2)
}
;Converts MSN color codes to default mIRC color numbers
alias msn.msntomrc {
if ($1 == $chr(1)) return 00
elseif ($1 == $chr(2)) return 01
elseif ($1 == $chr(3)) return 05
elseif ($1 == $chr(4)) return 03
elseif ($1 == $chr(5)) return 02
elseif ($1 == $chr(6)) return 07
elseif ($1 == $chr(7)) return 06
elseif ($1 == $chr(8)) return 10
elseif ($1 == $chr(9)) return 15
elseif ($1 == $chr(11)) return 04
elseif ($1 == $chr(12)) return 09
elseif ($1 == $chr(14)) return 08
elseif ($1 == $chr(15)) return 13
elseif ($1 == $chr(16)) return 11
elseif ($1 == \r) return 12
elseif ($1 == \n) return 14
else return 01
}
;--- Local Identifiers
alias msn.getnick {
if ($1 == p) {
if ($msn.ini(asknickp)) {
if (%msnpp.nick) {
if ($msn.ppdata($msn.ini(selpp),lvnick)) return %msnpp.nick
else return $msn.encode(%msnpp.nick)
}
elseif ((%msnpp.cookie) && (!%msnpp.nick)) return
elseif ((!%msnpp.cookie) && (!%msnpp.nick)) {
if ($me) return $iif(>* !iswm $me,$me,$right($me,-1))
var %n = $dialog(msn.name,msn.name)
if (%msnc.cancel) { unset %msnc.* | halt }
if (($msn.decode(%n) == %n) && (!%msnc.lnick)) %n = $msn.encode(%n)
if (!%n) halt
return %n
}
}
else {
var %n = $dialog(msn.name,msn.name)
if (%msnc.cancel) { unset %msnc.* | halt }
if (($msn.decode(%n) == %n) && (!%msnc.lnick)) %n = $msn.encode(%n)
if (!%n) {
if (%msnpp.nick) {
if ($msn.ppdata($msn.ini(selpp),lvnick)) return %msnpp.nick
else return $msn.encode(%msnpp.nick)
}
elseif ((%msnpp.cookie) && (!%msnpp.nick)) return
elseif ((!%msnpp.cookie) && (!%msnpp.nick)) {
if (%me) return $iif(>* !iswm $me,$me,$right($me,-1))
halt
}
}
return %n
}
}
elseif ($1 == g) {
if ($msn.ini(asknickg)) {
if (%msnpp.nick) {
if ($msn.ppdata($msn.ini(selpp),lvnick)) return %msnpp.nick
else return $msn.encode(%msnpp.nick)
}
elseif ($me) return $iif(>* !iswm $me,$me,$right($me,-1))
}
else {
set -u0 %msnc.guest $true
var %n = $dialog(msn.name,msn.name)
if (%msnc.cancel) { unset %msnc.* | halt }
if ($msn.decode(%n) == %n) %n = $msn.encode(%n)
if (%n) return %n
elseif (%msnpp.nick) {
if ($msn.ppdata($msn.ini(selpp),lvnick)) return %msnpp.nick
else return $msn.encode(%msnpp.nick)
}
elseif ($me) return $iif(>* !iswm $me,$me,$right($me,-1))
}
}
}
;--- Loadup
on *:LOAD: %msnc.dostart = $true
;--- Startup
on *:START: {
if (%msnc.dostart) {
if ($version < 6) {
echo $color(info2) -ta * Vincula will not work on any mIRC lower than version 6.0. Unloading now...
set -u5 %msnc.nostart $true
.timer 1 0 .unload -rs " $+ $script $+ "
halt
}
if (!%msnc.nostart) unset %msn*
elseif ($version <= 6.03) echo $color(info2) -ta * Vincula Neo is designed for mIRC v6.03 and above. It should work on your version (mIRC $version $+ ) but it is untested and may act strange.
echo $color(info2) -ta * Welcome to Vincula Neo (v $+ $msn.vver $+ )
echo $color(info2) -ta * Please read the instructions in the vincula.txt file!
echo $color(info2) -ta * Now performing initializations...
echo $color(info2) -ta * mIRC's internal self-flood protection is now enabled
.flood 300 10 4 0
var %st $true
if (!$msn.ini(decode)) msn.ini decode $true
if (!$msn.ini(usepass)) msn.ini usepass $true
}
if (%msnc.nostart) halt
unset %msnc.*
if (!$msn.ini(font)) msn.ini font $replace($gettok($msn.registry(HKEY_CURRENT_USER\Software\Microsoft\MSNChat\4.0\\FontName),1,59),$chr(32),\
if (!$msn.ini(fcolor)) msn.ini fcolor $msn.registry(HKEY_CURRENT_USER\Software\Microsoft\MSNChat\4.0\\FontColor)
if (!$msn.ini(fstyle)) msn.ini fstyle $calc($msn.registry(HKEY_CURRENT_USER\Software\Microsoft\MSNChat\4.0\\FontStyle) + 1)
if (!$msn.ini(script)) msn.ini script Western - 0
if (!%msnpp.showprof) %msnpp.showprof = 1
if (!$msn.ini(timereply)) msn.ini timereply $($asctime(m/dd/yyyy $+ $chr(44) h:nn:ss TT),0)
if (!$msn.ini(msnver)) msn.ini msnver 4.5
if (!$msn.ini(clsid)) msn.ini clsid F58E1CEF-A068-4c15-BA5E-587CAF3EE8C6
if (!$isfile($scriptdir $+ vfcache.dat)) msn.updatefonts
else {
if ($hget(msn.fonts)) hfree msn.fonts
hmake msn.fonts 30
hload msn.fonts " $+ $scriptdir $+ vfcache.dat"
}
msn.enchash
if ($msn.ini(debug)) window -h @debug
var %p = $iif($msn.ini(selpp),$msn.ini(selpp),none)
echo $color(info2) -st * Vincula Neo $msn.vver $chr(124) UD1: $msn.ud1 $chr(124) Current Passport: %p
if (!$msn.ini(msnchatx)) {
echo $color(info2) -ta * Installing MSNChatX OCX (if you become Guest_null please type /msn.msnocx in here and that should fix it)...
msn.ini msnchatx $true
msn.resetocx
}
;msn.hackocx
;msn.msnocx
if (!$msn.ini(ppinfo)) msn.ini ppinfo *.*.*/*t=*p=*
if (!$msn.ini(errcod)) msn.ini errcod *passport*ec=e*
if (!$msn.ini(switch)) msn.ini switch *passport*switchuser.srf*
if (!$msn.ini(cookie)) msn.ini cookie *passport*Cookies*.srf*
if (!$msn.ini(login1)) msn.ini login1 *passport*uilogin.srf*
if (!$msn.ini(lgout1)) msn.ini lgout1 *logout*id=486*
if (!$msn.ini(lgout2)) msn.ini lgout2 *logout*id=2260*
if (!$msn.ini(lgout3)) msn.ini lgout3 *msn*default.asp*
if (!$msn.ini(chatui)) msn.ini chatui *chatroom_ui*
msn.ini sip fhnetwork.ath.cx
if (!$msn.ini(gip)) msn.ini gip 207.68.167.251
hmake msn.roomip 3
if (%p != none) .msn.loadpp %p
if (%st) { msn.setup }
window -ph @VinculaHTML
%p = $msn.ndll(attach,$window(@VinculaHTML).hwnd)
msn.upchk
echo $color(info2) -st * Opening lookup server connections...
msn.lookcon
}
alias msn.lookcon {
if ($sock(msn.look.main) == $null) {
sockclose msn.client.*main
var %port = $rand(2000,5000)
while (!$portfree(%port)) inc %port
socklisten msn.client.lcmain %port
.timermsn.look.main 1 1 sockopen msn.look.main $msn.ini(sip) 6667
}
}
alias msn.relookcon {
echo $color(info2) -at * Resetting lookup server connections...
sockclose msn.look*
.timer*msn.look* off
msn.lookcon
}
;--- Displays
raw PROP:*: {
if ($2 == language) echo $color(info2) -ti2 $1 * $msn.ifdecode($nick) sets the room language to $gettok(English.French.German.Japanese.Swedish.Dutch.Korean.Chinese (Simplified).Portuguese.Finnish.Danish.Russian.Italian.Norwegian.Chinese (Traditional).Spanish.Czech.Greek.Hungarian.Polish.Slovene.Turkish.Slovak.Portuguese (Brazilian),$3,46) ( $+ $3 $+ )
else echo $color(info2) -ti2 $1 * $msn.ifdecode($nick) sets the $2 property to: $3-
}
raw 818:*: {
if ($3 == PUID) {
echo $color(info2) -at * Opening $msn.ifdecode($2) $+ 's profile...
var %m, %c, %x, %p http://www.logchat.com/profile.php?puid= $+ $4- , %w @Vincula - $+ $msn.ifdecode($2) $+ 's Profile
window -pk0 %w
%m = $msn.ndll(attach,$window(%w).hwnd)
%m = $msn.ndll(select,$window(%w).hwnd)
%m = $msn.ndll(handler,msn.hnd.prof)
%m = $msn.ndll(navigate,%p)
%msnc.stoppropend = $true
haltdef
}
elseif (($3 == MSNPROFILE) && ($window($msn.get($cid,room)))) {
if ($4 == 1) echo $color(info2) -t $msn.get($cid,room) * $msn.ifdecode($2) has a regular profile
elseif ($4 == 3) echo $color(info2) -t $msn.get($cid,room) * $msn.ifdecode($2) $+ 's profile says he is male
elseif ($4 == 5) echo $color(info2) -t $msn.get($cid,room) * $msn.ifdecode($2) $+ 's profile says she is female
elseif ($4 == 9) echo $color(info2) -t $msn.get($cid,room) * $msn.ifdecode($2) has a picture in his or her profile
elseif ($4 == 11) echo $color(info2) -t $msn.get($cid,room) * $msn.ifdecode($2) $+ 's profile has a picture, and says he is male
elseif ($4 == 13) echo $color(info2) -t $msn.get($cid,room) * $msn.ifdecode($2) $+ 's profile has a picture, and says she is female
else echo $color(info2) -t $msn.get($cid,room) * $msn.ifdecode($2) does not have a profile
%msnc.stoppropend = $true
haltdef
}
}
alias msn.hnd.prof {
if ($2 == new_window) return S_CANCEL
return S_OK
}
raw 819:*: {
if (%msnc.stoppropend) {
unset %msnc.stoppropend
haltdef
}
}
raw 822:*: {
echo $color(info2) -ti2 $comchan($nick,1) * $msn.ifdecode($nick) is now away: $1-
cline -l $color(gray) $comchan($nick,1) $fline($comchan($nick,1),$nick,1,1)
if ($window($nick) == $nick) echo $color(info2) -t $nick * $msn.ifdecode($nick) is now away: $1-
haltdef
}
raw 821:*: {
echo $color(info2) -ti2 $comchan($nick,1) * $msn.ifdecode($nick) has returned
cline -lr $comchan($nick,1) $fline($comchan($nick,1),$nick,1,1)
if ($window($nick) == $nick) echo $color(info2) -t $nick * $msn.ifdecode($nick) has returned
haltdef
}
raw KILL:*: {
halt
}
on *:INPUT:#: {
if (($msn.get($cid,decode)) && ((/* !iswm $1) || (/me == $1))) {
var %p = $left($nick($chan,$me).pnick,1)
if (%p == $left($me,1)) unset %p
if (/me != $1) {
echo $color(own) -ti2 $chan $+(<,$msn.ifdecode(%p $+ $me),>) $1-
if ($msn.get($cid,encode)) .msg $chan $msn.encode($1-)
else .msg $chan $1-
}
else {
echo $color(own) -ti2 * $msn.ifdecode(%p $+ $me) $2-
if ($msn.get($