
***********************************************************
Welcome To Vincula Neo 4.9 and Vincula ECR 5.05ce 

-Requires mIRC 6.x, only tested in 6.16 and 6.17
-WILL NOT work in mIRC 5.91 or lower.

***********************************************************
E-mail: ChristianEthics2@yahoo.ca 
Messenger: ChristianEthics@hotmail.com 
Home page: http://ca.geocities.com/christianethics2
***********************************************************
--Modified By Gwen 
--http://ca.geocities.com/ChristianEthics2/

--Previous Modifications By
--Vincula 49 Modded Modified By err0r
--Vincula 4.9EZ Modification By IRCTech-DJV http://teamsanctuary.net
--Vincula 4.9 Edit By eXonyte Modified By Koz|cal http://scandalouz.com
--urole updater by -Vexation-
--subscriberInfo updater by zBrute, Tyrant, Chris and Modifed greatly by The Gate Keeper to work with Vincula settings.

--Instructions
1) put the vincula file into your vincula folder and re-load.

2) Works best with 'show users colors' option turned on 
   AND the mIRC color settings listed below:

***********************************************************
--For best results use with the 'show users color' option and
   the following mIRC color settings:
***********************************************************
-Action text - purple          -Notice text - orange  
-Ctcp text - light grey        -Notify text - orange
-Highlighted dusty blue        -Other text - light grey
-Info text - dark grey         -Own text - dark green
-Info2 text - light grey       -Part text - dark grey
-Invite text - dark grey       -Quit text - dark grey
-Join text - dark grey         -Topic text - dusty blue
-Kick text - red               -Wallops text - pink
-Mode text - light grey        -Whois text - navy blue
-Nick text - brown             -Listbox text - black
-Normal text - black           -Grayed text - dark grey
-background - white            -Title text - dark grey
-Curser bar -a ctive light grey, non active dark grey 

***************************************************************                     

Whats New?

ECR CE versions differences
-halted raw 915, 924 for full owner access protection.
-add christianethics version reply.

;ECR 5.05
;-updated the name to ECR so DJV can take over EZR and I can keep updating for CE
;-added in nick list colors *thanks to X-Fusion for posting part of the code.
;-added ECR section to the msn.setup box
;-added in long nick kick ability from techgear forum - 'long nick kick'
;-added room name to auto room creation when trying to join a room that is not created.
;-added auto update of passport to subscriber room creation if passport is outdated. need to test this
;-added in the join finder system and !find name [for bot use only does not work on text]
;-added debug window on/off to msn.setup box
;-added the topic with spaces instead of \b
;-fixed the mIRC isp disconnect bug--now when your comp is disconnected from internet
the nicklist is cleared so that you can tell you have been disconnected. /disconnect
;-fixed the selpp on the msn.setup box so that it selects when you click on it, and now updates correctly.
;-took out the 'ctcp sent echo'
;-fixed the msn.setup box not holding its setttings
;-halted the who chan on join when the color nicklist is on, so that the color nicklist can do the who chan on join.
ADD CONNECTION FIX TO SET UP MENU

;EZR 5.032
;-added in the '/botcolor' notice on the msn.setup box.
;-fixed the mode color so that it reflects what you chose in the 'View..Colors..' area.


;EZR 5.031
;-fixed the 'show users colors' 
;-fixed the variable error on the room creation


EZR 5.03
-Updated to TGK's March 2006 Vincula Room Creation-modified for EZR.  Now room creation is 100%.
-Updated to TGK's April 14th VinculaPPUpdater-modified for EZR.
-Took out the mIRC version reply.
-Updated the EZR 'show non-subs in nicklist' option, so that it won't auto set +v in moderated rooms.
-Cleaned up some old useless code.


EZR 5.02
-Updated to TGK new VinculaPPUpdater third version

EZR 5.01
-Deleted some old and heavy code.
-found, joining removed the \b in room name.
-fixed the isitvincula reply - updated version on it.

EZR 5.0
-Updated to work with April 8th MSN changes.
-Fixed the vincula room menu kicks.
-Fixed subscriber room maker.
-Updated some echos and version replies.
-Fixed spelling mistake on userrole corret instead of correct.
-replaced the 'now talking in room\bname with spaces. ;$replace($chan,\b,$chr(32)).
-fixed the recent room list to show no \b.
-room creation fixed for groups and subscription, and for multi-word names.
-fixed the 'not registered error' that occured with Nickname and MSNREGCookie both filled out (AUTH code).
-coded in the updater to work with /msn.getpp /msn.dogetsub and msn.getcookie
EZR 4.9
-Special Edition for the ChristianEthics Official 9.0 Version.

EZR 4.8
-updated the access denied message to clarify non-host status might interfere
-added info on *Quits:(flooding) to help people know how to deal with it and prevent it.


EZR 4.7
-added invite flood protection
-added non-sub system
-fixed the away/back notice when others mark as away or back
-added passport option button to add passport dialog
-added part sounds and fixed knock sounds
-worked on raw 914 access denied so its more selective as to when it should update userrole.
-fixed $did error on load that cryton found.
-changed onjoin version/ping checker
-changed the webtv version reply on join system
-added connection.vincula variable to load and unload to work with biblebot to fix clearmsn not sending input to channel
-added a fix for the ping and time replies only giving one reply
-fixed the room name showing up in on join messages etc
-changed ping request on-join to time request to accomodate clearmsn settings
EZR 4.5
-changed the theme colors slightly.
-fixed a timer typo error.

EZR 4.4
-fixed the ping not showing the persons reply.

EZR 4.3
-creates a room from recent room list using spaces instead of \b

EZR 4.2 
-updated menus
EZR 4.1
-fixed the inactive timer error after servers established.

EZR 4.0 
-updated room creation, for both subscribed and group creation.
-room creation now uses the active vincula passport.
-room creation now gives warning for non-subscribed passports trying to create subscribed room.
-worked on msnregcookie updater, set timer for lobby room to close on update failure.
-added on or off choice to menus for auto update passport on-start option.
-added 'if' commands to auto-update system(autoup)(alias msn) so its more selective on what it auto updates.
-added userrole and subscriberinfo numbers to auto-update system(autoup)(alias msn)
-removed the userrole updates on current and change group keys, and from recent room list.
-added a new userrole management system, auto updates userroles on-join when access denied.
-userrole manager now automatically removes %#G_ on userrole update.
-fixed subscriberinfo update failure message.
-added userrole update failure message.
-added msnregcookie update failure message.
-fixed the clear host and owner keys


