@verb #2250:"@ch*eck-full" any any any rdo #7788 @program #2250:"@ch*eck-full" any any any "Copied from Generic Player (#12):@ch by Slacker (#55)Aug 17 20:02:48 1998" if (typeof(this.responsible) != $LIST) this:notify("Hey, someone was mucking about with your .responsible property, and it was probably you. Don't do it again.") this.responsible = {} return endif if (length(verb) <= 6) "@check, not @check-full" n = 5 trust = {this, $no_one, $hacker} "... trust no one, my friend.... no one.... --Herod" mistrust = {} for k in (args) if (z = $code_utils:toint(k)) n = z elseif (k[1] == "!") mistrust = listappend(mistrust, $string_utils:match_player(k[2..length(k)])) else trust = listappend(trust, $string_utils:match_player(k)) endif endfor msg_width = player:linelength() - 60 for q in (n > (y = length(z = this.responsible)) ? z | z[y - n + 1..y]) msg = tostr(@q[2]) if (length(msg) > msg_width) msg = msg[1..msg_width] endif s = this:whodunnit(q[1], trust, mistrust) text = valid(s[1]) ? s[1].name | "** NONE **" this:notify(tostr($string_utils:left(tostr(length(text) > 13 ? text[1..13] | text, " (", s[1], ")"), 20), $string_utils:left(s[2], 15), $string_utils:left(tostr(length(s[3].name) > 13 ? s[3].name[1..13] | s[3].name, " (", s[3], ")"), 20), msg)) endfor this:notify("*** finished ***") this.responsible = z else "@check-full, from @traceback by APHiD" matches = {} if (length(match = argstr) == 0) player:notify(tostr("Usage: ", verb, " <string> --or-- ", verb, " <number>")) return endif if (!(responsible = player.responsible)) player:notify("No text has been saved by the monitor. (See `help @paranoid').") else if (typeof(x = $code_utils:toint(argstr)) == $ERR) for line in (responsible) if (index(tostr(@line[length(line)]), argstr)) matches = {@matches, line} endif endfor else matches = this.responsible[(l = length(this.responsible)) - x + 1..l] endif if (matches) linelength = player:linelength() string_utils = $string_utils list_utils = $list_utils for match in (matches) $command_utils:suspend_if_needed(3) text = tostr(@match[length(match)]) player:notify("Traceback for:") player:notify(text) verbwidth = 0 for verbitem in (list_utils:slice(mm = listdelete(mm = match[1], length(mm)), 2)) verbwidth = max(verbwidth, length(verbitem)) endfor numwidth = (linelength - verbwidth) / 4 - 1 widths = {numwidth, verbwidth, numwidth, numwidth, numwidth} top = l = between = "" for x in [1..5] top = top + between + string_utils:left({"This", "Verb", "Programmer", "VerbLocation", "Player"}[x], widths[x]) l = l + between + string_utils:space(widths[x], "-") between = " " endfor player:notify(top) player:notify(l) for line in (listdelete(mm = match[1], length(mm))) output = {} for bit in [1..5] output = {@output, string_utils:left(typeof(word = line[bit]) == $STR ? word | tostr(word, "(", valid(word) ? list_utils:shortest({word.name, @`word.aliases ! E_PROPNF => {}'}) | (word == $nothing ? "invalid" | (word == $ambiguous_match ? "ambiguous match" | "Error")), ")"), widths[bit]), " "} endfor player:notify(string_utils:trimr(tostr(@output))) endfor player:notify(l) endfor player:notify("**** finished ****") else player:notify(tostr("No matches for \"", argstr, "\" found.")) endif endif endif "Last modified by Dax (#789) on Wed May 4 06:46:02 2005 MDT." .