mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Scripts & Popups Jump to new posts
Re: clear ban on channel banlist TECO 48 minutes ago
Originally Posted by aZnLupin
help me, i need alias to unban all banmask on channel banlist.

/clearbans #channel

I created the code for you and I hope it helps. I tested it on 2 networks with different $modespl and I think it's working wink

Code
alias clearbans {
  if ($me isop $1) {
    var %x = 1 , %y = $ibl($1,0), %n
    while (%x <= %y) {
      var %n = $addtok(%n,$ibl($1,%x),32)
      inc %x
    }
    while ($numtok(%n,32)) {
      mode $1 - $+ $str(b,$numtok($gettok(%n,1- $+ $modespl,32),32)) $gettok(%n,1- $+ $modespl,32)
      var %n = $deltok(%n,1- $+ $modespl,32)
    }
  }
}
7 1,780 Read More
Scripts & Popups Jump to new posts
Re: Commands levels error maroon 18 hours ago
because you didn't do as i suggested.
there should be a space between the & and the +o
computers are stupid, they do exactly what they're told. bugs are when they're told to do something different than YOU told them to do.
3 37 Read More
mIRC Help Jump to new posts
Re: commands not working at of the sudden maroon Yesterday at 08:25 PM
you simply sprinkle the debug message to see if the code branches there. You can have it as the 1st line of the event, to see if the event even triggers, then again following the IF() statement to see if the code continues past there or not. for example, just inserting it into your existing code:

Code
on *:text:!ultra:#tehrani: {
echo -s $remove($script,$mircdir) $scriptline DEBUG event $event nick $nick (1-) $1-
if ((%floodhello) || ($($+(%,floodhello.,$nick),2))) { return }
echo -s $remove($script,$mircdir) $scriptline DEBUG event $event nick $nick (1-) $1-
set -u10 %floodhello On
set -u30 %floodhello. $+ $nick On
msg $chan http://bit.ly/3aI4xkn KKomrade $+
}
5 69 Read More
Scripts & Popups Jump to new posts
Re: Help maroon Yesterday at 08:15 PM
You can use $me to always be your own nick. The method that differs as little as possible from your method would be where %ip contains mainy addresses
but you must /set the %ip variable elsewhere then have the event be like:

elsewhere: /set %ip *!*@203.212.27.190 *!*@123.123.12.123 *!*@321.321.32.321
Code
ON *:JOIN:#: {
  if ($istok(%ip,$address($nick,2),32)) {
  /msg  $me <message-test>
  var %a $findtok(%ip,$address($nick,2),1,32)
  set -s %ip $deltok(%ip,%a,32)
  }
}

You can remove the -s if you don't need to see how many IP remain in the list
1 29 Read More
Scripts & Popups Jump to new posts
Re: raw away:*:{} Khaled Yesterday at 06:20 PM
Quote
This is not that long ago. I am thinking maybe it was decided then that $numeric is to return 0 when these ACCOUNT/AWAY/etc events trigger?

That is certainly possible but... the only way to be sure would be to download older versions of mIRC to see how they work.

That is always the first step if you think something has changed. It usually only takes a few minutes and will answer your question quite quickly.

If you find that something has changed, I will then need to look at the source code changes between different versions, and possibly add debugging information, recompile them, create a test environment, get more information from you about a minimal script that reproduces the issue, the server command you are using to reproduce it, the server address you are using in case it is network/server-specific, and so on.
6 118 Read More
Scripts & Popups Jump to new posts
Re: On Notice maroon 24/01/20 05:07 PM
I'd like clarification of what classes of people should be different than default, and what those differences should be.

The default rules for notice seem to be:

if ($nick is in $active window) then notice shows to active window
otherwise if you share at least 1 channel with that nick, the notice appears in $comchan($nick,1)
otherwise the notice appears in status window
4 232 Read More
Bug Reports Jump to new posts
Re: mIRC beta Khaled 24/01/20 09:13 AM
The latest beta is v7.58.1657 and can be downloaded here.

Quote
Beta v7.58.1657 Changes:
1.Item 25, https://forums.mirc.com/ubbthreads.php/topics/266687
Added check for overflowing line count.
2.Item 26, https://forums.mirc.com/ubbthreads.php/topics/266589
3.Item 27, https://forums.mirc.com/ubbthreads.php/topics/266724