EZR 3.9
-fixed the echo on own font a bit more.
-added show non-subs in nicklist either on or off to menu's
EZR 3.8
-customizable own and normal font colors again.
-re-set passport update timers to accomodate those people with faster speed internet then me :)

EZR 3.7
-echo can't add access on st window instead of active window
-changed echo on access denied for both group room and access list info.
-added current group and change group onto group join in menus.
-added EZR update checker

EZR 3.5
-fixed the error that it would fail to show the first two numbers in a string if the chatter was using
the default black msn fault.  
-added %joinnick so you know 'who' is the non-subscriber.
-Fixed a braket error

EZR 3.4
-re-instated the automatically update passport option (working correctly now)
-set it up that if the automatically update passport box is checked and the hour box is empty,
it will default to 12 hours to prevent the error of a blank hour box causing
the passport to be updated over and over again.
-added in server connection reset on load, as it was not establishing connection on load, only on start.
-set flood protection to 500 10 10 0
-added in a list of new commands on welcome
-added in add passport on load 
-added warning message onto nick request on join.
-re-set the timer for update failure.
-add passport/subinfo update on start.
-added timers to full update.

EZR 3.3
-disabled the automatically update passport option as it does not work correctly
with the new sub updaters.

EZR 3.2.1
-flood settings set lower(forgot to change them in the public release)

EZR 3.2
-updated on koz|cals room creation.

EZR 3.1
-added new add passport option on start-up and in menus
-updated dialogs
-fixed the 4.9 problem with the add/edit passport dialogs not selecting the current passport.
-ironed out other minor bugs and updated the theme a bit more.

EZR 2.5
-restored fast update. /msn.getpp
-restored full update. /msn.getcookie
-added the forgotten stopppu alias (thanks Gate Keeper)
-changed a couple of echo messages

EZR 2.3
-added subscriberinfo auto updater
-Fixed a few minor errors 
-Fixed spectator joining with custom nick
-Joins as guest, spectator, subscriber, groups using MSNREGCookie, guest or custom nick.
-Fixed the connecting conflicts so you don't require subscriberinfo to join group rooms.
-Updated theme, inspired by ClearMSN 5.01 by -Vexation-
-Sets +v mode on subscribers so nicklist shows subscribers as + and non-subscribers with nothing beside their name.
-Automatic UserRole updater thanks to -Vexation-
-SubscriberInfo Cookie Grabber by Twel 
-Version Replies Changed to reflect EZR Version.

***************************************************************
***************************************************************  



