Jump to content

chain

Administrators
  • Posts

    5,718
  • Joined

  • Last visited

  • Days Won

    13

chain last won the day on August 20

chain had the most liked content!

2 Followers

About chain

  • Birthday 01/26/1962

Contact Methods

  • Website URL
    http://www.coders-resources.net

Profile Information

  • Gender
    Male
  • Location
    Montreal,Quebec
  • Interests
    scripting and chatting

Recent Profile Visitors

28,514 profile views

chain's Achievements

Grand Master

Grand Master (14/14)

  • Dedicated Rare
  • First Post Rare
  • Collaborator Rare
  • Posting Machine Rare
  • Conversation Starter Rare

Recent Badges

27

Reputation

  1. 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 support for big float calculations using MAPM library.Fixed script parser bug when handling non-while/if { } brackets.Updated zlib library to v1.2.13.Fixed !. command prefixes used infront of while/if commands affecting following command.Added identifiers $cbrt(), $log2(), $powmod(), $modinv(), $gcd(), and $lcm().Changed confirm paste in a single line editbox to only warn if the line contains CRLF characters.Fixed script popup menu in menubar not working in fullscreen mode.Updated OpenSSL library to v1.1.1s.Changed $totp()/$htop() to improve parameter validation and support longer timestep and digits.Changed how $bfind().regex matches against a &binvar.Updated CA root certificates cacert.pem file.Updated TagLib library to v1.13.In total, there have been over 20 changes since the last release.For a full list of recent changes, please see the versions.txt file. As always, the latest version of mIRC can be downloaded from the download page. Read full article @ https://www.mirc.com/news.html
  2. In the coming weeks I will be working on the sister site of ours called coders-irc. This site is mainly knowledge on IRC servers & Scripting & other various programs that are used on IRC servers. We have our Web developer who when he gets a chance will be working on a Forum for here. We have started to add a few pages on the top menu, & will continue adding IRC scripts & Snippets. Our goal to to keep all irc scripts and snippets alive and handy that people from all various IRC servers will continue to use & continue to make, these snippets and IRC scripts as once was on Hawkee. IRC will never die as people think it has. IRC is alive and kicking thanks to people who run the server Nerds who generate all servers together by pylinking and creating a huge mass of IRC users all together. There are people that want to see IRC once again grow huge as it still unites people from various countries to chat together. If you have idea's for the coders-irc site do come on the server & bring your idea's or if you need to see what pylinking is all about come to the server and meet the people that can set you up. Our Server Links 1. cs1.coders-irc.net 2. cs3.coders-irc.net 3. irc.coders-irc.net ( round robin)
  3. chain

    IRC UNO

    A mimic of the uno card game. This game is alot of fun. I've been playing with a couple of my friends everyone loves it. If you don't know how to play its very easy to learn. There is also a top 10 list so everyone can compete to be the best. Heres a list of commands: !uno - This command is used to start an uno game. The player that types this becomes player 1. !join - This allows you to join the game (at any time). !deal - This command starts the game (as long as you have 2+ players). It can only be typed by player 1 (the person who typed !uno). !unostop - This command ends the current uno game and can only be used by player 1. !quit - This command removes you from the current game. If used by player 1, player 2 becomes player 1 and in charge of the game. !kickplayer - This command allows player 1 to kick people from the current game for some reason like if they don't know how to play. !cards - This command shows you your cards. !count - This command shows all the players and the number of cards they have left. It also shows who's turn it is. !topcard - This command shows the top card. !draw - This command draws you a card from the deck. !pass - This command passes to the next person (you must draw once to use this). !play - This command allows you to play cards. !score - This command shows you how many wins the given nick has. !top10 - This command shows you the top 10 uno players and their wins. on *:start:{ hmake uno 50 if ($isfile(uno.dat)) hload uno uno.dat } on *:exit: hsave uno uno.dat on *:nick:{ var %i = $hget(0), %c while (%i) { if ($newnick ison $hget(%i)) { %c = $v2 break } dec %i } if ($hget(%c,$nick)) { hadd %c $newnick $v1 hadd %c $hfind(%c,$nick).data $newnick } } on *:quit:{ var %i = $hget(0), %c while (%i) { if ($me ison $hget(%i)) && ($hget($hget(%i),$nick)) remplayer %c $nick $nick has been removed from the current game. dec %i } } on *:part:#:{ if (!$hget(#)) return if ($hget(#,$nick)) remplayer # $nick $nick was removed from the current game. elseif ($nick == $me) hfree # } on *:kick:#:{ if (!$hget(#)) return if ($hget(#,$nick)) remplayer # $nick $nick was removed from the current game. elseif ($nick == $me) hfree # } on $*:text:/^[@!.](uno)?score/Si:#:{ var %u = $iif($2,$2,$nick) $iif($left($1,1) == @,msg #,notice $nick) %u has $bytes($iif($hget(uno,%u),$v1,0),b) wins. } on $*:text:/^[@!.](uno)?top10$/Si:#:{ var %x, %i = $hget(uno,0).item, %o while (%i) { %x = $instok(%x,$hget(uno,$hget(uno,%i).item),0,32) dec %i } %x = $sorttok(%x,32,nr) %i = 1 while (%i <= 10) { if (!$hget(uno,%i).item) break %o = $addtok(%o,$ord(%i) $+ : $hfind(uno,$gettok(%x,%i,32),$calc($findtok(%o,$gettok(%x,%i,32),0,32) +1)).data - $bytes($gettok(%x,%i,32),b) |,32) inc %i } $iif($left($1,1) == @,msg #,notice $nick) $left(%o,-1) } on $*:text:/^[@!.]uno$/Si:#:{ if ($hget(#,players)) notice $nick There is already an uno game in progress in # $+ . else { if ($hget(#)) hfree # hmake # hadd # p1 $nick hadd # $nick $cards(7) hinc # players msg # $nick has started 3U04N12O v2.0 by BrAndo. Type !join to join the game. notice $nick Type !deal to start the game. } } on $*:text:/^[@!.]?join$/Si:#:{ if (!$hget(#,p1)) return elseif ($hget(#,$nick)) notice $nick You are already playing! else { hinc # players hadd # p $+ $hget(#,players) $nick hadd # $nick $cards(7) msg # $nick will be player $hget(#,players) $+ . } } on $*:text:/^[@!.](deal|start( ?game)?|play|begin)$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. elseif ($hget(#,turn)) notice $nick The game has already started. elseif ($nick != $hget(#,p1)) msg # Only $v2 can start the game. elseif ($hget(#,players) !> 1) msg # You need atleast two people to play. else { var %c = 01 while (01* iswm %c) %c = $cards(1) hadd # top %c hadd # turn 1 hadd # rev $true msg # $hget(#,p1) $+ 's turn. msg # Top card: $hget(#,top) notice $nick Your cards: $hget(#,$nick) } } on $*:text:/^[@!.](endgame|uno(stop|end))$/Si:#:{ if (!$hget(#,p1)) return elseif ($nick != $hget(#,p1)) msg # Only $v2 can end the game. else { hfree # msg # Game ended by $nick $+ . } } on $*:text:/^[@!.]quit$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. else remplayer # $nick $nick has left the game. } on $*:text:/^[@!.]kickplayer (.+)$/Si:#:{ if (!$hget(#,p1)) return elseif ($nick != $hget(#,p1)) msg # Only $v1 can kick people from the game. elseif (!$hget(#,$regml(1))) msg # $regml(1) is not in this game. else remplayer # $regml(1) $regml(1) has been kicked from the game by $nick $+ . } on $*:text:/^[@!.](show)?(hand|cards?)$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. else notice $nick Your cards: $hget(#,$nick) } on $*:text:/^[@!.](uno)?count$/Si:#:{ if (!$hget(#,p1)) return else { $iif($left($1,1) == @,msg #,notice $nick) Current score: $regsubex($str(.,$hget(#,players)),/./g,$+($hget(#,p\n),:,$chr(32),$numtok($hget(#,$hget(#,p\n)),32),$chr(32))) $iif($left($1,1) == @,msg #,notice $nick) Its $hget(#,p $+ $hget(#,turn)) $+ 's turn. } } on $*:text:/^[@!.]topcard$/Si:#:{ if (!$hget(#,p1)) return msg # Top card: $hget(#,top) } on $*:text:/^[@!.]draw ?(card)?$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. elseif ($hget(#,p $+ $hget(#,turn)) != $nick) notice $nick It is not your turn. else { var %c = $cards(1) hadd # $nick $instok($hget(#,$nick),%c,0,32) notice $nick You drew: %c hadd # pass $nick } } on $*:text:/^[@!.]pass$/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. elseif ($hget(#,p $+ $hget(#,turn)) != $nick) notice $nick It is not your turn. elseif ($hget(#,pass) != $nick) notice $nick You have to draw once first. else { nextturn var %nnick = $hget(#,p $+ $hget(#,turn)) msg # %nnick $+ 's turn msg # Top card: $hget(#,top) notice %nnick Your cards: $hget(#,%nnick) hdel # pass } } on $*:text:/^[@!.]play/Si:#:{ if (!$hget(#,p1)) return elseif (!$hget(#,$nick)) notice $nick You aren't in this game. elseif ($hget(#,p $+ $hget(#,turn)) != $nick) notice $nick It is not your turn. elseif (!$iscard($2-)) notice $nick Syntax: !play <color> <card> or !play WD4/W <color> elseif (!$hascard($2-,$nick)) notice $nick You don't have that card. else { noop $regex($iscard($2-),/^\x03(\d{2})(\[.+?\])$/) var %co = $regml(1), %c = $regml(2) if (%co isin $hget(#,top)) || (%c == $strip($hget(#,top))) || (%c == [*]) { delcard $nick $2- hadd # top $iscard($2-) if (%c == [D2]) { nextturn var %snick = $hget(#,p $+ $hget(#,turn)), %nnick, %msg hadd # %snick $instok($hget(#,%snick),$cards(2),0,32) nextturn %nnick = $hget(#,p $+ $hget(#,turn)) %msg = %snick draws 2 cards and is skipped! %nnick $+ 's turn. } elseif (%c == [S]) { nextturn var %snick = $hget(#,p $+ $hget(#,turn)), %nnick, %msg nextturn %nnick = $hget(#,p $+ $hget(#,turn)) %msg = %snick is skipped, %nnick $+ 's turn. } elseif (%c == [R]) { hadd # rev $iif($hget(#,rev),$false,$true) nextturn var %nnick = $hget(#,p $+ $hget(#,turn)), %msg = $nick reversed it $+ $chr(44) %nnick $+ 's turn. } elseif (%c == [*]) && (4 isin $2-) { nextturn var %snick = $hget(#,p $+ $hget(#,turn)), %nnick, %msg hadd # %snick $instok($hget(#,%snick),$cards(4),0,32) nextturn %nnick = $hget(#,p $+ $hget(#,turn)) %msg = %snick draws 4 and is skipped! %nnick $+ 's turn. } elseif (%c == [*]) { nextturn var %nnick = $hget(#,p $+ $hget(#,turn)), %msg = %nnick $+ 's turn. } else { nextturn var %nnick = $hget(#,p $+ $hget(#,turn)), %msg = %nnick $+ 's turn. } if ($numtok($hget(#,$nick),32) == 1) msg # $nick has 3U04N12O! elseif (!$v1) { msg # Congratulations $nick you win!!! hfree # hinc uno $nick return } msg # %msg msg # Top card: $hget(#,top) notice %nnick Your cards: $hget(#,%nnick) hdel # pass } else notice $nick That card doesn't play. } } alias cards { var %c = 12[1] 12[2] 12[3] 12[4] 12[5] 12[6] 12[7] 12[8] 12[9] 09[1] 09[2] 09[3] 09[4] 09[5] 09[6] 09[7] 09[8] 09[9] $& 08[1] 08[2] 08[3] 08[4] 08[5] 08[6] 08[7] 08[8] 08[9] 04[1] 04[2] 04[3] 04[4] 04[5] 04[6] 04[7] 04[8] 04[9] 01[WD4] $& 01[WD4] 01[WD4] 01[WD4] 12[D2] 12[D2] 09[D2] 09[D2] 08[D2] 08[D2] 04[D2] 04[D2] 12[S] 12[S] 09[S] 09[S] 08[S] 08[S] $& 04[S] 04[S] 12[R] 12[R] 09[R] 09[R] 08[R] 08[R] 04[R] 04[R] 01[W] 01[W] 01[W] 01[W] var %i = $1, %o while (%i) { %o = $instok(%o,$gettok(%c,$r(1,68),32),0,32) dec %i } return %o } alias iscard { if ($regex($1,/^([bgyr])\w* (\d)$/i)) return $+($col($regml(1)),[,$regml(2),]) elseif ($regex($1,/^w(?:ild)? ?d?(?:raw)? ?4? ([bgyr])/i)) return $col($regml(1)) $+ [*] elseif ($regex($1,/^([bgyr])\w* d(?:raw)?2$/i)) return $col($regml(1)) $+ [D2] elseif ($regex($1,/^([bgyr])\w* ([sr])\w*$/i)) return $+($col($regml(1)),[,$upper($regml(2)),]) } alias col { if ($1 == b) return 12 elseif ($1 == g) return 09 elseif ($1 == y) return 08 else return 04 } alias nextturn { var %c = $iif(#,#,$1) $iif($hget(%c,rev),hinc,hdec) %c turn if (!$hget(%c,p $+ $hget(%c,turn))) hadd %c turn $iif($hget(%c,rev),1,$hget(%c,players)) } alias hascard { var %c = $iscard($1) if ($strip(%c) == [*]) { if (4 isin $1) return $istok($hget(#,$2),01[wd4],32) else return $istok($hget(#,$2),01[W],32) } else return $istok($hget(#,$2),%c,32) } alias delcard { var %c = $iscard($2-), %o if ($strip(%c) == [*]) %o = $iif(4 isin $2-,01[wd4],01[W]) else %o = %c hadd # $1 $remtok($hget(#,$1),%o,1,32) } alias remplayer { var %p = $hfind($1,$2).data, %i = $right(%p,-1) hdel $1 $2 hdel $1 %p hdec $1 players msg $1 $3- if ($hget($1,players) == 1) { msg $1 Game ended, you need atleast two people to uno. hfree $1 } else { if (!$hget($1,p $+ $hget($1,turn))) { if (!$hget($1,top)) return nextturn $1 var %nnick = $hget($1,p $+ $hget($1,turn)) msg $1 %nnick $+ 's turn. msg $1 Top card: $hget($1,top) notice %nnick Your cards: $hget($1,%nnick) } while (%i <= $hget($1,players)) { hadd $1 p $+ %i $hget($1,p $+ $calc(%i +1)) hdel $1 p $+ $calc(%i +1) inc %i } } }
  4. Now Playing script for internet radio stations. It uses a SHOUTcast admin page for a given station. Just Played. Will show up to the last 9 songs played on the given station. Commands: !np or !nowplaying will show current song !np [station name] [c,count,l,listner] Shows current listner count. !np [station name] url will show the url of said site. !np [station name] status will show the current status of the stream [Online or Offline] !jp or !justplayed or !lp or !lastplayed will show previous 3 songs !jp [1-9] will show previous 1 or up to 9 previous songs. Default settings allow normal/voice to call up to 5 previous songs. Op/Owners can call up all 9 previous songs. Flood protection is added in to keep a user from calling up the history list more than once in a short period of time. !np [help] Code may look long and complicated, I just have added a lot of notes and comments for future modifications and so I remember what I did. 2012-05-08 - v2.1 Original creation Released to the public. 2012-05-24 - v3.0 Released. Merged personal Just playing script with Now Playing script to create a full feature script. See bottom of script for Version history ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Now Playing ;;;;;;;;;;;;via SHOUTcast ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;ft JustPlayed;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eqrunner;;;;;;;;;;;;v 3.0;;;;;;;;;;;;;;;;;;;;; /* !nowplaying !nowplaying [station name] [s|c|L] !nowplaying [help|?] !justplayed !justplayed [1-9] */ ;alias np { on $*:TEXT:/^[!](nowplaying|np|justplayed|jp|justheard|lastplayed|lastplay|lp|previous|previousplay|previousplayed|history|played)/Si:#:{ ;=== Set up the station Information: === set %np_station SHOUTdrive set %np_ip sanjose.oontz.shoutdrive.com set %np_port 80 set %np_url http://www.shoutdrive.com ;=== End station Information === ; === Nothing below needs to be modified, unless you wish to modify the output, in which case, go down to the sockclose alias. === set %np_nick $nick set %np_chan $chan set %np_network $network ;-- Merges multiple commands down to two commands !nowplaying and !justplayed --; ;- Nowplaying merge var %np_np_list !nowplaying !np if ($1 isin %np_np_list) set %np_command !nowplaying ;- Justplayed merge var %np_jp_list !justplayed !jp !justheard !lastplayed !lastplay !lp !previous !previousplay !previousplayed !played !history if ($1 isin %np_jp_list) set %np_command !justplayed ;--- Help Parameters if ($2 == ?) || ($2 == help) { nowplaying_help | halt } ;--- !nowplaying Parameters --- if (%np_command == !nowplaying) { set %np_sock_GET /7.html HTTP/1.0 } ;--- Variable $3 Parameters --- if ($3 != $null) { if ($3 == s) || ($3 == status) set %np_3 status if ($3 == url) set %np_3 url if ($3 == c) || ($3 == count) || ($3 == listner) || ($3 == l) set %np_3 count } ;--- !justplayed Parameters --- ;- Limits voice and normal to only seeing a max of 5. Allows OPS a max of 10 -- ;-- Helps prevent standard user flooding ;- IF no number is givin, then set to the default amount of 3 if (%np_command == !justplayed) { set %np_sock_GET /played.html HTTP/1.0 if ($2 isnum 1-9) { var %np_oplist isop ishop isowner if (%np_nick isop %np_chan) || (%np_nick isowner %np_chan) { set %np_2 $2 } if (%np_nick isvoice %np_chan) || (%np_nick isreg %np_chan) { if ($2 > 5) { set %np_2 5 } if ($2 <= 5) { set %np_2 $2 } } } if ($2 == $null) { set %np_2 3 } } ;--- Flood Protection if (%np_command == !justplayed) && (%npdelay > 0) { .notice $nick Previous songs already listed. See above. | unset %np_* | halt } ;--- Socket Preperation sockclose nowplaying sockopen nowplaying %np_ip %np_port } ;========== SOCK OPEN ========== on *:SOCKOPEN:nowplaying:{ sockwrite -n $sockname GET %np_sock_GET sockwrite -n $sockname User-Agent: Mozilla sockwrite -n $sockname $crlf } ;========== SOCK READ ========== on *:sockread:nowplaying:{ ;--- !nowplaying Sock Read ---- if (%np_command == !nowplaying) { if ($sockerr > 0) { notice %np_nick %tegn.1 $+ %radio.navn $+ %tegn.2 %tegn.midt %tegn.1 Stream Is Offline %tegn.2 NOTE1 return } :nextread sockread -f %scasttemp1 if ($sockbr == 0) return if (%scasttemp1 == $null) %scasttemp1 = empty set %scasttemp1 $remove(%scasttemp1,<HTML><meta http-equiv="Pragma" content="no-cache"></head><body>,</body></html>) if ((HTTP/1.* !iswm %scasttemp1) && (content-type* !iswm %scasttemp1) && (%scasttemp1 != empty)) { set %np_listeners1 $gettok(%scasttemp1,1,44) set %np_status1 $gettok(%scasttemp1,2,44) set %np_peak1 $gettok(%scasttemp1,3,44) set %np_max1 $gettok(%scasttemp1,4,44) set %np_ulistners1 $gettok(%scasttemp1,5,44) set %np_kbps $gettok(%scasttemp1,6,44) set %np_asong1 $gettok(%scasttemp1,7-,44) set %np_song1 $replace(%np_asong1,&,$chr(38),',$chr(39)) } goto nextread } ;--- !justplayed Sock Read ---- if (%np_command == !justplayed) { sockread -f %jp_temp if ($regex(%jp_temp,/(?i)<td>(.+)<\/td>/)) { ;echo -s $regml(1) ;--- Strips down the code /* Strips down the code down to the needed info with § seperators to be used by the $gettok. Yes, I could of combined this in to one or two lines. But I kept it seperate to help keep it understandable and easy to trouble shoot. -Removes all close tags in the code </*> -Removes all <tr> and <b> tags from the code -Replaces all <td> and <br> with § character -Counts total § characters to be referenced below in the while loop. */ var %jp_stripped $regsubex($regml(1),/</[^>]*>/g,$chr(0)) var %jp_stripped $replace(%jp_stripped,<tr>,$chr(0),<b>,$chr(0)) var %jp_stripped $replace(%jp_stripped,<td>,$chr(167),<br>,$chr(167)) set %jp_167count $count(%jp_stripped,$chr(167)) ;----Sets the first song (current song) /* Have to as the 'Current song' at the end, screws up the count for the remainder. (Song 1 time and song is at 3 and 4 (odd then even), as the rest are at 6 and 7 (even than odd) */ set %jp_time1 $gettok(%jp_stripped,3,167) set %jp_song1 $gettok(%jp_stripped,4,167) var %jp_line_var = 6 var %jp_songline_var = 2 ;---Sets the remainder of the songs, plus extra junk. /* =While the line_var is less than the total number of § characters -Sets the time variable -Increases the token count number -Sets the Song Varible -Increases the token count and song line count */ while (%jp_line_var < %jp_167count) { set $+(%,jp_time,%jp_songline_var) $gettok(%jp_stripped,%jp_line_var,167) inc %jp_line_var set $+(%,jp_song,%jp_songline_var) $gettok(%jp_stripped,%jp_line_var,167) inc %jp_line_var inc %jp_songline_var } ;set %jp_stripped3 $regsubex($regml(1),/§[^>]*§/g,$chr(167)) } } } ;========== SOCK CLOSE ========== on *:sockclose:nowplaying:{ ;=== Station Fail ==== ;-- If station is offline then: if (%np_status1 == 0) { msg %np_chan %np_station $+ : Stream Is Offline goto np_end } ;=== User had added a 3rd parameter to their message. Aka !nowplaying [station] [s,status,url,c,count,listern] ;-- If user has added an S or Status as the 3rd parameter. Then the status of station will show. if (%np_3 == status) { if (%np_status1 == 0) { var %np_status2 = Offline } elseif (%np_status1 == 1) { var %np_status2 = Online } msg %np_chan %np_station Status: %np_status2 ;msg %np_chan %np_station Status: %np_status2 $chr(124) Listeners: %np_listeners1 $chr(124) Peak: %np_peak1 $chr(124) Limit: $+ %np_max1 $chr(124) Stream: $+ %np_kbps $+ kbps } ;-- If user has URL as 3rd parameter, then url of site will show. if (%np_3 == url) { msg %np_chan %np_station $+ : %np_url } ;-- If user has C, Count, or L, then listener count will show. if (%np_3 == count) { msg %np_chan %np_station listener count: %np_listeners1 ( %np_ulistners1 unique ) } ;-- IF user has only asked for !np, or !np [station], then the current song will show. if (%np_3 == $null) { ;--- IF !nowplaying if (%np_command == !nowplaying) { msg %np_chan %np_station $+ : %np_song1 } ;--- IF !justplayed if (%np_command == !justplayed) { inc -z %npdelay $calc(%np_2 * 10) var %jp_t = 1 var %jp_list2_var = 2 while (%jp_t <= %np_2) { .timer 1 %jp_t msg %np_chan %jp_list_var : $($+(%,jp_time,%jp_list2_var),2) : $($+(%,jp_song,%jp_list2_var),2) inc %jp_t inc %jp_list2_var } } } :np_end unset %np_* unset %jp_* } ;============================ ;=== Help Section =========== ;============================ alias nowplaying_help { .timer 1 0 .msg %np_nick --- Now Playing HELP --- .timer 1 1 .msg %np_nick Use command: !nowplaying to see what is currently playing. .timer 1 3 .msg %np_nick Use commands: !justplayed or !lastplayed to see the previous 3 songs .timer 1 4 .msg %np_nick You can add a number on the end to see a specific amount of previous songs. Limit 5 for users, 10 for ops .timer 1 5 .msg %np_nick EX: !justplayed 5 = will give you previous 5 songs. .timer 1 6 .msg %np_nick --- END of Now Playing Help --- %np_tunage_cleanup } /* ==================================== v 2.1 Released to public. Fully working Nowplaying v 3.0 Rewrittin, Now includes Playlist history and HELP ==================================== Notes: Two actions read from seperate pages, but use the same common SOCKOPEN/SOCKREAD. !nowplaying GET's from /7.html !justplayed GET's from /playe
  5. This is a forum request made by maria who wishes to have the latest comment checked via reddit.com. The script will then send the info to a channel with its title, short link and by whom. I thought I'd make this a snippet submission to benefit those who find it useful or usable. Usage: right-click on your channel or nick list to toggle "Reddit On" and "Reddit Off" to get started. alias -l reddit { var %i = 1, %socks = reddit reddit2 while ($gettok(%socks,%i,32)) { var %v1 = $v1 if ($sock(%v1)) sockclose $v1 sockopen %v1 www.reddit.com 80 sockmark %v1 msg $1 inc %i } } alias -l trans { return $replace($1,&lt;,<,&gt;,>,&quot;,",&nbsp;,$chr(160),&amp;,&,&amp;#39;,') } on *:sockclose:reddit*:{ if ($sock($sockname).name == reddit) { if ($hget(data2)) && ($hget(data3)) && ($hget(data4)) { $sock($sockname).mark $+($chr(2),Latest Comment:,$chr(2)) $& [ [ $remove($+($hget(data2,1).item,$chr(32),$hget(data2,1).data),r/) ] ] $sock($sockname).mark $+($chr(2),Latest Post:,$chr(2)) $& $+($hget(data3,1).item,$chr(32),$hget(data3,1).data) - $& $hget(data4,1).item by $hget(data5,1).item hfree -w data* } } else { if ($sock(reddit2)) sockclose $v1 sockopen reddit2 www.reddit.com 80 sockmark reddit2 msg $1 } } menu channel,nicklist { Reddit .ON { if (!%reddits) { set -e %reddits $$?"Which Reddit to Watch?" set -e %reddittime $$?"How often do you want the latest post checked $& and sent to the channel in seconds?" $+(.timer,#,$network) 0 %reddittime reddit # echo 2 # * Reddit Set for: $+($chr(2),%reddits) echo 2 # * Time Interval in Seconds: $+($chr(2),%reddittime) if (%true) unset $v1 } else echo 4 # * Reddit is Already Switched On! } .OFF { if (%reddits) { $+(.timer,#,$network) off echo 2 * Reddit Has Been Turned Off! unset %reddit* %true } else echo 4 # * Reddit is Already Switched Off! } } on *:sockopen:reddit*:{ if ($sockerr) { echo 4 $gettok($sock(reddit).mark,2,32) Error Connecting to $sock(reddit).addr sockclose reddit } if ($sock($sockname).name == reddit) { var %reddit = sockwrite -nt reddit %reddit GET $+(/r/,%reddits,/comments?limit=1) HTTP/1.0 %reddit Connection: close %reddit Host: $+($sock(reddit).addr,$str($crlf,2)) } else { var %reddit2 = sockwrite -nt reddit2 %reddit2 GET $+(/r/,%reddits,/new.json?sort=new) HTTP/1.0 %reddit2 Connection: close %reddit2 Host: $+($sock(reddit).addr,$str($crlf,2)) } } on *:sockread:reddit*:{ if ($sockerr) { echo 4 $gettok($sock(reddit).mark,2,32) Error Reading $sock(reddit).addr sockclose reddit } if ($sock($sockname).name == reddit) { sockread &reddit var %g = $regsubex($bvar(&reddit,1-).text,/\/r\/|&#\d+;/g,) if ($regex(%g,/<\/div><\/form><ul class="flat-list buttons">(.*)/)) { hadd -m data $+($sock(reddit).addr,/tb/,$gettok($iif($regex($regml(1),$& /\/comments\/(\S+)\//),$trans($regml(1))),1,47)) } if ($regex(%g,/class="title" rel="nofollow" >(.*)class="author/)) { hadd -m data2 $gettok($trans($regml(1)),1,60) - $& $!+($chr(3),12,$hget(data,1).item,$chr(3)) by $+($chr(3),05,$& $iif($regex($regml(1),/\/user\/(\S+)"/),$regml(1))) } } else { sockread &reddit2 var %g2 = $bvar(&reddit2,1-).text if ($regex(%g2,/"title"\: "(.*)"/)) { hadd -m data3 $gettok($trans($regml(1)),1,34) } if ($regex(%g2,/"id"\: "(.*)"/)) { hadd -m data4 $+($chr(3),12,$gettok($+(http://redd.it/,$& $trans($regml(1))),1,34),$chr(3)) sockclose $sockname } if ($regex(%g2,/"author"\: "(.*)"/)) { hadd -m data5 $+($chr(3),05,$gettok($regml(1),1,34)) } } } on me:*:join:#:{ if (%true) notice $me Reddit has been toggled off. Right-click on $& the nicklist or channel to toggle it on. | unset %true } on *:disconnect: if (%reddits) $+(.timer,#,$network) off | set -e %true 1 on me:*:part:#: if (%reddits) $+(.timer,#,$network) off | set -e %true 1 on *:kick:#:{ if ($knick == $me) && (%reddits) $+(.timer,#,$network) off set -e %true 1 } on *:quit:{ if ($nick == $me) && (%reddits) { var %c = 1 while ($comchan($me,%c)) { $+(.timer,$v1,$network) off set -e %true 1 inc %c } } }
  6. This work below is yet another forum request that I've decided to submit as a part of my snippet collection. For those who find this snippet useful, It's for the bot client, and the trigger is either !facts, @facts, .facts or !jokes, @jokes, .jokes. on $*:text:/^[!@.](fact|joke)s$/iS:#:{ if (!%f) { inc -u3 %f var %s = $+(rjf,$str($ticks,2),$site) if ($sock(%s)) sockclose $v1 sockopen %s www.randomfunfacts.com 80 sockmark %s .msg # $regml(1) } } on *:sockclose:rjf*:{ tokenize 32 $sock($sockname).mark var %s = $+(rjf,$str($ticks,2),$site) if ($sock(%s)) sockclose $v1 sockopen %s www.jokesclean.com 80 sockmark %s $1-2 } on *:sockopen:rjf*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $1-2 Error: Connection Issue... sockclose $sockname } else { if ($3 == fact) { var %rjf = sockwrite -nt $sockname %rjf GET / HTTP/1.1 %rjf Connection: close %rjf Host: $+($sock($sockname).addr,$str($crlf,2)) } else { var %rjf = sockwrite -nt $sockname %rjf GET /OneLiner/Random/ HTTP/1.0 %rjf Host: $+($sock($sockname).addr,$str($crlf,2)) } } } on *:sockread:rjf*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $1-2 Error: Issues in Reading... sockclose $sockname halt } goto $iif($3 == fact,fact,joke) :fact sockread &rjf var %info = $regsubex($bvar(&rjf,1-).text,/<[^>]*>|\t$& $+ RLOpenInNewWindow|"1";|var RLRepeatKeywords/g,$chr(32)) if ($gettok($replace(%info,&nbsp;,$chr(94)),2,94)) { $1-2 $remove($gettok($v1,11-,32),24c6) sockclose $sockname | halt :joke var %jokes sockread %jokes if ($regex(%jokes,/(.*)<\/font><\/p>/)) { $sock($sockname).mark $replace($gettok($regml(1),3-,62),&nbsp;,$chr(32)) sockclose $sockname } halt } }
  7. This script will send a boring, random message to the active channel when the irc server pings you. (You must have your client looking at the active channel window) It's useful when your nickname idles in a quiet channel, where activity is scarce and that you're away from keyboard every so often. Below are some random ones emitted when you get pinged by the server: I'm in Illinois hello hello! Is there evrybody some there see ya Hola desde España Holy Sh*t!! I feel like such a spy...if your really live...grab your head.. Are you workin' hard or hardly workin'? CATS MEOW MEOW MEOW**Usage:** right-click on your nick list or channel to toggle the script on and off. on me:*:part:#:{ if (%random) { $+(.timer,$network) off set -e %randommsg 1 } } on *:quit:{ if ($nick == $me) && (%random) { $+(.timer,$network) off set -e %randommsg 1 } } on *:disconnect:{ if (%random) $+(.timer,$network) off set -e %randommsg 1 } on me:*:join:#:{ if (%randommsg) { notice $me Random Message has been toggled off. $& Right-click on the nicklist or channel to toggle it on. unset %random* } } on *:kick:#:{ if ($knick == $me) && (%random) $+(.timer,$network) off set -e %randommsg 1 } on *:sockread:rm:{ var %rm sockread %rm if ($regex(%rm,/<h1>(.*)<\/h1>/)) { [ [ $sock(rm).mark ] ] sockclose rm } } alias -l randommsg { if ($sock(rm)) sockclose $v1 sockopen rm www.randommessages.com 80 sockmark rm amsg $!regml(1) } on *:sockopen:rm:{ tokenize 94 $left($str(sockwrite -nt rm^,2),-1) var %- 1, %` GET / HTTP/1.1^Host: $!+($sock(rm).addr,$str($crlf,2)) while $gettok(%`,%-,94) { [ [ $+($,%-,$chr(32),$v1) ] ] inc %- } } menu channel,nicklist { Random Message .ON { if (!%random) { set -e %random $$?"Input the trigger time in seconds:" $+(.timer,$network) 0 %random randommsg echo 2 # * Time Interval in Seconds: $+($chr(2),%random) if (%randommsg) unset $v1 } else echo 4 # * Random Message is Already Switched On! } .OFF { if (%random) { $+(.timer,$network) off echo 2 * Random Message Has Been Turned Off! unset %random* } else echo 4 # * Random Message is Already Switched Off! } }
  8. on $*:text:/^!define o(n|ff)$/iS:#:{ if ($nick isop #) { if ($regml(1) == n) { if (!$istok(%chan,#,44)) { set %chan $addtok(%chan,#,44) .notice $nick # has been added! } else .notice $nick the channel $qt(#) has already been added! } else { if ($istok(%chan,#,44)) { set %chan $remtok(%chan,#,1,44) .notice $nick # has been removed. } else .notice $nick the channel $qt(#) has already been removed. } } else .notice $nick Access Denied. This command is reserved for OP only. } on *:sockopen:ud*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $5-6 Socket Error! halt } $2-4 GET $+(/v0/define?term=,$1) HTTP/1.0 $2-4 Host: $+($sock($sockname).addr,$str($crlf,2)) $2-4 Connection: close } on $*:text:/^[!@.]define( |$)/iS:%chan,?:{ if (!$($+(%,-,$site,.,$cid,.,$nick),2)) { inc -u3 $+(%,-,$site,.,$cid,.,$nick) var %ud = $+(ud,$str($ticks,3)) $+(sock,$iif($sock(%ud),close,open) %ud api.urbandictionary.com 80) sockmark %ud $replace($strip($2-),$chr(32),+) $& sockwrite -nt %ud .msg $iif(#,#,$nick) } } on *:sockread:ud*:{ sockread &ud tokenize 32 $sock($sockname).mark if ($sockerr) { $5-6 Socket Error! } elseif (no_results isin $bvar(&ud,1-).text) { $5-6 $qt($1) is undefined! } elseif ($regex($bvar(&ud,1-).text,/"definition":"(.*)/)) { tokenize 34 $regml(1) $gettok($sock($sockname).mark,5-6,32) $regsubex($1,/\Q\r\n\E/g,$chr(32)) } }
  9. !define dani A person with lots of layers of goodness, like an onion without the crying and the smell. @define Hawkee Hawkee is undefined! !define smart alec A nicer way to say smart ass. You can use this in an office or when kids are around instead of saying smart ass or if you are a stick in the mud and don't cuss. The command is self-explanatory and can be prefixed with !, @, or . to trigger. PM and channel supported. on *:sockopen:ud*:{ tokenize 32 $sock($sockname).mark if ($sockerr) { $5-6 Socket Error! halt } $2-4 GET $+(/v0/define?term=,$1) HTTP/1.0 $2-4 Host: $+($sock($sockname).addr,$str($crlf,2)) $2-4 Connection: close } on $*:text:/^[!@.]define( |$)/iS:*:{ if (!$($+(%,-,$site,.,$cid,.,$nick),2)) { inc -u3 $+(%,-,$site,.,$cid,.,$nick) var %ud = $+(ud,$str($ticks,3)) $+(sock,$iif($sock(%ud),close,open) %ud api.urbandictionary.com 80) sockmark %ud $replace($strip($2-),$chr(32),+) $& sockwrite -nt %ud .msg $iif(#,#,$nick) } } on *:sockread:ud*:{ sockread &ud tokenize 32 $sock($sockname).mark if ($sockerr) { $5-6 Socket Error! } elseif (no_results isin $bvar(&ud,1-).text) { $5-6 $qt($1) is undefined! } elseif ($regex($bvar(&ud,1-).text,/"definition":"(.*)/)) { tokenize 34 $regml(1) $gettok($sock($sockname).mark,5-6,32) $remove($regsubex($1,/\x5C(r|n{1,2})/gi,$chr(32)),\) } }
  10. Was high one day, decided to make a grats script. Syntax: [!@.]grats|gratz|congrats|congratz [level|skill] [level|skill] eg. !grats 99 fishing !congratz dungeoneering 115 Enjoy:) script91.zip
  11. Acronym snippet -Tested works- The colors are ♥♥red orange and yellow♥♥ and black background color on *:Input:*:{ If ($1 == ty) { msg $active 4,1♥♥thank 7you♥♥ $2- | halt } If ($1 == wb) { msg $active 4,1♥♥Welcome 7back♥♥ $- | halt } If ($1 == brb) { msg $active 4,1♥♥Be 7right 8back♥♥ $2- | halt } If ($1 == bbs) { msg $active 4,1♥♥be 7back 8soon♥♥ $2- | halt } If ($1 == gtg) { msg $active 4,1♥♥got 7to 8go♥♥ $2- | halt } If ($1 == pos) { msg $active 4,1♥♥parents 7over 8shoulder♥♥ $2- | halt } If ($1 == ib) { msg $active 4,1♥♥im 7bored♥♥ $2- | halt } If ($1 == hay) { msg $active 4,1♥♥how 7are 8you♥♥ $2- | halt } If ($1 == omg) { msg $active 4,1♥♥oh 7my 8god♥♥ $2- | halt } If ($1 == sfl) { msg $active 4,1♥♥scarred 7for 8life♥♥ $2- | halt } If ($1 == smd) { msg $active 4,1♥♥suck 7my 8dick♥♥ $2- | halt } If ($1 == omfg) { msg $active 4,1♥♥oh 7my 8fucking 4god♥♥ $2- | halt } If ($1 == imb) { msg $Active 4,1♥♥im 7bored♥♥ $2- | halt } If ($1 == lol) { msg $active 4,1♥♥laughing 7out 8loud♥♥ $2- | halt } If ($1 == fml) { msg $active 4,1♥♥Fuck 7my 8life♥♥ $2- | halt } If ($1 == tmi) { msg $active 4,1♥♥to 7much 8info♥♥ $2- | halt } If ($1 == pin) { msg $active 4,1♥♥parents 7in 8here♥♥ $2- | halt } If ($1 == atm) { msg $active 4,1♥♥at 7the 8minute♥♥ $2- | halt } If ($1 == stfu) { msg $active 4,1♥♥Shut 7the 8 fuck 4up♥♥ $2- | halt } If ($1 == smh) { msg $active 4,1♥♥Shaking 7my 8head♥♥ $2- | halt } If ($1 == lmao) { msg $active 4,1 ♥♥laughing 7 my 8 ass 7 off♥♥ $2- | halt } If ($1 == wtf) { msg $active 4,1 ♥♥what 7 the 8 fuck♥♥ $2- | halt } if ($1 == gtfo) { msg $active 4,1♥♥Get 7 the 8 fuck 4out♥♥ $2- | halt } If ($1 == ily) { msg $active 4,1♥♥I 7love 8 You♥♥ $2- | halt } if ($1 == idk) { msg $active 4,1♥♥I 7dont 8know♥♥ $2- | halt } }
  12. Just a VERY basic aligned theme.... Looks best in a light gray BG.. *****NOTE**** YOU HAVTA have fixed width font!!! Windows = New Courier Linux = FreeMono (which i use!) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;Code By: KronicDreamer ;;$regex credit to napalm ;; ;;rip/thrash/trash or break i dont care just dont take credit kthnx! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; on ^*:TEXT:*:#: { echo -i36 # $thstamp $thspace $thop $+ $nick $+ 7: $1- | halt } on ^*:TEXT:*:?: { echo -i36 $nick $thstamp $thspace $thop $+ $nick $+ 7: $1- | halt } on ^*:ACTION:*:#: { echo -i36 # $thstamp $thspace $thop $+ $nick $+ 7: * $1- | halt } on ^*:JOIN:*: { echo # $thstamp $thjpq 7: Join $nick ( $+ $address $+ ) | halt } on ^*:PART:*: { echo # $thstamp $thjpq 7: Part $thop $+ $nick ( $+ $address $+ ) | halt } on &*:INPUT:#: { if (/* !iswm $1) { echo -i36 # $thstamp $thspme $thop $+ $me $+ 7: $1- .msg $active $1- halt } } on &*:INPUT:?: { if (/* !iswm $1) { echo -i36 $nick $thstamp $thop $+ $thspme $me $+ 7: $1- .msg $target $1- halt } } ;;;; Edited in 9/26/08 raw 301:*: { echo -ai36 $thstamp $th2(4) Away7: Yes: ( $+ $3- $+ ) halt } raw 307:*: { echo -a $thstamp $th2(10) Registered7: Yes. halt } raw 310:*: { echo -a $thstamp $th2(10) IRC Helper7: Yes. halt } raw 311:*: { echo -a $thstamp $th2(10) ----------7:---------- echo -a $thstamp $th2(6) Whois 7- $2 echo -a $thstamp $th2(8) NickName7: $2 echo -a $thstamp $th2(8) RealName7: $6- echo -a $thstamp $th2(5) Ident7: $3 echo -a $thstamp $th2(7) Address7: *!*@ $+ $4 halt } raw 378:*: { echo -ai36 $thstamp $th2(8) Hostmask7: $6 echo -ai36 $thstamp $th2(2) IP7: $7 halt } raw 379:*: { echo -ai36 $thstamp $th2(5) Modes7: $6- halt } raw 671:*: { echo -a $thstamp $th2(3) SSL7: Yes halt } raw 312:*: { echo -a $thstamp $th2(6) Server7: $3 echo -ai36 $thstamp $th2(11) Description7: $4- halt } raw 313:*: { echo -a $thstamp $th2(8) Net Rank7: $5-9 halt } raw 319:*: { echo -a $thstamp $th2(8) Channels7: $Replace($3-,~,~,&,&,@,@,%,%,+,+) halt } raw 317:*: { echo -a $thstamp $th2(9) Signed on7: $asctime($4,dddd mm/dd/yyyy HH:nn:sstt) echo -a $thstamp $th2(4) Idle7: $duration($3) echo -a $thstamp $th2(6) Online7: $duration($calc($ctime - $4)) halt } raw 335:*: { echo -a $thstamp $th2(3) Bot7: Yes. halt } raw 318:*: { echo -a $thstamp $th2(6) Whois 7- End echo -a $thstamp $th2(10) ----------7:---------- halt } alias th2 return $str($chr(160),$calc(16 - $1)) ;;;;;;;; End Edit 9/26/08 alias thop { if (!$regex($nick($chan,$nick).pnick,[~\&@%\+])) return $chr(160) if ($regex($nick($chan,$nick).pnick,[~\&@%\+])) return $left($nick($chan,$nick).pnick,1) } alias thspme return $str($chr(160),$calc(15 - $len($me))) alias thspace return $str($chr(160),$calc(15 - $len($nick))) alias thstamp return $asctime(hh:nn) alias thjpq return $str($chr(160),16))
  13. chain

    epeen

    ;;; E-peen by KronicDreamer .... bordem! alias sepeen { var %epeen = $ceil($calc($uptime(system,3) / 100000)) echo My system Epeen is %epeen inches long! } alias mepeen { var %mepeen = $ceil($calc($uptime(mirc,3) / 100000)) echo My mIRC Epeen is %mepeen inches long! } ;; /sepeen for system epeen! ;; /mepeen for mirc epeen!
  14. Product of boredom. /fin [-c] -c = close ;the finger alias fin { var %win @Fuck if ($1 == -c) { fin.close | return } elseif (!$window(%win)) window -dBpfk0 %win 1 1 188 210 titlebar %win You the.finger } alias fin.close { .timerfin off unset %fin* close -@ @Fuck } alias the.finger { set %fin.sc + set %fin.c 1 var %win @Fuck , %x 1 , %w 5 clear %win drawrect -ndf %win 1 4 68 10 36 100 drawrect -ndf %win 1 4 2 90 168 90 drawrect -ndf %win 0 4 5 127 162 50 while (%x <= 5) { drawrect -ndf %win 0 4 %w 93 30 45 inc %w 33 inc %x 1 } drawrect -ndf %win 0 4 71 13 30 150 drawrect -nd %win 1 2 74 16 23 19 4 5 drawtext -np %win 1 Arial 20 8 183 2m4IR8C hates 3YOU :) drawdot %win .timerfin -m 0 50 fin.sc %fin.sc } alias -l fin.sc { if (!$window(@Fuck)) { fin.close return } else { if (%fin.c == 18) { %fin.sc = $iif(%fin.sc == +,-,+) | %fin.c = 1 } drawscroll @Fuck $+(%fin.sc,1) 0 0 0 199 180 inc %fin.c } } on 1:CLOSE:@Fuck:fin.close ;EOF
  15. This snippet slaps a user with anything but a large trout. Syntax: /slap NickName If a user is not provided, it slaps the user(s) selected in the nicklist. If no user is selected/provided then nothing happens. ;Slapper ;napalm - 14 JUN 2011 alias slap { var %n $iif($1,$1,$$snicks) if ($sock(slap)) sockclose slap sockopen slap www.watchout4snakes.com 80 sockmark slap $active %n } alias slap.error echo $color(kick) -at /SLAP: Sock $+ $2 Error. $sock($1).wsmsg on *:sockopen:slap:{ if ($sockerr) || ($sock($sockname).status != active) { slap.error $sockname open | return } sockwrite -n $sockname GET /CreativityTools/RandomWord/RandomPhrase.aspx HTTP/1.1 sockwrite -n $sockname Host: www.watchout4snakes.com sockwrite -n $sockname User-Agent: mIRC $version sockwrite -n $sockname $crlf } on *:sockread:slap:{ var %r | sockread %r | tokenize 32 %r if ($sockerr) || ($sock($sockname).status != active) { slap.error $sockname read | return } elseif ($regex(%r,main_lblPhrase.+>(.+)</span>)) { tokenize 32 $sock($sockname).mark $regml(1) describe $1 slaps $2 around a bit with $+(a,$iif($regex($left($3,1),[aeiou]),n)) $3- return } elseif ($1 == </HTML>) sockclose $sockname } ;EOF
×
×
  • Create New...