statsStats: 30,053 versions of 1,966 programs

Pick a software title... to downgrade to the version you love!

mIRC 4.5

8,760 Downloads

mIRC 4.5 0 out of 5 based on 0 ratings.

mIRC 4.5  Change Log

  • Major improvement of code in many places. mIRC now processes many things faster.
  • Fixed possible bug with invalid nicknames being added to nick list on a channel.
  • Fixed a bug in DDE routines which caused a GPF if external applications were too slow at processing DDE messages.
  • Rewrote remote routines, they now look much less like spaghetti and work better.
  • 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.
  • Fixed small $read bug.
  • Can now use server addresses in User list in remote.
  • 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.
  • Standardised command error reply to: * /command:
  • Can now use delete key to delete URLs in URL window and Insert key to add a new url.
  • Can now use Control-Tab to step through the different tabs in the setup and options dialogs.
  • 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.
  • Improved DCC Send file dialog, can now select more than nine files at a time to dcc send.
  • Fixed scrollbar sometimes not being positioned properly in certain windows.
  • Added /titlebar command which allows you to change the text in the titlebar on the fly.
  • Added protect list to options dialog, now works exactly like auto-op command, can specify channels for each nick.
  • 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.
  • 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.
  • Window sizes for Chat/Server/Send/Get windows are now saved seperately for each type of window.
  • Added ON BAN remote event, works like ON OP.
    5:ON BAN:#tree:/mode $chan -b $banmask
  • Added option to Links window popup menu which lets you switch between displaying links as plain text or in a listbox.
  • 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.
  • Now allows multiple channels in a remote event definition:
    1:ON OP:#moo,#help,#test:/notice ...
  • 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...
  • 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).
  • Fixed bug with notify list not being updated correctly when a user changed nicknames.
  • 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).
  • 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.
  • Now allows alias, popup, and remote definitions like:
    {
    /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.
  • Major improvement of memory usage in command parser.
  • Added View URL option in channels list popup menu which extracts and views a URL immediately.
  • 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.
  • 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! }
  • Added Always On Top setting to system menu of windows when they are opened as desktop windows.
  • Text in status, queries, and channels windows is now rewrapped to fit the window whenever a window is resized or a font is changed.
  • 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.
  • Added /writeini command and $readini identifier which use the built-in ini routines to write/read standard ini files.
    /writeini

    $readini

    These will allow better control of storage of different types of information into different sections in a file.
  • 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.
  • The /links window now has the save buffer option in the system menu.
  • 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.
  • 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
  • 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.
  • 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.
  • Increased maximum items for popup menus from 300 to 600.
  • Now ignores any mirc.ini in the windows directory and uses the mirc.ini in the current mirc.exe path.
  • Invalid CTCP messages are not replied to anymore.
  • Fixed a small time-out bug related to dcc send/get/chat.
  • 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 ext.

      $upper(text) returns ext in uppercase.
      $lower(text) returns ext 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 ext 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))
  • 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
      > larger than
      >= larger 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.
  • 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 Next.
  • 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
      }
  • 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.
  • Text in Alias, Popup, and Remote ediboxes is now auto- indented when { } brackets are encountered.
  • Enlarged DCC Chat dialog to make it easier to use.
  • 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.
  • 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.
  • 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 echo [ $+ $nick PING reply] %pt seconds
      }
      halt
      }
  • Identifer $active returns the full name of the currently active window.
  • Added Font button to alias, popup, and remote dialogs
  • mIRC now automatically gets your web browsers path and name from the registry if it\'s there.
  • 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.
  • Added Save to file item in channels list popup menu which allows you to save the currently displayed list to a file.
  • Added PORT item to DDE which returns the current irc server port you are using.
  • 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.
  • Can now use the /quote command to do the same thing as /raw.
  • 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 receive a list of channels which match your choices for these two criteria.
  • Can now use Alt-J to pop up the channels folder dialog.
  • 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.
  • Now sounds an event beep when a chat that you initiated makes a connection.
  • Can now set a string variable to an empty string with \.
    eg. set %name \ or %s = \
  • Text in the alias/popup/remote dialogs is now displayed quickly.
  • The Wait cursor is now used in more places to give a better indication of when mIRC is busy doing something.
  • Can now select multiple files in the Log File listbox to make deleting files easier.
  • 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.
  • Can now use Control-Break to break out of a currently executing alias in case it\'s in an infinite loop, etc.
  • 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.
  • Added /alias command which allows you to add and remove aliases from the aliases list. Only works for *single line* aliases.
  • Colour now works in DCC Chats.
  • Speeded up Tab display in setup and options dialogs.
  • Fixed Editbox bug when pressing enter and text isn\'t sent.
  • DDE Server now defaults to ON with service name MIRC.
  • 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.
  • Converted some routines to assembly to increase speed.
  • Added $asctime() which converts the value returned by $ctime or a PING into a full date in text format.
  • .Added support for ctcp UTC.
  • Now ignores DCC-related ctcps sent to a channel.
  • Shift-F1 now pops up the keyword search dialog for the help file.
  • mIRC 4 Builds

    mIRC Comments

    blog comments powered by Disqus
    253