Take a look at the Standard Rules, specifically the “convert to request” phrases, the most salient of which is:
To convert to request of (X - object) to perform (AN - action name) with (Y - object) and (Z - object):
(- TryAction(true, {X}, {AN}, {Y}, {Z}); rtrue; -).
It would probably work just fine to write your own version that didn’t require a second noun (untested):
To convert to request of (X - object) to perform (AN - action name) with (Y - object):
(- TryAction(true, {X}, {AN}, {Y}); rtrue; -).
You might want to look at the TryAction and related routines in the I6 template file/Appendix B to see whether there are any refinements.
–Erik
EDIT: I went ahead and tested that second one; it seems to work just fine. Here’s a sample game that effectively turns the PC into the player’s voodoo doll for controlling the dog:
[code]Place is a room. There is a gun and a sponge in the place. The dog is a person in the place.
Instead of doing anything:
let x be the action name part of the current action;
let y be the noun part of the current action;
convert to request of the dog to perform x with y.
To convert to request of (X - object) to perform (AN - action name) with (Y - object):
(- TryAction(true, {X}, {AN}, {Y}); rtrue; -).
Persuasion rule: persuasion succeeds.[/code]