mIRC Home    About    Download    Register    News    Help

Print Thread
Page 1 of 2 1 2
#273537 27/07/25 10:22 AM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
I'm trying to set different types of bans that I'm missing and that could be useful, but the command is different depending on where you're banning, for example:

Clicking on the nickname list, I get a simple ban on the address:

/ban $$1 2

If the nickname is registered, how do I ban the registered nickname?

Instead, on a script with input, the command is:

if (!kb isin $1) { /ban # $2 2 }

Again, how can I ban a nickname's account if it's registered?

And finally, there's another script that automatically bans, like this:

on @*:TEXT:*add me on*:#Mairel: { .ban $chan $nick 2 }

Since I've set the channel so that only registered nicknames can post, how do I ban the registered account?

Mairel #273540 28/07/25 12:30 PM
Joined: Nov 2021
Posts: 159
Vogon poet
Offline
Vogon poet
Joined: Nov 2021
Posts: 159
well that depends on what network this will be used and if they have the option to set bans on accounts rather than on their host or ip and such.
lets start with asking on what network are you using this ? and what ircd + services are they using ?

Simo #273542 28/07/25 07:15 PM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
Forgive my ignorance, I'm not sure how to respond to the last part of your message, so I at least checked to see if it was possible to ban registered nicknames, and the command is like this:

/mode #channel +b R:

If I do it manually in the channel, it works, but I don't know how to implement it in the situations described above.

If you need any more information, please let me know. Thank you very much

Mairel #273543 28/07/25 08:52 PM
Joined: Nov 2021
Posts: 159
Vogon poet
Offline
Vogon poet
Joined: Nov 2021
Posts: 159
the only way i can think of using an extended ban on the account is via whois where the account can be found

Mairel #273544 29/07/25 06:21 AM
Joined: Jan 2012
Posts: 364
Pan-dimensional mouse
Offline
Pan-dimensional mouse
Joined: Jan 2012
Posts: 364
Try using this:
Code
menu nicklist {
  -
  $style(1) ADMIN
  .Ban $chr(9) *!*@host : ban $chan $$1 2
  .Ban $chr(9) $+(R,$chr(58),$$1) : mode $chan +b $+(R:,$$1)
  .-
  .Ban [Combo] : mode $chan +bb $address($$1,2) $+(R:,$$1)
  -
}

on @*:INPUT:#:{
  if (/* !iswm $1) {
    if (!b == $1) { ban $chan $2 2 }
    if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! }
    if (!br == $1) { mode $chan +b $+(R:,$2) }
    if (!kbr == $1) { mode $chan +b $+(R:,$2) | kick $chan $2 You are not welcome here! }
    halt
  }
}

on @*:TEXT:*add me on*:#Mairel:{ ban $chan $nick 2 | mode $chan +b $+(R:,$nick) }

Note: You can leave it as is or split it into 3 different scripts. If the code does not work correctly or as you expected, please leave a comment with a detailed report, so that the necessary changes can be made to fix.


🌐 https://forum.epicnet.ru 📜 irc.epicnet.ru 6667 #Code | mIRC scripts, help, discuss, examples
Simo #273545 29/07/25 06:59 AM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
When I run a whois query, I get, for example:

BestGuest is logged in as TheKing

So if I manually run the command:

/mode #mychan +b R:TheKing

the command works. However, I can't create the command from the other places I mentioned above: by clicking on the nickname list, and from the other two scripts, since they require a different spelling of the command. This is my problem.

Epic #273547 29/07/25 10:20 AM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
@Epic, I tried your script. I tried it both split (I prefer it, because I already have three different places set up where these commands are) and loading it whole, and it gives me the same problem for all three codes, whether trying them individually or all at once.

That is, the nickname that gets banned isn't the one of the account they're logged into, but the nickname they're currently using.

For example: if I'm logged in with the nickname TheKing, but I'm using the nickname BestGuest, those commands result in a ban on BestGuest, while the ban should actually be on TheKing.

Mairel #273548 29/07/25 02:00 PM
Joined: Jan 2012
Posts: 364
Pan-dimensional mouse
Offline
Pan-dimensional mouse
Joined: Jan 2012
Posts: 364
Originally Posted by Mairel
That is, the nickname that gets banned isn't the one of the account they're logged into, but the nickname they're currently using. For example: if I'm logged in with the nickname TheKing, but I'm using the nickname BestGuest, those commands result in a ban on BestGuest, while the ban should actually be on TheKing.
Ok, I made additional changes to the code to fix the problem you described.

You can test this code:
Code
menu nicklist {
  -
  $style(1) ADMIN
  .Ban $chr(9) *!*@host : ban $chan $$1 2
  .Ban $chr(9) $+(R,$chr(58),<account>) : bacc $chan $$1
  .-
  .Ban [Combo] : set %bcombo $true | bacc $chan $$1
  -
}

on @*:INPUT:#:{
  if (/* !iswm $1) {
    if (!b == $1) { ban $chan $2 2 }
    if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! }
    if (!br == $1) { bacc $chan $2 }
    if (!kbr == $1) { bacc $chan $2 | kick $chan $2 You are not welcome here! }
    halt
  }
}

on @*:TEXT:*add me on*:#Mairel: ban $chan $nick 2 | bacc $chan $nick


alias -l bacc { .enable #islogged | set %bchan $1 | whois $2 }
alias -l setmode { $iif(%bcombo,mode %bchan +bb $address($1,2) $+(R:,$2),mode %bchan +b $+(R:,$2)) | unset %bchan %bcombo }

#islogged off
raw *:*is logged*: setmode $2 $3 | .disable #islogged
#islogged end

Note: If you are going to split this code up for use in different scripts, remove the switch "-l" in the aliases, to make them global and publicly for visibility in all scripts: alias -l


🌐 https://forum.epicnet.ru 📜 irc.epicnet.ru 6667 #Code | mIRC scripts, help, discuss, examples
Epic #273549 29/07/25 03:31 PM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
I think at this point I need help breaking them down and adding them to the different scripts, @Epic

If I load this entire script, it works, but if I try to split them, I can't get it to work anymore.

For the code snippet in the nickname list, I simply have the commands in the script editor, under Popus, like this:

[Linked Image from i.imgur.com]

So, how do I add it to the Popups?

For the inputs, the script is like this:

on *:INPUT:#: {
if (!q === $1) {
if ($2 = $null) { /msg chanserv owner # $me }
else { /mode $chan +q $2- }
}
if (!a = $1) {
if ($2 = $null) { /msg chanserv protect # $me }
else { /mode $chan +aaaaaaaaaa $2- }
}
if (!o = $1) {
if ($2 = $null) { /msg chanserv op # $me }
else { /mode $chan +oooooooooo $2- }
}
if (!kb isin $1) { /ban # $2 2 }
if (!k isin $1) { /kick $chan $2 $3- }
if ($1 == .k ) { kick # $2 $3- }
if ($1 == .b ) { ban # $2 $3- }
if (!b == $1 ) { /mode $chan +b $+(*,$2,*),*,!,*,@,*) }
}
}

on 1:connect: {
comandon
}

alias comandon {
if (%cmd1 != $null) { timer1 1 0 %cmd1 }
if (%cmd2 != $null) { timer2 1 0 %cmd2 }
if (%cmd3 != $null) { timer3 1 0 %cmd3 }
if (%cmd4 != $null) { timer4 1 0 %cmd4 }
if (%cmd5 != $null) { timer5 1 0 %cmd5 }



I'm lost here too; I can't add it.

Finally, in the badwords script, I don't think I added it correctly... it works, but in addition to displaying a whois every time a nickname is banned, the status message says "BACC Unknown command."

To add it to the badwords script, I simply added this code under another alias in that script:

alias -bacc { .enable #islogged | set %bchan $1 | whois $2 }
alias setmode { $iif(%bcombo,mode %bchan +bb $address($1,2) $+(R:,$2),mode %bchan +b $+(R:,$2)) | unset %bchan %bcombo }

#islogged off
raw *:*is logged*: setmode $2 $3 | .disable #islogged
#islogged end


And then of course I put this ban $chan $nick 2 | bacc $chan $nick in every code on text, like this:

on @*:TEXT:*this one*:#Mairel: ban $chan $nick 2 | bacc $chan $nick
on @*:TEXT:*this one too*:#Mairel: ban $chan $nick 2 | bacc $chan $nick


I hope I explained myself well, I'm sorry for the confusion, if you could tell me how and where they should be added, because I can't do it alone

Mairel #273551 30/07/25 11:05 AM
Joined: Jan 2012
Posts: 364
Pan-dimensional mouse
Offline
Pan-dimensional mouse
Joined: Jan 2012
Posts: 364
Code snippet for the "Popups" menu:
Code
Punishment
.Ban+Kick : mode $chan +bb $address($$1,2) $address($$1,3) | kick $chan $$1 You are not welcome here!
.-
.Ban $chr(9) *!*@host : ban $chan $$1 2
.Ban $chr(9) $+(R,$chr(58),<account>) : bacc $chan $$1
.-
.Ban $chr(9) Combo : set %bcombo $true | bacc $chan $$1
.Ban+Kick $chr(9) Combo : set %bcombo $true | bacc $chan $$1 | kick $chan $$1 You are not welcome here!


Code snippet with the "ON INPUT" event handler:
Code
on @*:INPUT:#:{
  if (!q == $1) {
    if ($2 == $null) { msg chanserv owner $chan $me } | else { mode $chan +q $2- }
  }
  if (!a == $1) {
    if ($2 == $null) { msg chanserv protect $chan $me } | else { mode $chan +aaaaaaaaaa $2- }
  }
  if (!o == $1) {
    if ($2 == $null) { msg chanserv op $chan $me } | else { mode $chan +oooooooooo $2- }
  }
  if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! }
  if (!k == $1) { kick $chan $2 $3- }
  if (.k == $1) { kick $chan $2 $3- }
  if (!b == $1 ) { mode $chan +b $+(*,$2,*!*@*) }
  if (.b == $1 ) { ban $chan $2 $3- }
  if (!br == $1) { bacc $chan $2 }
  if (!kbr == $1) { bacc $chan $2 | kick $chan $2 You are not welcome here! }
  halt
}


Code snippet (badwords) with the "ON TEXT" event handler:
Code
on @*:TEXT:*this one*:#Mairel: ban $chan $nick 2
on @*:TEXT:*this too*:#Mairel: ban $chan $nick 2
on @*:TEXT:*i want combo ban*:#Mairel: set %bcombo $true | bacc $chan $nick


alias bacc { .enable #islogged | set %bchan $1 | whois $2 }
alias setmode { $iif(%bcombo,mode %bchan +bb $address($1,2) $+(R:,$2),mode %bchan +b $+(R:,$2)) | unset %bchan %bcombo }

#islogged off
raw *:*is logged*: setmode $2 $3
raw 318:*: .disable #islogged
#islogged end


P.S. Please note that I have made many changes to fix bugs and improve things. You can compare your old code with this update to see what you were doing wrong. Also, never forget to look at the help documentation to see the correct syntax and read information about how to use a particular code element: https://en.wikichip.org/wiki/mirc


🌐 https://forum.epicnet.ru 📜 irc.epicnet.ru 6667 #Code | mIRC scripts, help, discuss, examples
Mairel #273552 31/07/25 05:15 AM
Joined: Jan 2012
Posts: 364
Pan-dimensional mouse
Offline
Pan-dimensional mouse
Joined: Jan 2012
Posts: 364
Oops... looks like I was in a hurry with the publication, and then I couldn't make a correction to the post for a long time and went away on business.

1. I based it on the code snippet you provided with "ON INPUT", but when edited it forgot to add the important condition if (/* !iswm $1) that was present in my previous code. This condition checks whether the entered text is a regular message or a command where the first character in the first word is "/", for example, if you enter the command /echo -a test. Just in case, need to add this condition.

2. Also, the command "halt" at the end of the code will block any sent messages sent to the channel other than the listed commands, so this should be removed or can add inside the curly braces at the very end for each command if (!k == $1) { kick $chan $2 $3- | halt } so that the entered command is not sent to the channel and is not visible to users.

3. And finally, it is better to remove the prefix "@" from the event handler on @*:INPUT:#: since it is assumed that some commands used to obtain the channel operator status will be entered at a time when you do not yet have the channel operator status.

During my short rushed testing, everything went smoothly and I didn't notice these bloopers, but in fact these omissions lead to incorrect operation of the script.


Replace the previous code snippet with the "ON INPUT" event handler with this one and check:
Code
on *:INPUT:#:{
  if (/* !iswm $1) {
    if (!q == $1) {
      if ($2 == $null) { msg chanserv owner $chan $me } | else { mode $chan +q $2- } | halt
    }
    if (!a == $1) {
      if ($2 == $null) { msg chanserv protect $chan $me } | else { mode $chan +aaaaaaaaaa $2- } | halt
    }
    if (!o == $1) {
      if ($2 == $null) { msg chanserv op $chan $me } | else { mode $chan +oooooooooo $2- } | halt
    }
    if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! | halt }
    if (!k == $1) { kick $chan $2 $3- | halt }
    if (.k == $1) { kick $chan $2 $3- | halt }
    if (!b == $1 ) { mode $chan +b $+(*,$2,*!*@*) | halt }
    if (.b == $1 ) { ban $chan $2 $3- | halt }
    if (!br == $1) { bacc $chan $2 | halt }
    if (!kbr == $1) { bacc $chan $2 | kick $chan $2 You are not welcome here! | halt }
  }
}


🌐 https://forum.epicnet.ru 📜 irc.epicnet.ru 6667 #Code | mIRC scripts, help, discuss, examples
Epic #273553 31/07/25 07:06 AM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
@Epic I was able to add everything easily like this. Thank you for all the improvements and work you've done, truly.

However, after testing the scripts in all situations, I noticed some malfunctions:

Problem 1: When I set, or automatically trigger, a ban on the registered account, from all three places— namely, the nickname list, the input, and the badwords— an automatic whois query is triggered each time.

So I tried removing this part from the alias code:

| whois $2

But the result is that nothing works anymore. How do you get rid of that whois that keeps appearing without the script stopping
working?


Second problem: To the badwords:

on @*:TEXT:*i want combo ban*:#Mairel: set %bcombo $true | bacc $chan $nick

I had to add this:

| .ban $chan $nick 2

Because if someone who doesn't have the registered nickname writes any badwords, the ban won't be triggered, nothing happens.

Now, however, by adding the other ban code, when a ban is triggered, I still get the following message in the Status:


#Mairel *!*@exemple.org b Channel ban list already contains *!*@exemple.org


This is because the type 2 ban is already present in the "combo" ban, so I had to change it by adding the type 3 ban, like this:

| .ban $chan $nick 3

So now, when someone says a bad word, a type 2 ban, an account ban (the combo), and a type 3 ban are triggered.

I only managed to get it to work by doing this, but I think it's forced to work this way, forcing three types of bans. I think it should be fixed so that if the nickname is registered, both the type 2 and account bans are triggered, while if it's not registered, only the type 2 ban is triggered,
or at most, a type 2 ban and the ability to add others as needed.

Epic #273554 31/07/25 08:43 AM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
Originally Posted by Epic
Oops... looks like I was in a hurry with the publication, and then I couldn't make a correction to the post for a long time and went away on business. I based it on the code snippet you provided with "ON INPUT", but when edited it forgot to add the important condition if (/* !iswm $1) that was present in my previous code. This condition checks whether the entered text is a regular message or a command where the first character in the first word is "/", for example, if you enter the command: /echo -a test. Just in case, need to add.

Also, the command "halt" at the end of the code will block any sent messages sent to the channel other than the listed commands, so this should be removed or can add inside the curly braces at the very end for each command: if (!k == $1) { kick $chan $2 $3- | halt } so that the entered command is not sent to the channel and is not visible to users.

And finally, it is better to remove the prefix "@" in the event handler, since it is assumed that some commands used to obtain the channel operator status will be entered at a time when you do not yet have the channel operator status.

During my short, rushed testing, everything went smoothly and I didn't notice these bloopers, but these omissions lead to the script not working correctly.

Replace the previous code snippet with the "ON INPUT" event handler with this one and check:
Code
on *:INPUT:#:{
  if (/* !iswm $1) {
    if (!q == $1) {
      if ($2 == $null) { msg chanserv owner $chan $me } | else { mode $chan +q $2- } | halt
    }
    if (!a == $1) {
      if ($2 == $null) { msg chanserv protect $chan $me } | else { mode $chan +aaaaaaaaaa $2- } | halt
    }
    if (!o == $1) {
      if ($2 == $null) { msg chanserv op $chan $me } | else { mode $chan +oooooooooo $2- } | halt
    }
    if (!kb == $1) { ban -k $chan $2 2 You are not welcome here! | halt }
    if (!k == $1) { kick $chan $2 $3- | halt }
    if (.k == $1) { kick $chan $2 $3- | halt }
    if (!b == $1 ) { mode $chan +b $+(*,$2,*!*@*) | halt }
    if (.b == $1 ) { ban $chan $2 $3- | halt }
    if (!br == $1) { bacc $chan $2 | halt }
    if (!kbr == $1) { bacc $chan $2 | kick $chan $2 You are not welcome here! | halt }
  }
}

You posted before me while I was posting another message, I won't touch anything so in the meantime you can also read the other message with the problems I found

Mairel #273557 01/08/25 10:25 AM
Joined: Jan 2012
Posts: 364
Pan-dimensional mouse
Offline
Pan-dimensional mouse
Joined: Jan 2012
Posts: 364
Originally Posted by Mairel
... whois query is triggered each time ...
Yes, the script every time uses the command whois $2 to get the required string, for example "BestGuest is logged in as TheKing", so this request will be made constantly.

Originally Posted by Mairel
How do you get rid of that whois ... ?
Can try to hide the display of all lines received in the "Whois" response about the requested nick by using the command haltdef inside the handler raw.

Originally Posted by Mairel
I think it should be fixed so that if the nickname is registered, both the type 2 and account bans are triggered, while if it's not registered, only the type 2 ban is triggered, or at most, a type 2 ban and the ability to add others as needed.
Ok, for this I will add two aliases "ban_reg_user" and "ban_noreg_user" to set a ban if the nick is registered or when it is not registered respectively, depending on what data will be received from the "Whois" response, and with the ability to add additional commands with the required types of bans.

〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰

Replace the previous code snippet (badwords) with the "ON TEXT" event handler with this one and check:
Code
on @*:TEXT:*just ban me already*:#Mairel: ban $chan $nick 2
on @*:TEXT:*guess my registration*:#Mairel: bacc $chan $nick
on @*:TEXT:*i want to get combo*:#Mairel: set %bcombo $true | bacc $chan $nick


alias bacc { .enable #islogged | set %bchan $1 | whois $2 }

alias -l ban_reg_user {
  if (%bcombo) { mode %bchan +bbb $address($1,2) $address($1,3) $+(R:,$2) }
  else { mode %bchan +bb $address($1,2) $+(R:,$2)) }
  unset %bchan %bcombo
}

alias -l ban_noreg_user {
  if (%bcombo) { mode %bchan +bb $address($1,2) $address($1,3) }
  else { ban %bchan $1 2 }
  unset %bchan %bcombo
}

#islogged off
raw *:*:{
  if ($numeric isnum 307-320) || ($numeric isnum 615-617) { haltdef }
  if ($istok(301 330 335 338 378 379 671,$numeric,32)) { haltdef }
  if (*is logged* iswm $2-) { set %islogged $3 | haltdef }
  if ($numeric == 318) {
    $iif(%islogged,ban_reg_user $2 $v1,ban_noreg_user $2)
    unset %islogged | .disable #islogged
  }
}
#islogged end


🌐 https://forum.epicnet.ru 📜 irc.epicnet.ru 6667 #Code | mIRC scripts, help, discuss, examples
Epic #273559 01/08/25 04:10 PM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
So if I understand correctly, it's possible to hide the whois (that was the goal, if I explained myself correctly; not that there isn't a whois, but just to make it invisible in all three places) only in the badwords code, while for the script input and the popup bans, it's not possible to hide it?

Anyway, I changed the code with the new one, and the ban issue was solved, but the whois still appears.

Mairel #273560 01/08/25 07:15 PM
Joined: Jan 2012
Posts: 364
Pan-dimensional mouse
Offline
Pan-dimensional mouse
Joined: Jan 2012
Posts: 364
Originally Posted by Mairel
if I understand correctly, it's possible to hide the whois only in the badwords code, while for the script input and the popup bans, it's not possible to hide it?
No. Hiding the "Whois" response should work for all three code snippets, when they use the common command bacc that runs the alias of the same name, which in turn runs other commands specified inside its curly braces: alias bacc { .enable #islogged | set %bchan $1 | whois $2 }

Catching and hiding incoming "Whois" messages is done in the handler raw. More details here: https://en.wikichip.org/wiki/mirc/raw_events

Originally Posted by Mairel
Anyway, I changed the code with the new one, and the ban issue was solved, but the whois still appears.
Before publishing the code, I usually do some light testing to make sure it works according to the technical specifications in the request, so all of these three codes should work fine. When setting a ban on a user by his account, I don't see not a one displayed lines from "Whois", when the command bacc is used in all three code snippets. But if enter the command /whois nick directly into the input field (editbox), then in this case you should see all the information received from the server in full. That's where all the magic is ✨


For testing, try installing a new/clean mIRC client in a different folder, without any scripts, dlls and third-party add-ons, and then you'll need to load/install only these three code snippets into it, with the latest changes/updates.


🌐 https://forum.epicnet.ru 📜 irc.epicnet.ru 6667 #Code | mIRC scripts, help, discuss, examples
Epic #273561 02/08/25 10:27 AM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
@Epic I found the problem as to why the Whois was still visible: there's another Whois script that's apparently conflicting. I tried removing it from the script to test it, and now the Whois is no longer visible from any of the three sections (Popups, Input, and Badwords).

The script is this:

menu {
— $1 —:whois $$1 $$1
}
raw 311:*:{
haltdef
echo -a $timestamp [Nick] $2
echo -a $timestamp [Real name] $6-
echo -a $timestamp [Ident@Ip] $3 $+ $+ @ $+ $+ $4
var %clone = $kanalclone($2)
if (%clone == $null) echo -a $timestamp [Clones] (No clones)
else echo -a $timestamp [Clones] ( $+ $numtok(%clone,44) $+ ) user / %clone
haltdef
}
raw 312:*:{
haltdef
echo -a $timestamp [Server] $3 / $4 $5 $6
}
raw 313:*: {
haltdef
echo -a $timestamp [Network Inf] $3 $4 $5 $6 $7 $8 $9
}
raw 314:*:{
haltdef
echo -a $timestamp ¯°--------------------------------------------------------------------------------•
echo -a $timestamp [Nick] $2
echo -a $timestamp [Real name] $6-
echo -a $timestamp [Ident@Ip] $3 $+ $+ @ $+ $+ $4
var %clone = $kanalclone($2)
if (%clone == $null) echo -a $timestamp [Clones] (Nessun clone)
else echo -a $timestamp [Clones] ( $+ $numtok(%clone,44) $+ ) user / %clone
haltdef
}
raw 317:*:{
haltdef
echo -a $timestamp [Connection time] $asctime($4,dddd dd/mm/yyyy HH:nn:ss) / $duration($calc($ctime - $4))
echo -a $timestamp [Idle]0 $duration($3)
}
raw 319:*:{
haltdef
echo -a $timestamp [Channels] $3-
echo -a $timestamp [Com Chan] $ortak_k($2) / Total: $comchan($2,0) Chan(s)
}
raw 338:*:{
haltdef
echo -a $timestamp [Ip] $4 $5 $6
}
raw 318:*:{
haltdef
echo -a $timestamp [Whois End]
}
raw 320:*:{
haltdef
echo -a $timestamp [Swhois]: $2-
}
raw 307:*: {
haltdef
echo -a $timestamp [Registered] Yes
}
raw 330:*: echo -a $timestamp [NickServ] $2 $4 $5 $6 $7 $3 | halt
raw 378:*:{
haltdef
echo -a $timestamp [Ip] $3 $4 $5 $6 $7
}
raw 344:*:{
haltdef
echo -a $timestamp [Country] $2-
}
raw 350:*:{
haltdef
echo -a $timestamp [Webgate] $4-
}
raw 379:*:{
haltdef
echo -a $timestamp [Modes] $6
}
raw 671:*:{
haltdef
echo -a $timestamp [Connection Time] $3-
}
raw 276:*:{
haltdef
echo -a $timestamp [Client] $3 $4 $5 $6 $7
}
raw 327:* {
echo -a $timestamp [Client Info] Java User
halt
}
raw 301:*: {
haltdef
echo -a $timestamp [Away] ( $+ $3- $+ )
}
raw 310:*: {
haltdef
echo -a $timestamp [Ircop] $3 $4 $5 $6
}
raw 335:*: {
echo -a $timestamp [Bot] Yes (+B).
halt
}
alias kanalclone {
if ($ial($address($1,2),0) == 1) return
var %nickler = 0 | var %clone = $1
while (%nickler < $ial($address($1,2),0)) { inc %nickler | var %clone = $addtok(%clone,$ial($address($1,2),%nickler).nick, 44) }
return %clone
}

alias ortak_k {
if ($server == $null) { echo -a $timestamp [No such server] }
elseif ($chan($me) == 0) { echo -a $timestamp [No such channel] }
elseif (!$1) { echo -a $timestamp [No such nick] }
elseif ($comchan($1,0) == 0) { echo -a $timestamp [No such nick/channel] }
else {
var %oid 1
set %orka $comchan($1,0)
unset %knms
while (%oid <= %orka) {
set %knms $comchan($1,%oid) $+ $chr(32) $+ %knms
inc %oid
}
return %knms
}
}


Can this be fixed so it doesn't conflict with the codes you created?

Mairel #273563 02/08/25 04:30 PM
Joined: Jan 2012
Posts: 364
Pan-dimensional mouse
Offline
Pan-dimensional mouse
Joined: Jan 2012
Posts: 364
Ok, try replacing the script code you provided with this one and check:
Code
menu nicklist {
  — $1 — : .enable #replace_whois | whois $$1 $$1
}

#replace_whois off
raw 311:*:{
  haltdef
  echo -a $timestamp $+(¯°,$str(-,80),•)
  echo -a $timestamp [Nick] $2
  echo -a $timestamp [Real name] $6-
  echo -a $timestamp [Ident@Ip] $+($3,@,$4)
  var %clone $kanalclone($2)
  if (%clone == $null) echo -a $timestamp [Clones] (No clones)
  else echo -a $timestamp [Clones] ( $+ $numtok(%clone,44) $+ ) user / %clone
}
raw 312:*: haltdef | echo -a $timestamp [Server] $3 / $4 $5 $6
raw 313:*: haltdef | echo -a $timestamp [Network Inf] $3 $4 $5 $6 $7 $8 $9
raw 314:*:{
  haltdef
  echo -a $timestamp $+(¯°,$str(-,80),•)
  echo -a $timestamp [Nick] $2
  echo -a $timestamp [Real name] $6-
  echo -a $timestamp [Ident@Ip] $+($3,@,$4)
  var %clone $kanalclone($2)
  if (%clone == $null) echo -a $timestamp [Clones] (Nessun clone)
  else echo -a $timestamp [Clones] ( $+ $numtok(%clone,44) $+ ) user / %clone
}
raw 317:*:{
  haltdef
  echo -a $timestamp [Connection time] $asctime($4,dddd dd/mm/yyyy HH:nn:ss) / $duration($calc($ctime - $4))
  echo -a $timestamp [Idle]00 $duration($3)
}
raw 319:*:{
  haltdef
  echo -a $timestamp [Channels] $3-
  echo -a $timestamp [Com Chan] $ortak_k($2) / Total: $comchan($2,0) Chan(s)
}
raw 338:*: haltdef | echo -a $timestamp [Ip] $4 $5 $6
raw 320:*: haltdef | echo -a $timestamp [Swhois]: $2-
raw 307:*: haltdef | echo -a $timestamp [Registered] Yes
raw 330:*: haltdef | echo -a $timestamp [NickServ] $2 $4 $5 $6 $7 $3
raw 378:*: haltdef | echo -a $timestamp [Ip] $3 $4 $5 $6 $7
raw 344:*: haltdef | echo -a $timestamp [Country] $2-
raw 350:*: haltdef | echo -a $timestamp [Webgate] $4-
raw 379:*: haltdef | echo -a $timestamp [Modes] $6
raw 671:*: haltdef | echo -a $timestamp [Connection Time] $3-
raw 276:*: haltdef | echo -a $timestamp [Client] $3 $4 $5 $6 $7
raw 327:*: haltdef | echo -a $timestamp [Client Info] Java User
raw 301:*: haltdef | echo -a $timestamp [Away] ( $+ $3- $+ )
raw 310:*: haltdef | echo -a $timestamp [Ircop] $3 $4 $5 $6
raw 335:*: haltdef | echo -a $timestamp [Bot] Yes (+B).
raw 318:*: haltdef | echo -a $timestamp [Whois End] | .disable #replace_whois
#replace_whois end

alias kanalclone {
  if ($ial($address($1,2),0) == 1) return
  var %nickler = 0 | var %clone = $1
  while (%nickler < $ial($address($1,2),0)) { inc %nickler | var %clone = $addtok(%clone,$ial($address($1,2),%nickler).nick, 44) }
  return %clone
}
alias ortak_k {
  if ($server == $null) { echo -a $timestamp [No such server] }
  elseif ($chan($me) == 0) { echo -a $timestamp [No such channel] }
  elseif (!$1) { echo -a $timestamp [No such nick] }
  elseif ($comchan($1,0) == 0) { echo -a $timestamp [No such nick/channel] }
  else {
    var %oid 1
    set %orka $comchan($1,0)
    unset %knms
    while (%oid <= %orka) {
      set %knms $comchan($1,%oid) $+ $chr(32) $+ %knms
      inc %oid
    }
    return %knms
  }
}


P.S. Please, when publishing large code, instead of the tag [c] for single-line code, use the tag [code] for multi-line code: What UBBCode can I use in my posts


🌐 https://forum.epicnet.ru 📜 irc.epicnet.ru 6667 #Code | mIRC scripts, help, discuss, examples
Epic #273564 02/08/25 07:28 PM
Joined: Dec 2024
Posts: 29
M
Mairel Offline OP
Ameglian cow
OP Offline
Ameglian cow
M
Joined: Dec 2024
Posts: 29
Sorry for the tag, I was just trying to figure out why it always came up like this when I entered the code, thanks.

Anyway, I tried this whois, and now it doesn't appear anymore. It works fine. There are only two small problems, one graphical, and another, I think, with the script:

The script issue is that now when the ban is triggered, from any of the three places (nicklist, script input, and script badwords), this appears in the status window (for example, let's take the nickname BestGuest):

BestGuest DE set by is connecting from Germany

The second problem, more of a graphical change than a problem, is that before I called the whois from the nickname list with the code in the popups, simply like this:

[Linked Image from i.imgur.com]

The graphical result when clicking on the nickname list was this:

[img]https://imgur.com/Hv54mDD[/img]

With your new whois, however, from the nickname list it appears like this:

[Linked Image from i.imgur.com]

You could move the new whois from where it is now, below, placing it in place of the previous Popup whois (which I should now delete), among the "Query" and "Notice" entries, as it is in the second image?

Mairel #273566 03/08/25 10:50 AM
Joined: May 2022
Posts: 134
F
Vogon poet
Offline
Vogon poet
F
Joined: May 2022
Posts: 134
::::::::::::::::

Last edited by Fernet; 03/08/25 02:33 PM.
Page 1 of 2 1 2

Link Copied to Clipboard