Beta v7.58.1521 Changes:
1.Reverted change to how /timer %vars are parsed, as this caused
backward compatibility issues.

Beta v7.58.1513 Changes:
1.Item 18, https://forums.mirc.com/ubbthreads.php/topics/266478
2.Item 19, changed.
3.Item 6, fixed text in treebar being chopped by a few pixels.
4.Item 20, fixed.
5.Item 21, added.
6.Item 22, https://forums.mirc.com/ubbthreads.php/topics/266576
7.Item 23, changed.
8.Item 24, changed.
9.Item 25, https://forums.mirc.com/ubbthreads.php/topics/266592
This required a change to one of the core variable parsing
routines that affects all commands and identifiers and has the
potential to break all existing scripts. Needs testing to make
sure that %vars are working as before.
10.Item 26, this required changes to core file reading routines that
affect all features.

Beta v7.58.808 Changes:
1.Item 6, made changes to toolbar, switchbar, treebar, and servers and
favorites dialogs to handle different sized icons. If the Options/
Display/Buttons setting is changed, it is now applied to all of the
above features. Currently, the fixed internal icon size is 16x16, so
it is scaled up when the large setting is used, which means it will
be blurry. This change is for testing purposes and may not be in a
final release (until new icons are added in a future version).
2.Item 14, https://forums.mirc.com/ubbthreads.php/topics/266438
Needs testing.
3.Item 15, https://forums.mirc.com/ubbthreads.php/topics/266452
4.Item 16, added.
Needs testing.
5.Item 17, fixed.

Beta v7.58.241 Changes:
1.Item 1, changed.
2.Item 2, https://forums.mirc.com/ubbthreads.php/topics/266360
3.Item 3, added.
4.Item 4, changed. If you have already saved SSL certificates to your
servers.ini file, they will be permitted. However, if it is a server
that mIRC has never seen before, and it has an invalid certificate,
mIRC will not connect to it unless the user manually changes the
default setting in the Options/Connect/SSL dialog.
5.Item 5, https://forums.mirc.com/ubbthreads.php/topics/266384
This affects a number of features. The cause of the issue was a
generic routine that forms nick!user@host addresses, which was only
checking for . periods. It now checks for : colons as well.
6.Item 6, changed. Also required marking buttons as custom or default
and only updating icons that have not been changed with /toolbar.
7.Item 7, updated.
8.Item 8, fixed.
9.Item 9, changed.
10.Item 10, fixed.
11.Item 11, fixed.
12.Item 12, changed.
13.Item 13, changed.

