home *** CD-ROM | disk | FTP | other *** search
/ napalm.napnet.hu / 2015-02-12.napalm.napnet.hu.tar / napalm.napnet.hu / programok / kommunikacio / mpp700.exe / Tmsn.mrc < prev    next >
Text File  |  2003-05-18  |  75KB  |  2,094 lines

  1. ;###################################################
  2. ;#############Tmoid's MSN for mIRC##################
  3. ;###################################################
  4. ;#################msn@tmoid.com#####################
  5. ;###################################################
  6. ;####################################V-1-01#########
  7. ;You may change this alias to anything else you want
  8. alias MSN {
  9.   Tmsn
  10. }
  11. ;###################################################
  12. ;########Do not change any thing below here#########
  13. ;###################################################
  14. ;menu menubar {
  15. ;  Tmsn
  16. ;  .Run: Tmsn
  17. ;  .Bug Report: run "mailto:msn@tmoid.com?subject=Tmsn Bug report"
  18. ;  .Unload: {
  19. ;    unload -rs  " $+ $scriptdir $+ md5.mrc $+ "
  20. ;    unload -rs  " $+ $scriptdir $+ tmsn.mrc $+ "
  21. ;  }
  22. ;}
  23. menu @*-msn {
  24.   ping: msn.ping $active
  25.   email user: run "mailto: $+ $left($right($active,-1),-4) $+ "
  26.   view profile: run http://members.msn.com/?pgmarket=en-us&mem= $+ $left($right($active,-1),-4)
  27.   add user
  28.   .$submenu($msn.submenu($1))
  29. }
  30. alias -l msn.submenu {
  31.   if ($1 == begin) return -
  32.   if ($1 == end) return - 
  33.   if ($1 !isalpha) && ($1 >= 0) && ($1 <= $did(msn.config,303).lines) {
  34.     return $gettok($did(msn.config,303,$1),-1,32) $+ :msn.addchatuser $right($left($gettok($did(msn.config,303,$1),-1,32),-1),-1) $remove($did(msn.config,303,$1),$gettok($did(msn.config,303,$1),-1,32)) $left($right($active,-1),-4)
  35.   }
  36. }
  37. alias msn.addchatuser {
  38.   sockwrite  -n msnchat. $+ $gettok($1-,-1,32) CAL 2 $gettok($1-,1,32)
  39. }
  40. alias msn.ping {
  41.   if ($sock(msnchat. $+ $left($right($active,-1),-4))) {
  42.     echo -t $active  $+ $colour(ctcp text) $+ %msnmircfont $+ [:. ó PING sent ]
  43.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) MSG 1337 A $calc($len(* ping? pong!) + 131 + $len(%msncolour) + $len(%msnfont) )
  44.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) MIME-Version: 1.0
  45.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) Content-Type: text/plain; charset=UTF-8
  46.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF= $+ %msnfont $+ ; CO= $+ %msncolour $+ ; CS=0; PF=22
  47.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) 
  48.     sockwrite msnchat. $+ $left($right($active,-1),-4) * ping? pong!
  49.     set %msn.pingrec $ticks
  50.   }
  51. }
  52. alias msn.defaults {
  53.   set %msn.startup 1
  54.   set %msn.desktop d
  55.   if (%msn.loaded == 1) {
  56.     did -u msn.config 219,221,222
  57.     did -e msn.config 227
  58.   }
  59.   set %onlinex 150
  60.   set %onliney $window(-1).h
  61.   set %onlinexx 10
  62.   set %onlineyy 10
  63.   set %popuppoz 2
  64.   set %msn.server messenger.hotmail.com
  65.   set %msn.poptime 2500
  66.   set %msn.logging 1
  67.   set %msn.sounds 1
  68.   set %msn.typesound on
  69.   set %msn.ontop o
  70.   set %msn.loadlog 1
  71.   unset %msnfont
  72.   unset %msn.showtyping
  73.   unset %msn.owntyping
  74.   set %msn.echo.col $colour(normal text)
  75.   unset %msnmircfont
  76.   unset %msnfont 
  77.   set %msncolour 0
  78.   window -c @msnpicolour
  79.   window -dhnp +nL @msnpicolour -5 -5 124 24
  80.   ;drawrect -f @msnpicolour $color(background) 1 1 1 120 20
  81.   drawtext -pbo @msnpicolour $colour(normal text) $color(background) Terminal 14 5 3 Change Font Colour
  82.   drawsave @msnpicolour " $+ $scriptdir $+ colour.bmp $+ "
  83.   if (%msn.loaded == 1) {
  84.     .did -g msn.config 398 " $+ $scriptdir $+ colour.bmp $+ "
  85.     ;dialog -c msn.config msn.config
  86.   }
  87.   .timer898 -moc 1 1500 .load -rs " $+ $scriptdir $+ md5.mrc $+ "
  88.   if ($dialog(msn.config) == msn.config ) && (%msn.loaded == 1) {
  89.     dialog -c msn.config msn.config
  90.     .timer -moc 1 100 dialog -mdv $+ %msn.ontop msn.config msn.config 
  91.   }
  92.   if (%msn.loaded == 1) {
  93.     .timer -moc 1 150 msn.error Defaults have all been Reset :-) 
  94.     .timer -moc 1 200 Changetab 2
  95.   }
  96.   set %msn.loaded 1
  97. }
  98. on *:LOAD:{
  99.   if ($version < 6.00) echo -a  $+ $colour(info2) $+ *** You need mirc v6.00 or greater in order to use this addon.
  100.   msn.defaults
  101. }
  102. on *:START: if (%msn.startup == 1) { Tmsn }
  103.  
  104. alias -l sockwrite {
  105.   if (%msntest == 1) {
  106.     echo 4 $1-
  107.   }
  108.   if (*msn.main* iswm $1-) {
  109.     inc %msn.debug 1
  110.   }
  111.   sockwrite $1- 
  112. }
  113. ;Main configuration dialog
  114. dialog msn.config {
  115.   title "MSN :-)"
  116.   icon  " $+ $scriptdir $+ msn.ico "
  117.   icon 300, 198 221 100 100, " $+ $scriptdir $+ tmoid.jpg $+ "
  118.   icon 301, 170 190 100 100, " $+ $scriptdir $+ popuppoz.jpg $+ "
  119.   icon 398, 20 140 118 18, " $+ $scriptdir $+ colour.bmp $+ "
  120.   option dbu
  121.   size -1 -1 150 175
  122.  
  123.   ;hiden tabs
  124.   tab "", 1, -25 -25 1 1, disable hide
  125.   tab "", 2, -25 -25 1 1, disable hide
  126.   tab "", 3, -25 -25 1 1, disable hide
  127.   tab "", 4, -25 -25 1 1, disable hide
  128.  
  129.   ;config for tab 1
  130.   button "Sign In",100, 110 165 40 10, default  disable tab 1 group
  131.   button "Cancel",101, 70 165 40 10, cancel  tab 1
  132.   button "Options",102, 0 165 40 10,  tab 1
  133.   text "Msn email address goes here:", 52, 15 13 80 10, tab 1
  134.   text "Password here:", 53, 15 33 80 10, tab 1
  135.   edit %msn.signname, 54, 15 20 80 10, autohs tab 1
  136.   edit %msn.pass, 55, 15 40 80 10, autohs pass tab 1
  137.   check "", 59, 95 20 10 10, left tab 1 
  138.   check "", 56, 95 40 10 10, left hide tab 1 
  139.   text "Remember password", 57, 110 38 30 20, tab 1
  140.   text "Password rememberd", 570, 110 38 30 20, tab 1 hide
  141.   text "Signin invisible", 58, 110 18 30 20, tab 1
  142.   text "Signing In ...", 60, 101 130 46 10, tab 1 hide
  143.   box "Sign In", 61, 3 0 144 162, tab 1 
  144.   link "Bugs/Problems?" 62, 4 154 40 10,  tab 1
  145.  
  146.   ;config for tab 2
  147.   button "Sign In",201, 0 165 40 10,  default tab 2 group
  148.   button "Signed In",299, 0 165 40 10,  default tab 2 hide
  149.   button "Help",202, 110 165 40 10,  tab 2
  150.   button "Quit",203, 70 165 40 10,  disable tab 2
  151.   button "Change Sign In name", 216, 10 30 60 10, tab 2 
  152.   button "Set as new name", 218, 10 30 60 10, tab 2  hide
  153.   button "View Full Contact List", 206, 10 45 60 10, tab 2 
  154.   button "popup msg", 210, 80 45 60 10, tab 2 
  155.   button "View Conversation Logs", 212, 154 120 60 10, tab 2 
  156.   button "Turn Logging On", 213, 10 115 60 10, tab 2  hide
  157.   button "Turn Logging Off", 214, 10 115 60 10, tab 2 
  158.   button "Loadbuf logs", 223, 154 105 60 10, tab 2 
  159.   button "Logs will buffer", 224, 154 105 60 10, tab 2  hide
  160.   edit %msn.nickname, 217, 80 30 60 10, tab 2 autohs disable
  161.   check "", 219, 80 90 10 10, tab 2 push 
  162.   check "", 220, 130 90 10 10, tab 2 push 
  163.   check "", 221, 80 140 10 10, tab 2 push 
  164.   check "", 222, 130 140 10 10, tab 2 push 
  165.   box "Preferences", 225, 3 0 144 162, tab 2 
  166.   edit %msn.poptime, 227, 100 85 20 10,  tab 2
  167.   text "Millseconds to stay up", 228, 83 75 60 10,  tab 2
  168.   button "Msn Loads on Mirc Start", 229, 154 15 60 10, tab 2  hide 
  169.   button "Start Msn with Mirc", 230, 154 15 60 10, tab 2 
  170.   button "Sound Off", 231, 154 60 60 10, tab 2  hide
  171.   button "Sound On", 232, 154 60 60 10, tab 2 
  172.   button "Advanced Options >>>", 233, 10 130 60 10, tab 2 
  173.   button "Simple Options <<<", 234, 10 130 60 10, tab 2  hide
  174.   box "Advanced Options", 235, 146 0 76 162, tab 2  hide
  175.   edit "", 239, -25 -25 10 10, 
  176.   button "Desktop Windows Off", 240, 154 45 60 10, tab 2 
  177.   button "Desktop Windows On", 241, 154 45 60 10, tab 2  hide
  178.   button "Reset Defaults", 242, 154 145 60 10, tab 2 
  179.   button "Keep Msn Ontop", 243, 154 30 60 10, tab 2  hide
  180.   button "Msn is Ontop", 244, 154 30 60 10, tab 2 
  181.   radio "Bold", 245, 8 82 35 10,  tab 2
  182.   radio "Underline", 246, 8 92 35 10,  tab 2
  183.   radio "Italic", 247, 47 82 25 10,  tab 2
  184.   radio "Normal", 248, 47 92 25 10,  tab 2
  185.   text "Copyright ⌐ Tmoid All Rights Reserved." 249, 5 148 50 15,  tab 2
  186.   button "Show Usertyping", 250, 154 75 60 10,  tab 2
  187.   button "Dont Show Usertyping", 251, 154 75 60 10,  tab 2 hide
  188.   button "Show if Your Typing" 252, 154 90 60 10,  tab 2
  189.   button "Dont Show You Typing", 253, 154 90 60 10,  tab 2 hide
  190.   text "Dedicated to Kylie-anne", 254, 89 155 60 8,  tab 2
  191.   button "Check Blocked", 255, 80 15 60 10,  tab 2
  192.   box "Text style", 257, 3 60 72 45, tab 2
  193.   box "Popup alert", 258, 74 60 73 102, tab 2
  194.   text "Online use only", 259, 13 15 50 10,  tab 2
  195.   box "", 260, 146 135 76 27, tab 2 hide
  196.  
  197.  
  198.   ;config for tab 3
  199.   button "Options", 302, 0 165 40 10,  tab 3 group
  200.   button "quit", 304, 110 165 40 10,  tab 3
  201.   button "chat with user", 305, 50 157 50 15,  tab 3
  202.   button "block user", 306, 109 6 35 10,  tab 3
  203.   button "add user", 307, 74 6 35 10,  tab 3
  204.   button "unblock user", 309, 109 6 35 10,  tab 3 hide disable
  205.   combo 308, 24 6 45 80, drop tab 3
  206.   list 303, 5 18 140 140, hsbar sort tab 3
  207.   box "Chat", 310, 3 0 144 154, tab 3 
  208.   button "reconect", 311, 110 165 40 10,  tab 3 hide
  209.  
  210.   ;config for tab 4
  211.   box "Full nick list", 410, 3 0 144 162, tab 4  group
  212.   list 411, 5 18 140 140, hsbar tab 4
  213.   button "back", 412, 0 165 40 10,  tab 4
  214.   button "delete user", 413, 109 6 35 10,  tab 4
  215.   button "add user", 414, 74 6 35 10,  tab 4
  216.   button "refresh", 415, 110 165 40 10,  tab 4
  217.   button "block user", 416, 39 6 35 10,  tab 4
  218.   button "unblock user", 417, 39 6 35 10,  tab 4 hide
  219.  
  220. }
  221.  
  222. ;on startup for all tabs
  223.  
  224. on *:dialog:msn.config:init:0: {
  225.  
  226.   if (%msn.closewindow == on) {
  227.     did -h msn.config 238
  228.     did -v msn.config 256
  229.   }
  230.   if (%msn.showtyping == off) {
  231.     did -h msn.config 250
  232.     did -v msn.config 251
  233.   }
  234.   if (%msn.owntyping == off) {
  235.     did -h msn.config 252
  236.     did -v msn.config 253
  237.   }
  238.   if (%msnfont == B) {
  239.     did -c msn.config 245
  240.   }
  241.   if (%msnfont == U) {
  242.     did -c msn.config 246
  243.   }
  244.   if (%msnfont == I) {
  245.     did -c msn.config 247
  246.   }
  247.   if (%msnfont == $null) {
  248.     did -c msn.config 248
  249.   }
  250.   if (%msn.loadlog == 1) {
  251.     did -h msn.config 223
  252.     did -v msn.config 224
  253.   }
  254.   if (%msn.ontop != o) {
  255.     did -h msn.config 244
  256.     did -v msn.config 243
  257.   }
  258.   if (%msn.desktop == d) {
  259.     did -h msn.config 240
  260.     did -v msn.config 241
  261.   }
  262.   did -f msn.config 239
  263.   did -h msn.config 398
  264.   if ( %msn.startup == 1 )  {
  265.     did -h msn.config 230
  266.     did -v msn.config 229
  267.   }
  268.   if ( %msn.sounds == 0 ) {
  269.     did -h msn.config 232
  270.     did -v msn.config 231
  271.   }
  272.   if ( %msn.logging == 0 ) {
  273.     did -h msn.config 214
  274.     did -v msn.config 213
  275.     did -b msn.config 212,223,224
  276.   }
  277.   set %msn.reconect 1
  278.   set %msn.status.con $null
  279.   if (%popuppoz == 1) {
  280.     did -c msn.config 219
  281.   }
  282.   elseif (%popuppoz == 2) {
  283.     did -c msn.config 220
  284.   }
  285.   elseif (%popuppoz == 3) {
  286.     did -c msn.config 221
  287.   }
  288.   elseif (%popuppoz == 4) {
  289.     did -c msn.config 222
  290.   }
  291.   elseif (%popuppoz == 5) {
  292.     did -b msn.config 227
  293.   }
  294.   else {
  295.     set %popuppoz 2
  296.   }
  297.   did -h msn.config 301
  298.   set %msn.server 207.46.104.20
  299.   ;messenger.hotmail.com
  300.   if (%msn.pass != $null) {
  301.     did -e msn.config 100
  302.     did -c msn.config 56
  303.     did -h msn.config 57
  304.     did -v msn.config 570
  305.   }
  306.   did -i msn.config 308 1 Online
  307.   did -i msn.config 308 2 Busy
  308.   did -i msn.config 308 3 Brb
  309.   did -i msn.config 308 4 Away
  310.   did -i msn.config 308 5 Out to Lunch
  311.   did -i msn.config 308 6 On the Phone
  312.   did -i msn.config 308 7 Appear Offline
  313. }
  314.  
  315. ;tab 1 edit configs
  316. on *:dialog:msn.config:uclick:*:{
  317.   did -f msn.config 239
  318. }
  319. on *:dialog:msn.config:edit:55:{
  320.   did -v msn.config 56,57
  321.   did -e msn.config 100
  322.   did -u msn.config 56
  323.   did -h msn.config 570
  324. }
  325. on *:dialog:msn.config:sclick:62:{
  326.   run "mailto:msn@tmoid.com?subject=Tmsn Bug report"
  327. }
  328. ;Sign In button
  329. on *:dialog:msn.config:sclick:100:{
  330.   if (*@* !iswm $did(msn.config,54).text) {
  331.     halt 
  332.   }
  333.   set %msn.signname $did(54)
  334.   .timer891 -moc 4 1000 did -g msn.config 300 " $+ $scriptdir $+ msn.ico $+ "
  335.   .timer892 -moc 1 500 _timer89
  336.   .timer894 -moc 1 4000 changetab 3 
  337.   did -v msn.config 60
  338.   did -b msn.config 102
  339.   did -e msn.config 203
  340.   dialog -t msn.config MSN :-) <- conecting ->
  341.   if ($did(56).state == 1) {
  342.     set %msn.pass $did(55)
  343.     set %msn.passbox %msn.pass
  344.     did -h msn.config 56,57
  345.     did -v msn.config 570
  346.   }
  347.   elseif ($did(56).state == 0) {
  348.     set %msn.passbox $did(55)
  349.     set %msn.pass $null
  350.   }
  351.   did -b msn.config 100
  352.   did -b msn.config 101
  353.   set %msn.reconect 1
  354.   msnconect 
  355. }  
  356. alias msnconect {
  357.   if (%msn.reconect == 1) {
  358.     if ($hget(msnblock) != $null ) {
  359.       hdel -w msnblock *
  360.     }
  361.     did -r msn.config 303
  362.     set %msn.debug 4
  363.     sockclose msn.main
  364.     sockopen msn.main %msn.server 1863
  365.     .timer901 -oc 1 40 msn.checksock1
  366.     .timer902 -oc 1 120 msn.checksock2
  367.     ;echo -a Reconecting Msn
  368.     did -h msn.config 311
  369.     did -v msn.config 304
  370.   }
  371. }
  372. alias -l msn.checksock1 {
  373.   ;echo 4 checked socket
  374.   if (%msn.sockopen != 1) {
  375.     msnconect
  376.     ;echo 4 checked sockopen
  377.   }
  378. }
  379. alias -l msn.checksock2 {
  380.   if (%msn.status.con != 1) {
  381.     msnconect
  382.     ;echo 4 checked fully connected
  383.   }
  384. }                     
  385. alias msnretry {
  386.   .timer899 -moc 1 1000 msnconect 
  387.   ;sockopen msn.main %msn.server 1863
  388. }
  389. on *:sockclose:msn.main:{
  390.   set %msn.status.con $null
  391.   if (XFR*NS* !iswm %msn.buffer) { 
  392.     ;echo -a lost msn connection
  393.     echo -a reconnecting ...
  394.     set %msn.server 207.46.104.20
  395.     ;messenger.hotmail.com
  396.     ;set %msn.server 64.4.13.17
  397.     dialog -t msn.config MSN :-) <- Disconected ->
  398.     sockclose msn.main
  399.     did -r msn.config 303
  400.     if (%msn.reconect == 0) {
  401.       did -z msn.config 303
  402.     }
  403.     ;did -oc msn.config 308 0 Offline
  404.     if (%msn.reconect == 1) {
  405.       msnconect
  406.       msnretry
  407.     }
  408.     did -h msn.config 304
  409.     did -v msn.config 311
  410.   }
  411. }
  412. on *:sockopen:msn.main:{
  413.   dialog -t msn.config MSN :-) <- Socket Open ->
  414.   sockwrite -n msn.main VER %msn.debug MSNP7 MSNP6 MSNP5 MSNP4 CVRO
  415.   set %msn.sockopen 1
  416. }
  417. on *:sockread:msn.main:{
  418.   if ($sockerr > 0) {
  419.     return
  420.   }
  421.   :nextread
  422.   sockread %msn.buffer
  423.   if ($sockbr == 0) {
  424.     return
  425.   }
  426.   if (%msn.buffer == $null) { goto afterlogin }
  427.   ;echo 7 %msn.buffer
  428.   if (USR*MD5* iswm %msn.buffer) { 
  429.     sockwrite -n msn.main USR %msn.debug MD5 S $md5($gettok(%msn.buffer,5,32) $+ %msn.passbox)
  430.     dialog -t msn.config MSN :-) <- Hashing Password ->
  431.   }
  432.   :afterlogin
  433.   if (VER*MSNP4 iswm %msn.buffer) {
  434.     sockwrite -n msn.main INF %msn.debug
  435.     dialog -t msn.config MSN :-) <- Sent VER ->
  436.   }
  437.   if (INF*MD5 iswm %msn.buffer) {
  438.     sockwrite -n msn.main USR %msn.debug  MD5  I  %msn.signname
  439.     dialog -t msn.config MSN :-) <- Sent USR ->
  440.   }
  441.   if (XFR*NS* iswm %msn.buffer) { 
  442.     set %msn.server $gettok($gettok(%msn.buffer,4,32),1,58)
  443.     sockclose msn.main
  444.     dialog -t msn.config MSN :-) <- Closing Socket ->
  445.     .timer899 -moc 1 1000 sockopen msn.main %msn.server 1863
  446.     ;echo -a opening new sock to %msn.server
  447.     dialog -t msn.config MSN :-) <- Socket Open ->
  448.   }
  449.   if ( $left(%msn.buffer,3) == CHL ) { 
  450.     sockwrite -n msn.main QRY %msn.debug msmsgs@msnmsgr.com 32 
  451.     sockwrite msn.main $md5($gettok(%msn.buffer,3,32) $+ Q1P7W2E4J9R8U3S5)
  452.     dialog -t msn.config MSN :-) <- Sent QRY ->
  453.   }
  454.   if (USR*OK* iswm %msn.buffer) { 
  455.     if ($did(msn.config,59).state == 1) {
  456.       sockwrite -n msn.main CHG %msn.debug HDN
  457.       did -oc msn.config 308 7 Appear Offline
  458.     }
  459.     else {
  460.       sockwrite -n msn.main CHG %msn.debug NLN
  461.       did -oc msn.config 308 1 Online
  462.     }
  463.     sockwrite -n msn.main LST %msn.debug BL
  464.     dialog -t msn.config MSN :-) <- User Ok ->
  465.     set %msn.status.con 1
  466.     set %msn.nickname $remov20($gettok(%msn.buffer,5,32))
  467.     did -r msn.config 217
  468.     did -a msn.config 217 $remov20($gettok(%msn.buffer,5,32)) 
  469.   }
  470.   if (QRY* iswm %msn.buffer) { 
  471.     dialog -t msn.config MSN :-) <- Fully Connected ->
  472.     set %msn.status.con 1
  473.     did -h msn.config 311
  474.     did -v msn.config 304
  475.   }
  476.   if (OUT*OTH* iswm %msn.buffer) { 
  477.     set %msn.reconect 0
  478.     did -r msn.config 303
  479.     msn.error You have been signed out of .NET Messenger Service because you signed in at another location.
  480.     did -e msn.config 100
  481.   }
  482.   if (911* iswm %msn.buffer) { 
  483.     set %msn.reconect 0
  484.     did -r msn.config 303
  485.     msn.error Signing in to .NET Messenger Sevice failed because the password is incorrect of the sign-in name does not exsist.
  486.   }
  487.   if ( $left(%msn.buffer,3) == ILN ) {  
  488.     if  ( $gettok(%msn.buffer,3,32) == NLN ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,5-,32)) < $+ $gettok(%msn.buffer,4,32) $+ > }
  489.     if  ( $gettok(%msn.buffer,3,32) == AWY ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,5-,32)) [AWAY] < $+ $gettok(%msn.buffer,4,32) $+ > }
  490.     if  ( $gettok(%msn.buffer,3,32) == BSY ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,5-,32)) [BUSY] < $+ $gettok(%msn.buffer,4,32) $+ > }
  491.     if  ( $gettok(%msn.buffer,3,32) == BRB ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,5-,32)) [BRB] < $+ $gettok(%msn.buffer,4,32) $+ > }
  492.     if  ( $gettok(%msn.buffer,3,32) == PHN ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,5-,32)) [PHONE] < $+ $gettok(%msn.buffer,4,32) $+ > }
  493.     if  ( $gettok(%msn.buffer,3,32) == LUN ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,5-,32)) [LUNCH] < $+ $gettok(%msn.buffer,4,32) $+ > }
  494.     if  ( $gettok(%msn.buffer,3,32) == IDL ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,5-,32)) [IDLE] < $+ $gettok(%msn.buffer,4,32) $+ > } 
  495.     did -z msn.config 303
  496.   }  
  497.   if ( $left(%msn.buffer,3) = NLN ) { 
  498.     set %msnemail * $+ $gettok(%msn.buffer,3,32) $+ *
  499.     if  ( $gettok(%msn.buffer,2,32) == NLN ) { 
  500.       if ($didwm(msn.config,303,%msnemail,1) == 0) {
  501.         did -a msn.config 303 $remov20($gettok(%msn.buffer,4-,32)) < $+ $gettok(%msn.buffer,3,32) $+ > 
  502.       }
  503.       set %user.online $remov20($gettok(%msn.buffer,4-,32))
  504.       set %msn.emailonline $gettok(%msn.buffer,3,32)
  505.       msn.pic
  506.       did -z msn.config 303
  507.     }
  508.     if ($didwm(msn.config,303,%msnemail,1) != 0) {
  509.       if $hfind(msnblock,$gettok(%msn.buffer,-1,32)) == $null) {
  510.         set %msn.overwriteline $didwm(msn.config,303,%msnemail,1)
  511.         if  ( $gettok(%msn.buffer,2,32) == AWY ) { did -o msn.config 303 %msn.overwriteline $remov20($gettok(%msn.buffer,4-,32)) [AWAY]  < $+ $gettok(%msn.buffer,3,32) $+ > }
  512.         if  ( $gettok(%msn.buffer,2,32) == BSY ) { did -o msn.config 303 %msn.overwriteline $remov20($gettok(%msn.buffer,4-,32)) [BUSY] < $+ $gettok(%msn.buffer,3,32) $+ > }
  513.         if  ( $gettok(%msn.buffer,2,32) == BRB ) { did -o msn.config 303 %msn.overwriteline $remov20($gettok(%msn.buffer,4-,32)) [BRB] < $+ $gettok(%msn.buffer,3,32) $+ > }
  514.         if  ( $gettok(%msn.buffer,2,32) == PHN ) { did -o msn.config 303 %msn.overwriteline $remov20($gettok(%msn.buffer,4-,32)) [PHONE] < $+ $gettok(%msn.buffer,3,32) $+ > }
  515.         if  ( $gettok(%msn.buffer,2,32) == LUN ) { did -o msn.config 303 %msn.overwriteline $remov20($gettok(%msn.buffer,4-,32)) [LUNCH] < $+ $gettok(%msn.buffer,3,32) $+ > }
  516.         if  ( $gettok(%msn.buffer,2,32) == IDL ) { did -o msn.config 303 %msn.overwriteline $remov20($gettok(%msn.buffer,4-,32)) [IDLE] < $+ $gettok(%msn.buffer,3,32) $+ > } 
  517.         if  ( $gettok(%msn.buffer,2,32) == NLN ) {
  518.           if ($didwm(msn.config,303,*away*,1) != 0) || ($didwm(msn.config,303,*busy*,1) != 0) || ($didwm(msn.config,303,*brb*,1) != 0) || ($didwm(msn.config,303,*phone*,1) != 0) || ($didwm(msn.config,303,*lunch*,1) != 0) || ($didwm(msn.config,303,*idle*,1) != 0) {
  519.             did -o msn.config 303 %msn.overwriteline $remov20($gettok(%msn.buffer,4-,32)) < $+ $gettok(%msn.buffer,3,32) $+ > 
  520.           } 
  521.         }
  522.       }
  523.       elseif $hfind(msnblock,$gettok(%msn.buffer,-1,32)) != $null) {
  524.         ;echo 11 $hfind(msnblock,$gettok(%msn.buffer,-1,32))
  525.         set %msn.overwriteline $didwm(msn.config,303,%msnemail,1)
  526.         if  ( $gettok(%msn.buffer,2,32) == AWY ) { did -o msn.config 303 %msn.overwriteline BLOCKED $+ $remov20($gettok(%msn.buffer,4-,32)) [AWAY]  < $+ $gettok(%msn.buffer,3,32) $+ > }
  527.         if  ( $gettok(%msn.buffer,2,32) == BSY ) { did -o msn.config 303 %msn.overwriteline BLOCKED $+ $remov20($gettok(%msn.buffer,4-,32)) [BUSY] < $+ $gettok(%msn.buffer,3,32) $+ > }
  528.         if  ( $gettok(%msn.buffer,2,32) == BRB ) { did -o msn.config 303 %msn.overwriteline BLOCKED $+ $remov20($gettok(%msn.buffer,4-,32)) [BRB] < $+ $gettok(%msn.buffer,3,32) $+ > }
  529.         if  ( $gettok(%msn.buffer,2,32) == PHN ) { did -o msn.config 303 %msn.overwriteline BLOCKED $+ $remov20($gettok(%msn.buffer,4-,32)) [PHONE] < $+ $gettok(%msn.buffer,3,32) $+ > }
  530.         if  ( $gettok(%msn.buffer,2,32) == LUN ) { did -o msn.config 303 %msn.overwriteline BLOCKED $+ $remov20($gettok(%msn.buffer,4-,32)) [LUNCH] < $+ $gettok(%msn.buffer,3,32) $+ > }
  531.         if  ( $gettok(%msn.buffer,2,32) == IDL ) { did -o msn.config 303 %msn.overwriteline BLOCKED $+ $remov20($gettok(%msn.buffer,4-,32)) [IDLE] < $+ $gettok(%msn.buffer,3,32) $+ > } 
  532.         if  ( $gettok(%msn.buffer,2,32) == NLN ) {
  533.           if ($didwm(msn.config,303,*away*,1) != 0) || ($didwm(msn.config,303,*busy*,1) != 0) || ($didwm(msn.config,303,*brb*,1) != 0) || ($didwm(msn.config,303,*phone*,1) != 0) || ($didwm(msn.config,303,*lunch*,1) != 0) || ($didwm(msn.config,303,*idle*,1) != 0) {
  534.             did -o msn.config 303 %msn.overwriteline BLOCKED $+ $remov20($gettok(%msn.buffer,4-,32)) < $+ $gettok(%msn.buffer,3,32) $+ > 
  535.           } 
  536.         }
  537.       }
  538.       did -z msn.config 303
  539.     }
  540.     elseif ($didwm(msn.config,303,%msnemail,1) == 0) {
  541.       if  ( $gettok(%msn.buffer,2,32) == AWY ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,4-,32)) [AWAY]  < $+ $gettok(%msn.buffer,3,32) $+ > }
  542.       if  ( $gettok(%msn.buffer,2,32) == BSY ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,4-,32)) [BUSY] < $+ $gettok(%msn.buffer,3,32) $+ > }
  543.       if  ( $gettok(%msn.buffer,2,32) == BRB ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,4-,32)) [BRB] < $+ $gettok(%msn.buffer,3,32) $+ > }
  544.       if  ( $gettok(%msn.buffer,2,32) == PHN ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,4-,32)) [PHONE] < $+ $gettok(%msn.buffer,3,32) $+ > }
  545.       if  ( $gettok(%msn.buffer,2,32) == LUN ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,4-,32)) [LUNCH] < $+ $gettok(%msn.buffer,3,32) $+ > }
  546.       if  ( $gettok(%msn.buffer,2,32) == IDL ) { did -a msn.config 303 $remov20($gettok(%msn.buffer,4-,32)) [IDLE] < $+ $gettok(%msn.buffer,3,32) $+ > } 
  547.     }
  548.     did -z msn.config 303
  549.   }
  550.   if (LST*BL* iswm %msn.buffer) { 
  551.     if ($right(%msn.buffer,1) == 0 ) { halt }
  552.     set %msnblockemail * $+ $gettok(%msn.buffer,-2,32) $+ *
  553.     hadd -m msnblock $gettok(%msn.buffer,-2,32)
  554.     if ($didwm(msn.config,303,%msnblockemail,1) != 0) {
  555.       set %msn.overwriteblockline $didwm(msn.config,303,%msnblockemail,1)
  556.       if ($left($did(msn.config,303,%msn.overwriteblockline),7) != BLOCKED ) {
  557.         did -o msn.config 303 %msn.overwriteblockline BLOCKED $did(msn.config,303,%msn.overwriteblockline)
  558.       }
  559.     }
  560.     did -z msn.config 303
  561.   }
  562.   if ( $left(%msn.buffer,3) == FLN ) { 
  563.     echo -t @msnuserlog  $+ $colour(part text) $gettok(%msn.buffer,-1,32) logged off at $time $date
  564.     if ($didwm(msn.config,303,* $+ $gettok(%msn.buffer,-1,32) $+ *) != 0 ) {
  565.       did -d msn.config 303 $didwm(msn.config,303,* $+ $gettok(%msn.buffer,-1,32) $+ *)
  566.       did -z msn.config 303
  567.     }
  568.   }
  569.   if ( $left(%msn.buffer,3) == LST ) { 
  570.     if (*FL* iswm %msn.buffer) {
  571.       set %msnallusers < $+ $gettok(%msn.buffer,7,32) $+ > $remov20($gettok(%msn.buffer,8-,32))
  572.       did -a msn.config 411 $deltok(%msnallusers,-1,32)
  573.       if ($hfind(msnblock,$gettok(%msn.buffer,7,32)) != $null) {
  574.         did -o msn.config 411 $didwm(msn.config,411,* $+ $gettok(%msn.buffer,7,32) $+ *,1) BLOCKED $did(msn.config,411,$didwm(msn.config,411,* $+ $gettok(%msn.buffer,7,32) $+ *,1))
  575.       }
  576.       did -z msn.config 411
  577.     }
  578.   }
  579.   if ( $left(%msn.buffer,3) == RNG ) {
  580.     set %msnsessid $gettok(%msn.buffer,2,32)
  581.     set %msn.answerstatus 1
  582.     set %msnchatemail $gettok(%msn.buffer,-2,32)
  583.     set %msn.chatserver $gettok(%msn.buffer,3,32)
  584.     ;echo 4 msnchat. $+ %msnchatemail $gettok(%msn.chatserver,1,58) $gettok(%msn.chatserver,2,58)
  585.     sockclose msnchat. $+ %msnchatemail $gettok(%msn.chatserver,1,58) $gettok(%msn.chatserver,2,58)
  586.     sockopen msnchat. $+ %msnchatemail $gettok(%msn.chatserver,1,58) $gettok(%msn.chatserver,2,58)
  587.     set %msn.chat.hash $gettok(%msn.buffer,5,32)
  588.     if ($window(@ $+ $gettok(%msn.buffer,-2,32) $+ -msn) != @ $+ $gettok(%msn.buffer,-2,32) $+ -msn) {
  589.       set %msnalreadyopen no
  590.       window -akez $+ %msn.desktop @ $+ $gettok(%msn.buffer,-2,32) $+ -msn -1 -1 400 200 " $+ $scriptdir $+ msn.ico $+ "
  591.     }
  592.     ;aline  -cp @ $+ $gettok(%msn.buffer,-2,32) $+ -msn Connecting to 12< $+ $remov20($gettok(%msn.buffer,-1,32)) $+ > 4 it'll just be a sec ;p~
  593.     titlebar @ $+ $gettok(%msn.buffer,-2,32) $+ -msn Connected $remov20($gettok(%msn.buffer,-1,32))
  594.     if (%msn.logging == 1) {
  595.       .log on $active -f $gettok(%msn.buffer,-2,32) $+ -msn $+ .log
  596.       set %msnlogfile " $+ $window($active).logfile $+ "
  597.       if (%msn.loadlog == 1) && (%msnalreadyopen == no) {
  598.         loadbuf 200 -p $active %msnlogfile
  599.         unset %msnalreadyopen
  600.       }
  601.     }
  602.     set %msnchatemail $left($right($active,-1),-4)
  603.   }
  604.   if ( $left(%msn.buffer,3) == XFR ) && ( $gettok(%msn.buffer,3,32) == SB ) {
  605.     set %msn.chatserver $gettok(%msn.buffer,4,32)
  606.     sockclose msnchat. $+ %msnchatemail $gettok(%msn.chatserver,1,58) $gettok(%msn.chatserver,2,58)
  607.     sockopen msnchat. $+ %msnchatemail $gettok(%msn.chatserver,1,58) $gettok(%msn.chatserver,2,58)
  608.     set %msn.chat.hash $gettok(%msn.buffer,6,32)
  609.   }
  610.   if ( $left(%msn.buffer,3) == 200 ) {
  611.     msn.error Syntax error 
  612.   }
  613.   if ( $left(%msn.buffer,3) == 201 ) {
  614.     msn.error Invalid parameter 
  615.   }
  616.   if ( $left(%msn.buffer,3) == 205 ) {
  617.     msn.error Invalid user 
  618.   }
  619.   if ( $left(%msn.buffer,3) == 206 ) {
  620.     msn.error Domain name missing 
  621.   }
  622.   if ( $left(%msn.buffer,3) == 207 ) {
  623.     msn.error Already logged in
  624.   }
  625.   if ( $left(%msn.buffer,3) == 208 ) {
  626.     msn.error Invalid username 
  627.   }
  628.   if ( $left(%msn.buffer,3) == 209 ) {
  629.     msn.error Invalid fusername 
  630.   }
  631.   if ( $left(%msn.buffer,3) == 210 ) {
  632.     msn.error User list full 
  633.   }
  634.   if ( $left(%msn.buffer,3) == 215 ) {
  635.     msn.error User already there 
  636.   }
  637.   if ( $left(%msn.buffer,3) == 216 ) {
  638.     msn.error User already on list 
  639.   }
  640.   if ( $left(%msn.buffer,3) == 218 ) {
  641.     msn.error Already in mode 
  642.   }
  643.   if ( $left(%msn.buffer,3) == 219 ) {
  644.     msn.error User is in the opposite list 
  645.   }
  646.   if ( $left(%msn.buffer,3) == 280 ) {
  647.     msn.error Switchboard failed 
  648.   }
  649.   if ( $left(%msn.buffer,3) == 281 ) {
  650.     msn.error Transfer to switchboard failed 
  651.   }
  652.   if ( $left(%msn.buffer,3) == 300 ) {
  653.     msn.error Required field missing 
  654.   }
  655.   if ( $left(%msn.buffer,3) == 302 ) {
  656.     msn.error Not logged in 
  657.   }
  658.   if ( $left(%msn.buffer,3) == 500 ) {
  659.     msn.error Internal server error 
  660.   }
  661.   if ( $left(%msn.buffer,3) == 501 ) {
  662.     msn.error Database server error 
  663.   }
  664.   if ( $left(%msn.buffer,3) == 510 ) {
  665.     msn.error File operation failed 
  666.   }
  667.   if ( $left(%msn.buffer,3) == 520 ) {
  668.     msn.error Memory allocation failed 
  669.   }
  670.   if ( $left(%msn.buffer,3) == 600 ) {
  671.     msn.error Server is busy
  672.     ;set %msn.reconect 0
  673.   }
  674.   if ( $left(%msn.buffer,3) == 601 ) {
  675.     msn.error Server is unavaliable
  676.     ;set %msn.reconect 0
  677.   }
  678.   if ( $left(%msn.buffer,3) == 602 ) {
  679.     msn.error Peer nameserver is down 
  680.   }
  681.   if ( $left(%msn.buffer,3) == 603 ) {
  682.     msn.error Database connection failed 
  683.   }
  684.   if ( $left(%msn.buffer,3) == 604 ) {
  685.     msn.error Server is going down 
  686.   }
  687.   if ( $left(%msn.buffer,3) == 707 ) {
  688.     msn.error  Could not create connection
  689.   }
  690.   if ( $left(%msn.buffer,3) == 711 ) {
  691.     msn.error Write is blocking 
  692.   }
  693.   if ( $left(%msn.buffer,3) == 712 ) {
  694.     msn.error Session is overloaded 
  695.   }
  696.   if ( $left(%msn.buffer,3) == 713 ) {
  697.     msn.error Too many active users 
  698.   }
  699.   if ( $left(%msn.buffer,3) == 715 ) {
  700.     msn.error Not expected 
  701.   }
  702.   if ( $left(%msn.buffer,3) == 717 ) {
  703.     msn.error Bad friend file 
  704.   }
  705.   if ( $left(%msn.buffer,3) == 913 ) {
  706.     msn.error Not allowed when offline 
  707.   }
  708.   if ( $left(%msn.buffer,3) == 920 ) {
  709.     msn.error Not accepting new users 
  710.   }
  711.   if ( $left(%msn.buffer,3) == 924 ) {
  712.     msn.error Passport account not yet verified 
  713.   }
  714. }
  715. on *:sockopen:msnchat.*:{
  716.   set %msn.$gettok($sockname,2-,46) 1
  717.   ;echo 5 $gettok($sockname,2-,46)
  718.   if (%msn.answerstatus == 1) { 
  719.     sockwrite -n $sockname ANS %msn.$gettok($sockname,2-,46) %msn.signname %msn.chat.hash %msnsessid
  720.     ;echo 12  -n $sockname ANS %msn.$gettok($sockname,2-,46) %msn.signname %msn.chat.hash %msnsessid
  721.     set %msn.answerstatus 0
  722.   }
  723.   elseif (%msn.answerstatus != 1)  {
  724.     sockwrite -n $sockname USR %msn.$gettok($sockname,2-,46) %msn.signname %msn.chat.hash
  725.     ;echo 7  -n $sockname USR %msn.$gettok($sockname,2-,46) %msn.signname %msn.chat.hash
  726.   }
  727.   ;echo 4  -n $sockname USR %msn.$gettok($sockname,2-,46) %msn.signname %msn.chat.hash
  728.   inc %msn.$gettok($sockname,2-,46) 1
  729. }
  730. on *:sockread:msnchat.*:{
  731.   if ($sockerr > 0) {
  732.     return
  733.   }
  734.   :nextread
  735.   sockread -f %msnchat.buffer
  736.   if ($sockbr == 0) {
  737.     return
  738.   }
  739.   if (%msnchat.buffer == $null) {
  740.     set %msnchat.buffer --
  741.   }
  742.   ;echo 11 %msnchat.buffer
  743.   if ($left(%msnchat.buffer,3) == BYE) && ($gettok(%msnchat.buffer,2,32) == $right($sockname,-8)) {
  744.     if ($left($window(@  $+ $gettok(%msnchat.buffer,2,32) $+ -msn).title,9) == Connected) {
  745.       titlebar @ $+ $gettok(%msnchat.buffer,2,32) $+ -msn Disconnected $right($window(@  $+ $gettok(%msnchat.buffer,2,32) $+ -msn).title,-10)
  746.     }
  747.     elseif ($left($window(@  $+ $gettok(%msnchat.buffer,2,32) $+ -msn).title,9) != Disconnected) {
  748.       titlebar @ $+ $gettok(%msnchat.buffer,2,32) $+ -msn Disconnected $window(@  $+ $gettok(%msnchat.buffer,2,32) $+ -msn).title
  749.     }
  750.   }
  751.   elseif ($left(%msnchat.buffer,3) == BYE) {
  752.     dline -l @ $+ $right($sockname,-8) $+ -msn $fline(@ $+ $right($sockname,-8) $+ -msn,* $+ $gettok(%msnchat.buffer,2,32) $+ *,1,1)
  753.     aline 4 @ $+ $right($sockname,-8) $+ -msn $gettok(%msnchat.buffer,2,32) has left the conversation.
  754.   }
  755.   if ($left(%msnchat.buffer,3) == JOI) && ($gettok(%msnchat.buffer,2,32) == $right($sockname,-8)) {
  756.     if ($left($window(@  $+ $gettok(%msnchat.buffer,2,32) $+ -msn).title,12) == Disconnected) {
  757.       titlebar @ $+ $gettok(%msnchat.buffer,2,32) $+ -msn Connected $right($window(@  $+ $gettok(%msnchat.buffer,2,32) $+ -msn).title,-13)
  758.     }
  759.     elseif ($left($window(@  $+ $gettok(%msnchat.buffer,2,32) $+ -msn).title,9) != Connected) {
  760.       titlebar @ $+ $gettok(%msnchat.buffer,2,32) $+ -msn Connected $window(@  $+ $gettok(%msnchat.buffer,2,32) $+ -msn).title
  761.     }
  762.     ;hadd -m msn.chat. $+ $right($sockname,-8) $gettok(%msnchat.buffer,3-,32)
  763.     if ($gettok(%msn.privmsg,1,32) == $right($sockname,-8)) {
  764.       sockwrite -n $sockname MSG 1 A $calc($len($gettok(%msn.privmsg,2-,32)) + 131 + $len(%msncolour) + $len(%msnfont) )
  765.       sockwrite -n $sockname MIME-Version: 1.0
  766.       sockwrite -n $sockname Content-Type: text/plain; charset=UTF-8
  767.       sockwrite -n $sockname X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF= $+ %msnfont $+ ; CO= $+ %msncolour $+ ; CS=0; PF=22
  768.       sockwrite -n $sockname 
  769.       sockwrite $sockname $gettok(%msn.privmsg,2-,32)
  770.       inc %msn.$left($right($active,-1),-4)
  771.       unset %msn.privmsg
  772.     }
  773.     else {
  774.       echo @ $+ $right($sockname,-8) $+ -msn  $+ $colour(join text) $remov20($gettok(%msnchat.buffer,3-,32)) has been added to the conversation
  775.     }
  776.   }
  777.   elseif ($left(%msnchat.buffer,3) == JOI) {
  778.     if (%msn.iro [ $+ [ $right($sockname,-8) ] ] == 1) {
  779.       aline -l @ $+ $right($sockname,-8) $+ -msn $gettok(%msnchat.buffer,2,32)
  780.     }
  781.     else {
  782.       set %msn.iro [ $+ [ $right($sockname,-8) ] ] 1
  783.       window -c @ $+ $right($sockname,-8) $+ -msn
  784.       window -akel20z $+ %msn.desktop @ $+ $right($sockname,-8) $+ -msn -1 -1 400 200 " $+ $scriptdir $+ msn.ico $+ "
  785.       aline -l @ $+ $right($sockname,-8) $+ -msn $right($sockname,-8)
  786.       aline -l @ $+ $right($sockname,-8) $+ -msn $gettok(%msnchat.buffer,2,32)
  787.     }
  788.     if (%msn.logging == 1) {
  789.       .log on @ $+ $right($sockname,-8) $+ -msn -f $gettok(%msn.buffer,-2,32) $+ -msn $+ .log
  790.       set %msnlogfile " $+ $window(@ $+ $right($sockname,-8) $+ -msn).logfile $+ "
  791.       if (%msn.loadlog == 1) {
  792.         loadbuf 200 -p @ $+ $right($sockname,-8) $+ -msn %msnlogfile
  793.       }
  794.     }
  795.     aline 4 @ $+ $right($sockname,-8) $+ -msn $gettok(%msnchat.buffer,2,32) has joined the conversation.
  796.   }
  797.  
  798.   if ($left(%msnchat.buffer,3) == 217) {
  799.     msn.error User is now offline!
  800.     .sockclose $sockname
  801.     return
  802.     return
  803.   }
  804.   if ($left(%msnchat.buffer,3) == 216) {
  805.     msn.error User can not be reached, possibly you are blocked
  806.     .sockclose $sockname
  807.     return
  808.     return
  809.   }
  810.   if ($left(%msnchat.buffer,3) == 215) {
  811.     msn.error You can not msg yourself
  812.     .sockclose $sockname
  813.     return
  814.     return
  815.   }
  816.   if (%msnchat.buffer == ACK 1337) {
  817.     echo -t @ $+ $right($sockname,-8) $+ -msn  $+ $colour(ctcp text) $+ [:. ó PING reply of $left($calc((($ticks - %msn.pingrec) / 1000) / 2),-1) s ]
  818.   }
  819.   if ($left(%msnchat.buffer,3) == NAK) {
  820.     msn.error Msg to $right($sockname,-8) not recieved
  821.   }
  822.   if (BYE* iswm %msnchat.buffer ) {
  823.     .sockclose $sockname
  824.     return
  825.     return
  826.   }
  827.   if ($left(%msnchat.buffer,3) == IRO) {
  828.     if ($gettok(%msnchat.buffer,4,32) != 1) {
  829.       set %msn.iro [ $+ [ $right($sockname,-8) ] ] 1
  830.       if ($gettok(%msnchat.buffer,3,32) == 1) {
  831.         window -c @ $+ $right($sockname,-8) $+ -msn
  832.         window -akel20z $+ %msn.desktop @ $+ $right($sockname,-8) $+ -msn -1 -1 400 200 " $+ $scriptdir $+ msn.ico $+ "
  833.       }
  834.       if (%msn.logging == 1) {
  835.         .log on @ $+ $right($sockname,-8) $+ -msn -f $gettok(%msn.buffer,-2,32) $+ -msn $+ .log
  836.         set %msnlogfile " $+ $window(@ $+ $right($sockname,-8) $+ -msn).logfile $+ "
  837.         if (%msn.loadlog == 1) {
  838.           loadbuf 200 -p @ $+ $right($sockname,-8) $+ -msn %msnlogfile
  839.         }
  840.       }
  841.       aline -l @ $+ $right($sockname,-8) $+ -msn $gettok(%msnchat.buffer,5,32)
  842.     }
  843.   }
  844.   if (USR*OK* iswm %msnchat.buffer) {
  845.     ;echo 11 %msn. $+ $gettok($sockname,2-,46)
  846.     ;echo 11 %msn.$gettok($sockname,2-,46)
  847.     sockwrite  -n $sockname CAL %msn.$gettok($sockname,2-,46) $right($sockname,-8)
  848.   }
  849.   if (MSG* iswm %msnchat.buffer) {
  850.     set %msnmsgbytetest $calc($gettok(%msnchat.buffer,-1,32) - 21 )
  851.     set %msnmsgnick < $+ $remov20($gettok(%msnchat.buffer,3,32)) $+ >
  852.     goto nextread
  853.   }
  854.  
  855.   if ($gettok(%msnchat.buffer,1,32) == Content-Type:) {
  856.     if ($gettok(%msnchat.buffer,2,32) == text/x-msmsgscontrol ) {
  857.       set %msn.typingname $right($sockname,-8) $+ -msn
  858.       set %msntypingwindow type $+ %msn.typingname
  859.       if ($window(@ $+ %msn.typingname).state != $null) && ($window(@ $+ %msn.typingname).state != hidden) && ($window(@ $+ %msn.typingname).state != minimized) {
  860.         msn.typing
  861.       }
  862.     }
  863.  
  864.     ;var %msn. [ $+ [ $sockname ] ] type
  865.     ;}
  866.     if ($gettok(%msnchat.buffer,2,32) == text/plain; ) {
  867.       set %msnmsgbyte %msnmsgbytetest
  868.       unset %msnmsgbytetest
  869.       if ($window(@ $+ %msn.typingname).state == hidden) || ($window(@ $+ %msn.typingname).state == minimized) && (%msn.typesound == on) {
  870.         splay -w " $+ $scriptdir $+ type.wav"
  871.       }
  872.       set %msnmsgread 3
  873.       set %msntext 1
  874.       if (%msn.showtyping == off) {
  875.         echo 4 $left($window($right($sockname,-8) $+ -msn).title,9) == ╗╗ Typing) 
  876.         if ($left($window(@ $+ $right($sockname,-8) $+ -msn).title,9) == ╗╗ Typing) {
  877.           titlebar @ $+ %msn.typingname $right($window(@ $+ $right($sockname,-8) $+ -msn).title,-9)
  878.         }
  879.       }
  880.       else {
  881.         window -c @ $+ type $+ $right($sockname,-8) $+ -msn
  882.       }
  883.     }
  884.   }
  885.   if (X-MMS-IM-Format:* iswm %msnchat.buffer) {
  886.     set %msnmsgfont $left($right($gettok(%msnchat.buffer,3,32),-3),-1)
  887.     set %msnmsgcol $left($right($gettok(%msnchat.buffer,4,32),-3),-1)
  888.     if (%msnmsgcol == ffffff) {
  889.       set %msnirccol 
  890.     }
  891.     elseif (%msnmsgcol == 0) {
  892.       set %msnirccol 
  893.     }
  894.     elseif (%msnmsgcol == ff0000) {
  895.       set %msnirccol 12
  896.     }
  897.     elseif (%msnmsgcol == 80) {
  898.       set %msnirccol 5
  899.     }
  900.     elseif (%msnmsgcol == 8000) {
  901.       set %msnirccol 3
  902.     }
  903.     elseif (%msnmsgcol == 8080) {
  904.       set %msnirccol 7
  905.     }
  906.     elseif (%msnmsgcol == 800000) {
  907.       set %msnirccol 2
  908.     }
  909.     elseif (%msnmsgcol == 800080) {
  910.       set %msnirccol 6
  911.     }
  912.     elseif (%msnmsgcol == 808000) {
  913.       set %msnirccol 10
  914.     }
  915.     elseif (%msnmsgcol == 808080) {
  916.       set %msnirccol 14
  917.     }
  918.     elseif (%msnmsgcol == c0c0c0) {
  919.       set %msnirccol 15
  920.     }
  921.     elseif (%msnmsgcol == ff) {
  922.       set %msnirccol 4
  923.     }
  924.     elseif (%msnmsgcol == ff00) {
  925.       set %msnirccol 9
  926.     }
  927.     elseif (%msnmsgcol == ffff) {
  928.       set %msnirccol 8
  929.     }
  930.     elseif (%msnmsgcol == ff00ff) {
  931.       set %msnirccol 13
  932.     }
  933.     elseif (%msnmsgcol == ffff00) {
  934.       set %msnirccol 11
  935.     }
  936.     else {
  937.       set %msnirccol 
  938.     }
  939.     if (%msnmsgfont == B) {
  940.       set %msnmsgmircfont 
  941.     }
  942.     elseif (%msnmsgfont == U) {
  943.       set %msnmsgmircfont 
  944.     }
  945.     elseif (%msnmsgfont == BU) {
  946.       set %msnmsgmircfont 
  947.     }
  948.     else {
  949.       unset %msnmsgmircfont
  950.     }
  951.   }
  952.   if (%msnmsgread != $null) && (%msnmsgread == 1) {
  953.     inc %msnmsgread
  954.   }
  955.   if (%msnmsgread > 1) && (%msnmsgbyte >= 0 ) {
  956.     ;echo 8 %msnmsgread
  957.     if (%msntext == 1) {
  958.       set %msnmsgbyte $calc(%msnmsgbyte - 2)
  959.       set %msntext 0
  960.     }
  961.     set %msnmsgbyte $calc(%msnmsgbyte - $len(%msnchat.buffer))
  962.     inc %msnmsgread
  963.     if (%msnmsgread > 6) {
  964.       if (%msnchat.buffer != --) && (%msnmsgbyte > -1) {
  965.         set %msntext 1
  966.  
  967.         if ($left(%msnchat.buffer,13) == * ping? pong!) {
  968.           echo -t @ $+ $right($sockname,-8) $+ -msn  $+ $colour(ctcp text) $+ %msnmsgmircfont $+ [:. ó PING received ]
  969.         }
  970.         elseif ($left(%msnchat.buffer,3) == /me) {
  971.           echo -tm @ $+ $right($sockname,-8) $+ -msn  $+ $colour(action text) $+ %msnmsgmircfont $+ * $left($right(%msnmsgnick,-1),-1) $+ $right(%msnchat.buffer,-3)
  972.         }
  973.         elseif ($left(%msnchat.buffer,3) == ┬½I) {
  974.           echo -tm @ $+ $right($sockname,-8) $+ -msn  $+ $colour(action text) $+ %msnmsgmircfont $+ * $left($right(%msnmsgnick,-1),-1) $+ $left($right(%msnchat.buffer,-3),-2)
  975.         }
  976.         else {
  977.           echo -tm @ $+ $right($sockname,-8) $+ -msn %msnmsgnick $+  $+ %msnirccol %msnmsgmircfont $+ %msnchat.buffer
  978.         }
  979.       }
  980.       elseif (%msnchat.buffer == --) {
  981.         ;echo 9 %msnchat.buffer bytes = %msnmsgbyte
  982.         if (%msntext == 1) {
  983.           set %msnmsgbyte $calc(%msnmsgbyte - 2))
  984.           set %msntext 0
  985.         }
  986.       }
  987.     }
  988.   }
  989.   goto nextread
  990. }
  991. ;Options button
  992. on *:dialog:msn.config:sclick:102:{
  993.   Changetab 2
  994.   did -h msn.config 300,
  995. }
  996. ;Cancel button
  997. on *:dialog:msn.config:sclick:101:{
  998.   .timer89? off
  999.   .timer90? off
  1000.   if ($did(56).state == 0) {
  1001.     set %msn.pass $null
  1002.     sockclose msn.main
  1003.   }
  1004. }
  1005. on *:dialog:msn.config:sclick:238:{
  1006.   set %msn.closewindow on
  1007.   did -h msn.config 238
  1008.   did -v msn.config 256
  1009. }
  1010. on *:dialog:msn.config:sclick:256:{
  1011.   unset %msn.closewindow
  1012.   did -h msn.config 256
  1013.   did -v msn.config 238
  1014. }
  1015. on *:dialog:msn.config:sclick:210:{
  1016.   msn.popupmsg
  1017. }
  1018. on *:dialog:msn.config:sclick:255:{
  1019.   checkblock
  1020.   set %msn.checkblock 1
  1021. }
  1022. on *:dialog:msn.config:sclick:250:{
  1023.   set %msn.showtyping off
  1024.   did -h msn.config 250
  1025.   did -v msn.config 251
  1026. }
  1027. on *:dialog:msn.config:sclick:251:{
  1028.   unset %msn.showtyping
  1029.   did -h msn.config 251
  1030.   did -v msn.config 250
  1031. }
  1032. on *:dialog:msn.config:sclick:252:{
  1033.   set %msn.owntyping off
  1034.   did -h msn.config 252
  1035.   did -v msn.config 253
  1036. }
  1037. on *:dialog:msn.config:sclick:253:{
  1038.   unset %msn.owntyping
  1039.   did -h msn.config 253
  1040.   did -v msn.config 252
  1041. }
  1042. on *:dialog:msn.config:sclick:245:{
  1043.   if ($did(msn.config,245).state == 1) {
  1044.     set %msnfont B
  1045.     set %msnmircfont 
  1046.   }
  1047. }
  1048. on *:dialog:msn.config:sclick:246:{
  1049.   if ($did(msn.config,246).state == 1) {
  1050.     set %msnfont U
  1051.     set %msnmircfont 
  1052.   }
  1053. }
  1054. on *:dialog:msn.config:sclick:247:{
  1055.   if ($did(msn.config,247).state == 1) {
  1056.     set %msnfont I
  1057.     unset %msnmircfont
  1058.   }
  1059. }
  1060. on *:dialog:msn.config:sclick:248:{
  1061.   if ($did(msn.config,248).state == 1) {
  1062.     unset %msnfont
  1063.     unset %msnmircfont
  1064.   }
  1065. }
  1066. on *:dialog:msn.config:sclick:242:{
  1067.   msn.defaults
  1068. }
  1069. on *:dialog:msn.config:sclick:240:{
  1070.   set %msn.desktop d
  1071.   did -h msn.config 240
  1072.   did -v msn.config 241
  1073. }
  1074. on *:dialog:msn.config:sclick:241:{
  1075.   unset %msn.desktop
  1076.   did -h msn.config 241
  1077.   did -v msn.config 240
  1078. }
  1079. on *:dialog:msn.config:sclick:243:{
  1080.   set %msn.ontop o
  1081.   did -h msn.config 243
  1082.   did -v msn.config 244
  1083. }
  1084. on *:dialog:msn.config:sclick:244:{
  1085.   unset %msn.ontop
  1086.   did -h msn.config 244
  1087.   did -v msn.config 243
  1088. }
  1089. on *:dialog:msn.config:sclick:229:{
  1090.   did -h msn.config 229
  1091.   did -v msn.config 230
  1092.   did -f msn.config 239
  1093.   set %msn.startup 0
  1094. }
  1095. on *:dialog:msn.config:sclick:230:{
  1096.   did -h msn.config 230
  1097.   did -v msn.config 229
  1098.   did -f msn.config 239
  1099.   set %msn.startup 1
  1100. }
  1101. on *:dialog:msn.config:sclick:231:{
  1102.   did -h msn.config 231
  1103.   did -v msn.config 232
  1104.   did -f msn.config 239
  1105.   set %msn.sounds 1
  1106.   set %msn.typesound on
  1107. }
  1108. on *:dialog:msn.config:sclick:232:{
  1109.   did -h msn.config 232
  1110.   did -v msn.config 231
  1111.   did -f msn.config 239
  1112.   set %msn.sounds 0
  1113.   unset %msn.typesound
  1114. }
  1115. on *:dialog:msn.config:sclick:233:{
  1116.   set %msnpositionx $dialog(msn.config).x
  1117.   set %msnpositiony $dialog(msn.config).y
  1118.   dialog -sb msn.config %msnpositionx %msnpositiony 225 175
  1119.   did -h msn.config 233
  1120.   did -v msn.config 234,235,260
  1121.   did -f msn.config 239
  1122. }
  1123. on *:dialog:msn.config:sclick:234:{
  1124.   set %msnpositionx $dialog(msn.config).x
  1125.   set %msnpositiony $dialog(msn.config).y
  1126.   dialog -sb msn.config %msnpositionx %msnpositiony 150 175
  1127.   did -h msn.config 234,235,260
  1128.   did -v msn.config 233
  1129.   did -f msn.config 239
  1130. }
  1131. on *:dialog:msn.config:sclick:203:{
  1132.   dialog -x msn.config msn.config
  1133.   .timer89? off
  1134.   sockclose msn.main
  1135.   window -c @msnuserlog
  1136.   if (%msn.closewindow) {
  1137.     window -c @*-msn
  1138.   }
  1139. }
  1140. on *:dialog:msn.config:edit:227:{
  1141.   set %msn.poptime $did(227)
  1142. }
  1143. on *:dialog:msn.config:sclick:206:{
  1144.   if (%msn.status.con == 1) {
  1145.     sockwrite -n msn.main LST %msn.debug FL
  1146.     changetab 4
  1147.     did -r msn.config 411
  1148.   }
  1149. }
  1150. on *:dialog:msn.config:sclick:301:{
  1151.   did -u msn.config 219,220,221,222
  1152.   did -b msn.config 227
  1153.   set %popuppoz 5
  1154. }
  1155. on *:dialog:msn.config:sclick:219:{
  1156.   if ($did(msn.config,219).state == 0) {
  1157.     did -b msn.config 227
  1158.     set %popuppoz 5
  1159.   }
  1160.   else {
  1161.     did -u msn.config 220,221,222
  1162.     did -e msn.config 227
  1163.     set %onlinex $window(-1).w
  1164.     set %onliney $window(-1).h
  1165.     set %onlinexx 10
  1166.     set %onlineyy 10
  1167.     set %popuppoz 1
  1168.   }
  1169. }
  1170. on *:dialog:msn.config:sclick:220:{
  1171.   if ($did(msn.config,220).state == 0) {
  1172.     did -b msn.config 227
  1173.     set %popuppoz 5
  1174.   }
  1175.   else {
  1176.     did -u msn.config 219,221,222
  1177.     did -e msn.config 227
  1178.     set %onlinex 150
  1179.     set %onliney $window(-1).h
  1180.     set %onlinexx 10
  1181.     set %onlineyy 10
  1182.     set %popuppoz 2
  1183.   }
  1184. }
  1185. on *:dialog:msn.config:sclick:221:{
  1186.   if ($did(msn.config,221).state == 0) {
  1187.     did -b msn.config 227
  1188.     set %popuppoz 5
  1189.   }
  1190.   else {
  1191.     did -u msn.config 219,220,222
  1192.     did -e msn.config 227
  1193.     set %onlinex $window(-1).w
  1194.     set %onliney 140
  1195.     set %onlinexx 10
  1196.     set %onlineyy 0
  1197.     set %popuppoz 3
  1198.   }
  1199. }
  1200. on *:dialog:msn.config:sclick:222:{
  1201.   if ($did(msn.config,222).state == 0) {
  1202.     did -b msn.config 227
  1203.     set %popuppoz 5
  1204.   }
  1205.   else {
  1206.     did -u msn.config 219,220,221
  1207.     did -e msn.config 227
  1208.     set %onlinex 150
  1209.     set %onliney 140
  1210.     set %onlinexx 0
  1211.     set %onlineyy 0
  1212.     set %popuppoz 4
  1213.   }
  1214. }
  1215. ;back to sign in page
  1216. on *:dialog:msn.config:sclick:202:{
  1217.   run " $+ $scriptdir $+ tmsn.hlp"
  1218. }
  1219. on *:dialog:msn.config:sclick:201:{
  1220.   Changetab 1
  1221.   did -v msn.config 300,
  1222.   did -b msn.config 217
  1223. }
  1224. ;back to signed in page
  1225. on *:dialog:msn.config:sclick:299:{
  1226.   Changetab 3
  1227.   did -b msn.config 217
  1228. }
  1229. on *:dialog:msn.config:sclick:213:{
  1230.   did -v msn.config 214,
  1231.   did -e msn.config 212,223,224
  1232.   did -h msn.config 213,
  1233.   did -f msn.config 239
  1234.   set %msn.logging 1
  1235. }
  1236. on *:dialog:msn.config:sclick:214:{
  1237.   did -v msn.config 213,
  1238.   did -b msn.config 212,223,224
  1239.   did -h msn.config 214,
  1240.   did -f msn.config 239
  1241.   set %msn.logging 0
  1242. }
  1243. on *:dialog:msn.config:sclick:223:{
  1244.   did -h msn.config 223
  1245.   did -v msn.config 224
  1246.   did -f msn.config 239
  1247.   set %msn.loadlog 1
  1248. }
  1249. on *:dialog:msn.config:sclick:224:{
  1250.   did -h msn.config 224
  1251.   did -v msn.config 223
  1252.   did -f msn.config 239
  1253.   set %msn.loadlog 0 
  1254. }
  1255. on *:dialog:msn.config:sclick:216:{
  1256.   if (%msn.status.con == 1) {
  1257.     did -e msn.config 217
  1258.     did -v msn.config 218
  1259.     did -h msn.config 216
  1260.     did -f msn.config 217
  1261.   }
  1262. }
  1263. on *:dialog:msn.config:sclick:218:{
  1264.   did -b msn.config 217
  1265.   did -h msn.config 218
  1266.   did -v msn.config 216
  1267.   did -f msn.config 239
  1268.   sockwrite -n msn.main REA %msn.debug %msn.signname $make20($did(msn.config,217).text)
  1269. }
  1270. on *:dialog:msn.config:edit:217:{
  1271.   set %msn.nickname $did(217)
  1272. }
  1273. ;run external log find/viewer
  1274. on *:dialog:msn.config:sclick:212:{
  1275.   if ($script(ilog.mrc) != $null) {
  1276.     ilog
  1277.   }
  1278.   else {
  1279.     run $logdir
  1280.   }
  1281. }
  1282. ;change font colour
  1283. on *:dialog:msn.config:sclick:398:{
  1284.   msn.colour
  1285.   ;msn.picolour
  1286. }
  1287. ;tab 3 edit configs
  1288. on *:dialog:msn.config:sclick:311:{
  1289.   set %msn.reconect 1
  1290.   changetab 1
  1291.   did -v msn.config 304
  1292.   did -h msn.config 311
  1293. }
  1294. on *:dialog:msn.config:sclick:308:{
  1295.   if ($did(msn.config,308).sel == 1 ) {
  1296.     sockwrite -n msn.main CHG %msn.debug NLN
  1297.   }
  1298.   if ($did(msn.config,308).sel == 2 ) {
  1299.     sockwrite -n msn.main CHG %msn.debug BSY
  1300.   }
  1301.   if ($did(msn.config,308).sel == 3 ) {
  1302.     sockwrite -n msn.main CHG %msn.debug BRB
  1303.   }
  1304.   if ($did(msn.config,308).sel == 4 ) {
  1305.     sockwrite -n msn.main CHG %msn.debug AWY
  1306.   }
  1307.   if ($did(msn.config,308).sel == 5 ) {
  1308.     sockwrite -n msn.main CHG %msn.debug LUN
  1309.   }
  1310.   if ($did(msn.config,308).sel == 6 ) {
  1311.     sockwrite -n msn.main CHG %msn.debug PHN
  1312.   }
  1313.   if ($did(msn.config,308).sel == 7 ) {
  1314.     sockwrite -n msn.main CHG %msn.debug HDN
  1315.   }
  1316. }
  1317. ;change back to options tab
  1318. on *:dialog:msn.config:sclick:302:{
  1319.   changetab 2
  1320.   did -v msn.config 299
  1321.   did -h msn.config 201
  1322.   did -e msn.config 217
  1323.   did -b msn.config 217
  1324. }
  1325. ;quit msn dialog
  1326. on *:dialog:msn.config:sclick:304:{
  1327.   dialog -x msn.config msn.config
  1328.   .timer89? off
  1329.   sockclose msn.main
  1330.   window -c @msnuserlog
  1331.   if (%msn.closewindow) {
  1332.     window -c @*-msn
  1333.   }
  1334. }
  1335. ;nick list did's
  1336. on *:dialog:msn.config:sclick:303:{
  1337.   if (BLOCKED isin $did(msn.config,303).seltext) {
  1338.     did -ev msn.config 309
  1339.     did -bh msn.config 306
  1340.   }
  1341.   else {
  1342.     did -ev msn.config 306
  1343.     did -bht msn.config 309
  1344.   }
  1345. }
  1346. ;click to open new chat window
  1347. on *:dialog:msn.config:dclick:303:{
  1348.   msn.chatwindow
  1349. }
  1350. ;click to open new chat window
  1351. on *:dialog:msn.config:sclick:305:{
  1352.   msn.chatwindow
  1353. }
  1354. ;needs work big time --> ;p~
  1355. on *:KEYDOWN:@*-msn:32,13:{
  1356.   if (%msn.spacekey == $null) {
  1357.     set %msn.spacekey 0
  1358.   }
  1359.   if ($keyval == 32) {
  1360.     inc %msn.spacekey
  1361.   }
  1362.   if ($keyval == 13) {
  1363.     unset %msn.spacekey
  1364.   }
  1365.   if (%msn.spacekey == 1) && ($sock(msnchat. $+ $left($right($active,-1),-4)) ) && (%msn.owntyping != off) {
  1366.  
  1367.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) MSG %msn.typenumber U $calc( 73 + $len(%msn.signname))
  1368.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) MIME-Version: 1.0
  1369.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) Content-Type: text/x-msmsgscontrol
  1370.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) TypingUser: %msn.signname
  1371.     sockwrite msnchat. $+ $left($right($active,-1),-4) $crlf
  1372.     sockwrite msnchat. $+ $left($right($active,-1),-4) $crlf
  1373.     ;sockwrite chat. $+ $1 $crlf
  1374.     ; sockwrite chat. $+ $1 $crlf
  1375.     inc %msn.typenumber 1
  1376.  
  1377.     ;echo $active you pushed space ;p $keyval $keychr
  1378.   }
  1379.   if (%msn.spacekey >= 2) {
  1380.     unset %msn.spacekey
  1381.   }
  1382. }
  1383. on *:INPUT:@*-msn:{
  1384.   if ($gettok($1-,1,32) == /ping) { 
  1385.     msn.ping
  1386.     return
  1387.   }
  1388.  
  1389.   if ($gettok($1-,1,32) == /say) { 
  1390.     set %msn.text $right($1-,-5)
  1391.     goto testsay
  1392.  
  1393.   }
  1394.   if ($gettok($1-,1,32) == /me) { 
  1395.     set %msn.text $1-
  1396.     goto testsay
  1397.   }
  1398.   elseif ($left($1-,1) == /) { 
  1399.     return
  1400.   }
  1401.   set %msn.text $1-
  1402.  
  1403.  
  1404.   ;if ($left($1-,1) == /) { return }
  1405.   :testsay
  1406.   ; set %sock $+ $left($right($active,-1),-4) socklist -t msnchat. $+ $left($right($active,-1),-4)
  1407.   ;if (%sock $+ $left($right($active,-1),-4) != $null)
  1408.   if (%msn. [ $+ [ $left($right($active,-1),-4) ] ] == $null) {
  1409.     set %msn. [ $+ [ $left($right($active,-1),-4) ] ] 1
  1410.   }
  1411.   if ($left(%msn.text,3) == /me) {
  1412.     echo -tm $active  $+ $colour(action text) $+ %msnmircfont $+ * %msn.nickname $+ $right(%msn.text,-3)
  1413.   }
  1414.   else {
  1415.     echo -tm $active < $+ %msn.nickname $+ > $+  $+ %msn.echo.col %msnmircfont $+ %msn.text
  1416.   }
  1417.   if ($sock(msnchat. $+ $left($right($active,-1),-4))) {
  1418.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) MSG %msn. [ $+ [ $left($right($active,-1),-4) ] ] A $calc($len(%msn.text) + 131 + $len(%msncolour) + $len(%msnfont) )
  1419.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) MIME-Version: 1.0
  1420.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) Content-Type: text/plain; charset=UTF-8
  1421.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF= $+ %msnfont $+ ; CO= $+ %msncolour $+ ; CS=0; PF=22
  1422.     sockwrite -n msnchat. $+ $left($right($active,-1),-4) 
  1423.     sockwrite msnchat. $+ $left($right($active,-1),-4) %msn.text
  1424.     inc %msn. [ $+ [ $left($right($active,-1),-4) ] ]
  1425.     ;sockwrite $1- etc
  1426.   }
  1427.   else {
  1428.     sockwrite -n msn.main XFR %msn.debug SB
  1429.     set %msnchatemail $left($right($active,-1),-4)
  1430.     set %msn.privmsg %msnchatemail %msn.text
  1431.   }
  1432. }
  1433. on *:close:@*-msn:{
  1434.   set %msn. [ $+ [ $left($right($target,-1),-4) ] ] 1
  1435.   if ($sock(msnchat. $+ $left($right($target,-1),-4))) {
  1436.     sockwrite -n msnchat. $+ $left($right($target,-1),-4) BYE %msn.signname
  1437.     sockclose msnchat. $+ $left($right($target,-1),-4)
  1438.     unset %msn.iro [ $+ [ $left($right($target,-1),-4) ] ]
  1439.     ;hdel msn.chat. $+ $right($sockname,-8) *
  1440.   }
  1441. }
  1442. ;click for block user
  1443. on *:dialog:msn.config:sclick:306:{
  1444.   if ($did(msn.config,303).seltext == $null) {
  1445.     halt
  1446.   }
  1447.   sockwrite -n msn.main REM %msn.debug AL $remove($gettok($did(msn.config,303).seltext,-1,32),>,<)
  1448.   sockwrite -n msn.main ADD %msn.debug BL $remove($gettok($did(msn.config,303).seltext,-1,32),>,<) $remove($gettok($did(msn.config,303).seltext,-1,32),>,<)
  1449.   hadd -m msnblock $remove($gettok($did(msn.config,303).seltext,-1,32),>,<)
  1450.   did -o msn.config 303 $did(msn.config,303).sel BLOCKED $did(msn.config,303).seltext
  1451. }
  1452. ;click for unblock user
  1453. on *:dialog:msn.config:sclick:309:{
  1454.   if ($did(msn.config,303).seltext == $null) {
  1455.     halt
  1456.   }
  1457.   sockwrite -n msn.main REM %msn.debug BL $remove($gettok($did(msn.config,303).seltext,-1,32),>,<)
  1458.   sockwrite -n msn.main ADD %msn.debug AL $remove($gettok($did(msn.config,303).seltext,-1,32),>,<) $remove($gettok($did(msn.config,303).seltext,-1,32),>,<)
  1459.   did -o msn.config 303 $did(msn.config,303).sel $remove($did(msn.config,303).seltext,BLOCKED)
  1460.   hdel -w msnblock * $+ $gettok($did(msn.config,303).seltext,-1,32) $+ *
  1461. }
  1462. ;click for adduser
  1463. on *:dialog:msn.config:sclick:307:{
  1464.   if (%msn.status.con == 1) {
  1465.     msn.adduser
  1466.   }
  1467. }
  1468. ;tab 4 edits
  1469. ;back to options tab
  1470. on *:dialog:msn.config:sclick:411:{
  1471.   if (BLOCKED isin $did(msn.config,411).seltext) {
  1472.     did -ev msn.config 417
  1473.     did -bh msn.config 416
  1474.   }
  1475.   else {
  1476.     did -ev msn.config 416
  1477.     did -bht msn.config 417
  1478.   }
  1479. }
  1480. on *:dialog:msn.config:sclick:416:{
  1481.   if ($did(msn.config,411).seltext == $null) {
  1482.     halt
  1483.   }
  1484.   sockwrite -n msn.main REM %msn.debug AL $remove($gettok($did(msn.config,411).seltext,1,32),>,<)
  1485.   sockwrite -n msn.main ADD %msn.debug BL $remove($gettok($did(msn.config,411).seltext,1,32),>,<) $remove($gettok($did(msn.config,411).seltext,1,32),>,<)
  1486.   hadd -m msnblock $remove($gettok($did(msn.config,411).seltext,1,32),>,<)
  1487.   did -o msn.config 411 $did(msn.config,411).sel BLOCKED $did(msn.config,411).seltext
  1488. }
  1489. ;click for unblock user
  1490. on *:dialog:msn.config:sclick:417:{
  1491.   if ($did(msn.config,411).seltext == $null) {
  1492.     halt
  1493.   }
  1494.   sockwrite -n msn.main REM %msn.debug BL $remove($gettok($did(msn.config,411).seltext,2,32),>,<)
  1495.   sockwrite -n msn.main ADD %msn.debug AL $remove($gettok($did(msn.config,411).seltext,2,32),>,<) $remove($gettok($did(msn.config,411).seltext,2,32),>,<)
  1496.   did -o msn.config 411 $did(msn.config,411).sel $remove($did(msn.config,411).seltext,BLOCKED)
  1497.   hdel -w msnblock * $+ $gettok($did(msn.config,411).seltext,1,32) $+ *
  1498. }
  1499. on *:dialog:msn.config:sclick:412:{
  1500.   changetab 2
  1501.   did -r msn.config 411
  1502. }
  1503. on *:dialog:msn.config:sclick:414:{
  1504.   msn.adduser
  1505. }
  1506. on *:dialog:msn.config:sclick:413:{
  1507.   if ($did(msn.config,411).seltext != $null) {
  1508.     sockwrite -n msn.main REM %msn.debug FL $remove($gettok($did(msn.config,411).seltext,1,32),<,>)
  1509.     did -d msn.config 411 $did(msn.config,411).sel
  1510.   }
  1511. }
  1512. on *:dialog:msn.config:sclick:415:{
  1513.   did -r msn.config 411
  1514.   sockwrite -n msn.main LST %msn.debug FL
  1515. }
  1516. ;local alias'
  1517. ;Sign in open sockets etc
  1518. alias msn.popupmsg {
  1519.   dialog -maov msn.popupmsg msn.popupmsg
  1520. }
  1521. alias -l checkblock {
  1522.   dialog -maov msn.adduser msn.adduser
  1523. }
  1524. alias Tmsn {
  1525.   window -dk0 @msnuserlog -1 -1 350 100
  1526.   if ($dialog(msn.config) == msn.config ) {
  1527.     msn.error Msn Configuration is Already Open!
  1528.     halt
  1529.   }
  1530.   if ($script(md5.mrc) != $null) && ($dialog(msn.config) != msn.config ) {
  1531.     dialog -mdv $+ %msn.ontop msn.config msn.config
  1532.   }
  1533.   if ($script(md5.mrc) == $null) && ($exists(" $+ $scriptdir $+ md5.mrc") == $true) {
  1534.     .load -rs " $+ $scriptdir $+ md5.mrc"
  1535.     dialog -mdv $+ %msn.ontop msn.config msn.config
  1536.   }
  1537. }
  1538. else {
  1539.   msn.error MD5 mrc script not found, please reinstall.
  1540. }
  1541.  
  1542. ;adduser dialog popup
  1543. alias -l msn.adduser {
  1544.   dialog -maov msn.adduser msn.adduser
  1545. }
  1546.  
  1547. alias -l msn.error {
  1548.   set %msn.errortext $1-
  1549.   if ($dialog(msn.error) == msn.error ) {
  1550.     dialog -x msn.error msn.error
  1551.   }
  1552.   dialog -maov msn.error msn.error
  1553. }
  1554. alias -l msn.chatwindow {
  1555.   if (BLOCKED isin $did(msn.config,303).seltext) || (%msn.status.con != 1) {
  1556.     halt
  1557.   }
  1558.   if ($did(msn.config,303,0).sel == 0 ) {
  1559.     halt
  1560.   }
  1561.   ;var %logwindow = @ $+ $gettok($did(msn.config,303).seltext,-1,32)
  1562.   window -abkez $+ %msn.desktop @ $+ $remove($gettok($did(msn.config,303).seltext,-1,32),<,>) $+ -msn 100 100 400 200 " $+ $scriptdir $+ msn.ico $+ "
  1563.   ;aline  -cp @ $+ $remove($gettok($did(msn.config,303).seltext,-1,32),<,>) $+ -msn Connecting to 12< $did(msn.config,303).seltext > 4 it'll just be a sec ;p~
  1564.   titlebar @ $+ $remove($gettok($did(msn.config,303).seltext,-1,32),<,>) $+ -msn $deltok($did(msn.config,303).seltext,-1,32)
  1565.   sockwrite -n msn.main XFR %msn.debug SB
  1566.   ; echo 4 %msn.logging %msn.logger %logwindow
  1567.   if (%msn.logging == 1) {
  1568.     .log on $active -f $remove($gettok($did(msn.config,303).seltext,-1,32),<,>) $+ -msn $+ .log
  1569.     set %msnlogfile " $+ $window($active).logfile $+ "
  1570.     if (%msn.loadlog == 1) {
  1571.       loadbuf 200 -p $active %msnlogfile
  1572.     }
  1573.   }
  1574.   set %msnchatemail $left($right($active,-1),-4)
  1575. }
  1576.  
  1577. alias -l _timer89 {
  1578.   .timer893 -moc 3.5 1000 did -g msn.config 300 " $+ $scriptdir $+ pnp.ico $+ "
  1579. }
  1580. ;used to remove %20 from nick names
  1581. alias -l remov20 {
  1582.   return $replace($replace($replace($1-,$+($chr(37),20),$chr(32)),$+($chr(37),2E),$chr(46)),$+($chr(37),27),$chr(39))
  1583. }
  1584. alias -l make20 {
  1585.   return $replace($1-,$chr(32),$+($chr(37),20))
  1586. }
  1587. alias msn.picolour {
  1588.   window -c @msnpicolour
  1589.   window -dhnp +nL @msnpicolour -5 -5 124 24
  1590.   ;drawrect -f @msnpicolour $color(background) 1 1 1 120 20
  1591.   drawtext -pbo @msnpicolour %msn.echo.col $color(background) Terminal 14 5 3 Change Font Colour
  1592.   drawsave @msnpicolour " $+ $scriptdir $+ colour.bmp $+ "
  1593. }
  1594. ;alias' for changing from tab to tab needs $1, 1,2,3 or 4
  1595. alias -l changetab {
  1596.   if ($1 == 2) {
  1597.     did -h msn.config 1,3,4
  1598.     did -vf msn.config 2
  1599.     did -h msn.config 300
  1600.     did -v msn.config 301,398
  1601.     did -f msn.config 239
  1602.   }
  1603.   elseif ($1 == 1) {
  1604.     did -h msn.config 2,3,4,301
  1605.     did -vf msn.config 1
  1606.     set %msnpositionx $dialog(msn.config).x
  1607.     set %msnpositiony $dialog(msn.config).y
  1608.     dialog -sb msn.config %msnpositionx %msnpositiony 150 175
  1609.     did -h msn.config 234,235,398,260
  1610.     did -v msn.config 233
  1611.     did -f msn.config 239
  1612.   }
  1613.   elseif ($1 == 3) {
  1614.     did -h msn.config 1,2,4
  1615.     did -vf msn.config 3
  1616.     did -h msn.config 300,301,398
  1617.     did -f msn.config 305
  1618.     did -z msn.config 303
  1619.     set %msnpositionx $dialog(msn.config).x
  1620.     set %msnpositiony $dialog(msn.config).y
  1621.     dialog -sb msn.config %msnpositionx %msnpositiony 150 175
  1622.     did -h msn.config 234,235,260
  1623.     did -v msn.config 233
  1624.   }
  1625.   else {
  1626.     did -h msn.config 1,2,3,398
  1627.     did -vf msn.config 4
  1628.     set %msnpositionx $dialog(msn.config).x
  1629.     set %msnpositiony $dialog(msn.config).y
  1630.     dialog -sb msn.config %msnpositionx %msnpositiony 150 175
  1631.     did -f msn.config 411
  1632.   }
  1633. }
  1634. ;dialog for adding new user, only works when fully conected
  1635. ;needs work doesnt actually do anytihng as yet ;p~
  1636. dialog msn.adduser {
  1637.   ;title "MSN :-) Add user"
  1638.   icon tmsn\msn.ico
  1639.   option dbu
  1640.   size -1 -1 120 50
  1641.   button "Update", 2, 80 40 40 10, OK  disable
  1642.   button "Cancel", 3, 40 40 40 10, cancel 
  1643.   edit "", 5, 8 20 104 10, autohs
  1644.   box "Please enter the email address of user", 6, 3 3 114 34
  1645. }
  1646. ;what happens just before adduser dialog starts
  1647. on *:dialog:msn.adduser:init:0:{
  1648.   did -f msn.adduser 5
  1649.   ; if (%msn.checkblock == 1) {
  1650.   ; dialog -t msn.adduser Check if your blocked :@
  1651.   ; }
  1652. }
  1653. ;stops idjits from putting in new user without an @
  1654. on *:dialog:msn.adduser:edit:5:{
  1655.   if (@ isin $did(5)) {
  1656.     did -et msn.adduser 2
  1657.     set %msn.newuser $did(msn.adduser,5).text
  1658.   }
  1659.   else {
  1660.     did -b msn.adduser 2
  1661.   }
  1662. }
  1663. on *:dialog:msn.adduser:sclick:2:{
  1664.   if (%msn.checkblock != 1) {
  1665.     sockwrite -n msn.main ADD %msn.debug FL %msn.newuser %msn.newuser 0
  1666.     sockwrite -n msn.main ADD %msn.debug AL %msn.newuser %msn.newuser
  1667.   }
  1668.   else {
  1669.     unset %msn.checkblock
  1670.     sockwrite -n msn.main XFR %msn.debug SB
  1671.     set %msnchatemail %msn.newuser
  1672.   }
  1673. }
  1674. dialog msn.error {
  1675.   title "MSN :-P~"
  1676.   icon tmsn\msn.ico
  1677.   option dbu
  1678.   size -1 -1 120 50
  1679.   button "Ok", 2, 80 40 40 10, OK  default group
  1680.   ;button "Help", 3, 40 40 40 10, cancel  disable
  1681.   text %msn.errortext, 5, 25 8 90 25, 
  1682.   box "", 6, 3 3 114 34
  1683.   check "Don't show this again", 7, 3 40 70 10, disable
  1684.   icon 8, 5 9 16 16, " $+ $scriptdir $+ info.ico $+ "
  1685. }
  1686. ;alias to popup picture window showing user signed in
  1687. alias msn.pic {
  1688.   ;stops idjits putting false numbers
  1689.   if (%popuppoz == 5) { 
  1690.     halt 
  1691.   }
  1692.   if (%msn.poptime !isalnum) {
  1693.     set %msn.poptime 2500
  1694.   }
  1695.   if (%msn.poptime isalpha) {
  1696.     set %msn.poptime 2500
  1697.   }
  1698.   ;actual window to popup msnuseronline
  1699.   if (%msn.sounds == 1) {
  1700.     splay -w " $+ $scriptdir $+ online.wav $+ "
  1701.   }
  1702.   ;set %msn.activewindow $active
  1703.   set %msn.appactive $appactive
  1704.   window -c @msn.on
  1705.   ;.timer896 off
  1706.   window -haodpk +nL @msn.on $calc($window(-1).w - %onlinex + %onlinexx) $calc($window(-1).h - %onliney + %onlineyy) 150 122 
  1707.   if ($lactive != Status Window) && ($lactive != 0) && (%msn.appactive == $true) {
  1708.     ;window -a %msn.activewindow
  1709.     window -a $lactive
  1710.   }
  1711.   drawpic -t @msn.on $rgb(0,0,0) 1 1 1 1 145 120 " $+ $scriptdir $+ msn.jpg $+ "
  1712.   set %user.online %user.online has just signed in
  1713.   set %linenum $wrap(%user.online,SansSerif,14,140,1,0)
  1714.   echo -t @msnuserlog  $+ $colour(join text) %msn.emailonline logged on at $time $date
  1715.   if ($away == $true) {
  1716.     ;if (%msn.emailonline == %msn.ringuser1 ) || (%msn.emailonline == %msn.ringuser2 )) {
  1717.     ;splay -w " $+ $scriptdir $+ phone.wav $+ "
  1718.     ;  }
  1719.   }
  1720.   if (%linenum > 5) { 
  1721.     set %linenum 5 
  1722.   }
  1723.   if (%linenum == 1) {
  1724.     drawtext -c @msn.on  1 SansSerif 12 10 30 150 15 $wrap(%user.online,SansSerif,14,140,1,1)
  1725.   }
  1726.   if (%linenum == 2) {
  1727.     drawtext -c @msn.on  1 SansSerif 12 10 30 150 15 $wrap(%user.online,SansSerif,14,140,1,1)
  1728.     drawtext -c @msn.on  1 SansSerif 12 10 45 150 15 $wrap(%user.online,SansSerif,14,140,1,2)
  1729.   }
  1730.   if (%linenum == 3) {
  1731.     drawtext -c @msn.on  1 SansSerif 12 10 30 150 15 $wrap(%user.online,SansSerif,14,140,1,1)
  1732.     drawtext -c @msn.on  1 SansSerif 12 10 45 150 15 $wrap(%user.online,SansSerif,14,140,1,2)
  1733.     drawtext -c @msn.on  1 SansSerif 12 10 60 150 15 $wrap(%user.online,SansSerif,14,140,1,3)
  1734.   }
  1735.   if (%linenum == 4) {
  1736.     drawtext -c @msn.on  1 SansSerif 12 10 30 120 15 $wrap(%user.online,SansSerif,14,140,1,1)
  1737.     drawtext -c @msn.on  1 SansSerif 12 10 45 120 15 $wrap(%user.online,SansSerif,14,140,1,2)
  1738.     drawtext -c @msn.on  1 SansSerif 12 10 60 120 15 $wrap(%user.online,SansSerif,14,140,1,3)
  1739.     drawtext -c @msn.on  1 SansSerif 12 10 75 120 15 $wrap(%user.online,SansSerif,14,140,1,4)
  1740.   }
  1741.   if (%linenum == 5) {
  1742.     drawtext -c @msn.on  1 SansSerif 12 10 30 120 15 $wrap(%user.online,SansSerif,14,140,1,1)
  1743.     drawtext -c @msn.on  1 SansSerif 12 10 45 120 15 $wrap(%user.online,SansSerif,14,140,1,2)
  1744.     drawtext -c @msn.on  1 SansSerif 12 10 60 120 15 $wrap(%user.online,SansSerif,14,140,1,3)
  1745.     drawtext -c @msn.on  1 SansSerif 12 10 75 120 15 $wrap(%user.online,SansSerif,14,140,1,4)
  1746.     drawtext -c @msn.on  1 SansSerif 12 10 90 120 15 $wrap(%user.online,SansSerif,14,140,1,5)
  1747.   }
  1748.   ;this is the timer to shut picture window, lenght is set in options
  1749.   .timer896 -moc 1 %msn.poptime window -c @msn.on
  1750. }
  1751. ;menu that is to be used to open chat with user on popup picture window
  1752. alias msn.colour {
  1753.   window -c @msncolour
  1754.   window -haodp +nL @msncolour $mouse.dx $mouse.dy 71 71 
  1755.   drawrect -f @msncolour 0 1 1 1 15 15
  1756.   drawrect -f @msncolour 1 1 17 1 15 15
  1757.   drawrect -f @msncolour 2 1 33 1 15 15
  1758.   drawrect -f @msncolour 3 1 49 1 15 15
  1759.   drawrect -f @msncolour 4 1 1 17 15 15
  1760.   drawrect -f @msncolour 5 1 17 17 15 15
  1761.   drawrect -f @msncolour 6 1 33 17 15 15
  1762.   drawrect -f @msncolour 7 1 49 17 15 15
  1763.   drawrect -f @msncolour 8 1 1 33 15 15
  1764.   drawrect -f @msncolour 9 1 17 33 15 15
  1765.   drawrect -f @msncolour 10 1 33 33 15 15
  1766.   drawrect -f @msncolour 11 1 49 33 15 15
  1767.   drawrect -f @msncolour 12 1 1 49 15 15
  1768.   drawrect -f @msncolour 13 1 17 49 15 15
  1769.   drawrect -f @msncolour 14 1 33 49 15 15
  1770.   drawrect -f @msncolour 15 1 49 49 15 15
  1771. }
  1772. ;menu for the picture window to select font colour
  1773. menu @msncolour {
  1774.   mouse: {
  1775.     if ($mouse.x < 17) && ($mouse.y < 17 ) {
  1776.       set %colx 1
  1777.       set %coly 1
  1778.     }
  1779.     if ($mouse.x < 17) && ($mouse.y > 17) && ($mouse.y < 33) {
  1780.       set %colx 1
  1781.       set %coly 17
  1782.     }
  1783.     if ($mouse.x < 17) && ($mouse.y > 33) && ($mouse.y < 49) {
  1784.       set %colx 1
  1785.       set %coly 33
  1786.     }
  1787.     if ($mouse.x < 17) && ($mouse.y > 49) {
  1788.       set %colx 1
  1789.       set %coly 49
  1790.     }
  1791.     if ($mouse.x > 17) && ($mouse.x < 33) && ($mouse.y < 17 ) {
  1792.       set %colx 17
  1793.       set %coly 1
  1794.     }
  1795.     if ($mouse.x > 17) && ($mouse.x < 33) && ($mouse.y > 17) && ($mouse.y < 33) {
  1796.       set %colx 17
  1797.       set %coly 17
  1798.     }
  1799.     if ($mouse.x > 17) && ($mouse.x < 33) && ($mouse.y > 33) && ($mouse.y < 49) {
  1800.       set %colx 17
  1801.       set %coly 33
  1802.     }
  1803.     if ($mouse.x > 17) && ($mouse.x < 33) && ($mouse.y > 49) {
  1804.       set %colx 17
  1805.       set %coly 49
  1806.     }
  1807.     if ($mouse.x > 33) && ($mouse.x < 49) && ($mouse.y < 17 ) {
  1808.       set %colx 33
  1809.       set %coly 1
  1810.     }
  1811.     if ($mouse.x > 33) && ($mouse.x < 49) && ($mouse.y > 17) && ($mouse.y < 33) {
  1812.       set %colx 33
  1813.       set %coly 17
  1814.     }
  1815.     if ($mouse.x > 33) && ($mouse.x < 49) && ($mouse.y > 33) && ($mouse.y < 49) {
  1816.       set %colx 33
  1817.       set %coly 33
  1818.     }
  1819.     if ($mouse.x > 33) && ($mouse.x < 49) && ($mouse.y > 49) {
  1820.       set %colx 33
  1821.       set %coly 49
  1822.     }
  1823.     if ($mouse.x > 49) && ($mouse.y < 17 ) {
  1824.       set %colx 49
  1825.       set %coly 1
  1826.     }
  1827.     if ($mouse.x > 49) && ($mouse.y > 17) && ($mouse.y < 33) {
  1828.       set %colx 49
  1829.       set %coly 17
  1830.     }
  1831.     if ($mouse.x > 49) && ($mouse.y > 33) && ($mouse.y < 49) {
  1832.       set %colx 49
  1833.       set %coly 33
  1834.     }
  1835.     if ($mouse.x > 49) && ($mouse.y > 49) {
  1836.       set %colx 49
  1837.       set %coly 49
  1838.     }
  1839.     drawrect -f @msncolour 0 1 1 1 15 15
  1840.     drawrect -f @msncolour 1 1 17 1 15 15
  1841.     drawrect -f @msncolour 2 1 33 1 15 15
  1842.     drawrect -f @msncolour 3 1 49 1 15 15
  1843.     drawrect -f @msncolour 4 1 1 17 15 15
  1844.     drawrect -f @msncolour 5 1 17 17 15 15
  1845.     drawrect -f @msncolour 6 1 33 17 15 15
  1846.     drawrect -f @msncolour 7 1 49 17 15 15
  1847.     drawrect -f @msncolour 8 1 1 33 15 15
  1848.     drawrect -f @msncolour 9 1 17 33 15 15
  1849.     drawrect -f @msncolour 10 1 33 33 15 15
  1850.     drawrect -f @msncolour 11 1 49 33 15 15
  1851.     drawrect -f @msncolour 12 1 1 49 15 15
  1852.     drawrect -f @msncolour 13 1 17 49 15 15
  1853.     drawrect -f @msncolour 14 1 33 49 15 15
  1854.     drawrect -f @msncolour 15 1 49 49 15 15
  1855.     drawrect @msncolour 1 1 %colx %coly 15 15
  1856.   }
  1857.   sclick:{
  1858.     if ($mouse.x < 17) && ($mouse.y < 17 ) {
  1859.       set %msn.col 0
  1860.       set %msncolour ffffff
  1861.     }
  1862.     if ($mouse.x < 17) && ($mouse.y > 17) && ($mouse.y < 33) {
  1863.       set %msn.col 4 
  1864.       set %msncolour ff
  1865.     }
  1866.     if ($mouse.x < 17) && ($mouse.y > 33) && ($mouse.y < 49) {
  1867.       set %msn.col 8
  1868.       set %msncolour ffff
  1869.     }
  1870.     if ($mouse.x < 17) && ($mouse.y > 49) {
  1871.       set %msn.col 12
  1872.       set %msncolour ff0000
  1873.     }
  1874.     if ($mouse.x > 17) && ($mouse.x < 33) && ($mouse.y < 17 ) {
  1875.       set %msn.col 1
  1876.       set %msncolour 0
  1877.     }
  1878.     if ($mouse.x > 17) && ($mouse.x < 33) && ($mouse.y > 17) && ($mouse.y < 33) {
  1879.       set %msn.col 5 
  1880.       set %msncolour 80
  1881.     }
  1882.     if ($mouse.x > 17) && ($mouse.x < 33) && ($mouse.y > 33) && ($mouse.y < 49) {
  1883.       set %msn.col 9 
  1884.       set %msncolour ff00
  1885.     }
  1886.     if ($mouse.x > 17) && ($mouse.x < 33) && ($mouse.y > 49) {
  1887.       set %msn.col 13 
  1888.       set %msncolour ff00ff
  1889.     }
  1890.     if ($mouse.x > 33) && ($mouse.x < 49) && ($mouse.y < 17 ) {
  1891.       set %msn.col 2 
  1892.       set %msncolour 800000
  1893.     }
  1894.     if ($mouse.x > 33) && ($mouse.x < 49) && ($mouse.y > 17) && ($mouse.y < 33) {
  1895.       set %msn.col 6 
  1896.       set %msncolour 800080
  1897.     }
  1898.     if ($mouse.x > 33) && ($mouse.x < 49) && ($mouse.y > 33) && ($mouse.y < 49) {
  1899.       set %msn.col 10 
  1900.       set %msncolour 808000
  1901.     }
  1902.     if ($mouse.x > 33) && ($mouse.x < 49) && ($mouse.y > 49) {
  1903.       set %msn.col 14 
  1904.       set %msncolour 808080
  1905.     }
  1906.     if ($mouse.x > 49) && ($mouse.y < 17 ) {
  1907.       set %msn.col 3 
  1908.       set %msncolour 8000
  1909.     }
  1910.     if ($mouse.x > 49) && ($mouse.y > 17) && ($mouse.y < 33) {
  1911.       set %msn.col 7 
  1912.       set %msncolour 66ff
  1913.     }
  1914.     if ($mouse.x > 49) && ($mouse.y > 33) && ($mouse.y < 49) {
  1915.       set %msn.col 11 
  1916.       set %msncolour ffff00
  1917.     }
  1918.     if ($mouse.x > 49) && ($mouse.y > 49) {
  1919.       set %msn.col 15 
  1920.       set %msncolour c0c0c0
  1921.     }
  1922.     if (%msn.col != 0) && (%msn.col != 1) {
  1923.       set %msn.echo.col %msn.col
  1924.     }
  1925.     else {
  1926.       set %msn.echo.col $colour(normal text)
  1927.     }
  1928.     msn.picolour
  1929.     window -c @msncolour
  1930.     .did -g msn.config 398 " $+ $scriptdir $+ colour.bmp $+ "
  1931.   }
  1932. }
  1933.  
  1934.  
  1935. ;mIRC Script
  1936.  
  1937. alias msn.typing {
  1938.   if (%msn.showtyping == off) {
  1939.     if ($left($window(@ $+ %msn.typingname).title,9) != ╗╗ Typing) {
  1940.       titlebar @ $+ %msn.typingname ╗╗ Typing $window(@ $+ %msn.typingname).title
  1941.       .timertype -oc 1 4 titlebar @ $+ %msn.typingname $right($window(@ $+ %msn.typingname).title,-9)
  1942.     }
  1943.     else {
  1944.       .timertype off
  1945.       .timertype -oc 1 5 titlebar @ $+ %msn.typingname $right($window(@ $+ %msn.typingname).title,-9)
  1946.     }
  1947.   }
  1948.   else {
  1949.     if ($window(@ $+ %msntypingwindow ) != $null) {
  1950.       .timertype off
  1951.       .timertype -oc 1 5 window -c @ $+ %msntypingwindow
  1952.     }
  1953.     else {
  1954.       set %msn.typeappactive $appactive
  1955.       window -c @ $+ %msntypingwindow
  1956.       window -aohdp +ndL @ $+ %msntypingwindow $calc($window(@ $+ %msn.typingname).dx + 5) $calc($window(@ $+ %msn.typingname).dy + 25) $calc($width(User Typing,Terminal,12,1) + 3) $calc($height(User Typing,Terminal,12) + 3)
  1957.       if ($lactive != Status Window) && ($lactive != 0) && (%msn.typeappactive == $true) {
  1958.         window -a $lactive
  1959.       }
  1960.       drawtext -pbo @ $+ %msntypingwindow $colour(highlight) $color(background) Terminal 12 1 0 User Typing
  1961.       .timertype -oc 1 4 window -c @ $+ %msntypingwindow
  1962.     }
  1963.   }
  1964. }
  1965. menu @msn.on {
  1966.   sclick:{
  1967.     set %msnchatemail %msn.emailonline
  1968.     window -c @msn.on
  1969.     window -abkez $+ %msn.desktop @ $+ %msnchatemail $+ -msn 100 100 400 200 " $+ $scriptdir $+ msn.ico $+ "
  1970.     ;aline  -cp @ $+ %msnchatemail $+ -msn Connecting to 12< %msn.emailonline > 4 it'll just be a sec ;p~
  1971.     titlebar @ $+ %msnchatemail $+ -msn $left(%user.online,-18)
  1972.     sockwrite -n msn.main XFR %msn.debug SB
  1973.     ; echo 4 %msn.logging %msn.logger %logwindow
  1974.     if (%msn.logging == 1) {
  1975.       .log on $active -f %msnchatemail $+ -msn $+ .log
  1976.       set %msnlogfile " $+ $window($active).logfile $+ "
  1977.       if (%msn.loadlog == 1) {
  1978.         loadbuf 200 -p $active %msnlogfile
  1979.       }
  1980.     }
  1981.   }
  1982. }
  1983.  
  1984. dialog msn.popupmsg {
  1985.   title "MSN :-) popup msg"
  1986.   icon tmsn\msn.ico
  1987.   option dbu
  1988.   size -1 -1 120 90
  1989.   button "send", 2, 80 80 40 10, OK 
  1990.   button "Cancel", 3, 40 80 40 10, cancel 
  1991.   edit %msn.popupmsg1, 5, 8 20 104 10,
  1992.   edit %msn.popupmsg2, 6, 8 30 104 10,
  1993.   edit %msn.popupmsg3, 7, 8 40 104 10,
  1994.   edit %msn.popupmsg4, 8, 8 50 104 10,
  1995.   edit %msn.popupmsg5, 9, 8 60 104 10,
  1996.   box "Please enter the popup msg", 10, 3 3 114 74
  1997. }
  1998. on *:dialog:msn.popupmsg:edit:5:{
  1999.   set  %msn.popupmsg1 $did(5)
  2000. }
  2001. on *:dialog:msn.popupmsg:edit:6:{
  2002.   set  %msn.popupmsg2 $did(6)
  2003. }
  2004. on *:dialog:msn.popupmsg:edit:7:{
  2005.   set  %msn.popupmsg3 $did(7)
  2006. }
  2007. on *:dialog:msn.popupmsg:edit:8:{
  2008.   set  %msn.popupmsg4 $did(8)
  2009. }
  2010. on *:dialog:msn.popupmsg:edit:9:{
  2011.   set  %msn.popupmsg5 $did(9)
  2012. }
  2013. on *:dialog:msn.popupmsg:sclick:2:{
  2014.   timerpopupmsg1 -moc 1 1000 popupmsg1
  2015.   timerpopupmsg2 -moc 1 3000 popupmsg2
  2016.   timerpopupmsg3 -moc 1 5000 popupmsg3
  2017.   timerpopupmsg4 -moc 1 7000 popupmsg4
  2018.   timerpopupmsg5 -moc 1 9000 popupmsg5
  2019. }
  2020.  
  2021.  
  2022. alias popupmsg1 {
  2023.   sockwrite -n msn.main REA %msn.debug %msn.signname $make20(%msn.popupmsg1) | sockwrite -n msn.main CHG %msn.debug HDN | sockwrite -n msn.main CHG %msn.debug NLN 
  2024. }
  2025. alias popupmsg2 {
  2026.   sockwrite -n msn.main REA %msn.debug %msn.signname $make20(%msn.popupmsg2) | sockwrite -n msn.main CHG %msn.debug HDN | sockwrite -n msn.main CHG %msn.debug NLN
  2027. }
  2028. alias -l popupmsg3 {
  2029.   sockwrite -n msn.main REA %msn.debug %msn.signname $make20(%msn.popupmsg3) | sockwrite -n msn.main CHG %msn.debug HDN | sockwrite -n msn.main CHG %msn.debug NLN 
  2030. }
  2031. alias -l popupmsg4 {
  2032.   sockwrite -n msn.main REA %msn.debug %msn.signname $make20(%msn.popupmsg4) | sockwrite -n msn.main CHG %msn.debug HDN | sockwrite -n msn.main CHG %msn.debug NLN 
  2033. }
  2034. alias -l popupmsg5 {
  2035.   sockwrite -n msn.main REA %msn.debug %msn.signname $make20(%msn.popupmsg5) | sockwrite -n msn.main CHG %msn.debug HDN | sockwrite -n msn.main CHG %msn.debug NLN | sockwrite -n msn.main REA %msn.debug %msn.signname $make20(%msn.nickname)
  2036. }
  2037.  
  2038. alias msn.send {
  2039.  
  2040.   set %msn.filesenduser $1-
  2041.   set %msn.filesend $sfile($mircdir,select file to send,send it!)
  2042.  
  2043.   if ($sock(msnchat. $+ %msn.filesenduser)) {
  2044.     sockwrite -n msnchat. $+ %msn.filesenduser MSG 4 N 277
  2045.     sockwrite -n msnchat. $+ %msn.filesenduser MIME-Version: 1.0
  2046.     sockwrite -n msnchat. $+ %msn.filesenduser Content-Type: text/x-msmsgsinvite; charset=UTF-8
  2047.     sockwrite -n msnchat. $+ %msn.filesenduser 
  2048.     sockwrite -n msnchat. $+ %msn.filesenduser Application-Name: File Transfer
  2049.     sockwrite -n msnchat. $+ %msn.filesenduser Application-GUID: {5D3E02AB-6190-11d3-BBBB-00C04F795683}
  2050.     sockwrite -n msnchat. $+ %msn.filesenduser Invitation-Command: INVITE
  2051.     sockwrite -n msnchat. $+ %msn.filesenduser Invitation-Cookie: 33267
  2052.     sockwrite -n msnchat. $+ %msn.filesenduser Application-File: $nopath(%msn.filesend)
  2053.     sockwrite -n msnchat. $+ %msn.filesenduser Application-FileSize: $file(%msn.filesend).size
  2054.     sockwrite -n msnchat. $+ %msn.filesenduser 
  2055.   }
  2056.   ;unset %msn.filesenduser
  2057.   unset %msn.filesend 
  2058. }
  2059. alias msnsendtest {
  2060.   if ($portfree(6891) != $true) {
  2061.     msn.error msn send port in use
  2062.     return
  2063.   }
  2064.   if ($sock(msnchat. $+ %msn.filesenduser)) {
  2065.     sockwrite -n msnchat. $+ %msn.filesenduser MSG 4 N 238
  2066.     sockwrite -n msnchat. $+ %msn.filesenduser MIME-Version: 1.0
  2067.     sockwrite -n msnchat. $+ %msn.filesenduser Content-Type: text/x-msmsgsinvite; charset=UTF-8
  2068.     sockwrite -n msnchat. $+ %msn.filesenduser 
  2069.     sockwrite -n msnchat. $+ %msn.filesenduser Invitation-Command: ACCEPT
  2070.     sockwrite -n msnchat. $+ %msn.filesenduser Invitation-Cookie: 33267
  2071.     sockwrite -n msnchat. $+ %msn.filesenduser IP-Address: $ip
  2072.     sockwrite -n msnchat. $+ %msn.filesenduser Port: 6891
  2073.     sockwrite -n msnchat. $+ %msn.filesenduser AuthCookie: 93301
  2074.     sockwrite -n msnchat. $+ %msn.filesenduser Launch-Application: FALSE
  2075.     sockwrite -n msnchat. $+ %msn.filesenduser Request-Data: IP-Address:
  2076.   }
  2077.   socklisten msn.filesend 6891
  2078. }
  2079. on *:socklisten:msn.filesend:{
  2080.   sockaccept msn.filesock
  2081. }
  2082. on *:sockread:msn.filesock:{
  2083.   if ($sockerr > 0) return
  2084.   :blahah
  2085.   sockread -f %msntemp
  2086.   if ($sockbr == 0) return
  2087.   if (%temp == $null) %msntemp = -
  2088.   ;echo 13 %msntemp
  2089.   goto blahah
  2090. }
  2091. alias msnftp {
  2092.   sockwrite -n msn.filesock VER MSNFTP
  2093. }
  2094.