mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Bug Reports Jump to new posts
Re: Tiny mirc icons zapper 11 hours ago
Thanks for your answer/reply. I did reply further down the page as I did not see "this reply here" from you Khaled. I do hope this can be resolved soon with a newer version of mirc. Sad about the outlay/cost in this fix.
10 114 Read More
General Discussion Jump to new posts
Re: mIRC Servers list Khaled Yesterday at 08:24 PM
I have updated servers.ini to use Snoonet instead of OFTC as one of the default networks, as Snoonet is a more general network suitable for most users. Snoonet also uses valid SSL certificates, so it will default to port +6697.
12 317 Read More
Bug Reports Jump to new posts
Re: sockopen -e not working without '46' Khaled Yesterday at 01:28 PM
Thanks for your bug report. Please include a short script that I can use to reproduce this issue.

Update: I just tried https://site.com:443 in Firefox and the connection keeps failing and timing out.
2 61 Read More
Scripts & Popups Jump to new posts
Re: Wanting to add bot script for voiced users KindOne 15/11/19 04:39 PM
Your code has multiple issues.

If you only want this code to work for #lobby, you only need the channel name on the first line. Everywhere else it can be replaced with "$chan"

"$" cannot touch the actual nick or channel name.

; Anyone can run !foobar and see Nero is voice.
on *:text:!foobar:#lobby:{
  if (Nero isvoice $chan) {
    msg $chan Nero is voice in $chan 

If you only want Nero to be able to kick people, simple version would look like this:

; Syntax: !kick NICK message (message is optional)
; This will only kick normal and voice users. It will not kick ops.

on *:text:!kick *:#lobby:{
  ; Only kick people if Nero uses this command AND Nero is voice.
  if ($nick == Nero) && ($nick isvoice $chan) {
    ; Only kick voice and regular users. 
    if ($2 !isop $chan) { 
      kick $chan $2 $3-

[11:25:54] <@Bot> Hi.
[11:26:20] <+Nero> !kick Bot bye!
[11:26:37] <Dante> Nice try.
[11:26:44] <+Nero> !kick Dante bye!
[11:26:44] * Dante was kicked by Bot (bye!)

I was talking about access levels inside mIRC, not NickServ/ChanServ/Q/X/whatever services the network uses
3 140 Read More
Bug Reports Jump to new posts
Re: $ctime(string) eval Protopia 14/11/19 08:10 AM
Ah - now if we are talking about testing...

What we really need is a community effort to build a comprehensive regression test script (on GitHub perhaps) that tries to test as many variants of each element of mSL as it can.
9 372 Read More
Scripts & Popups Jump to new posts
Re: On !command username search script StanSmith 09/11/19 10:43 AM
Thanks for input, I'll check out what I can do with your input over the weekend.
I don't really need for the client to switch to Status window, just the results of /quote whois need to be gathered from Status window. There's too much nonstop junk in Status window, so I need such things restricted to Status window.

I use mIRC (Admin) on a busy chat site, while moderators are using a web interface. Need for moderators to be able to search usernames containing certain words and moderator access to certain features must stay restricted.

I also need to somehow make this:

//window -c @window | window -en @window | filter -ww $active @window *text* | window -a @window

...work upon !history *text*, which would output last # lines to a #channel.
3 147 Read More
General Discussion Jump to new posts
Re: mIRC collection, missing versions eahm 09/11/19 07:41 AM
Thanks Wims!

Down to:

3 135 Read More
Scripts & Popups Jump to new posts
Re: need help with script to read from text file raycomp 08/11/19 05:47 PM
Closed some friendly person in another forum was prepared to help me out....
2 71 Read More
Feature Suggestions Jump to new posts
Re: Showing idle/away users KindOne 06/11/19 09:41 PM
Just made this, have not really tested it.

Only works on networks that support "away-notify", you can check by entering "/cap ls" in the status window and looking for "Caps supported: ... away-notify ... ".

; For mIRC 7.48 and newer.
; 15/04/2017 - mIRC v7.48
; ...
; 18.Added CAP support for away-notify...
; https://ircv3.net/specs/extensions/away-notify-3.1

; Not designed for multiple networks because the script only uses nicks.

; NOTE: Currently set to use grey ( ctrl+k 14 ) because xchat/hexchat uses that.
; Any nicks the address book ( /abook -l ) with this colour will be deleted
; when this script is loaded / unloaded or client connects / disconnects.

; If you don't like that colour, you can change it to something else below.
; Anything using the colour you pick will be deleted.

on *:start:{
  .cnick on

  ; Change this for a different colour.
  set %away-nick-colour 14


on *:unload:{
  unset %away-nick-colour

on *:connect:{

on *:disconnect:{

; User set or unset /away, change the nick.
raw away:*:{
  if ($1 != $null) {
    .cnick $nick %away-nick-colour
  if ($1 == $null) {
    .cnick -r $nick

; /who #channel
raw 352:*: {
  if (G isin $7) {
    .cnick $6 %away-nick-colour

on *:join:#:{
  if ($nick == $me) {
    who $chan

on *:nick:{
  ; Delete old nick, add new one if they are /away.
  if ($cnick($nick)) {
    .cnick -r $nick
    .cnick $newnick %away-nick-colour

on *:quit:{
  .cnick -r $nick

on *:part:#:{
  ; Delete the nick if we do not share any channels if they /part one.
  if ($comchan($nick,0) == 0) {
    .cnick -r $nick

; Only delete the nicks ( /abook -l ) that are using the colour the script is using.
alias -l away-nick-delete {
  var %x $cnick(0)
  while (%x) {
    if ($cnick(%x).colour == %away-nick-colour) {
      .cnick -r $cnick(%x)
    dec %x

1 107 Read More
Feature Suggestions Jump to new posts
Now playing function for Winamp and Spotify skill 06/11/19 05:03 PM
I would be very nice if the mIRC features with a now playing for winamp and spotify function be added in mIRC.
Hexchat also have a integrated now playing function for winamp.
There is a very old Spotify script available, but it isn't working anymore.


0 30 Read More
Developers Jump to new posts
Deploying mIRC with custimzations (*.msi) kap 05/11/19 12:35 PM
I've been playing with WXS from MS and have put up sample code at https://github.com/acvxqs/RoadRunner to showcase how you can roll a msi file to help distribute your own customized version of mIRC. (mIRC.exe not included!)

I'm by no means an expert, just a tinkerer and the reason why I'm posting it here is because I hope it might lead to a renewed interest in scripting in mSL and specifically the creations and distribution of those behemoths that are known as "(full) mIRC scripts". Who knows, maybe you like this idea!

If you don't trust running the .msi file in the repo, you can:

1. Inspect the included RoadRunner.wxs file yourself;
2. Obtain and install WIX Toolkit (https://wixtoolset.org);
3. Optionally add the bin directory of WIX toolkit to your PATH variable and;
4. Roll your own msi, by running: "candle.exe RoadRunner.wxs" and then "light.exe RoadRunner.wixobj";

Note: It only installs to the current user profile. It places a shortcut in the Windows start menu.

Feedback appreciated!

To do:
1. Block running RoadRunner.msi if msi is already installed;
0 94 Read More
Scripts & Popups Jump to new posts
Re: Right-Click for View Channel Log Dazuz 04/11/19 06:12 PM
Certainly, you can either edit the popups (ALT+P) section in script editor, or use remote (ALT+R) scripts like this one:
menu channel {
  $iif(!$isfile($chan(#).logfile),$style(2)) View channel log:logview $qt($chan(#).logfile)
  Random example:echo -a Hello world!
If the log file doesn't exist, the menu entry will be grayed out.

/help menus
1 80 Read More
Bug Reports Jump to new posts
Re: mIRC beta Khaled 04/11/19 01:19 PM
The latest beta is mIRC v7.57.3014 and can be downloaded here. It includes the following changes:

Beta v7.57.3014 changes:
1.Item 47, added.
2.Item 48, changed.
3.Item 45, updated.
4.Item 49, https://forums.mirc.com/ubbthreads.php/topics/266265
5.Item 50, added.
7.Item 51, made a number of internal changes to SSL support.

Beta v7.57.2822 changes:
1.Item 41, changed to $true/$false.
2.Changed floating point detection back to previous method that allows
numbers to start with a decimal point.

Beta v7.57.2712 changes:
1.Item 44, added extra check for identical color values in different
color indexes.
2.Item 45, updated. Removed networks whose addresses no longer resolve
or redirect to different networks. Added new networks, some of which
only allow connections via SSL. Some networks also now allow
connections on 6667 but then use STS to redirect to SSL. Changed most
networks to use the default port of 6667 as quite a few of the port
ranges, which were set a long time ago, did not work. Note that this
list will likely change again before release.
3.Item 46, changed. Some networks use certificates with multi-label
wildcards in SAN, eg. see /server irc.us.dal.net:+6697. Older versions
of mIRC flag this as an invalid certificate.

Beta v7.57.2638 changes:
1.Item 43, updated.
2.Item 44, added. This uses a luminosity/contrast algorithm to determine
which foreground colors will work on a particular background color.
Auto-color excludes colors already being used by other items in your
nick color list. This allows you to use specific colors for some users
and auto-color for everyone else.

Beta v7.57.2425 changes:
1.Item 41, added. Tested under Windows XP/7/10.
2.Item 42, updated. Mostly affects APIs that return HRESULT values.

Beta v7.57.2269 changes:
1.Item 36, https://forums.mirc.com/ubbthreads.php/topics/266054
2.Item 37, https://forums.mirc.com/ubbthreads.php/topics/266138
3.Item 38, added.
4.Item 39, fixed.
5.Item 40, https://forums.mirc.com/ubbthreads.php/topics/264540
This change affects $comchan(), if isop/isvoice/ishelp/isowner, and
the channel Command Editbox handling of modes.

Beta v7.57.2183 changes:
1.Item 33, https://forums.mirc.com/ubbthreads.php/topics/266076
Also made several other changes to /list to make it work correctly
when multiple queued list requests are sent.
2.Item 34, required changes to the treeview code.
3.Item 35, https://forums.mirc.com/ubbthreads.php/topics/266097
Required a rewrite of most MODE parsing code. This change means that
mIRC's mode parsing is now more dependent on the CHANMODES token, MODE
events, and numeric events. It also needs to handle the "Hide channel
key" option in the Options/IRC dialog. This also affects user mode
parsing and $chan().mode/key/limit.

Beta v7.57.1965 changes:
1.Item 30, added.
2.Item 31, changed. Previous implementation did not allow window names
that contained . periods. Change should be backwards compatible.
3.Item 21, made a few more changes. Now has a 30 second time-out and
handles other issues.
4.Item 32, updated.

Beta v7.57.1701 changes:
1.Item 18, fixed.
2.Item 20, fixed.
3.Item 21, fixed. Note that this change may mean that $url no longer
works with older browsers.
4.Item 22, https://forums.mirc.com/ubbthreads.php/topics/266007
5.Item 23, https://forums.mirc.com/ubbthreads.php/topics/266011
This means that features that previously required &binvar names
of two letters or more in length now allow just &.
6.Item 16 and 19. Re-ran CppCheck. The main issue with static code
analyzers is the large number of false positives. Each warning needed
to be checked to determine whether there really was an issue. In most
cases, there was not. Issues were found relating to portability,
optimizations, dereferences, pointer arithmetic, sprintf() parameters,
32bit/64bit variables, and so on. Changes were made to 140+ files.

Also installed Visual Studio 2019. For now, it is only being used for
testing purposes, not for compiling the beta or release version. Required
a number of code changes to make mIRC compile.

Beta v7.57.965 changes:
1.Item 11, another partial rewrite of the code used by /run, /exit -nr,
/url, etc. Note that /run may or may not report an error if a file
cannot be run, depending on the version of Windows. Also, /url now
uses a simpler method of opening the default browser.
2.Item 17, https://forums.mirc.com/ubbthreads.php/topics/265915

Beta v7.57.669 changes:
1.Item 11, https://forums.mirc.com/ubbthreads.php/topics/265834
Partial rewrite of code that affects /run, /url, /exit -nr, opening
DCC Files received folder, etc. The /exit -nr command needs to call
ShellExecute() synchronously, the opposite of other commands which
were fixed for https://forums.mirc.com/ubbthreads.php/topics/265736
2.Item 12, added.
3.Item 13, fixed.
4.Item 14, fixed.
5.Item 15, fixed.
6.Item 16, performed CppCheck on the source code.

Several issues were fixed, though most were mitigated in other ways so
were unlikely to cause issues, and others required specific, unlikely
contexts to be triggered.

A large number of 32/64bit portability issues identified which will
need to be changed over time for 64bit version.

Beta v7.57.528 changes:
1.Item 1, https://forums.mirc.com/ubbthreads.php/topics/265799
2.Item 2, changed.
3.Item 3, https://forums.mirc.com/ubbthreads.php/topics/265806
4.Item 4, https://forums.mirc.com/ubbthreads.php/topics/265805
5.Item 5, https://forums.mirc.com/ubbthreads.php/topics/263520
6.Item 6, https://forums.mirc.com/ubbthreads.php/topics/265812
7.Item 7, optimized.
8.Item 8, fixed.
9.Item 9, added. A large amount of DPI-related code has been added,
including detecting DPIs on different monitors for different windows
and on different versions of Windows, detecting DPI changes for top
level windows, scaling/resetting fonts to match DPI changes, changes
to dialog tabs to handle different size fonts, and so on.

However, most of the code is currently disabled as more work is
needed. mIRC uses a number of DPI APIs, some of which are only
available in the latest update to Windows 10.

10.Item 10, fixed. If files are present, such as with a new install,
they are used. If no files are present, the internal defaults point
to $mircdir. This is partly necessary for backwards compatibility
but the method has been improved.

1.Fixed $+ not correctly reporting string too long errors.
2.Changed installer setting to make it DPI aware.
3.Changed $findfile() to preserve multiple spaces inside a wildcard
4.Fixed /reload interacting incorrectly with Script Editor when a new,
unedited file is created.
5.Fixed $parms returning incorrect values in some contexts.
6.Fixed DCC trust user list bug that prevented autoget from working
correctly for trusted users.
7.Optimized SendMessage() processing to use less memory.
8.Fixed SendMessage() gpf bug where recursive calls result in a stack
9.Updated several features to be DPI aware.
10.Fixed incorrect default location for alias, popup, and remote
scripts when no files are present.
11.Fixed /exit -nr not restarting mIRC.
12.Added /run -a switch to request running as administrator.
13.Fixed script editor bug that was wrapping excessively long lines,
resulting in script errors, instead of truncating them.
14.Fixed SendMesage() handling of negative indexes.
15.Fixed richedit control handling bug that may have caused some
editbox-related code to behave incorrectly if the richedit control
failed to load.
16.Fixed a number of issues identfied by CppCheck relating to range
checking, memory initializations, optimizations, portability, and
pointer dereferences.
17.Fixed script #group parsing bug for invalid group definitions.
18.Fixed $decode() gpf buf.
19.Updated more routines to use 32/64-bit compatible types as step in
preparing for a 64bit version of mIRC.
20.Fixed text file writing bug that could have caused the UTF-8 BOM to
be set incorrectly.
21.Fixed $url not working with newer versions of Chrome.
22.Changed /msg to no longer check for channel/nick prefixes due to some
networks using identical prefixes for both.
23.Changed all &binvar supporting features to allow single character &
as a binvar name for consistency.
24.Fixed $findfile() not freeing handles in some contexts. This also
affected other features that retrieve file lists.
25.Fixed /ignore/protect/aop/avoice gpf bugs.
26.Fixed 64bit time calculations in several features.
27.Fixed memory HDC allocation error check in line marker.
28.Fixed $did().csel potential gpf bug when freeing memory.
29.Changed compiler settings to disable string pooling and enable whole
program optimization.
30.Added /logview -nN switch to scroll view to line number.
31.Changed /play to improve handling of window/file names.
32.Updated OpenSSL library to v1.1.1d.
33.Added 421 numeric check for server disabled LIST command.
34.Changed server list and favorites list listboxes to use full line
35.Updated channel mode parsing and display based on CHANMODES token.
36.Fixed /window -r not restoring a hidden non-min/max window.
37.Changed $ctime() to return $null for invalid input and to handle
commas as separators.
38.Added support for IRCv3 message-tags token and msgid feature.
39.Fixed $N parameter bug that caused inconsistent handling of text
appended to the $N parameter, such as text that contained numbers
or dashes.
40.Fixed handling of channel nickname mode 'q' in some contexts.
41.Added $isadmin identifier that returns current elevation status.
42.Updated error handling for a number of APIs to use consistent methods
across all features.
43.Updated CA root certificates cacert.pem file.
44.Added auto-color nickname option to nick color list.
45.Updated servers.ini list. Around forty networks now use valid SSL
certficates. These networks are now listed with only port +6697 to
ensure secure connections.
46.Changed SSL hostname validation method when matching against
certificate CN and SAN. Multi-label wildcards are now allowed.
47.Added $sslcertvalid that returns $true/$false if the SSL certificate
is valid or not for the current SSL connection.
48.Changed /dns to show all resolved IP addresses for a hostname, not
just the first IP address.
49.Optimized $bfind().text search method.
50.Added $bfind().textcs property for case-sensitive search.
51.Optimized SSL support.
1 173,425 Read More
Scripts & Popups Jump to new posts
Re: Unkown Command error acidblue 04/11/19 03:34 AM
Thanks Daz.
5 101 Read More
General Discussion Jump to new posts
Re: mIRC configuration? KindOne 03/11/19 11:36 PM
This is my mess, I don't use the -r switch. All versions are compartmentalized, but they share the same script folder.

; Current stable version of mIRC I keep running 24/7:

C:\mirc\ ; mirc.exe, mirc.ini, everything else included, copy of spaces.dll for this specific version.

; Old versions:

C:\mirc-old\6\6.35\ ; Same as above.
C:\mirc-old\7\7.48\ ; Same as above.
C:\mirc-old\7\beta\7.57.2425\ ; Same as above, and contents of the beta.zip, but without spaces.dll (since they don't work for betas)

; Scripts:
; Git repo. Updated whenever I make changes to my scripts.

C:\scripts\ ; All my scripts.
C:\scripts\247-scripts.mrc ; Load all scripts for my copy I run 24/7.
C:\scripts\old-scripts.mrc ; Load only certain scripts for older versions.

Hash tables:
; Hash tables for all my scripts.
; Separate git repo because I do not want the changes filling up my git log for scripts.

1 99 Read More
Scripts & Popups Jump to new posts
Re: My color schemes eahm 01/11/19 11:51 PM
Thank you smile

Try alt+k, see if you can switch faster.
38 6,842 Read More
Scripts & Popups Jump to new posts
Re: joining multiple servers with registered nicks? Orobas 01/11/19 07:10 PM
You could use /alias_here /server --pfocm serverdetails port .timer 1 3 nick | .timer 1 4 /msg nickserv identify blah | .timer 1 5 -j #channel,#channel

But this will only work if you do not have an auto id or anything already set...

Manually.. it "should" work.... but this is untested
1 71 Read More
Feature Suggestions Jump to new posts
/background, /drawpic & $pic consistency Dazuz 01/11/19 05:04 PM
I noticed that /background deals with whatever you throw at it when it comes to images. No file extension? No problem. Wrong file extension? No problem.

On the other hand, /drawpic and $pic seem to more or less require file extensions to work. BMP files being the main exception, although $pic returns 32 width/height for no extension BMP files.

What I'm basically asking is; could we get /drawpic and $pic to work like /background? Just go for the signature from the start, or at least when there's no file extension.
0 62 Read More
Feature Suggestions Jump to new posts
Re: $bfind performance Khaled 01/11/19 10:04 AM
The $bfind().text method involves more overhead. I have found a way of moving some of this outside of the search loop. This change will be in the next beta.
2 117 Read More
Feature Suggestions Jump to new posts
Re: Automatically colourize nicknames maroon 29/10/19 11:13 AM
I tried to do a 'what-if' test using the contrast formula at
and it looks like that's how the random color palette is currently being chosen. It appears that the blue/black combos I mentioned in the prior post are caused because the random nick colors use the color indexes with scores of approx 2.3 or higher. The formula at the url seems less accurate when blue is involved either as the foreground or background. Index 60 and mIRC Classic's index 12 both have scores of approx 2.4 against a black background, which is barely higher than the 2.3 selection cutoff.

//echo -a $contrast(1,12) $contrast(1,60)

Also, against blackground, the formula gives 12 and 60 slightly better contrast scores than index 29, but 29 is much easier to read than the others. Similarly, 74 and 84 have very similar scores against white, but 74 is much easier to see than 84.

Perhaps someone else more familiar with luminosity/contrast formulas could suggest a better tweak of the formulas generating the contrast score, but perhaps a configuration option where people can indicate which minimum contrast score they wish to use. People with different eye compatibility can choose between having more random colors, or fewer colors which tend to exclude colors harder to see against the chosen background. By bumping the cutoff score from 2.3 up to 2.5, that eliminates several poor contrast combos like:

//echo -a $chr(3) $+ 12,1 test12 $chr(3) $+ 12,1 test60 $chr(3) $+ 84,0 test84

For the alias below, "/test_contrast 2.3" imitates the colors I see currently chosen for white and blackgrounds. "/test_contrast 2.5" shows an alternate colors choice where a black background doesn't choose the hard-to-see blues.

"/test_contrast 2.5 999" includes the option where it looks for close matches between 0-15 and 16-98. It currently tosses the higher index number instead of whichever has the better contrast.

The $lum and $brightness aliases are borrowed from the Xpalette forum post.

; $1 is index 0-98
alias Lum {
  tokenize 44 $rgb($color($1))
  return $calc(0.2126 * $brightness($1) + 0.7152 * $brightness($2) + 0.0722* $brightness($3))
alias brightness {
  var %res = $1 / 255
  return $iif(%res <= 0.03928, $calc(%res / 12.92), $calc((( %res + 0.055) / 1.055) ^ 2.4))

; $1 and $2 are 2 color indexes 0-98
alias contrast {
  var %a k0,x color x k1,x color x k0,y color y k1,y color y . kx,y color x on y ky,x color y on x .
  echo -s $replace(%a,k,$chr(3),x,$1,y,$2)
  clipboard $replace(%a,k,$chr(3),x,0,y,1)
  tokenize 32 $sorttok($Lum($1) $Lum($2),32,nr)
  return $calc( ($1 + 0.05) / ($2 + 0.05) )

; any channel with many nicks will do
alias test_contrast {
  var %chan #freenode , %t $nick(%chan,0) , %i 0 , %nick.buckets $str(0 $chr(32),99)
  while (%i < %t) {
    inc %i | var %n $nick(%chan,%i) , %c $nick(%chan,%i).color , %c2 %c + 1
    var %new.val $gettok(%nick.buckets,%c2,32) + 1 , %nick.buckets $puttok(%nick.buckets,%new.val,%c2,32)
    ; next line just shows everyone having same color as yourself
    ; if (%c == $nick(%chan,$me).color) echo -s %n %c
  var %bg $color(background) , %fg $color(normal) , %rgb.taken $color(%bg) , %lum.bg $lum(%bg) , %rgb.0-15
  var %threshhold 2.3 | if ($1 isnum 0-) var %threshhold $1
  var %min.dist 0     | if ($2 isnum 0-) var %min.dist $2
  var %i 0 , %yes.now , %nno.now $chr(3) $+ 0 $+ , $+ %bg , %alt.yes , %alt.nno %nno.now , %lum.array
  while (%i < 99) {
    var %j = %i + 1
    var %lum.i $lum(%i) , %lum.array %lum.array %lum.i
    if ($istok(%rgb,$color(%i),32) ) { echo -s toss %i is a dupe | inc %i | continue }
    var %rgb %rgb $color(%i)
    var %tmp $sorttok( %lum.i %lum.bg ,32,nr)
    var %tmp $calc( ( $gettok(%tmp,1,32) + 0.05) / ($gettok(%tmp,2,32) + 0.05) )

    if (%min.dist) {
      if (%i < 16) var %rgb.0-15 %rgb.0-15 $rgb($color(%i))
      else {
        var %c 1 | while (%c isnum 1-16) {
          tokenize 44 $gettok(%rgb.0-15,%c,32) $+ , $+ $rgb($color(%i))
          var %dist $calc( ($1 - $4)^2 + ($2 - $5)^2 + ($3 - $6)^2 )
          if (%dist < %min.dist) { var %tmp , %diff $v1 | break }
        inc %c }

    if (%tmp == $null) { echo -s toss %i close to $calc(%c -1) . $rgb($color(%i)) vs $rgb($color($calc(%c -1))) . dist %dist | inc %i | continue }
    var %label $+($chr(3),%i,test,%i,=,%tmp)
    if ($gettok(%nick.buckets,%j,32) == 0) var %nno.now %nno.now %label , %nno.contrasts %nno.contrasts %tmp
    else                                   var %yes.now %yes.now %label , %yes.contrasts %yes.contrasts %tmp
    if (%tmp > %threshhold)                var %alt.yes %alt.yes %label
    else                                   var %alt.nno %alt.nno %label
    inc %i
  echo -s ===== nicks in use: color|nick_count|luminosity
  echo -s background: %bg zeroes: $wildtok(%nick.buckets,0,0,32) of 99 total: %t : $regsubex(foo,%nick.buckets,/(\S+)/g,$+($calc(\n -1),:,\t $+ $chr(22) $+ $round($gettok(%lum.array,\n,32),3) $+ $chr(22) ,$chr(32)))
  ;echo -s ===== sorted contrasts vs background
  ;echo -s yes.contrasts: $sorttok(%yes.contrasts,32,n)
  ;echo -s nno.contrasts: $sorttok(%nno.contrasts,32,n)
  echo -s ===== colors     used and their contrast vs background
  echo -s $numtok(%yes.now,32) now.yes: %yes.now
  echo -s ===== colors NOT used and their contrast vs background
  echo -s $numtok(%nno.now,32) now.nno: %nno.now
  clipboard %nno.now
  if (%threshhold != 2.3) {
    echo -s ===== what-if colors and their contrast vs background contrast: score > %threshhold
    echo -s $numtok(%alt.yes,32) alt.yes: %alt.yes
    echo -s $numtok(%alt.nno,32) alt.nno: %alt.nno
  echo -s ===== $ $+ 1 == optional min contrast score (default 2.3) $ $+ 2 = optional 16-98 min distance vs 0-15 RGB (default 0 suggest 1000)
; $1 and $2 are index 0-98
alias distance {
  tokenize 44 $rgb($color($1)) $+ , $+ $rgb($color($2))
  return $calc( ($1 - $4)^2 + ($2 - $5)^2 + ($3 - $6)^2 )
8 463 Read More
mIRC Help Jump to new posts
Re: finding a channel KindOne 28/10/19 07:34 PM
You could search via netsplit.de, assuming the channel is not secret (cmode s).

1 128 Read More
mIRC Help Jump to new posts
how to join a restricted channel jvw 28/10/19 06:07 PM
Hi. I was just asking how it is possible to join a restricted channel. Thanks. Joe
0 41 Read More
Scripts & Popups Jump to new posts
searchip from connect output Orobas 27/10/19 06:14 PM
OK.. i have nice broken down simplified connect / nick change / quit / version script running for some new staff so they dont overwhelmed by the main services scroll but i'm looking for a standalone section please to run from the connection side so that we can do a whowas based from the connecting ip and it shows the last 10 nicks used on that ip please.
the script i am looking for is to be triggered in #ops via the command .searchip .. output from the bot to go into channel
on ^*:snotice:*:{
if (Client connecting isin $1-) {
    window -nek @Connecting
    aline -hp  @Connecting 4 $+ $1- at $time on $date on $network
    msg #mastercontrol 6CONN $4 at $time and their ip is $6
    CTCP $4 Version
 if (Client exiting isin $1-) {
    window -nek @Exiting
    aline -hp  @Exiting 4 $+ $1- at $time on $date on $network
    msg #mastercontrol 12QUIT $4
if (changed their nickname isin $1-) {
    window -nek @cnick
    aline -hp  @cnick 4 $+ $1- at $time on $date on $network
    msg #mastercontrol 4NICK $2 changed nick to $9
on 1:CTCPREPLY:VERSION*:/msg #mastercontrol,#version 3VERSION $nick : $2-

The above code is what i am using atm... the output looks a bit like this [19:06] 6CONN emmak at 19:06:40 and their ip is []

I dont know if the following code will help.. but i use this for showing the last 10 connections from a whowas as well as showing ip from a whois. it might be easier to add to this than code new ???
raw 311:*: {
  .msg #ops $2 $+ 's whois ID: $+($3,@,$4) and Real Name is: $6- | halt
raw 314:*: {
  ;.msg #ops $2 $+ 's whowas ID: $+($3,@,$4) and Real Name was: $6-
  if ($hasActiveSearch(314,$2)) {
    sendToUser $numeric $2 10 $2 $+ 's whowas ID: $+($3,@,$4) and Real Name was: $6-

raw 406:*: {
  if ($hasActiveSearch(314,$2)) {
    sendToUser 314 $2 $2 $+ 's whowas information could not be found

raw 369:*: {
  if ($hasActiveSearch(314,$2)) {
    removeRawUser 314 $2

on *:text:*:#ops: {
  if ($nick isop $chan) && ($regex($1-,/(^|\s)(.idshow?w?s?\s\S+)/i)) {
    tokenize 32 $regml(2) | whois $2
  if ($nick isop $chan) && ($regex($1-,/(^|\s)(.lastid?d?s?\s\S+)/i)) {
    addRawUser 314 $2 $nick
    if (!$hasActiveSearch(314,$2)) tokenize 32 $regml(2) | whowas $2

;/addRawUser [rawEventId] [searchTerm/searchForUser] [searchByUser]
alias -l addRawUser {
  var %search = $2, %user = $3, %table = $+(event_search_table_,$1), %table2 = event_search_max
  if (!$hget(%table)) .hmake %table 2
  if (!$hget(%table2)) .hmake %table2 2
  if ($len($hget(%table,%search))) hadd %table %search $addtok($hget(%table,%search),%user,9)
  else hadd %table %search %user
  if (!$hget(%table2,$+($1,_,$2))) hadd event_search_max $+($1,_,$2) 0

;/removeRawUser [rawEventId] [searchTerm/searchForUser]
alias -l removeRawUser {
  var %search = $2, %table = $+(event_search_table_,$1), %table2 = event_search_max
  if ($len($hget(%table,%search))) {
    hdel %table %search
    if ($len($hget(%table2,$+($1,_,%search)))) {
      hdel %table2 $+($1,_,%search)

alias -l hasActiveSearch {
  return $len($hget($+(event_search_table_,$1),$2))

;/sendToUser [rawEventId] [searchTerm/searchForUser] [max] [message] (0 for no max)
alias -l sendToUser {
  var %search = $2, %table = $+(event_search_table_,$1)
  if ($len($hget(%table,%search))) {
    var %table2 = event_search_max, %item = $+($1,_,%search)
    if ($len($hget(%table2, %item)) && ($hget(%table2, %item) < $3 || $3 == 0)) {
      hinc %table2 %item
      if ($3 == $hget(%table2, %item)) hdel %table2 %item
      var %users = $hget(%table,%search)
      while ($len(%users)) {
        .msg $gettok(%users,1,9) $4-
        %users = $deltok(%users,1,9)
raw 312:*: {
  if ($hasActiveSearch(314,$2)) haltdef
0 55 Read More
Bug Reports Jump to new posts
Re: numbers beginning with period Khaled 27/10/19 12:14 PM
Thanks for spotting this. A few betas ago, I had to make changes to the routines that determine if a parameter is a number. There are were several different routines that did this, in slightly different ways and called from different features, each added over many years. These were all replaced by a single optimized routine for consistency. There were also a number of features that did not handle floating point values when they should have and others that allowed floating point values when they shouldn't have. All of these were changed to handle the correct number type. The above issue will be fixed in the next beta so that it matches the old behaviour.
3 124 Read More
Scripts & Popups Jump to new posts
Re: Auto connect and join channels Memebox 26/10/19 11:52 PM
your account is set to not accept PM's, but I'm interested in that script.
5 4,239 Read More
Page 1 of 2 1 2