;======================]|Credits|[===========================:
;============================================================:
;--- Modified By Koz|cal                                     :
;--- Works Only If You Are A Subcriber                       :
;--- Thanks to HizPower , Tanker , And Everyone From SHS     :
;--- ENJOY ! ;)                                              :
;=======================]|Stats|[============================:
;============================================================:
;--- Released : Oct. 19, 2003 Time. 8:00 AM                  :
;--- Updated Room Creation ... Wed, Oct. 29, 1:04 AM Est.    :
;--- ReUpdated Thu, Dec. 17, 5:00 PM Est.                    :
;--- |Role & Sub Half Updaters Added..                       :
;--- |Cookie Updater Added..                                 :
;--- |Group connection abilities added along with group      :
;--- |room creation is case the room is empty when you       :
;--- |goto join it...                                        :
;--- |along with lots more... Enjoy ;)                       :
;------------------------------------------------------------:
;=======================]|Code|[=============================:
;============================================================:


Previous
Vincula 4.9 Edit By eXonyte Modified By Koz|cal http://scandalouz.com
*Vincula 4.9EZ Modification By IRCTech-DJV http://teamsanctuary.net

Thanks for downloading Vincula 4.9EZ!
The Vincula 4.9EZ Idea was made to make things a little easier for beginners new to Vincula and scripts although advanced users can still benefit from this newer easier Vincula to save a few headaches!!!

Place the "VinculaEZ" folder in your script's directory which includes all the necessary files plus the addition of the Subscription Grabber.exe(Rando|a) and Community.exe(WebAgent007) used for the Passport ADD/Edit features in Vincula 4.9EZ!

In the Status window, type in /load -rs VinculaEZ\vincula.mrc to load in Vincula4.9EZ or you can load the vincula.mrc file through the mIRC options whichever you choose.

This Vincula Add-On is meant to replace any other Vincula connection scripts in your script! If you have any questions regarding this Add-On, please e-mail all questions to teamsanctuary@msn.com

The grabbers included with this program are used to retrieve your subscription values(Paid Msn Chat Members) or UserRole Values(Msn Groups)! The PassportTicket, PassportProfile and Subinfo/Userrole values must be copied and pasted to the associated entry fields in Passport ADD/Edit in Vincula settings/options. The MsnRegCookie Value Is No Longer Used so you do not need to copy and paste this value!!!


=======================================================================================
Vincula Neo (v4.9) - eXonyte's MSN Chat connection script
Date: Saturday, October 11, 2003
-----------------------------------------------------------------------

Requires mIRC 6.x, only tested in 6.03 and 6.1.
WILL NOT work in mIRC 5.91 or lower.

If you want to know things like the socket names, search in this file
for "msn scripters" (without the quotes) and it'll give you that info.

If you are using a script or addon that changes the way mIRC displays
any events, especially a theme system, then Vincula's decoder will
likely conflict with it.  MTS engine support may be added at a future
date to correct this, or the display events can be modified at will.

-----------------------------------------------------------------------

v4.9 - What's new:
- You can change nicknames and clone again.
- You don't need the MSNREGCookie anymore.
- Vincula now stores room IP addresses in a hash table. Great for your
  sockbots.
- Added $msn.roomip to get room IP addresses from the hash table.
- Added /msn.ipjoin command to join without looking up the room.
  (See below for details.)
- Fixed the NOOP timer that was totally screwed up in 4.8.
- Removed some debugging code from the msn.server.* sockread and from
  the /msn.getcookie updater.
- Hopefully fixed the in-room /kill display.
- Vincula doesn't reinstall MSNChatX all the time now. Didn't find out
  until after release that it was causing Guest_null problems.
  Hopefully it shouldn't do that anymore.
- The /msn.resetocx command now waits 5 seconds before reinstalling the
  original MSN Chat OCX. Hopefully stops Guest_null.
- The Enter Name dialog now shows which passports need updating.
- Away nicknames will be gray in mIRC 6.1 and up now.
- Added support for the Chat Partners (PT) category. Thanks to Ziggy.
- Will now display /kill messages in the room instead of in Status.
- Fixed /join %#roomname so that it'll work properly.
- Changed the Vincula Version reply so that you can script on it
  without having to edit Vincula.  Normal ctcp *:VERSION: scripts will
  work now. You still have to edit Vincula to change it though.
- Fixed /msn.getcookie so there are no more /remove errors, and it will
  actually get the correct cookie now.
- Tweaked both passport updaters so that they fully log out now.
- Vincula will now automatically update the lookup server IP addresses,
  just in case MSN changes them like they have before.

v4.8 - What's new:
- Passport updater should work fine again.
- Should have the socket in use errors fixed. Vincula now reinstalls
  MSNChatX every time you open mIRC.
- Added a new /msn.resetocx command, which will reset the MSNChatX OCX
  in case it gets unloaded somehow. Should make it easier to solve the
  socket in use errors.
- Passport Updater URLs are now autoupdated as needed.  The URLs are
  now in the update checker's .txt file and in vincula.ini.
- Added a new passport updater (/msn.getcookie) that will actually grab
  your MSNREGCookie, as well as updating the rest of your info. Be
  careful using it though, because it sometimes grabs the wrong
  MSNREGCookie.
- Changed the NOOP timer in the msn.server.* sockets, so now you
  shouldn't flood off quite as easily.
- It now displays the reason people set when they go /away. Thanks to
  Ziggy for pointing out my overlooking of that.
- I probably did a whole lot of other things too, but I don't remember
  because I lost my list when I got a new computer.

For old What's New lists, see the end of this file.

-----------------------------------------------------------------------

Setting up Vincula Neo:

If you downloaded the version of Vincula Neo that comes with mIRC, you
can skip this first part, it's all done automatically for you.

Make sure vincula.mrc and nHTMLn_2.92.dll are in the same folder, and
then load ONLY vincula.mrc into mIRC.  If you don't know how to load a
script, then in mIRC type:

//load -rs " $+ $sfile(*.mrc) $+ "

in any mIRC window and choose vincula.mrc from the list, from
whatever folder you had previously unzipped it to.

After the script is loaded, it will perform various one-time
initialization steps.  It will also tell you your current UserData1
key, and finish by opening the script options dialog, which can be
reopened any time by typing: /msn.setup

Once this dialog is opened, I recommend adding a passport to the stored
passports list on the Passport tab.  If you don't do that, then you
will only be able to join rooms as a Guest.

-----------------------------------------------------------------------

Adding Passports:

To add a passport to Vincula Neo, open the Setup dialog by typing:

/msn.setup

and go to the Passports tab.  On this tab, click the Add button on the
left.

A new dialog will open, which is where you enter the passport info.
The only information that you MUST have, is the Entry Name (the name
that Vincula uses to refer to the passport) and the e-mail address. You
can choose to enter any of the other options if you want.

If you leave the nickname blank, Vincula will default to using either
the nickname that is linked by the MSNREGCookie (explained more below),
or the nickname that is set in your mIRC.  If you put in a nickname,
then Vincula will always use that nickname when you're connecting with
that passport, unless you enter another one in the "Enter Name" prompt
when you connect (which can be turned off).

If you don't enter a password, then Vincula will ask you for a password
every time it updates that passport's information.  If you do enter the
password, then Vincula will never ask you for it.

The MSNREGCookie is a piece of your passport information that Vincula
can't automatically update, but it is also unneeded.  If you want
Vincula to automatically use your passport's nickname, then you will
either need to copy and paste the MSNREGCookie from the View Source of
an MSN Chat room, or you will have to do a manual update.  Once you
have set the MSNREGCookie in Vincula, it shouldn't expire like the rest
of your passport info, so you shouldn't have to change it very often,
if at all.  Vincula will work just fine even if you never give it an
MSNREGCookie though.  The only drawback is that it will not auto detect
the nickname that goes with this passport, you will have to put it in
on your own.

You do not need to bother with the PassportTicket and PassportProfile.
They are the other two pieces of the passport information.  They are
required for Vincula to be able to use the passport, but they will
automatically be retrieved when you refresh the passport so you don't
need to worry about typing them in on your own.

The Profile Type dropbox lets you choose which of the icons you want
MSN Chat users to see next to your name.  Vincula cannot autodetect
this, and it honestly doesn't care, so feel free to choose any profile
icon that you want.

-----------------------------------------------------------------------

Editing Passports:

You can edit a stored passport's information by going to the /msn.setup
dialog, going to the Passports tab, choosing a passport, and clicking
the Edit button.

You can also edit your current passport by typing:

/msn.editpp

or choosing "Edit Passport information" from the right-click menu in
the Status Window or from the Commands menu on the toolbar.  If you are
unning Vincula with another script loaded, the Commands menu may be
renamed, so check the menu in between the DCC and Window menus.

Any piece of the passport information can be edited except for the
Entry Name.  If you wish to rename a passport at this time, then you'll
have to delete it and re-add it with a different Entry Name, sorry!

-----------------------------------------------------------------------

Updating Passport info:

To update your current passport info, just type /msn.getpp in any
window, or choose "Update Passport information (auto)..." from a popup
menu.  You can also go to the Passports tab in /msn.setup, select a
passport, and hit Refresh.  If the Windows XP Passport signin dialog
opens, just click Cancel and Vincula should still be able to update.

If for some reason you need to update your passport info manually,
or if you want to autoupdate the CLSID, then do as follows:

Go to http://chat.msn.com and join any room (even one that doesn't
exist).

Once the page opens, right-click on the page and choose View Source.

Hopefully it opens the View Source in Notepad, and once it's open
just save it wherever you like.

Now, back in mIRC, type:

/msn.mgetpp

and choose the file you just saved.

It should scan through the file and say that it found the passport
info.

-----------------------------------------------------------------------

Joining a room:

You can usually use /msn.roomlist to join a room. That's likely the
simplest way to get into a room. If you already know the name of the
room you want to join though, you may want one of these commands.

Unless you've turned it off, after using any of the below room-join
commands, Vincula will ask you for a nickname.  This DOES allow you to
use almost any nickname you desire.  If you want to use a unicode name,
make sure you check the box that says "Name is in Unicode format."  If
you are using plain ASCII in the name (such as directly typing Alt+0169
to get ), then leave the box unchecked.  Also, if you leave the name
entry box blank, Vincula will use an appropriate default nickname.