Changes:
1.Changed $disk().unc to use newer API.
2.Fixed channel mode parsing bug.
3.Added /cnick support for auto-color option by allowing * as color
number. Also added $cnick().auto property.
4.Changed SSL default setting to "Skip connections with invalid
certificates". This means that mIRC will, by default, not connect to
SSL servers with invalid SSL certificates.
5.Fixed how nick!user@host addresses are formed in $ulist() and other
features so that IPv6 addresses are handled correctly.
6.Changed toolbar display code to handle icons of different sizes for
default internal icons.
7.Updated CA root certificates cacert.pem file.
8.Fixed treeview display bug when scrolling new item into view.
9.Changed treeview sorting method that affects favorites and servers
dialogs.
10.Fixed favorites dialog join button not initiating a connection if
not currently connected.
11.Fixed $cnick() returning default values for non-existent items.
12.Changed how log filenames are renamed to use group/network names
during a connect/disconnect.
13.Changed quote "" parsing routines to use the same consistent method
for all commands/identifiers.
14.Extended $fline((@name,wildtext,N,T,S) to support S parameter for
search start position and $flinen that returns match position.
15.Fixed custom dialog controls not being updated immediately when /did
is used to change their contents.
16.Added /fseek -p switch that moves the file pointer backwards to the
start of the current line. If the file pointer is already at the
start of a line, it is moved to the start of the previous line.
17.Fixed $fread() not setting file pointer to start of next line if
line is longer than the maximum line length.
18.Fixed /halt not stopping $hfind() search and then allowing script to
continue running.
19.Changed how Port dialog bind adapter setting is saved in mirc.ini so
that both name and address are saved to [ports] section.
20.Fixed $bindip() bug when used with dual-stack network interface.
21.Added $caller tabcomp value for tab completion.
22.Fixed /if & bit comparison not using unsigned 32-bit integers.
23.Changed identd dialog so that userid entry is not changed when "Use
ID from email address" is checked.
24.Changed /if isnum to also support larger value as the first number.
25.Optimized file reading routines to improve processing speed for
contexts that affect /fseek -l, $read(), $lines(), and /loadbuf.
26.Added /drawrot -p switch that clips the rotated rectangle.
27.Fixed $zip() creating zip files with temporary file attributes.
1 177,186 Read More
Bug Reports Jump to new posts
Re: $file().attr bugs Khaled 21/01/20 10:02 PM
Quote
1. Bug#1. All archives created by $zip have the 'y' attribute, which is supposed to mean they're some kind of temp file:

This looks like a bug in the zip library that mIRC is using. It is creating files with a temporary attribute and not removing this when it finishes the zip file update. It should be possible to unset this once the library finishes.

Quote
2. There are a few filenames that return $null as an attribute even though 'n' is the attribute for 'no attribute'.

The $file().attr property uses the standard GetFileAttributes() API, so the result you are seeing is what that API is returning. It has nothing to do with device names.
1 101 Read More
Bug Reports Jump to new posts
Re: dcc send corruption with multiple sends Protopia 21/01/20 03:10 PM
The sends which were corrupted were manual sends - though there was another send in progress that was triggered by a file server script.

I can see the issues with ports - but I am unclear what mechanisms mIRC has in place to try to ensure that ports are not misconnected in this way.

1. There is no reason in principle that multiple remote IP addresses cannot connect with the same mIRC DCC port - this is a standard part of the TCP protocol. Tthe issue I think is that mIRC has no way of knowing the remote IP address associated with each DCC Send because that is not part of the ctcp PRIVMSGs / NOTICEs that are used by DCC SEND to create the direct connection. Assuming NOT passive DCC, I think that the DCC sender issues its IP and port in a DCC SEND CTCP message and then waits for a connection on that port - which could come from any IP address anywhere - and whatever IP address connects is assumed to be the receiving IRC client.

Is that understanding correct?

2. I guess that you can use the same DCC port for multiple simultaneous sends, but you would have to be sure that the connections were made in the correct order which would be impossible in practice. So it seems to me that you need as many port numbers open as pending connections - mIRC should not start a DCC send until it has a DCC port available that does not have a pending connection, and it should avoid offering the same port if the port has a pending connection.

3. The settings for DCC time-outs are also going to be critical to avoid mIRC believing that a connection has timed-out and then reusing the port for another connection - in order to avoid the second connection being connected to by the remote client trying to make the first connection.

4. I am unclear at what point a receiving mIRC makes the connection to the sending mIRC - does it do so at the earliest opportunity or does it wait until the user has clicked Accept in the pop-up dialog? If the latter, then that must increase the chances of a port being mis-connected.

5. Does mIRC use ports in an intelligent way i.e. trying to avoid using ports which have timed out and prioritising ports which have had successful connections to be used first?
5 130 Read More
Feature Suggestions Jump to new posts
Re: regex with binvar FroggieDaFrog 21/01/20 01:08 PM
Bumping this thread as Im in need of this feature


I'm currently working on an HTTP implementation. Within that implementation I need to verify header values are formatted correctly; A header's value is stored in a bvar and can be over the ~8k string-length limit imposed.

I need to check if the header's value only contains values in the ASCII range(1-126). Currently this requires a (slow) loop for what amounts to a OR check of values:
Code
alias isAscii {
  if (!$bvar($1, 0)) {
    return $false
  }

  var %x = 1, %len = $bvar($1, 0)
  while (%x < %len) {
    inc %x
    if ($bvar($1, %x) == 0 || $v1 > 126) {
      return $false
    }
  }

  return $true
}




To amend Wim's suggestion what I'd like to see is:
Code
$bfind(&binvar, start-position, [end-position], [name], pattern).regex
  Returns the starting position of the first found match

  &binvar
    The bvar to search

  start-position
    The starting position of which the search should begin
    Must be an integer value

  end-position - Optional
    The end position of which the search should stop
    Must be an integer value

  name - Optional
    The regex-name to use when referencing the match list via $regml()
    Must not be a numerical value

  pattern
    The regex pattern

  .regex
    Indicates a regex pattern has been specified


$breplace(&binvar, substring, newstring...)
$breplace(&binvar, substring, newstring...).cs
  Performs a text-based in-place substitution  on a binary variable
  Returns the number of substitutions made

  if .cs is specified, the search will be case-sensitive


$breplace([name], &binvar, pattern, subtext).regex
  Performs a regex-based in-place substitution on a binary variable
  Returns the number of substitutions made

  You can assign a name to a $breplace().regex call which you can use later in $regml() to retrieve the list of matches.


$regml([name], n, [&binvar])
$regmlex([name], m, n, [&binvar])
    Similar to the current implementation except the result is output to the specified &binvar
    If outputting to a &binvar, the length of the bvar is returned



The reason I have choosen a new identifier over altering $replace/cs and $regsubex is that of the end-result differing. With current implementations, the replace creates a new string and once substitutions have finished, the new string is returned. The functionality I'd like to see is that of substitutions being performed in-place
6 4,727 Read More
Bug Reports Jump to new posts
Re: CTRL+BREAK issue (when mIRC isn't in focus) Khaled 21/01/20 10:06 AM
Thanks for your bug report. The way control+break works has been through quite a few changes over the years. Unfortunately, Windows does not allow a busy/non-responsive window to become active. This means that if a script is running that makes the mIRC window busy/non-responsive (a common occurrence for long running scripts), it can no longer detect control+breaks unless it does so globally.
1 62 Read More
Feature Suggestions Jump to new posts
Re: Missing Documentation Wims 20/01/20 07:10 PM
$file().attr is returning a bunch of letter which are different from what one can read on the internet.
I believe mIRC is translating the constant here https://docs.microsoft.com/fr-fr/windows/win32/fileio/file-attribute-constants to various letters, if some can be obvious, others aren't, it would be great to have a documentation of each possible letter.
25 26,471 Read More
Scripts & Popups Jump to new posts
Massvoice To Registered nicks Only legend 18/01/20 09:01 PM
i want mirc script which will massvoice to only registered nicks on hitting a defined alias and can devoice those registered nicks also
0 51 Read More
Bug Reports Jump to new posts
Re: Ident userid limited to 10 chars Khaled 17/01/20 07:03 PM
Quote
For example, would it be possible to allow unlimited characters, but if the user has used more than 10 characters then to watch for the error message that happens if the server doesn't support this and provide additional error message text advising that the probable cause is that the server only allows 10-characters?

I looked into this many years ago. There is a commented out section in the ERROR handling code that processes the "Closing Link" disconnect message from a server and tries to connect to the server again with a generic "user" userid. It does this if it sees an error message that matches "bad user info", "bad username", "invalid username", "not authorized", and "banned", which presumably were some of the errors returned by servers for invalid userids at the time this was tested. I am guessing I decided against using this method.

I just performed a quick test and saw the following for invalid userids:

Most networks disconnect you with an "ERROR Closing Link" message with "invalid username" as the error.

Some networks reply with "USER :Your username is not valid", giving the client a chance to send "USER" again to continue the logon.

Some networks chop userids and remove/replace invalid characters automatically allowing the logon to succeed.

Some networks handle invalid userids in USER and in identd differently/separately, ie. some networks will disconnect you if your identd userid is invalid, most will simply fix it. But most networks will disconnect you if your USER userid is invalid, and some will simply fix it.

If this change is made:

If a user uses a userid considered invalid by a network, the odds are that they will be disconnected. mIRC will then have to check the ERROR reply to see if it matches words related to invalid userids and then try to reconnect with a fixed userid. For these users, mIRC will have to connect to a server at least twice, in addition to the usual connection issues.

As every network has its own interpretation of what an invalid userid is, your userid may be different on every network. It's difficult to know whether this matters. The method mIRC has used for a long time means that users have had a consistent userid across all of the networks they use.

If a user currently has any scripts, settings, logon/connect/auth details, etc. that depend on their userid, they will be affected. If other users that you chat with in private, on channels, etc. have stored your address for use in different features, eg. highlight, op/ignore/voice/protect, notify, other types of authentication, etc., they will be affected.

mIRC will have to depend on seeing a specific combination of words in a specific language in the ERROR message to handle this, something that, as many of you know, I have been trying to avoid.

An IRCv3 CAP token could help, eg."username=options", where options describes maximum username length, the set of allowed characters, etc. or perhaps something even simpler, such as "username=safe" which means the server will accept any username format and will automatically fix it, so the client doesn't have to fix it itself. If a server doesn't list the token, the client will use a maximum length of 10 characters and a-zA-Z0-9._- which are acceptable on all networks.

If IRC servers simply replied with the USER error, that would resolve the USER invalid username issue.

However, neither of the above solutions will help if an identd request is sent before a client logs on (as some networks disconnect you for invalid identd userids).
12 363 Read More
mIRC Help Jump to new posts
Re: script error popup on start kap 16/01/20 11:40 AM
Do you have a screenshot of that pop-up/error?
2 99 Read More
Scripts & Popups Jump to new posts
Re: Popup help Starsplash 15/01/20 07:19 PM
made it work like this : if ( $left($1,4) != mib_ ) { /msg #staff !u $1 }
4 126 Read More
Scripts & Popups Jump to new posts
Re: ZombieHunter GUI Conan0815 13/01/20 08:05 PM
The Zombie Channel is the best in the world.
2 155 Read More
Feature Suggestions Jump to new posts
Re: More descriptive -s for /hadd /hinc /hdec Wims 13/01/20 07:45 PM
I'd like to see this added as well, but I always thought there would be script relying on the current format, somehow.
1 99 Read More
Feature Suggestions Jump to new posts
Re: Hashtable item names with spaces Wims 13/01/20 07:42 PM
I like the idea of a new switch on /hadd /hdel /hinc /hdel to indicate the item name is quoted.

The fact that mIRC doesn't load the last line with odd numbered line number should be a seperate report imo, it has nothing to do with quoted item name, if you make this same switch 'fix' the way mIRC handle this last line situation, it's then not possible to get that behavior only as well with the current hash table behaviors.
1 86 Read More
Bug Reports Jump to new posts
Re: $lines != linecount Khaled 13/01/20 09:19 AM
Thanks for your bug report.

The first issue: it looks like the beta is returning the correct result. So this is essentially a backward compatibility issue for scripters who use $lines() on binary files that contain only 0x00 bytes to determine whether they are empty or not. Hmm.

The second issue: overflows are tricky because signed 32bit INTs are used in almost every feature. I might be able to check for this in the core line counting routine though.
1 148 Read More
Connection Issues Jump to new posts
Re: Unable to connect to server (Connection timed out) Khaled 13/01/20 08:35 AM
It is common for anti-virus/security software to target the most widely used applications. In this case, the most widely used IRC client is mIRC. So Norton 360 is very likely specifically blocking mIRC. You will need to contact the authors of Norton 360 to ask them for help. Alternatively, you might find suggestions on the Norton 360 forums, as it looks like users there have discussed this issue before.
3 171 Read More
Bug Reports Jump to new posts
Re: Timer and variable assignment TECO 12/01/20 09:43 PM
Originally Posted by Khaled
Thanks, I found an issue with how the variable parser handles /sockread parameters in the beta. I have released a new beta that reverts this change for now but will be fixing the /sockread issue and performing some more tests before including it again in the next beta.

It's ok
The beta released today normalized the /sockread command, when you release the new beta, I'll give you feedback wink
15 641 Read More
Scripts & Popups Jump to new posts
Re: Possible to store a command in a variable? Wims 12/01/20 07:38 PM
It should work.
1 97 Read More
Scripts & Popups Jump to new posts
Re: mirc and znc... speed up beer 12/01/20 06:56 PM
Whenever I start mirc, I connect to about 8 servers all through znc. First, it's slow to connect to all the servers. It connects 1 at a time instead of in parallel and that already causes a lot of lag. Then it's slow pasting the playback text into each channel window. The more playback there is, the longer it takes. This definitely has to do with something about mirc because I can use kvirc to do the exact same thing and all servers connect fast, playback is pasted into the channel windows fast, etc. In mirc the process from start to finish can take over a minute. In kvirc it takes about <10 seconds. It seems like this is a design problem in mirc, not a settings problem.
3 198 Read More
mIRC Help Jump to new posts
Twitch Prime subscription script dah 11/01/20 08:22 PM
Does anybody know the script for twitch prime subscriptions finding it hard to find it online?
Please link or quote the code for me I'd love you forever.
0 61 Read More
Page 1 of 3 1 2 3