Re: Scripts Editor Find/Replace bug
Khaled
27/01/24 01:24 PM
Okay, I have been experimenting with it, so haven't settled on a behaviour just yet. Let's see how the next beta works out.
Update: I have uploaded a beta with some changes. I decided to stick with the Notepad++ style wrap-around behaviour as I found that more useful and have extended it to Shift+F3. I also made a few other changes to the editor that should hopefully be useful.
8
1,395
Read More
|
|
Re: zline/gline not reported correctly for ssl
Khaled
25/01/24 08:38 PM
In your case, it looks like the SSL connection is reporting these errors before mIRC receives anything else. It is possible for a client to not receive pending outgoing messages from a server if the server closes the connection incorrectly. See here and here for discussions on this topic. The odds are that this is due to the way the server closes the connection. The fact that the behaviour is different with/without SSL is likely down to SSL itself being stricter in how it handles connections, eg. as in the case of the truncation vulnerability.
3
647
Read More
|
|
Re: How can I hide my IP using a proxy?
turbosmurfen
22/01/24 01:04 AM
There is many servers that use different proxy lookup services. The most proxies is found by these. If you want to use a proxy. Do you know if it's socks5, socks4 or just proxy?
I saw that you found out that the channel won't accept you. I guess your proxy is blacklisted. I have never paid for proxies before. I always used socks5 that is classified as elite proxy.
You have Transparent, Anonymous, Elite Proxies.
Easier for you would be to use a VPN instead. But sure, they could be blocked too.
1
586
Read More
|
|
Re: /write bug in 7.64
Khaled
17/01/24 01:46 PM
Thanks for your bug report.
The most common reason for this issue is anti-virus software that is blocking further writing to the file while it scans the file.
I just tested your script with v7.76 on a 5400rpm drive and it worked fine here.
I also tested v7.45 and v7.46 and they both worked fine as well. There is no difference in the /write source code between v7.45 and v7.46.
3
1,182
Read More
|
|
$read $readn and $null
Wims
17/01/24 10:11 AM
1) $read($null,tn,1) makes $readn 5 here on latest version 7.76, it should make it 0 instead.
2) When you access a line number in a file that does not exist, $readn isn't set to 0 but to $lines(file):
//write -c test $+(A,$crlf,B,$crlf,C) | echo -ag > $read(test,tn,75) $readn
I think this behavior has been reported in the past, it's possible to work with it once you know but it should also make $readn 0 here.
0
183
Read More
|
|
VLC Now-Playing for mIRC
turbosmurfen
14/01/24 11:40 PM
VLC Now-Playing for mIRC My project is named VLCSay and can be found as Open Source on GitHub.comVLCSay have been tested in Windows 7, 10 and 11 which works great. And in mIRC versions from 7.76 and newer. From downloading and installation. This can be found on the start page.I'm open for questions, requests and things. And yes I'm back.
0
245
Read More
|
|
Re: historic - up/down key
Wims
12/01/24 09:08 PM
I would like to see this limit extended again, when scripting it's typical to execute things in editboxes.
Not only I lose commands but even rebooting mIRC and losing them that way can be equally annoying.
I'd like a big increase but would rather have an option to save the history to a file, which is difficult to script natively, than to get a small increase.
I think the current limit is 100, can we get 300? Another feature that was asked in the past is to be able to access the history of editboxes as well as be able to /clear the buffer (delete Nth line as well).
5
3,565
Read More
|
|
Re: Different $base($calc()) results in 7.x versions.
Khaled
11/01/24 09:08 AM
it's just incorrectly returning a character that's not part of the string base "0123546789" Ah, now your bug report makes sense :-) An explanation always helps. It looks like this is due to the recent change to $base(). I think I've found a solution but it will need testing. This change will be in the next beta.
9
1,686
Read More
|
|
Re: $urlget() Basic Auth issues. Bug?
Khaled
10/01/24 09:50 AM
Thanks for confirming. As far as I can tell, the reason for this is that RFC3986 does not permit using an @ sign (or any of the other reserved characters that can delimit a URI) in either the username or the password. Both need to be separately percent-encoded by the scripter, and then separated by a ":" colon, before being used in the URI passed to $urlget(), in order for the URI to be parsed correctly.
In this case, it looks like mIRC needs to assume that the scripter always percent-encodes the username and password, and it should therefore always percent-decode the username and password after it has parsed the URI, before passing them to WinINET. That should resolve the issue. This change will be in the next beta.
The only possible backward-compatibility issue is if a scripter is already using username:password and one of these contains a combination of characters that looks percent-encoded. Hmm.
It may also be worth adding a percent encoding/decoding switch to the $encode()/$decode() identifiers in this case.
Note: RFC3986 indicates that using user:pass in the URI is deprecated, however since mIRC is parsing the URI independently of WinINET, it should continue to work in future.
3
602
Read More
|
|
mIRC 7.76 released
Khaled
07/01/24 08:46 PM
Dear mIRC User, mIRC v7.76 has been released today. This is a small update that adds features and addresses a number of issues reported by users since the last release. It includes improvements, changes and fixes, including: Updated to Visual Studio 2017 to compile mIRC. Updated OpenSSL library to v3.0.12. Updated CA root certificates cacert.pem file. Fixed switchbar vertical scrollbar buttons not being visible on Windows 11. Added support for larger GUI icons for high resolution monitors. Fixed notify list MONITOR event parsing to handle events without hostnames. Fixed numeric 324 bug when parsing date range. Enabled Control Flow Guard runtime security checks. Fixed /toolbar -p bug that was not freeing memory correctly. Fixed typing notifications bug in parted/kicked channel windows. How to upgrade?mIRC is distributed in an installer that installs mIRC on your computer for you. Simply download and run the installer from the download page on the mIRC website. Follow the instructions the installer gives to you. When upgrading all your old settings and scripts will stay as they were, if you want that. Read the questions the installer asks with care and nothing can go wrong. You will be chatting with the new mIRC in no time. If you get stuck or if you want to find out more about a certain feature, just click on a Help button or browse the Help file and you should find lots of hints to help you out. Where to download?As always, the latest version of mIRC can be downloaded from the download page on the mIRC website. Registering mIRCAs you know, mIRC can be downloaded freely and evaluated for 30 days. If you find that you enjoy using mIRC, it would be great and much appreciated if you registered your copy. This licenses you to use your copy of mIRC and helps to support our continued work on mIRC. You can find out how to register here. Full list of Fixes, Changes and Additions.For a more detailed list of recent changes, please see the whatsnew.txt file. You will need to read through the help file to learn more about these changes and their impact. Some changes are obvious, some need getting used to - please take your time to play with them and see how they work. May we invite you to use these forums for all questions you might have? The forums offer great help with everything related to mIRC! Thanks for using mIRC, have fun on IRC!
0
1,126
Read More
|
|
Re: Typo in the beta changelogs
TECO
05/01/24 05:35 PM
I'm not rushing... I'm asking just because the last final version was august/23 and there's already a lot of new features on the current beta... It didn't appear in your comment, however if you look at the history of new versions, version 7.67 was released on October 2, 2021, and the next version 7.68 was only released on April 2, 2022. Khaled releases new versions when meet the conditions for this, and there is no point in launching a new version if it is not yet finished, even though the new version brings many corrections and new features.
5
807
Read More
|
|
Re: How to Monitor a channel and save msg text
lastyle
03/01/24 07:36 PM
Thanks, that helped me a lot. I adjusted it a bit since i just wanted the message itself without any further information which works perfectly now.
But what i didnt figure yet, how would i save the Message only if it isnt already present in the File to prevent having duplicate entrys ? I Meanwhile fixed that with a python script running afterwards, but there is still one thing :-) i want to read a line from a file and then parse the text to a channel, but mirc responds with "to many arguents" in the libe where i want to check if the file exists. var %file = d:\leechme.txt if ($isfile(%file)) { var %fileHandle = $file(%file, r) var %line = $read(%fileHandle) .close -r %fileHandle if (%line) { /msg #welcomechat %line remove %file } else { echo -s File is empty or an error occurred while reading. } } else { echo -s File does not exist. } Found it myself, so if somebody may need wo use that function one day... var %file = "d:\leechme.txt" if ($isfile(%file)) { var %line = $read(%file) if (%line) { /msg #welcomechat %line remove %file } else { echo -s File is empty or an error occurred while reading. } } else { echo -s File does not exist. }
5
788
Read More
|
|
Seen script help please
Robert
03/01/24 01:44 PM
Here is the "Seen" code snippet i were found on the internet, i don't remember which website or forum... I want the resutl of code are: Here are an examples: When some one type this command: !seen <nick> or !seen <ip/host> (*!*@1.2.3 or *!*@xyz.host.com) 1. Found (4) results "BiRain MrChair MrRolex Vida". Most recently BiRain (webchat@45.120.228.2) left IRC about 3 hours 22 minutes ago (12/05/2023-09:53:02) with message: "Read error: EOF from client", after BiRain stayed 47 minutes on #helpchan. As far as I know, BiRain hasn't said anything. 2. nps (nps@azygous.users.undernet.org) was last seen on #siargao. nps is still on #siargao. As far as I know, 2 hours 4 minutes ago, nps (nps@azygous.users.undernet.org) said on #siargao: "maryn" 3. I dont remember seeing Vida lately.. (Vida is a nickname an example). 4. Life (Life@Life.users.undernet.org) was last seen on #siargao. Unable to see Life right now on #siargao. As far as I know, 5 minutes ago, Life (Life@Life.users.undernet.org) said on #siargao: "!seen nps" 5. ChanGuard (~Life@Life.users.undernet.org) was last seen parting #siargao 20 seconds ago (03/01/2024 13:35:30), after stayed 10 minutes on #siargao. Here is code:
on ^*:TEXT:*:#:{
if ($1 == !seen) || ($1 == .seen) || ($1 == @seen) && (!%seen) { check_seenanother_flood $nick
if ($2) && ($2 != |) && ($left($2,1) != $) {
if ($2 == $nick) { msg $chan [Seen] Are you looking for yourself, $nick $+ ? }
if ($2 ison $chan) { msg $chan [Seen] $2 is still on the channel $chan $+ . }
elseif ($2 == $me) { msg $chan $nick $+ : Sorry, you cann't seen me. }
else {
if (*!*@* iswm $2) {
if ($read(seen.txt,w,* * $+ $2 $+ * :*)) {
var %seennickvar = $lines(seen.txt), %seennicks, %seennick
while ($readn <= %seennickvar) {
if ($read(seen.txt,w,* * $+ $2 $+ * :*,$calc($readn +1))) {
var %seennickvar2 = $ifmatch
if ($count(%seennicks,$chr(32)) < 20) && (*. $+ $gettok(%seennickvar2,1,32) $+ ,* !iswm %seennicks) { set %seennicks %seennicks , $+ $gettok(%seennickvar2,1,32) $+ , | inc %seennick }
}
else { set %seennickvar 0 }
}
if (%seennick == 1) { seen $chan $read(seen.txt,w,* * $+ $2 $+ * :*) }
elseif (%seennick < 20) { msg $chan $nick $+ : Found %seennick matching nicks: $left($remove(%seennicks,.),-1) $+ . }
else { msg $chan [Seen] To many results $nick $+ , try spesific it a bit more. }
}
else { msg $chan $nick $+ : No matches were found matching your search. }
}
else {
if ($read(seen.txt,w,* $+ $2 $+ * *!*@* :*)) {
if ($read(seen.txt,w,$2 *)) { seen $chan $ifmatch }
else {
var %seennickvar = $lines(seen.txt), %seennicks, %seennick
while ($readn <= %seennickvar) {
if ($read(seen.txt,w,* $+ $2 $+ * *!*@* :*,$calc($readn +1))) {
var %seennickvar2 = $ifmatch
if ($count(%seennicks,$chr(32)) < 20) && (*. $+ $gettok(%seennickvar2,1,32) $+ ,* !iswm %seennicks) { set %seennicks %seennicks . $+ $gettok(%seennickvar2,1,32) $+ , | inc %seennick }
}
else { set %seennickvar 0 }
}
if (%seennick == 1) { seen $chan $read(seen.txt,w,* $+ $2 $+ * *!*@* :*) }
elseif (%seennick < 20) { msg $chan [Seen] Found %seennick matching nicks: $left($remove(%seennicks,.),-1) $+ . }
else { msg $chan $nick $+ : To many results $nick $+ , try spesific it a bit more. }
}
}
else { msg $chan $nick $+ : Sorry, i don't remember seeing $2 lately. }
}
}
}
else { msg $chan $nick $+ : Error command, Syntax: ./!/@seen <nick/mask> }
.ignore -u2 $nick
set -u3 %seen 1
}
}
alias -l check_seenanother_flood {
var %nickseenanother $1, %hostseenanother $ial($1).host, %delay_seenanother_time 10
if ($hget(stop-seenanother-flood,%hostseenanother)) {
if (!$hget(stop-seenanother-flood-msg, %hostseenanother)) {
msg $chan -ATTENTION- %nickseenanother $+ , You have recently used this command, further attempts will be ignored. Please wait a while to reused...
.hadd -mz stop-seenanother-flood-msg %hostseenanother %delay_seenanother_time
}
halt
}
.hadd -mz stop-seenanother-flood %hostseenanother %delay_seenanother_time
}
alias seen {
if ($gettok($2-,3,32) == :SAY) { msg $1 [Seen] As far as I know, $gettok($2-,1,32) ( $+ $right($gettok($2-,2,32),-3) $+ ) was last seen said on $gettok($2-,6,32) $duration($calc($ctime - $ctime($gettok($2-,4-5,32)))) ( $+ $gettok($2-,4-5,32) $+ ) ago with the text message: " $+ $gettok($2-,7-,32) $+ ". }
if ($gettok($2-,3,32) == :JOIN) { msg $1 [Seen] $gettok($2-,1,32) ( $+ $right($gettok($2-,2,32),-3) $+ ) was last seen joined $gettok($2-,6,32) $duration($calc($ctime - $ctime($gettok($2-,4-5,32)))) ( $+ $gettok($2-,4-5,32) $+ ) ago. $gettok($2-,1,32) is still on $gettok($2-,6,32) $+ . }
if ($gettok($2-,3,32) == :PART) { msg $1 [Seen] $gettok($2-,1,32) ( $+ $right($gettok($2-,2,32),-3) $+ ) was last seen parted $gettok($2-,6,32) for $duration($calc($ctime - $ctime($gettok($2-,4-5,32)))) ( $+ $gettok($2-,4-5,32) $+ ) $iif($gettok($2-,7,32),ago with the part message " $+ $gettok($2-,7-,32) $+ ".,ago. And after $gettok($2-,1,32) stayed $duration($calc($gettok($2-,5,32))) on $gettok($2-,6,32)) $+ . }
if ($gettok($2-,3,32) == :KICK) { msg $1 [Seen] $gettok($2-,1,32) ( $+ $right($gettok($2-,2,32),-3) $+ ) was last seen when he got kicked by $gettok($2-,7,32) from $gettok($2-,6,32) in $duration($calc($ctime - $ctime($gettok($2-,4-5,32)))) ( $+ $gettok($2-,4-5,32) $+ ) ago with the kick message " $+ $gettok($2-,8-,32) $+ ". And after $gettok($2-,1,32) stayed $duration($calc($gettok($2-,5,32))) on $gettok($2-,6,32)) $+ . }
if ($gettok($2-,3,32) == :KICKING) { msg $1 [Seen] $gettok($2-,1,32) ( $+ $right($gettok($2-,2,32),-3) $+ ) was last seen kicked $gettok($2-,7,32) from $gettok($2-,6,32) in $duration($calc($ctime - $ctime($gettok($2-,4-5,32)))) ( $+ $gettok($2-,4-5,32) $+ ) ago with the kick message " $+ $gettok($2-,8-,32) $+ ". }
if ($gettok($2-,3,32) == :TOPIC) { msg $1 [Seen] $gettok($2-,1,32) ( $+ $right($gettok($2-,2,32),-3) $+ ) was last seen changing topic in $gettok($2-,6,32) from $duration($calc($ctime - $ctime($gettok($2-,4-5,32)))) ( $+ $gettok($2-,4-5,32) $+ ) ago. }
if ($gettok($2-,3,32) == :NICK) { msg $1 [Seen] $gettok($2-,1,32) ( $+ $right($gettok($2-,2,32),-3) $+ ) was last seen changing nick to $+(,$gettok($2-,6,32),) on ( $+ $gettok($2-,4-5,32) $+ ). As far as I know $+(,$gettok($2-,1,32),) has changed nick for $duration($calc($ctime - $ctime($gettok($2-,4-5,32)))) ago. }
if ($gettok($2-,3,32) == :QUIT) { msg $1 [Seen] $gettok($2-,1,32) ( $+ $right($gettok($2-,2,32),-3) $+ ) has left IRC $duration($calc($ctime - $ctime($gettok($2-,4-5,32)))) ( $+ $gettok($2-,4-5,32) $+ ) $iif($gettok($2-,6,32),ago with the quit message " $+ $gettok($2-,6-,32) $+ ".,ago.) As far as I know, $gettok($2-,1,32) has online for $duration($calc($gettok($2-,5,32))) after left IRC. }
}
on *:text:*:#: {
if ($nick != $me) && ($address($nick,1)) {
write -dw"* $+ $address($nick,1) $+ *" seen.txt
write -dw" $+ $nick *" seen.txt
write seen.txt $nick $address($nick,1) :SAY $date $time $chan $remove($strip($1-,bruc),$,|,$chr(35))
}
}
on *:action:*:#: {
if ($nick != $me) && ($address($nick,1)) {
write -dw"* $+ $address($nick,1) $+ *" seen.txt
write -dw" $+ $nick *" seen.txt
write seen.txt $nick $address($nick,1) :SAY $date $time $chan $remove($strip($1-,bruc),$,|,$chr(35))
}
}
on *:join:#: {
if ($nick != $me) && ($address($nick,1)) {
write -dw"* $+ $address($nick,1) $+ *" seen.txt
write -dw" $+ $nick *" seen.txt
write seen.txt $nick $address($nick,1) :JOIN $date $time $chan
}
}
on *:part:#:{
if ($nick != $me) && ($address($nick,1)) {
write -dw"* $+ $address($nick,1) $+ *" seen.txt
write -dw" $+ $nick *" seen.txt
write seen.txt $nick $address($nick,1) :PART $date $time $chan $remove($strip($1-,bruc),$,|,$chr(35))
}
}
on *:kick:#:{
if ($nick != $me) && ($address($nick,1)) {
write -dw"* $+ $address($nick,1) $+ *" seen.txt
write -dw" $+ $nick *" seen.txt
write seen.txt $nick $address($nick,1) :KICKING $date $time $chan $knick $remove($strip($1-,bruc),$,|,$chr(35))
}
if ($knick != $me) && ($address($knick,1)) {
write -dw"* $+ $address($knick,1) $+ *" seen.txt
write -dw" $+ $knick *" seen.txt
write seen.txt $knick $address($knick,1) :KICK $date $time $chan $nick $remove($strip($1-,bruc),$,|,$chr(35))
}
}
on *:topic:#: {
if ($nick != $me) && ($address($nick,1)) {
write -dw"* $+ $address($nick,1) $+ *" seen.txt
write -dw" $+ $nick *" seen.txt
write seen.txt $nick $address($nick,1) :TOPIC $date $time $chan
}
}
on *:nick: {
if ($nick != $me) && ($address($newnick,1)) {
write -dw"* $+ $address($newnick,1) $+ *" seen.txt
write -dw" $+ $newnick *" seen.txt
write seen.txt $nick $address($newnick,1) :NICK $date $time $newnick
}
}
on *:quit: {
if ($nick != $me) && ($address($nick,1)) {
write -dw"* $+ $address($nick,1) $+ *" seen.txt
write -dw" $+ $nick *" seen.txt
write seen.txt $nick $address($nick,1) :QUIT $date $time $remove($strip($1-,bruc),$,|,$chr(35))
}
}
File seen.txt like this: pumpkin *!*~hollow@188.64.15.179 :QUIT 12/11/2023 06:04:58 Read error: Connection reset by peer rolandcool *!*~rolandcoo@35.236.223.60 :JOIN 12/11/2023 12:14:34 #freeirc Prodigious^ *!*67d614bc@ircip1.mibbit.com :PART 12/11/2023 21:47:01 #GiRLs rsvp *!*~rsvpfr@Varsator.users.undernet.org :NICK 14/11/2023 00:40:59 dba Lampa *!*mona@monalisa2.users.undernet.org :SAY 03/12/2023 02:43:48 #Official lasa ca le vedem cand intra si ia ban :P .... Thanks all for help, i'm waiting for new version of this code.....from some one in here
0
174
Read More
|
|
Re: Separate MSG´s of actions in input and on text
Epic
02/01/24 04:08 PM
If I understood the translation of your request correctly, then you can try using this script code:
on ^*:TEXT:*:#: sep $1- | halt
on ^*:NOTICE:*:?: sep $1- | halt
on ^*:JOIN:#: sep $1- | halt
on ^*:PART:#: sep $1- | halt
on ^*:QUIT: sep $1- | halt
alias -l sep {
if ($event == text) var %sep 1
if ($event == notice) var %sep 2
if ($istok(join part,$event,32)) var %sep 3
if ($event == quit) var %sep 4
;-------------------------
if (%sep == 1 && $hget(sep,act) isnum 2-4) { echo $chan $chr(160) | .hadd -m sep act %sep }
if (%sep == 2 && $hget(sep,act) == 1) { echo $active $chr(160) | .hadd -m sep act %sep }
if (%sep == 3 && $hget(sep,act) == 1) { echo $chan $chr(160) | .hadd -m sep act %sep }
;-------------------------
if ($event == text) echo -tc $event $chan $nick $1-
if ($event == notice) echo -tc $event $active - $+ $nick $+ - $1-
if ($istok(join part,$event,32)) echo -tc $event $chan * $nick ( $+ $address $+ ) $event $chan
if ($event == quit) {
var %i $comchan($nick,0) | while (%i) {
if (%sep == 4 && $hget(sep,act) == 1) { echo $comchan($nick,%i) $chr(160) }
echo -tc $event $comchan($nick,%i) * $nick ( $+ $address $+ ) Quit $iif($1,$+($chr(40),$1-,$chr(41))) | dec %i
} | .hadd -m sep act %sep
}
}
Implementing the " QUIT" event is more difficult, and I don't have much time for extensive testing right now. Therefore, test this script yourself. I hope that everything will be displayed correctly for you. Happy New Year.
1
516
Read More
|
|
Happy New Year
Piratoshi
31/12/23 07:27 PM
Hello mIRC frens! I want to wish you all a very happy new year. 🎇 Specially to Khaled! Thank you for keeping mIRC alive all these years. And to all the community that share codes and help each other. May the 2024 be a great year for mIRC as a social platform. 🙏 My best wishes ! Thank you for 2023
0
216
Read More
|
|
Re: Separate MSG´s of actions in input and on text
Epic
30/12/23 01:55 PM
If I understood the translation of your request correctly, then you can try using this script code:
on ^*:TEXT:*:#: sep $1- | halt
on ^*:NOTICE:*:?: sep $1- | halt
on ^*:JOIN:#: sep $1- | halt
on ^*:PART:#: sep $1- | halt
on ^*:QUIT: sep $1- | halt
alias -l sep {
if ($event == text) var %sep 1
if ($event == notice) var %sep 2
if ($istok(join part quit,$event,32)) var %sep 3
if ($event == quit) var %sep 4
;-------------------------
if (%sep == 1 && $hget(sep,act) isnum 2-4) { echo $chan $chr(160) | .hadd -m sep act %sep }
if (%sep == 2 && $hget(sep,act) == 1) { echo $active $chr(160) | .hadd -m sep act %sep }
if (%sep == 3 && $hget(sep,act) == 1) { echo $chan $chr(160) | .hadd -m sep act %sep }
;-------------------------
if ($event == text) echo -tc $event $chan $nick $1-
if ($event == notice) echo -tc $event $active - $+ $nick $+ - $1-
if ($istok(join part,$event,32)) echo -tc $event $chan * $nick ( $+ $address $+ ) $event $chan
if ($event == quit) {
var %i $comchan($nick,0) | while (%i) {
if (%sep == 4 && $hget(sep,act) == 1) { echo $comchan($nick,%i) $chr(160) }
echo -tc $event $comchan($nick,%i) * $nick ( $+ $address $+ ) Quit $iif($1,$+($chr(40),$1-,$chr(41))) | dec %i
} | .hadd -m sep act %sep
}
}
Implementing the " QUIT" event is more difficult, and I don't have much time for extensive testing right now. Therefore, test this script yourself. I hope that everything will be displayed correctly for you. Happy New Year.
1
325
Read More
|
|
|
|