Tag Archives: script

Autoaway script for mIRC

The away flag is a very useful one, lets you be “justified” if you don’t answer someone’s query, or even lurk in incognito, so the pesters you don’t want to chat with, think you are not at the computer. In the first case, it often happens that you simply leave the PC connected, being AFK, but forget to activate the away. A simple script can check for how long you’ve been “idle” with mIRC (the idle time in mIRC represents the time from the last stroke on the Enter key, no matter if it’s been used to send a line to a channel or a chat window, or just to identify to NickServ, or something else).

You need to set both an alias and a script (this will work fine enough if you just installed a clean mIRC, or anyway if you’re not using other scripts).

You can use this addon to load the script without adding the lines yourself. All the instructions are in the TXT file, follow them. I suggest you to continue reading anyway, so you can have more details about the script.

Here’s what you need to add in the Aliases Panel (accessible pressing the button):

/CheckAway {
  //if (($idle > 300) && ($away == $false)) //away 8,2 I am away after 5 idle minutes
  //if (($idle < 300) && ($away == $true)) /away
}

Customize this alias by changing the idle time with the one you prefer (I setted it to turn on the away flag after 5 minutes – 300 seconds; just put your preferred idle time, in seconds, instead of the two “300” you find there), and putting a message you like instead of “I am away after 5 idle minutes” (the “8,2” is used to set the colour of the message. If you don’t know how to use colour codes in mIRC, leave it as it is, or remove it if you don’t like the colours I use .

Here’s instead what you need to add in the Remote Panel (accessible pressing the button):

on *:CONNECT:/timerChkAway 0 10 /CheckAway

If you followed the instructions in the other pages of this section, and already added an on CONNECT line, add the “/timerChkAway 0 10 /CheckAway” line as well to the routine. If you instead want to add the other scripts in these pages, then do the same, by using something like:

on *: CONNECT:{
  line1
  line2
  line3
  ...
  ...
}

and putting the proper commands where you find “line1” “line2” and so on.

Now, using this script togheter with the AutoAnswerer script you can find in this section, you will have a complete set of away scripts.

DALnet Auto Identify and Auto Op mIRC script

You may think all it’s needed to shut up NickServ when you login on DALnet is putting a /nickserv identify password or /msg nickserv@services.dal.net identify command in the [File > Options > Perform] panel of mIRC… well… actually, it would. As in a perfect world there would be no wars nor poverty nor starvation, but NickServ isn’t perfect (ChanServ isn’t as well, that’s why we are going to speak about him as well, later), so you need to prevent all those situations which may determine NickServ to forget you identified some time bfore, and kicking you to a shameful status of Guest*****.

We’ll explain here how to get rid of these unpleasant situations with a script, not too long, not too short, not perfetc as well, but there is room for betterings.

You can use this addon to load the script instead of writing the lines yourself. Faster, easier, no conflicts with other scripts. Instructions are included in the TXT file, follow them. If you want to edit the script yourself, or just know how it works, continue reading (suggested).

(Note) The script has been lately updated to be more reliable in avoiding the flood of services. In some cases it c0uld, especially if you registered 4 nicks or more, lead to many repeated identification requests, up to making the services upset. Once I even got banned by an IRCop, so I finally decided to put my hands on the old code.
The comments to these upgrades aren’t in the paragraphs below, but what they do is adding another procedure to request both the identification and the ops instead of doing it directly. This procedure checks on a flag (one variable allocated for each nick and each channel), and if the flag is unsetted it requests either the identification or the ops, then sets the flag, which avoid successive repeated requests to be accepted. The flag is unsetted after 60 seconds, making it possible to request identification or ops again.

The messages you see NickServ sends you when you join, telling you "This nick is owned by someone else…" "If this is your nick…" "Password accepted for…" are called "notices". You’ll set a listener for notices coming from NickServ and containing specified patterns of text, so to act depending on what NickServ wants from you.

Enuf talking, let’s come to action:

on *:CONNECT:{
  /dcc packetsize = 4096
  /pdcc 2147483647
  /fsend on
  /joinall
}


on 1:START:/timerIdent 0 40 /ident

on *:NOTICE:*:*:{
  if (($pos($strip($1-),Password accepted for,1) != $null) && ($nick == NickServ)) {
    //if $pos($strip($1-),YourMainNick,1) != $null) {
      /timer 1 20 /autoop 
      /nick YourMainNick
    }
    goto bother
  }
  if (($pos($strip($1-),This nick is owned by someone else. Please choose another.,1) != $null) && ($nick == NickServ)) /id
  if (($pos($strip($1-),Your nick has been changed to Guest,1) != $null) && ($nick == NickServ)) {
    /id
    /nick YourNick^_^
  }
  if ((($pos($strip($1-),You do not have access to op people on #YourChannel.,1) != $null) || ($pos($strip($1-),#YourChannel is operated by ChanServ,1) != $null)) && ($nick == ChanServ) && ($me !isop #YourChannel)) /id
  :bother
}

where /joinall /autoop /ident
and /id are aliases defined as:

/joinall {
  /join #channelone
  /join #channeltwo
  /join #channelthree
  ...
}

/autoop {
  /timer 1 0 //chanserv op #ChannelOne $me
  /timer 1 5 //chanserv op #ChannelTwo $me
  /timer 1 10 //chanserv op #ChannelThree $me
  ...
}


/ident {
  //if (($me == YourNick^_^) || ($me == YourAltNick) || (Guest isin $me)) /nick YourNick

}

/id {
  //if ($me != YourNick) /timer 1 0 /nickserv ghost YourNick yourpassword
  /timer 1 5 /nickserv identify YourNick password
  /timer 1 10 /nickserv identify NickTwo password
  ...
}

Those lines must be added to the Remote and Aliases panels in mIRC (the on CONNECT, on START and on NOTICE must go in the Remote Panel, the /joinall /autoop /ident and /id must go in the Aliases Panel), accessible pressing the buttons and . Check those panels for other occurences of the routines. If you find there’s already an on CONNECT and/or on START and/or on NOTICE in the Remote Panel, you may have installed a script like Polaris, i², Siralop, Invision, or another script (in this case, if you don’t know what that part of the script does, better not to mess, simply stop reading this page and wait to be more acquanted with scripting), so you need to modify/extend the routines adding the lines; if you instead did those scripts yourself, you should know how to modify them properly. In the same way, if there are already aliases named joinall autoop and id in the Aliases Panel, follow the same directives (don’t touch anything if you don’t know what it is, or modify the aliases as you need).

 

Obviously you need to change YourNick, YourChannel, yourpassword with the real ones. "YourMainNick", if you own more than one nick, is the nick, you are operator with, in your channels; if you own only one nick, simply put that one. "YourNick^_^" is your actual nick with a "^_^" after it (supposing it is not registered), so to make you have a real nick while you wait for nickserv to confirm your identification; "YourAltNick" is the nick you wrote as "Alternative" in the mIRC [File > Options > Connect] panel.

The "…" must not be included, but you can add or remove other similar lines in case you are op in more channels or own more nicks. The delayed commands (/timer 1 …) are needed to avoid to flood services which may ignore you if you issue too many requests all togheter (just keep adding the right amount of seconds for each line you add).

In the main script, where you see the lines "You do not have access to op people on #YourChannel." and "#YourChannel is operated by ChanServ" you should write the name of the channel, you are op in, that you join last.

The additional commands on the on CONNECT script should accelerate DCC sends, I suggest you to leave them there.

 

You didn’t get the hidden meaning? Ok, let’s explain what this script does. It waits for NickServ to ask you to identify, then sends the identify command(s); when you are identified, it asks chanserv to op you in the channels you are operator in, and repeats asking this until chanserv does op you. Whenever nickserv or chanserv forget you are identified and operator, it re-issues the identify and op commands, and in the dreaded case nickserv is badly lagged, and you get renamed to Guest, it gives you another temporary nick, until the identification is done. In the case you get disconnected by peer, and you reconnect while you ghost is still "online", it waits for nickserv to confirm the identification, and if your current nick is different from your usual one (that is, the ghost is already using it, and you are named after your alternative nick), it issues a kill ghost command.