[CF-Devel] DM - God Finger - bleah!
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Sun May 30 23:56:01 CDT 2004
In terms of privacy issues, hard to say.
One can make the case that if you were a police officer and had to tell
someone if they were under surveillance, you'd never actually catch them doing
anything (or they are really stupid criminals).
One can make the same case for crossfire - if there is a report of abuse, the
DM may want to check it out, and not notify the player involved. Because if the
player suddenly got a notice 'you are under surveillance', of course that player
is going to stop doing whatever abusive actions.
I personally find it hard to envision what one would do in crossfire that is
so secretive. I could see things like private messages perhaps - even to the
extent of things like 'says', if a couple players on by themselves on a map and
are thinking of having a private conversation.
As far as a 'snoop' for the dm - to see what the player sees without being
there, this probably isn't that hard to do. Add something a field to the
player/socket, and when a dm starts to snoop, that is set to point to the player
he is snooping on. Then when it comes time to render the map, it uses the data
for the snooped player, and not the one the dm is currently on.
One could extend this a bit of course - include things like the commands the
player enters, so you could see if they are invoking spells and what not.
Because as I think about it, trying to discern/filter messages is very difficult
- by the time new_draw_info() gets the message, and that is the obvious place to
send a copy to the dm, there isn't really any context about the message itself,
other than color. So you could perhaps say 'if the color is ..., don't send to
snooping dm'. (aside, one of the things on the TODO list is to change the passed
in values to be context and not color).
Now going back to the original issue - DM's not being able to see invisible -
that is actually much more difficult to fix.
That is because each square is generated once, and every player that can see
it, sees the same thing. If you notice for example, see invisible is actually
an area of effect spell (makes invisible things visible for everyone), and not a
personal spell such that only the caster can see the invisible objects.
So to make that work for the DM, the map code would have to get redone - now
for each and every space, you'd have to figure out what the dm sees special.
This perhaps get easier if we limit see invisible of dm's to only see
invisible players, which may be what is really desired. That is a bit simpler
(can fairly quickly cycle through all the players, see if any are invisible, and
treat that special).
As far as blocking players - the DM is a living creature, and thus when it
goes to check if the space is blocked, it sees there is a living creature there,
and then finds that there is the DM.
This may be simpler to fix - the update_space() code (or is it
update_position()) could be modified - if the creature is a player, and has DM
set, don't set the flags for that space. However, I'm not 100% if that will fix
everything - monsters may still be able to 'find' the DM, because they search
the list of players for nearby players (as a shortcut of searching all the
spaces). That could certainly get changed to skip DM's, etc, but there might be
lots of bits like that.
So if the goal is really to be able to spy on players, adding a spy/snoop
command is probably the way to go.
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list