Changeset 1264
- Timestamp:
- 09/12/08 20:18:11 (3 months ago)
- Files:
-
- 1.8.3/branches/devel/game/txt/hlp/penncmd.hlp (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.8.3/branches/devel/game/txt/hlp/penncmd.hlp
r1252 r1264 1932 1932 @lock[/<switch>] <object>=<key> 1933 1933 1934 This command "locks" the object, specifying a key which determines who or 1935 what can do certain things with the object. There are many different types 1936 of locks, all of which are described in "help locktypes" and which are 1937 designated by the switch. The "basic" lock determines, for players and 1938 things, who can pick them up. For exits, it determines who can go through 1939 the exit. All other locks can be set the same way as the basic lock. 1940 1941 Whenever you "pass" the basic lock, you succeed in doing something with 1942 the object. This triggers the @success/@osuccess/@asuccess 1943 messages and actions. If you fail to pass the basic lock, you trigger 1944 the @failure/@ofailure/@afailure messages and actions. Other locktypes 1945 may also have such success/failure messages: see "help failure" for info. 1946 1947 You can specify <object> and <key> as either the name of an object in 1948 the immediate area, a DBREF number, "me", or "here". 1934 This command "locks" the object, specifying a key which determines 1935 who or what can do certain things with the object. There are many 1936 different types of locks, all of which are described in "help 1937 locktypes" and which are designated by the switch. The "basic" lock 1938 determines, for players and things, who can pick them up. For exits, 1939 it determines who can go through the exit. All other locks can be 1940 set the same way as the basic lock. 1941 1942 Whenever you "pass" the basic lock, you succeed in doing something 1943 with the object. This triggers the @success/@osuccess/@asuccess 1944 messages and actions. If you fail to pass the basic lock, you 1945 trigger the @failure/@ofailure/@afailure messages and actions. Other 1946 locktypes may also have such success/failure messages: see "help 1947 failure" for info. 1948 1949 You can specify <object> and <key> as either the name of an object 1950 in the immediate area, a DBREF number, "me", or "here". 1949 1951 1950 1952 (continued in help @lock2) 1951 1953 & @lock2 1952 You can lock an object in several different ways. The simplest lock is to 1953 lock it to one other object with the '=', signifying a DBRef # match.: 1954 1955 You can lock an object in several different ways. The simplest lock 1956 is one that always succeeds (#true) or always fails (#false), or 1957 that matches one other object by prefixing it with a '=', signifying 1958 a DBRef # match.: 1959 1960 @lock My Toy = #false 1961 This lock will always fail. 1962 1954 1963 @lock My Toy = = me 1955 This locks the object "My Toy" to you and you alone. It is recommended 1956 that you @lock me == me in order to prevent anyone else from picking 1957 you up. The two = signs are NOT a typo! The first is part of the @lock 1958 syntax (as shown at the top of "help @lock") the second is a lock key 1959 that means "exactly this object". 1960 1961 You can lock an object -against- another object as well, using the '!' 1962 symbol before any other key: 1964 This locks the object "My Toy" to you and you alone. It is 1965 recommended that you @lock me == me in order to prevent anyone 1966 else from picking you up. The two = signs are NOT a typo! The 1967 first is part of the @lock syntax (as shown at the top of "help 1968 @lock") the second is a lock key that means "exactly this 1969 object". 1970 1971 You can lock an object -against- another object as well, using the 1972 '!' symbol before any other key: 1963 1973 @lock Shared Toy = !Vector Sigma 1964 This locks the object "Shared Toy" to everyone -except- Vector Sigma. 1965 Everyone except Vector will be able to pick up the object. 1974 This locks the object "Shared Toy" to everyone -except- Vector 1975 Sigma. Everyone except Vector will be able to pick up the 1976 object. 1966 1977 1967 1978 (continued in help @lock3) … … 1969 1980 You can lock an object to something that has to be carried: 1970 1981 @lock Door = +Secret Door Key 1971 This locks the exit "Door" to someone carrying the object "Secret Door 1972 Key". Anyone carrying that object will be able to go through the exit. 1973 1974 You can lock an object to -either- an object or to someone carrying the 1975 object with: 1982 This locks the exit "Door" to someone carrying the object 1983 "Secret Door Key". Anyone carrying that object will be able to 1984 go through the exit. 1985 1986 You can lock an object to -either- an object or to someone carrying 1987 the object with: 1976 1988 @lock Disneyworld Entrance = Child 1977 This locks the exit "Disneyworld Entrance" to either the object 1978 "Child" -or- to someone carrying the object "Child". (OK, so it's1979 a weird example.)1989 This locks the exit "Disneyworld Entrance" to either the object 1990 "Child" -or- to someone carrying the object "Child". (OK, so 1991 it's a weird example.) 1980 1992 1981 1993 You can lock an object to a specific player by using a *: … … 1985 1997 (continued in help @lock4) 1986 1998 & @lock4 1987 An "owner" lock allows you to lock something to anything owned by the1988 same player:1999 An "owner" lock allows you to lock something to anything owned by 2000 the same player: 1989 2001 @lock Box = $My Toy 1990 This locks "Box" to anything owned by the owner of "My Toy" (since1991 players own themselves, that includes the owner as well).2002 This locks "Box" to anything owned by the owner of "My Toy" 2003 (since players own themselves, that includes the owner as well). 1992 2004 1993 2005 An "indirect" lock allows you to lock something to the same thing as 1994 another object (very useful in setting channel locks; see help @clock): 2006 another object (very useful in setting channel locks; see help 2007 @clock): 1995 2008 @lock Second Puppet = @First Puppet 1996 This locks the object "Second Puppet" to whatever the object 1997 "First Puppet" is locked to. Normally, the lock type that is checked1998 is the same as the lock on the first. You can specify a different1999 lock type with @object/LOCKNAME. For example:2000 @lock Second Puppet = @First Puppet/Use2001 Second Puppet's basic lock nowchecks First Puppet's use lock.2002 2003 There are also some more complex locks called attribute and evaluation2004 locks. In addition, you can make complex locks (combining several types2005 or reversing them).2009 This locks the object "Second Puppet" to whatever the object 2010 "First Puppet" is locked to. Normally, the lock type that is 2011 checked is the same as the lock on the first. You can specify a 2012 different lock type with @object/LOCKNAME. For example: @lock 2013 Second Puppet = @First Puppet/Use Second Puppet's basic lock now 2014 checks First Puppet's use lock. 2015 2016 There are also some more complex locks called attribute and 2017 evaluation locks. In addition, you can make complex locks (combining 2018 several types or reversing them). 2006 2019 2007 2020 (continued in help @lock5) 2008 2021 & @lock5 2009 2022 ATTRIBUTE LOCKS 2010 You can lock an object to an attribute on the person trying to pass 2023 You can lock an object to an attribute on the person trying to pass 2011 2024 the lock (as long as the object can "see" that attribute): 2012 2025 … … 2018 2031 For example: 2019 2032 @lock Men's Room = sex:m* 2020 This would lock the exit "Men's Room" to anyone with a SEX attribute2021 starting with the letter "m".2033 This would lock the exit "Men's Room" to anyone with a SEX 2034 attribute starting with the letter "m". 2022 2035 @lock A-F = icname:<g 2023 2036 This would lock the exit "A-F" to anyone with a ICNAME attribute … … 2028 2041 & @lock6 2029 2042 COMPLEX LOCKS 2030 You can combine or reverse locks very easily using the following 2043 You can combine or reverse locks very easily using the following 2031 2044 BOOLEAN symbols and parentheses () to group them: 2032 2045 & - "and" … … 2035 2048 For example: 2036 2049 @lock My Toy = =me | !*Chromia | +Toy Box Key 2037 This locks "My Toy" to me, -against- the player Chromia, or to anyone2038 carrying the object "Toy Box Key".2050 This locks "My Toy" to me, -against- the player Chromia, or to 2051 anyone carrying the object "Toy Box Key". 2039 2052 @lock My Toy = *Marissa & +Toy Box Key 2040 This locks "My Toy" to the player Marissa, who needs to be carrying2041 the object "Toy Box Key".2053 This locks "My Toy" to the player Marissa, who needs to be 2054 carrying the object "Toy Box Key". 2042 2055 @lock My Toy= *Chromia | ( *Marissa & +Toy Box Key ) 2043 This locks it to Chromia, OR to Marissa if she is carrying the Key. 2056 This locks it to Chromia, OR to Marissa if she is carrying the 2057 Key. 2044 2058 2045 2059 (continued in help @lock7) … … 2050 2064 @lock <object>=<attribute>/<value> 2051 2065 2052 The difference between this and an attribute lock is that the <attribute> 2053 is taken from <object> rather than from the person trying to pass the 2054 lock. When someone tries, <attribute> is evaluated, and the result is 2055 compared to <value>. If it matches, then the person passes the lock. 2066 The difference between this and an attribute lock is that the 2067 <attribute> is taken from <object> rather than from the person 2068 trying to pass the lock. When someone tries, <attribute> is 2069 evaluated, and the result is compared to <value>. If it matches, 2070 then the person passes the lock. 2056 2071 2057 2072 The person trying to pass the lock is %# and <object> is %! when the 2058 2073 evaluation takes place. The evaluation is done with the powers of 2059 <object>. If you try to do something (like [get(%#/<attribute>)]) and2060 <object> doesn't have permission to do that, the person will automatically2061 fail to pass the lock.2074 <object>. If you try to do something (like [get(%#/<attribute>)]) 2075 and <object> doesn't have permission to do that, the person will 2076 automatically fail to pass the lock. 2062 2077 2063 2078 (continued in help @lock8) … … 2069 2084 This locks the object "Stage" to puppets only. 2070 2085 2071 Whenever someone tries to pick up the object, the attribute 2072 "ispuppet" will be checked, substituting in the person's DBREF number2073 for %#.2074 2075 [hasflag(<dbref>, PUPPET)] will come out to 1 if the object with 2076 <dbref> has the "PUPPET" flag. Otherwise, it will come out to be 0.2077 Since the value in the @lock is 1, only objects with the PUPPET flag2078 will be able to pass this lock.2086 Whenever someone tries to pick up the object, the attribute 2087 "ispuppet" will be checked, substituting in the person's DBREF 2088 number for %#. 2089 2090 [hasflag(<dbref>, PUPPET)] will come out to 1 if the object with 2091 <dbref> has the "PUPPET" flag. Otherwise, it will come out to be 2092 0. Since the value in the @lock is 1, only objects with the 2093 PUPPET flag will be able to pass this lock. 2079 2094 2080 2095 (continued in help @lock9) 2081 2096 & @lock9 2082 You can also test for set flags, powers, or object types in a lock directly,2083 without using an evaluation lock, with these formats:2097 You can also test for set flags, powers, or object types in a lock 2098 directly, without using an evaluation lock, with these formats: 2084 2099 2085 2100 @lock <object>=flag^<flag> … … 2087 2102 @lock <object>=power^<power> 2088 2103 2089 These locks act like the object the lock is on does a hasflag(%#, <flag>), 2090 hastype(%#, <type>), or haspower(%#, <power>) succeeding if the flag is set. 2104 These locks act like the object the lock is on does a hasflag(%#, 2105 <flag>), hastype(%#, <type>), or haspower(%#, <power>) succeeding if 2106 the flag is set. 2091 2107 2092 2108 You can test for channel membership with: … … 2103 2119 @lock <object>=objid^<object id> 2104 2120 2105 You can test to see if the enactor is a member of a space-separated list2106 of dbrefs or objids on an atrribute on the object, with:2121 You can test to see if the enactor is a member of a space-separated 2122 list of dbrefs or objids on an atrribute on the object, with: 2107 2123 2108 2124 @lock <object>=dbreflist^<attributename>
