Load into your remotes (ALT +R) and type /rawhelp, or select "Raw help" by right-clicking anywhere in mIRC and selecting it from the list.
This is a really awesome snippet! This basically displays 6 bits of info about any raw you double click in the list (info, syntax, example, supported by, notes, see also). It offers a really neat interface, with additional options which I'll talk about below. The data is socketed from www.mirc.net.
Here's a brief description of some of the features:
-View categories/hide categories
Quite a nice little feature if you're searching for something specific. You can choose from a list of 41 (!) topics and the list will then fill up with the raws associated with that topic. You can show/hide this function by clicking the "View categories/Hide categories" button.
-Message
This will message the active channel the raw you're currently looking at. It will message 4 lines (number, info, syntax, example). Useful for when helping someone with a raw.
-View site
This will open up mirc.net on the specified raw if you need more verbose information.
-OK
Closes the dialog.
-$1
This is a nice little feature that can open a raw very quickly if you know the numeric of it. Simply type /rawhelp numeric to open the dialog on that raw. Example: "/rawhelp 219".
And that's basically it! Bug reports (shouldn't be any) and suggestions are welcome. Please note: don't suggest moving the "Categories" list above the main list and making an "All" option (I'm not doing it).
Thanks to Zmodem for many things. This has been quite a team effort, and a good one at that. Two heads always work better as one.
Also here: http://www.hawkee.com/phpBB2/viewtopic.php?t=18428
Enjoy!
alias between {
noop $regex($1,/\Q $+ $2 $+ \E(.*?)\Q $+ $3 $+ \E/gi)
return $regml($4)
}
menu * {
-
.Raw help:/dialog $iif($dialog(raw),-v,-m) raw raw
}
alias htmlfree { return $regsubex($$1-,/^[^<]*>|<[^>]*>|<[^>]*$/g,) }
alias rawhelp { dialog $iif($dialog(raw),-v,-m) raw raw | if ($1) initString raw $1 }
alias initString {
var %i = $did(raw,1).lines, %t, %v = 0
while (%i) {
if ($did(raw,1,%i) == $1-) { did -c raw 1 %i | %v = 1 | break }
dec %i
}
if (!%v) {
return $input(That was an invalid raw numeric. Please make another selection from the list.,wok6,Invalid Raw Numeric)
}
getraw $2
}
alias isbroke {
var %i = $1
if ((%i == 212) || (%i == 421) || (%i == 381) || (%i == 305) || (%i == 340) || (%i == 404) || (%i == 408)) return $true
}
alias getraw {
if ($isbroke($gettok($did(raw,1).seltext,2,32))) { rawload $gettok($did(raw,1).seltext,2,32) }
else {
unset %rnum %rawnotez %rawnum %rawnotez %rawsupport %rawread %rawnumread %rawinfo %rawexample %rawsyntax %rawseealso %rinfo
if ($sock(sockraw)) { sockclose sockraw }
set %rawnum $1
sockopen sockraw www.mirc.net 80
dialog $iif($dialog(wait),-v,-mo) wait wait
}
}
alias rawload {
var %r = $1
did -ra raw 2 $gettok($broke [ $+ [ %r ] ],1,126)
did -ra raw 4 $gettok($broke [ $+ [ %r ] ],2,126)
did -ra raw 6 $gettok($broke [ $+ [ %r ] ],3,126)
did -ra raw 8 $gettok($broke [ $+ [ %r ] ],4,126)
did -ra raw 10 $gettok($broke [ $+ [ %r ] ],5,126)
did -ra raw 16 $gettok($broke [ $+ [ %r ] ],6,126)
did -c raw 2,4,6,8,10,16 1
}
alias broke212 { return A series of these are sent in reply to a STATS m request. They contain statistics on the commands a server supports. You must be an IRCop to use this feature on some servers.~212 command uses bytes~212 PRIVMSG 28931 1446042~All~None.~212 (multiple lines), 219 }
alias broke305 { return This is returned when you return from being AWAY. (by setting a blank away reason.)~305 :You are no longer marked as being away~All~This reply does not make any mention of why you were AWAY or for how long, it merely informs you that you are no longer marked as AWAY.~When you set an AWAY message, 306 is returned }
alias broke340 { return Returned when performing a /USERIP lookup on a person.~340 nick :nickname=+user@IP.address~340 Mentality :bleh=+ekg@127.0.0.1~ircu (Undernet), QuakeNet~Some networks have restricted the function to IRC Operators only.~The RAW for a /USERHOST lookup is 302 }
alias broke381 { return This numeric is returned when you successfuly become an IRC operator using the OPER command.~381 :You are now an IRC Operator~381 :You are now an IRC Operator~All~This should be preceded by an automatic usermode change that includes +o or +O. (IRC operator)~None. }
alias broke404 { return Returned when you try to send a message to a channel, but the server refuses to let you send the message due to channel MODE settings. When this reply is returned, nothing is seen on the channel to indicate you attempted to say something.~404 channel :Cannot send to channel~404 #anime :Cannot send to channel~All~Your message can be refused for two reasons- .If a channel is MODE +n, and you are not on the channel, you cannot send a message to it. If a channel is MODE +m, and you are not opped (+o) or voiced (+v) on the channel, you cannot send a message to it.~None. }
alias broke408 { return Returned if you are trying to send control codes to a channel that is set +c.~408 nickname #channel :You cannot use colors on this channel. Not sent: text~408 hantu #mirc.net :You cannot use colors on this channel. Not sent: woohey woogie~DALnet~Only control code blocked by the mode on DALnet is color (ctrl+k) codes.~None. }
alias broke421 { return Returned when you use an IRC command that the server does not recognize.~421 command :Unknown command~421 BLAH :Unknown command~All~Common reasons for this error - Using a command from another network on a server that doesn't support it (such as SILENCE). Misspelling a command. Missing a mIRC alias.~None. }
dialog raw {
title "Raw help"
size -1 -1 260 120
option dbu
list 1, 2 2 50 99, vsbar size
edit "", 2, 92 2 165 20, read multi return vsbar
text "Info:", 3, 55 2 15 8
edit "", 4, 92 24 165 11, read autohs
text "Syntax:", 5, 55 24 20 8
edit "", 6, 92 37 165 11, read autohs
text "Example:", 7, 55 38 21 8
edit "", 8, 92 50 165 11, read autohs
text "Supported by:", 9, 55 51 35 8
edit "", 10, 92 63 165 25, read multi return vsbar
text "Notes:", 11, 55 63 17 8
box "", 12, 0 103 259 1
button "OK", 13, 225 106 32 12, ok
button "View site", 14, 191 106 32 12
edit "", 16, 92 90 165 11, read autohs
text "See also:", 17, 55 91 35 8
button "Message", 18, 157 106 32 12
combo 19, 264 9 55 35, drop
box "Category", 20, 261 1 62 22
list 21, 264 27 55 90, vsbar size
button "View categories", 22, 110 106 45 12
}
on *:dialog:raw:init:0: {
var %x = 1
while (%x <= 606) {
if ($istok(1 2 3 4 5 7 8 211 212 213 214 215 216 217 218 219 221 222 223 224 241 242 243 244 247 248 249 250 251 252 253 254 255 256 257 258 259 263 265 266 271 272 280 281 290 291 292 293 294 298 301 302 303 305 306 307 310 311 312 313 314 315 317 318 319 321 322 323 324 328 329 331 332 333 340 341 346 347 348 349 351 352 353 364 365 366 367 368 369 371 374 375 376 377 378 381 382 391 401 402 403 404 408 405 406 407 409 411 412 413 414 416 421 422 423 431 432 433 436 437 438 439 441 442 443 445 446 451 455 461 462 467 468 471 472 473 474 475 477 478 481 482 483 484 485 491 501 502 510 511 512 513 600 601 602 603 604 605 606,%x,32)) {
did -a $dname 1 raw $right(000 $+ %x,3)
}
inc %x
}
var %x = 1, %t = ADMIN,AWAY,CNOTICE,CPRIVMSG,GLINE,HELPOP,INFO,INVITE,ISON,JOIN,KICK,KILL,LINKS,LIST,LUSERS,MAP,MODE,MOTD,NAMES,NICK,NOTICE,OPER,PART,PASS,PING,PRIVMSG,REHASH,SILENCE,STATS,SUMMON,TIME,TOPIC,USER,USERHOST,USERIP,USERS,VERSION,WATCH,WHO,WHOIS,WHOWAS
while (%x <= $numtok(%t,44)) {
did -a $dname 19 $gettok(%t,%x,44)
inc %x
}
did -c $dname 19 1
var %x = 1
while (%x <= $numtok($raw.admin,44)) {
did -a $dname 21 raw $gettok($raw.admin,%x,44)
inc %x
}
}
alias raw.admin { return 256,257,258,259,423 }
alias raw.away { return 305,306 }
alias raw.cnotice { return 441 }
alias raw.cprivmsg { return 441 }
alias raw.gline { return 280,281,512 }
alias raw.helpop { return 290,291,292,293,294 }
alias raw.info { return 371,374 }
alias raw.invite { return 341,443,482 }
alias raw.ison { return 303 }
alias raw.join { return 328,332,333,353,366,405,439,471,473,474,475,477,485 }
alias raw.kick { return 403,441,482,484 }
alias raw.kill { return 483,484 }
alias raw.links { return 364,365 }
alias raw.list { return 321,322,333 }
alias raw.lusers { return 250,251,252,253,254,255,265,266 }
alias raw.map { return 005,007 }
alias raw.mode { return 008,221,324,329,346,347,348,349,367,368,403,441,442,467,468,472,478,482,484,501,502 }
alias raw.motd { return 372,375,376,377,378,422 }
alias raw.names { return 353,366 }
alias raw.nick { return 298,431,432,433,437,438 }
alias raw.notice { return 403,404,407,411,412,413,414,439 }
alias raw.oper { return 381,491 }
alias raw.part { return 403,442 }
alias raw.pass { return 462 }
alias raw.ping { return 409 }
alias raw.privmsg { return 301,403,404,407,408,411,412,413,414,439 }
alias raw.rehash { return 382 }
alias raw.silence { return 271,272,511 }
alias raw.stats { return 211,212,213,214,215,216,217,218,219,222,223,224,241,242,243,244,247,248,249,250 }
alias raw.summon { return 445 }
alias raw.time { return 391 }
alias raw.topic { return 331,332,333,403,442,482 }
alias raw.user { return 462 }
alias raw.userhost { return 302 }
alias raw.userip { return 307,340 }
alias raw.users { return 446 }
alias raw.version { return 351 }
alias raw.watch { return 602,603,604,605,606 }
alias raw.who { return 315,352,416 }
alias raw.whois { return 301,310,311,312,313,317,318,319,431 }
alias raw.whowas { return 301,314,369,406,431 }
on *:dialog:raw:dclick:1: { getraw $gettok($did(raw,1).seltext,2,32) }
on *:dialog:raw:dclick:21: {
getraw $gettok($did(raw,21).seltext,2,32)
dialog -s $dname -1 -1 520 240
did -ra $dname 22 View categories
unset %viewcat
}
on *:dialog:raw:sclick:*: {
if ($did == 19) {
did -r $dname 21
var %x = 1, %y = $did(19).text
while (%x <= $numtok($eval($chr(36) $+ raw. $+ %y,2),44)) {
did -a $dname 21 raw $gettok($eval($chr(36) $+ raw. $+ %y,2),%x,44)
inc %x
}
}
if ($did == 14) {
if ($lock(run)) {
noop $input(It appears you have the run setting in your mIRC options $crlf $+ turned off. Please enable it and try again.,uwo,Error!)
}
if (!$did(1).sel) {
noop $input(You have selected no raw to view.,uwo,Error!)
}
else {
run http://www.mirc.net/raw/?view= $+ %rawnum
}
}
if ($did == 18) {
if (!$did(1).sel) || (!$did(2).text) || (!$did(4).text) || (!$did(6).text) {
noop $input(It appears there is not enough/no raw information to message.,uwo,Error!)
}
elseif ($window($active) == Status Window) {
noop $input(You can't send a message to the status window!,uwo,Error!)
}
else {
msg $active Raw: $gettok($did(1).seltext,2,32)
var %x = 1
while (%x <= $did(2).lines) {
set %rinfo %rinfo $did(raw,2,%x).text
inc %x
}
msg $active Information: %rinfo
msg $active Syntax: $did(4).text
msg $active Example: $did(6).text
}
unset %rinfo
}
if ($did == 22) {
if (!%viewcat) {
set %viewcat on
dialog -s $dname -1 -1 653 240
did -ra $dname 22 Hide categories
}
else {
dialog -s $dname -1 -1 520 240
unset %viewcat
did -ra $dname 22 View categories
}
}
}
on *:dialog:raw:close:0: { unset %viewcat }
dialog wait {
title "Please wait"
size -1 -1 99 11
option dbu
text "Please wait while the info is gathered..", 1, 2 2 95 8
}
on *:dialog:wait:init:0: { did -b $dname 1 }
on *:sockopen:sockraw: {
did -r raw 16,6,10,4,8,2
sockwrite -n $sockname GET /raw/?view= $+ %rawnum HTTP/1.0
sockwrite -n $sockname Host: www.mirc.net $+ $crlf $+ $crlf
}
on *:sockread:sockraw: {
.timerwait 0 1 checkwait
sockread %rawread
if (</a><p /> isin $remove(%rawread,$chr(9))) {
set %rawinfo $right($nopath(%rawread),-1)
}
if (<b>Supported by</b> isin $remove(%rawread,$chr(9))) {
set %rawsupport $between(%rawread,<b>Supported By</b></span><br />,<br />,1)
}
if (<b>Syntax</b> isin $remove(%rawread,$chr(9))) {
set %rawsyntax $htmlfree($between(%rawread,<b>Syntax</b></span><br />,<br />,1))
}
if (<b>Example</b> isin $remove(%rawread,$chr(9))) {
set %rawexample $between(%rawread,<b>Example</b></span><br />,<br />,1)
}
if (<b>See Also</b> isin $remove(%rawread,$chr(9))) {
inc %rawnumread
}
elseif (%rawnumread == 1) {
set %rawseealso $htmlfree(%rawread)
inc %rawnumread
}
if (<b>Notes</b> isin $remove(%rawread,$chr(9))) {
set %rawnotez $iif($regex(notes,%rawread,/<b>Notes</b></span><br />(.+)$/),$regml(notes,1))
}
if (%rawseealso) { did -ra raw 16 $iif(%rawseealso,$v1,None.) }
if (%rawsupport) { did -ra raw 6 %rawexample }
if (%rawsyntax) { did -ra raw 10 $iif(%rawnotez,$htmlfree($v1),None.) }
if (%rawexample) { did -ra raw 4 %rawsyntax }
if (%rawnumread) { did -ra raw 8 %rawsupport }
if (%rawinfo) { did -ra raw 2 %rawinfo }
}
on *:SOCKCLOSE:sockraw: { did -c raw 16,6,10,4,8,2 1 | unset %raw* | checkwait }
alias checkwait {
if (!$dialog(raw)) { .timerwait off }
if (!$dialog(wait)) { .timerwait off }
if ($did(raw,2).text) && ($did(raw,4).text) && ($did(raw,6).text) && ($did(raw,8).text) && ($did(raw,10).text) && ($did(raw,16).text) {
if ($dialog(wait)) { dialog -x wait wait }
.timerwait off
}
}
Scakk:
1) Hmm.. doesn't do that for me. I'll try a few alternate "strategies" and see how it goes.
2) Haven't had this error. Is there any error messages, and what raw did that happen on?
3) If you could provide some information on these, or even list them so I can find out about them, I'd be happy to add them in.
4) Removed.
5) Nice idea. I'll do that now.
6) What's the point of that? If you want to see it, you can see it in the dialog. You don't have to message it. :P
7) Well.. it doesn't harm anything.
8) 215 works perfectly well for me.
Info: A series of these are sent in reply to a STATS i request.
Syntax: 215 I ipmask hostmask port class
Example: 215 I @204.127.145. NOMATCH 0 3
Supported by: All
Notes: A STATS i request (I-lines) lists classes of clients that are allowed to connect to a server.
See also: 215 (multiple lines), 219
Few issues still.
1) The blinking when loading the info into the dialog is still there for me.
2) The 'Please Wait' popup does not always disappear when it is done putting the info into the dialog.
3) You have not also added the 4/5 raw numerics I mentioned to you.
4) You also have a button and a link to the website which is redundant.
5) Should make it if the 'View Categories' part is open and you choose a raw from the left side it should hide the categories and change the text on the button as needed.
6) Instead of not letting you send the info to the Status Window make it echo there instead so you can see it and not disturb people in a channel.
7) The 'Ok' button is not needed as the Red X does the same thing.
8) I know of at least one raw numeric that does not show all the info in the dialog ( 215 ). There maybe others.