Enabling interpersonal actions with inanimate objects

#1

Just trying to figure out a way to enable actions like ‘Answering it that’, ‘asking it for’, ‘asking it about’, etc, with a noun like a bump on a log or a philosopher’s stone. Is there any way to circumvent the parser errors ‘can only do that to something animate’ or ‘you can’t talk to inanimate things’, without having to re-create the action(s) or the noun(it’s a supporter)??

Thanks.

0 Likes

#2

Update–I have defined the object as an animal, and given it a privately-named surface–making it a ‘part of’ the animal. I have disabled the ‘can’t take people’s possessions’ rule regarding this specific object (because it cannot keep you from taking whatever you put on it or parts of it).

Now, my question is–when you are ‘asking so-and-so to try doing something’, what is the name of the variable that stores the action name of what you are trying to get the NPC to do??

Thanks

0 Likes

(Daniel Stelzer) #3

The “Inanimate Listeners” extension might be what you’re looking for.

I believe you can access that with “the action name part of [your stored action]”.

1 Like

#4

Draconis,

So ‘your stored action’ would be the action being tried by the NPC (provided that persuasion succeeds)?

Thanks for setting me straight!

0 Likes

(matt w) #5

The action tried by the NPC will be “the current action,” just as if it were done by the player.

Androidarium is a room. Jill is a woman in androidarium. Jill carries a rock.

Persuasion rule for asking Jill to try doing something:
	say "Jill says, 'I really don't feel like [action name part of the current action].'";
	persuasion fails.

(This will yield some goofy results like “giving it to” if you try to use it unadulterated.)

I believe that persuasion actions are represented the same as other stored actions, except that there’s a flag to signal that the action is a request. So the difference between what happens when the player types “Jill, drop the rock” and when the source code says “try Jill dropping the rock” is the persuasion flag–both are stored actions with an actor part Jill and an action name part dropping and a noun part the rock.

(I think “your stored action” was something Draconis was just using to stand in for whatever stored action variable you might have–it’s not Inform syntax, unless you define a variable with that name.)

0 Likes

(Daniel Stelzer) #6

Yep, just as Matt said. A “stored action” is a type of variable, just like a “number” or a “truth state”. So you can save actions for later, analyze them, all that. If you want to know the current command as a stored action, it’s called “the current action”.

0 Likes

#7

Thanks a lot, guys!

0 Likes

(Gilles Guillemette) #8

You can just give it the animate property when defining your object.

The computer is a backdrop.
The computer is everywhere.
Include (- has animate -) when defining the computer.

Now the player can talk to computer, ask computer about, tell computer about, kiss computer, hit computer, etc.

1 Like

#9

Thanks for that–of course I don’t have to define my object/character as a backdrop…??

That looks like I6 code.

Thanks!

0 Likes

(Gilles Guillemette) #10

That was just an example. You can use the (- has animate -) property on anything such as container, supporter, thing, device, etc. And yes, it is Inform 6 code.

0 Likes

#11

Thanks! That will be very useful!

0 Likes