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: Request ban script particular... Epic Yesterday at 09:00 PM
At your request in personal correspondence made several changes and improvements in the script. Please tested the script before using it.

Allow Chars v1.1 – updates:

  1.Now instead of setting through an alias "allowchars_set" you can customize the script through the channel Menu or the bar Menu, by right-clicking. (All missing variables will be set by default).
  2.Now messages will be checked through regular expressions, instead of loops (while), which in the past could lead to a slowdown in the script with a large number of messages. (Thanks "maroon").
  3.Now in the variable "%ach_btype" you can specify several values of the ban type at once separated by commas (to install several bans at once on the intruder) or leave only one number. Default: <2,3>.
  4.Now instead of the variable "%ach_characters" will be used the variable "%ach_charfile" to specify the full path to the text file, where you can write all the characters allowed. (Within reasonable limits).


An example of how can be filled the file "allowchars.txt" which was specified in the variable "%ach_charfile":
Code
abcdefghijklmnopqrstuvwxyz
абвгдеёжзийклмнопрстуфхцчшщъыьэюя
0123456789^`'"*#№@%$&(){}[]|\/<>:;!?+=-~,._
😀😉😁😆😅😂🤣😊🙂😄🙃😇😃😚🥰😙☺😍😗🥲😘🤩😋😛😜🤪😝🤑🤔🤭🤗🤫😐😶😶😬😏😑😒🙄🤐🤥😌😔😪😴🤤🥶🤧
😷🤯🥴😵🤒🥵🤮🤕🤢🥸🤠🥳🤓😎🧐😕😖😧🥺😫😱😞😯😮😭😟😓😩😢😲😨🥱😳🙁😥😣😦☹😰☠😤😈😡💀👿🤬😠
💩🤡🤖👽👾👻👺👹🙀😽😸😿😾😻😺😼😹🙉🙊🙈


Click on the button to reveal the spoiler. This code must be inserted into the scripts editor. To do this, press the key combination "ALT+R" and replace with this code the old code, then save it under the name "AllowChars.mrc":

Code
#####################################################################
#   Name: Allow Chars v1.1
#   Author: Epic (epicnet@mail.ru, http://epicnet.ru)
#   Description: Allows to use in channel messages only those characters that are specified in the script.
#####################################################################

alias -l allowchars_set {
  if (!%ach_work) %ach_work = yes
  if (!%ach_kick) %ach_kick = yes
  if (!%ach_ban) %ach_ban = yes
  if (!%ach_reason) %ach_reason = There are forbidden characters in your message!
  if (!%ach_btype) %ach_btype = 2,3
  if (!%ach_btime) %ach_btime = 30
  if (!%ach_exceptpref) %ach_exceptpref = [+%@&~!]
  if (!%ach_charfile) %ach_charfile = scripts\AllowСhars\allowchars.txt
}
menu menubar,status,channel {
  Allow Chars
  .Work
  ..Enable: %ach_work = yes | .echo -a "Allow Chars" - Script:03 enabled.
  ..Disable: %ach_work = no | .echo -a "Allow Chars" - Script:04 disabled.
  .Characters
  ..File: allowchars_set | .run %ach_charfile
  ..Path: var %p $$?="Enter the full path to the file with allowed characters:" | if ($len(%p) > 0) { %ach_charfile = %p | .echo -a "Allow Chars" - The path to the file:03 %ach_charfile }
  .Kick
  ..Enable: %ach_kick = yes | .echo -a "Allow Chars" - Kick:03 enabled.
  ..Disable: %ach_kick = no | .echo -a "Allow Chars" - Kick:04 disabled.
  ..-
  ..Reason: var %r $$?="Enter the reason for the kick:" | if ($len(%r) > 0) { %ach_reason = %r | .echo -a "Allow Chars" - Kick reason:03 %ach_reason }
  .Ban
  ..Enable: %ach_ban = yes | .echo -a "Allow Chars" - Ban:03 enabled.
  ..Disable: %ach_ban = no | .echo -a "Allow Chars" - Ban:04 disabled.
  ..-
  ..Type: var %t $$?="Enter one or more types of bans separated by commas:" | if ($len(%t) > 0) { %ach_btype = %t | .echo -a "Allow Chars" - Ban type:03 %ach_btype }
  ..Time: var %t $$?="Enter the number of seconds after which you want to remove the ban:" | if ($len(%t) > 0) { %ach_btime = %t | .echo -a "Allow Chars" - Ban time:03 %ach_btime }
  .Except: var %p $$?="Enter the prefixes of the channel operators to exclude:" | if ($len(%p) > 0) { %ach_exceptpref = $+([,$remove(%p,]),]) | .echo -a "Allow Chars" - Except prefix:03 %ach_exceptpref }
}
on *:TEXT:*:#: allowchars $nick $chan $1-
on *:ACTION:*:#: allowchars $nick $chan $1-
alias -l allowchars {
  allowchars_set | var %ach_pnick $remove($nick($2,$1).pnick,$1)
  if (%ach_work == yes && %ach_pnick !isin %ach_exceptpref) {
    var %text $remove($3-,$chr(32))
    if ($exists(%ach_charfile)) {
      var %c 1 | while (%c <= $lines(%ach_charfile)) { %chars = $+(%chars,$read(%ach_charfile,n,%c)) | inc %c }
      var %pattern $+(/[^,$replacecs(%chars,\,\\,[,\[,],\],-,\-,^,\^),]/iuS) | unset %chars
      if ($regex(%text,%pattern) > 0) allowchars_ban $1 $2
    }
  }
}
alias -l allowchars_ban {
  if (%ach_ban == yes) {
    if (!%ach_btype) %ach_btype = 2 | if (%ach_btime > 0) var %ach_key $+(-u,%ach_btime)
    var %i 1 | while (%i <= $numtok(%ach_btype,44)) { .ban %ach_key $2 $1 $gettok(%ach_btype,%i,44) | inc %i }
  }
  if (%ach_kick == yes) {
    if ($len(%ach_reason) > 1) var %ach_kr %ach_reason | else var %ach_kr -
    .kick $2 $1 %ach_kr
  }
}


Remember that if something went wrong, or you accidentally erased something, then you can always reinstall this script again.
If you find any errors in the code and in its work, or maybe you have new ideas or if you think that this script needs to be improved, then be sure to write to me here about it, and we are together think about what we can do.
5 267 Read More
Bug Reports Jump to new posts
Re: Timers don't trigger if scrolling custom dialog Khaled Yesterday at 11:17 AM
When I test this here, if my mouse wheel scrolls one click, the listbox scrolls by three lines, which is the system setting. The timer pauses visibly until the listbox scrolling completes and then continues. mIRC does not handle the mouse wheel messages in this case or the scrolling of the listbox - this is handled by the mouse driver which sends scroll messages to the control directly.
4 138 Read More
Bug Reports Jump to new posts
Re: /raw changes/breaks my message Raccoon Yesterday at 08:15 AM
I don't have a snap judgement on whether or not /raw should be adding tags or not, but.

In the mean time, you can use the /parseline command which sends out /raw messages at the sub-protocol level, and mIRC won't tinker with them.

/parseline -otqnu1 @+test=foo PRIVMSG #test :test

/alias /paw .parseline -otqnu1 $$1-
/paw @+test=foo PRIVMSG #test :test
1 48 Read More
Feature Suggestions Jump to new posts
How about some dialog control extensions? _entropy 25/10/21 11:37 PM
It would be NICE if mIRC used the DCX script! Full of dialog coding and a stuff! It wouldn't be that difficult i think?

Also, would be nice to have syntax highlighting in the mIRC script editor!
0 39 Read More
mIRC Help Jump to new posts
Re: windows border frame theraster 24/10/21 11:06 PM
I can confirm that unchecking this window option did in fact clear out that border color in mirc:
settings > personalization > colors > Show accent color on the following surfaces -- uncheck "Title bars and window borders"

I can only assume that since I normally couple doing mirc upgrades when I reboot my pc for windows updates that an update enabled that option.
Thanks so much for the help, I was going crazy trying to decipher what setting changed to caused this for me.
8 213 Read More
mIRC Help Jump to new posts
windows 11 Waynec 24/10/21 05:07 PM
Not sure if this fits in here so I will act like I know what I am doing. I have notice that I can upgrade to win 11 and I was wondering if anyone had and did they have problems with MIRC after 11 installed?
0 34 Read More
Feature Suggestions Jump to new posts
Re: mIRC create *.exe from mirc script? Loki12583 23/10/21 03:24 PM
Just file this under never gonna happen
2 111 Read More
Feature Suggestions Jump to new posts
add to edit control with inactive tab + scrolling Wims 21/10/21 04:15 PM
When you have an edit control associated to a tab with a vertical scrollbar, adding to such an edit control while scrolled up with the tab active will make the control scroll down automatically.
However, if the tab is inactive, it does not scroll down automatically, and there doesn't seem to be a good way to workaround this, I don't think it's intended, if it is we would need a way to force the scrollbar to go down.
Note also that if the scroll is already down and the tab is inactive, it will scroll up and won't keep the scroll down.

Code
dialog tests {
  size -1 -1 200 200
  tab "noedit ", 1, 2 2 198 198
  tab "edit", 2
  edit "", 3, 5 30 190 160, tab 2 read multi vsbar
}
on *:dialog:tests:init:*:var %a 20 | while (%a) { did -a tests 3 line $+ %a $+ $crlf | dec %a }

1) /dialog -om tests tests
2) go to the 'edit' tab, scroll the control up
3) execute "/did -a tests 3 line0 $+ $crlf" and see the scrollbar going down automatically.
4) scroll the control up again, make the first tab the active tab
5) "/did -a tests 3 line-1 $+ $crlf" and this time the control is still scrolled up.
6) you may repeat 4) & 5) again with the scroll being down already this time, to see it moving up.
0 55 Read More
Bug Reports Jump to new posts
Re: /drawpic "Fill" Bug _entropy 19/10/21 05:34 AM
It was my own fault.. its working now sorry about the false bug report
2 149 Read More
mIRC Help Jump to new posts
Re: Understanding [windows] section inside mirc.ini eahm 18/10/21 05:41 PM
This is the latest version I was able to find: https://www.tg007.net/file-1137
5 205 Read More
Feature Suggestions Jump to new posts
Re: Manual repeat authorization feature request maroon 18/10/21 12:43 PM
It appears your your problem is that, after a recovery from a netsplit where you're on a different server than NICKSERV, you get challenged again for your password. I also had this problem at a network where services kept on dying and had to be rebooted.

This code will put NICKSERV on your notify list, and will send your password to NICKSERV when nickserv 'joins'. This happens when you connect, and when nickserv rejoins after a netsplit, or if they reboot services. It often will take action before you even receive the message challenging you for your password.

1. make certain your notify list is enabled or none of this works:
/notify ON
2. add nickserv to your list:
/notify NICKSERV
3. add this code to a new remote script, or an existing one which does not already have the ON NOTIFY event. This will notify you when NICKSERV joins

It's a good idea to name this script something like DoNotShare.mrc because this will contain your NICKSERV password.

4. edit the script with the password for that network. You are using a different password at each network right?

Your services might need different syntax than I've shown here, but while the normal syntax for NICKSERV is "/nickserv identify password", if you have a 4th word, some networks assume that the 3rd word is the account for the password, which allows you to identify even if you're not on a registered password.

You can add/edit the lines for whichever networks you use. The string after the == is how that network identifies itself to the $network identifier, which you can see by pasting this into any editbox of that network while you're connected to it:

//echo -a $network

5. The only action in the notify list that's available is playing a sound or performing /whois so the code below can do a command for when NICKSERV connects/disconnects. The :UNOTIFY: code is optional, and activates when that nick quits. The NOTIFY and UNOTIFY events also trigger when someone changes nick, but NICKSERV is not likely to do that.

6. Because NICKSERV appears to 'join' when you connect, you can remove the semi-colon to un-comment the line mentioning uptime if you DO want this to send your password within 60 seconds of your joining the network, which might be a redundant clone of your server-list settings.

7. If you need to speak to CHANSERV the same way, you can remove the semi-colon and edit that command too.

Code
ON *:NOTIFY:{
  if ($nick == NICKSERV) {
    ; remove the next line's semi-colon if you DO want this done as you connect
    ; if ($uptime(server,3) < 60) return
    if ($network == libera.chat) nickserv identify accountname hunter2
    if ($network == Rizon      ) nickserv identify accountname password2
  }
  if ($nick == CHANSERV) {
    ; remove the next line's semi-colon if you DO want this done as you connect
    ; if ($uptime(server,3) < 60) return
    ; if ($network == Rizon      ) chanserv identify #channelname password3
  }
}
ON *:UNOTIFY:{
  if ($nick == NICKSERV) {
    var %i 1
    while ($chan(%i)) { echo -g # NICKSERV is offline at $asctime | inc %i }
  }
}
1 112 Read More
Bug Reports Jump to new posts
/window from sclick $devent gets minimized Wims 16/10/21 05:15 PM
Code
dialog test {
  size -1 -1 100 50
  button "timer +/window" ,1,5 5 90 20
}
on *:dialog:test:sclick:1:.timer -ho 1 1500 editbox -n /window -pdfoC @qtest -1 -1 200 100
When you execute /window from an on dialog event, (tested sclick and edit), the window is minimized after creation.

As you can see in my code I even try a long timer and /editbox -n, it's also not related to the -1 -1 parameter.
0 42 Read More
Bug Reports Jump to new posts
Re: Issue with set variable in version 7.67 err0r007 16/10/21 02:07 PM
Thank you for the information.
5 363 Read More
Scripts & Popups Jump to new posts
Re: write to a file Epic 15/10/21 06:40 AM
Originally Posted by danielboom
i want save the notify list on file , how i do ?

You can try using a script like this:
Code
alias rept {
  var %nf_path = C:\i\mirc\files\list_notify.txt
  if ($exists(%nf_path)) .remove %nf_path
  var %xi 1 | while (%xi <= $notify(0)) { .write -i %nf_path $notify(%xi) | inc %xi }
  .echo -a 03The list notify has been compiled. Total:07 $lines(%nf_path) 03users.
}

To check, enter the command: "/rept".

For more information about the commands used in this script and how to use them correctly, you can read here:

    https://en.wikichip.org/wiki/mirc/commands/while or https://www.mirc.com/help/html/index.html?aliases.html#cmd_while
    https://en.wikichip.org/wiki/mirc/commands/write or https://www.mirc.com/help/html/index.html?mirc_commands.html#cmd_write
    https://en.wikichip.org/wiki/mirc/commands/notify or https://www.mirc.com/help/html/index.html?notify_list.html#cmd_notify
    https://en.wikichip.org/wiki/mirc/identifiers/$notify or https://www.mirc.com/help/html/index.html?nick_address_identifiers.html#id_$notify
    https://en.wikichip.org/wiki/mirc/identifiers/$lines or https://www.mirc.com/help/html/index.html?file_directory_identifiers.html#id_$lines

1 143 Read More
Bug Reports Jump to new posts
Re: disconnecting not updating status window icon Khaled 14/10/21 12:07 PM
Thanks this has been fixed for the next version.
1 121 Read More
Bug Reports Jump to new posts
Re: /hop [message] bug, or clarification needed. Khaled 14/10/21 11:35 AM
Thanks for your bug report.

I just tested this using "/debug on" to see what is sent to the server and the part message is being sent both with and without -c.

Can you show me the format of the command you are using where it does not send the part message?
1 100 Read More
Scripts & Popups Jump to new posts
Re: write list channel danielboom 12/10/21 11:57 PM
saves only one channel , thnx
2 146 Read More
Feature Suggestions Jump to new posts
Custom lines per non-@ window maroon 12/10/21 08:29 PM
Would be nice to have a way for #channel max lines to be set differently than changing the options/other/window-buffer setting.

This setting originally applied only to #channels, but later when it was changed to apply also to @windows, then /window was given a -jN switch so each window could have its own override setting.

However there doesn't seem to be a way to override the buffer setting for an individual channel, either permanent like how #channel positions can be saved permanently, or how the buffer can be set temporarily for a @window with -jN.

This would help people who keep a lot of windows open, but have only 1 of many channels that they need to have a large buffer. Right now they need to set the window buffer lines high for all channels in order to have it be large for just the 1 channel.

An alternative could be to allow /dline to work in a #channel, which would allow a maintenance script to be run on a timer to chop all non-exempt windows shorter.
0 72 Read More
Developers Jump to new posts
Re: Link to title from channel Raccoon 12/10/21 09:31 AM
Tip. Whenever you see the verb .* in your regex pattern, you probably want .*? instead. At least 99% of the time.

.* -- Will gobble up the entire webpage from beginning to end, and then slowly back track one letter at a time until it finds a match.
.*? -- Will march forward one letter at a time until it finds a match, in the normal intuitive way you probably imagine it should.

Compare: .*?

//echo -a $regex(blah blah <title>The quick brown fox jumps over the lazy dog.</title>lol sucker!</title> blah blah, <title>(.*?)</title>) -> $regml(1)
1 -> The quick brown fox jumps over the lazy dog.

and: .* without ?

//echo -a $regex(blah blah <title>The quick brown fox jumps over the lazy dog.</title>lol sucker!</title> blah blah, <title>(.*)</title>) -> $regml(1)
1 -> The quick brown fox jumps over the lazy dog.</title>lol sucker!

You can also add a sanity check to tell the match to give up if it's going to be unrealistically long to find a match. Say, 256 or 512 or 1024 characters. Up to you.

.{1,1024}? is the same as .*? but better.

To make the final output variables a sane length as well, you should use $left() to trim them down if they're too long.

var %title = $left(%title,256), %desc = $left(%desc,256)
1 145 Read More
Feature Suggestions Jump to new posts
Re: ipv6 socket server - accepting ipv4 Khaled 09/10/21 04:44 PM
I looked into this long ago when I first added IPv6 support. At the time, I decided not to add support for it since dual stack was not supported by XP, which was still widely used. I'll add this to my to-do list. However, since mIRC is still technically supporting XP, be aware that this option will not work on XP.
1 143 Read More
mIRC Help Jump to new posts
Re: Randomly colorized usernames eahm 07/10/21 06:11 AM
Guys, I modified this line to make the nicks in bold "echo -lt $+ $msgstamp $chan < $+ $chr(2) $+ $chr(3) $+ %col $+ $nick($chan,$nick).pnick $+ $chr(3) $+ $chr(2) $+ > $1-", not sure if it's 100% correct but it works fine but I just noticed it doesn't color the query nicks, is there a way to add that?
Thanks.
11 26,216 Read More
Bug Reports Jump to new posts
Re: Windows 11 Issue Khaled 06/10/21 02:41 PM
I have just installed Windows 11 Pro and was not able to reproduce the issue you describe.

With mIRC v7.67, if I join a channel and then double-click on a nickname, either in the channel nick list or a nickname in the window, it opens a query window with an editbox at the bottom, as expected.

Are you using any scripts/addons/DLLs with mIRC?

Can you please type the following in your status window and report the result?

//echo -a $os $version $iif($beta,04 $+ $beta $+ ) $md5($mircexe,2) $file($mircexe).sig $alias(0) $script(0) $dll(0) $com(0)
2 222 Read More
Bug Reports Jump to new posts
Re: Installer doesn't remember previous install dir. Khaled 06/10/21 06:40 AM
If you are installing mIRC as a portable application, in a custom folder, the installer will not save any settings to your computer. That is the purpose of a portable installation - to not make changes to your computer. This means that when you run the installer again, it cannot know where you previously installed mIRC.
1 126 Read More
mIRC Help Jump to new posts
Re: Lets Encrypt Cert Invalid LouWestin 03/10/21 02:58 PM
The update fixed it! Thank you for your hard work!
2 265 Read More
Scripts & Popups Jump to new posts
Re: Udp socket and ipv6 Wims 03/10/21 01:09 PM
That makes sense, somehow I thought the binding had to be done when sending the data, not when creating the 'listening' socket, sorry for the misunderstanding, it works.
4 270 Read More
Page 1 of 13 1 2 3 12 13