From the NannyMUD documentation
2000-12-16
NAME
feeling_hook - To hook a soul feeling.AVAILABILITY
/std/soul/soul /std/soul/souldSYNTAX
void feeling_hook(mixed *feeling_data, object soul | object sould)DESCRIPTION
The feeling_hook is called whenever a living performs a successful soul feeling. The second argument depends if the hook was called from a specific player soul or from the soul daemon. The argument feeling_data has the following format:({ string *metaverb, mixed *verbdata1, mixed *verbdata2, ... })where each verbdata has the following format:verbdata = ({ string verb, object *targets, string adverbs, string message, string body_part, string preposition })NOTE
If you hook the sould, it will be effective for all players. Make sure that your hook does NOT bug since it will affect everyone.
FUNCTION
NAME
block_feeling_hook - To block a soul feeling.AVAILABILITY
/std/soul/soul /std/soul/souldSYNTAX
int block_feeling_hook(mixed *feeling_data, object soul | sould)DESCRIPTION
The block_feeling_hook is called just before a feeling is about to be performed. If it returns 1, the feeling fails. The second argument depends if the hook was called from a specific player soul or from the soul daemon. The argument feeling_data has the following format:({ string *metaverb, mixed *verbdata1, mixed *verbdata2, ... })where each verbdata has the following format:verbdata = ({ string verb, object *targets, string adverbs, string message, string body_part, string preposition })NOTE
If you hook the sould, it will be effective for all players. Make sure that your hook does NOT bug since it will affect everyone.EXAMPLE
/* A simple blocking of the "smile" feeling */ block_feeling_hook(data,soul) { mixed element; foreach(element, data) if(pointerp(element) && element[0] == "smile") return tell_object(this_player(), "You are not allowed to smile.\n"), 1; }