Stinky Fingers

No Soap Radio!

Now with BotBot Support!

If this is your first foray into the wide world of bots, look at your finger. Open your cyborg.ipt file with your favorite text editor (BBEdit, vim, Alpha, Microsoft Word...), and look for the word "finger."
The language of Palace scripts is called iptscrae. Rather than throw a dictionary at you right off, I suggest peering occasionally at the official docs as we go along.
Okay, search for "finger" in your Cyborg.ipt file. If you find code that looks like this:

{
; this is your FINGER information - replace the stuff in quotes with
; information about yourself.
		"^<insert name>\x0d"
		"<insert e-mail>\x0d" +
		WHOCHAT PRIVATEMSG
	} CHATSTR "finger" == CHATSTR ";finger" == OR 
	  WHOCHAT WHOME == NOT AND IF
}

...then your finger stinks! That's a simple, plain-vanilla Communities.com cheap sheet metal finger. Your first task should be to change this stuff, because having it in there makes you look like a weenie.
What is this finger stuff anyway? It's provided as a way for other users to identify you, and for you to identify them. It's in your INCHAT handler that is, it runs when someone else says something. In particular, when they say "finger" or ";finger" to you, either as regular text or a whisper. You will automatically whisper back to them (WHOCHAT PRIVATEMSG translates into English as "Send the preceding text as a whisper to whoever is chatting at me").
You can have just about any kind of code in your "finger" response, from simply your name and e-address, to any kind of complicated animation you can dream up. In terms of looking like a dork, I'd actually suggest completely removing your finger code over leaving it with that "<insert e-mail>" hanging there!
Here's an annotated version of finger code made by the BotBot (Notes following semicolons are considered comments by iptscrae, and ignored when the script is running).

ON INCHAT {
    whoFing GLOBAL
    CHATSTR LOWERCASE lowchat =		; See Note #1
    {
	{
		"\x3bfinger" WHOCHAT PRIVATEMSG	; #2, #7
	} whoFing WHOCHAT == NOT IF	; #3
	"@10,10 ^"			; #4
	    USERNAME &			; #5
	    ": Conqueror of Scotland\x0d" &
	    "http://www.botzilla.com/house/" &	; #6, #8
	WHOCHAT PRIVATEMSG
	WHOCHAT whoFing =		; #3
    } lowchat "finger" ==
      lowchat "\x3bfinger" == OR	; #7
      WHOCHAT WHOME == NOT AND IF
}

What're the differences?

  1. First, we change what's been said (i.e., the contents of CHATSTR) to lower-case, so we're happy to accept "Finger" or ";FinGER" or whatever.
  2. Next, we promptly ";finger" the curious user right back!
  3. We remember who is fingering us in the global variable whoFing so if they finger us again in the near future (maybe they, too, auto-reply to all fingers with a finger of their own...), we won't repeat the announcement and we won't auto-re-finger them again (to avoid the possibility of an endless loop of finger pointing...)
  4. Next, we start our finger reply with "@10,10 ^" which will jam it off into the upper left corner as a box, rather than obscure ourselves with text (Too bad for anyone actually sitting in that corner, I know...).
  5. We use the iptscrae USERNAME command to get the name set in the Preferences dialog, rather than "hard-wiring" a fixed name in the finger string. If you decide to change your name from "Fat Albert" to "Prince Albert," you needn't change the cyborg code (Then again, maybe you'd rather use a fixed name (like the the BotBot "Prefered Name," tagged as "%p"), say your name IRL; in which case, self-tuning name code isn't needed).
  6. Web address, e-mail address... toss in what you like. Chaos is good for your brain. The "\x0d" parts of the string indicate a forced carriage return in the text (\x0d is the hex escape code for carriage return).
  7. We've also changed the ";" chars to "\x3b" (hex escapes) so that the sometimes-buggy client doesn't misinterpet strings starting with ";" for proper comment lines.
  8. We've replaced the "+" signs used in the Communities.com original with "&" signs, just to make it a tiny bit clearer that we're concatenating strings here, not adding numbers (whose idea was it to overload "+" in this way? Using "&" is much, much clearer).
Not much work at all, but we've already gone a long way toward making our personal bot skills the pride of the palace by starting on the stuff that shows.