ProtoMUCK 2.0b3 (Muck2.2fb6.00rc9 -- Neon2.17)
There are various issues with flags in MUF, I'll try to
summarize them all here in the categories they belong.
Category 1: Unsettable flags cannot be tested against
using the flag? primitive. Seems to be true for various
flags, including E and F, probably all of them, in fact.
Example code:
me @ "PLAYER" flag?
if
me @ "Thought so" notify
else
me @ "Proto needs work ;-)" notify
then
Category 2: Some flags do not have a single character
shortcut, in particular LISTENER, TRUEIDLE, and
COMMAND ... tilde, slash, and some other characters are
still available, aren't they?
Additionally, it is somewhat misleading to have "W"
mean "W2" in some cases and "W1" in others.
an example:
@set #666=W
Wizard level set.
ex #666
Wyrm(#666PW2) ...
@set #666=W1
Wizard level set.
ex #666
Wyrm(#666PW) ...
I'd suggest allowing the use of mlevels for @set and
flag? purposes, e.g.
@set Avatar=8
equals
@set Avatar=BOY and @set Avatar=W4
#2 "8" flag?
would then return true. This could be implemented down
to Meeper as '1' and '0' would clear all bits (is there even
a 'right' way to clear those bits at the moment? W0
seems to work, as does !M) :)
Category 3: A few things I found in the documentation.
"man flag?" - flag? will NOT abort if encountering a flag
such as "ü" or "protomuckfan" ^.^, it will just return
false on the stack - this could also be a bug...?!
"man flaglist" - some possibly misleading formatting errors
Cya, Thygrrr!
Logged In: YES
user_id=26433
1) First of all, you cannot find out if an object is a player,
thing, etc. by the flag? prim, it has always been that way.
The P tag is not actually a true flag. You have to use
specific primitives to check this, such as Player?, Thing?,
etc. Each object type has its own primitive.
2) Some flags are not supposed to have single characters.
They're internal flags. In fact, other MUCK servers don't
even allow for you to check to see if they're even there.
ProtoMUCK is an exception.
Plus, W is W2. Why? W is short for WIZARD. W1 is not a
wizard, W is a mage. Which a mage does not have an
onslaught of wizard abilities. W1 is more like a... staff
member, or a helper. They can't really do much damage to
the system. It has always been like this. It was actually
decided to be made this way during the Neon/Glow days. For
compatability purposes as well, this should remain unchanged,
in my view.
Setting by the mlevel isn't a bad idea though. :) Place it in
the feature idea section maybe?
3) Huh. Weird. That used to abort I believe. Now that is a
bug for sure.
Logged In: YES
user_id=340748
For compatibility with the old standard of FLAG?, it was
changed not to abort, but to return false if the flag doesn't
exist, it's just the documentation that needs to be updated.
-Hinoserm
Logged In: YES
user_id=72124
1) moose, yeah, I'm well aware of the 'player?' and 'thing?'
and whatnot primitives. But what is wrong with enabling flag?
to test for all the FLAGS (duh???) listed in man flaglist and
help flags* :) Just because it has always been this way
shouldn't be the argument here, especially since adding the
additional features would not take away any functionality but
instead contribute to a more fleshed out 'completeness' of
proto.
2) Same here, sticking to the good technique of having a
short symbol for EVERYTHING is IMHO worth a discussion.
Especially since it is not about setting those flags like
trueidle, but finding them in examine and unparseobj strings,
where they should definitely belong.
As for the W vs W2 flag, maybe I'm to dull for this (quite
likely, hehe) but I think you exactly even reproduced the kind
of misconception I said one could fear to encounter with the
way it is now: "Plus, W is W2. Why? W is short for WIZARD.
W1 is not a wizard, W is a mage." That's exactly what I
meant!!! While @set foo=W will yield a W2 in foo's flag list,
@set foo=W1 will lead to a W in its flag list - It just looks
wrong being the crossover way it is now (and so far, nearly
every aspiring wizard I knew was confuesd by the
staytement "if you set something W, it becomes W2-bitted,
and if you @set it W1, it becomes W-bitted). This is not
about the roles of mages vs. those of wizards, sorry if I was u
nable to get my point across. As an additional comment,
GlowMUCK *did* it the other way, though I couldn't care less
for Glow now that Proto is so nice :)
2.5) "Setting by the mlevel isn't a bad idea though. :)"
Will do ^.^
Logged In: YES
user_id=340748
Outside of the documentation errors, this isn't really a bug
anymore. I agree that FLAG? could stand to be able to
check mlevels and object types, so I'll move this over to
feature requests for further debate.
-Hinoserm