From the NannyMUD documentation
2001-01-04
value_line_cost_hook - Value line cost hook
/obj/player
Any object can use hooks.
value_line_cost_hook
When the hooked player is about to get a cost on a line based on the stdline standard.
Use of this hook requires approval, which shall be noted with the guild (or other object) in which the hook is established. Lines can prevent this hook from being executed on their costs.
Deduction of a cost here may mean that the player pays a cost even though in the end he can't send the message anyway, if you return 0 here, or if there is more than one of this hook resident at a time.
line_control in std/line/line_control
NAME
value_line_cost_hook - Value line cost hookSYNTAX
int value_line_cost_hook(mixed arr, object player)DESCRIPTION
When the hooked player is about to get a cost on a line based on the stdline standard. The arguments to the hook are as follows: ({the line controller (object), the cost in sp (int), the raw message sent (string)}) The player who is sending the message.RETURN VALUES
int: 0: A line cost might have been paid, but the player is still expected to owe spell points. Just keep going. 1: The player paid a line cost, and they don't owe sp or anything else. We're finished, let the player send the message. -1: The player was not able to pay a cost that they are required to pay. Don't allow the player to send the message. You must use your own notify_fail() here; no other will be sent.NOTE
Use of this hook requires approval, which shall be noted with the guild (or other object) in which the hook is established. Lines can prevent this hook from being executed on their costs.NOTE
Deduction of a cost here may mean that the player pays a cost even though in the end he can't send the message anyway, if you return 0 here, or if there is more than one of this hook resident at a time.