^#^ vampiric touch^#^ SUBTOPIC-mage^#^ ______________________________ ______________________________ __/ \/ \__ | /| |: |:|| ||:| Spell: Vampiric Touch |: Description: |:|| ||:| School: Necromancy |: |:|| ||:| Cost: 12 |: The spell has a chance to |:|| ||:| Level: 12 |: pipe some of the victim's |:|| ||:| Usage: vampiric touch who |: living essence into the |:|| ||:| Component: corpse or skeleton|: caster. This in effect can |:|| ||:| Related Spells: |: heal the caster. |:|| ||:| None. |: |:|| ||:| |: |:|| ||:|_____________________________ |: _____________________________|:|| ||/______________________________\|:/______________________________\|| |_______________________________ _______________________________| '----` ^#^ ventriloquism^#^ SUBTOPIC-mage^#^ ______________________________ ______________________________ __/ \/ \__ | /| |: |:|| ||:| Spell: Ventriloquism |: Description: |:|| ||:| School: Illusion |: |:|| ||:| Cost: 1 |: This spell causes another |:|| ||:| Level: 1 |: person to appear to speak. |:|| ||:| Usage: vent target message |: The ventriloquised victim |:|| ||:| |: realises that they did not |:|| ||:| Related Spells: |: say it. But they do not |:|| ||:| Phantasm, Improved Phantasm |: realise who ventriloquised |:|| ||:| |: them. |:|| ||:|_____________________________ |: _____________________________|:|| ||/______________________________\|:/______________________________\|| |_______________________________ _______________________________| '----` ^#^ visual illusion^#^ SUBTOPIC-mage^#^ ______________________________ ______________________________ __/ \/ \__ | /| |: |:|| ||:| Spell: Visual Illusion |: Description: |:|| ||:| School: Illusion |: |:|| ||:| Cost: 15 |: This spell weaves an |:|| ||:| Level: 15 |: illusion about an item |:|| ||:| Usage: visual illusion item |: or monster. The woven |:|| ||:| |: illusion fools all who |:|| ||:| Related Spells: |: touch and look at the item. |:|| ||:| Permanent Illusion |: It can be dispelled with a |:|| ||:| |: dispel magic. |:|| ||:|_____________________________ |: _____________________________|:|| ||/______________________________\|:/______________________________\|| |_______________________________ _______________________________| '----` ^#^ valid_exec^#^ SUBTOPIC-efun32^#^ SYNOPSIS int valid_exec(string name) DESCRIPTION Validate the rebinding of an IP connection by usage of efun exec(). The argument is the name of the _program_ attempting to rebind the connection. This is not the file_name() of the object, and has no leading slash. Return 0 to disallow the action, any other value to allow it. SEE ALSO exec(E) ^#^ valid_query_snoop^#^ SUBTOPIC-efun32^#^ SYNOPSIS valid_query_snoop(object ob) DESCRIPTION Should return 1 if previous_object() (the one that called the efun query_snoop()) is allowed to query wether ob is being snooped, 0 if not. The master object is always allowed to use query_snoop(). SEE ALSO valid_snoop(M), query_snoop(E), snoop(E) ^#^ valid_read^#^ SUBTOPIC-efun32^#^ SYNOPSIS string valid_read(string path, string uid, string func, object ob) DESCRIPTION This function is called to check if the object ob with the user-id uid has read permissions for the file given by path for the operation named by func. It should return 0 if permission is denied, or the normalized path if permission is granted. You can also return 1 to indicate that the path can be used unchanged. The returned pathname must not contain ``..'', a leading / will be stripped by the interpreter. Func denotes the efun call or other operation that caused valid_read() to be called: ed_start (check if the file to be edited is readable), file_size, get_dir, print_file (efun cat()), read_bytes, read_file, restore_object, tail. Note that this function is called in compat mode as well. If you need to be compatible with the old 2.4.5-mudlib, redirect these calls to the valid_read/valid_write in the user object. SEE ALSO valid_write(M), make_path_absolute(M) ^#^ valid_seteuid^#^ SUBTOPIC-efun32^#^ SYNOPSIS int valid_seteuid(object ob, string newid) DESCRIPTION Should return 1 if ob is allowed to set its euid to newid. Objects are always allowed to set their euid to 0. SEE ALSO seteuid(E), uids(C) ^#^ valid_snoop^#^ SUBTOPIC-efun32^#^ SYNOPSIS int valid_snoop(object me, object you) DESCRIPTION Should return 1 if me is allowed to snoop you, 0 if not. SEE ALSO snoop(E), query_snoop(E), valid_query_snoop(M) ^#^ valid_write^#^ SUBTOPIC-efun32^#^ SYNOPSIS string valid_write(string path, string uid, string func, object ob) DESCRIPTION This function is called to check if the object ob with the user-id uid has write permissions to the file given by path for the operation named by func. It should return 0 if permission is denied, or the normalized path if permission is granted. You can also return 1 to indicate that the path can be used unchanged. The returned pathname must not contain ``..'', a leading / will be stripped by the interpreter. Func denotes the efun call or other operation that caused valid_write() to be called: cindent, do_rename (efun rename(), for the old and then for the new name), ed_start (whenever the builtin ed tries to write to a file), mkdir, remove_file (efun rm()), rmdir, save_object, write_bytes, write_file. Note that this function is called in compat mode as well. If you need to be compatible with the old 2.4.5-mudlib, redirect these calls to the valid_read/valid_write in the user object. SEE ALSO valid_read(M), make_path_absolute(M)