All of the below commands support the -g and -c options, as well as 
combining the two as either -gc or -cg.
-g joins a room as a guest.
-c joins a groups room using your passport.
-cg or -gc joins a groups room as a guest (like the real thing).

/msn %#RoomName [key]
---------------------
Joins a room using the loaded passport info.  If you supply a key, it
will use this key when joining.

/msn -g %#RoomName [key]
------------------------
/nick <null
------------------------
Joins a room using a Guest nickname (you will be asked for a name).
You use -g, -c, and -gc/-cg the same way as this, in all of these
commands. I only gave this as an example.

/joinurl http://chat.msn.com... [key]
-------------------------------------
Joins the room based on the address for the room.
It's not very practical to use this for a groups room, since it won't
understand a groups room's URL.

/joinhex 2523526F6F6D4E616D65 [key]
-----------------------------------
Joins a room via the hex name.  Use -g to join as a Guest.
If you use -c instead of -g, it will join a groups Room

/joins [-k key] Room Name
-------------------------
Joins a room that has spaces in the name.
-k allows you to use a key, like this:
/joins -k somekey My Chat Room
That would join the room "My Chat Room" using the key "somekey".

/msn.ipjoin [cid] IP Nickname %#RoomName
----------------------------------------
Joins a room without looking it up, by just connecting straight to the
specified IP address.  If a valid [cid] is given, Vincula will use that
Status window to connect.

-----------------------------------------------------------------------

Joining a room using the MSN Chat Control:

This is pretty straight-forward.  When you're in a room, just right-
click and choose the "Join the room using the MSN Chat Client" option.
It will open a dialog, and you should choose one of the "On MSN"
options.

The only problem here is that to use a passport with this, you must
have the MSNREGCookie for the passport.  Follow the manual passport
update instructions above, or edit a passport and put in the proper
MSNREGCookie for it.  Then you can just select a passport, and click
OK.

If you would prefer to join "On MSN as a Guest" then you
don't need to worry about a passport.  Just choose the option, click
OK, enter a nickname to use, and you're good to go.

-----------------------------------------------------------------------

Commands:

/msn.setup
----------
Lets you set the font that MSN users will see, along with a bunch of
other options for Vincula (including those below).

On the Passport tab:
    You use this tab to manage your passports. You can Add, Edit,
    Delete, or Update, any of your passports and you can set other
    connecting related options.
Don't ask for nickname when connecting using a passport
    Self explanatory, tells Vincula not to bug you about the nickname
    you want to use to connect, when you're using a Passport.
Don't ask for nickname when connecting as a guest
    Also self explanatory, tells Vincula not to ask for a nickname when
    you're connecting as a Guest.
Auto update info if older than X hours
    Just like it says, if you try to connect using a passport that was
    not refreshed in the past X hours (X being whatever you set), then
    Vincula will automatically update it before it tries to connect.

On the Options tab:
    Here you can set your font, as well as various Chatting options.
Decode incoming text:
    Passes most incoming messages through the script's Unicode decoder
    so that names and text which use special characters can be read.
Encode outgoing text:
    This option will encode any outgoing text, so that MSN Chat users
    will actually be able to see any special characters you type, such
    as  or .
Show users' colors:
    Allows you to see what colors people are speaking in, and also if
    they are using Bold and/or Underlined text.  Because of an mIRC
    limitation, you cannot see Italics, nor specific fonts.
Hide Joins/Parts/Kicks:
    Tells Vincula not to show any Joins, Parts, or Kicks, in the room.
Automatically use keys:
    Vincula automatically stores any Ownerkey that it sees, whether it
    is from you creating a room, or it was someone else setting it in
    a room you were an owner in.  This option tells Vincula to use the
    key that it has stored whenever you join a room.
Rejoin room when kicked:
    This will make Vincula try to re-join a room when you get kicked
    out of it.  If you're banned, you probably won't be able to get
    back in.
Show profile types on join:
    When someone enters the room, Vincula will check what type of
    profile they have and tell you right below the Join message.
Disable new whispers:
    Just like in MSN Chat, this option turns off new incoming whispers.
Don't /who when you join rooms:
    Normally Vincula will do a hidden /who when you join a room. This
    is done so that mIRC's $address and $ial and other identifiers that
    use the Internal Address List will work properly.  The only
    drawback is that it may slow down Vincula's join time when you join
    a large room.  You can turn it by checking this box.
Time Reply:
    Lets you change the time reply that people get when they check your
    local time.  You can use $identifiers and %variables if you like.
    The default button restores the time reply to match MSN Chat's.
MSN Chat CLSID:
    When MSN updates the MSN Chat control, the identifier for it that's
    called the Class ID or CLSID, changes.  It will automatically
    update the CLSID if you do a manual passport update, or you can
    change it by editing it right here.  You can always find the
    current CLSID at: http://exonyte.dyndns.org/msn.php
    The default button sets the CLSID to MSN Chat Control 4.5's CLSID.

On the Sounds tab:
    Here you can set sounds for various chat room events. Click the ...
    button to select a sound, or type in the filename yourself. Click
    the name of the sound event to preview your selected sound.
    If you want to use the same sounds that MSN Chat uses, just click
    the button labeled "Use default MSN Chat sounds".

On the Keys / Other tab:
    This tab includes a few other options that wouldn't fit anywhere
    else, so I put them here.
Add a key to Vincula's key list:
    You can use this part of the dialog to add host and owner keys to
    Vincula's internal list.  Put in the full room name (%#room) and
    the key (leave the key box blank if you want to delete the key),
    and then click either the "Add as Owner key" or the "Add as Host
    key" button.
Clear stored Owner keys and Clear stored Host keys:
    These buttons will clear Vincula's Owner and Host key lists.  It
    is probably a good idea to do this every so often, just be aware
    that for Vincula to remember the keys for a room, you should re-
    prop them after clearing.
Rebuild Font Cache:
    If you've installed any new fonts, or if you deleted any old fonts,
    click this button to make Vincula update its font list.
    
