Subject: Parser Madness

From: [email-masked]
Date: Tue, 23 Feb 1993 23:57:36 -0800

I am currently helping to program an rpg moo.  This moo won't allow
players to ever see object numbers, since it would be a peek 'behind
the stage'.

Therefore, if there are 3 dogs in the room {#501, 502, 503}, Joe
Player won't be able to "look #501".  He'll have to type what he
knows, which is "look dog" and the server will come back "I don't know
which dog you mean."

Has anyone done a reliable way of overcoming this?

John@RL
[email-masked]
Cassnak@lambdamoo
Kade@Monohaze

---

From: [email-masked] (Jonathan Bradshaw)
Date: Wed, 24 Feb 1993 06:25:52 -0800

> Has anyone done a reliable way of overcoming this?
As long as your players are not .programmers then editing $string_utils
:literal_object() which is called by the matching routines:

$string_utils:literal_object   this none this
string = args[1];
if (!string)
  return $nothing;
elseif (string[1] == "#" && E_TYPE != (object = $code_utils:toobj(string)))
  if ($object_utils:has_property(player, "builder") && player.builder)
    return object;
  else
    return $nothing;
  endif
elseif (string[1] == "$" && ($object_utils:has_property(#0, pn =
 string[2..length(string)]) && typeof(object = #0.(pn)) == OBJ))
  return object;
else
  return $failed_match;
endif

----
I have a .builder bit that the program checks which programmers also inherit,
so you could change that to:

  if (player.programmer)
    return object;
  else
    return $nothing;
  endif;

-- 
 Jonathan Bradshaw | [email-masked] | PGP Key Available On Request
  Packet: n9oxe@n0ary.#nocal.ca.usa.na | Prodigy: XMSN02B | (Os/2)(DOS)(Linux)
  WNDU-AM/FM/TV South Bend, IN | Disclaimer "My opinions are not my employers"
 "If a girl rejects you, don't doubt it's part of the plan" -Deborah Ann Gibson

---

From: Judy Anderson <[email-masked]>
Date: Wed, 24 Feb 1993 11:08:55 -0800

On LambdaMOO there is a Matching Room (it's one of the base parents of
the RPG rooms; I don't remember the number offhand).  This provides
support in its :huh verbs for "look first dog" and "take second dog's
sword" and so forth.

---

From: Pavel Curtis <[email-masked]>
Date: Fri, 26 Feb 1993 15:19:02 -0800

> Date:	Tue, 23 Feb 1993 23:57:36 -0800
> From:	[email-masked]
> 

This will require hacking the server, since the built-in command parser
understands how to map object numbers into objects...

	Pavel

---

From: Moonchilde <[email-masked]>
Date: Fri, 26 Feb 1993 15:50:21 -0800

It would seem that if all the look verbs and examine verbs and all that
never showed an object number, that unless the player was a programmer
or was very good at guessing, it wouldn't matter if the parser understands
the #<num> syntax for objects.
I don't know of any place where the server directly hands OIDs to the players.

--JT
Practice random kindness and senseless acts of beauty --Anonymous
Argue for your limitations and sure enough they're yours --Richard Bach

Moonchilde/Amythyst/JT Traub ---           [email-masked]

---

From: [email-masked]
Date: Sat, 27 Feb 1993 16:27:59 -0800

>Moonchilde/Amythyst/JT Traub ---           [email-masked]

You would not BELIEVE how many players will go out of their way to do stuff like
this.  Especially if you allow for an "about" verb that gives the object's location
in the output.

On Godnet, I'm sure we even had people write client scripts to get a list of object
numbers.

[email-masked]
Cassnak@lambdamoo
Samson@godnet
Kade@monohaze
John@rl