Default response for look / e(x)amine.

OurJud
05 Dec 2016, 15:53I've changed the default look at / x response for objects which don't exist, from I can't see that to Nothing out of the ordinary.
Unfortunately this creates a couple of flaws. One I can live with, but the other is that use (object that doesn't exist) also gets Nothing out of the ordinary.
Is there any way to avoid this?
The Pixie
05 Dec 2016, 19:31Override the LOOKAT command, is probably the best way.

OurJud
05 Dec 2016, 19:44I looked at this first, but can't find any reference to I can't see that.
I've been through all the libraries that come up when you search for lookat, but I don't see anywhere I can change the actual response the command triggers.
The Pixie
05 Dec 2016, 21:09Actually it is not as obvious as I thought. Have you found the LOOKAT command? Somewhere in the middle is this:
if (LengthOf(lookdesc) = 0) {
lookdesc = Template("DefaultObjectDescription")
}
Change it to:
if (LengthOf(lookdesc) = 0) {
lookdesc = "Nothing out of the ordinary"
}

OurJud
05 Dec 2016, 21:15Marvellous! Thanks very much :)
Mmm, still getting Can't see that
I also noticed the text for DefaultObjectDescription is already set as Nothing out of the ordinary when you go to it.
The text for Can't see that is in UnresolvedObject, but if I change it there it gives the response for any verb+object.
> x floor
Nothing out of the ordinary
works, but
> use walls
Nothing out of the ordinary
Does not.
Whereas I can't see that would make sense for both (so long as the object wasn't desribed as being in the room)
The Pixie
05 Dec 2016, 21:56Okay, go back to the LOOKAT command, and put "Nothing out of the ordinary" in the "Unresolved object text" box (and change the code back to what it was).

OurJud
05 Dec 2016, 23:51Thank you! That appears to have done it.
I know this is getting obsessive now, but would changing I can't see that in UnresolvedObject to That doesn't make sense or Huh? cause any logic issues, in that I'm now using Nothing out of the ordinary for look/x relating to scenery?
I ask because use tree would still get I can't see that, if there's no tree object but I've described one in the description.
The Pixie
06 Dec 2016, 09:03I am not too clear what you mean, but just changing text (or replacing templates with text) should not cause logic problems.

OurJud
06 Dec 2016, 17:33It's okay, I just did the same thing with the use command (added the line in the Unresolved object text field).
The Pixie
06 Dec 2016, 20:25An altermative approach would be to override ScopeVisibleNotReachableForRoom
. (see here for how to do that), and change the last line of code to this:
return (result + everything)
Then create an object called "everything", somewhere the player cannot get to. Set it to be scenery, and give it the descripotion "Nothing out of the ordinary".
On the Object tab, in the other names bit, add all the things you want to include, "wall", "tree", etc.
Now Quest will think this object is in every room, so if the player ypes X WALL, she will see: "Nothing out of the ordinary".
You can add verbs, USE response, etc.

OurJud
06 Dec 2016, 21:32Thank you. I shall take a look, although I didn't have any specific objects in mind.
I was really looking for a way which would allow me to be as vivid with my descriptions as I pleased, without having to worry about making everything I mention an object in case players want to look at it.
I can't imagine why anyone is going to say look at / x (an object I haven't mentioned in the description), so that the fact that look at werewolf (where no werewolf exists) will still get Nothing out of the ordinary, shouldn't really be a concern.
If folk want to go looking at objects (or random words) not even mentioned in the description, then they're probably not overly concerned with having any immersion broken in the first place.