/msn.roomlist
-------------
Allows you to view the MSN Chat Room list for any of the categories.
When you click a link to a room, Vincula will ask you how to join the
room. You can choose to join through Vincula, either using your
passport or as a guest, or you can join using the MSN Chat Control,
either as a guest or using the passport info that is stored in Vincula.
If a room link is too long then you can't click it to join it. This is
due to an apparent nHTMLn or mIRC limitation and there's nothing I can
do about it. I suggest you right click and choose Copy Shortcut, and
then use /joinurl to join the room through Vincula.

/msn.getpp
/msnchat.update
----------
Use this to update your currently selected passport info.

/msn.getcookie
--------------
Use this to update your currently selected passport info, as well as
getting the MSNREGCookie, which contains your real passport name.
NOTE: There is a bug in this updater, which will sometimes make it
grab the wrong MSNREGCookie, in which case your name will show up as
another of your passports.

/msn.mgetpp
---------------
Use this to update your passport info the manual way, according to the
instructions listed above.

/msn.editpp
-----------
Opens a dialog so that you can edit your current passport information.

/msn.pticket [-t] ticket
/msn.pprofile [-t] profile
/msn.pcookie [-t] cookie
--------------------------
You can use these commands to change the three pieces of your Passport
info without using the updater or the edit passport dialog. If you use
the -t option, it will temporarily change it (if you switch passports
it will go back to normal). If you don't use -t, then it will change it
until next time you update that passport.

/msn.update [-p] [passport] [password]
--------------------------------------
If used with no options, /msn.update will do the same as /msn.getpp and
update your passport info.  If you specify a passport to update, then
it will update that passport.  You can also tell Vincula the password
to use if you use the -p option, otherwise Vincula will ask you for the
password if it needs it.

/msn.create [-c] <room creation commands>
-----------------------------------------
This is recommended only for popups, scripts, or other things.  It will
send a room creation command directly to MSN. If you use the -c option,
then it will create it as a groups room instead of a normal room.
The format of the room creation command is:

