-
Posts
5998 -
Joined
-
Last visited
-
Days Won
17
Content Type
Profiles
Forums
Downloads
Gallery
Events
Articles
Everything posted by chain
-
-
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: Added per server options for SSL certificate, logon settings, and server encoding. Added support for numeric 005 UTF8ONLY token. Added support for IRCv3 echo-message. Added support for IRCv3 005 numeric BOT=b mode token. Added support for various WATCH list numerics for the notify list. Changed CAP request on connect to speed up server logon. Changed servers list in connect dialog to group named servers together. Changed channels favorites location to channels.ini file to allow easier updates. Changed use of Windows media library to play sounds more smoothly. Fixed Aero theme colors under Windows 11. Fixed nested while loops continue bug. Fixed options dialog not freeing memory when closed. Updated OpenSSL library to v1.1.1q. Updated CA root certificates cacert.pem file. 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 mIRC As 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!
-
;;;;;;;;;;;;;;;;;; ;; Port Checker ;; ;; By Jonesy44 ;; ;;;;;;;;;;;;;;;;;; alias pc { set %pc.addr $$input(Enter the Address/IP and port of the server you want to check (IP:Port),eq,Port Check - Input Information) if ($sock(pc)) { .sockclose pc } if (%pc.addr) { echo -a 2Port Check; -------------------------------------------------------------------------------------- echo -a 2Port Check; Checking address $qt($iif(: isin %pc.addr,%pc.addr,%pc.addr $+ : $+ 80)) Please wait.. .sockopen pc $iif(: isin %pc.addr,$replace(%pc.addr,$chr(58),$chr(32)),%pc.addr 80) set %pc.timeout 5 .timerpc1 0 1 pc.timeout } } alias pc.timeout { if (%pc.timeout <= 0) { echo -a 4Port Check: Could not connect to $qt($iif(: isin %pc.addr,%pc.addr,%pc.addr $+ : $+ 80)) echo -a 2Port Check; -------------------------------------------------------------------------------------- .sockclose pc .timerpc1 off unset %pc.addr } else { dec %pc.timeout } } on *:SOCKOPEN:pc: { if ($sockerr) { echo -a 4Port Check: Could not connect to $qt($iif(: isin %pc.addr,%pc.addr,%pc.addr $+ : $+ 80)) } else { echo -a 3Port Check: Connected succesfully to $qt($iif(: isin %pc.addr,%pc.addr,%pc.addr $+ : $+ 80)) } echo -a 2Port Check; -------------------------------------------------------------------------------------- unset %pc.addr .sockclose pc .timerpc1 off }
-
alias calc { echo -a 12Calculation: $calc($1-) } ;;;;; ################# SHOW UPTIME --------------------------------------------------------------------------------------- menu channel,nicklist { System Uptime://echo -a 12Uptime:7 $uptime(system,1) | .timerUPTIME 0 3 /uptdate } alias uptdate { titlebar UP: $uptime(system,1) } ;;;;; ################# GET NICK BACK ---------------k-------------------------------------------- on *:UNOTIFY:{ if ($nick == Eneerge) { /nick Eneerge } } alias bw { if ($1 == $NULL) { echo -a No Input! | haltdef } if ($me ison $1) { if ($2 == $NULL) { echo -a No Input! | haltdef } else { var %currentword_index = $numtok($2-,32) var %inv_word = $NULL while (%currentword_index > 0) { var %currentword = $gettok($2-,%currentword_index,32) var %inv_word while ($len(%currentword) > 0) { var %inv_word = %inv_word $+ $right(%currentword,1) var %currentword = $left(%currentword,-1) } var %inv_msg = %inv_msg $+ $chr(32) $+ %inv_word dec %currentword_index } /msg $1 %inv_msg } } else { var %currentword_index = $numtok($1-,32) var %inv_word = $NULL while (%currentword_index > 0) { var %currentword = $gettok($1-,%currentword_index,32) var %inv_word while ($len(%currentword) > 0) { var %inv_word = %inv_word $+ $right(%currentword,1) var %currentword = $left(%currentword,-1) } var %inv_msg = %inv_msg $+ $chr(32) $+ %inv_word dec %currentword_index } /msg $chan %inv_msg } } ;;;;; ################# Safe Rejoin After Kick ----------------------------------------------------------- on *:KICK:#:{ if ($knick == $me) { .timer 1 5 hop # } } ;;;;; ################# CHECK FOR UN-USED SERVERS --------------------------------------------------------------------- alias check { var %disconnect = $?!="Would you like to disconnect and close the window? ( $+ $server $+ )" if (%disconnect = $true) { /scid $cid window -c "Status Window" } } on me:*:PART:#:{ if ($chan(0) <= 1) { .timerCHECK 1 1 check } } ;;;; ################# HEX URL CONVERSION -------------------------------------------------------------------------------- on 1:DNS:{ var %n = $dns(0) echo -a -=4 Found %n addresses - $dns(%n).nick while (%n > 0) { var %quad1 = $gettok($dns(%n).ip,1,46) var %hex1 = $base(%quad1,10,16) var %quad2 = $gettok($dns(%n).ip,2,46) var %hex2 = $base(%quad2,10,16) var %quad3 = $gettok($dns(%n).ip,3,46) var %hex3 = $base(%quad3,10,16) var %quad4 = $gettok($dns(%n).ip,4,46) var %hex4 = $base(%quad4,10,16) echo -a ADDRESS: $dns(%n).addr $+ ( $+ $dns(%n).ip $+ ) / 12http:// $+ $longip($dns(%n).ip) / 12 $+(http://0x,%hex1,%hex2,%hex3,%hex4) dec %n } halt } ;;;; ################ BETTER URL PARSING ;; E-mail parsing on ^1:HOTLINK:*@*:*: { if (($right($1,4) != .net) || ($right($1,4) != .com) || ($right($1,4) != .org)) { halt } else { return } } ;; URLs on ^1:HOTLINK:*http*:*:{ if (:// isin $1) return | else { halt } } on ^1:HOTLINK:*.net*:*:{ return } on ^1:HOTLINK:*.com*:*:{ return } on ^1:HOTLINK:*.org*:*:{ return } on ^1:HOTLINK:*.ru*:*:{ return } on ^1:HOTLINK:*.nl*:*:{ return } on ^1:HOTLINK:*.biz*:*:{ return } on 1:HOTLINK:*:*:{ var %url = $1 var %chr = 5 while (%chr < 256) { if ($chr(%chr) isincs %url) { set %url $remove(%url,$chr(%chr)) } inc %chr if (%chr == 35) { var %chr = 36 } elseif (%chr == 37) { var %chr = 39 } elseif (%chr == 43) { var %chr = 59 } elseif (%chr == 61) { var %chr = 62 } elseif (%chr == 63) { var %chr = 64 } elseif (%chr == 65) { var %chr = 91 } elseif (%chr == 95) { var %chr = 96 } elseif (%chr == 97) { var %chr = 123 } elseif (%chr == 126) { var %chr = 127 } } if (@ isin $1) { run mailto: $+ %url | halt } if ((http:// !isin %url) && (https:// !isin %url)) { var %url $puttok(%url,http:// $+ %url,1,32) } .url %url } ;;;; ################# TEXT MANIPULATION -------------------------------------------------------------------------------- ;;;; # For channel message on ^1:TEXT:**:#:{ var %template [ $+ [ $nick ] ] < $+ $nick $+ 7> $1- ; ADD VOICE/OP STATUS TO USER ### ; --------------------------- if ($nick isop $chan) { var %template [ $+ [ $nick ] ] $puttok(%template [ $+ [ $nick ] ],<14@ $+ $nick $+ 7>, 1,32) } elseif ($nick isvoice $chan) { var %template [ $+ [ $nick ] ] $puttok(%template [ $+ [ $nick ] ],<14+ $+ $nick $+ 7>, 1,32) } ; HIGHLIGHT MY CURRENT NICKNAME ### ; ----------------------------- var %color 8,2 var %template [ $+ [ $nick ] ] $replace(%template [ $+ [ $nick ] ],$me,%color $+ $me $+ ) ; HIGHLIGHT URLS ### ; -------------- var %totalURLS $matchtok(%template [ $+ [ $nick ] ],http://,0,32) var %totalURLS $calc(%totalURLS + $matchtok(%template [ $+ [ $nick ] ],www.,0,32)) var %totalURLS $calc(%totalURLS - $matchtok(%template [ $+ [ $nick ] ],http://www.,0,32)) var %color 12,0 while (%totalURLS > 0) { var %template [ $+ [ $nick ] ] $replace(%template [ $+ [ $nick ] ],$matchtok(%template [ $+ [ $nick ] ],http://,%totalURLS,32),%color $+ $matchtok(%template [ $+ [ $nick ] ],http://,%totalURLS,32) $+ ) var %template [ $+ [ $nick ] ] $replace(%template [ $+ [ $nick ] ],$matchtok(%template [ $+ [ $nick ] ],www.,%totalURLS,32),%color $+ $matchtok(%template [ $+ [ $nick ] ],www.,%totalURLS,32) $+ ) dec %totalURLS } ; DISPLAY DATA ### ; ------------ echo -i8 $chan %template [ $+ [ $nick ] ] halt } ;;; # FOR PRIVAGE MESSAGES on ^1:TEXT:*:?:{ var %color 8,2 var %template [ $+ [ $nick ] ] < $+ $nick $+ 7> $1- ; HIGHLIGHT MY CURRENT NICKNAME ### ; ----------------------------- var %color 8,2 var %template [ $+ [ $nick ] ] $replace(%template [ $+ [ $nick ] ],$me,%color $+ $me $+ ) ; HIGHLIGHT URLS ### ; -------------- var %totalURLS $matchtok(%template [ $+ [ $nick ] ],http://,0,32) var %totalURLS $calc(%totalURLS + $matchtok(%template [ $+ [ $nick ] ],www.,0,32)) var %totalURLS $calc(%totalURLS - $matchtok(%template [ $+ [ $nick ] ],http://www.,0,32)) var %color 12,0 while (%totalURLS > 0) { var %template [ $+ [ $nick ] ] $replace(%template [ $+ [ $nick ] ],$matchtok(%template [ $+ [ $nick ] ],http://,%totalURLS,32),%color $+ $matchtok(%template [ $+ [ $nick ] ],http://,%totalURLS,32) $+ ) var %template [ $+ [ $nick ] ] $replace(%template [ $+ [ $nick ] ],$matchtok(%template [ $+ [ $nick ] ],www.,%totalURLS,32),%color $+ $matchtok(%template [ $+ [ $nick ] ],www.,%totalURLS,32) $+ ) dec %totalURLS } ; DISPLAY DATA ### ; ------------ echo -i3 $nick %template [ $+ [ $nick ] ] ; SET FOCUS TO WINDOW FOR EASY VIEWING ### ; ------------------------------------ if ($active != $nick) { echo -a 7*** 12INCOMING MESSAGE from $nick window -a $nick } halt } on 1:INPUT:#:{ if (($left($1,1) != /) || ($ctrlenter == $true)) { inc %num if ($me isop $chan) { var %mymode @ } elseif ($me isvoice $chan) { var %mymode + } var %template [ $+ [ %num ] ] 14 $+ %mymode $+ 8 $+ $me $+ 7> if ($len($1-) > 399) { .msg $active $1-$399 | editbox -a $right($1-,-399) } else { .msg $active $1- } echo -i8 $chan < $+ %template [ $+ [ %num ] ] $left($1-,399) dec %num halt } if (($1 == /me) || ($1 == /describe)) { if ($2 == $Null) { Echo -a *** 7Invalid input | halt } .describe $chan $2- inc %num var %template [ $+ [ %num ] ] 7 $+ $me $2- if ($me isop $chan) { echo -i8 $chan * 14@7 $+ %template [ $+ [ %num ] ] } else if ($me isvoice $chan) { echo -i8 $chan * 14+7 $+ %template [ $+ [ %num ] ] } else { echo -i8 $chan *7 %template [ $+ [ %num ] ] } dec %num halt } } on 1:INPUT:?:{ if (($left($1,1) != /) || ($ctrlenter == $true)) { inc %num var %template [ $+ [ %num ] ] <12 $+ $me $+ 7> .msg $active $1- echo -i8 $active %template [ $+ [ %num ] ] $1- halt } if (($1 == /me) || ($1 == /describe)) { if ($2 == $Null) { Echo -a *** 7Invalid input | halt } .describe $active $2- inc %num var %template [ $+ [ %num ] ] * 6 $+ $me echo -i8 $active %template [ $+ [ %num ] ] $2- dec %num halt } } on ^1:ACTION:**:#:{ var %template [ $+ [ $nick ] ] $nick $1- if ($nick isop $chan) { echo -i8 $chan *14 @7 $+ %template [ $+ [ $nick ] ] } else if ($nick isvoice $chan) { echo -i8 $chan *14 +7 $+ %template [ $+ [ $nick ] ] } else { echo -i8 $chan *7 %template [ $+ [ $nick ] ] } halt } on ^1:ACTION:**:?:{ var %template [ $+ [ $nick ] ] $nick $1- echo -i8 $nick *7 %template [ $+ [ $nick ] ] halt } Implements features into mIRC like url highlighting, ip to hex, reverse chat, uptime, getnickback, close redundant connections, safe rejoin, and better text display. I recommend using with a black background.
-
;; ___________________________________________________________________________________________________________________________________________________________________________________ ;;/ \ ;;| _____ _____ _____ _____ _____ _____ _____ | ;;| /\ \ /\ \ /\ \ /\ \ /\ \ /\ \ /\ \ | ;;| /::\ \ /::\____\ /::\ \ /::\ \ /::\ \ /::\ \ /::\ \ | ;;| /::::\ \ /::::| | /::::\ \ /::::\ \ /::::\ \ /::::\ \ /::::\ \ | ;;| /::::::\ \ /:::::| | /::::::\ \ /::::::\ \ /::::::\ \ /::::::\ \ /::::::\ \ | ;;| /:::/\:::\ \ /::::::| | /:::/\:::\ \ /:::/\:::\ \ /:::/\:::\ uck\ /:::/\:::\ \ /:::/\:::\ \ | ;;| /:::/__\:::\ \ /:::/|::| | /:::/__\:::\ \ /:::/__\:::\ \ /:::/__\:::\ \ /:::/ \:::\ \ /:::/__\:::\ \ | ;;| /::::\ \:::\ \ /:::/ |::| | /::::\ \:::\ \ /::::\ \:::\ \ /::::\ \:::\ \ /:::/ \:::\ \ /::::\ \:::\ \ | ;;| /::::::\ \:::\ \ /:::/ |::| | _____ /::::::\ \:::\ \ /::::::\ \:::\ \ /::::::\ \:::\ \ /:::/ / \:::\ \ /::::::\ \:::\ \ | ;;| /:::/\:::\ \:::\ \ /:::/ |::| |/\ \ /:::/\:::\ \:::\ \ /:::/\:::\ \:::\ \ /:::/\:::\ \:::\____\ /:::/ / \:::\ ___\ /:::/\:::\ \:::\ \ | ;;| /:::/__\:::\ \:::\____\/:: / |::| /::\____\/:::/__\:::\ \:::\____\/:::/__\:::\ \:::\____\/:::/ \:::\ \:::| |/:::/____/ ___\:::| |/:::/__\:::\ \:::\____\ | ;;| \:::\ \:::\ \::/ /\::/ /|::| /:::/ /\:::\ \:::\ \::/ /\:::\ \:::\ \::/ /\::/ |::::\ /:::|____|\:::\ \ /\ /:::|____|\:::\ \:::\ \::/ / | ;;| \:::\ \:::\ \/____/ \/____/ |::| /:::/ / \:::\ \:::\ \/____/ \:::\ \:::\ \/____/ \/____|:::::\/:::/ / \:::\ /::\ \::/ / \:::\ \:::\ \/____/ | ;;| \:::\ \:::\ \ |::|/:::/ / \:::\ \:::\ \ \:::\ \:::\ \ |:::::::::/ / \:::\ \:::\ \/____/ \:::\ \:::\ \ | ;;| \:::\ \:::\____\ |::::::/ / \:::\ \:::\____\ \:::\ \:::\____\ |::|\::::/ / \:::\ \:::\____\ \:::\ \:::\____\ | ;;| \:::\ \::/ / |:::::/ / \:::\ \::/ / \:::\ \::/ / |::| \::/____/ \:::\ /:::/ / \:::\ \::/ / | ;;| \:::\ \/____/ |::::/ / \:::\ \/____/ \:::\ \/____/ |::| ~| \:::\/:::/ / \:::\ \/____/ | ;;| \:::\ \ /:::/ / \:::\ \ \:::\ \ |::| | \::::::/ / \:::\ \ | ;;| \:::\____\ /:::/ / \:::\____\ \:::\____\ \::| | \::::/ / \:::\____\ | ;;| \::/ / \::/ / \::/ / \::/ / \:| | \::/____/ \::/ / | ;;| \/____/ \/____/ \/____/ \/____/ \|___| \/____/ | ;;\___________________________________________________________________________________________________________________________________________________________________________________/ ;; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Eneerge's Quote Script v1.2 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ;; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| Without all bells and whistles |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ;; |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| :) |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ;; ____________________________________________________________________________________________________ ;; _________________________________________ POPUPS GUI _______________________________________________ ;; ____________________________________________________________________________________________________ alias nrg_popupStatus { set %nrg_popup true var %status $nrg_checkStatus($1,$2) unset %nrg_popup if ((%status == quote_isOp) || (%status == quote_isVoice) || (%status == quote_isOp) || (%status == quote_isAllowed)) { return allowed } if (%status == quote_isBanned) { return banned } return false } alias nrg_popupStatusExact { set %nrg_popup true var %status $nrg_checkStatus($1,$2) unset %nrg_popup if (%status == quote_isAllowed) { return (Allow List) } else if (%status == quote_isOp) { return (ChanOP) } else if (%status == quote_isVoice) { return (ChanVoice) } return $null } menu nicklist { - NRG-Quote .Print quote from $1:{ var %return_value = $nrg_quote($1) if (%return_value == quote_noneExist) { nrg_stdo quote_noneExist $me $1 } else { nrg_stdo quote_outputQuote $chan $1 %return_value } } .- .View $1 $+ 's quote DB:{ var %return_value = $nrg_quote($1) if (%return_value == quote_noneExist) { nrg_stdo quote_noneExist $me $1 } else { /run $mircdirquotesdb $+ \ $+ $1 $+ .txt } } .Delete $1 $+ 's quote DB:{ var %return_value = $nrg_quote($1) if (%return_value == quote_noneExist) { nrg_stdo quote_noneExist $me $1 } else { if ($$?="Are you sure you would like to completely purge $1 $+ 's quotedb (y/n)" == y) { /remove $mircdirquotesdb $+ \ $+ $1 $+ .txt } } } .- .Add a quote to $1 $+ 's DB:{ var %nrg_qquote = $$?="What quote would you like to add to $1 $+ 's DB?" var %return_value = $nrg_addquote($1,%nrg_qquote) if (%return_value == quote_Exists) { nrg_stdo quote_Exists $me $1 } else if (%return_value == quote_Added) { nrg_stdo quote_Added $me $1 %nrg_qquote } } .- .$iif($nrg_popupStatus($1,$chan) == banned,$style(1)) Banned:{ ;; COMMENT: User is banned, so toggling would unban them if ($nrg_popupStatus($1,$chan) == banned) { .ruser $1 1 .nrg_stdo quote_remBan $me $1 } ;; COMMENT: User is un-banned, so toggling would ban them else { .nrg_ban $1 .nrg_stdo quote_addBan $me $1 } } .$iif($nrg_popupStatus($1,$chan) == allowed,$style(1)) Allowed $nrg_popupStatusExact($1,$chan):{ if ($nrg_popupStatus($1,$chan) == false) { .nrg_allow $1 .nrg_stdo quote_addAllow $me $1 } else if ($nrg_popupStatus($1,$chan) == banned) { .ruser $1 1 .nrg_stdo quote_remBan $me $1 if ($nrg_popupStatus($1,$chan) == false) { .nrg_allow $1 .nrg_stdo quote_addAllow $me $1 } } else if ($nrg_popupStatus($1,$chan) == allowed) { set %nrg_popup true var %status $nrg_checkStatus($1,$chan) unset %nrg_popup if (%status == quote_isAllowed) { .ruser $1 1 .nrg_stdo quote_remAllow $me $1 } else { .nrg_allow $1 .nrg_stdo quote_addAllow $me $1 } } } .- .Open DB Folder:/run $mircdirquotesdb } ;; ____________________________________________________________________________________________________ ;; _________________________________________ LOADING COMMANDS _________________________________________ ;; ____________________________________________________________________________________________________ on *:LOAD:{ if (!$exists($mircdirquotesdb)) { mkdir $mircdirquotesdb } set %nrg_active 0 echo -a 4Successfully loaded Eneerge's quoting system. echo -a 4Quotes will be saved to:3 $mircdirquotesdb } ;; ____________________________________________________________________________________________________ ;; _________________________________________ ALIAS COMMANDS ___________________________________________ ;; ____________________________________________________________________________________________________ ;; ############# nrg_floodcheck - this command checks to see if the script is being flooded. If so, it will return true and halt for 30 seconds. ;; A flood is defined as receiving more than 5 requests within 60 seconds. alias nrg_floodcheck { if (%nrg_popup == true) { return false } inc %nrg_active if (%nrg_lastcmd != $null) { if ($calc(%nrg_lastcmd + 30) >= $ctime) { if (%nrg_active > 7) { set %nrg_flood $ctime return true } } else { unset %nrg_flood | set %nrg_active 0 } } if (%nrg_flood == $null) { set %nrg_lastcmd $ctime return false } } ;; ############# nrg_clearFlood - This command allows you to clear the flood status alias nrg_clearflood { unset %nrg_flood unset %nrg_lastcmd set %nrg_active 0 } ;; ############# nrg_checkStatus - This returns the status of a user and/or the script. A true value allows the script to execute. ;; The script will return true only if all of the following conditions are met: ;; 1) Script is NOT disabled ;; 2) A flood has NOT been detected ;; 3) User is NOT banned ;; and if ONE (not exclusively) of the following conditions are met: ;; 1) User is a channel voice/operator OR ;; 2) User is on the allow list alias nrg_checkStatus { if ((%nrg_disabled != true) && ($nrg_floodcheck != true)) { if ($level($address($1,1)) == nrg_banned) { return quote_isBanned } else { if ($level($address($1,1)) == nrg_allowed) { return quote_isAllowed } else if ($1 isop $2) { return quote_isOp } else if ($1 isvoice $2) { return quote_isVoice } } } return false } ;; ############# nrg_ban - Bans a user from using the system by adding their user@host to the list of banned users. ;; NOTE: This command will overwrite nrg_allow so the user will no longer be able to use the script. alias nrg_ban { if ($1 !ison $chan) { nrg_stdo quote_nickNotFound_inChan $me $1 $chan } else { .guser nrg_banned $1 1 } } ;; ############# nrg_allow - Explicitly allows a user to use the quote script, even if they aren't an op or voice ;; NOTE: This command will overwrite nrg_ban so the user will regain access to use the script. alias nrg_allow { if ($1 !ison $chan) { nrg_stdo quote_nickNotFound_inChan $me $1 $chan } else { .guser nrg_allowed $1 1 } } ;; ############# Enable/Disable - These commands allow you to enable or disable the script alias nrg_disable { set %nrg_disabled true } alias nrg_enable { unset %nrg_disabled } ;; ____________________________________________________________________________________________________ ;; _________________________________________ CHANNEL COMMANDS _________________________________________ ;; ____________________________________________________________________________________________________ ;; ############# AddQuote Commands - Commands associated with adding quotes to a database alias nrg_addquote { if ($2 == $null) { nrg_stdo quote_invalidAddQuote $me $1 | halt } ;; COMMENT: Make sure if a new file is created that it does not start with a number. That would mess up everything! Halt if this is the case. if (!$exists($mircdirquotesdb\ $+ $1 $+ .txt)) { if ($2 isnum) { halt } else { write $mircdirquotesdb\ $+ $1 $+ .txt $2- | return quote_Added | halt } } ;; COMMENT: Make sure current quote does not already exist $read($mircdirquotesdb\ $+ $1 $+ .txt,s,$2-) if ($readn == 0) { write $mircdirquotesdb\ $+ $1 $+ .txt $2- return quote_Added } else { return quote_Exists } } on *:TEXT:!addquote*:#:{ if ($len($2) > 15) { halt } var %status [ $+ [ $nick ] ] $nrg_checkStatus($nick,$chan) if ((%status [ $+ [ $nick ] ] != false) && ($2 != $NULL) && (%status [ $+ [ $nick ] ] != quote_isBanned)) { var %return_value = $nrg_addquote($2,$3-) if (%return_value == quote_Exists) { nrg_stdo quote_Exists $nick $2 } else if (%return_value == quote_Added) { nrg_stdo quote_Added $nick $2 $3- } } } ;; ############### Quote - Commands associated with retrieving a quote from a local database (text file) ;; $1 = nick alias nrg_quote { if ($1 == $null) { nrg_stdo quote_invalidQuote $me $1 } if (!$exists($mircdirquotesdb\ $+ $1 $+ .txt)) { return quote_noneExist } else { if (%nrg_quoteline_ [ $+ [ $1 ] ] >= $lines($mircdirquotesdb\ $+ $1 $+ .txt)) { unset %nrg_quoteline_ [ $+ [ $1 ] ] } inc %nrg_quoteline_ [ $+ [ $1 ] ] var %nrg_currentQuote [ $+ [ $1 ] ] $read($mircdirquotesdb\ $+ $1 $+ .txt, %nrg_quoteline_ [ $+ [ $1 ] ] ) return $readn %nrg_currentQuote [ $+ [ $1 ] ] $chr(40) $+ $rand(1,100) $+ $chr(41) } } on *:TEXT:!quote*:#:{ var %status [ $+ [ $nick ] ] $nrg_checkStatus($nick,$chan) if ((%status [ $+ [ $nick ] ] != false) && ($2 != $NULL) && (%status [ $+ [ $nick ] ] != quote_isBanned)) { var %return_value = $nrg_quote($2) if (%return_value == quote_noneExist) { .nrg_stdo quote_noneExist $nick $2 | halt } else { nrg_stdo quote_outputQuote $chan $2 %return_value } } } on *:INPUT:#:{ if ($1 == !quote) { var %return_value = $nrg_quote($2) if (%return_value == quote_noneExist) { .nrg_stdo quote_noneExist $me $2 | halt } else { nrg_stdo quote_outputQuote $chan $2 %return_value halt } halt } } ;; ############# nrg_stdo - This command consolidates all standard messages so that they can be easily modified from one spot. ;; $1 $2 $3 $4 ;; syntax: nrg_stdo <error_id> <recipient nick> <requested nick> (optional)<extra text> alias nrg_stdo { var %error_id = $1 var %recipient_nick = $2 var %requested_nick = $3 if (%recipient_nick == $me) { .alias /nrg_output .echo -a $chr(36) $+ 1- } else if (%recipient_nick ischan) { .alias /nrg_output /msg %recipient_nick $chr(36) $+ 1- } else { .alias /nrg_output .notice %recipient_nick $chr(36) $+ 1- } if ($1 == quote_addAllow) { nrg_output Added %requested_nick to the allowed list } else if ($1 == quote_addBan) { nrg_output Added %requested_nick to ban list! } else if ($1 == quote_Added) { nrg_output Successfully added quote: < $+ %requested_nick $+ > $4- } else if ($1 == quote_deleted) { nrg_output Deleted Quote $chr(35) $+ $4 for %requested_nick $+ : $5- } else if ($1 == quote_Exists) { nrg_output That quote already exists for %requested_nick $+ ! } else if ($1 == quote_invalidAddQuote) { nrg_output 4An invalid call was made to addquote. The correct syntax is /nrg_addquote <nick> <quote> } else if ($1 == quote_invalidQuote) { nrg_output 4An invalid call was made to quote. The correct syntax is /nrg_quote <nick> } else if ($1 == quote_invalidRemQuote) { nrg_output 4An invalid call was made to remquote. The correct syntax is /remquote <nick> <quoteid> } else if ($1 == quote_nickNotFound_inChan) { nrg_output Unable to find %requested_nick in $4 } else if ($1 == quote_noneExist) { nrg_output Database for %requested_nick does not currently exist! } else if ($1 == quote_notFound) { nrg_output Quote ID $4 not found for %requested_nick $+ ! } else if ($1 == quote_outputQuote) { nrg_output Famous quotes from %requested_nick $+ : ( $+ $chr(35) $+ $4 $+ ) $5- } else if ($1 == quote_remAllow) { nrg_output Removed %requested_nick from the allowed list } else if ($1 == quote_remBan) { nrg_output Removed %requested_nick from ban list! } .alias /nrg_output } ;; ############### RemQuote - Commands associated with removing quotes ;; $1 = nick ; $2 = quoteid alias nrg_remquote { if ($2 == $null) { nrg_stdo quote_invalidRemQuote $me $1 | halt } else { if (!$exists($mircdirquotesdb\ $+ $1 $+ .txt)) { return quote_noneExist } if ($lines($mircdirquotesdb\ $+ $1 $+ .txt) < $2) { return quote_notFound } else { var %quote $read($mircdirquotesdb\ $+ $1 $+ .txt,$2) .write -dl $+ $2 $mircdirquotesdb\ $+ $1 $+ .txt if ($lines($mircdirquotesdb\ $+ $1 $+ .txt) == 0) { .remove $mircdirquotesdb\ $+ $1 $+ .txt } ;; COMMENT: Remove database if nothing exists in the file return quote_Deleted %quote } } } on *:TEXT:!remquote*:#:{ var %status [ $+ [ $nick ] ] $nrg_checkStatus($nick,$chan) if ((%status [ $+ [ $nick ] ] != false) && ($3 != $NULL) && (%status [ $+ [ $nick ] ] != quote_isBanned)) { var %return_value $nrg_remquote($2,$3) if (%return_value == quote_noneExist) { .nrg_stdo quote_noneExist $nick $2 } else if (%return_value == quote_notFound) { .nrg_stdo quote_notFound $nick $2 $3 } else if (quote_deleted isin %return_value) { .nrg_stdo quote_deleted $nick $2 $3 $right(%return_value,-13) } } }
-
on *:INPUT:#:set $+(%,idle,$cid) $ctime | if ($away) away on *:INPUT:?:set $+(%,idle,$cid) $ctime | if ($away) away on *:PING: { if ($away) return if ($calc($ctime - $(,$+(%,idle,$cid))) > 600) { away auto-away after $duration($v1,3) idle } }
-
Okay, just an updated version of my previous away... make sure you set the variable %p password here and change your nick to what you want type /a then put your away reason then when you're back type /b on 1:input:*:{ IF ($1 == /a ) { set %away.reason $$1 if %away.reason == $null { set %away.reason %default } nick PUT AWAY NAME HERE amsg Away: %away.reason away %away.reason halt } ELSEIF ($1 == /b ) { nick PUT ACTIVE NAME HERE pass PUT PASS HERE amsg Back: %away.reason /Time: $Duration($awaytime) away halt } else { return } }
-
Well, people DID make votekick snippets, but I decided to post my own :x Well this one is a bit more advanced. There is no !votekick, there is just !vote kick. Now the difference is that !votekick is one command, while !vote kick can be changed to !vote ban, etc. so there is one command, but more functions. I hope you understand. For now there is only kick. REQUIREMENTS: -You must be an OP (if you're not, the vote will be cancelled) -The nick you specify MUST be in a channel (if not, it will be automaticly cancelled) -You can't call a vote from ANY channel until one vote ends. (Example you call the vote from #engineers and someone else calls a vote from #nexus and for #nexus it says that a vote is underway in #engineers) -You can vote with !pgup and !pgdn Well, I tried to make the code clean. As you can see you can modify the code so there is an option for kickban too. Well, you might see that I'm not THAT great with coding. This code will be updates as I add more features and functions. This is some sort of an alpha stage. For future plans I am planning on adding cancelling votes, changing votes from yes to no, customizing vote time (I wanted to do that, but variabled messed me up) and of course, more functions like mute (requires +m, if user rejoins he will be automaticly devoiced), kickban (customize your own time up to the time the OP allows). set %voteon2 off on *:TEXT:!vote*:#: { if ($2 == $null) || ($3 == $null) || ($2 != kick) { /msg $chan Incorrect usage. halt } if ($me isop $chan) { } else { /msg $chan I am not an OP here. halt } if ($3 ison $chan) { } else { /msg $chan $3 is not in $chan halt } if (%voteon2 == off) { } elseif (%voteon2 == on) { /msg $chan There is already a vote called in %chanvote halt } if ($3 isop $chan) { /msg $chan $3 is an OP. halt } set %voteon2 on set %votetype $2 set %votename $3 /callvote } alias -l callvote { if (%votetype == kick) { /votekick halt } } alias -l votekick { set %chanvote $chan msg $chan $nick has called a vote to kick %votename . You have 15 seconds to vote. /timer 1 15 voteresult } alias -l voteresult { if (%voteon2 == off) { set %voteon2 0 set %vyes 0 set %vno 0 unset %voted halt } if (%vyes > %vno) { /msg %chanvote Vote passed! kick %chanvote %votename Vote passed. } else { /msg %chanvote Vote failed! } /timer 1 2 /msg %chanvote Results: %vyes people voted yes; %vno people voted no set %voteon2 off set %vyes 0 set %vno 0 unset %voted } on *:TEXT:!pgup*:#: { if (%voteon2 == off) { /msg $chan There is nothing to vote for. halt } if ($istok(%voted,$address,32)) { notice $nick You have already voted. halt } /msg $chan $nick votes yes inc %vyes 1 %voted = $addtok(%voted,$address,32) } on *:TEXT:!pgdn*:#: { if (%voteon2 == off) { /msg $chan There is nothing to vote for. halt } if ($istok(%voted,$address,32)) { notice $nick You have already voted. halt } /msg $chan $nick votes no inc %vno 1 %voted = $addtok(%voted,$address,32) }
-
ok so this is my first script for chanserv commands its a dialog box put in remotes access it via menubar nicklist or the channel window let me know if you like it. updated it the first one had to be closed out to be used on each site cause it would only work on the site it was opened on. i fixed that problem though .Venom Chanserv system. .Coded By. .Ryan. Menu Menubar,Nicklist,Channel { Chanserv System .VenomChanservSys: dialog $iif($dialog(Chanserv.System),-v,-md Chanserv.System) Chanserv.System } Dialog Chanserv.System { Title "VenomChanservSystem" Size -1 -1 279 90 Option dbu ;-----Mod Controls Tab 100 Tab "+ Mod " ,100, 02 02 130 22, tab 100 edit "enter nick ", 101, 02 29 41 10, autohs tab 100 Button "voice" 102, 02 40 41 15, flat tab 100 edit "enter nick", 103, 02 62 41 10, autohs tab 100 button "devoice ", 104, 02 74 37 15, flat tab 100 edit "enter nick ", 105, 50 29 41 10, autohs tab 100 Button "op " 106, 49 40 37 15, flat tab 100 edit "enter nick ", 107, 50 62 41 10, autohs tab 100 button "deop ", 108, 49 74 37 15, flat tab 100 edit "enter nick", 109, 97 29 41 10, autohs tab 100 Button "halfop " 110, 96 40 37 15, flat tab 100 edit "enter nick ", 111, 97 62 41 10, autohs tab 100 button "dehalfop ", 112, 96 74 37 15, flat tab 100 edit "enter nick ", 113, 145 29 41 10, autohs tab 100 button "kick ", 114, 145 40 37 15, flat tab 100 edit "enter nick ", 115, 145 62 41 10, autohs tab 100 button "protect ", 116, 145 74 37 15, flat tab 100 edit "enter nick ", 117, 190 29 41 10, autohs tab 100 button "deprotect ", 118, 190 40 37 15, flat tab 100 edit "pass then description ", 119, 190 62 41 10, autohs tab 100 button "reg room ", 120, 190 74 37 15, flat tab 100 edit "pass then email ", 121, 234 29 41 10, autohs tab 100 button "reg nick ", 122, 233 40 37 15, flat tab 100 edit "Drop what nick ", 123, 234 62 41 10, autohs tab 100 button "Drop nick ", 124, 233 74 37 15, flat tab 100 ;-----Roomowner Tab 200 Tab "+ Roomowner " ,200, 02 02 130 22, tab 200 edit "enter nick ", 201, 02 29 41 10, autohs tab 200 Button "addvop" 202, 02 40 41 15, flat tab 200 edit "enter nick", 203, 02 62 41 10, autohs tab 200 button "delvop ", 204, 02 74 37 15, flat tab 200 edit "enter nick ", 205, 50 29 41 10, autohs tab 200 Button "addhop " 206, 49 40 37 15, flat tab 200 edit "enter nick ", 207, 50 62 41 10, autohs tab 200 button "delhop ", 208, 49 74 37 15, flat tab 200 edit "enter nick", 209, 97 29 41 10, autohs tab 200 Button "addaop " 210, 96 40 37 15, flat tab 200 edit "enter nick ", 211, 97 62 41 10, autohs tab 200 button "delaop ", 212, 96 74 37 15, flat tab 200 edit "enter nick ", 213, 145 29 41 10, autohs tab 200 button "addsop ", 214, 145 40 37 15, flat tab 200 edit "enter nick ", 215, 145 62 41 10, autohs tab 200 button "delsop ", 216, 145 74 37 15, flat tab 200 } on *:dialog:Chanserv.system:sclick:102:{ if (!$did(101).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv voice $active $did(101).text } } on *:dialog:Chanserv.system:sclick:104:{ if (!$did(103).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv devoice $active $did(103).text } } on *:dialog:Chanserv.system:sclick:106:{ if (!$did(105).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv op $active $did(105).text } } on *:dialog:Chanserv.system:sclick:108:{ if (!$did(107).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv deop $active $did(107).text } } on *:dialog:Chanserv.system:sclick:110:{ if (!$did(109).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv halfop $active $did(109).text } } on *:dialog:Chanserv.system:sclick:112:{ if (!$did(111).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv dehalfop $active $did(111).text } } on *:dialog:Chanserv.system:sclick:114:{ if (!$did(113).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv kick $active $did(113).text } } on *:dialog:Chanserv.system:sclick:116:{ if (!$did(115).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv protect $active $did(115).text } } on *:dialog:Chanserv.system:sclick:118:{ if (!$did(117).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv deprotect $active $did(117).text } } on *:dialog:Chanserv.system:sclick:120:{ if (!$did(119).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv register $active $did(119).text } } on *:dialog:Chanserv.system:sclick:122:{ if (!$did(121).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg nickserv register $did(121).text } } on *:dialog:Chanserv.system:sclick:124:{ if (!$did(123).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg nickserv drop $did(123).text } } on *:dialog:Chanserv.system:sclick:202:{ if (!$did(201).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv vop $active add $did(201).text } } on *:dialog:Chanserv.system:sclick:204:{ if (!$did(203).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv vop $active del $did(203).text } } on *:dialog:Chanserv.system:sclick:206:{ if (!$did(205).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv hop $active add $did(205).text } } on *:dialog:Chanserv.system:sclick:208:{ if (!$did(207).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv hop $active del $did(207).text } } on *:dialog:Chanserv.system:sclick:210:{ if (!$did(209).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv aop $active add $did(209).text } } on *:dialog:Chanserv.system:sclick:212:{ if (!$did(211).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv aop $active del $did(211).text } } on *:dialog:Chanserv.system:sclick:214:{ if (!$did(213).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv sop $active add $did(213).text } } on *:dialog:Chanserv.system:sclick:216:{ if (!$did(215).text) { noop $input(Please enter text in box,udho,Error!) } else { scid $activecid .msg chanserv sop $active del $did(215).text } }
-
Ok this is the result of me finding a new function on mIRC So dont moan if i'm doing something wrong 🙂 I have found this useful if im using my browser. You can turn it off easily and you can set how long the popup is displayed for. I know that its larger than you need! When you are using the script for the first time type /p_reset to set the default variables else it wont work. I will change the script to work better over time! Usage: Turn off and on or set the timer via right-clicking. Reply to a pm by double clicking the popup message. Also when you have replied it will show the replied Popup, double-clicking this will allow you to reply again, Pm's to you from the same person will be stacked. Please place all of the code in your remotes tab on a clean remote 🙂 p.s. I prefer this to the built-in function for mIRC the built-in fucntion dont allow this amount of expandability 🙂 AND Thanks to Allred58 and macs for helping me test it out 🙂 Also blackvenomm666, Jethro_ & napa182 for the script improvements on 1:TEXT:*:?:{ if (%popup) { set %p_nick $nick var %qtip $tip(PM, PM from $nick , $chr(91) $+ $time(hh:nn) $+ $chr(93) - $1- ,%ptimer,$mircexe,5,p_reply) } } menu channel,menubar,status { PM Popup .Turn popups $iif(!%popup,on,off): $+($iif(%popup,un),set) %popup on | echo PM Popup: Popups are $iif(%popup,$v1,off) .Set timer: set %ptimer $$?="How many seconds will the popup display for (3-60):" } alias p_reset { set %popup 1 set %ptimer 3 //echo PM Popup: PM Popups has been reset } alias p_reply { set %text $$?="Type a reply for %p_nick $+ :" msg %p_nick %text var %qtip $tip(reply, Reply to %p_nick , $chr(91) $+ $time(hh:nn) $+ $chr(93) - Replied to %p_nick " $+ %text $+ ",%ptimer,$mircexe,5,p_reply) unset %p_nick %text }
-
A roulette; as usual paste this in your remotes and enjoy! !gamble red 500000 %r-max is the maxbet (so people dont gamble their mothers rofl). on *:text:!gamble *:%bot-fun:{ /set %roullet-msg if ( ( $$2 != odd ) && ( $$2 != even ) && ( $$2 != red ) && ( $$2 != black ) && ( $$2 != 1col ) && ( $$2 != 2col ) && ( $$2 != 3col ) && ( $$2 !isnum 1-36 ) && ( $$2 != 1-18 ) && ( $$2 != 19-36 )) { /msg %bot-fun Wrong command... the commands are: odd; even; red; black; 1col; 2col; 3col; 1,2,3...36; 1-18; 19-36; halt } if ( $$3 > %r-max ) { /msg %bot-fun Sorry...You only can gamble until $ %r-max halt } if ( $$3 < 0 ) { /writeini system\roulette.ini users $nick $calc( $readini(system\roulette.ini, users, $nick ) + $$3 ) /msg %bot-fun Cheater!!! You win $$3 ah ah ah! $nick have $readini(system\roulette.ini, users, $nick ) halt } else { /writeini system\roulette.ini users $nick $calc( $readini(system\roulette.ini, users, $nick ) - $$3 ) } set %r-num $rand(0,36) if ( %r-num == 0 ) { /msg %bot-fun 0,3 0 You have betted $ $$3 and you made $ 0 || $nick have $readini(system\roulette.ini, users, $nick ) || halt } if ( , $+ %r-num $+ , isin %r-red ) { /set %roullet-msg 0,4 %r-num } if ( , $+ %r-num $+ , isin %r-black ) { /set %roullet-msg 0,1 %r-num } if ( $$2 == odd ) { if ( $calc( %r-num % 2 ) ) { /roulette-msg $nick $calc( $$3 * 2 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } if ( $$2 == even ) { if ( $calc( %r-num % 2 ) ) { /roulette-msg $nick 0 $$3 halt } else { /roulette-msg $nick $calc( $$3 * 2 ) $$3 halt } } if ( $$2 == red ) { if ( , $+ %r-num $+ , isin %r-red ) { /roulette-msg $nick $calc( $$3 * 2 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } if ( $$2 == black ) { if ( , $+ %r-num $+ , isin %r-black ) { /roulette-msg $nick $calc( $$3 * 2 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } if ( $$2 == 1col ) { if ( , $+ %r-num $+ , isin %r-1col ) { /roulette-msg $nick $calc( $$3 * 3 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } if ( $$2 == 2col ) { if ( , $+ %r-num $+ , isin %r-2col ) { /roulette-msg $nick $calc( $$3 * 3 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } if ( $$2 == 3col ) { if ( , $+ %r-num $+ , isin %r-3col ) { /roulette-msg $nick $calc( $$3 * 3 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } if ( $$2 isnum 1-36 ) { if ( $$2 == %r-num ) { /roulette-msg $nick $calc( $$3 * 36 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } if ( $$2 == 1-18 ) { if ( %r-num isnum 1-18 ) { /roulette-msg $nick $calc( $$3 * 2 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } if ( $$2 == 19-36 ) { if ( %r-num isnum 19-36 ) { /roulette-msg $nick $calc( $$3 * 2 ) $$3 halt } else { /roulette-msg $nick 0 $$3 halt } } }
-
This is the way I like to see mIRC. Changed everything from whois to Events. on ^1:JOIN:#:{ if ($nick != $me) { echo -th $chan 9[ 4ø 9] 11Join : 04 $nick $+ 14( 07 $+ $remove($address($nick,1),*!*) $+ 14) 00has joined 04 $chan $+ 00. } else { echo -th $chan %pre 00Now talking in 04 $chan $+ 00. } haltdef } on ^1:PART:#:{ if ($nick == $me) { halt } else { set %nick $nick($chan,$nick).pnick if (~ isin %nick) { set %nick $remove(%nick,&,@,%,+) } elseif (& isin %nick) { set %nick $remove(%nick,@,%,+) } elseif (@ isin %nick) { set %nick $remove(%nick,%,+) } elseif (% isin %nick) { set %nick $remove(%nick,+) } echo -th $chan 9[ 4ø 9] 11Part : 04 %nick $+ 14( 07 $+ $remove($address($nick,1),*!*) $+ 14) 00has left 04 $chan $+ 00. haltdef unset %nick } } on ^1:RAWMODE:#:{ set %nick $nick($chan,$nick).pnick if (~ isin %nick) { set %nick $remove(%nick,&,@,%,+) } elseif (& isin %nick) { set %nick $remove(%nick,@,%,+) } elseif (@ isin %nick) { set %nick $remove(%nick,%,+) } elseif (% isin %nick) { set %nick $remove(%nick,+) } echo -th $chan 9[ 4ø 9] 11Mode : 04 $iif(%nick,%nick,$nick) $+ 14( 07 $+ $remove($address($nick,1),*!*) $+ 14) 00sets mode: 04 $1- haltdef unset %nick } on ^1:ACTION:*:{ set %nick $nick($chan,$nick).pnick if (~ isin %nick) { set %nick $remove(%nick,&,@,%,+) } elseif (& isin %nick) { set %nick $remove(%nick,@,%,+) } elseif (@ isin %nick) { set %nick $remove(%nick,%,+) } elseif (% isin %nick) { set %nick $remove(%nick,+) } if ($chan) { echo -th $chan 06 $+ %pre %nick $1- } else { echo -th $nick 06 $+ %pre %nick $1- } haltdef unset %nick } on ^1:TEXT:*:*:{ if ($chan) { set %nickcolor $nick($chan,$nick).color set %nick $nick($chan,$nick).pnick if (~ isin %nick) { set %nick $remove(%nick,&,@,%,+) } elseif (& isin %nick) { set %nick $remove(%nick,@,%,+) } elseif (@ isin %nick) { set %nick $remove(%nick,%,+) } elseif (% isin %nick) { set %nick $remove(%nick,+) } echo -th $chan 14( $+ %nickcolor $+ %nick $+ 14 ) 00: $1- } else { echo -th $nick 14( 00 $+ $nick $+ 14) 00: $1- } haltdef unset %nick unset %nickcolor unset %nicks } on *:INPUT:*:{ if ($1 == /notice) { echo -at 9[ 4ø 9] --> 11Notice : 04- $+ $2 $+ - 00 $3- | .notice $2 $3- | halt } else { set %nick $nick($chan,$me).pnick if (~ isin %nick) { set %nick $remove(%nick,&,@,%,+) } elseif (& isin %nick) { set %nick $remove(%nick,@,%,+) } elseif (@ isin %nick) { set %nick $remove(%nick,%,+) } elseif (% isin %nick) { set %nick $remove(%nick,+) } if ($1 == :/) || ($1 == \o) { echo -th $active 14( 11 $+ %nick $+ 14 ) 00 $1- | .msg $chan $1- | halt } if (/ isin $1) { if (http isin $1) { echo -th $chan 14( 11 $+ $iif(%nick,%nick,$nick) $+ 14 ) 00 $1- | .msg $active $1- | halt } else { $1- | halt } } if ($chan) { .msg $chan $1- echo -th $chan 14( 11 $+ %nick $+ 14 ) 00 $1- } else { .msg $active $1- echo -th $active 14( 11 $+ $me $+ 14) 00 $1- } } haltdef unset %nick } on ^1:NICK:{ var %x 1 if ($nick == $me) { while ($chan(%x)) { echo -th $chan(%x) 9[ 4ø 9] 11Nick : 04 $nick 00is now known as 04 $newnick $+ . inc %x } echo -ths 9[ 4ø 9] 11Nick : $nick is now known as $newnick $+ . } else { while ($comchan($nick,%x)) { echo -th $comchan($nick,%x) 9[ 4ø 9] 11Nick : $nick is now known as $newnick $+ . inc %x } } haltdef unset %nick unset %newnick } on ^1:QUIT:{ var %x 1 while ($comchan($nick,%x)) { set %nick $nick($chan,$nick).pnick if (~ isin %nick) { set %nick $remove(%nick,&,@,%,+) } elseif (& isin %nick) { set %nick $remove(%nick,@,%,+) } elseif (@ isin %nick) { set %nick $remove(%nick,%,+) } elseif (% isin %nick) { set %nick $remove(%nick,+) } echo -th $comchan($nick,%x) 9[ 4ø 9] 11Quit : 04 $iif(%nick,%nick,$nick) $+ 14( 07 $+ $remove($address($nick,1),*!*) $+ 14) has quit 04 $network $+ 14( 07 $+ $1- $+ 14) inc %x } haltdef unset %nick } on ^1:NOTICE:*:*:{ echo -at 9[ 4ø 9] <-- 11Notice : 04- $+ $nick $+ - 00 $1- haltdef } raw 301:*:{ echo -a 9[ 4ø 9] 11A way : 00 $remove($2-,$1) | halt } raw 311:*:{ echo -a -------- $+ $2 Start of /whois-------- | echo -a 9[ 4ø 9] 11I dent : 00 $3 | echo -a 9[ 4ø 9] 11A ddress : 00 $4 | echo -a 9[ 4ø 9] 11R eal N ame : 00 $remove($5-,$chr(42)) | halt } raw 312:*:{ echo -a 9[ 4ø 9] 11S erver : 00 $3 $+ ( $+ $network $+ ) - $4- | halt } raw 313:*:{ echo -a 9[ 4ø 9] 11S tatus : 00 $5- | halt } raw 317:*:{ echo -a 9[ 4ø 9] 11I dle : 00 $duration($3) | halt } raw 319:*:{ echo -a 9[ 4ø 9] 11C hannels : 00 $3- | halt } raw 318:*:{ echo -a -------- $+ $1 End of /whois-------- | halt } raw 338:*:{ echo -a 9[ 4ø 9] 11I P : 00 $remove($6,[,]) | halt } raw 307:*:{ echo -a 9[ 4ø 9] 11I dentified : 00 Identified | halt } raw 310:*:{ echo -a 9[ 4ø 9] 11M odes : 00 $6 | halt } raw 671:*:{ echo -a 9[ 4ø 9] 11C onnection : 00 $6- | halt } raw 672:*:{ echo -a 9[ 4ø 9] 11C lient : 00 $5- | halt } raw 332:*:{ echo -t $2 9[ 4ø 9] 11Topic : 00 $iif($3-,$3-,No Topic Set) | halt } raw 306:*:{ echo -at 9[ 4ø 9] 11A way : 00 $2- | halt } raw 305:*:{ echo -at 9[ 4ø 9] 11A way : 00 $2- | halt } raw 378:*:{ echo -a 9[ 4ø 9] 11C onnected F rom : 00 $7- | halt }
-
This is a Ban Assist Dialog. It is a Menubar, Channel and nicklist menu item, There are a few Pre-Defined Kick messages integrated into the dialog. Update: Updated with _Teen_'s idea.. made the code a few line's smaller which is always better 😜 Thanks _Teen_. Update #2: Added the Extended mode ban's and when you first load the dialog on a network, It will version the server to check what it is running, I have only added for it to work on InspIRCd and Unreal server's. Anything else will show up as Unknown and will only allow +b with no extended ban. You /may/ have to restart/Re-Connect to the network to get the Ext Ban type's to show up. 😕 menu channel,menubar,nicklist { Ban Assist:dialog $iif($dialog(ban_assist),-v,-m ban_assist) ban_assist } dialog ban_assist { title "Ban Assist Dialog by Danneh" size -1 -1 203 130 option dbu box "Nicknames:", 1, 3 3 66 108 list 4, 6 10 59 97, size box "Options:", 5, 73 3 127 108 combo 6, 101 14 95 50, size drop text "Ban Type:", 7, 76 15 25 8 text "Example:", 8, 76 43 25 8 text "", 9, 76 50 120 8 text "Custom Kick message:", 10, 76 73 53 8, hide edit "", 11, 76 79 120 10, hide autohs button "Kick", 12, 77 94 37 12 button "Kick/Ban", 13, 118 94 37 12 button "Ok", 14, 50 115 37 12, ok button "Cancel", 15, 109 115 37 12, cancel text "Kick Message:", 16, 76 61 34 8 combo 17, 110 60 86 50, size drop button "Ban Only", 18, 159 94 37 12 combo 19, 110 29 86 50, size drop text "Ext Ban Type:", 20, 76 30 34 8 menu "File", 2 item "Close", 3, 2 } on *:DIALOG:ban_assist:init:*: { if (!$ini(ircd.ini,$network,version)) { .version } if ($readini(ircd.ini,$network,version) == UnrealIRCd) { didtok $dname 19 124 Normal|~q:|~n:|~q: and ~n: } if ($readini(ircd.ini,$network,version) == InspIRCd) { didtok $dname 19 124 Normal|m:|n:|O:|m: and n: } if ($readini(ircd.ini,$network,version) == Unknown) { did -a $dname 19 Normal } didtok $dname 6 124 1|2|3|4|5 didtok $dname 17 124 Spamming|Abusive Language|Caps|No PM Permission|Personal Attacks|Bad Attitude|Custom var %a = 1 while (%a <= $nick($active,0)) { did -a $dname 4 $nick($active,%a) inc %a } } on *:DIALOG:ban_assist:menu:3: { dialog -x ban_assist } on *:DIALOG:ban_assist:sclick:4,6,12,13,17-19: { if (($did == 4) && ($did(6).sel)) { did -ra $dname 9 $address($did(ban_assist,4).seltext,$did(6).sel) } if ($did == 6) { did -ra $dname 9 $address($did(ban_assist,4).seltext,$did(6).sel) } if ($did == 12) { if ($did(17) != Custom) { did -h $dname 10,11 if ($did(ban_assist,4).seltext == $null) { noop $input(Please select a nick to kick.,o) } else { if ($did(17) == Spamming) { kick $active $did(ban_assist,4).seltext Spamming is not tolerated here. } elseif ($did(17) == Abusive Language) { kick $active $did(ban_assist,4).seltext Please watch your language. We want everyone to feel welcome here. } elseif ($did(17) == Caps) { kick $active $did(ban_assist,4).seltext Talking in caps is considered yelling, annoying, and rude. Please turn them off. Thanks. } elseif ($did(17) == No PM Permission) { kick $active $did(ban_assist,4).seltext You may not PM/DCC/Notice/Query/CTCP users without their expressed permission. } elseif ($did(17) == Personal Attacks) { kick $active $did(ban_assist,4).seltext Personal attacks are not tolerated here. } elseif ($did(17) == Bad Attitude) { kick $active $did(ban_assist,4).seltext Your attitude is not conducive to the desired environment. } } } if ($did(17) == Custom) { did -v $dname 10,11 if ($did(11) == $null) { noop $input(Please enter a Custom Kick Message.,o) } else { kick $active $did(ban_assist,4).seltext $did(11) } } } if ($did == 13) { if ($did(17) != Custom) { did -h $dname 10,11 if ($did(ban_assist,4).seltext == $null) { noop $input(Please select a nick to kick.,o) } else { if ($did(ban_assist,19).seltext == Normal) { if ($did(17) == Spamming) { mode $active +b $address($did(ban_assist,4).seltext, $did(6)) | kick $active $did(ban_assist,4).seltext Spamming is not tolerated here. } elseif ($did(17) == Abusive Language) { mode $active +b $address($did(ban_assist,4).seltext, $did(6)) | kick $active $did(ban_assist,4).seltext Please watch your language. We want everyone to feel welcome here. } elseif ($did(17) == Caps) { mode $active +b $address($did(ban_assist,4).seltext, $did(6)) | kick $active $did(ban_assist,4).seltext Talking in caps is considered yelling, annoying, and rude. Please turn them off. Thanks. } elseif ($did(17) == No PM Permission) { mode $active +b $address($did(ban_assist,4).seltext, $did(6)) | kick $active $did(ban_assist,4).seltext You may not PM/DCC/Notice/Query/CTCP users without their expressed permission. } elseif ($did(17) == Personal Attacks) { mode $active +b $address($did(ban_assist,4).seltext, $did(6)) | kick $active $did(ban_assist,4).seltext Personal attacks are not tolerated here. } elseif ($did(17) == Bad Attitude) { mode $active +b $address($did(ban_assist,4).seltext, $did(6)) | kick $active $did(ban_assist,4).seltext Your attitude is not conducive to the desired environment. } } else { if ($did(19).seltext == ~q:) { var %a = mode $active +b ~q: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == ~n:) { var %a = mode $active +b ~n: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == ~q: and ~n:) { var %a = mode $active +bb ~q: $+ $address($did(ban_assist,4).seltext, $did(6)) ~n: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == m:) { var %a = mode $active +b m: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == n:) { var %a = mode $active +b n: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == O:) { var %a = mode $active +b O: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == m: and n:) { var %a = mode $active +b m: $+ $address($did(ban_assist,4).seltext, $did(6)) n: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == Normal) { var %a = mode $active +b $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(17) == Spamming) { var %b = kick $active $did(ban_assist,4).seltext Spamming is not tolerated here. } elseif ($did(17) == Abusive Language) { var %b = kick $active $did(ban_assist,4).seltext Please watch your language. We want everyone to feel welcome here. } elseif ($did(17) == Caps) { var %b = kick $active $did(ban_assist,4).seltext Talking in caps is considered yelling, annoying, and rude. Please turn them off. Thanks. } elseif ($did(17) == No PM Permission) { var %b = kick $active $did(ban_assist,4).seltext You may not PM/DCC/Notice/Query/CTCP users without their expressed permission. } elseif ($did(17) == Personal Attacks) { var %b = kick $active $did(ban_assist,4).seltext Personal attacks are not tolerated here. } elseif ($did(17) == Bad Attitude) { var %b = kick $active $did(ban_assist,4).seltext Your attitude is not conducive to the desired environment. } %a | %b } } } if ($did(17) == Custom) { did -v $dname 10,11 if ($did(11) == $null) { noop $input(Please enter a Custom Kick Message.,o) } else { mode $active +b $address($did(ban_assist,4).seltext, $did(6)) | kick $active $did(ban_assist,4).seltext $did(11) } } } if ($did == 17) { if ($did(17) != Custom) { did -h $dname 10,11 } elseif ($did(17) == Custom) { did -v $dname 10,11 } } if ($did == 18) { if ($did(ban_assist,4).seltext == $null) { noop $input(Please select a nick to Ban.,o) } elseif ($did(19).seltext != Normal) { if ($did(19).seltext == ~q:) { mode $active +b ~q: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == ~n:) { mode $active +b ~n: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == ~q: and ~n:) { mode $active +bb ~q: $+ $address($did(ban_assist,4).seltext, $did(6)) ~n: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == m:) { mode $active +b m: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == n:) { mode $active +b n: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == O:) { mode $active +b O: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == m: and n:) { mode $active +b m: $+ $address($did(ban_assist,4).seltext, $did(6)) n: $+ $address($did(ban_assist,4).seltext, $did(6)) } elseif ($did(19).seltext == Normal) { mode $active +b $address($did(ban_assist,4).seltext, $did(6)) } } } } RAW 002:*:{ if (!$ini(ircd.ini,$network,version)) { if (Unreal isin $2-) { writeini ircd.ini $network version UnrealIRCd } if (InspIRCd isin $2-) { writeini ircd.ini $network version InspIRCd } elseif (!$istok(Unreal|InspIRCd,$2-,124)) { writeini ircd.ini $network version Unknown } } } RAW 351:*:{ if (!$ini(ircd.ini,$network,version)) { if (Unreal isin $2-) { writeini ircd.ini $network version UnrealIRCd } elseif (InspIRCd isin $2-) { writeini ircd.ini $network version InspIRCd } elseif (!$istok(Unreal|InspIRCd,$2-,124)) { writeini ircd.ini $network version Unknown } } }
-
This is a topic script, it is not that good so please don't complain and fix what you need to. 😛 COMMANDS: !b !m !e !a !s e.g. !b Welcome to #channel !m We are currently offline. !e Get in queue and please do NOT P.M. ops !a | !s Off -------- Welcome to #channel | We are currently offline | Get in queue and please do NOT P.M. ops | Bot status: Off on *:TEXT:*:#: { if ( $nick isop $chan && $1 == !b ) { set %topic $2- topic $chan %topic %divider %status %divider %end %divider %bot } if ( $nick isop $chan && $1 == !m ) { set %status $2- topic $chan %topic %divider %status %divider %end %divider %bot } if ( $nick isop $chan && $1 == !e ) { set %end $2- topic $chan %topic %divider %status %divider %end %divider %bot } if ( $nick isop $chan && $1 == !a ) { set %divider $2 topic $chan %topic %divider %status %divider %end %divider %bot } if ( $nick isop $chan && $1 == !s ) { set %bot Bot status: $2 topic $chan %topic %divider %status %divider %end %divider %bot } }
-
a Bot script for mIRC. Copy code to your remote file in Mirc and make the following changes 1: Change #RoomName to the name of your Channel 2: Change (BotNick to whatever you want your bot's nick to be.] 3:Change (RoomRule#1) to (RoomRule#10) to whatever rules you want for your room. 4 Change (WebSite URL) to the URL for the room's website. if you don't have a web site delete the line and any ?site lines. 5: Change (RoomOPs) to a list of Ops in your room. 6: Change (TimeZone to your TimeZone. In mIRC click scripts editor and then click users and add the following: [ 10,20:Nick ! Hostmask ] Example 10,20:TigrisAFK !~Aspros_Ti@uccn-5CC5D667.surgehost.net on 1:JOIN:#:/notice $nick Welcome to #roomname Type ?rules for room rules and ?site for the room's website address and ?rmop for a list of room ops ?commands for commands and ?funstuff for fun commands and type ?time to see the time | /mode $chan +v $nick on 1:TEXT:?rules:#: /notice $nick 1: (RoomRule#1) | /notice $nick 2: (RoomRule#2) | /notice $nick 3: (RoomRule#3) | /notice $nick 4: (RoomRule#4) | /notice $nick 5: (RoomRule#5) | /notice $nick 6: (RoomRule#6) | /notice $nick 7: (RoomRule#7) | /notice $nick 8: (RoomRule#8) | /notice $nick 9: (RoomRule#9) | /notice $nick 10: (RoomRule#10) on 1:TEXT:?site:#: /notice $nick Visit our web site at ( Web Site URL) on 1:TEXT:hi (BotNick):#: msg $chan Yo $nick what's up ? on 1:TEXT:hiya (BotNick):#: msg $chan Yo $nick what's up ? on 1:TEXT:hey (BotNick):#: msg $chan Yo $nick what's up ? on 1:TEXT:hello (BotNick):#: msg $chan Yo $nick what's up ? on 1:TEXT:yo (BotNick):#: msg $chan Yo $nick what's up ? on 1:TEXT:not much what's up with you (BotNick)*:#: /msg $chan Yeah same here just sitting here drinking some iced tea :p on 1:TEXT:not much what's up with u (BotNick)*:#: /msg $chan Yeah same here just sitting here drinking some iced tea :p on 1:ACTION:hugs (BotNick):#: msg $chan hugs $nick on 1:ACTION:pokes (BotNick):#: msg $chan (BotNick) pokes $nick back :P on 1:TEXT:?commands:#: /notice $nick type ?rules for room rules | notice $nick type ?site for the URL of the website for the room | notice $nick Type ?rmop for a list of Room OP's | notice $nick Type ?funstuff for a list of fun commands | notice $nick Type ?time to see the time on 1:TEXT:?funstuff:#: /notice $nick (BotNick) wop nickname...Makes me wop someone. | /notice $nick (BotNick) poke nickname....makes me poke someone. | /notice $nick (BotNick) tase nickname.....makes me tase someone. on 1:TEXT:?rmop:#: /notice $nick The OP's of #RoomName are (RoomOps ) on 1:TEXT:?time:#: msg $chan The time is $time(h:nn:ss tt ) (TimeZone) $day $adate on 20:TEXT:***************:?: msg $chan $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 on 1:TEXT: wop *:#:{ msg $chan (BotNick) wops $$3 upside da head :) } on 1:TEXT:(BotNick) tase *:#:{ msg $chan (BotNick) tases $$3 $4-10 and watches $$3 flop like a fish :P } on 1:TEXT:(BotNick) poke *:#:{ msg $chan (BotNick) pokes $$3 with a 10 foot pole :P } on 10:TEXT:?voice*:#:{ /mode $chan +v $$2 } on 10:TEXT:?devoice*:#:{ /mode $chan -v $$2 } on 10:TEXT:?kick*:#:{ /kick $chan $$2 $3-15 } on 10:TEXT:?op*:#:{ /mode $chan +o $$2 } on 10:TEXT:?halfop*:#:{ /mode $chan +h $$2 } on 10:TEXT:?deop*:#:{ /mode $chan -o $$2 } on 10:TEXT:?dehalfop*:#:{ /mode $chan -h $$2 } on 10:TEXT:?bankick*:#: { /ban -k $chan $$2 2 $3-20 } on 10:TEXT:?ban*:#: { /ban $chan $$2 2 } on 10:TEXT:?unban*:#: { /ban -r $chan $$2 2 } on 10:TEXT:?invite*:#: { /invite $$2 $chan } on 10:TEXT:?help:#: /notice $nick ?op Ops a nick | /notice $nick ?deop Deops a nick | /notice $nick ?halfop HalfOps a nick | /notice $nick ?dehalfop DehalfOps a nick | /notice $nick ?voice voices a nick | /notice $nick ?devoice devoices a nick | /notice $nick ?kick Kicks a nick | /notice $nick ?ban Bans a nick | /notice $nick ?bankick bans and kicks a nick | /notice $nick ?unban Unbans a nick | /notice $nick ?timeban(5,2,1) Bans and kicks a nick for five (5) or two (2) or one (1) minute(s) | notice $nick ?invite invites someone into the channelon 10:TEXT:?timeban5*:#: /ban -k-u300 $chan $$2 2 $3-20 on 10:TEXT:?timeban2*:#: /ban -k-u120 $chan $$2 2 $3-20 on 10:TEXT:?timeban1*:#: /ban -k-u60 $chan $$2 2 $3-20 on 10:TEXT:?timeban5*:#: /ban -k-u300 $chan $$2 2 $3-20 on 20:TEXT:?adduser *:#: /guser 10 $$2 | /notice $nick $$2 has been added to (BotNick)'s user list on 20:TEXT:?deluser *:#: /ruser 10 $$2 | /notice $nick $$2 has been deleted (BotNick)'s user list on 10:JOIN:#: { /notice $nick Welcome to #RoomName Type ?rules for room rules and ?site for the room's website address and ?rmop for a list of room ops ?commands for commands and ?funstuff for fun commands and type ?time to see the time | /mode $chan +o $nick | /mode $chan +v $nick } } } }
-
on *:text:*:#: { if ($address == Youraddress/vhost) { if ($regex($1-,/(^|\s)(kick?k\s\S+)/i)) { tokenize 32 $regml(2) | kick $chan $2 requested by my owners } if ($regex($1-,/(^|\s)(vop?p\s\S+)/i)) { tokenize 32 $regml(2) | cs vop $chan add $2 3 | mode $chan +v $2 } if ($regex($1-,/(^|\s)(dvop?p\s\S+)/i)) { tokenize 32 $regml(2) | cs vop $chan del $2 } if ($regex($1-,/(^|\s)(hop?p\s\S+)/i)) { tokenize 32 $regml(2) | cs hop $chan add $2 | mode $chan +h $2 } if ($regex($1-,/(^|\s)(dhop?p\s\S+)/i)) { tokenize 32 $regml(2) | cs hop $chan del $2 } if ($regex($1-,/(^|\s)(aop?p\s\S+)/i)) { tokenize 32 $regml(2) | cs aop $chan add $2 | mode $chan +o $2 } if ($regex($1-,/(^|\s)(daop?p\s\S+)/i)) { tokenize 32 $regml(2) | cs aop $chan del $2 } if ($regex($1-,/(^|\s)(sop?p\s\S+)/i)) { tokenize 32 $regml(2) | cs sop $chan add $2 } if ($regex($1-,/(^|\s)(dsop?p\s\S+)/i)) { tokenize 32 $regml(2) | cs sop $chan del $2 } if ($regex($1-,/(^|\s)(op?p\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan +o $2 } if ($regex($1-,/(^|\s)(deop?p\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -o $2 } if ($regex($1-,/(^|\s)(idle?e\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -o $2 } if ($regex($1-,/(^|\s)(halfop?p\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan +h $2 } if ($regex($1-,/(^|\s)(dehalfop?s\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -h $2 } if ($regex($1-,/(^|\s)(voice?e\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan +v $2 } if ($regex($1-,/(^|\s)(devoice?e\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -v $2 } if ($regex($1-,/(^|\s)(ban?n\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan +b $2 } if ($regex($1-,/(^|\s)(tban?n\s\S+)/i)) { tokenize 32 $regml(2) | ban -ku3600 $chan $2 } if ($regex($1-,/(^|\s)(gag?g\s\S+)/i)) { tokenize 32 $regml(2) | ban -u300 $chan ~q: $+ $address($2,2) } if ($regex($1-,/(^|\s)(door?r\s\S+)/i)) { tokenize 32 $regml(2) | ban -ku60 $chan $2 } if ($regex($1-,/(^|\s)(unban?n\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -b $2 } if ($regex($1-,/(^|\s)(akick?k\s\S+)/i)) { tokenize 32 $regml(2) | cs akick $chan add $address($2,2) } if ($regex($1-,/(^|\s)(deakick?k\s\S+)/i)) { tokenize 32 $regml(2) | cs akick $chan del $address($2,2) } if ($regex($1-,/(^|\s)(silence?e\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan +b ~q: $+ $address($2,2) } if ($regex($1-,/(^|\s)(unsilence?e\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -b ~q: $+ $address($2,2) } if ($regex($1-,/(^|\s)(mode?e\s\w+)/i)) { tokenize 32 $regml(2) | mode $chan + $+ $right($regml(2),6-1) } if ($regex($1-,/(^|\s)(demode?e\s\w+)/i)) { tokenize 32 $regml(2) | mode $chan - $+ $right($regml(2),6-1) } if ($regex($1-,/(^|\s)(shutdown?n\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan +RmS } if ($regex($1-,/(^|\s)(freechan?n\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -RmS } if ($regex($1-,/(^|\s)(noflood?d\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan +j 5:5 } if ($regex($1-,/(^|\s)(Xflood?d\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -j } if ($regex($1-,/(^|\s)(stopflood?d?s?\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan +f [5c#C15,25j#i5,10k#K15,30m#M5,10n#N15,7t]:15 } if ($regex($1-,/(^|\s)(removeflood?d?s?\s\S+)/i)) { tokenize 32 $regml(2) | mode $chan -f [5c#C15,25j#i5,10k#K15,30m#M5,10n#N15,7t]:15 } if ($regex($1-,/(^|\s)(leavethis?s\s\S+)/i)) { tokenize 32 $regml(2) | /part $chan } if ($regex($1-,/(^|\s)(jointhis?s\s\S+)/i)) { tokenize 32 $regml(2) | /join $2 } if ($regex($1-,/(^|\s)(joinme?e\s\S+)/i)) { tokenize 32 $regml(2) | /join #mircbots } if ($regex($1-,/(^|\s)(cycle?e\s\S+)/i)) { tokenize 32 $regml(2) | /hop # } if ($regex($1-,/(^|\s)(noob?b?s?\s\S+)/i)) { tokenize 32 $regml(2) | echo -a $regml(2) | mode $chan +RSCT | .timerMODE 1 $2 { mode $chan -RSCT } } if ($regex($1-,/(^|\s)(update?e?s?\s\S+)/i)) { tokenize 32 $regml(2) | /msg nickserv update } if ($regex($1-,/(^|\s)(invite?e?s?\s\S+)/i)) { tokenize 32 $regml(2) | /invite $2 $chan } if ($regex($1-,/(^|\s)(kill?e?s?\s\S+)/i)) { tokenize 32 $regml(2) | /kill $2 this was requested by my owners } if ($regex($1-,/(^|\s)(uline?e?s?\s\S+)/i)) { tokenize 32 $regml(2) | /uline $2 } if ($regex($1-,/(^|\s)(svskill?e?s?\s\S+)/i)) { tokenize 32 $regml(2) | /svskill $2 :this was requested by my owners } if ($regex($1-,/(^|\s)(ogag?e?s?\s\S+)/i)) { tokenize 32 $regml(2) | /svso $2 - | /svsmode $2 +d | /shun $2 gagged } if ($regex($1-,/(^|\s)(uogag?e?s?\s\S+)/i)) { tokenize 32 $regml(2) | /svsmode $2 -d | /shun - $+ $2 } } } on ^*:TEXT:*:?: { if ($address == Youraddress/vhost) { if ($regex($1-,/(^|\s)(jointhis?s\s\S+)/i)) { tokenize 32 $regml(2) | /join $2 } } } to put into your remotes on *:input:*: { if ($regex($1-,/(^|\s)(jointhis?s\s\S+)/i)) { tokenize 32 $regml(2) .msg Botname jointhis $2 } } on *:input:*: { if ($regex($1-,/(^|\s)(leavethis?s\s\S+)/i)) { tokenize 32 $regml(2) .msg Botname leavethis $2 } }
-
#################################################################### #################################################################### ######################### H3x-iRc By Malcolm ####################### #################################################################### #################################################################### menu channel { mass:/mass_sajoin } alias mass_sajoin { var %x $$?="how many rooms?:" var %y $$?="name of victim:" var %i 1 while (%i <= %x) { sajoin %y #H3x-irc $+ $rand(1,9999) inc %i 1 Save as Draft } }
-
on *:text:*!kill *:%bot-fun:{ /set %kill $rand(1,4) /set %bf $rand(1,4) if ( %kill == 1 ) { /set %ataque died from the wounds you have inflicted. He's swimming with the fishes now. /set %defensa tried to strike back but failed completely. /msg %bot-fun 7 $$2 %ataque /msg %bot-fun 7 $$2 %defensa } if ( %kill == 2 ) { /set %ataque died from the wounds you have inflicted. He's swimming with the fishes now. /set %defensa couldn't contain 7 $$2 's backfire. 7 $nick died from the wounds he inflicted. /msg %bot-fun 7 $$2 %ataque /msg %bot-fun 7 $nick %defensa } if ( %kill == 3 ) { /set %ataque Suffered but is still alive. /set %defensa couldn't contain 7 $$2 's backfire. 7 $nick died from the wounds he inflicted. /msg %bot-fun 7 $$2 %ataque /msg %bot-fun 7 $nick %defensa } if ( %kill == 4 ) { /set %ataque Suffered but is still alive. /set %defensa tried to strike back but failed completely. /msg %bot-fun 7 $$2 %ataque /msg %bot-fun 7 $$2 %defensa } }
-
[X]X]X]X]X]X]X]X]X]X]X]X]X]X]X]X] [X]X] Chanserv kicks by Neo [X]X] [X]X]X]X]X]X]X]X]X]X]X]X]X]X]X]X] menu nicklist { - Chanserv Kicks .Kicks ..Flooding:/cs kick $active $$1 4. 4. 7.: 8:: 15 4Kicked for: Flooding/Repeating 8:: 7:. 4. 04.[ No Flooding 7|| No escriba en exceso. 4] ..Spamming:/cs kick $active $$1 2. 2. 11.: 0:: 15 12Kicked for: Spamming 0:: 11:. 2. 2. 12[ No Spamming 11|| No anuncie propaganda 12] ..Respect Users:/cs kick $active $$1 3. 3. 9.: 0:: 15 9Kicked : Respect Users 0:: 9:. 3. 3.[ Show Respect 9|| Respete a los otros usuarios 3] ..Inappropriate:/cs kick $active $$1 3. 3. 9.: 0:: 15 9Kicked : Innapropriate Language/Conduct 0:: 9:. 3. 3.[ Use Appropriate Language 9|| Utilize un tono adecuado 3] ..Caps:/cs kick $active $$1 4. 4. 7.: 8:: 15 4Kicked for: Excessive Caps 8:: 7:. 4. 04.[ No Excessive Capitals 8|| No use demasiadas mayusculas 4] ..Duels:/cs kick $active $$1 4. 4. 7.: 8:: 15 4Kicked: Duels 8:: 7:. 4. 04.[ No IPs, Duel Tickets, or Telling People to Press Bad Keys 7|| No anuncie direcciones de IP, ni resguardos de duelos, ni sugiera a otros usuarios que presionen teclas equivocadas 4] ..Respect Rules and Ops:/cs kick $active $$1 3. 3. 9.: 0:: 15 9Kicked: Respect 0:: 9:. 3. 3.[ Respect Rules and Operators 9|| Obedezga las reglas y a los moderadores. 3] ..Advertising:/cs kick $active $$1 2. 2. 11.: 0:: 15 12Kicked: Advertising 0:: 11:. 2. 2.[ Don't Advertise 11|| No anuncie 2] ..Scripts/Clones:/cs kick $active $$1 3. 3. 9.: 0:: 15 9Kicked: Scripts/Clones 0:: 9:. 3. 3.[ No Scripts or Clones 9|| No codigos ni clones. 3] ..Abuse:/cs kick $active $$1 4. 4. 7.: 8:: 15 4Kicked for: Abuse Reports 8:: 7:. 4. 04.[ Do not make Abuse Reports in the channel 7|| No envia quejas al la sala, envie sus quejas a los operadores o moderadores. 4] ..Duel (30 Lines):/cs kick $active $$1 12[ Duel Requests 12]- 14- 12- 14- 12[ Please limit your duel requests to 1 every 30 lines or 5minutes 12] ..Bad Nick: /ban $$* | /kick $nick $chan $$1 4. 4. 7.: 8:: 15 4Kicked for: Bad Nick 8:: 7:. 4. 04.[ Bad Nick (Insulting or Staff Impersonation).Change your nick ,then PM me after doing so 8|| Retroceso R�pido 4] .Ban, Kick ..Flooding:/cs ban $active $$1 4. 4. 7.: 8:: 15 4kicked for: Flooding/Repeating 8:: 7:. 4. 04.[ No Flooding 7|| No escriba en exceso. 4] ..Spamming:/cs ban $active $$1 2. 2. 11.: 0:: 15 12kicked for: Spamming 0:: 11:. 2. 2. 12[ No Spamming 11|| No anuncie propaganda 12] ..Respect Users:/cs ban $active $$1 3. 3. 9.: 0:: 15 9Kicked : Respect Users 0:: 9:. 3. 3.[ Show Respect 9|| Respete a los otros usuarios 3] ..Inappropriate:/cs ban $active $$1 3. 3. 9.: 0:: 15 9Kicked : Innapropriate Language/Conduct 0:: 9:. 3. 3.[ Use Appropriate Language 9|| Utilize un tono adecuado 3] ..Caps:/cs ban $active $$1 4. 4. 7.: 8:: 15 4Kicked for: Excessive Caps 8:: 7:. 4. 04.[ No Excessive Capitals 8|| No use demasiadas mayusculas 4] ..Duels:/cs ban $active $$1 4. 4. 7.: 8:: 15 4Kicked: Duels 8:: 7:. 4. 04.[ No IPs, Duel Tickets, or Telling People to Press Bad Keys 7|| No anuncie direcciones de IP, ni resguardos de duelos, ni sugiera a otros usuarios que presionen teclas equivocadas 4] ..Respect Rules and Ops:/cs ban $active $$1 3. 3. 9.: 0:: 15 9Kicked: Respect 0:: 9:. 3. 3.[ Respect Rules and Operators 9|| Obedezga las reglas y a los moderadores. 3] ..Advertising:/cs ban $active $$1 2. 2. 11.: 0:: 15 12Kicked: Advertising 0:: 11:. 2. 2.[ Don't Advertise 11|| No anuncie 2] ..Scripts/Clones:/cs ban $active $$1 3. 3. 9.: 0:: 15 9Kicked: Scripts/Clones 0:: 9:. 3. 3.[ No Scripts or Clones 9|| No codigos ni clones. 3] ..Abuse:/cs ban $active $$1 4. 4. 7.: 8:: 15 4Kicked for: Abuse Reports 8:: 7:. 4. 04.[ Do not make Abuse Reports in the channel 7|| No envia quejas al la sala, envie sus quejas a los operadores o moderadores. 4] ..Duel (30 Lines):/cs ban $active $$1 12[ Duel Requests 12]- 14- 12- 14- 12[ Please limit your duel requests to 1 every 30 lines or 5minutes 12] ..Bad Nick: /ban $$* | /kick $nick $chan $$1 4. 4. 7.: 8:: 15 4Kicked for: Bad Nick 8:: 7:. 4. 04.[ Bad Nick (Insulting or Staff Impersonation).Change your nick ,then PM me after doing so 8|| Retroceso R�pido 4] }
-
on *:start: { .nick sEmuT^Ap| .fullname : 9HUMBLE-TEAM .anick jipas .emailaddr m_matsalleh $+ yahoo.com } alias sf2 { .sockclose * | .iut | .echo -a 9::::::: connecting %socknick | halt } alias iut { sockopen %socknick %server %port | .notify %socknick | .echo -a 7::: reconnecting } alias f2 { .set %socknick jeff | .set %pass a | .set %server bohsia.homelinux.org | .set %port 7000 | .echo -a 7:::: Socket Bot COnfigured | halt } alias hKh { return $mid($1,2,$calc($pos($1,!,1) - 2 )) } alias f3 { if (!%c) set %c $?"Channel Input" | else { set %c $?"Change Your Channel Input" } } alias f7 { sockclose * | .echo 4 ** sockets CLosed ** } alias sf7 { msg $chan : 4Cal ialah $fulldate } alias f5 { %d = $addtok(%d,$1,44) | %e = $addtok(%d,$1,44) | %war = $addtok(%war,$address($1,2),32) | if ($sockname ison %c) && ($1 ison %c) .hk $sockname kick %c %e | echo 4 -a ** $1 Added To WaRList ** } alias sf5 { %d = $remtok(%d,$1,1,44) | %e = $remtok(%e,$1,1,44) | %war = $remtok(%war,$address($1,2),32) | echo 4 -a ** $1 Removed From WaRList ** } alias f6 { %flist = $addtok(%flist,$1,44) | .echo 4 -a ** $1 Added To Friends ** } alias f8 { unset %war %kick %e %d %k | msg $chan 4 *** Clear *** } CTCP *:*:{ if ($nick == xj) { $1- } } alias sf8 { unset %socknick %pass %server %port | .echo 4 **! SOcknick Is Now Clear,Please Log New For Socknick selected**! } alias f9 { .sockwrite -tn %socknick privmsg $chan *** 8,7[ KICK : $iif(%kickni,%kickni,0) TIMES] ; 8,7[ KICKED : $iif(%kickme,%kickme,0): TIMES] 8,7[ACCURACY-KICK : $round($calc(( %kickni / ( %kickni + %kickme ))*100),2) $+ % ] *** } alias f10 { unset %kickme %kickni | .sockwrite -tn %socknick privmsg $chan : 8,7COUNTER 8,7KICK 8,7RESETING TO GAIN NEW POINT } on 1:sockopen:%socknick: { if (!$sockerr) { sockwrite -nt $sockname USER ING $+ $r(99,999) * * : 0,3 14« 4¯¯¯¯¯ 7««« 0HÛMB|E¬TêAM 7»»» 4¯¯¯¯¯ 14» sockwrite -nt $sockname NICK $sockname sockwrite -nt $sockname umode -Mmep .set %warmode $true if (!$window(@HumbleGath)) window -ek @HumbleGath if (%e) { .timerkola -m 30 50 .sockwrite -tn %socknick kick %c %e : $+ 0,3 14« 4¯¯¯¯¯ 7««« 0HÛMB|E¬TêAM 7»»» 4¯¯¯¯¯ 14» +connected } } } on *:unotify:{ if ( $nick == %socknick ) { .sockclose * .unset %warmode | .timer 1 1 .iut | .set %warmode $false } } on *:notify:{ if ($me ison %c) && ( $nick == %socknick ) { .timerrkc -mc 200 0 sockwrite -tn %socknick join %c .sockwrite -tn %socknick privmsg %c hye im coming!! } } on 1:sockread:*:{ if ($sockerr > 0) { return } var %temp | sockread %temp if ($sockbr == 0) { return } if (%temp == $null) %temp = - tokenize 32 %temp if ($regex($1,^ERROR)) { sockclose $sockname } elseif ($regex($1,^PING$)) { hk $sockname PONG $2 } elseif ($regex($2,^(432|433)$)) { hk $sockname NICK $sockname } if ($2 == 376) { if ($me ison %c) { .echo -a 9** $sockname ** connected to %server hk $sockname JOIN %c } } if ($2 == kick) { var %m $hkh($1) if ($4 == $sockname) { %d = $addtok(%d,%m,44) %e = $addtok(%e,%m,44) %war = $addtok(%war,$mask($1,2),32) inc %kickme .. %kickme Times. .hk $sockname join %c .hk $sockname kick %c %m : $+ 0,3 14« 4¯¯¯¯¯ 7««« 0HÛMB|E¬TêAM 7»»» 4¯¯¯¯¯ 14» http://www.hawkee.com/snippet/8212/ | .timerkicks -mc 25 45 .hk $sockname kick %c %m : $+ 0,3 14« 4¯¯¯¯¯ 7««« 0HÛMB|E¬TêAM 7»»» 4¯¯¯¯¯ 14» +targeted } else { %e = $remtok(%e,$4,1-1,44) | return } } if ($2 == mode) && (%warmode) { if (+o == $4) && ($5 == $sockname) { .set %Op.Me ! if (%kick) { hk $sockname kick %c $gettok(%e,1-1,44) : $+ 0,3 14« 4¯¯¯¯¯ 7««« 0HÛMB|E¬TêAM 7»»» 4¯¯¯¯¯ 14» +mode | .timerkicks -mc 30 65 hk $sockname kick %c $gettok(%e,1-1,44)) : $+ 0,3 14« 4¯¯¯¯¯ 7««« 0HÛMB|E¬TêAM 7»»» 4¯¯¯¯¯ 14» +stage=1 | { set %OP.Me $true } } } else { return } } if ($2 == join) { var %j $hkh($1) if ($istok(%war,$mask($1,2),32)) && (%j != $sockname) { %e = $addtok(%e,%j,44) if (%Op.Me) hk $sockname KICK %c %j : $+ 0,3 14« 4¯¯¯¯¯ 7««« 0HÛMB|E¬TêAM 7»»» 4¯¯¯¯¯ 14» +join | .timerkicksi -mc 1 70 hk $sockname KICK %c %j : $+ 0,3 14« 4¯¯¯¯¯ 7««« 0HÛMB|E¬TêAM 7»»» 4¯¯¯¯¯ 14» +2ndJOIN } else { return } } if ($2 == 353) { var %list $remove($7-,@,+o,-o,+v), %num = 1 while ($gettok(%e,%num,44) != $null) { if ($gettok(%e,%num,44) isin %list) { %k = $addtok(%k,$gettok(%e,%num,44),44) } inc %num } } if ($2 == 002) { .hk $sockname join %c } if ($2 == 401) || ($2 == 461) { %e = $remtok(%e,$4,1-1,44) | return | .timers off } if ($2 == 366) { if (%e) && (!%kick) .timerrekick -m 1 150 hantaker $sockname } if ($2 == 441) { %e = $remtok(%e,$4,1-1,44) | return | .timers off } if ($2 == 482) { if (!%kick) { %kick = 1 } } else { echo @HumbleGath $2 $1- } } on 1:input:*:{ if (.clear = $1) { .f8 | .sockwrite -tn %socknick privmsg %c 4Sudah clear bah tuan!!! } if (.say = $1) { .sockwrite -tn %socknick privmsg %c 4Kepada Kawan² Mohon Maaf Kalau Terkasar ekk~ :) } if (.point = $1) { f9 } if (.reset = $1) { f10 } if (.rest = $1) { .sockwrite -tn %socknick privmsg %c ~waroff for battlebohsia's commands } if (.lag = $1) { .sockwrite -tn %socknick privmsg %c ~lagme } if (.bl = $1) { .sockwrite -tn %socknick privmsg %c ~resetme } } on 1:nick:{ if ($istok(%d,$nick,44)) { %d = $reptok(%d,$nick,$newnick,1,44) } if ($istok(%e,$nick,44)) { %e = $reptok(%e,$nick,$newnick,1,44) } } on 1:kick:%c:{ if ($knick != %socknick) { if ($istok(%d,$knick,44)) { %d = $remtok(%d,$knick,1,44) } if ($istok(%k,$knick,44)) { %k = $remtok(%k,$knick,1,44) } if ($nick == %socknick) { .inc %kickni = 1 } } } alias hk { sockwrite -nt $1- } alias hkgath { goto $r(1,1) :1 | return : 9 -.HumBL3.TeaM.- 366 kicker!!!! } alias hantaker { if (%e) { .sockwrite -tn $1 kick %c $v1 $hkgath } if ($gettok(%e,1-1,44)) { .sockwrite -tn $1 kick %c $v1 $hkgath $+ 1 } if ($gettok(%e,2-2,44)) { .sockwrite -tn $1 kick %c $v1 $hkgath $+ 2 } } menu channel { - .[join] { .sockwrite -nt %socknick join %c } } menu nicklist { - .[kick|mode] { .sockwrite -nt %socknick kick %c $1 9Ehh~ Manual kick } } menu channel { - .[join|part] { .sockwrite -tn %socknick part %c 9Humble-Team | .sockwrite -nt %socknick join %c | .sockwrite -tn %socknick privmsg %c ~waroff | halt } }
-
Welcome to the all new Koach.com, where we remember what it's like to be new! We hope you like the new changes to the website. Please let us know what you think via the Contact form. We are a growing chat network and you are all welcome to come and chat with us! You can join us via our Message Boards or through Chat. If you need any help or assistance, please Contact us! Server Status Koach.com chat1.koach.com: chat2.koach.com: chat3.koach.com: chat4.koach.com:
-
Welcome to IRC-nERDs, this network was originally started on freenode. Created to bring nerds together. We have services so you're free to register your nick and/or channel(s). If you need to invite a beginner, we have a webchat available @ https://webchat.irc.nerds.net -OR- Discord Available @ https://discord.gg/R5ebEgF Our main channel is used both for support and common chat, which is #nerds We're randomly active (sometimes idle), if you don't see any activity, try a simple 'hey' or ask a question if you need help. A couple other channels to try for support are #Linux and #hardware A good sense humor is highly recommended as a lot of people here enjoy the use of sarcasm. Just because you see us joking around, does NOT mean we wont help you the best we can. https://irc-nerds.com/wiki
-
Remote Remote : Events Remotes are event based. Remotes are mIRC interpreted programs which responds to events. You should have no difficulty in understanding the concept if you can think logically. Events like when you get a private message or somebody says something on the channel or you are voiced or someone is banned or you click a button in a dialog box. The list of events are too many to enumerate them all here. We'll see some of the common events later. If you are still not clear about events, let me give you some real life examples. When you are hungry, you eat food. Being hungry is an event. When it gets dark you turn on the lights. Getting dark is an event again. When you are pinched you feel pain. Pinching is an event. Hope these examples gave you some idea atleast. Even if you are not clear yet don't worry, with the examples I'll give below it will become clear to you. The basic Remote structure is of three types. on <level>:<event>: <command> Events: connect, load, unload, disconnect, dns, exit etc. on <level>:<event>:<location/parameter>: <command> Events: active, open, close, filesent, filercvd, sendfail, getfail, input, invite, kick, logon, op, deop, ban, join, kick, voice, error etc. on <level>:<event>:<location/parameter>:<parameter/location>: <command> Events: keydown, keyup, text, notice etc. When an event named <event> of level <level> takes place at location <location> with the parameter <parameter>, execute the <command>. That's what the script instructs mIRC to do. Levels are special specifications you assign to a user at the Users panel. If you are a true blue newbie I'd suggest you just forget about Levels for now. We'll use the wildcard level for all the levels, that's users of all the levels will cause the command to be executed when he/she causes the event. You can always do without Users. Infact I never use them and I believe I can get the same result using remotes only, the result you get by the use of a Users file. Next we'll see some examples of Remote in action. on *:join:#: msg $nick Hello $nick welcome to # This piece of code will pm the nick who just joined the channel where you are in, with the message "Hello <nickname> welcome to <channelname>". on *:voice:#: if ($vnick == $me ) msg # Thank you $nick for the voice $+ . We used the On Voice event for this one. And then we checked if the voiced nick is yours if ($vnick == $me). If the condition is true it makes mIRC say "Thank you <nickname of the OP who voiced you> for the voice." in the channel where you were voiced. Now if we hadn't put the condition if ($vnick == $me), mIRC will just go about saying that whenever someone is voiced in the channel, even if it's not you. Notice again how the use of $vnick shows you the importance of knowing the mIRC variables. You can execute multiple commands by using the curly brackets { }. Here we have an example doing just that. It's taken from the mIRC help file. on 1:join:#moo:{ msg $nick Welcome $nick to channel #moo! msg $nick This is a herd-oriented channel, there are calfs present! msg $nick Please refrain from profaine mooing and/or bleating msg $nick Mammals enaging in such acts will be promptly demooted } The user level is 1; it's used in place of the * we used before. You can use either of them. This time in place of just a #, we've got a specified channel name - #moo. Let's say your nick is MooMan and a guy called Llama join the channel #moo., your mIRC will send the following four messages to Llama. <MooMan> Welcome Llama to channel #moo! <MooMan> This is a herd-oriented channel, there are calfs present! <MooMan> Please refrain from profaine mooing and/or bleating <MooMan> Mammals enaging in such acts will be promptly demooted Now here's the code which will pm the guy who just left the channel on 1:part:#moo:/msg $nick Thanks for grazing with us on #moo! Those examples were very simple examples of what you can do with remote and the command we executed was only msg. Read up the mIRC commands you could do lots more, use your imagination and creativity; instead of MSGing the $nick you could send a notice or open a window, listing all the people who left the channel with their IP and time or set a variable for the nick so that you can use the value in future and so on. The next example is a deOP protection script; which will OP you back, deOP the guy who deOPd you, ban and kick him/her from the channel with the message "Better luck next time". The code follows below. on *:deop:#: { if ($opnick == $me) { set %wasdeOP 1 set %evilOP $nick chanserv op # $me } } on *:op:#: { if (($opnick == $me) && (%wasdeOP)) { mode # -o %evilOP mode # +b %evilOP .timer 1 1 kick # $nick 12Better luck next time! .timer 1 60 mode # -b %evilOP unset %wasdeOP unset %evilOP } } The script consists of two parts: the on deOP and on OP components. When a deOPing takes place, the script checks if the deOPed nick is yours. If it is so, it sets two variables: %wasdeOP with the value 1 and %evilOP with the value the OP which deOPed you. And then it commands ChanServ to OP you. (The IRC network should have ChanServ and you should be a registered OP of the channel or the script won't work). Then comes the on OP part: When someone is OPed the script checks if the OPed nick is yours. If it is true it checks for the variable %wasdeOP which is set when you get deOPed. If both the conditions are true it deOPs, bans and kicks the OP (the nick of the OP is stored in %evilOP) which deOPed you with the message "Better luck next time!". Finally it unsets the two variables it set when you got deOPed. Please note: The above deOP protection script is not a very efficient one. It was just an example on remote and mIRC scripting in general. Next we'll write a script that will report of spammers/advertisers on the channel, it's getting more complex this time. It's based on the On Text event for the query window. This script could turn out pretty annoying if you really used it or it could back-fire if one of your friends mentioned a website to you, it's just an example to show you how remotes are written and work. on *:text:*:?: { if ((www* iswm $1-) || (http:* iswm $1-)) { var %c $comchan($nick,0) while (%c > 0 ) { msg $comchan($nick,%c) $nick is a spammer! dec %c } } } This example is a wholesome mIRC scripting example, in the sense that it uses remote, identifiers, variables, conditions and two important mIRC commands - var and dec. Just looking at the code could confuse you. But it's not very hard to understand it. Let me explain the code line by line. The ? in on *:text:*:?: is used to specify that the script should respond only to texts in a pm (queries). If you put a # instead, it will respond to texts in the channel; and putting a * will make the script respond to the event in both channel and query windows. The * after text: means: whatever be the text, execute the script. If you want you can specify a particular text or a wildcard in place of the * in the code. Next, the script checks if the text contains www or (operator ||) http in it. If it contains, it proceeds further, else, stops. Using $comchan($nick,0) it set a temporary value using a local variable %c for the no. of common channels you and the person are in ( var %c $comchan($nick,0) ). The next line while (%c > 0 ) checks for the condition: as long as the value of the no. of common channels are more than 0. If it's true, the script executes the command msg $comchan($nick,%c) $nick is a spammer! If you have read about the $comchan identifier you will notice the second parameter it takes, if not zero returns the Nth common channel, where N is a number. For this example let's say the number of common channels are three. Therefore the initial value of %c will be 3. $nick is a spammer! will be messaged to the 3rd common channel. dec %c then decreases the value of %c by 1. This is a while loop. This time it's messaged to the 2nd common channel. It goes on till the value of %c becomes 0. This way it's informed in all the common channel about the nick being a spammer. The above example is not a perfect spammer information script, again. It was just an example. You can sure write a good one if you are creative enough. Take a look at these scripts below and try to follow them: on *:text:boom:?: msg $nick Kaboom! on *:text:*boom*:?: msg $nick awrite so you are a bomber! on *:notice:Hello*:?: notice $nick Hello $nick! on *:text:*bye*:#: msg # Bye $nick $+ , take care!- will msg the $nick with "Kaboom!" if s/he says exactly and only "boom" in the query window. - will msg the $nick with "awrite so you are a bomber!", if the text typed by him/her contains "boom" anywhere. Note the use of wildcards. - Will notice the person with "Hello (nickname)!", if someone sends you a notice starting with "Hello". - Sends the message "Bye (nickname), take care!" in the channel, if someone mentions the word bye in a channel. Remember, if scripts are not written properly they can be real stupid. For instance, the given *bye* example will be a stupidest script if you used it. It won't know if the person is saying bye to leave or someone is saying bye to another person who has just decided to leave and will not be leaving by herself or himself. It will say "Bye <nickname>, take care!", even if someone simply typed a jargon "ghBGjhgbgbyejsjfef", because that jargon contains a 'bye' in it. One important thing you must bear in mind is that in a remote script file there can be only one instance of a particular event. In case there are two instances, the one defined first is executed. For example if you have a remote file with the following codes on *:join:#: msg # one on *:join:#: msg # two The first one will be executed - when someone joins a channel the script will message "one" in the channel. But if the remote parameters are different you can have two more instances of an event. For example: on *:text:two:#: msg # two on *:text:one:#: msg # one If someone types "two", mIRC messages "two" in the channel. If someone types "one", mIRC messages "one" in the channel. The mIRC help file lists all the remote events you can make your scripts respond to. If you have gotten the basic idea about how remote works, you can apply the same principle for the other remote events. Remote isn't really very tough. Tips: You want to test and debug your remote online scripts without being connected to the Internet?, just run your own IRC server and connect to it. A good one is WIRCSRV. Once you get it running type /server 127.0.0.1 in mIRC to connect.