That passage of the manual seems unhelpfully metaphysical to me in some ways. I think your second post basically has it right, but it’s probably more helpful to think of it in terms of which rules run; the idea, I think, is that if the action makes it to the Carry Out rules, then it is considered to succeed. So some of your scenarios:
Code:
[code]Kitchen is a room.
The napkin is in Kitchen.
Test me with “actions/take napkin”.[/code]
Output:
The action went through all the standard carry out and report rules, because nothing stopped it.
[code]Kitchen is a room.
The napkin is in Kitchen.
There is a hundred dollar bill.
After taking the napkin when the hundred dollar bill is nowhere:
say “As you take the napkin a hundred dollar bill falls out!”;
now the hundred dollar bill is in the location.
Test me with “actions/take napkin”.[/code]
Output:
The After rule cut off the standard report rules, but the action is still considered to have succeeded because the Carry Out rules ran.
[code]Kitchen is a room.
The napkin is in Kitchen.
There is a hundred dollar bill.
Instead of taking the napkin when the hundred dollar bill is nowhere:
say “You see a hundred dollar bill in the napkin and take that instead.”;
now the player carries the hundred dollar bill.
Test me with “actions/take napkin”.[/code]
Output:
The “Instead” rule cut off the action before you reach the carry out rules, so the action is considered to have failed.
[code]Kitchen is a room.
The napkin is in Kitchen.
There is a poisonous spider in the kitchen.
Check taking the napkin when the spider is in the location and the napkin is in the location:
say “You try to get the napkin, but the spider scares you off.” instead.
Test me with “actions/take napkin”.[/code]
It failed because the check rule cut it off; note that check rules that fail get put into the “reason the action failed” variable.
[code]Kitchen is a room.
The napkin is in Kitchen.
There is a poisonous spider in the kitchen.
Before taking the napkin when the spider is in the location and the napkin is in the location:
say “You’re not even going to think about taking the napkin while that spider is around.” instead.
Test me with “actions/take napkin”.[/code]
To tell you the truth, I wasn’t expecting “ended without result” here.
[code]Kitchen is a room.
The napkin is in Kitchen.
There is a poisonous spider.
After taking the napkin when the spider is nowhere:
say “As you pick up the napkin, you find a poisonous spider in its folds and drop them both.”;
now the napkin is in the location;
now the spider is in the location.
Test me with “actions/take napkin”.[/code]
Because the carry out rules ran, the action is considered to have succeeded, even though the After rule means that you didn’t wind up with the napkin.
…and now, another point: For a lot of purposes, maybe most, you don’t really have to worry about whether the action succeeded or not. It plays a big role in printing messages about orders you give to NPCs, but I’m not sure where else it makes that much of a difference. Anyone else got any opinions on this?