[Category] [%#Room] [Topic] [Modes] [Locale] [Language] [Password]

[Category] is the two-letter category code for where you want the room
to be. All groups rooms should be UL (Unlisted). For a list of the
available categories, look at the /msn.makeroom dialog.
[%#Room] of course is the room name.
[Topic] is a specially formatted room topic. I recommend you just use -
and set the topic once you're in the room.
[Modes] is either +f for the profanity filter to be on, +l X (where X is
the number of users you want to allow into the room), or just -. If you
like, you can use both f and l like this: +fl 100
[Locale] is a language/country code. EN-US is a standard United States
code. Look at the /msn.makeroom dialog to see the full list.
[Language] is the appropriate language number for the room. You can see
a list of the languages at http://exonyte.dyndns.org/msn.php#prop
[Password] will be the Owner key for the room. When you join the room
after it is created, you will need to enter this key with the /pass
command so that you can be the room owner, and finish setting it up.

/msn.getpass %#room
-------------------
Displays the last stored owner and host keys in %#room. If you don't
specify %#room then it gives you the active room's keys.

/msn.geturl | /msn.geturl h
---------------------------
Displays the URL for the active room and also copies it to the
clipboard. If you just use "/msn.geturl" it gives you the plain rm URL,
and if you use "/msn.geturl h" it gives you the rhx URL.

/msn.loadpp Passport Name
-------------------------
This command lets you switch passports without having to open the
/msn.setup dialog.  Just type /msn.loadpp and the name of any passport
you have stored in Vincula, and it will switch to it.

/msn.makeroom | /msn.makeroom %#room
------------------------------------
Opens the Room Creation dialog so that you can create a new room.  If
you include %#room then it will automatically fill the room name box,
and if it finds a matching ownerkey, it will fill the Password box too.

/msn.upchk
----------
Checks for a new version of Vincula, as well as a few other updates.

/access
-------
In addition to setting access levels and such, you can type this
command alone to open the Access List dialog for whatever room you type
it in.  All of the options in this dialog are pretty much self
explanatory, so I won't go much in to detail, except that the Export
and Import buttons let you save and load Access lists, which is great
if you need to move a room, or recreate it, and don't want to lose
the bans and such.

/clone nickname
---------------
Will disconnect from the server, and reconnect to the same room, using
whatever nickname you specify.

/find [nickname]
----------------
Will give you a list of the rooms that [nickname] is in, and allows you
to easily join one.  This is almost like the Find a Friend on the MSN
Chat website, except that you must give the exact nickname.  If you
don't specify a friend, it will open the Find a Friend dialog, and you
can search from there.

/hop
----
Will leave and rejoin the current room without reconnecting, and will
do so very fast.  Also, if you leave a room but stay connected, then
you can type /hop in the server window and it will rejoin the room you
were originally in.

/msncolor <on|off>
/msncolour <on|off>
-------------------
Makes the script show you what colors the people are using to speak,
also shows bold and underlined text. Does not show Italic, or the
actual font. It's off by default, just because it bugs me.
This option can also be changed from /msn.setup on a per-room basis.  I
also added /msncolour for any users who prefer to spell it "colour" so
that they have an easier time of it.

/msndebug <on|off>
------------------
This is more of a developer command for me, it's really not of much use
to anyone else.  It opens a window and shows you all of the data that
passes through the script.

/msndecode <on|off>
-------------------
Turns on or off the incoming text decoder. It's on by default.
To turn it off:
/msndecode off
This option can also be changed from /msn.setup on a per-room basis.

/msnencode <on|off>
-------------------
Turns on or off the outgoing text encoder. It's off by default.
To turn it on:
/msnencode on
This option can also be changed from /msn.setup on a per-room basis.

/pass [password]
----------------
Works just like the /pass in MSN Chat.  Allows you to use a room's host
or owner keys to make yourself a host (+o) or owner (+q). If the
password is not supplied, it will open a small dialog to ask for it.

/msn.updatefonts
----------------
Not recommended to use often, but this will allow you to update the
font name cache, which is useful if you have added or deleted any fonts
since you loaded this script.

-----------------------------------------------------------------------

Identifiers:

$msn.decode(text) / $msn.ifdecode(text)
---------------------------------------
Returns text, as passed through the script's Unicode decoder. Most
useful for Unicode nicknames. If you use $msn.ifdecode(text), then it
will only decode it if the decoder is turned on.

$msn.encode(text) / $msn.ifencode(text)
---------------------------------------
Returns text, as passed through the script's Unicode encoder. Most
useful for using extended ascii characters (Alt codes) in speaking and
in nicknames. If you use $msn.ifencode(text), then it will only encode
if the encoder is turned on.

$msn.hostkey / $msn.hostkey(%#room)
-----------------------------------
Returns the stored room host key for the active channel (if used in
the editbox without %#room), or the host key for for %#room.

$msn.geturl / $msn.geturl(h)
----------------------------
Returns the URL for the room in either rm (plain $msn.geturl) or rhx
($msn.geturl(h)) format.

$msn.ownerkey / $msn.ownerkey(%#room)
-------------------------------------
Returns the stored room owner key for the active channel (if used in
the editbox without %#room), or the owner key for for %#room.

$msn.pass / $msn.pass(N)
------------------------
Makes a randomly generated password N characters long. If N is not
supplied, it will create a thirty-one character password.

$msn.ppdata(name,item)
----------------------
Gives you information for any passport you have stored in Vincula Neo.
"name" is the name of any stored passport.
"item" is one of the following items:

email    - E-mail address
passwd   - Password (if given)
cookie   - MSNREGCookie (if given)
ticket   - PassportTicket
profile  - PassportProfile
showprof - Profile type number
updated  - The $ctime when the passport was last updated.
           Use $asctime($msn.ppdata(name,updated)) for a readable date.
nick     - The Nickname entered for this passport (if any)
lvnick   - Tells Vincula whether to $msn.encode the Nickname, or just
           use it as-is.

$msn.roompass / $msn.roompass(%#room)
-------------------------------------
Returns the stored room owner key for the active channel (if used in
the editbox without %#room), or the owner key for for %#room.  If it
doesn't know the owner key, it will return the host key instead. If it
doesn't know the host key, it will return nothing.

$msn.tohex(text)
----------------
Returns text in hexadecimal format.

$msn.ud1
--------
Returns the current MSN Chat UserData1 entry from the registry. The MSN
Chat Control uses this entry to set a room key when you create a new
room through the MSN Chat website.

$msn.unhex(hex)
---------------
Returns a hexadecimal number in ASCII format.

$joinurl(url)
-------------
Extracts the room hex from a URL, even if the URL does not have the hex
for the room in it.

-----------------------------------------------------------------------

A few comments for MSN scripters:

The socket names are:

for the MSN Server:
msn.server. $+ $cid
or
msn.server.*

for mIRC:
msn.mirc. $+ $cid
or
msn.mirc.*

To get the mIRC room name for a specific socket, use:
$msn.get($sockname,room)

To get the MSN room name for a specific socket, use:
$msn.get($sockname,fullroom)

You can also use $msn.get($cid,room) or $msn.get($cid,fullroom)

If you want to sockwrite a command straight to MSN, make sure you use
the $msn.get($cid,fullroom) otherwise if you're in a long room (more
than 60 characters), it won't work.

Unlike most scripts, this script converts WHISPER commands into
standard IRC PRIVMSG commands, and vice-versa. It also converts NOTICE
into PRIVMSG and back.  Basically, what this means for you is that you
can use a simple "on *:TEXT:*:?:" to trigger a whisper event, instead
of having to use "raw whisper:*:".  Just a little trick to make your
life easier.

For those who would be interested in changing how Vincula will display
all the events (such as messages, kicks, topic changes, etc.), you may
edit that part of the script as long as you don't mess anything up in
the process.  I won't be able to help you if you screwed up something,
so you'd just have to reinstall the original version of the script and
start over.

You can now change the PassportTicket, PassportProfile, and the
MSNREGCookie through commands.  Look in the commands list above for
more info on /msn.pticket, /msn.pprofile, and /msn.pcookie.

-----------------------------------------------------------------------

Extra information:

Real Name: Brandon A.
Nickname: eXonyte
E-mail: exonyte1@exonyte.dyndns.org

Official Website: http://exonyte.dyndns.org/

I'd like to thank my original testers: Trad, Moto, Atti, and Neo. To
anyone else that I sent a copy of this thing to early on and forgot
about: Sorry! Let me know and I'll put your name in here too!

Why Vincula?
Vincula is a plural form of Vinculum, which means "A bond or tie."
Since the nature of this script is multiple "ties" to MSN Chat, I think
the name fits it well.  Vincula also means something like "it ties" in
Spanish.

Neo means "new".  When I wrote 4.0 I kept calling it the new Vincula,
so I just ended up calling it Vincula Neo.

If you would like to include this MSN connection addon with your own
script:
1) Make sure you mention that it was written by eXonyte.
   If you modified it in any way, please say so.
2) Give my website address:  http://exonyte.dyndns.org/

If you do these two things, then you don't even have to ask my
permission to include it.  If your modifications fixed any bugs, please
let me know so that I can add the fixes to the next version.

This addon contains a few things that I did not write:

URL Decoder by Techster
Available at: http://www.mircscripts.org/comments.php?id=1225

Truetype Font Attribute reader by Kamek
Available at: http://www.mircscripts.org/comments.php?id=1341

Registry DLL for mIRC v1.05 is  1999 DragonZap
Available at: http://www.dim-bulb.net/~dragonzap/dlls/

The nHTMLn DLL is  2001 Necroman
Available at: http://www.wot.net/~necroman/nn2.htm
Unofficially Updated to version 2.92 by Dan
Available at: http://www.mircscripts.org/comments.php?id=1439

-----------------------------------------------------------------------

Old What's New lists:

v4.7.1 - What's new:
- Probably the fastest released Vincula update ever, oi.
- Fixes the OCX installation bug that was in 4.7.  Only affected some
  people that were upgrading.  Anyone installing it new wasn't being
  affected by this bug.
- Fixes the Cancel button in the msn.names dialog, so that it won't
  clear your Recent Rooms list, and your stored passwords.
- To make up for the mistakes, a new $msn.pass password generator is
  in there, instead of only using letters and numbers it will use any
  character between $chr(33) and $chr(255), except for , and : since
  MSN won't allow them in passwords.
- Errors from the MSN Lookups are now hidden, so that they won't bother
  you anymore.  Also, when it gets an Error 908, it will automatically
  reset the lookup connection so that it fixes it.

v4.7 - What's new:
- Now uses Neo-Vortex's M$NChatX OCX instead of the patched one it was
  using before.  This new OCX allows me to re-enable the "Join Room
  using MSN Chat" options!  Many thanks!  See MSNChatX.txt for info.
- As stated above, "Join Room using MSN Chat" is back.
- Changed Vincula so that it doesn't always use port 6667.
- Removed the Mass Kick prot that I accidentally left in 4.6. (Sorry!)
- Added more characters to the decoder.

v4.6 - What's new:
- Should work fine on Windows 98/ME systems again. Sorry about 4.5!
- Got rid of those annoying DOS boxes in the process of fixing 98/ME.
- Added a Cancel button to the Enter Name dialog, just in case you'd
  rather not connect.
- Fixed the auto passport updater again.
- Fixed the "line 3133" bug (would happen when you're joining a room,
  but you're banned.)
- Fixed a bug with exporting the Access list from the /access dialog
- Fixed the /msn.setup problem where it won't remember to use colors.
- Rewrote the manual passport updater (/msn.mgetpp) so it works again.
- Redid the /access dialog so it uses one edit instead of multiple,
  makes copying an entry's information much easier.

v4.5 - What's new:
- Made it switch between your installed MSN Chat OCX and a hacked one,
  so that it can connect again.
- Had to disable the "Join using MSN Chat" options, might be able to
  fix them later, we'll see.
- Fixed some other little bugs, don't remember what though.

v4.4 - What's new:
- Passport updater should be fixed now.  If the Windows XP Passport
  signin box appears, just click Cancel and you'll be fine.
- Fixed a bug when joining a room and you're banned.

v4.3.1 - What's new:
- Various test releases to fix the auto passport updater.

v4.3 - What's new:
- Completely redesigned /msn.setup dialog
  - Added a font preview to the Fonts tab
  - Added "Add key" editbox+buttons to /msn.setup (Thanks OZZY_10)
  - Added "Script" box to font selection
  - Added hide joins/parts/kicks options
  - Added "Use default MSN Chat sounds" button to the sounds tab
  - Added "Rebuild fonts cache" button
- Made new commands for editing your passport info:
    /msn.pticket [-t] ticket
    /msn.pprofile [-t] profile
    /msn.pcookie [-t] cookie
  See them below in the Commands List.
- Made Vincula just slightly faster at connecting, because it doesn't
  write .html files to connect anymore. It just sends what it needs
  directly to nHTMLn now.
- Removed the msn.writehtml command because it doesn't need to write
  a .html file anymore.
- Vincula now shows any /access changes that you do in the room they
  are changed in.  (An option to turn this feature on or off is coming
  in v4.4.)
- When trying to join a room using MSN Chat with a stored passport,
  Vincula will now tell you why there are no passports listed.
- Finally Vincula will save the "Random Color" option correctly! I'm
  sorry for this bug lingering for so long, but it's squashed now.
- Added a popup and a command to reset the lookup server connections.
  Sometimes you'll need to do this if it starts giving you strange
  errors:  /msn.relookcon
- Made the script use dynamic names for the nHTMLn and registry dlls.
  This doesn't mean all that much to you, but it will be useful later.
- Fixed some bugs with the room making dialog, especially the one when
  you would make a long room and it wouldn't store the password
  properly.
- Vincula will no longer let you try to join a room when the name is
  over 200 characters long (MSN's limit on room name length).
- Vincula now reopens @debug window on startup when /msndebug is
  turned on.
- When refreshing your passport, Vincula will now ask for the "password
  for passport" instead of asking for the "passport for passport."
- When joining room that doesn't exist, and making it through the Room
  Creation dialog, Vincula will now only ask you for your name once.
- Added a new Passport Update command:
    /msn.update [-p] [passport] [password]
  The old command /msn.getpp will still work.
- Added what I was told was MSNKit's passport update command:
    /msnchat.update
  Which will do the same thing as /msn.getpp
- When you type a room name in the Room Creation dialog, and then click
  the "Use Hex" box, it will automatically convert it to a hex room
  name and back.
- When a whisper opens and you have the decoder turned on, it will now
  say "Encoded nickname" instead of "Decoded nickname".
- When you type /find by itself it will now open the Find a Friend
  dialog, so that you can search for someone.
- Added a popup for Find a Friend.
- Fixed whispers so that it shouldn't keep whisper scripts (like
  whisper kicks) from working.

v4.2 - What's new:
- Changed alot of the variables to use a vincula.ini file instead.
- Fixed the "Error 708: Input Flooding" bug.
- Added the /find command, which allows you to use Find a Friend.  The
  only problem is that you must use the friend's whole nickname, and it
  doesn't support wildcards (like * and ?).
- Changed the popups so that you'll always see Vincula's main menu, in
  addition to the window specific menu (Nickname list, Room, etc.).
- Changed the way Vincula was making the Recent Rooms and the Select
  Passport popups so that it's alot faster.
- Fixed a problem with the Edit Passport Info dialog where it wouldn't
  always edit the info properly. I think this only affected Vincula
  after I changed it to use a .ini file.
- Added a "Possible Match" box to the /access dialog. It shows the
  first person in the room that matches the selected Access Mask. (Only
  if it actually finds a match.)
- Vincula will now automatically check for a new version and a new
  MSN Chat CLSID every time you open it.  It can't autoupdate itself
  yet, but it will give you a direct download URL for the new version.
  It will ask you before it applies any new CLSIDs.
- /joins will now encode room names if it thinks it needs to, so you
  can do:
  /joins MyRoom
  and it will join it properly. It's not perfect though, so it might
  give a wrong room name now and then.
- Changed the "Nickname is in Unicode format" checkbox in the Enter
  Name dialog to "Leave Nick as-is". The nickname's format is now
  autodetected unless the box is checked.
- Added the same "Leave Nick as-is" checkbox to the Add and Edit
  Passport Info dialogs.
- Added an option in /msn.setup (on the Extra tab) to disable the
  hidden /who that Vincula does when it joins a room.
- When you join from /msn.roomlist or from the Join using MSN Client
  popup, there is a new option in the dialog that lets you join the
  room on the real MSN Chat website, in Internet Explorer.
- Fixed a bug that was making Vincula not show when people were Away
  when you joined a room.
- Fixed a bug when you had "Show users' colors" turned on, and the
  first thing someone said was a number.
- Made the Passport updater log out so that you don't get an error next
  time you try to update the passport.
- Added a item to the "Room URL" popup menu that lets you join the room
  through the real MSN website in Internet Explorer.
- Fixed a bug where the first time you would load Vincula and it reads
  the font to use from the registry, it wouldn't replace " " with "\b".
- Fixed a bug that would sometimes make it look like the wrong person
  is speaking when you have the decoder turned on.
  Related bug: If someone's nickname is a number (such as the nickname
  3), it will show the mode prefix (the ., @, or +) for that numbered
  nickname on the list. I couldn't figure out a way to fix it because
  it's an mIRC related thing.

v4.1 - What's new:
- I accidentally left out a * which ended up breaking the "Edit" button
  on the Passports tab in /msn.setup, it's fixed now.
- Now the Auto Passport updater (/msn.getpp and the Refresh button in
  /msn.setup) will tell you if it failed and why, instead of just
  sitting there leaving you wondering.
- Expanded the /access dialog so that I could fit the "Clear Denies"
  button that I forgot to put in last version.
- Cosmetic change in the on OPEN that handles incoming whispers.  Now
  it will indent what the person said like it should.
- The Passport updaters won't try to update now when you don't have a
  passport loaded. Hi Rift! :P
- Instead of not using $msn.roompass anymore I just changed the way it
  works. Now it will give you either the ownerkey or the hostkey,
  depending on if it knows one or the other.  You can still use
  $msn.ownerkey or $msn.hostkey to get a specific key if you need them.
- I forgot to mention it in 4.0, but there's a new popup item in rooms
  that lets you use the MSN Chat control to join the room.  Make sure
  you read the section below about it.

v4.0 - What's new:
- Rewrite the entire connection process, depending on your connection
  and the speed of your computer, it may be over twice as fast at
  joining rooms!  It should also be alot more reliable in connecting,
  so those of you that were having problems before should try it out
  and let me know.
- You can now join community rooms using your Passport.
- The Room Creation dialog now allows making rooms in other countries
- The Room Creation dialog also can now be opened anytime using the new
  /msn.makeroom command.
- In the Room Creation dialog, you can use a hex room name to make the
  room. No, this does not let you magically put the room at the top of
  the room list!
- When you join a room with a long name (over 90 characters), Vincula
  will now strip the room name down to the right side instead of the
  left side.  Now telling which !!!!!!! rooms you're in will be easier
  to do, hehe.
- When someone with a too-long name enters the room, Vincula will
  refresh the nickname list so that you can actually kick them and such
  from the right-click popup menus.
- Vincula now can now store multiple Passports, and easily switch
  between them.
- Rewrote the Passport Autoupdater again.  Now it will only update the
  PassportTicket and PassportProfile, but it doesn't matter because
  Vincula Neo doesn't need the MSNREGCookie to connect anymore.  It is
  also very fast, on my DSL I update in less than 1 second sometimes!
- Fixed Erroneous Nickname Disconnect bug.
- Vincula now stores both owner and host keys for rooms, see the new
  $msn.ownerkey and $msn.hostkey identifiers below.
- Added buttons to /msn.setup to clear the stored owner/host key lists.
- Added sound support. Now you can make Vincula sound like MSN Chat.
- Added a room hop: /hop
- Added clone hop: /clone nickname
- Added /msn.create command for quick/scripted room creation.
- Added Recent rooms list (stores the last 10 rooms and the way you
  joined them, such as Normal, Guest, etc.)
- Added Auto-rejoin when kicked option.
- Added Disable Whispers option (just like MSN's).
- Got rid of the old COM Registry reading code and now uses a registry
  reading DLL instead which is slightly faster and more compatible. If
  Vincula gave you COM errors before, it shouldn't anymore.
- Bunches of other little tweaks, tiddles, and tamperings that I've
  forgotten about because I was too lazy to take notes.

v3.6 - What's new:
- nHTMLn had an unofficial update at http://www.mircscripts.org that
  fixes it for mIRC 6.x.
- Changed "View Profile" so that it displays it in mIRC directly
  instead of opening an Internet Explorer window.
- Made the /msn.getpp auto passport grabber even more automatic. All
  you need to do now is use the command, sign in to your passport, and
  Vincula handles the rest.
- Added /msn.roomlist command and "View MSN Room List" popup. Opens an
  nHTMLn window in mIRC to one of the categories on MSN, and when you
  click a link on the page Vincula will join the room automatically.
  See the section below for /msn.roomlist for a description of
  everything this command allows.
- Fixed an exploit that could result in your being "moofed" from MSN.
- Added an "Extra Options" tab to the /msn.setup dialog that includes a
  few extra options (more to come in the future):
  - Time Reply changing (you can use %vars and $identifiers in it)
  - Show user's profile type when they join a room
- Fixed a bug where the Random Font Color option wasn't being set right

v3.5 - What's new:
- The filename will from now on just be "vincula.mrc" so that you can
  just close mIRC, replace the file, and reopen mIRC, to upgrade.
- Added more characters to the text decoder.
- Fixed a bug in the MSN Color support that was causing dark gray and
  blue to display wrongly.
- Added a Passport Info editor, in case you prefer to manually extract
  your passport info, or you want to edit it for some reason. To open
  the dialog use /msn.editpp or choose "Passport Info Editor" from a
  popup menu.
- Changed the "Force View Profile" menu popup to "View Profile Type"
  and changed the way that the "View Profile" popup works in order to
  support the new Male/Female/Picture profile icons in MSN Chat 4.2.
- Improved the passport grabber, it's now practically automatic.
  The old method is still available as:  /msn.mgetpp
- Changed the way the encoder works.  Now will only encode what you
  actually say so that it doesn't interfere with scripts that use the
  $nick identifier, and it won't interfere with any other /commands.
- Added a dialog that can be used for handling the /access list. To
  open the dialog, open it from the Vincula menu, or type:  /access
  This will NOT interfere with using the /access command in any way.
- Changed the Join URL dialogs (the ones accessible by menus), so that
  they properly say "URL" instead of "Hex."
- Made the font scanner attempt to autodetect the font folder, so that
  there's less chance for the user to pick the wrong folder.
- Added a timer for room joining, so that you can see how long it takes
  to get into a room.
- The Vincula menu in channels and on the nickname list will now only
  show up in MSN connection windows. If you are connected to a normal
  IRC room, the Vincula menu will be hidden.
- Fixed the /unload command if you tried to load it in a version older
  than 6.0, it was missing a -rs
- Probably a couple of other small things that I just forgot to write
  down in here.
- Fixed any other bugs I came across, either by info from others or by
  my own experimenting and testing.

v3.4 - Initial release

-----------------------------------------------------------------------
Copyright  2002-2003 eXonyte                  Last Updated: 09/14/2003