Author: Khaled Mardam-Bey
Release: 30/06/96
Description: Welcome to mIRC v4.5t, an IRC client for Windows.
30/06/96 - mIRC v4.5
Fixes/Additions:
1.Major improvement of code in many places. mIRC
now processes many things faster.
2.Fixed possible bug with invalid nicknames being
added to nick list on a channel.
3.Fixed a bug in DDE routines which caused a GPF if
external applications were too slow at processing
DDE messages.
4.Rewrote remote routines, they now look much less
like spaghetti and work better.
5.Can now use [ and ] evaluation brackets to control
the order of evaluation of identifiers. Identifiers
within brackets will be evaluated first, from left
to right. You can nest brackets. This allows you to
evaluate things any way you like...
/notice $nick " $+ [ $read [ -s + [ $parm1 ] ] c:\text\note.txt ] $+ "
/say % [ $+ [ $1 ] ]
Definitions without evaluation brackets are evaluated
the same way as before, though I've also improved the
normal evaluation method slightly.
6.Fixed small $read bug.
7.Can now use server addresses in User list in remote.
8.Added MDI options dialog to the Window menu which
allows you to specify for each individual window if
you want it opened as an MDI or as an independent
desktop window.
9.Standardised command error reply to: * /command: <message>
10.Can now use delete key to delete URLs in URL window
and Insert key to add a new url.
11.Can now use Control-Tab to step through the different
tabs in the setup and options dialogs.
12.Wrote a setup program which allows you to install mIRC
in a directory of your choice, creates backups of your
current files, validates the zipped files to make sure
they're not corrupted, and adds icons to the program
manager for you.
13.Improved DCC Send file dialog, can now select more than
nine files at a time to dcc send.
14.Fixed scrollbar sometimes not being positioned properly
in certain windows.
15.Added /titlebar command which allows you to change the text
in the titlebar on the fly.
16.Added protect list to options dialog, now works
exactly like auto-op command, can specify channels
for each nick.
17.DCC Send/Get/Chat are now fully dynamically allocated
structures ie. there is no limit on the number of DCCs.
This speeds up dcc send/get processing a lot. This also
fixes a few small bugs related to the way the older
structures were being used.
18.Improved the DCC Send/Get transfer windows, they now
give information such as time taken, estimated time
for transfer, characters per second, etc., and a
progress bar.
19.Window sizes for Chat/Server/Send/Get windows are now
saved seperately for each type of window.
20.Added ON BAN remote event, works like ON OP.
5:ON BAN:#tree:/mode $chan -b $banmask
21.Added option to Links window popup menu which lets you
switch between displaying links as plain text or
in a listbox.
22.Wildcard routine now allows ? character to match any
single character, the * is used as normal to match
multiple characters. This affects matching text in
ON TEXT, etc. as well as user addresses. Also fixed a
small bug that was causing mismatches in certain cases.
23.Now allows multiple channels in a remote event
definition:
1:ON OP:#moo,#help,#test:/notice ...
24.Now allows %variables to be used in the text and
channel positions of an event definition:
1:ON TEXT:%text:%channel:/notice etc ...
You can also use %variables for ctcp command names:
1:%variable:/notice etc...
25.Added a RAW section to the remote which catches NUMERIC
events. This has it's own separate editbox because if
mIRC had to scan your whole remote events definitions
for each numeric event, things would slow down to a
crawl.
322:*mirc*:/echo 2 $parms
This would print all lines which have the word "mirc"
in them when you do a channels /list (this is a pretty
intensive test).
26.Fixed bug with notify list not being updated correctly
when a user changed nicknames.
27.For remote events and ctcp commands you can now prevent
the normal text associated with that command from being
displayed by using the /halt command.
1:ON JOIN:#mIRC:/echo 3 #mirc [Joins $nick] | /halt
So from now on when anyone joins channel #mIRC, only
that text is displayed in the channel.
Be warned: you can use this to prevent query windows
from opening, plus other things which mIRC usually
does for an event (though nothing critical).
28.Window structures are now fully dynamically allocated
so there is no limit on the number of windows which can
be opened. This also speeds up processing quite a bit.
29.Now allows alias, popup, and remote definitions like:
<prefix definition> {
/command1 ...
/command2 ...
/command3 ...
}
One line definitions are handled the same as before.
The characters { } now have special meaning so you
can't use them as normal text anymore.
30.Major improvement of memory usage in command parser.
31.Added "View" URL option in channels list popup menu
which extracts and views a URL immediately.
32.Added a /goto command which can be used in { } definitions.
/greet {
/set %x 0
:retry
/inc %x
/goto %x
:2
/echo bye!
/halt
:1
/echo hi!
/goto retry
}
You can also use a variable as a goto name, eg.
:%jumppoint
if you "/set %jumpoint 5" then you can do "/goto 5"
and mIRC will evaluate %jumpoint to 5 and jump to it.
33.You can now use the /return command to finish processing
an alias command and to allow any default processing to
continue. eg.
1:ON JOIN:#mIRC {
/echo 3 #mirc [Joins $nick]
/return
/echo 3 #mirc I'm not printed!
}
34.Added "Always On Top" setting to system menu of windows
when they are opened as desktop windows.
35.Text in status, queries, and channels windows is now
rewrapped to fit the window whenever a window is resized
or a font is changed.
36.Added two new events:
1:ON FILESENT:*.txt,*.ini:/echo Sent $filename to $nick ( $+ $address $+ )
1:ON FILERCVD:*.txt,*.ini:/echo Received $filename from $nick | /run notepad.exe $filename
These only react to successful DCC transers.
37.Added /writeini command and $readini identifier which use
the built-in ini routines to write/read standard ini files.
/writeini <inifile> <section> <item> <value>
$readini <inifile> <section> <item>
These will allow better control of storage of different
types of information into different sections in a file.
38.Now allows aliases to call other aliases, or even to call
themselves recursively. As a safeguard against infinite
loops, the default maximum recurse depth is set at 10. This
can be changed with the /maxdepth command. The minimum
depth allowed is 1 (aliases can't call other aliases) and
the maximum is 100. Calling aliases from within aliases
uses quite a bit of memory, so this might cause problems
in certain situations where memory is low etc.
39.The /links window now has the save buffer option in the
system menu.
40.Now supports Drag-and-drop files onto channel, channel nick
listbox, query/chat, and notify windows. Can define aliases
for each type of dropped file, as well as different aliases
if the Shift key is pressed when the file is dropped. See
Drag-drop tab in options dialog.
41.The /set /unset /inc /dec commands now default to not
displaying information unless called directly from the
command line. To force them to display info, you can use
the [-s] switch eg. /set -s %x 1
42.Improved the copy routine slightly... if lines being copied
originally belonged to the same line, then they are combined
instead of separated. If you want to force mIRC to copy text
exactly as it appears in the window then hold down the SHIFT
key when you do the mark/copy.
43.In remote, instead of using the * prefix for commands to
be performed only when you're an Op, you can now use the @
sign. Both are handled, but I will only specify the @ in
the documentation since it makes more sense.
44.Increased maximum items for popup menus from 300 to 600.
45.Now ignores any mirc.ini in the windows directory and uses
the mirc.ini in the current mirc.exe path.
46.Invalid CTCP messages are not replied to anymore.
47.Fixed a small time-out bug related to dcc send/get/chat.
48.New Identifiers:
$abs(N) returns the absolute value of number N.
$chr(N) returns the character with ascii number N.
$asc(C) returns the ascii number of the character C.
$len(text) returns the length of "text".
$upper(text) returns "text" in uppercase.
$lower(text) returns "text" in lowercase.
$left(N,text) returns N left characters.
$right(N,text) returns N right characters.
$mid(S,N,text) returns N characters starting at S.
$str(N,text) returns "text" repeated N times.
$token(N,C,text) return Nth token separated by character C
(C is the ascii number of a character)
$lines(file) return number of lines in specified file.
$nick(N,#) returns Nth nickname on channel #.
$snick(N,#) returns Nth selected nickname on channel #.
$opnick(N,#) returns Nth Op nickname on channel #.
$nopnick(N,#) returns Nth non-Op nickname on channel #.
$channel(N) returns the Nth channel that you are on.
$query(N) returns the Nth query window you have open.
$chat(N) returns the Nth dcc chat window you have open.
$notify(N) returns the Nth notify nick currently on IRC.
For the above identifiers you can specify N as 0 (zero)
to get the total number of nicks/channels/etc. for that
identifier.
$snotify returns notify nick currently selected in
notify list box.
$level(address) finds a matching address in the remote
users list and returns its levels.
$away returns the value $true or $false.
Identifiers/variables can be placed inside the brackets.
Example: /echo $right(3,$left($len(goats),ToMooOrNotToMoo))
49.Added a simple /if statement...
/if v1 operator v2 { ... }
/elseif v1 operator v2 { ... }
/else { ... }
Example:
if (((%x == 2) || (%y >= 3)) && ($1 == $parm1)) { echo match1! }
else if ($len(%input) == 5) { echo match2! }
else echo no match!
If/elseif/else can all be nested inside each other. You
should use () and {} brackets to make sure that you're
terms are evaluated correctly though you don't *have* to
use them.
Using brackets also speeds up processing quite a bit since
mIRC then knows exactly what it has to evaluate.
Available comparisons:
== equal to
!= not equal to
< less than
> larger than
>= larger than or equal to
<= smaller than or equal to
// is a multiple of
\\ is not a multiple of
isin string v1 is in string v2
iswm wildcard string v1 matches string v2
ison nickname v1 is on channel v2
isop nickname v1 is an op on channel v2
isnum number v1 is a number in the range v2
which is in the form n1-n2 (v2 optional)
ischan if v1 is a channel which you are on.
isauto if v1 is a user in your auto-op list for
channel v2 (v2 optional)
isignore if v1 is a user in your ignore list with the
ignore switch v2 (v2 optional)
isprotect if v1 is a user in your protect list for
channel v2 (v2 optional)
isnotify if v1 is a user in your notify list.
To negate the above you can prefix them with an !
exclamation mark.
50.In all definitions, you do not need to specify the
/ command character any more for commands since it
is really only needed when typing commands into the
editbox. This also means you don't need to specify
the / when defining aliases, etc. See 51.
51.Variables or identifiers that don't evaluate to a value
now return the value $null so they can be used in the
if statement for checking etc. eg.
listops {
echo 4 * Listing Ops on #
set %i 1
:next
set %nick $nick(%i,#)
if %nick == $null goto done
if %nick isop # echo 3 %nick is an Op!
inc %i
goto next
:done
echo 4 * End of Ops list
}
52.When entering text in an editbox you can now hold down
the CONTROL key when pressing Enter and the text will be
sent as plain text even if it begins with a command
character. This will also work when you paste text into
the editbox.
53.Text in Alias, Popup, and Remote ediboxes is now auto-
indented when { } brackets are encountered.
54.Enlarged DCC Chat dialog to make it easier to use.
55.You can now use an = (equal sign) to assign values to
variables.
%x = 5 + 1
%x = 5 - %y
%x = %x * 2
%x = %z / $2
%x = %x % 3
Can only perform a single operation in an assignment
at this time. You can also still do /set %x 5 + 1.
56.Added $ctime identifier which returns total number of
seconds elapsed since 00:00:00 GMT, January 1, 1970. This
can be used with PING to find out how many seconds it took.
57.Added ON CTCPREPLY to listen for replies to ctcps. eg.:
1:ON CTCPREPLY:PING* {
if ($parm2 == $null) echo [ $+ $nick PING reply]
else {
%pt = $ctime - $parm2
if (%pt < 0) set %pt 0
echo [ $+ $nick PING reply] %pt seconds
}
halt
}
58.Identifer $active returns the full name of the currently
active window.
59.Added Font button to alias, popup, and remote dialogs
60.mIRC now automatically gets your web browsers path and
name from the registry if it's there.
61.Channels list is now saved to a file "channels.txt" and the
channels list dialog now has "Apply" and "Get List" buttons.
If "Get List" is pressed then a list is read from the server,
if "Apply" is pressed then the latest list is used whether in
the channels listbox or in the "channels.txt" file. The date
time and server name are also stored in this file.
62.Added "Save to file" item in channels list popup menu which
allows you to save the currently displayed list to a file.
63.Added "PORT" item to DDE which returns the current irc
server port you are using.
64.If userid in ident server is empty then mIRC assumes you're
a new user and automatically fills in the userid from the
email address you entered and turns on the ident server.
65.Can now use the /quote command to do the same thing as /raw.
66.Now supports server-side filtering on UNDERNET channels for
the minimum and maximum number of users on a channel. This
means that you will only recieve a list of channels which
match your choices for these two criteria.
67.Can now use Alt-J to pop up the channels folder dialog.
68.Speeded up display of Channel nicknames listbox. This actually
affects quite a few other things in mIRC since the channels
listbox was being used to store the nicknames for each channel.
Now the nicknames are stored internally. Any command or
function that involves checking/using nicknames is now far
faster than before.
69.Now sounds an event beep when a chat that you initiated
makes a connection.
70.Can now set a string variable to an empty string with "".
eg. set %name "" or %s = ""
71.Text in the alias/popup/remote dialogs is now displayed
quickly.
72.The Wait cursor is now used in more places to give a
better indication of when mIRC is busy doing something.
73.Can now select multiple files in the Log File listbox
to make deleting files easier.
74.For $read and /play you no longer need to specify the
number of lines in a file on the first line of the file.
If you do, mIRC will use the number and will work faster,
if you don't mIRC will count the lines itself.
75.Can now use Control-Break to break out of a currently
executing alias in case it's in an infinite loop, etc.
76.mIRC now defaults to using aliases.ini, popups.ini, and
remote.ini files if these files aren't specified in mirc.ini,
and if these sections aren't found in mirc.ini. If these
files don't exist, mIRC will create them.
77.Added /alias command which allows you to add and remove
aliases from the aliases list. Only works for *single line*
aliases.
78.Colour now works in DCC Chats.
79.Speeded up Tab display in setup and options dialogs.
80.Fixed Editbox bug when pressing enter and text isn't sent.
81.DDE Server now defaults to ON with service name MIRC.
82.Added "CONNECT" DDE topic, which connects you to a server and
joins a channel. The data format is: irc.funet.fi,6667,#mIRC,1
where the last digit is a 1 or 0 indicating whether you want
mIRC to be activated or not. This is an XTYP_POKE.
83.Converted some routines to assembly to increase speed.
84.Added $asctime() which converts the value returned by $ctime
or a PING into a full date in text format.
85.Added support for ctcp UTC.
86.Now ignores DCC-related ctcps sent to a channel.
87.Shift-F1 now pops up the keyword search dialog for the help file.
Download
File size: 559.8 kb, Total Downloads:
0 komentar:
Post a Comment